wormhole/ethereum/scripts/register_solana_chain.js

37 lines
1.3 KiB
JavaScript

// run this script with truffle exec
const jsonfile = require("jsonfile");
const TokenBridge = artifacts.require("TokenBridge");
const NFTBridge = artifacts.require("NFTBridgeEntrypoint");
const TokenImplementation = artifacts.require("TokenImplementation");
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
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
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
});
callback();
}
catch (e) {
callback(e);
}
}