Skip to content

Commit b0eb131

Browse files
bruce-rileyevan-gray
authored andcommitted
Deploy Ink testnet
1 parent 3dfb7f9 commit b0eb131

File tree

10 files changed

+167
-108
lines changed

10 files changed

+167
-108
lines changed

ethereum/env/.env.ink.testnet

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Ink testnet env
2+
# Rename to .env
3+
4+
# Common config for forge deployment
5+
RPC_URL=https://rpc-qnd-sepolia.inkonchain.com
6+
7+
# Wormhole Core Migrations
8+
INIT_SIGNERS=["0x13947Bd48b18E53fdAeEe77F3473391aC727C638"]
9+
INIT_CHAIN_ID=46
10+
INIT_GOV_CHAIN_ID=0x1
11+
INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
12+
INIT_EVM_CHAIN_ID=763373
13+
14+
# Bridge Migrations
15+
BRIDGE_INIT_CHAIN_ID=46
16+
BRIDGE_INIT_GOV_CHAIN_ID=0x1
17+
BRIDGE_INIT_GOV_CONTRACT=0x0000000000000000000000000000000000000000000000000000000000000004
18+
BRIDGE_INIT_FINALITY=1
19+
# Ink is an OP Stack chain so it uses the standard WETH.
20+
BRIDGE_INIT_WETH=0x4200000000000000000000000000000000000006

node/cmd/guardiand/adminnodes.go

+1
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ func runListNodes(cmd *cobra.Command, args []string) {
111111
{"Xpla", vaa.ChainIDXpla},
112112
{"Btc", vaa.ChainIDBtc},
113113
{"Injective", vaa.ChainIDInjective},
114+
{"Ink", vaa.ChainIDInk},
114115
{"Base", vaa.ChainIDBase},
115116
{"Sei", vaa.ChainIDSei},
116117
{"Scroll", vaa.ChainIDScroll},

node/cmd/guardiand/node.go

+20
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,9 @@ var (
198198
monadDevnetRPC *string
199199
monadDevnetContract *string
200200

201+
inkRPC *string
202+
inkContract *string
203+
201204
sepoliaRPC *string
202205
sepoliaContract *string
203206

@@ -415,6 +418,9 @@ func init() {
415418
baseRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "baseRPC", "Base RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"})
416419
baseContract = NodeCmd.Flags().String("baseContract", "", "Base contract address")
417420

421+
inkRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "inkRPC", "Ink RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"})
422+
inkContract = NodeCmd.Flags().String("inkContract", "", "Ink contract address")
423+
418424
arbitrumSepoliaRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "arbitrumSepoliaRPC", "Arbitrum on Sepolia RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"})
419425
arbitrumSepoliaContract = NodeCmd.Flags().String("arbitrumSepoliaContract", "", "Arbitrum on Sepolia contract address")
420426

