|
|
@@ -0,0 +1,116 @@
|
|
|
+// 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 wormchainTokenBridgeVAA = process.env.REGISTER_WORMCHAIN_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 wormhole token bridge endpoint
|
|
|
+ console.log("Registering Wormchain...");
|
|
|
+ await tokenBridge.methods
|
|
|
+ .registerChain("0x" + wormchainTokenBridgeVAA)
|
|
|
+ .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);
|
|
|
+ }
|
|
|
+};
|