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,