From a10aab1c6d309dc725374e6e3fa305dc078ec193 Mon Sep 17 00:00:00 2001 From: bruce-riley <96066700+bruce-riley@users.noreply.github.com> Date: Thu, 25 Jan 2024 12:55:02 -0600 Subject: [PATCH] Node: Remove Neon support (#3732) * Node: Remove Neon support * Code review rework --- node/cmd/guardiand/adminnodes.go | 1 - node/cmd/guardiand/node.go | 29 -- node/pkg/common/readiness_test.go | 92 ------ node/pkg/proto/publicrpc/v1/publicrpc.pb.go | 303 +++++++++--------- node/pkg/query/query.go | 1 - node/pkg/watchers/evm/finalizers/neon.go | 42 --- node/pkg/watchers/evm/finalizers/neon_test.go | 113 ------- node/pkg/watchers/evm/watcher.go | 25 -- proto/publicrpc/v1/publicrpc.proto | 2 +- sdk/testnet_consts.go | 2 - sdk/vaa/structs.go | 8 +- sdk/vaa/structs_test.go | 3 - 12 files changed, 152 insertions(+), 469 deletions(-) delete mode 100644 node/pkg/watchers/evm/finalizers/neon.go delete mode 100644 node/pkg/watchers/evm/finalizers/neon_test.go diff --git a/node/cmd/guardiand/adminnodes.go b/node/cmd/guardiand/adminnodes.go index 0f1dab68d..99cfefc7d 100644 --- a/node/cmd/guardiand/adminnodes.go +++ b/node/cmd/guardiand/adminnodes.go @@ -111,7 +111,6 @@ func runListNodes(cmd *cobra.Command, args []string) { {"Xpla", vaa.ChainIDXpla}, {"Btc", vaa.ChainIDBtc}, {"Injective", vaa.ChainIDInjective}, - {"Neon", vaa.ChainIDNeon}, {"Base", vaa.ChainIDBase}, {"Sei", vaa.ChainIDSei}, {"Scroll", vaa.ChainIDScroll}, diff --git a/node/cmd/guardiand/node.go b/node/cmd/guardiand/node.go index f71142cb6..389d8ef99 100644 --- a/node/cmd/guardiand/node.go +++ b/node/cmd/guardiand/node.go @@ -3,7 +3,6 @@ package guardiand import ( "context" "fmt" - "log" "net" _ "net/http/pprof" // #nosec G108 we are using a custom router (`router := mux.NewRouter()`) and thus not automatically expose pprof. "os" @@ -102,9 +101,6 @@ var ( moonbeamRPC *string moonbeamContract *string - neonRPC *string - neonContract *string - terraWS *string terraLCD *string terraContract *string @@ -283,9 +279,6 @@ func init() { moonbeamRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "moonbeamRPC", "Moonbeam RPC URL", "ws://eth-devnet:8545", []string{"ws", "wss"}) moonbeamContract = NodeCmd.Flags().String("moonbeamContract", "", "Moonbeam contract address") - neonRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "neonRPC", "Neon RPC URL", "http://eth-devnet:8545", []string{"http", "https"}) - neonContract = NodeCmd.Flags().String("neonContract", "", "Neon contract address") - terraWS = node.RegisterFlagWithValidationOrFail(NodeCmd, "terraWS", "Path to terrad root for websocket connection", "ws://terra-terrad:26657/websocket", []string{"ws", "wss"}) terraLCD = node.RegisterFlagWithValidationOrFail(NodeCmd, "terraLCD", "Path to LCD service root for http calls", "http://terra-terrad:1317", []string{"http", "https"}) terraContract = NodeCmd.Flags().String("terraContract", "", "Wormhole contract address on Terra blockchain") @@ -709,9 +702,6 @@ func runNode(cmd *cobra.Command, args []string) { // These chains are only allowed in devnet and testnet. if *testnetMode || *unsafeDevMode { - if (*neonRPC == "") != (*neonContract == "") { - logger.Fatal("Both --neonRPC and --neonContract must be set together or both unset") - } if (*sepoliaRPC == "") != (*sepoliaContract == "") { logger.Fatal("Both --sepoliaRPC and --sepoliaContract must be set together or both unset") } @@ -728,9 +718,6 @@ func runNode(cmd *cobra.Command, args []string) { logger.Fatal("Both --optimismSepoliaRPC and --optimismSepoliaContract must be set together or both unset") } } else { - if *neonRPC != "" || *neonContract != "" { - logger.Fatal("Please do not specify --neonRPC or --neonContract") - } if *sepoliaRPC != "" || *sepoliaContract != "" { logger.Fatal("Please do not specify --sepoliaRPC or --sepoliaContract") } @@ -943,7 +930,6 @@ func runNode(cmd *cobra.Command, args []string) { rpcMap["mantleRPC"] = *mantleRPC rpcMap["moonbeamRPC"] = *moonbeamRPC rpcMap["nearRPC"] = *nearRPC - rpcMap["neonRPC"] = *neonRPC rpcMap["oasisRPC"] = *oasisRPC rpcMap["optimismRPC"] = *optimismRPC rpcMap["polygonRPC"] = *polygonRPC @@ -1492,21 +1478,6 @@ func runNode(cmd *cobra.Command, args []string) { watcherConfigs = append(watcherConfigs, wc) } - if *testnetMode && shouldStart(neonRPC) { - if !shouldStart(solanaRPC) { - log.Fatalf("If neon is enabled then solana must also be enabled.") - } - wc := &evm.WatcherConfig{ - NetworkID: "neon", - ChainID: vaa.ChainIDNeon, - Rpc: *neonRPC, - Contract: *neonContract, - L1FinalizerRequired: "solana-finalized", - } - - watcherConfigs = append(watcherConfigs, wc) - } - if *testnetMode || *unsafeDevMode { if shouldStart(sepoliaRPC) { wc := &evm.WatcherConfig{ diff --git a/node/pkg/common/readiness_test.go b/node/pkg/common/readiness_test.go index af841c5df..c06f6dd31 100644 --- a/node/pkg/common/readiness_test.go +++ b/node/pkg/common/readiness_test.go @@ -3,103 +3,11 @@ package common import ( "testing" - "github.com/certusone/wormhole/node/pkg/readiness" "github.com/wormhole-foundation/wormhole/sdk/vaa" "github.com/stretchr/testify/assert" ) -const ( - // Ethereum is defined in readiness.go. - ReadinessSolanaSyncing readiness.Component = "solanaSyncing" - ReadinessTerraSyncing readiness.Component = "terraSyncing" - ReadinessAlgorandSyncing readiness.Component = "algorandSyncing" - ReadinessNearSyncing readiness.Component = "nearSyncing" - ReadinessAptosSyncing readiness.Component = "aptosSyncing" - ReadinessSuiSyncing readiness.Component = "suiSyncing" - ReadinessBSCSyncing readiness.Component = "bscSyncing" - ReadinessPolygonSyncing readiness.Component = "polygonSyncing" - ReadinessAvalancheSyncing readiness.Component = "avalancheSyncing" - ReadinessOasisSyncing readiness.Component = "oasisSyncing" - ReadinessAuroraSyncing readiness.Component = "auroraSyncing" - ReadinessFantomSyncing readiness.Component = "fantomSyncing" - ReadinessKaruraSyncing readiness.Component = "karuraSyncing" - ReadinessAcalaSyncing readiness.Component = "acalaSyncing" - ReadinessKlaytnSyncing readiness.Component = "klaytnSyncing" - ReadinessCeloSyncing readiness.Component = "celoSyncing" - ReadinessMoonbeamSyncing readiness.Component = "moonbeamSyncing" - ReadinessNeonSyncing readiness.Component = "neonSyncing" - ReadinessTerra2Syncing readiness.Component = "terra2Syncing" - ReadinessInjectiveSyncing readiness.Component = "injectiveSyncing" - ReadinessXplaSyncing readiness.Component = "xplaSyncing" - ReadinessPythNetSyncing readiness.Component = "pythnetSyncing" - ReadinessArbitrumSyncing readiness.Component = "arbitrumSyncing" - ReadinessOptimismSyncing readiness.Component = "optimismSyncing" - ReadinessBaseSyncing readiness.Component = "baseSyncing" - ReadinessWormchainSyncing readiness.Component = "wormchainSyncing" -) - -// This test is just to make sure that nothing got broken when we switched from manually specifying the readiness syncing labels. -// Once this functionality is merged, this test can probably be deleted (so that we don't need to keep adding new chains going forward). -func TestConvertChainIdToReadinessSyncing(t *testing.T) { - type test struct { - input vaa.ChainID - output readiness.Component - } - - // Positive Test Cases - p_tests := []test{ - {input: vaa.ChainIDSolana, output: ReadinessSolanaSyncing}, - {input: vaa.ChainIDEthereum, output: ReadinessEthSyncing}, - {input: vaa.ChainIDTerra, output: ReadinessTerraSyncing}, - {input: vaa.ChainIDBSC, output: ReadinessBSCSyncing}, - {input: vaa.ChainIDPolygon, output: ReadinessPolygonSyncing}, - {input: vaa.ChainIDAvalanche, output: ReadinessAvalancheSyncing}, - {input: vaa.ChainIDOasis, output: ReadinessOasisSyncing}, - {input: vaa.ChainIDAlgorand, output: ReadinessAlgorandSyncing}, - {input: vaa.ChainIDAptos, output: ReadinessAptosSyncing}, - {input: vaa.ChainIDSui, output: ReadinessSuiSyncing}, - {input: vaa.ChainIDNear, output: ReadinessNearSyncing}, - {input: vaa.ChainIDAurora, output: ReadinessAuroraSyncing}, - {input: vaa.ChainIDFantom, output: ReadinessFantomSyncing}, - {input: vaa.ChainIDKarura, output: ReadinessKaruraSyncing}, - {input: vaa.ChainIDAcala, output: ReadinessAcalaSyncing}, - {input: vaa.ChainIDKlaytn, output: ReadinessKlaytnSyncing}, - {input: vaa.ChainIDCelo, output: ReadinessCeloSyncing}, - {input: vaa.ChainIDMoonbeam, output: ReadinessMoonbeamSyncing}, - {input: vaa.ChainIDNeon, output: ReadinessNeonSyncing}, - {input: vaa.ChainIDTerra2, output: ReadinessTerra2Syncing}, - {input: vaa.ChainIDInjective, output: ReadinessInjectiveSyncing}, - {input: vaa.ChainIDArbitrum, output: ReadinessArbitrumSyncing}, - {input: vaa.ChainIDPythNet, output: ReadinessPythNetSyncing}, - {input: vaa.ChainIDOptimism, output: ReadinessOptimismSyncing}, - {input: vaa.ChainIDXpla, output: ReadinessXplaSyncing}, - // BTC readiness not defined yet {input: vaa.ChainIDBtc, output: ReadinessBtcSyncing}, - {input: vaa.ChainIDBase, output: ReadinessBaseSyncing}, - } - - // Negative Test Cases - n_tests := []test{ - {input: vaa.ChainIDUnset, output: ""}, - } - - for _, tc := range p_tests { - t.Run(tc.input.String(), func(t *testing.T) { - chainId, err := ConvertChainIdToReadinessSyncing(tc.input) - assert.Equal(t, tc.output, chainId) - assert.NoError(t, err) - }) - } - - for _, tc := range n_tests { - t.Run(tc.input.String(), func(t *testing.T) { - chainId, err := ConvertChainIdToReadinessSyncing(tc.input) - assert.Equal(t, tc.output, chainId) - assert.Error(t, err) - }) - } -} - func TestMustRegisterReadinessSyncing(t *testing.T) { // The first time should work. assert.NotPanics(t, func() { diff --git a/node/pkg/proto/publicrpc/v1/publicrpc.pb.go b/node/pkg/proto/publicrpc/v1/publicrpc.pb.go index d2adf887c..da7b36c72 100644 --- a/node/pkg/proto/publicrpc/v1/publicrpc.pb.go +++ b/node/pkg/proto/publicrpc/v1/publicrpc.pb.go @@ -25,24 +25,24 @@ const ( type ChainID int32 const ( - ChainID_CHAIN_ID_UNSPECIFIED ChainID = 0 - ChainID_CHAIN_ID_SOLANA ChainID = 1 - ChainID_CHAIN_ID_ETHEREUM ChainID = 2 - ChainID_CHAIN_ID_TERRA ChainID = 3 - ChainID_CHAIN_ID_BSC ChainID = 4 - ChainID_CHAIN_ID_POLYGON ChainID = 5 - ChainID_CHAIN_ID_AVALANCHE ChainID = 6 - ChainID_CHAIN_ID_OASIS ChainID = 7 - ChainID_CHAIN_ID_ALGORAND ChainID = 8 - ChainID_CHAIN_ID_AURORA ChainID = 9 - ChainID_CHAIN_ID_FANTOM ChainID = 10 - ChainID_CHAIN_ID_KARURA ChainID = 11 - ChainID_CHAIN_ID_ACALA ChainID = 12 - ChainID_CHAIN_ID_KLAYTN ChainID = 13 - ChainID_CHAIN_ID_CELO ChainID = 14 - ChainID_CHAIN_ID_NEAR ChainID = 15 - ChainID_CHAIN_ID_MOONBEAM ChainID = 16 - ChainID_CHAIN_ID_NEON ChainID = 17 + ChainID_CHAIN_ID_UNSPECIFIED ChainID = 0 + ChainID_CHAIN_ID_SOLANA ChainID = 1 + ChainID_CHAIN_ID_ETHEREUM ChainID = 2 + ChainID_CHAIN_ID_TERRA ChainID = 3 + ChainID_CHAIN_ID_BSC ChainID = 4 + ChainID_CHAIN_ID_POLYGON ChainID = 5 + ChainID_CHAIN_ID_AVALANCHE ChainID = 6 + ChainID_CHAIN_ID_OASIS ChainID = 7 + ChainID_CHAIN_ID_ALGORAND ChainID = 8 + ChainID_CHAIN_ID_AURORA ChainID = 9 + ChainID_CHAIN_ID_FANTOM ChainID = 10 + ChainID_CHAIN_ID_KARURA ChainID = 11 + ChainID_CHAIN_ID_ACALA ChainID = 12 + ChainID_CHAIN_ID_KLAYTN ChainID = 13 + ChainID_CHAIN_ID_CELO ChainID = 14 + ChainID_CHAIN_ID_NEAR ChainID = 15 + ChainID_CHAIN_ID_MOONBEAM ChainID = 16 + // OBSOLETE: CHAIN_ID_NEON = 17; ChainID_CHAIN_ID_TERRA2 ChainID = 18 ChainID_CHAIN_ID_INJECTIVE ChainID = 19 ChainID_CHAIN_ID_OSMOSIS ChainID = 20 @@ -92,7 +92,6 @@ var ( 14: "CHAIN_ID_CELO", 15: "CHAIN_ID_NEAR", 16: "CHAIN_ID_MOONBEAM", - 17: "CHAIN_ID_NEON", 18: "CHAIN_ID_TERRA2", 19: "CHAIN_ID_INJECTIVE", 20: "CHAIN_ID_OSMOSIS", @@ -139,7 +138,6 @@ var ( "CHAIN_ID_CELO": 14, "CHAIN_ID_NEAR": 15, "CHAIN_ID_MOONBEAM": 16, - "CHAIN_ID_NEON": 17, "CHAIN_ID_TERRA2": 18, "CHAIN_ID_INJECTIVE": 19, "CHAIN_ID_OSMOSIS": 20, @@ -1535,7 +1533,7 @@ var file_publicrpc_v1_publicrpc_proto_rawDesc = []byte{ 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x2a, 0xea, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x2a, 0xd7, 0x07, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, @@ -1559,140 +1557,139 @@ var file_publicrpc_v1_publicrpc_proto_rawDesc = []byte{ 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x45, 0x4c, 0x4f, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x41, 0x52, 0x10, 0x0f, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x4f, 0x4f, 0x4e, 0x42, 0x45, - 0x41, 0x4d, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, - 0x5f, 0x4e, 0x45, 0x4f, 0x4e, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, - 0x5f, 0x49, 0x44, 0x5f, 0x54, 0x45, 0x52, 0x52, 0x41, 0x32, 0x10, 0x12, 0x12, 0x16, 0x0a, 0x12, - 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x4a, 0x45, 0x43, 0x54, 0x49, - 0x56, 0x45, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, - 0x5f, 0x4f, 0x53, 0x4d, 0x4f, 0x53, 0x49, 0x53, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, - 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x55, 0x49, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, - 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x50, 0x54, 0x4f, 0x53, 0x10, 0x16, - 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x42, - 0x49, 0x54, 0x52, 0x55, 0x4d, 0x10, 0x17, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, - 0x5f, 0x49, 0x44, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x4d, 0x10, 0x18, 0x12, 0x13, - 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x4e, 0x4f, 0x53, 0x49, - 0x53, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, - 0x50, 0x59, 0x54, 0x48, 0x4e, 0x45, 0x54, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, - 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x58, 0x50, 0x4c, 0x41, 0x10, 0x1c, 0x12, 0x10, 0x0a, 0x0c, - 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x42, 0x54, 0x43, 0x10, 0x1d, 0x12, 0x11, - 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, - 0x1e, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x45, - 0x49, 0x10, 0x20, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, - 0x52, 0x4f, 0x4f, 0x54, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x21, 0x12, 0x13, 0x0a, 0x0f, 0x43, - 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x10, 0x22, - 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x4e, - 0x54, 0x4c, 0x45, 0x10, 0x23, 0x12, 0x17, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, - 0x44, 0x5f, 0x57, 0x4f, 0x52, 0x4d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x10, 0xa0, 0x18, 0x12, 0x17, - 0x0a, 0x12, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x4f, 0x53, 0x4d, 0x4f, - 0x53, 0x48, 0x55, 0x42, 0x10, 0xa0, 0x1f, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, - 0x5f, 0x49, 0x44, 0x5f, 0x45, 0x56, 0x4d, 0x4f, 0x53, 0x10, 0xa1, 0x1f, 0x12, 0x14, 0x0a, 0x0f, - 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4b, 0x55, 0x4a, 0x49, 0x52, 0x41, 0x10, - 0xa2, 0x1f, 0x12, 0x15, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4e, - 0x45, 0x55, 0x54, 0x52, 0x4f, 0x4e, 0x10, 0xa3, 0x1f, 0x12, 0x16, 0x0a, 0x11, 0x43, 0x48, 0x41, - 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x45, 0x4c, 0x45, 0x53, 0x54, 0x49, 0x41, 0x10, 0xa4, - 0x1f, 0x12, 0x15, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x45, - 0x50, 0x4f, 0x4c, 0x49, 0x41, 0x10, 0x92, 0x4e, 0x12, 0x1e, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x49, - 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x42, 0x49, 0x54, 0x52, 0x55, 0x4d, 0x5f, 0x53, 0x45, - 0x50, 0x4f, 0x4c, 0x49, 0x41, 0x10, 0x93, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x43, 0x48, 0x41, 0x49, - 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x45, 0x50, 0x4f, 0x4c, 0x49, - 0x41, 0x10, 0x94, 0x4e, 0x12, 0x1e, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, - 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x4d, 0x5f, 0x53, 0x45, 0x50, 0x4f, 0x4c, 0x49, - 0x41, 0x10, 0x95, 0x4e, 0x12, 0x15, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, - 0x5f, 0x48, 0x4f, 0x4c, 0x45, 0x53, 0x4b, 0x59, 0x10, 0x96, 0x4e, 0x32, 0x86, 0x0b, 0x0a, 0x10, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x52, 0x50, 0x43, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x7c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, - 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, - 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0xbb, - 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x12, - 0x21, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x12, 0x5c, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x2f, 0x7b, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, - 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x69, 0x64, 0x2e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d, 0x12, 0xbd, 0x01, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, - 0x41, 0x41, 0x12, 0x26, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, - 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76, 0x61, - 0x61, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, - 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x69, 0x64, 0x2e, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x7d, 0x12, 0x91, 0x01, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, - 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, - 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, 0x72, - 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x75, 0x61, - 0x72, 0x64, 0x69, 0x61, 0x6e, 0x73, 0x65, 0x74, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x12, 0xcc, 0x01, 0x0a, 0x23, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, - 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, - 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, + 0x41, 0x4d, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, + 0x5f, 0x54, 0x45, 0x52, 0x52, 0x41, 0x32, 0x10, 0x12, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x49, 0x4e, 0x4a, 0x45, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, + 0x13, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4f, 0x53, + 0x4d, 0x4f, 0x53, 0x49, 0x53, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x41, 0x49, 0x4e, + 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x55, 0x49, 0x10, 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x50, 0x54, 0x4f, 0x53, 0x10, 0x16, 0x12, 0x15, 0x0a, + 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x42, 0x49, 0x54, 0x52, + 0x55, 0x4d, 0x10, 0x17, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4d, 0x49, 0x53, 0x4d, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x43, + 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x47, 0x4e, 0x4f, 0x53, 0x49, 0x53, 0x10, 0x19, + 0x12, 0x14, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x50, 0x59, 0x54, + 0x48, 0x4e, 0x45, 0x54, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, + 0x49, 0x44, 0x5f, 0x58, 0x50, 0x4c, 0x41, 0x10, 0x1c, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x42, 0x54, 0x43, 0x10, 0x1d, 0x12, 0x11, 0x0a, 0x0d, 0x43, + 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x1e, 0x12, 0x10, + 0x0a, 0x0c, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x49, 0x10, 0x20, + 0x12, 0x16, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x52, 0x4f, 0x4f, + 0x54, 0x53, 0x54, 0x4f, 0x43, 0x4b, 0x10, 0x21, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x48, 0x41, 0x49, + 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x10, 0x22, 0x12, 0x13, 0x0a, + 0x0f, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4d, 0x41, 0x4e, 0x54, 0x4c, 0x45, + 0x10, 0x23, 0x12, 0x17, 0x0a, 0x12, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x57, + 0x4f, 0x52, 0x4d, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x10, 0xa0, 0x18, 0x12, 0x17, 0x0a, 0x12, 0x43, + 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x4f, 0x53, 0x4d, 0x4f, 0x53, 0x48, 0x55, + 0x42, 0x10, 0xa0, 0x1f, 0x12, 0x13, 0x0a, 0x0e, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, + 0x5f, 0x45, 0x56, 0x4d, 0x4f, 0x53, 0x10, 0xa1, 0x1f, 0x12, 0x14, 0x0a, 0x0f, 0x43, 0x48, 0x41, + 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4b, 0x55, 0x4a, 0x49, 0x52, 0x41, 0x10, 0xa2, 0x1f, 0x12, + 0x15, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4e, 0x45, 0x55, 0x54, + 0x52, 0x4f, 0x4e, 0x10, 0xa3, 0x1f, 0x12, 0x16, 0x0a, 0x11, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, + 0x49, 0x44, 0x5f, 0x43, 0x45, 0x4c, 0x45, 0x53, 0x54, 0x49, 0x41, 0x10, 0xa4, 0x1f, 0x12, 0x15, + 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x50, 0x4f, 0x4c, + 0x49, 0x41, 0x10, 0x92, 0x4e, 0x12, 0x1e, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, + 0x44, 0x5f, 0x41, 0x52, 0x42, 0x49, 0x54, 0x52, 0x55, 0x4d, 0x5f, 0x53, 0x45, 0x50, 0x4f, 0x4c, + 0x49, 0x41, 0x10, 0x93, 0x4e, 0x12, 0x1a, 0x0a, 0x15, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, + 0x44, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x53, 0x45, 0x50, 0x4f, 0x4c, 0x49, 0x41, 0x10, 0x94, + 0x4e, 0x12, 0x1e, 0x0a, 0x19, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x4f, 0x50, + 0x54, 0x49, 0x4d, 0x49, 0x53, 0x4d, 0x5f, 0x53, 0x45, 0x50, 0x4f, 0x4c, 0x49, 0x41, 0x10, 0x95, + 0x4e, 0x12, 0x15, 0x0a, 0x10, 0x43, 0x48, 0x41, 0x49, 0x4e, 0x5f, 0x49, 0x44, 0x5f, 0x48, 0x4f, + 0x4c, 0x45, 0x53, 0x4b, 0x59, 0x10, 0x96, 0x4e, 0x32, 0x86, 0x0b, 0x0a, 0x10, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x52, 0x50, 0x43, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7c, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, + 0x74, 0x73, 0x12, 0x26, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x73, + 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x76, 0x31, + 0x2f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x0c, + 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x12, 0x21, 0x2e, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5e, 0x12, 0x5c, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x2f, 0x7b, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d, 0x12, 0xbd, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x12, + 0x26, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x42, 0x61, 0x74, 0x63, 0x68, 0x56, 0x41, 0x41, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x57, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x61, 0x2f, 0x7b, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, + 0x64, 0x2e, 0x74, 0x78, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x69, 0x64, 0x2e, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x7d, 0x12, 0x91, 0x01, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, 0x6e, + 0x53, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, + 0x72, 0x64, 0x69, 0x61, 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x75, 0x61, 0x72, 0x64, 0x69, 0x61, + 0x6e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x75, 0x61, 0x72, 0x64, 0x69, + 0x61, 0x6e, 0x73, 0x65, 0x74, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0xcc, 0x01, + 0x0a, 0x23, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x6f, 0x72, 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, - 0x9a, 0x01, 0x0a, 0x17, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x45, - 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x12, 0x2c, 0x2e, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, - 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, - 0x41, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x75, 0x62, 0x6c, + 0x43, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x38, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, + 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x39, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x79, 0x43, 0x68, 0x61, + 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, + 0x2f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x9a, 0x01, 0x0a, + 0x17, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x12, 0x2c, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, + 0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, + 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, + 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, + 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x65, 0x6e, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x12, 0xe4, 0x01, 0x0a, 0x15, 0x47, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x64, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41, + 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, + 0x6f, 0x72, 0x2f, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x61, 0x5f, 0x65, 0x6e, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x64, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, 0x2f, 0x7b, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x7d, + 0x12, 0x8e, 0x01, 0x0a, 0x14, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, - 0x72, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x56, 0x41, 0x41, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, - 0x12, 0x1a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x65, - 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x61, 0x73, 0x12, 0xe4, 0x01, 0x0a, - 0x15, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45, 0x6e, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x12, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, - 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, - 0x56, 0x41, 0x41, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x49, 0x73, 0x56, 0x41, 0x41, 0x45, - 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x12, 0x6a, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, 0x76, - 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x69, 0x73, 0x5f, 0x76, 0x61, 0x61, 0x5f, 0x65, 0x6e, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x64, 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, - 0x64, 0x2e, 0x65, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x7d, - 0x2f, 0x7b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x65, 0x6d, 0x69, - 0x74, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x7b, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x2e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x7d, 0x12, 0x8e, 0x01, 0x0a, 0x14, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, - 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, - 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x72, 0x70, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, - 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, - 0x2f, 0x67, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, - 0x6c, 0x69, 0x73, 0x74, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, 0x6f, 0x6e, 0x65, 0x2f, 0x77, 0x6f, 0x72, - 0x6d, 0x68, 0x6f, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2f, 0x76, - 0x31, 0x3b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x76, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6f, 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x47, 0x65, 0x74, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x6f, + 0x76, 0x65, 0x72, 0x6e, 0x6f, 0x72, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x42, 0x47, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x65, 0x72, 0x74, 0x75, 0x73, 0x6f, 0x6e, 0x65, 0x2f, 0x77, 0x6f, 0x72, 0x6d, 0x68, 0x6f, + 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x2f, 0x76, 0x31, 0x3b, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x72, 0x70, 0x63, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/node/pkg/query/query.go b/node/pkg/query/query.go index 34f1b83d2..1cd41a7b5 100644 --- a/node/pkg/query/query.go +++ b/node/pkg/query/query.go @@ -141,7 +141,6 @@ func handleQueryRequestsImpl( vaa.ChainIDKlaytn: {}, vaa.ChainIDCelo: {}, vaa.ChainIDMoonbeam: {}, - vaa.ChainIDNeon: {}, vaa.ChainIDArbitrum: {}, vaa.ChainIDOptimism: {}, vaa.ChainIDBase: {}, diff --git a/node/pkg/watchers/evm/finalizers/neon.go b/node/pkg/watchers/evm/finalizers/neon.go deleted file mode 100644 index 3e9d72256..000000000 --- a/node/pkg/watchers/evm/finalizers/neon.go +++ /dev/null @@ -1,42 +0,0 @@ -package finalizers - -import ( - "context" - "fmt" - - "github.com/certusone/wormhole/node/pkg/watchers/evm/connectors" - "github.com/certusone/wormhole/node/pkg/watchers/interfaces" - - "go.uber.org/zap" -) - -// NeonFinalizer implements the finality check for Neon. The Neon block number is actually the Solana slot number. -// Blocks on Neon should not be considered finalized until that slot is finalized on Solana. Confirmed this with the -// Neon team on 11/12/2022. Also confirmed that they do not have a websocket interface so we need to poll for log events. -type NeonFinalizer struct { - logger *zap.Logger - l1Finalizer interfaces.L1Finalizer -} - -func NewNeonFinalizer(logger *zap.Logger, l1Finalizer interfaces.L1Finalizer) *NeonFinalizer { - return &NeonFinalizer{ - logger: logger, - l1Finalizer: l1Finalizer, - } -} - -// IsBlockFinalized compares the number of the Neon block with the latest finalized block on Solana. -func (f *NeonFinalizer) IsBlockFinalized(ctx context.Context, block *connectors.NewBlock) (bool, error) { - if block == nil { - return false, fmt.Errorf("block is nil") - } - - latestL1Block := f.l1Finalizer.GetLatestFinalizedBlockNumber() - if latestL1Block == 0 { - // This happens on start up. - return false, nil - } - - isFinalized := block.Number.Uint64() <= latestL1Block - return isFinalized, nil -} diff --git a/node/pkg/watchers/evm/finalizers/neon_test.go b/node/pkg/watchers/evm/finalizers/neon_test.go deleted file mode 100644 index 927cfa6b2..000000000 --- a/node/pkg/watchers/evm/finalizers/neon_test.go +++ /dev/null @@ -1,113 +0,0 @@ -package finalizers - -import ( - "context" - "math/big" - "testing" - - "github.com/certusone/wormhole/node/pkg/watchers/evm/connectors" - - ethCommon "github.com/ethereum/go-ethereum/common" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" - - "go.uber.org/zap" -) - -// mockL1Finalizer implements the L1Finalizer interface for testing purposes. -type mockL1Finalizer struct { - LatestFinalizedBlockNumber uint64 -} - -func (m *mockL1Finalizer) GetLatestFinalizedBlockNumber() uint64 { - return m.LatestFinalizedBlockNumber -} - -func TestNeonErrorReturnedIfBlockIsNil(t *testing.T) { - ctx := context.Background() - logger := zap.NewNop() - l1Finalizer := mockL1Finalizer{LatestFinalizedBlockNumber: 125} - - finalizer := NewNeonFinalizer(logger, &l1Finalizer) - assert.NotNil(t, finalizer) - - _, err := finalizer.IsBlockFinalized(ctx, nil) - require.Error(t, err) -} - -func TestNeonNotFinalizedIfNoFinalizedL1BlockYet(t *testing.T) { - ctx := context.Background() - logger := zap.NewNop() - l1Finalizer := mockL1Finalizer{} - - finalizer := NewNeonFinalizer(logger, &l1Finalizer) - assert.NotNil(t, finalizer) - - block := &connectors.NewBlock{ - Number: big.NewInt(125), - Hash: ethCommon.Hash{}, - L1BlockNumber: nil, - } - - finalized, err := finalizer.IsBlockFinalized(ctx, block) - require.NoError(t, err) - assert.Equal(t, false, finalized) -} - -func TestNeonNotFinalizedWhenL1IsLessThanL2(t *testing.T) { - ctx := context.Background() - logger := zap.NewNop() - l1Finalizer := mockL1Finalizer{LatestFinalizedBlockNumber: 125} - - finalizer := NewNeonFinalizer(logger, &l1Finalizer) - assert.NotNil(t, finalizer) - - block := &connectors.NewBlock{ - Number: big.NewInt(127), - Hash: ethCommon.Hash{}, - L1BlockNumber: nil, - } - - finalized, err := finalizer.IsBlockFinalized(ctx, block) - require.NoError(t, err) - assert.Equal(t, false, finalized) -} - -func TestNeonIsFinalizedWhenL1EqualsL2(t *testing.T) { - ctx := context.Background() - logger := zap.NewNop() - l1Finalizer := mockL1Finalizer{LatestFinalizedBlockNumber: 125} - - finalizer := NewNeonFinalizer(logger, &l1Finalizer) - assert.NotNil(t, finalizer) - - block := &connectors.NewBlock{ - Number: big.NewInt(125), - Hash: ethCommon.Hash{}, - L1BlockNumber: nil, - } - - finalized, err := finalizer.IsBlockFinalized(ctx, block) - require.NoError(t, err) - assert.Equal(t, true, finalized) -} - -func TestNeonIsFinalizedWhenL1GreaterThanL2(t *testing.T) { - ctx := context.Background() - logger := zap.NewNop() - l1Finalizer := mockL1Finalizer{LatestFinalizedBlockNumber: 127} - - finalizer := NewNeonFinalizer(logger, &l1Finalizer) - assert.NotNil(t, finalizer) - - block := &connectors.NewBlock{ - Number: big.NewInt(125), - Hash: ethCommon.Hash{}, - L1BlockNumber: nil, - } - - finalized, err := finalizer.IsBlockFinalized(ctx, block) - require.NoError(t, err) - assert.Equal(t, true, finalized) -} diff --git a/node/pkg/watchers/evm/watcher.go b/node/pkg/watchers/evm/watcher.go index 51b3ec23f..42fffd771 100644 --- a/node/pkg/watchers/evm/watcher.go +++ b/node/pkg/watchers/evm/watcher.go @@ -11,7 +11,6 @@ import ( "github.com/certusone/wormhole/node/pkg/watchers/evm/connectors" "github.com/certusone/wormhole/node/pkg/watchers/evm/connectors/ethabi" - "github.com/certusone/wormhole/node/pkg/watchers/evm/finalizers" "github.com/certusone/wormhole/node/pkg/watchers/interfaces" "github.com/certusone/wormhole/node/pkg/p2p" @@ -247,30 +246,6 @@ func (w *Watcher) Run(parentCtx context.Context) error { p2p.DefaultRegistry.AddErrorCount(w.chainID, 1) return fmt.Errorf("dialing eth client failed: %w", err) } - } else if w.chainID == vaa.ChainIDNeon { - // Neon needs special handling to read log events. - if w.l1Finalizer == nil { - return fmt.Errorf("unable to create neon watcher because the l1 finalizer is not set") - } - baseConnector, err := connectors.NewEthereumBaseConnector(timeout, w.networkName, w.url, w.contract, logger) - if err != nil { - ethConnectionErrors.WithLabelValues(w.networkName, "dial_error").Inc() - p2p.DefaultRegistry.AddErrorCount(w.chainID, 1) - return fmt.Errorf("dialing eth client failed: %w", err) - } - finalizer := finalizers.NewNeonFinalizer(logger, w.l1Finalizer) - pollConnector, err := connectors.NewFinalizerPollConnector(ctx, baseConnector, finalizer, 250*time.Millisecond) - if err != nil { - ethConnectionErrors.WithLabelValues(w.networkName, "dial_error").Inc() - p2p.DefaultRegistry.AddErrorCount(w.chainID, 1) - return fmt.Errorf("creating block poll connector failed: %w", err) - } - w.ethConn, err = connectors.NewLogPollConnector(ctx, pollConnector, baseConnector.Client()) - if err != nil { - ethConnectionErrors.WithLabelValues(w.networkName, "dial_error").Inc() - p2p.DefaultRegistry.AddErrorCount(w.chainID, 1) - return fmt.Errorf("creating poll connector failed: %w", err) - } } else { // Everything else is instant finality. logger.Info("assuming instant finality") diff --git a/proto/publicrpc/v1/publicrpc.proto b/proto/publicrpc/v1/publicrpc.proto index 2a52334e1..a81696484 100644 --- a/proto/publicrpc/v1/publicrpc.proto +++ b/proto/publicrpc/v1/publicrpc.proto @@ -25,7 +25,7 @@ enum ChainID { CHAIN_ID_CELO = 14; CHAIN_ID_NEAR = 15; CHAIN_ID_MOONBEAM = 16; - CHAIN_ID_NEON = 17; + // OBSOLETE: CHAIN_ID_NEON = 17; CHAIN_ID_TERRA2 = 18; CHAIN_ID_INJECTIVE = 19; CHAIN_ID_OSMOSIS = 20; diff --git a/sdk/testnet_consts.go b/sdk/testnet_consts.go index d86d0ba64..61a0789a0 100644 --- a/sdk/testnet_consts.go +++ b/sdk/testnet_consts.go @@ -29,7 +29,6 @@ var knownTestnetTokenbridgeEmitters = map[vaa.ChainID]string{ vaa.ChainIDMoonbeam: "000000000000000000000000bc976d4b9d57e57c3ca52e1fd136c45ff7955a96", vaa.ChainIDArbitrum: "00000000000000000000000023908A62110e21C04F3A4e011d24F901F911744A", vaa.ChainIDOptimism: "000000000000000000000000C7A204bDBFe983FCD8d8E61D02b475D4073fF97e", - vaa.ChainIDNeon: "000000000000000000000000c7a204bdbfe983fcd8d8e61d02b475d4073ff97e", vaa.ChainIDXpla: "b66da121bd3621c8d2604c08c82965640fe682d606af26a302ee09094f5e62cf", vaa.ChainIDInjective: "00000000000000000000000003f3e7b2e363f51cf6e57ef85f43a2b91dbce501", vaa.ChainIDSui: "40440411a170b4842ae7dee4f4a7b7a58bc0a98566e998850a7bb87bf5dc05b9", @@ -63,7 +62,6 @@ var knownTestnetNFTBridgeEmitters = map[vaa.ChainID]string{ vaa.ChainIDMoonbeam: "00000000000000000000000098a0f4b96972b32fcb3bd03caeb66a44a6ab9edb", vaa.ChainIDArbitrum: "000000000000000000000000Ee3dB83916Ccdc3593b734F7F2d16D630F39F1D0", vaa.ChainIDOptimism: "00000000000000000000000023908A62110e21C04F3A4e011d24F901F911744A", - vaa.ChainIDNeon: "00000000000000000000000023908a62110e21c04f3a4e011d24f901f911744a", vaa.ChainIDBase: "000000000000000000000000F681d1cc5F25a3694E348e7975d7564Aa581db59", vaa.ChainIDScroll: "00000000000000000000000047B9a1406BEe29a3001BFEB7e45aE45fFFB40c18", vaa.ChainIDSepolia: "0000000000000000000000006a0B52ac198e4870e5F3797d5B403838a5bbFD99", diff --git a/sdk/vaa/structs.go b/sdk/vaa/structs.go index 15643f8d5..ed2707c25 100644 --- a/sdk/vaa/structs.go +++ b/sdk/vaa/structs.go @@ -190,8 +190,6 @@ func (c ChainID) String() string { return "celo" case ChainIDMoonbeam: return "moonbeam" - case ChainIDNeon: - return "neon" case ChainIDTerra2: return "terra2" case ChainIDInjective: @@ -287,8 +285,6 @@ func ChainIDFromString(s string) (ChainID, error) { return ChainIDCelo, nil case "moonbeam": return ChainIDMoonbeam, nil - case "neon": - return ChainIDNeon, nil case "terra2": return ChainIDTerra2, nil case "injective": @@ -362,7 +358,6 @@ func GetAllNetworkIDs() []ChainID { ChainIDCelo, ChainIDNear, ChainIDMoonbeam, - ChainIDNeon, ChainIDTerra2, ChainIDInjective, ChainIDOsmosis, @@ -427,8 +422,7 @@ const ( ChainIDNear ChainID = 15 // ChainIDMoonbeam is the ChainID of Moonbeam ChainIDMoonbeam ChainID = 16 - // ChainIDNeon is the ChainID of Neon - ChainIDNeon ChainID = 17 + // OBSOLETE: ChainIDNeon ChainID = 17 // ChainIDTerra2 is the ChainID of Terra 2 ChainIDTerra2 ChainID = 18 // ChainIDInjective is the ChainID of Injective diff --git a/sdk/vaa/structs_test.go b/sdk/vaa/structs_test.go index c3a0b458a..713ee51bc 100644 --- a/sdk/vaa/structs_test.go +++ b/sdk/vaa/structs_test.go @@ -47,7 +47,6 @@ func TestChainIDFromString(t *testing.T) { {input: "klaytn", output: ChainIDKlaytn}, {input: "celo", output: ChainIDCelo}, {input: "moonbeam", output: ChainIDMoonbeam}, - {input: "neon", output: ChainIDNeon}, {input: "terra2", output: ChainIDTerra2}, {input: "injective", output: ChainIDInjective}, {input: "osmosis", output: ChainIDOsmosis}, @@ -90,7 +89,6 @@ func TestChainIDFromString(t *testing.T) { {input: "Klaytn", output: ChainIDKlaytn}, {input: "Celo", output: ChainIDCelo}, {input: "Moonbeam", output: ChainIDMoonbeam}, - {input: "Neon", output: ChainIDNeon}, {input: "Terra2", output: ChainIDTerra2}, {input: "Injective", output: ChainIDInjective}, {input: "Osmosis", output: ChainIDOsmosis}, @@ -271,7 +269,6 @@ func TestChainId_String(t *testing.T) { {input: 14, output: "celo"}, {input: 15, output: "near"}, {input: 16, output: "moonbeam"}, - {input: 17, output: "neon"}, {input: 18, output: "terra2"}, {input: 19, output: "injective"}, {input: 20, output: "osmosis"},