From 7f648d2c55a3420c47df9722f57dd9d4c238bdac Mon Sep 17 00:00:00 2001 From: noot <36753753+noot@users.noreply.github.com> Date: Tue, 29 Sep 2020 10:39:15 -0400 Subject: [PATCH] ante: update nonce check (#550) --- CHANGELOG.md | 6 ++++++ app/ante/eth.go | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1cfefed0..92d4101e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,12 @@ Ref: https://keepachangelog.com/en/1.0.0/ # Changelog +## Unreleased + +### Bug fixes + +* (app/ante) [\#550](https://github.com/ChainSafe/ethermint/pull/550) Update ante handler nonce verification to accept any nonce greater than or equal to the expected nonce to allow to successive transactions. + ## [v0.2.0] - 2020-09-24 ### State Machine Breaking diff --git a/app/ante/eth.go b/app/ante/eth.go index 38ad814c..bad8243f 100644 --- a/app/ante/eth.go +++ b/app/ante/eth.go @@ -253,7 +253,10 @@ func (nvd NonceVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, sim } seq := acc.GetSequence() - if msgEthTx.Data.AccountNonce != seq { + // if multiple transactions are submitted in succession with increasing nonces, + // all will be rejected except the first, since the first needs to be included in a block + // before the sequence increments + if msgEthTx.Data.AccountNonce < seq { return ctx, sdkerrors.Wrapf( sdkerrors.ErrInvalidSequence, "invalid nonce; got %d, expected %d", msgEthTx.Data.AccountNonce, seq,