From 8e2b9b03490a69012be85f920a9b7bbffe6d32e0 Mon Sep 17 00:00:00 2001 From: Vladimir Shchukin Date: Tue, 8 Apr 2025 08:59:43 -0400 Subject: [PATCH 1/4] update default null chainId value --- .tool-versions | 1 + multinode/send_only_node.go | 2 +- multinode/utils.go | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 .tool-versions diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..668a388 --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +golang 1.24.1 diff --git a/multinode/send_only_node.go b/multinode/send_only_node.go index 7630362..dfb3df0 100644 --- a/multinode/send_only_node.go +++ b/multinode/send_only_node.go @@ -108,7 +108,7 @@ func (s *sendOnlyNode[CHAIN_ID, RPC]) start() { } s.setState(nodeStateDialed) - if s.chainID.String() == "0" { + if s.chainID.String() == fmt.Sprint(NullClientChainID) { // Skip verification if chainID is zero s.log.Warn("sendonly rpc ChainID verification skipped") } else { diff --git a/multinode/utils.go b/multinode/utils.go index ace59ba..ca5f51c 100644 --- a/multinode/utils.go +++ b/multinode/utils.go @@ -9,6 +9,8 @@ import ( "github.com/jpillora/backoff" ) +const NullClientChainID = 1399100 + func RandomID() ID { // #nosec G404 id := rand.Int63n(math.MaxInt32) + 10000 From 156c3e1f969f8bf440767f3fdbed60d53072c9cf Mon Sep 17 00:00:00 2001 From: Vladimir Shchukin Date: Tue, 8 Apr 2025 09:44:13 -0400 Subject: [PATCH 2/4] update default chain id in tests --- multinode/send_only_node_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/multinode/send_only_node_test.go b/multinode/send_only_node_test.go index 646796e..cca58c2 100644 --- a/multinode/send_only_node_test.go +++ b/multinode/send_only_node_test.go @@ -55,13 +55,13 @@ func TestStartSendOnlyNode(t *testing.T) { tests.AssertEventually(t, func() bool { return s.State() == nodeStateUnusable }) tests.RequireLogMessage(t, observedLogs, "Dial failed: SendOnly Node is unusable") }) - t.Run("Default ChainID(0) produces warn and skips checks", func(t *testing.T) { + t.Run("Default ChainID(1399100) produces warn and skips checks", func(t *testing.T) { t.Parallel() lggr, observedLogs := logger.TestObserved(t, zap.WarnLevel) client := newMockSendOnlyClient[ID](t) client.On("Close").Once() client.On("Dial", mock.Anything).Return(nil).Once() - s := NewSendOnlyNode(lggr, url.URL{}, t.Name(), NewIDFromInt(0), client) + s := NewSendOnlyNode(lggr, url.URL{}, t.Name(), NewIDFromInt(1399100), client) defer func() { assert.NoError(t, s.Close()) }() err := s.Start(tests.Context(t)) From be9134ea8b7c1eafcc9e8657333353afce928e68 Mon Sep 17 00:00:00 2001 From: Vladimir Shchukin Date: Wed, 9 Apr 2025 09:01:25 -0400 Subject: [PATCH 3/4] rid of Sprint --- multinode/send_only_node.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/multinode/send_only_node.go b/multinode/send_only_node.go index dfb3df0..02a536b 100644 --- a/multinode/send_only_node.go +++ b/multinode/send_only_node.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "net/url" + "strconv" "sync" "github.com/smartcontractkit/chainlink-common/pkg/logger" @@ -108,7 +109,8 @@ func (s *sendOnlyNode[CHAIN_ID, RPC]) start() { } s.setState(nodeStateDialed) - if s.chainID.String() == fmt.Sprint(NullClientChainID) { + nullID := strconv.Itoa(NullClientChainID) + if s.chainID.String() == nullID { // Skip verification if chainID is zero s.log.Warn("sendonly rpc ChainID verification skipped") } else { From ce7ec3a90ffd1342b7caf39f7b3d5a40375fbe25 Mon Sep 17 00:00:00 2001 From: Vladimir Shchukin Date: Wed, 9 Apr 2025 09:02:34 -0400 Subject: [PATCH 4/4] cleanup --- multinode/send_only_node.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/multinode/send_only_node.go b/multinode/send_only_node.go index 02a536b..e15350b 100644 --- a/multinode/send_only_node.go +++ b/multinode/send_only_node.go @@ -109,8 +109,7 @@ func (s *sendOnlyNode[CHAIN_ID, RPC]) start() { } s.setState(nodeStateDialed) - nullID := strconv.Itoa(NullClientChainID) - if s.chainID.String() == nullID { + if s.chainID.String() == strconv.Itoa(NullClientChainID) { // Skip verification if chainID is zero s.log.Warn("sendonly rpc ChainID verification skipped") } else {