wormhole/ethereum/scripts/register_all_chains.js

106 lines
3.3 KiB
JavaScript

// run this script with truffle exec
const jsonfile = require("jsonfile");
const TokenBridge = artifacts.require("TokenBridge");
const NFTBridge = artifacts.require("NFTBridgeEntrypoint");
const BridgeImplementationFullABI = jsonfile.readFileSync(
"../build/contracts/BridgeImplementation.json"
).abi;
const solTokenBridgeVAA = process.env.REGISTER_SOL_TOKEN_BRIDGE_VAA;
const solNFTBridgeVAA = process.env.REGISTER_SOL_NFT_BRIDGE_VAA;
const terraTokenBridgeVAA = process.env.REGISTER_TERRA_TOKEN_BRIDGE_VAA;
const terraNFTBridgeVAA = process.env.REGISTER_TERRA_NFT_BRIDGE_VAA;
const terra2TokenBridgeVAA = process.env.REGISTER_TERRA2_TOKEN_BRIDGE_VAA;
const bscTokenBridgeVAA = process.env.REGISTER_BSC_TOKEN_BRIDGE_VAA;
const algoTokenBridgeVAA = process.env.REGISTER_ALGO_TOKEN_BRIDGE_VAA;
const nearTokenBridgeVAA = process.env.REGISTER_NEAR_TOKEN_BRIDGE_VAA;
const aptosTokenBridgeVAA = process.env.REGISTER_APTOS_TOKEN_BRIDGE_VAA;
module.exports = async function(callback) {
try {
const accounts = await web3.eth.getAccounts();
const tokenBridge = new web3.eth.Contract(
BridgeImplementationFullABI,
TokenBridge.address
);
const nftBridge = new web3.eth.Contract(
BridgeImplementationFullABI,
NFTBridge.address
);
// Register the Solana token bridge endpoint
console.log("Registering solana...");
await tokenBridge.methods.registerChain("0x" + solTokenBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
// Register the Solana NFT bridge endpoint
await nftBridge.methods.registerChain("0x" + solNFTBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
// Register the terra token bridge endpoint
console.log("Registering Terra...");
await tokenBridge.methods.registerChain("0x" + terraTokenBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
// Register the terra NFT bridge endpoint
await nftBridge.methods.registerChain("0x" + terraNFTBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
// Register the terra2 token bridge endpoint
console.log("Registering Terra2...");
await tokenBridge.methods.registerChain("0x" + terra2TokenBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
// Register the BSC endpoint
console.log("Registering BSC...");
await tokenBridge.methods.registerChain("0x" + bscTokenBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
// Register the ALGO endpoint
console.log("Registering Algo...");
await tokenBridge.methods.registerChain("0x" + algoTokenBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
// Register the near token bridge endpoint
console.log("Registering Near...");
await tokenBridge.methods.registerChain("0x" + nearTokenBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
// Register the APTOS endpoint
console.log("Registering Aptos...");
await tokenBridge.methods.registerChain("0x" + aptosTokenBridgeVAA).send({
value: 0,
from: accounts[0],
gasLimit: 2000000,
});
callback();
} catch (e) {
callback(e);
}
};