Ver código fonte

Deploy X Layer to mainnet (#3942)

bruce-riley 1 ano atrás
pai
commit
1fe680dfb8

+ 22 - 0
ethereum/env/.env.xlayer.mainnet

@@ -0,0 +1,22 @@
+# XLayer mainnet env
+# Rename to .env
+
+# Common config for forge deployment
+RPC_URL=https://xlayerrpc.okx.com
+# --with-gas-price 5.1gwei
+FORGE_ARGS="--slow --legacy --gas-estimate-multiplier 130"
+
+# Wormhole Core Migrations
+INIT_SIGNERS=["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5"]
+INIT_CHAIN_ID=37
+INIT_GOV_CHAIN_ID=0x1
+INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
+INIT_EVM_CHAIN_ID=196
+
+# Bridge Migrations
+BRIDGE_INIT_CHAIN_ID=37
+BRIDGE_INIT_GOV_CHAIN_ID=0x1
+BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
+# See https://www.okx.com/xlayer/docs/developer/build-on-xlayer/zkevm-contracts#x-layer-layer-2
+BRIDGE_INIT_WETH=0xe538905cf8410324e03A5A23C1c177a474D59b2b
+BRIDGE_INIT_FINALITY=1

+ 2 - 2
node/cmd/guardiand/node.go

@@ -645,8 +645,8 @@ func runNode(cmd *cobra.Command, args []string) {
 	*baseContract = checkEvmArgs(logger, *baseRPC, *baseContract, "base", true)
 	*scrollContract = checkEvmArgs(logger, *scrollRPC, *scrollContract, "scroll", true)
 	*mantleContract = checkEvmArgs(logger, *mantleRPC, *mantleContract, "mantle", false)
-	*blastContract = checkEvmArgs(logger, *blastRPC, *blastContract, "blast", false)
-	*xlayerContract = checkEvmArgs(logger, *xlayerRPC, *xlayerContract, "xlayer", false)
+	*blastContract = checkEvmArgs(logger, *blastRPC, *blastContract, "blast", true)
+	*xlayerContract = checkEvmArgs(logger, *xlayerRPC, *xlayerContract, "xlayer", true)
 	*berachainContract = checkEvmArgs(logger, *berachainRPC, *berachainContract, "berachain", false)
 
 	// These chains will only ever be testnet / devnet.

+ 3 - 1
node/hack/repair_eth/repair_eth.go

@@ -48,6 +48,7 @@ var etherscanAPIMap = map[vaa.ChainID]string{
 	vaa.ChainIDBase:     "https://api.basescan.org",
 	vaa.ChainIDScroll:   "https://api.scrollscan.com",
 	vaa.ChainIDBlast:    "https://api.blastscan.io",
+	vaa.ChainIDXLayer:   "", // TODO: Does X Layer have an etherscan API endpoint?
 }
 
 var coreContractMap = map[vaa.ChainID]string{
@@ -67,7 +68,8 @@ var coreContractMap = map[vaa.ChainID]string{
 	vaa.ChainIDOptimism:  strings.ToLower("0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722"),
 	vaa.ChainIDBase:      strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"),
 	vaa.ChainIDScroll:    strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"),
-	vaa.ChainIDBlast:     strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6 "),
+	vaa.ChainIDBlast:     strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"),
+	vaa.ChainIDXLayer:    strings.ToLower("0x194B123c5E96B9b2E49763619985790Dc241CAC0"),
 }
 
 var (

+ 1 - 0
node/pkg/governor/mainnet_chains.go

@@ -37,6 +37,7 @@ func chainList() []chainConfigEntry {
 		{emitterChainID: vaa.ChainIDSei, dailyLimit: 5_000_000, bigTransactionSize: 500_000},
 		{emitterChainID: vaa.ChainIDScroll, 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},
 	}
 }

+ 4 - 0
sdk/js/CHANGELOG.md

@@ -1,5 +1,9 @@
 # Changelog
 
+## 0.10.16
+
+Add X Layer mainnet support
+
 ## 0.10.15
 
 Add Provenance to cosmwasm chains

+ 1 - 1
sdk/js/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@certusone/wormhole-sdk",
-  "version": "0.10.15",
+  "version": "0.10.16",
   "description": "SDK for interacting with Wormhole",
   "homepage": "https://wormhole.com",
   "main": "./lib/cjs/index.js",

+ 2 - 2
sdk/js/src/utils/consts.ts

@@ -324,8 +324,8 @@ const MAINNET = {
     nft_bridge: undefined,
   },
   xlayer: {
-    core: undefined,
-    token_bridge: undefined,
+    core: "0x194B123c5E96B9b2E49763619985790Dc241CAC0",
+    token_bridge: "0x5537857664B0f9eFe38C9f320F75fEf23234D904",
     nft_bridge: undefined,
   },
   linea: {

+ 1 - 0
sdk/mainnet_consts.go

@@ -120,6 +120,7 @@ var knownTokenbridgeEmitters = map[vaa.ChainID]string{
 	vaa.ChainIDXpla:      "8f9cf727175353b17a5f574270e370776123d90fd74956ae4277962b4fdee24c",
 	vaa.ChainIDScroll:    "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d",
 	vaa.ChainIDBlast:     "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d",
+	vaa.ChainIDXLayer:    "0000000000000000000000005537857664B0f9eFe38C9f320F75fEf23234D904",
 	vaa.ChainIDInjective: "00000000000000000000000045dbea4617971d93188eda21530bc6503d153313",
 	vaa.ChainIDSui:       "ccceeb29348f71bdd22ffef43a2a19c1f5b5e17c5cca5411529120182672ade5",
 	vaa.ChainIDSei:       "86c5fd957e2db8389553e1728f9c27964b22a8154091ccba54d75f4b10c61f5e",