diff --git a/CHANGELOG.md b/CHANGELOG.md index bf3705907b12..4ed8721eda01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (server) [#21941](https://github.com/cosmos/cosmos-sdk/pull/21941) Regenerate addrbook.json for in place testnet. * (store) [#923](https://github.com/crypto-org-chain/cosmos-sdk/pull/923) Enable iavl async pruning. * (store) [#934](https://github.com/crypto-org-chain/cosmos-sdk/pull/934) Add pause pruning. +* (baseapp) [#20208](https://github.com/cosmos/cosmos-sdk/pull/20208) Skip running validateBasic for rechecking txs. ### Bug Fixes diff --git a/baseapp/baseapp.go b/baseapp/baseapp.go index 3e859f91c395..f7952215dc65 100644 --- a/baseapp/baseapp.go +++ b/baseapp/baseapp.go @@ -915,8 +915,12 @@ func (app *BaseApp) runTxWithMultiStore( } msgs := tx.GetMsgs() - if err := validateBasicTxMsgs(msgs); err != nil { - return sdk.GasInfo{}, nil, nil, err + // run validate basic if mode != recheck. + // as validate basic is stateless, it is guaranteed to pass recheck, given that its passed checkTx. + if mode != execModeReCheck { + if err := validateBasicTxMsgs(msgs); err != nil { + return sdk.GasInfo{}, nil, nil, err + } } for _, msg := range msgs {