From e36b7220b38c36b32fbc6c2f666f6889dc8ece9e Mon Sep 17 00:00:00 2001 From: justinschuldt Date: Fri, 1 Apr 2022 10:51:46 -0500 Subject: [PATCH] eth-devnet init with multiple guardians --- ethereum/.env.test | 12 ++++++++++++ ethereum/scripts/register_bsc_chain.js | 3 ++- ethereum/scripts/register_eth_chain.js | 3 ++- ethereum/scripts/register_solana_chain.js | 6 ++++-- ethereum/scripts/register_terra_chain.js | 6 ++++-- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/ethereum/.env.test b/ethereum/.env.test index 15f34c2a7..705f123aa 100644 --- a/ethereum/.env.test +++ b/ethereum/.env.test @@ -9,3 +9,15 @@ BRIDGE_INIT_CHAIN_ID=0x2 BRIDGE_INIT_GOV_CHAIN_ID=0x1 BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 BRIDGE_INIT_WETH=0xDDb64fE46a91D46ee29420539FC25FD07c5FEa3E + +# Chain registration VAAs +REGISTER_SOL_TOKEN_BRIDGE_VAA=01000000000100c9f4230109e378f7efc0605fb40f0e1869f2d82fda5b1dfad8a5a2dafee85e033d155c18641165a77a2db6a7afbf2745b458616cb59347e89ae0c7aa3e7cc2d400000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e4272696467650100000001c69a1b1a65dd336bf1df6a77afb501fc25db7fc0938cb08595a9ef473265cb4f +REGISTER_SOL_NFT_BRIDGE_VAA=010000000001007985ba742002ae745c19722fea4d82102e68526c7c9d94d0e5d0a809071c98451c9693b230b3390f4ca9555a3ba9a9abbe87cf6f9e400682213e4fbbe1dabb9e0100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004e4654427269646765010000000196ee982293251b48729804c8e8b24b553eb6b887867024948d2236fd37a577ab + +REGISTER_ETH_TOKEN_BRIDGE_VAA=01000000000100e2e1975d14734206e7a23d90db48a6b5b6696df72675443293c6057dcb936bf224b5df67d32967adeb220d4fe3cb28be515be5608c74aab6adb31099a478db5c01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e42726964676501000000020000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16 +REGISTER_ETH_NFT_BRIDGE_VAA=01000000000100d073f81a4ecf2469b0674b1902dcbcad2da7f70ecdd7e1aec65414380ca2c05426380c33bb083ab41167c522231c1485b9c8ffce04eaf2e8a6f50edaa72074c50000000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004e4654427269646765010000000200000000000000000000000026b4afb60d6c903165150c6f0aa14f8016be4aec + +REGISTER_TERRA_TOKEN_BRIDGE_VAA=010000000001009a895e8b42444fdf60a71666121d7e84b3a49579ba3b84fff1dbdf9ec93360390c05a88f66c90df2034cb38427ba9b01632e780ce7b84df559a1bf44c316447d01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e4272696467650100000003000000000000000000000000784999135aaa8a3ca5914468852fdddbddd8789d +REGISTER_TERRA_NFT_BRIDGE_VAA=01000000000100880ab34efd145fa1c9c4f2f7b233f3bc99cb730ab2d2138babf989a2555e2e8f737b759f91970d300c4364249b0740b134dbefb943fb55fd76483261ce68c17b0100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000023c2cdd0000000000000000000000000000000000000000000000004e465442726964676501000000030000000000000000000000000fe5c51f539a651152ae461086d733777a54a134 + +REGISTER_BSC_TOKEN_BRIDGE_VAA=01000000000100719b4ada436f614489dbf87593c38ba9aea35aa7b997387f8ae09f819806f5654c8d45b6b751faa0e809ccbc294794885efa205bd8a046669464c7cbfb03d183010000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000002c8bb0600000000000000000000000000000000000000000000546f6b656e42726964676501000000040000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16 diff --git a/ethereum/scripts/register_bsc_chain.js b/ethereum/scripts/register_bsc_chain.js index 2fe3a1810..9aee5b4e3 100644 --- a/ethereum/scripts/register_bsc_chain.js +++ b/ethereum/scripts/register_bsc_chain.js @@ -4,6 +4,7 @@ const jsonfile = require("jsonfile"); const TokenBridge = artifacts.require("TokenBridge"); const TokenImplementation = artifacts.require("TokenImplementation"); const BridgeImplementationFullABI = jsonfile.readFileSync("../build/contracts/BridgeImplementation.json").abi +const bscTokenBridgeVAA = process.env.REGISTER_BSC_TOKEN_BRIDGE_VAA module.exports = async function (callback) { try { @@ -11,7 +12,7 @@ module.exports = async function (callback) { const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); // Register the BSC endpoint - await initialized.methods.registerChain("0x01000000000100719b4ada436f614489dbf87593c38ba9aea35aa7b997387f8ae09f819806f5654c8d45b6b751faa0e809ccbc294794885efa205bd8a046669464c7cbfb03d183010000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000002c8bb0600000000000000000000000000000000000000000000546f6b656e42726964676501000000040000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16").send({ + await initialized.methods.registerChain("0x" + bscTokenBridgeVAA).send({ value: 0, from: accounts[0], gasLimit: 2000000 diff --git a/ethereum/scripts/register_eth_chain.js b/ethereum/scripts/register_eth_chain.js index 2f3085942..def0e3589 100644 --- a/ethereum/scripts/register_eth_chain.js +++ b/ethereum/scripts/register_eth_chain.js @@ -4,6 +4,7 @@ const jsonfile = require("jsonfile"); const TokenBridge = artifacts.require("TokenBridge"); const TokenImplementation = artifacts.require("TokenImplementation"); const BridgeImplementationFullABI = jsonfile.readFileSync("../build/contracts/BridgeImplementation.json").abi +const ethTokenBridgeVAA = process.env.REGISTER_ETH_TOKEN_BRIDGE_VAA module.exports = async function (callback) { try { @@ -11,7 +12,7 @@ module.exports = async function (callback) { const initialized = new web3.eth.Contract(BridgeImplementationFullABI, TokenBridge.address); // Register the ETH endpoint - await initialized.methods.registerChain("0x01000000000100e2e1975d14734206e7a23d90db48a6b5b6696df72675443293c6057dcb936bf224b5df67d32967adeb220d4fe3cb28be515be5608c74aab6adb31099a478db5c01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e42726964676501000000020000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16").send({ + await initialized.methods.registerChain("0x" + ethTokenBridgeVAA).send({ value: 0, from: accounts[0], gasLimit: 2000000 diff --git a/ethereum/scripts/register_solana_chain.js b/ethereum/scripts/register_solana_chain.js index 36c206056..6314f1ca1 100644 --- a/ethereum/scripts/register_solana_chain.js +++ b/ethereum/scripts/register_solana_chain.js @@ -5,6 +5,8 @@ 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 { @@ -13,14 +15,14 @@ module.exports = async function (callback) { const nftBridge = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); // Register the Solana token bridge endpoint - await tokenBridge.methods.registerChain("0x01000000000100c9f4230109e378f7efc0605fb40f0e1869f2d82fda5b1dfad8a5a2dafee85e033d155c18641165a77a2db6a7afbf2745b458616cb59347e89ae0c7aa3e7cc2d400000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e4272696467650100000001c69a1b1a65dd336bf1df6a77afb501fc25db7fc0938cb08595a9ef473265cb4f").send({ + await tokenBridge.methods.registerChain("0x" + solTokenBridgeVAA).send({ value: 0, from: accounts[0], gasLimit: 2000000 }); // Register the Solana NFT bridge endpoint - await nftBridge.methods.registerChain("0x010000000001007985ba742002ae745c19722fea4d82102e68526c7c9d94d0e5d0a809071c98451c9693b230b3390f4ca9555a3ba9a9abbe87cf6f9e400682213e4fbbe1dabb9e0100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004e4654427269646765010000000196ee982293251b48729804c8e8b24b553eb6b887867024948d2236fd37a577ab").send({ + await nftBridge.methods.registerChain("0x" + solNFTBridgeVAA).send({ value: 0, from: accounts[0], gasLimit: 2000000 diff --git a/ethereum/scripts/register_terra_chain.js b/ethereum/scripts/register_terra_chain.js index e1b5dcf57..eea8bca76 100644 --- a/ethereum/scripts/register_terra_chain.js +++ b/ethereum/scripts/register_terra_chain.js @@ -5,6 +5,8 @@ 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 terraTokenBridgeVAA = process.env.REGISTER_TERRA_TOKEN_BRIDGE_VAA +const terraNFTBridgeVAA = process.env.REGISTER_TERRA_NFT_BRIDGE_VAA module.exports = async function (callback) { try { @@ -13,14 +15,14 @@ module.exports = async function (callback) { const nftBridge = new web3.eth.Contract(BridgeImplementationFullABI, NFTBridge.address); // Register the terra token bridge endpoint - await tokenBridge.methods.registerChain("0x010000000001009a895e8b42444fdf60a71666121d7e84b3a49579ba3b84fff1dbdf9ec93360390c05a88f66c90df2034cb38427ba9b01632e780ce7b84df559a1bf44c316447d01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e4272696467650100000003000000000000000000000000784999135aaa8a3ca5914468852fdddbddd8789d").send({ + await tokenBridge.methods.registerChain("0x" + terraTokenBridgeVAA).send({ value: 0, from: accounts[0], gasLimit: 2000000 }); // Register the terra NFT bridge endpoint - await nftBridge.methods.registerChain("0x01000000000100880ab34efd145fa1c9c4f2f7b233f3bc99cb730ab2d2138babf989a2555e2e8f737b759f91970d300c4364249b0740b134dbefb943fb55fd76483261ce68c17b0100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000023c2cdd0000000000000000000000000000000000000000000000004e465442726964676501000000030000000000000000000000000fe5c51f539a651152ae461086d733777a54a134").send({ + await nftBridge.methods.registerChain("0x" + terraNFTBridgeVAA).send({ value: 0, from: accounts[0], gasLimit: 2000000