register_all_chains.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. // run this script with truffle exec
  2. const jsonfile = require("jsonfile");
  3. const TokenBridge = artifacts.require("TokenBridge");
  4. const NFTBridge = artifacts.require("NFTBridgeEntrypoint");
  5. const BridgeImplementationFullABI = jsonfile.readFileSync(
  6. "../build/contracts/BridgeImplementation.json"
  7. ).abi;
  8. const solTokenBridgeVAA = process.env.REGISTER_SOL_TOKEN_BRIDGE_VAA;
  9. const solNFTBridgeVAA = process.env.REGISTER_SOL_NFT_BRIDGE_VAA;
  10. const terraTokenBridgeVAA = process.env.REGISTER_TERRA_TOKEN_BRIDGE_VAA;
  11. const terraNFTBridgeVAA = process.env.REGISTER_TERRA_NFT_BRIDGE_VAA;
  12. const terra2TokenBridgeVAA = process.env.REGISTER_TERRA2_TOKEN_BRIDGE_VAA;
  13. const bscTokenBridgeVAA = process.env.REGISTER_BSC_TOKEN_BRIDGE_VAA;
  14. const algoTokenBridgeVAA = process.env.REGISTER_ALGO_TOKEN_BRIDGE_VAA;
  15. const nearTokenBridgeVAA = process.env.REGISTER_NEAR_TOKEN_BRIDGE_VAA;
  16. const wormchainTokenBridgeVAA = process.env.REGISTER_WORMCHAIN_TOKEN_BRIDGE_VAA;
  17. const aptosTokenBridgeVAA = process.env.REGISTER_APTOS_TOKEN_BRIDGE_VAA;
  18. module.exports = async function(callback) {
  19. try {
  20. const accounts = await web3.eth.getAccounts();
  21. const tokenBridge = new web3.eth.Contract(
  22. BridgeImplementationFullABI,
  23. TokenBridge.address
  24. );
  25. const nftBridge = new web3.eth.Contract(
  26. BridgeImplementationFullABI,
  27. NFTBridge.address
  28. );
  29. // Register the Solana token bridge endpoint
  30. console.log("Registering solana...");
  31. await tokenBridge.methods.registerChain("0x" + solTokenBridgeVAA).send({
  32. value: 0,
  33. from: accounts[0],
  34. gasLimit: 2000000,
  35. });
  36. // Register the Solana NFT bridge endpoint
  37. await nftBridge.methods.registerChain("0x" + solNFTBridgeVAA).send({
  38. value: 0,
  39. from: accounts[0],
  40. gasLimit: 2000000,
  41. });
  42. // Register the terra token bridge endpoint
  43. console.log("Registering Terra...");
  44. await tokenBridge.methods.registerChain("0x" + terraTokenBridgeVAA).send({
  45. value: 0,
  46. from: accounts[0],
  47. gasLimit: 2000000,
  48. });
  49. // Register the terra NFT bridge endpoint
  50. await nftBridge.methods.registerChain("0x" + terraNFTBridgeVAA).send({
  51. value: 0,
  52. from: accounts[0],
  53. gasLimit: 2000000,
  54. });
  55. // Register the terra2 token bridge endpoint
  56. console.log("Registering Terra2...");
  57. await tokenBridge.methods.registerChain("0x" + terra2TokenBridgeVAA).send({
  58. value: 0,
  59. from: accounts[0],
  60. gasLimit: 2000000,
  61. });
  62. // Register the BSC endpoint
  63. console.log("Registering BSC...");
  64. await tokenBridge.methods.registerChain("0x" + bscTokenBridgeVAA).send({
  65. value: 0,
  66. from: accounts[0],
  67. gasLimit: 2000000,
  68. });
  69. // Register the ALGO endpoint
  70. console.log("Registering Algo...");
  71. await tokenBridge.methods.registerChain("0x" + algoTokenBridgeVAA).send({
  72. value: 0,
  73. from: accounts[0],
  74. gasLimit: 2000000,
  75. });
  76. // Register the near token bridge endpoint
  77. console.log("Registering Near...");
  78. await tokenBridge.methods.registerChain("0x" + nearTokenBridgeVAA).send({
  79. value: 0,
  80. from: accounts[0],
  81. gasLimit: 2000000,
  82. });
  83. // Register the wormhole token bridge endpoint
  84. console.log("Registering Wormchain...");
  85. await tokenBridge.methods
  86. .registerChain("0x" + wormchainTokenBridgeVAA)
  87. .send({
  88. value: 0,
  89. from: accounts[0],
  90. gasLimit: 2000000,
  91. });
  92. // Register the APTOS endpoint
  93. console.log("Registering Aptos...");
  94. await tokenBridge.methods.registerChain("0x" + aptosTokenBridgeVAA).send({
  95. value: 0,
  96. from: accounts[0],
  97. gasLimit: 2000000,
  98. });
  99. callback();
  100. } catch (e) {
  101. callback(e);
  102. }
  103. };