From 24d9d5cd0ec3859f4738a6c6a83108a63ce79adf Mon Sep 17 00:00:00 2001 From: yerke26 Date: Thu, 30 Jan 2025 00:29:59 +0700 Subject: [PATCH] standardize wrongTransactionNonce error --- .../TransactionProcessing/TransactionProcessor.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Nethermind/Nethermind.Evm/TransactionProcessing/TransactionProcessor.cs b/src/Nethermind/Nethermind.Evm/TransactionProcessing/TransactionProcessor.cs index e428f0f4cf7..a8c53eae231 100644 --- a/src/Nethermind/Nethermind.Evm/TransactionProcessing/TransactionProcessor.cs +++ b/src/Nethermind/Nethermind.Evm/TransactionProcessing/TransactionProcessor.cs @@ -517,10 +517,16 @@ protected virtual TransactionResult BuyGas(Transaction tx, BlockHeader header, I protected virtual TransactionResult IncrementNonce(Transaction tx, BlockHeader header, IReleaseSpec spec, ITxTracer tracer, ExecutionOptions opts) { - if (tx.Nonce != WorldState.GetNonce(tx.SenderAddress!)) + UInt256 stateNonce = WorldState.GetNonce(tx.SenderAddress!); + if (tx.Nonce > stateNonce) { TraceLogInvalidTx(tx, $"WRONG_TRANSACTION_NONCE: {tx.Nonce} (expected {WorldState.GetNonce(tx.SenderAddress)})"); - return TransactionResult.WrongTransactionNonce; + return TransactionResult.TransactionNonceTooHigh(tx, stateNonce); + } + if (tx.Nonce < stateNonce) + { + TraceLogInvalidTx(tx, $"WRONG_TRANSACTION_NONCE: {tx.Nonce} (expected {WorldState.GetNonce(tx.SenderAddress)})"); + return TransactionResult.TransactionNonceTooLow(tx, stateNonce); } WorldState.IncrementNonce(tx.SenderAddress); @@ -824,6 +830,7 @@ public readonly struct TransactionResult(string? error) : IEquatable $"err: nonce too high: address {tx.SenderAddress}, tx: {tx.Nonce} state: {stNonce} (supplied gas {tx.GasLimit})"; + public static TransactionResult TransactionNonceTooLow(Transaction tx, UInt256 stNonce) => $"err: nonce too high: address {tx.SenderAddress}, tx: {tx.Nonce} state: {stNonce} (supplied gas {tx.GasLimit})"; } }