From 7746ac28ada84f75946e235686d208260ecb4f9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bla=C5=BE=20Hrastnik?= Date: Wed, 10 Jan 2024 17:29:50 +0900 Subject: [PATCH] fix a couple go tests --- relayer/pkg/chainlink/txm/nonce_test.go | 2 -- relayer/pkg/chainlink/txm/txstore.go | 3 ++- relayer/pkg/chainlink/txm/txstore_test.go | 10 +++++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/relayer/pkg/chainlink/txm/nonce_test.go b/relayer/pkg/chainlink/txm/nonce_test.go index 19e321ba5..37600adf4 100644 --- a/relayer/pkg/chainlink/txm/nonce_test.go +++ b/relayer/pkg/chainlink/txm/nonce_test.go @@ -56,7 +56,6 @@ func TestNonceManager_NextSequence(t *testing.T) { // should fail with invalid address randAddr1 := starknetutils.BigIntToFelt(big.NewInt(1)) - require.NoError(t, err) _, err = nm.NextSequence(randAddr1, chainId) require.Error(t, err) assert.Contains(t, err.Error(), fmt.Sprintf("nonce tracking does not exist for key: %s", randAddr1.String())) @@ -93,7 +92,6 @@ func TestNonceManager_IncrementNextSequence(t *testing.T) { // should fail with invalid address randAddr1 := starknetutils.BigIntToFelt(big.NewInt(1)) - require.NoError(t, err) err = nm.IncrementNextSequence(randAddr1, chainId, initPlusOne) require.Error(t, err) assert.Contains(t, err.Error(), fmt.Sprintf("nonce tracking does not exist for key: %s", randAddr1.String())) diff --git a/relayer/pkg/chainlink/txm/txstore.go b/relayer/pkg/chainlink/txm/txstore.go index ceb20935b..7d20ac880 100644 --- a/relayer/pkg/chainlink/txm/txstore.go +++ b/relayer/pkg/chainlink/txm/txstore.go @@ -24,6 +24,7 @@ func NewTxStore(current *felt.Felt) *TxStore { } } +// TODO: Save should make a copy otherwise wee're modiffying the same memory and could loop func (s *TxStore) Save(nonce *felt.Felt, hash string) error { s.lock.Lock() defer s.lock.Unlock() @@ -45,7 +46,7 @@ func (s *TxStore) Save(nonce *felt.Felt, hash string) error { // find next unused nonce _, exists := s.nonceToHash[s.currentNonce] for exists { - s.currentNonce.Add(s.currentNonce, new(felt.Felt).SetUint64(1)) + s.currentNonce = new(felt.Felt).Add(s.currentNonce, new(felt.Felt).SetUint64(1)) _, exists = s.nonceToHash[s.currentNonce] } return nil diff --git a/relayer/pkg/chainlink/txm/txstore_test.go b/relayer/pkg/chainlink/txm/txstore_test.go index 648996173..cbba2c81f 100644 --- a/relayer/pkg/chainlink/txm/txstore_test.go +++ b/relayer/pkg/chainlink/txm/txstore_test.go @@ -19,7 +19,7 @@ func TestTxStore(t *testing.T) { s := NewTxStore(&felt.Zero) assert.Equal(t, 0, s.InflightCount()) - require.NoError(t, s.Save(&felt.Zero, "0x0")) + require.NoError(t, s.Save(new(felt.Felt).SetUint64(0), "0x0")) assert.Equal(t, 1, s.InflightCount()) assert.Equal(t, []string{"0x0"}, s.GetUnconfirmed()) require.NoError(t, s.Confirm("0x0")) @@ -31,10 +31,10 @@ func TestTxStore(t *testing.T) { t.Parallel() // create - s := NewTxStore(&felt.Zero) + s := NewTxStore(new(felt.Felt).SetUint64(0)) // accepts tx in order - require.NoError(t, s.Save(&felt.Zero, "0x0")) + require.NoError(t, s.Save(new(felt.Felt).SetUint64(0), "0x0")) assert.Equal(t, 1, s.InflightCount()) assert.Equal(t, new(felt.Felt).SetUint64(1), s.currentNonce) @@ -54,7 +54,7 @@ func TestTxStore(t *testing.T) { assert.Equal(t, new(felt.Felt).SetUint64(3), s.currentNonce) // rejects old nonce - require.ErrorContains(t, s.Save(&felt.Zero, "0xold"), "nonce too low: 0 < 3 (lowest)") + require.ErrorContains(t, s.Save(new(felt.Felt).SetUint64(0), "0xold"), "nonce too low: 0 < 3 (lowest)") assert.Equal(t, 4, s.InflightCount()) // reject already in use nonce @@ -86,7 +86,7 @@ func TestTxStore(t *testing.T) { t.Parallel() // init store - s := NewTxStore(&felt.Zero) + s := NewTxStore(new(felt.Felt).SetUint64(0)) for i := 0; i < 5; i++ { require.NoError(t, s.Save(new(felt.Felt).SetUint64(uint64(i)), "0x"+fmt.Sprintf("%d", i))) }