83 lines
2.2 KiB
TypeScript
83 lines
2.2 KiB
TypeScript
import {
|
|
init,
|
|
loadChains,
|
|
ChainInfo,
|
|
getWormholeRelayer,
|
|
getOperatingChains,
|
|
} from "../helpers/env";
|
|
import { wait } from "../helpers/utils";
|
|
import { createRegisterChainVAA } from "../helpers/vaa";
|
|
|
|
const processName = "registerChainsWormholeRelayerSelfSign";
|
|
init();
|
|
const operatingChains = getOperatingChains();
|
|
const chains = loadChains();
|
|
|
|
async function run() {
|
|
console.log("Start! " + processName);
|
|
|
|
for (const operatingChain of operatingChains) {
|
|
await registerChainsWormholeRelayer(operatingChain);
|
|
await registerOnExistingChainsWormholeRelayer(operatingChain);
|
|
}
|
|
}
|
|
|
|
async function registerChainsWormholeRelayer(chain: ChainInfo) {
|
|
console.log(
|
|
"Registering all the wormhole relayers onto Wormhole Relayer " +
|
|
chain.chainId
|
|
);
|
|
|
|
const coreRelayer = await getWormholeRelayer(chain);
|
|
for (const targetChain of chains) {
|
|
try {
|
|
await coreRelayer
|
|
.registerWormholeRelayerContract(createRegisterChainVAA(targetChain))
|
|
.then(wait);
|
|
} catch (e) {
|
|
console.log(
|
|
`Error in registering chain ${targetChain.chainId} onto ${chain.chainId}`
|
|
);
|
|
}
|
|
}
|
|
|
|
console.log(
|
|
"Did all contract registrations for the core relayer on " + chain.chainId
|
|
);
|
|
}
|
|
|
|
async function registerOnExistingChainsWormholeRelayer(chain: ChainInfo) {
|
|
console.log(
|
|
"Registering Wormhole Relayer " +
|
|
chain.chainId +
|
|
" onto all the wormhole relayers"
|
|
);
|
|
const operatingChainIds = operatingChains.map((c) => c.chainId);
|
|
for (const targetChain of chains) {
|
|
if (operatingChainIds.find((x) => x === targetChain.chainId)) {
|
|
continue;
|
|
}
|
|
const coreRelayer = await getWormholeRelayer(targetChain);
|
|
try {
|
|
await coreRelayer
|
|
.registerWormholeRelayerContract(createRegisterChainVAA(chain))
|
|
.then(wait);
|
|
} catch (e) {
|
|
console.log(
|
|
`Error in registering chain ${chain.chainId} onto ${targetChain.chainId}`
|
|
);
|
|
if (targetChain.chainId === 5) {
|
|
console.log(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
console.log(
|
|
"Did all contract registrations of the core relayer on " +
|
|
chain.chainId +
|
|
" onto the existing (non operating) chains"
|
|
);
|
|
}
|
|
|
|
run().then(() => console.log("Done! " + processName));
|