From 63cf7b979b21cda36a2c1066a71d3db629f231a2 Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Thu, 18 Jan 2024 22:43:51 +0800 Subject: [PATCH 1/9] node: update url verification logic to support ip:port format Signed-off-by: bingyuyap --- node/pkg/node/url_verification.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/node/pkg/node/url_verification.go b/node/pkg/node/url_verification.go index 67332df472..61ef8f1780 100644 --- a/node/pkg/node/url_verification.go +++ b/node/pkg/node/url_verification.go @@ -21,17 +21,18 @@ func hasKnownSchemePrefix(urlStr string) bool { } func validateURL(urlStr string, validSchemes []string) bool { - parsedURL, err := url.Parse(urlStr) - if err != nil { - return false - } - // If no scheme is required, validate host:port format if len(validSchemes) == 1 && validSchemes[0] == "" { host, port, err := net.SplitHostPort(urlStr) return err == nil && host != "" && port != "" && !hasKnownSchemePrefix(urlStr) } + // url.Parse() has to come later because it will fail if the scheme is not known + parsedURL, err := url.Parse(urlStr) + if err != nil { + return false + } + for _, scheme := range validSchemes { if parsedURL.Scheme == scheme { return true From 15ec0a2500f9f6fe5af3e4cd8a41164861f0baef Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Thu, 18 Jan 2024 22:47:18 +0800 Subject: [PATCH 2/9] node: add test case for ip:port Signed-off-by: bingyuyap --- node/pkg/node/url_verification_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/node/pkg/node/url_verification_test.go b/node/pkg/node/url_verification_test.go index b2c9e3ea9b..935da88415 100644 --- a/node/pkg/node/url_verification_test.go +++ b/node/pkg/node/url_verification_test.go @@ -25,6 +25,7 @@ func TestValidateURL(t *testing.T) { {[]string{""}, "example.com:8080", true}, {[]string{""}, "http://invalid-scheme:8080", false}, {[]string{""}, "ws://invalid-scheme:8080", false}, + {[]string{""}, "170.0.0.1:8080", true}, } for _, test := range tests { From b1d4d191bb2d645058b0b53b4d0f5de93ff37242 Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Thu, 18 Jan 2024 22:49:31 +0800 Subject: [PATCH 3/9] node: change neon rpc scheme from websocket to HTTP Signed-off-by: bingyuyap --- node/cmd/guardiand/node.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/cmd/guardiand/node.go b/node/cmd/guardiand/node.go index 831fb42db1..37f48c5a69 100644 --- a/node/cmd/guardiand/node.go +++ b/node/cmd/guardiand/node.go @@ -283,7 +283,7 @@ 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", "ws://eth-devnet:8545", []string{"ws", "wss"}) + 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"}) From b28281e460b58e19f5989bfda0467920096dfbef Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Thu, 18 Jan 2024 22:54:22 +0800 Subject: [PATCH 4/9] node: update comment to be more accurate Signed-off-by: bingyuyap --- node/pkg/node/url_verification.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node/pkg/node/url_verification.go b/node/pkg/node/url_verification.go index 61ef8f1780..265d925989 100644 --- a/node/pkg/node/url_verification.go +++ b/node/pkg/node/url_verification.go @@ -27,7 +27,7 @@ func validateURL(urlStr string, validSchemes []string) bool { return err == nil && host != "" && port != "" && !hasKnownSchemePrefix(urlStr) } - // url.Parse() has to come later because it will fail if the scheme is not known + // url.Parse() has to come later because it will fail if the scheme is empty parsedURL, err := url.Parse(urlStr) if err != nil { return false From 8a7a1bc622c7dfc26281e26f628118b64051dbdf Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Fri, 19 Jan 2024 01:54:35 +0800 Subject: [PATCH 5/9] node: remove neon from devmode Signed-off-by: bingyuyap --- devnet/node.yaml | 2 -- node/cmd/guardiand/node.go | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/devnet/node.yaml b/devnet/node.yaml index bfca6c38ab..3a642bd832 100644 --- a/devnet/node.yaml +++ b/devnet/node.yaml @@ -99,8 +99,6 @@ spec: - ws://eth-devnet:8545 - --optimismRPC - ws://eth-devnet:8545 - - --neonRPC - - ws://eth-devnet:8545 - --baseRPC - ws://eth-devnet:8545 - --scrollRPC diff --git a/node/cmd/guardiand/node.go b/node/cmd/guardiand/node.go index 37f48c5a69..86c2b31cc2 100644 --- a/node/cmd/guardiand/node.go +++ b/node/cmd/guardiand/node.go @@ -521,7 +521,6 @@ func runNode(cmd *cobra.Command, args []string) { *klaytnContract = unsafeDevModeEvmContractAddress(*klaytnContract) *celoContract = unsafeDevModeEvmContractAddress(*celoContract) *moonbeamContract = unsafeDevModeEvmContractAddress(*moonbeamContract) - *neonContract = unsafeDevModeEvmContractAddress(*neonContract) *arbitrumContract = unsafeDevModeEvmContractAddress(*arbitrumContract) *optimismContract = unsafeDevModeEvmContractAddress(*optimismContract) *baseContract = unsafeDevModeEvmContractAddress(*baseContract) @@ -828,6 +827,9 @@ func runNode(cmd *cobra.Command, args []string) { logger.Fatal("Cannot be in unsafeDevMode and testnetMode at the same time.") } + fmt.Printf("All RPC URLs work\n") + return + // Complain about Infura on mainnet. // // As it turns out, Infura has a bug where it would sometimes incorrectly round From de09d1af33684d68e2399a0efd37fa9b4b6b16c1 Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Fri, 19 Jan 2024 02:38:30 +0800 Subject: [PATCH 6/9] node: ignore internal xlabs testing file Signed-off-by: bingyuyap --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ed3695b4f6..5b77396e04 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,6 @@ devnet-consts.json /ethereum/cache/ sui.log.* sui/examples/wrapped_coin -*.prof \ No newline at end of file +*.prof +# Only used for internal testing +*.xlabs.yaml From 5d4ff6e479aa4b58440d9ac726635eb9f6a09f34 Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Fri, 19 Jan 2024 02:39:27 +0800 Subject: [PATCH 7/9] node: add ws:// prefix to Sui Signed-off-by: bingyuyap --- Tiltfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tiltfile b/Tiltfile index d31fdef472..b65df508da 100644 --- a/Tiltfile +++ b/Tiltfile @@ -188,7 +188,7 @@ def build_node_yaml(): "--suiMoveEventType", "0x7f6cebb8a489654d7a759483bd653c4be3e5ccfef17a8b5fd3ba98bd072fabc3::publish_message::WormholeMessage", "--suiWS", - "sui:9000", + "ws://sui:9000", ] if evm2: From 07b18efb7a7fdb1e6b0b5fe1b2655b612e46ccff Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Fri, 19 Jan 2024 02:40:15 +0800 Subject: [PATCH 8/9] node: add ws:// and wss:// prefixes to Sui schemes Signed-off-by: bingyuyap --- node/cmd/guardiand/node.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/node/cmd/guardiand/node.go b/node/cmd/guardiand/node.go index 86c2b31cc2..5a9a8e6491 100644 --- a/node/cmd/guardiand/node.go +++ b/node/cmd/guardiand/node.go @@ -336,7 +336,7 @@ func init() { aptosHandle = NodeCmd.Flags().String("aptosHandle", "", "aptos handle") suiRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "suiRPC", "Sui RPC URL", "http://sui:9000", []string{"http", "https"}) - suiWS = node.RegisterFlagWithValidationOrFail(NodeCmd, "suiWS", "Sui WS URL", "sui:9000", []string{""}) + suiWS = node.RegisterFlagWithValidationOrFail(NodeCmd, "suiWS", "Sui WS URL", "ws://sui:9000", []string{"ws", "wss"}) suiMoveEventType = NodeCmd.Flags().String("suiMoveEventType", "", "Sui move event type for publish_message") solanaRPC = node.RegisterFlagWithValidationOrFail(NodeCmd, "solanaRPC", "Solana RPC URL (required)", "http://solana-devnet:8899", []string{"http", "https"}) @@ -827,9 +827,6 @@ func runNode(cmd *cobra.Command, args []string) { logger.Fatal("Cannot be in unsafeDevMode and testnetMode at the same time.") } - fmt.Printf("All RPC URLs work\n") - return - // Complain about Infura on mainnet. // // As it turns out, Infura has a bug where it would sometimes incorrectly round From a7483d702d12d1c538a958f13c2a6c84869fbada Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Fri, 19 Jan 2024 02:47:24 +0800 Subject: [PATCH 9/9] node: update testnet yaml naming Signed-off-by: bingyuyap --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5b77396e04..71ee2f1db2 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,4 @@ sui.log.* sui/examples/wrapped_coin *.prof # Only used for internal testing -*.xlabs.yaml +*.testnet.yaml