From 32ddf3c66cf56223d87ba0de73d1fc54b0d50a61 Mon Sep 17 00:00:00 2001 From: Jayant Krishnamurthy Date: Thu, 15 May 2025 13:46:59 -0700 Subject: [PATCH] contract manager updates --- contract_manager/scripts/execute_vaas.ts | 38 ++++++++++++++++--- .../scripts/list_entropy_contracts.ts | 6 ++- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/contract_manager/scripts/execute_vaas.ts b/contract_manager/scripts/execute_vaas.ts index f289a300a6..afa7bda105 100644 --- a/contract_manager/scripts/execute_vaas.ts +++ b/contract_manager/scripts/execute_vaas.ts @@ -13,7 +13,7 @@ const parser = yargs(hideBin(process.argv)) .usage( "Tries to execute all vaas on a vault.\n" + "Useful for batch upgrades.\n" + - "Usage: $0 --vault --private-key --offset [--dryrun]", + "Usage: $0 --vault --private-key (--offset | --sequence ) [--dryrun]", ) .options({ vault: { @@ -25,14 +25,25 @@ const parser = yargs(hideBin(process.argv)) "private-key": COMMON_DEPLOY_OPTIONS["private-key"], offset: { type: "number", - demandOption: true, desc: "Offset to use from the last executed sequence number", + conflicts: ["sequence"], + }, + sequence: { + type: "number", + desc: "Specific sequence number to execute", + conflicts: ["offset"], }, dryrun: { type: "boolean", default: false, desc: "Whether to execute the VAAs or just print them", }, + }) + .check((argv) => { + if (!argv.offset && !argv.sequence) { + throw new Error("Either --offset or --sequence must be provided"); + } + return true; }); async function main() { @@ -54,14 +65,29 @@ async function main() { "Executing VAAs for emitter", (await vault.getEmitter()).toBase58(), ); - const lastSequenceNumber = await vault.getLastSequenceNumber(); - const startSequenceNumber = lastSequenceNumber - argv.offset; + + let startSequenceNumber: number; + let endSequenceNumber: number; + + if (argv.sequence !== undefined) { + startSequenceNumber = argv.sequence; + endSequenceNumber = argv.sequence; + } else if (argv.offset !== undefined) { + const lastSequenceNumber = await vault.getLastSequenceNumber(); + startSequenceNumber = lastSequenceNumber - argv.offset; + endSequenceNumber = lastSequenceNumber; + } else { + // this is unreachable but it makes the typescript linter happy. + throw new Error("Either --offset or --sequence must be provided"); + } + console.log( - `Going from sequence number ${startSequenceNumber} to ${lastSequenceNumber}`, + `Going from sequence number ${startSequenceNumber} to ${endSequenceNumber}`, ); + for ( let seqNumber = startSequenceNumber; - seqNumber <= lastSequenceNumber; + seqNumber <= endSequenceNumber; seqNumber++ ) { const submittedWormholeMessage = new SubmittedWormholeMessage( diff --git a/contract_manager/scripts/list_entropy_contracts.ts b/contract_manager/scripts/list_entropy_contracts.ts index 1b03b2e844..f64d4ccfd9 100644 --- a/contract_manager/scripts/list_entropy_contracts.ts +++ b/contract_manager/scripts/list_entropy_contracts.ts @@ -18,6 +18,7 @@ async function main() { const entries: { chain: string; contract: string; + owner: string; provider: string; feeManager: string; balance: string; @@ -42,10 +43,13 @@ async function main() { /* old deployments did not have this method */ } const providerInfo = await contract.getProviderInfo(provider); + const owner = await contract.getOwner(); + entries.push({ chain: contract.getChain().getId(), contract: contract.address, - provider: providerInfo.uri, + owner, + provider, feeManager: providerInfo.feeManager, balance: Web3.utils.fromWei(balance), keeperBalance: Web3.utils.fromWei(keeperBalance),