53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
|
import { deployWormholeRelayerImplementation } from "../helpers/deployments";
|
||
|
import {
|
||
|
init,
|
||
|
ChainInfo,
|
||
|
getWormholeRelayer,
|
||
|
writeOutputFiles,
|
||
|
getOperatingChains,
|
||
|
} from "../helpers/env";
|
||
|
import { createWormholeRelayerUpgradeVAA } from "../helpers/vaa";
|
||
|
|
||
|
const processName = "upgradeWormholeRelayerSelfSign";
|
||
|
init();
|
||
|
const chains = getOperatingChains();
|
||
|
|
||
|
async function run() {
|
||
|
console.log("Start!");
|
||
|
const output: any = {
|
||
|
wormholeRelayerImplementations: []
|
||
|
};
|
||
|
|
||
|
for (const chain of chains) {
|
||
|
const coreRelayerImplementation = await deployWormholeRelayerImplementation(
|
||
|
chain
|
||
|
);
|
||
|
await upgradeWormholeRelayer(chain, coreRelayerImplementation.address);
|
||
|
|
||
|
output.wormholeRelayerImplementations.push(coreRelayerImplementation);
|
||
|
}
|
||
|
|
||
|
writeOutputFiles(output, processName);
|
||
|
}
|
||
|
|
||
|
async function upgradeWormholeRelayer(
|
||
|
chain: ChainInfo,
|
||
|
newImplementationAddress: string
|
||
|
) {
|
||
|
console.log("upgradeWormholeRelayer " + chain.chainId);
|
||
|
|
||
|
const coreRelayer = await getWormholeRelayer(chain);
|
||
|
|
||
|
const tx = await coreRelayer.submitContractUpgrade(
|
||
|
createWormholeRelayerUpgradeVAA(chain, newImplementationAddress)
|
||
|
);
|
||
|
|
||
|
await tx.wait();
|
||
|
|
||
|
console.log(
|
||
|
"Successfully upgraded the core relayer contract on " + chain.chainId
|
||
|
);
|
||
|
}
|
||
|
|
||
|
run().then(() => console.log("Done! " + processName));
|