diff --git a/CHANGELOG.md b/CHANGELOG.md index 804a3d34797..d1b0160ad17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -87,6 +87,7 @@ respectively, and the latter defines the height interval in which versions are d * (baseapp) [\#6306](https://github.com/cosmos/cosmos-sdk/issues/6306) Prevent events emitted by the antehandler from being persisted between transactions. * (client/keys) [\#5091](https://github.com/cosmos/cosmos-sdk/issues/5091) `keys parse` does not honor client app's configuration. * (x/bank) [\#6674](https://github.com/cosmos/cosmos-sdk/pull/6674) Create account if recipient does not exist on handing `MsgMultiSend`. +* (x/auth) [\#6287](https://github.com/cosmos/cosmos-sdk/pull/6287) Fix nonce stuck when sending multiple transactions from an account in a same block. ## [v0.38.5] - 2020-07-02 diff --git a/x/auth/ante/sigverify.go b/x/auth/ante/sigverify.go index 994ad4378e6..eeeeee0ca3b 100644 --- a/x/auth/ante/sigverify.go +++ b/x/auth/ante/sigverify.go @@ -236,11 +236,6 @@ func NewIncrementSequenceDecorator(ak keeper.AccountKeeper) IncrementSequenceDec } func (isd IncrementSequenceDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) { - // no need to increment sequence on RecheckTx - if ctx.IsReCheckTx() && !simulate { - return next(ctx, tx, simulate) - } - sigTx, ok := tx.(SigVerifiableTx) if !ok { return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "invalid transaction type") diff --git a/x/auth/ante/sigverify_test.go b/x/auth/ante/sigverify_test.go index d12e98998ae..522f90ddbaf 100644 --- a/x/auth/ante/sigverify_test.go +++ b/x/auth/ante/sigverify_test.go @@ -235,11 +235,11 @@ func TestIncrementSequenceDecorator(t *testing.T) { simulate bool expectedSeq uint64 }{ - {ctx.WithIsReCheckTx(true), false, 0}, - {ctx.WithIsCheckTx(true).WithIsReCheckTx(false), false, 1}, {ctx.WithIsReCheckTx(true), false, 1}, - {ctx.WithIsReCheckTx(true), false, 1}, - {ctx.WithIsReCheckTx(true), true, 2}, + {ctx.WithIsCheckTx(true).WithIsReCheckTx(false), false, 2}, + {ctx.WithIsReCheckTx(true), false, 3}, + {ctx.WithIsReCheckTx(true), false, 4}, + {ctx.WithIsReCheckTx(true), true, 5}, } for i, tc := range testCases {