From ef36663bfa5e83eae177154457355ac1443217c3 Mon Sep 17 00:00:00 2001 From: sideninja <75445744+sideninja@users.noreply.github.com> Date: Tue, 28 May 2024 19:40:17 +0200 Subject: [PATCH 1/3] don't report known error --- api/api.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/api.go b/api/api.go index 0b9936f46..fe9cc2554 100644 --- a/api/api.go +++ b/api/api.go @@ -584,6 +584,9 @@ func handleError[T any](log zerolog.Logger, err error) (T, error) { // as per specification returning nil and nil for not found resources return zero, nil } + if errors.Is(err, requester.ErrOutOfRange) { + return zero, fmt.Errorf("requested height is out of supported range") + } log.Error().Err(err).Msg("api error") return zero, errs.ErrInternal From a01c1f5d50fe393538747a6419edac6993e2a185 Mon Sep 17 00:00:00 2001 From: sideninja <75445744+sideninja@users.noreply.github.com> Date: Tue, 28 May 2024 19:42:27 +0200 Subject: [PATCH 2/3] don't log known issue --- services/requester/requester.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/services/requester/requester.go b/services/requester/requester.go index acfd857a7..9f9e23b9c 100644 --- a/services/requester/requester.go +++ b/services/requester/requester.go @@ -4,6 +4,7 @@ import ( "context" _ "embed" "encoding/hex" + "errors" "fmt" "math" "math/big" @@ -24,7 +25,7 @@ import ( "github.com/rs/zerolog" "golang.org/x/sync/errgroup" - "github.com/onflow/flow-evm-gateway/api/errors" + errs "github.com/onflow/flow-evm-gateway/api/errors" "github.com/onflow/flow-evm-gateway/config" "github.com/onflow/flow-evm-gateway/storage" ) @@ -155,7 +156,7 @@ func (e *EVM) SendRawTransaction(ctx context.Context, data []byte) (common.Hash, } if tx.GasPrice().Cmp(e.config.GasPrice) < 0 { - return common.Hash{}, errors.NewErrGasPriceTooLow(e.config.GasPrice) + return common.Hash{}, errs.NewErrGasPriceTooLow(e.config.GasPrice) } hexEncodedTx, err := cadence.NewString(hex.EncodeToString(data)) @@ -214,11 +215,13 @@ func (e *EVM) GetBalance( []cadence.Value{hexEncodedAddress}, ) if err != nil { - e.logger.Error(). - Err(err). - Str("address", address.String()). - Uint64("cadence-height", height). - Msg("failed to get get balance") + if !errors.Is(err, ErrOutOfRange) { + e.logger.Error(). + Err(err). + Str("address", address.String()). + Uint64("cadence-height", height). + Msg("failed to get get balance") + } return nil, fmt.Errorf("failed to get balance: %w", err) } From 82348feecb46a7249a8c8e231b0b9c2f3894edd3 Mon Sep 17 00:00:00 2001 From: sideninja <75445744+sideninja@users.noreply.github.com> Date: Tue, 28 May 2024 19:45:50 +0200 Subject: [PATCH 3/3] improve logging report on requester --- services/requester/requester.go | 36 ++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/services/requester/requester.go b/services/requester/requester.go index 9f9e23b9c..ffcbefcb6 100644 --- a/services/requester/requester.go +++ b/services/requester/requester.go @@ -219,6 +219,7 @@ func (e *EVM) GetBalance( e.logger.Error(). Err(err). Str("address", address.String()). + Int64("evm-height", evmHeight). Uint64("cadence-height", height). Msg("failed to get get balance") } @@ -255,10 +256,13 @@ func (e *EVM) GetNonce( []cadence.Value{hexEncodedAddress}, ) if err != nil { - e.logger.Error().Err(err). - Str("address", address.String()). - Uint64("cadence-height", height). - Msg("failed to get nonce") + if !errors.Is(err, ErrOutOfRange) { + e.logger.Error().Err(err). + Str("address", address.String()). + Int64("evm-height", evmHeight). + Uint64("cadence-height", height). + Msg("failed to get nonce") + } return 0, fmt.Errorf("failed to get nonce: %w", err) } @@ -306,12 +310,15 @@ func (e *EVM) Call( []cadence.Value{hexEncodedTx, hexEncodedAddress}, ) if err != nil { - e.logger.Error(). - Err(err). - Uint64("cadence-height", height). - Str("from", from.String()). - Str("data", string(data)). - Msg("failed to execute call") + if !errors.Is(err, ErrOutOfRange) { + e.logger.Error(). + Err(err). + Uint64("cadence-height", height). + Int64("evm-height", evmHeight). + Str("from", from.String()). + Str("data", string(data)). + Msg("failed to execute call") + } return nil, fmt.Errorf("failed to execute script: %w", err) } @@ -402,6 +409,15 @@ func (e *EVM) GetCode( []cadence.Value{hexEncodedAddress}, ) if err != nil { + if !errors.Is(err, ErrOutOfRange) { + e.logger.Error(). + Err(err). + Uint64("cadence-height", height). + Int64("evm-height", evmHeight). + Str("address", address.String()). + Msg("failed to get code") + } + return nil, fmt.Errorf("failed to execute script for get code: %w", err) }