@@ -799,6 +805,7 @@ func runNode(cmd *cobra.Command, args []string) {
799805
*snaxchainContract = checkEvmArgs(logger, *snaxchainRPC, *snaxchainContract, "snaxchain", true)
800806
*unichainContract = checkEvmArgs(logger, *unichainRPC, *unichainContract, "unichain", false)
801807
*worldchainContract = checkEvmArgs(logger, *worldchainRPC, *worldchainContract, "worldchain", true)
808+
*inkContract = checkEvmArgs(logger, *inkRPC, *inkContract, "ink", false)
802809

803810
// These chains will only ever be testnet / devnet.
804811
*sepoliaContract = checkEvmArgs(logger, *sepoliaRPC, *sepoliaContract, "sepolia", false)
@@ -916,6 +923,7 @@ func runNode(cmd *cobra.Command, args []string) {
916923
rpcMap["ibcWS"] = *ibcWS
917924
rpcMap["injectiveLCD"] = *injectiveLCD
918925
rpcMap["injectiveWS"] = *injectiveWS
926+
rpcMap["inkRPC"] = *inkRPC
919927
rpcMap["karuraRPC"] = *karuraRPC
920928
rpcMap["klaytnRPC"] = *klaytnRPC
921929
rpcMap["lineaRPC"] = *lineaRPC
@@ -1403,6 +1411,18 @@ func runNode(cmd *cobra.Command, args []string) {
14031411
watcherConfigs = append(watcherConfigs, wc)
14041412
}
14051413

1414+
if shouldStart(inkRPC) {
1415+
wc := &evm.WatcherConfig{
1416+
NetworkID: "ink",
1417+
ChainID: vaa.ChainIDInk,
1418+
Rpc: *inkRPC,
1419+
Contract: *inkContract,
1420+
CcqBackfillCache: *ccqBackfillCache,
1421+
}
1422+
1423+
watcherConfigs = append(watcherConfigs, wc)
1424+
}
1425+
14061426
if shouldStart(terraWS) {
14071427
wc := &cosmwasm.WatcherConfig{
14081428
NetworkID: "terra",

node/pkg/proto/publicrpc/v1/publicrpc.pb.go

+112-108
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node/pkg/query/query.go

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ var perChainConfig = map[vaa.ChainID]PerChainConfig{
133133
vaa.ChainIDSnaxchain: {NumWorkers: 1, TimestampCacheSupported: true},
134134
vaa.ChainIDUnichain: {NumWorkers: 1, TimestampCacheSupported: true},
135135
vaa.ChainIDWorldchain: {NumWorkers: 1, TimestampCacheSupported: true},
136+
vaa.ChainIDInk: {NumWorkers: 1, TimestampCacheSupported: true},
136137
vaa.ChainIDSepolia: {NumWorkers: 1, TimestampCacheSupported: true},
137138
vaa.ChainIDHolesky: {NumWorkers: 1, TimestampCacheSupported: true},
138139
vaa.ChainIDArbitrumSepolia: {NumWorkers: 1, TimestampCacheSupported: true},

node/pkg/watchers/evm/watcher.go

+1
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,7 @@ func (w *Watcher) getFinality(ctx context.Context) (bool, bool, error) {
720720
w.chainID == vaa.ChainIDBSC ||
721721
w.chainID == vaa.ChainIDEthereum ||
722722
w.chainID == vaa.ChainIDHolesky ||
723+
w.chainID == vaa.ChainIDInk ||
723724
w.chainID == vaa.ChainIDKarura ||
724725
w.chainID == vaa.ChainIDMantle ||
725726
w.chainID == vaa.ChainIDMonadDevnet ||

proto/publicrpc/v1/publicrpc.proto

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ enum ChainID {
5050
CHAIN_ID_SNAXCHAIN = 43;
5151
CHAIN_ID_UNICHAIN = 44;
5252
CHAIN_ID_WORLDCHAIN = 45;
53+
CHAIN_ID_INK = 46;
5354
CHAIN_ID_WORMCHAIN = 3104;
5455
CHAIN_ID_COSMOSHUB = 4000;
5556
CHAIN_ID_EVMOS = 4001;

sdk/testnet_consts.go

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ var knownTestnetTokenbridgeEmitters = map[vaa.ChainID]string{
4242
vaa.ChainIDSnaxchain: "000000000000000000000000a10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a",
4343
vaa.ChainIDUnichain: "000000000000000000000000a10f2eF61dE1f19f586ab8B6F2EbA89bACE63F7a",
4444
vaa.ChainIDWorldchain: "000000000000000000000000430855B4D43b8AEB9D2B9869B74d58dda79C0dB2",
45+
vaa.ChainIDInk: "000000000000000000000000376428e7f26D5867e69201b275553C45B09EE090",
4546
vaa.ChainIDSepolia: "000000000000000000000000DB5492265f6038831E89f495670FF909aDe94bd9",
4647
vaa.ChainIDHolesky: "00000000000000000000000076d093BbaE4529a342080546cAFEec4AcbA59EC6",
4748
vaa.ChainIDArbitrumSepolia: "000000000000000000000000C7A204bDBFe983FCD8d8E61D02b475D4073fF97e",

sdk/vaa/structs.go

+7
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,8 @@ func (c ChainID) String() string {
215215
return "unichain"
216216
case ChainIDWorldchain:
217217
return "worldchain"
218+
case ChainIDInk:
219+
return "ink"
218220
case ChainIDCosmoshub:
219221
return "cosmoshub"
220222
case ChainIDEvmos:
@@ -336,6 +338,8 @@ func ChainIDFromString(s string) (ChainID, error) {
336338
return ChainIDUnichain, nil
337339
case "worldchain":
338340
return ChainIDWorldchain, nil
341+
case "ink":
342+
return ChainIDInk, nil
339343
case "cosmoshub":
340344
return ChainIDCosmoshub, nil
341345
case "seievm":
@@ -416,6 +420,7 @@ func GetAllNetworkIDs() []ChainID {
416420
ChainIDSnaxchain,
417421
ChainIDUnichain,
418422
ChainIDWorldchain,
423+
ChainIDInk,
419424
ChainIDWormchain,
420425
ChainIDCosmoshub,
421426
ChainIDEvmos,
@@ -519,6 +524,8 @@ const (
519524
ChainIDUnichain ChainID = 44
520525
// ChainIDWorldchain is the ChainID of Worldchain
521526
ChainIDWorldchain ChainID = 45
527+
// ChainIDInk is the ChainID of Ink
528+
ChainIDInk ChainID = 46
522529
//ChainIDWormchain is the ChainID of Wormchain
523530
ChainIDWormchain ChainID = 3104
524531
// ChainIDCosmoshub is the ChainID of Cosmoshub

sdk/vaa/structs_test.go

+3
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ func TestChainIDFromString(t *testing.T) {
6868
{input: "snaxchain", output: ChainIDSnaxchain},
6969
{input: "unichain", output: ChainIDUnichain},
7070
{input: "worldchain", output: ChainIDWorldchain},
71+
{input: "ink", output: ChainIDInk},
7172
{input: "seievm", output: ChainIDSeiEVM},
7273
{input: "wormchain", output: ChainIDWormchain},
7374
{input: "cosmoshub", output: ChainIDCosmoshub},
@@ -126,6 +127,7 @@ func TestChainIDFromString(t *testing.T) {
126127
{input: "Snaxchain", output: ChainIDSnaxchain},
127128
{input: "Unichain", output: ChainIDUnichain},
128129
{input: "Worldchain", output: ChainIDWorldchain},
130+
{input: "Ink", output: ChainIDInk},
129131
{input: "SeiEVM", output: ChainIDSeiEVM},
130132
{input: "Wormchain", output: ChainIDWormchain},
131133
{input: "Cosmoshub", output: ChainIDCosmoshub},
@@ -325,6 +327,7 @@ func TestChainId_String(t *testing.T) {
325327
{input: 43, output: "snaxchain"},
326328
{input: 44, output: "unichain"},
327329
{input: 45, output: "worldchain"},
330+
{input: 46, output: "ink"},
328331
{input: 3104, output: "wormchain"},
329332
{input: 4000, output: "cosmoshub"},
330333
{input: 4001, output: "evmos"},

0 commit comments

Comments
 (0)