Node: Remove Neon support (#3732)

* Node: Remove Neon support

* Code review rework
This commit is contained in:
bruce-riley 2024-01-25 12:55:02 -06:00 committed by GitHub
parent 6655a4250d
commit a10aab1c6d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 152 additions and 469 deletions

View File

@ -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},

View File

@ -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{

View File

@ -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() {

View File

@ -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 (

View File

@ -141,7 +141,6 @@ func handleQueryRequestsImpl(
vaa.ChainIDKlaytn: {},
vaa.ChainIDCelo: {},
vaa.ChainIDMoonbeam: {},
vaa.ChainIDNeon: {},
vaa.ChainIDArbitrum: {},
vaa.ChainIDOptimism: {},
vaa.ChainIDBase: {},

View File

@ -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
}

View File

@ -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)
}

View File

@ -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")

View File

@ -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;

View File

@ -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",

View File

@ -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

View File

@ -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"},