@@ -23,15 +23,16 @@ import (
23
23
)
24
24
25
25
var (
26
- envStr = flag .String ("env" , "both" , `Environment to be validated, may be "mainnet", "testnet" or "both", default is "both"` )
26
+ envStr = flag .String ("env" , "both" , `Environment to be validated, may be "mainnet", "testnet" or "both", default is "both"` )
27
+ chainId = flag .Int ("chainId" , 0 , `An individual chain to be validated, default is all chains` )
27
28
)
28
29
29
30
func main () {
30
31
flag .Parse ()
31
32
32
33
if * envStr == "both" {
33
- verifyForEnv (common .MainNet )
34
- verifyForEnv (common .TestNet )
34
+ verifyForEnv (common .MainNet , vaa . ChainID ( * chainId ) )
35
+ verifyForEnv (common .TestNet , vaa . ChainID ( * chainId ) )
35
36
} else {
36
37
env , err := common .ParseEnvironment (* envStr )
37
38
if err != nil || (env != common .TestNet && env != common .MainNet ) {
@@ -43,7 +44,7 @@ func main() {
43
44
os .Exit (1 )
44
45
}
45
46
46
- verifyForEnv (env )
47
+ verifyForEnv (env , vaa . ChainID ( * chainId ) )
47
48
}
48
49
}
49
50
@@ -52,7 +53,7 @@ type ListEntry struct {
52
53
Entry evm.EnvEntry
53
54
}
54
55
55
- func verifyForEnv (env common.Environment ) {
56
+ func verifyForEnv (env common.Environment , chainID vaa. ChainID ) {
56
57
m , err := evm .GetChainConfigMap (env )
57
58
if err != nil {
58
59
fmt .Printf ("Failed to get chain config map for %snet\n " , env )
@@ -72,27 +73,29 @@ func verifyForEnv(env common.Environment) {
72
73
ctx := context .Background ()
73
74
74
75
for _ , entry := range orderedList {
75
- if entry .Entry .PublicRPC == "" {
76
- fmt .Printf ("Skipping %v %v because the rpc is null\n " , env , entry .ChainID )
77
- } else {
78
- evmChainID , err := evm .QueryEvmChainID (ctx , entry .Entry .PublicRPC )
79
- if err != nil {
80
- fmt .Printf ("ERROR: Failed to query EVM chain ID for %v %v: %v\n " , env , entry .ChainID , err )
81
- os .Exit (1 )
82
- }
76
+ if chainID == vaa .ChainIDUnset || entry .ChainID == chainID {
77
+ if entry .Entry .PublicRPC == "" {
78
+ fmt .Printf ("Skipping %v %v because the rpc is null\n " , env , entry .ChainID )
79
+ } else {
80
+ evmChainID , err := evm .QueryEvmChainID (ctx , entry .Entry .PublicRPC )
81
+ if err != nil {
82
+ fmt .Printf ("ERROR: Failed to query EVM chain ID for %v %v: %v\n " , env , entry .ChainID , err )
83
+ os .Exit (1 )
84
+ }
83
85
84
- if evmChainID != entry .Entry .EvmChainID {
85
- fmt .Printf ("ERROR: EVM chain ID mismatch for %v %v: config: %v, actual: %v\n " , env , entry .ChainID , entry .Entry .EvmChainID , evmChainID )
86
- os .Exit (1 )
87
- }
86
+ if evmChainID != entry .Entry .EvmChainID {
87
+ fmt .Printf ("ERROR: EVM chain ID mismatch for %v %v: config: %v, actual: %v\n " , env , entry .ChainID , entry .Entry .EvmChainID , evmChainID )
88
+ os .Exit (1 )
89
+ }
88
90
89
- fmt .Printf ("EVM chain ID match for %v %v: value: %v\n " , env , entry .ChainID , evmChainID )
91
+ fmt .Printf ("EVM chain ID match for %v %v: value: %v\n " , env , entry .ChainID , evmChainID )
90
92
91
- if entry .Entry .Finalized || entry .Entry .Safe {
92
- err := verifyFinality (ctx , entry .Entry .PublicRPC , entry .Entry .Finalized , entry .Entry .Safe )
93
- if err != nil {
94
- fmt .Printf ("ERROR: failed to verify finality values for %v %v: %v\n " , env , entry .ChainID , err )
95
- os .Exit (1 )
93
+ if entry .Entry .Finalized || entry .Entry .Safe {
94
+ err := verifyFinality (ctx , entry .Entry .PublicRPC , entry .Entry .Finalized , entry .Entry .Safe )
95
+ if err != nil {
96
+ fmt .Printf ("ERROR: failed to verify finality values for %v %v: %v\n " , env , entry .ChainID , err )
97
+ os .Exit (1 )
98
+ }
96
99
}
97
100
}
98
101
}
0 commit comments