@@ -64,21 +64,24 @@ func MakeSigner(config *params.ChainConfig, blockNumber *big.Int, blockTime uint
64
64
// Use this in transaction-handling code where the current block number is unknown. If you
65
65
// have the current block number available, use MakeSigner instead.
66
66
func LatestSigner (config * params.ChainConfig ) Signer {
67
+ var signer Signer
67
68
if config .ChainID != nil {
68
- if config . CancunTime != nil {
69
- return NewCancunSigner ( config .ChainID )
70
- }
71
- if config .LondonBlock != nil {
72
- return NewLondonSigner (config .ChainID )
73
- }
74
- if config . BerlinBlock != nil {
75
- return NewEIP2930Signer ( config .ChainID )
76
- }
77
- if config . EIP155Block != nil {
78
- return NewEIP155Signer ( config . ChainID )
69
+ switch {
70
+ case config .CancunTime != nil :
71
+ signer = NewCancunSigner ( config . ChainID )
72
+ case config .LondonBlock != nil :
73
+ signer = NewLondonSigner (config .ChainID )
74
+ case config . BerlinBlock != nil :
75
+ signer = NewEIP2930Signer ( config . ChainID )
76
+ case config .EIP155Block != nil :
77
+ signer = NewEIP155Signer ( config . ChainID )
78
+ default :
79
+ signer = HomesteadSigner {}
79
80
}
81
+ } else {
82
+ signer = HomesteadSigner {}
80
83
}
81
- return HomesteadSigner {}
84
+ return signer
82
85
}
83
86
84
87
// LatestSignerForChainID returns the 'most permissive' Signer available. Specifically,
@@ -89,10 +92,13 @@ func LatestSigner(config *params.ChainConfig) Signer {
89
92
// configuration are unknown. If you have a ChainConfig, use LatestSigner instead.
90
93
// If you have a ChainConfig and know the current block number, use MakeSigner instead.
91
94
func LatestSignerForChainID (chainID * big.Int ) Signer {
92
- if chainID == nil {
93
- return HomesteadSigner {}
95
+ var signer Signer
96
+ if chainID != nil {
97
+ signer = NewCancunSigner (chainID )
98
+ } else {
99
+ signer = HomesteadSigner {}
94
100
}
95
- return NewCancunSigner ( chainID )
101
+ return signer
96
102
}
97
103
98
104
// SignTx signs the transaction using the given signer and private key.
0 commit comments