Skip to content

Commit db1ee86

Browse files
Deploy SeiEVM testnet (#4209)
* cli: arbitrary chain registration * Deploy SeiEVM Testnet --------- Co-authored-by: Evan Gray <battledingo@gmail.com>
1 parent 1dbe845 commit db1ee86

File tree

7 files changed

+51
-8
lines changed

7 files changed

+51
-8
lines changed

deployments/testnet/tokenBridgeVAAs.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ Blast (36) Testnet Token Bridge,0100000000010052b4615add1ca354feb81a7f90b70a0d78
3030
XLayer (37) Testnet Token Bridge,01000000000100c983babda02e84e346e49f823aa201d65c82e19c51cdfb555cc9aa2fa6809f4500f6344d86722b1a8023906d185c96bc9b4e332402ae2e05ec69d0d95c39ea81000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000005b1293100000000000000000000000000000000000000000000546f6b656e4272696467650100000025000000000000000000000000da91a06299bbf302091b053c6b9ef86eff0f930d
3131
Linea (38) Testnet Token Bridge,01000000000100411f65a20405ad0d85d6718a91bc16cf645a7eb7dbd29d4b2d0b9cc2d872dc01112cf96dc40c07ddf648325a5dcdba42c70612179126178e7fb9e9bcfef1cb4a01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000183785600000000000000000000000000000000000000000000546f6b656e4272696467650100000026000000000000000000000000c7a204bdbfe983fcd8d8e61d02b475d4073ff97e
3232
Berachain (39) Testnet Token Bridge,01000000000100c19d35faa10139fef5b3244f120efb67ad22d2d9ece7d777bcb6e957506ba9f15e2e6fd91a18dcdd6bf434d96d624fd725f957437f2e86dfdcbb6d0e97f3eeb100000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000404250300000000000000000000000000000000000000000000546f6b656e4272696467650100000027000000000000000000000000a10f2ef61de1f19f586ab8b6f2eba89bace63f7a
33+
SeiEVM (40) Testnet Token Bridge,0100000000010041e411c483dcf8a1dcd9ec21ca63a0265904418577f894089d4d4931b728369f1a7e088f72ff725184d0be107ef8d42069ee1b37257b98a7b276c09e03cb47e501000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000260150f00000000000000000000000000000000000000000000546f6b656e427269646765010000002800000000000000000000000023908a62110e21c04f3a4e011d24f901f911744a
3334
Snaxchain (43) Testnet Token Bridge,010000000001008ed60dec76f13f6da695fc5f134c8cf3527f264712e7bb98d2e54a5f457759e0491e3f1cb42eed9b84edc60a96836df98a3752c8a4e10977801e6c35a39f211b000000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000005ba971e00000000000000000000000000000000000000000000546f6b656e427269646765010000002b000000000000000000000000a10f2ef61de1f19f586ab8b6f2eba89bace63f7a
3435
Unichain (44) Testnet Token Bridge,010000000001004f9c7be0694bcabbf1fec2300004b9d82f6a122c459fababcfdc897e894769290c9a9655015909b5c17667d63f8edcec9ad9ee2d05e7cdb24a7a64136a4312c70100000001000000010001000000000000000000000000000000000000000000000000000000000000000400000000008006e100000000000000000000000000000000000000000000546f6b656e427269646765010000002c000000000000000000000000a10f2ef61de1f19f586ab8b6f2eba89bace63f7a
3536
Worldchain (45) Testnet Token Bridge,01000000000100f1ae141e77e67110aecade87c6a5f9b34545638aba1a3a7dbf6a311fe58c99fd351650c8593a8161a03cc7f94b76cdc0a5978fa3e0ffbfb3738085a070172cc5010000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000004f3500a00000000000000000000000000000000000000000000546f6b656e427269646765010000002d000000000000000000000000430855b4d43b8aeb9d2b9869b74d58dda79c0db2

ethereum/env/.env.seievm.devnet

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Sei EVM testnet read only env. Use to deploy the core contract with forge.
2+
3+
# ethereum$ ln -s env/.env.seievm.testnet .env
4+
5+
RPC_URL="https://evm-rpc-arctic-1.sei-apis.com/"
6+
FORGE_ARGS="--legacy --with-gas-price 3000000000" # 3 gwei
7+
8+
# Wormhole Core
9+
INIT_SIGNERS=["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5"]
10+
INIT_CHAIN_ID=40
11+
INIT_GOV_CHAIN_ID=0x1
12+
INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
13+
INIT_EVM_CHAIN_ID=713715

ethereum/env/.env.seievm.testnet

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1-
# Sei EVM testnet read only env. Use to deploy the core contract with forge.
1+
# SeiEVM testnet (atlantic-2) env
2+
# Rename to .env
23

3-
# ethereum$ ln -s env/.env.seievm.testnet .env
4+
# Common config for forge deployment
5+
RPC_URL="https://evm-rpc-testnet.sei-apis.com/"
46

5-
RPC_URL="https://evm-rpc-arctic-1.sei-apis.com/"
6-
FORGE_ARGS="--legacy --with-gas-price 3000000000" # 3 gwei
7-
8-
# Wormhole Core
9-
INIT_SIGNERS=["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5"]
7+
# Wormhole Core Migrations
8+
INIT_SIGNERS=["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"]
109
INIT_CHAIN_ID=40
1110
INIT_GOV_CHAIN_ID=0x1
1211
INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
13-
INIT_EVM_CHAIN_ID=713715
12+
INIT_EVM_CHAIN_ID=1328
13+
14+
# Bridge Migrations
15+
BRIDGE_INIT_CHAIN_ID=40
16+
BRIDGE_INIT_GOV_CHAIN_ID=0x1
17+
BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
18+
BRIDGE_INIT_WETH=0x3921eA6Cf927BE80211Bb57f19830700285b0AdA
19+
BRIDGE_INIT_FINALITY=1

node/cmd/guardiand/node.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,9 @@ var (
204204
hyperEvmRPC *string
205205
hyperEvmContract *string
206206

207+
seiEvmRPC *string
208+
seiEvmContract *string
209+
207210
sepoliaRPC *string
208211
sepoliaContract *string
209212

@@ -428,6 +431,9 @@ func init() {
428431
hyperEvmRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "hyperEvmRPC", "HyperEVM RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"})
429432
hyperEvmContract = NodeCmd.Flags().String("hyperEvmContract", "", "HyperEVM contract address")
430433

434+
seiEvmRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "seiEvmRPC", "SeiEVM RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"})
435+
seiEvmContract = NodeCmd.Flags().String("seiEvmContract", "", "SeiEVM contract address")
436+
431437
arbitrumSepoliaRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "arbitrumSepoliaRPC", "Arbitrum on Sepolia RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"})
432438
arbitrumSepoliaContract = NodeCmd.Flags().String("arbitrumSepoliaContract", "", "Arbitrum on Sepolia contract address")
433439

