瀏覽代碼

Deploy Scroll and Blast mainnet (#3909)

* Deploy Scroll and Blast mainnet

* Rework
bruce-riley 1 年之前
父節點
當前提交
73cbcabcec

+ 19 - 0
ethereum/env/.env.blast.mainnet

@@ -0,0 +1,19 @@
+# Blast mainnet env
+# Rename to .env to use with truffle migrations
+# Common config for forge deployment
+RPC_URL=https://rpc.ankr.com/blast
+FORGE_ARGS="--slow --priority-gas-price 1 --gas-estimate-multiplier 130"
+# Wormhole Core Migrations
+INIT_SIGNERS=["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5"]
+INIT_CHAIN_ID=36
+INIT_GOV_CHAIN_ID=0x1
+INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
+INIT_EVM_CHAIN_ID=81457
+# Bridge Migrations
+BRIDGE_INIT_CHAIN_ID=36
+BRIDGE_INIT_GOV_CHAIN_ID=0x1
+BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
+# Using "Non-rebasing WETH"
+# See https://docs.blast.io/building/contracts#l2-contract-addresses
+BRIDGE_INIT_WETH=0x9D020B1697035d9d54f115194c9e04a1e4Eb9aF7
+BRIDGE_INIT_FINALITY=1

+ 18 - 0
ethereum/env/.env.scroll.mainnet

@@ -0,0 +1,18 @@
+# Scroll mainnet env
+# Rename to .env to use with truffle migrations
+# Common config for forge deployment
+RPC_URL=https://rpc.ankr.com/scroll
+FORGE_ARGS="--slow --priority-gas-price 0 --gas-estimate-multiplier 130"
+# Wormhole Core Migrations
+INIT_SIGNERS=["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5"]
+INIT_CHAIN_ID=34
+INIT_GOV_CHAIN_ID=0x1
+INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
+INIT_EVM_CHAIN_ID=534352
+# Bridge Migrations
+BRIDGE_INIT_CHAIN_ID=34
+BRIDGE_INIT_GOV_CHAIN_ID=0x1
+BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
+# See https://docs.scroll.io/en/developers/scroll-contracts/#l2-predeploys
+BRIDGE_INIT_WETH=0x5300000000000000000000000000000000000004
+BRIDGE_INIT_FINALITY=1

+ 0 - 9
node/cmd/guardiand/node.go

@@ -766,11 +766,6 @@ func runNode(cmd *cobra.Command, args []string) {
 		logger.Fatal("Both --baseContract and --baseRPC must be set together or both unset")
 	}
 
-	// Scroll should not be allowed in mainnet until its finality policy is understood and implemented in the watcher.
-	if *scrollRPC != "" && !*testnetMode && !*unsafeDevMode {
-		logger.Fatal("scroll is currently only supported in devnet and testnet")
-	}
-
 	if (*scrollRPC == "") != (*scrollContract == "") {
 		logger.Fatal("Both --scrollContract and --scrollRPC must be set together or both unset")
 	}
@@ -783,10 +778,6 @@ func runNode(cmd *cobra.Command, args []string) {
 		logger.Fatal("Both --mantleContract and --mantleRPC must be set together or both unset")
 	}
 
-	if *blastRPC != "" && !*testnetMode && !*unsafeDevMode {
-		logger.Fatal("blast is currently only supported in devnet and testnet")
-	}
-
 	if (*blastRPC == "") != (*blastContract == "") {
 		logger.Fatal("Both --blastContract and --blastRPC must be set together or both unset")
 	}

+ 4 - 0
node/hack/repair_eth/repair_eth.go

@@ -46,6 +46,8 @@ var etherscanAPIMap = map[vaa.ChainID]string{
 	vaa.ChainIDArbitrum: "https://api.arbiscan.io",
 	vaa.ChainIDOptimism: "https://api-optimistic.etherscan.io",
 	vaa.ChainIDBase:     "https://api.basescan.org",
+	vaa.ChainIDScroll:   "https://api.scrollscan.com",
+	vaa.ChainIDBlast:    "https://api.blastscan.io",
 }
 
 var coreContractMap = map[vaa.ChainID]string{
@@ -64,6 +66,8 @@ var coreContractMap = map[vaa.ChainID]string{
 	vaa.ChainIDArbitrum:  strings.ToLower("0xa5f208e072434bC67592E4C49C1B991BA79BCA46"),
 	vaa.ChainIDOptimism:  strings.ToLower("0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722"),
 	vaa.ChainIDBase:      strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"),
+	vaa.ChainIDScroll:    strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6"),
+	vaa.ChainIDBlast:     strings.ToLower("0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6 "),
 }
 
 var (

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

@@ -35,6 +35,8 @@ func chainList() []chainConfigEntry {
 		{emitterChainID: vaa.ChainIDXpla, dailyLimit: 500_000, bigTransactionSize: 50_000},
 		{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.ChainIDBlast, dailyLimit: 500_000, bigTransactionSize: 50_000},
 		{emitterChainID: vaa.ChainIDWormchain, dailyLimit: 500_000, bigTransactionSize: 50_000},
 	}
 }

+ 2 - 0
sdk/js/CHANGELOG.md

@@ -3,6 +3,8 @@
 ## 0.10.15
 
 Add Provenance to cosmwasm chains
+Add Scroll mainnet support
+Add Blast mainnet support
 
 ## 0.10.14
 

+ 1 - 1
sdk/js/package.json

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

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

@@ -309,8 +309,8 @@ const MAINNET = {
     nft_bridge: undefined,
   },
   scroll: {
-    core: undefined,
-    token_bridge: undefined,
+    core: "0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",
+    token_bridge: "0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d",
     nft_bridge: undefined,
   },
   mantle: {
@@ -319,8 +319,8 @@ const MAINNET = {
     nft_bridge: undefined,
   },
   blast: {
-    core: undefined,
-    token_bridge: undefined,
+    core: "0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",
+    token_bridge: "0x24850c6f61C438823F01B7A3BF2B89B72174Fa9d",
     nft_bridge: undefined,
   },
   xlayer: {

+ 2 - 0
sdk/mainnet_consts.go

@@ -118,6 +118,8 @@ var knownTokenbridgeEmitters = map[vaa.ChainID]string{
 	vaa.ChainIDOptimism:  "0000000000000000000000001D68124e65faFC907325e3EDbF8c4d84499DAa8b",
 	vaa.ChainIDBase:      "0000000000000000000000008d2de8d2f73F1F4cAB472AC9A881C9b123C79627",
 	vaa.ChainIDXpla:      "8f9cf727175353b17a5f574270e370776123d90fd74956ae4277962b4fdee24c",
+	vaa.ChainIDScroll:    "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d",
+	vaa.ChainIDBlast:     "00000000000000000000000024850c6f61C438823F01B7A3BF2B89B72174Fa9d",
 	vaa.ChainIDInjective: "00000000000000000000000045dbea4617971d93188eda21530bc6503d153313",
 	vaa.ChainIDSui:       "ccceeb29348f71bdd22ffef43a2a19c1f5b5e17c5cca5411529120182672ade5",
 	vaa.ChainIDSei:       "86c5fd957e2db8389553e1728f9c27964b22a8154091ccba54d75f4b10c61f5e",