wormhole/ethereum/migrations/3_deploy_bridge.js

34 lines
1.2 KiB
JavaScript
Raw Normal View History

require('dotenv').config({ path: "../.env" });
const TokenBridge = artifacts.require("TokenBridge");
const BridgeImplementation = artifacts.require("BridgeImplementation");
const TokenImplementation = artifacts.require("TokenImplementation");
const Wormhole = artifacts.require("Wormhole");
const chainId = process.env.BRIDGE_INIT_CHAIN_ID;
const governanceChainId = process.env.BRIDGE_INIT_GOV_CHAIN_ID;
const governanceContract = process.env.BRIDGE_INIT_GOV_CONTRACT; // bytes32
const WETH = process.env.BRIDGE_INIT_WETH;
module.exports = async function (deployer) {
// deploy token implementation
await deployer.deploy(TokenImplementation);
// deploy implementation
await deployer.deploy(BridgeImplementation);
// encode initialisation data
const impl = new web3.eth.Contract(BridgeImplementation.abi, BridgeImplementation.address);
const initData = impl.methods.initialize(
chainId,
(await Wormhole.deployed()).address,
governanceChainId,
governanceContract,
TokenImplementation.address,
WETH
).encodeABI();
// deploy proxy
await deployer.deploy(TokenBridge, BridgeImplementation.address, initData);
};