From 012472aad4d540d556b66e1bfe95048c8cf7c3b2 Mon Sep 17 00:00:00 2001 From: 0xfirefist Date: Mon, 29 Jan 2024 17:31:54 +0530 Subject: [PATCH] address comments --- .../entropy-accept-admin-and-ownership.ts | 2 +- contract_manager/src/contracts/evm.ts | 31 +++++++++---------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/contract_manager/scripts/entropy-accept-admin-and-ownership.ts b/contract_manager/scripts/entropy-accept-admin-and-ownership.ts index 4dcf39393f..8d1ba4652c 100644 --- a/contract_manager/scripts/entropy-accept-admin-and-ownership.ts +++ b/contract_manager/scripts/entropy-accept-admin-and-ownership.ts @@ -66,7 +66,7 @@ async function main() { for (const contract of Object.values(DefaultStore.entropy_contracts)) { if (selectedChains.includes(contract.chain)) { console.log("Creating payload for chain: ", contract.chain.getId()); - const pendingOwner = (await contract.getPendingOwner()).replace("0x", ""); + const pendingOwner = await contract.getPendingOwner(); const adminPayload = contract.generateAcceptAdminPayload(pendingOwner); const ownerPayload = contract.generateAcceptOwnershipPayload(pendingOwner); diff --git a/contract_manager/src/contracts/evm.ts b/contract_manager/src/contracts/evm.ts index 156d4aa577..29f770632b 100644 --- a/contract_manager/src/contracts/evm.ts +++ b/contract_manager/src/contracts/evm.ts @@ -364,31 +364,30 @@ export class EvmEntropyContract extends Storable { return new EvmEntropyContract(chain, parsed.address); } - //TODO: document and move this to executor contract - generateAcceptAdminPayload(executor: string): Buffer { - const contract = this.getContract(); - const data = contract.methods.acceptAdmin().encodeABI(); - const payload = Buffer.from(data.slice(2), "hex"); + // Generate a payload for the given executor address and calldata. + // `executor` and `calldata` should be hex strings. + generatePayload(executor: string, calldata: string) { return new EvmExecute( this.chain.wormholeChainName, - executor, + executor.replace("0x", ""), this.address.replace("0x", ""), 0n, - payload + Buffer.from(calldata.replace("0x", ""), "hex") ).encode(); } - generateAcceptOwnershipPayload(executor: string): Buffer { + // Generates a payload for the newAdmin to call acceptAdmin on the entropy contracts + generateAcceptAdminPayload(newAdmin: string): Buffer { + const contract = this.getContract(); + const data = contract.methods.acceptAdmin().encodeABI(); + return this.generatePayload(newAdmin, data); + } + + // Generates a payload for newOwner to call acceptOwnership on the entropy contracts + generateAcceptOwnershipPayload(newOwner: string): Buffer { const contract = this.getContract(); const data = contract.methods.acceptOwnership().encodeABI(); - const payload = Buffer.from(data.slice(2), "hex"); - return new EvmExecute( - this.chain.wormholeChainName, - executor, - this.address.replace("0x", ""), - 0n, - payload - ).encode(); + return this.generatePayload(newOwner, data); } getOwner(): string {