From a9393500a1ca21732631fcf000ec648514bbf1a1 Mon Sep 17 00:00:00 2001 From: Evan Gray Date: Tue, 28 May 2024 17:11:49 -0400 Subject: [PATCH] node,sdk: Mantle mainnet --- ethereum/env/.env.mantle.mainnet | 22 ++++++++++++++++++++++ node/cmd/guardiand/node.go | 2 +- node/hack/repair_eth/repair_eth.go | 2 ++ node/pkg/governor/mainnet_chains.go | 1 + sdk/js/CHANGELOG.md | 4 ++++ sdk/js/package.json | 2 +- sdk/js/src/utils/consts.ts | 4 ++-- sdk/mainnet_consts.go | 1 + 8 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 ethereum/env/.env.mantle.mainnet diff --git a/ethereum/env/.env.mantle.mainnet b/ethereum/env/.env.mantle.mainnet new file mode 100644 index 0000000000..293e13e0be --- /dev/null +++ b/ethereum/env/.env.mantle.mainnet @@ -0,0 +1,22 @@ +# Mantle mainnet env +# Rename to .env + +# Common config for forge deployment +RPC_URL=https://rpc.ankr.com/mantle +FORGE_ARGS="--slow --priority-gas-price 0 --gas-estimate-multiplier 130 --skip-simulation" + +# Wormhole Core Migrations +INIT_SIGNERS=["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5"] +INIT_CHAIN_ID=35 +INIT_GOV_CHAIN_ID=0x1 +INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 +INIT_EVM_CHAIN_ID=5000 + +# Bridge Migrations +BRIDGE_INIT_CHAIN_ID=35 +BRIDGE_INIT_GOV_CHAIN_ID=0x1 +BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004 + +# See https://docs.mantle.xyz/network/introduction/faqs#q.-whats-the-usdwmnt-token-contract-address +BRIDGE_INIT_WETH=0x78c1b0C915c4FAA5FffA6CAbf0219DA63d7f4cb8 +BRIDGE_INIT_FINALITY=1 diff --git a/node/cmd/guardiand/node.go b/node/cmd/guardiand/node.go index 54898ec89f..cc40803c07 100644 --- a/node/cmd/guardiand/node.go +++ b/node/cmd/guardiand/node.go @@ -644,7 +644,7 @@ func runNode(cmd *cobra.Command, args []string) { *optimismContract = checkEvmArgs(logger, *optimismRPC, *optimismContract, "optimism", true) *baseContract = checkEvmArgs(logger, *baseRPC, *baseContract, "base", true) *scrollContract = checkEvmArgs(logger, *scrollRPC, *scrollContract, "scroll", true) - *mantleContract = checkEvmArgs(logger, *mantleRPC, *mantleContract, "mantle", false) + *mantleContract = checkEvmArgs(logger, *mantleRPC, *mantleContract, "mantle", true) *blastContract = checkEvmArgs(logger, *blastRPC, *blastContract, "blast", true) *xlayerContract = checkEvmArgs(logger, *xlayerRPC, *xlayerContract, "xlayer", true) *berachainContract = checkEvmArgs(logger, *berachainRPC, *berachainContract, "berachain", false) diff --git a/node/hack/repair_eth/repair_eth.go b/node/hack/repair_eth/repair_eth.go index 43233f6bc4..aef0d9afce 100644 --- a/node/hack/repair_eth/repair_eth.go +++ b/node/hack/repair_eth/repair_eth.go @@ -47,6 +47,7 @@ var etherscanAPIMap = map[vaa.ChainID]string{ vaa.ChainIDOptimism: "https://api-optimistic.etherscan.io", vaa.ChainIDBase: "https://api.basescan.org", vaa.ChainIDScroll: "https://api.scrollscan.com", + vaa.ChainIDMantle: "", // TODO: Does Mantle have an etherscan equivalent API endpoint? vaa.ChainIDBlast: "https://api.blastscan.io", vaa.ChainIDXLayer: "", // TODO: Does X Layer have an etherscan API endpoint? } @@ -68,6 +69,7 @@ var coreContractMap = map[vaa.ChainID]string{ vaa.ChainIDOptimism: strings.ToLower("0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722"), vaa.ChainIDBase: strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"), vaa.ChainIDScroll: strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"), + vaa.ChainIDMantle: strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"), vaa.ChainIDBlast: strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"), vaa.ChainIDXLayer: strings.ToLower("0x194B123c5E96B9b2E49763619985790Dc241CAC0"), } diff --git a/node/pkg/governor/mainnet_chains.go b/node/pkg/governor/mainnet_chains.go index b30525764e..927d578556 100644 --- a/node/pkg/governor/mainnet_chains.go +++ b/node/pkg/governor/mainnet_chains.go @@ -36,6 +36,7 @@ func chainList() []chainConfigEntry { {emitterChainID: vaa.ChainIDBase, dailyLimit: 2_000_000, bigTransactionSize: 200_000}, {emitterChainID: vaa.ChainIDSei, dailyLimit: 5_000_000, bigTransactionSize: 500_000}, {emitterChainID: vaa.ChainIDScroll, dailyLimit: 500_000, bigTransactionSize: 50_000}, + {emitterChainID: vaa.ChainIDMantle, dailyLimit: 500_000, bigTransactionSize: 50_000}, {emitterChainID: vaa.ChainIDBlast, dailyLimit: 500_000, bigTransactionSize: 50_000}, {emitterChainID: vaa.ChainIDXLayer, dailyLimit: 500_000, bigTransactionSize: 50_000}, {emitterChainID: vaa.ChainIDWormchain, dailyLimit: 500_000, bigTransactionSize: 50_000}, diff --git a/sdk/js/CHANGELOG.md b/sdk/js/CHANGELOG.md index 9bdfb24293..bea24c9dc0 100644 --- a/sdk/js/CHANGELOG.md +++ b/sdk/js/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.10.17 + +Add Mantle mainnet support + ## 0.10.16 Add X Layer mainnet support diff --git a/sdk/js/package.json b/sdk/js/package.json index 9263d36dbf..fc62bc3b04 100644 --- a/sdk/js/package.json +++ b/sdk/js/package.json @@ -1,6 +1,6 @@ { "name": "@certusone/wormhole-sdk", - "version": "0.10.16", + "version": "0.10.17", "description": "SDK for interacting with Wormhole", "homepage": "https://wormhole.com", "main": "./lib/cjs/index.js", diff --git a/sdk/js/src/utils/consts.ts b/sdk/js/src/utils/consts.ts index 52571e394b..69378b2a30 100644 --- a/sdk/js/src/utils/consts.ts +++ b/sdk/js/src/utils/consts.ts @@ -314,8 +314,8 @@ const MAINNET = { nft_bridge: undefined, }, mantle: { - core: undefined, - token_bridge: undefined, + core: "0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6", + token_bridge: "0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d", nft_bridge: undefined, }, blast: { diff --git a/sdk/mainnet_consts.go b/sdk/mainnet_consts.go index 8b4a6966d2..c6514ff05c 100644 --- a/sdk/mainnet_consts.go +++ b/sdk/mainnet_consts.go @@ -119,6 +119,7 @@ var knownTokenbridgeEmitters = map[vaa.ChainID]string{ vaa.ChainIDBase: "0000000000000000000000008d2de8d2f73F1F4cAB472AC9A881C9b123C79627", vaa.ChainIDXpla: "8f9cf727175353b17a5f574270e370776123d90fd74956ae4277962b4fdee24c", vaa.ChainIDScroll: "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d", + vaa.ChainIDMantle: "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d", vaa.ChainIDBlast: "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d", vaa.ChainIDXLayer: "0000000000000000000000005537857664B0f9eFe38C9f320F75fEf23234D904", vaa.ChainIDInjective: "00000000000000000000000045dbea4617971d93188eda21530bc6503d153313",