@@ -819,6 +825,7 @@ func runNode(cmd *cobra.Command, args []string) {
819825
*worldchainContract = checkEvmArgs(logger, *worldchainRPC, *worldchainContract, "worldchain", true)
820826
*inkContract = checkEvmArgs(logger, *inkRPC, *inkContract, "ink", false)
821827
*hyperEvmContract = checkEvmArgs(logger, *hyperEvmRPC, *hyperEvmContract, "hyperEvm", false)
828+
*seiEvmContract = checkEvmArgs(logger, *seiEvmRPC, *seiEvmContract, "seiEvm", false)
822829

823830
// These chains will only ever be testnet / devnet.
824831
*sepoliaContract = checkEvmArgs(logger, *sepoliaRPC, *sepoliaContract, "sepolia", false)
@@ -963,6 +970,7 @@ func runNode(cmd *cobra.Command, args []string) {
963970
rpcMap["monadDevnetRPC"] = *monadDevnetRPC
964971
}
965972
rpcMap["scrollRPC"] = *scrollRPC
973+
rpcMap["seiEvmRPC"] = *seiEvmRPC
966974
rpcMap["solanaRPC"] = *solanaRPC
967975
rpcMap["snaxchainRPC"] = *snaxchainRPC
968976
rpcMap["suiRPC"] = *suiRPC
@@ -1449,6 +1457,18 @@ func runNode(cmd *cobra.Command, args []string) {
14491457
watcherConfigs = append(watcherConfigs, wc)
14501458
}
14511459

1460+
if shouldStart(seiEvmRPC) {
1461+
wc := &evm.WatcherConfig{
1462+
NetworkID: "seievm",
1463+
ChainID: vaa.ChainIDSeiEVM,
1464+
Rpc: *seiEvmRPC,
1465+
Contract: *seiEvmContract,
1466+
CcqBackfillCache: *ccqBackfillCache,
1467+
}
1468+
1469+
watcherConfigs = append(watcherConfigs, wc)
1470+
}
1471+
14521472
if shouldStart(terraWS) {
14531473
wc := &cosmwasm.WatcherConfig{
14541474
NetworkID: "terra",

node/pkg/query/query.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ var perChainConfig = map[vaa.ChainID]PerChainConfig{
142142
vaa.ChainIDPolygonSepolia: {NumWorkers: 1, TimestampCacheSupported: true},
143143
vaa.ChainIDMonadDevnet: {NumWorkers: 1, TimestampCacheSupported: true},
144144
vaa.ChainIDHyperEVM: {NumWorkers: 1, TimestampCacheSupported: true},
145+
vaa.ChainIDSeiEVM: {NumWorkers: 1, TimestampCacheSupported: true},
145146
}
146147

147148
// GetPerChainConfig returns the config for the specified chain. If the chain is not configured it returns an empty struct,

node/pkg/watchers/evm/watcher.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,7 @@ func (w *Watcher) getFinality(ctx context.Context) (bool, bool, error) {
728728
w.chainID == vaa.ChainIDMoonbeam ||
729729
w.chainID == vaa.ChainIDOptimism ||
730730
w.chainID == vaa.ChainIDOptimismSepolia ||
731+
w.chainID == vaa.ChainIDSeiEVM ||
731732
w.chainID == vaa.ChainIDSepolia ||
732733
w.chainID == vaa.ChainIDSnaxchain ||
733734
w.chainID == vaa.ChainIDUnichain ||

sdk/testnet_consts.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ var knownTestnetTokenbridgeEmitters = map[vaa.ChainID]string{
3939
vaa.ChainIDXLayer: "000000000000000000000000dA91a06299BBF302091B053c6B9EF86Eff0f930D",
4040
vaa.ChainIDLinea: "000000000000000000000000C7A204bDBFe983FCD8d8E61D02b475D4073fF97e",
4141
vaa.ChainIDBerachain: "000000000000000000000000a10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a",
42+
vaa.ChainIDSeiEVM: "00000000000000000000000023908A62110e21C04F3A4e011d24F901F911744A",
4243
vaa.ChainIDSnaxchain: "000000000000000000000000a10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a",
4344
vaa.ChainIDUnichain: "000000000000000000000000a10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a",
4445
vaa.ChainIDWorldchain: "000000000000000000000000430855B4D43b8AEB9D2B9869B74d58dda79C0dB2",

0 commit comments

Comments
 (0)