@@ -13,7 +13,7 @@ const parser = yargs(hideBin(process.argv))
13
13
. usage (
14
14
"Tries to execute all vaas on a vault.\n" +
15
15
"Useful for batch upgrades.\n" +
16
- "Usage: $0 --vault <mainnet|devnet> --private-key <private-key> --offset <offset> [--dryrun]" ,
16
+ "Usage: $0 --vault <mainnet|devnet> --private-key <private-key> ( --offset <offset> | --sequence <sequence>) [--dryrun]" ,
17
17
)
18
18
. options ( {
19
19
vault : {
@@ -25,14 +25,25 @@ const parser = yargs(hideBin(process.argv))
25
25
"private-key" : COMMON_DEPLOY_OPTIONS [ "private-key" ] ,
26
26
offset : {
27
27
type : "number" ,
28
- demandOption : true ,
29
28
desc : "Offset to use from the last executed sequence number" ,
29
+ conflicts : [ "sequence" ] ,
30
+ } ,
31
+ sequence : {
32
+ type : "number" ,
33
+ desc : "Specific sequence number to execute" ,
34
+ conflicts : [ "offset" ] ,
30
35
} ,
31
36
dryrun : {
32
37
type : "boolean" ,
33
38
default : false ,
34
39
desc : "Whether to execute the VAAs or just print them" ,
35
40
} ,
41
+ } )
42
+ . check ( ( argv ) => {
43
+ if ( ! argv . offset && ! argv . sequence ) {
44
+ throw new Error ( "Either --offset or --sequence must be provided" ) ;
45
+ }
46
+ return true ;
36
47
} ) ;
37
48
38
49
async function main ( ) {
@@ -54,14 +65,29 @@ async function main() {
54
65
"Executing VAAs for emitter" ,
55
66
( await vault . getEmitter ( ) ) . toBase58 ( ) ,
56
67
) ;
57
- const lastSequenceNumber = await vault . getLastSequenceNumber ( ) ;
58
- const startSequenceNumber = lastSequenceNumber - argv . offset ;
68
+
69
+ let startSequenceNumber : number ;
70
+ let endSequenceNumber : number ;
71
+
72
+ if ( argv . sequence !== undefined ) {
73
+ startSequenceNumber = argv . sequence ;
74
+ endSequenceNumber = argv . sequence ;
75
+ } else if ( argv . offset !== undefined ) {
76
+ const lastSequenceNumber = await vault . getLastSequenceNumber ( ) ;
77
+ startSequenceNumber = lastSequenceNumber - argv . offset ;
78
+ endSequenceNumber = lastSequenceNumber ;
79
+ } else {
80
+ // this is unreachable but it makes the typescript linter happy.
81
+ throw new Error ( "Either --offset or --sequence must be provided" ) ;
82
+ }
83
+
59
84
console . log (
60
- `Going from sequence number ${ startSequenceNumber } to ${ lastSequenceNumber } ` ,
85
+ `Going from sequence number ${ startSequenceNumber } to ${ endSequenceNumber } ` ,
61
86
) ;
87
+
62
88
for (
63
89
let seqNumber = startSequenceNumber ;
64
- seqNumber <= lastSequenceNumber ;
90
+ seqNumber <= endSequenceNumber ;
65
91
seqNumber ++
66
92
) {
67
93
const submittedWormholeMessage = new SubmittedWormholeMessage (
0 commit comments