diff --git a/eth/vm/forks/frontier/validation.py b/eth/vm/forks/frontier/validation.py index ce2597054a..f14ba2f3e9 100644 --- a/eth/vm/forks/frontier/validation.py +++ b/eth/vm/forks/frontier/validation.py @@ -26,8 +26,11 @@ def validate_frontier_transaction(state: StateAPI, if sender_balance < total_cost: raise ValidationError("Sender account balance cannot afford txn") - if state.get_nonce(transaction.sender) != transaction.nonce: - raise ValidationError("Invalid transaction nonce") + sender_nonce = state.get_nonce(transaction.sender) + if sender_nonce != transaction.nonce: + raise ValidationError( + f"Invalid transaction nonce: Expected {sender_nonce}, but got {transaction.nonce}" + ) def validate_frontier_transaction_against_header(_vm: VirtualMachineAPI, diff --git a/newsfragments/1936.internal.rst b/newsfragments/1936.internal.rst new file mode 100644 index 0000000000..ee473c225d --- /dev/null +++ b/newsfragments/1936.internal.rst @@ -0,0 +1 @@ +Improve the error when transaction nonce is invalid: include expected and actual.