| 1234567891011121314151617181920212223242526272829303132333435363738 |
- require('dotenv').config({ path: "../.env" });
- const TokenBridge = artifacts.require("TokenBridge");
- const BridgeImplementation = artifacts.require("BridgeImplementation");
- const BridgeSetup = artifacts.require("BridgeSetup");
- 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 setup
- await deployer.deploy(BridgeSetup);
- // deploy implementation
- await deployer.deploy(BridgeImplementation);
- // encode initialisation data
- const setup = new web3.eth.Contract(BridgeSetup.abi, BridgeSetup.address);
- const initData = setup.methods.setup(
- BridgeImplementation.address,
- chainId,
- (await Wormhole.deployed()).address,
- governanceChainId,
- governanceContract,
- TokenImplementation.address,
- WETH
- ).encodeABI();
- // deploy proxy
- await deployer.deploy(TokenBridge, BridgeSetup.address, initData);
- };
|