@@ -13,7 +13,7 @@ const parser = yargs(hideBin(process.argv))
1313 . usage (
1414 "Tries to execute all vaas on a vault.\n" +
1515 "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]" ,
1717 )
1818 . options ( {
1919 vault : {
@@ -25,14 +25,25 @@ const parser = yargs(hideBin(process.argv))
2525 "private-key" : COMMON_DEPLOY_OPTIONS [ "private-key" ] ,
2626 offset : {
2727 type : "number" ,
28- demandOption : true ,
2928 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" ] ,
3035 } ,
3136 dryrun : {
3237 type : "boolean" ,
3338 default : false ,
3439 desc : "Whether to execute the VAAs or just print them" ,
3540 } ,
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 ;
3647 } ) ;
3748
3849async function main ( ) {
@@ -54,14 +65,29 @@ async function main() {
5465 "Executing VAAs for emitter" ,
5566 ( await vault . getEmitter ( ) ) . toBase58 ( ) ,
5667 ) ;
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+
5984 console . log (
60- `Going from sequence number ${ startSequenceNumber } to ${ lastSequenceNumber } ` ,
85+ `Going from sequence number ${ startSequenceNumber } to ${ endSequenceNumber } ` ,
6186 ) ;
87+
6288 for (
6389 let seqNumber = startSequenceNumber ;
64- seqNumber <= lastSequenceNumber ;
90+ seqNumber <= endSequenceNumber ;
6591 seqNumber ++
6692 ) {
6793 const submittedWormholeMessage = new SubmittedWormholeMessage (
0 commit comments