diff --git a/x/auth/middleware/middleware.go b/x/auth/middleware/middleware.go index a3fb30b0d6..812bd96038 100644 --- a/x/auth/middleware/middleware.go +++ b/x/auth/middleware/middleware.go @@ -71,21 +71,6 @@ func NewDefaultTxHandler(options TxHandlerOptions) (tx.Handler, error) { return nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for middlewares") } - var sigGasConsumer = options.SigGasConsumer - if sigGasConsumer == nil { - sigGasConsumer = DefaultSigVerificationGasConsumer - } - - var extensionOptionChecker = options.ExtensionOptionChecker - if extensionOptionChecker == nil { - extensionOptionChecker = rejectExtensionOption - } - - var txFeeChecker = options.TxFeeChecker - if txFeeChecker == nil { - txFeeChecker = checkTxFeeWithValidatorMinGasPrices - } - return ComposeMiddlewares( NewRunMsgsTxHandler(options.MsgServiceRouter, options.LegacyRouter), NewTxDecoderMiddleware(options.TxDecoder), @@ -102,7 +87,7 @@ func NewDefaultTxHandler(options TxHandlerOptions) (tx.Handler, error) { // emitted outside of this middleware. NewIndexEventsTxMiddleware(options.IndexEvents), // Reject all extension options other than the ones needed by the feemarket. - NewExtensionOptionsMiddleware(extensionOptionChecker), + NewExtensionOptionsMiddleware(options.ExtensionOptionChecker), ValidateBasicMiddleware, TxTimeoutHeightMiddleware, ValidateMemoMiddleware(options.AccountKeeper), @@ -111,10 +96,10 @@ func NewDefaultTxHandler(options TxHandlerOptions) (tx.Handler, error) { // ComposeMiddlewares godoc for details. // `DeductFeeMiddleware` and `IncrementSequenceMiddleware` should be put outside of `WithBranchedStore` middleware, // so their storage writes are not discarded when tx fails. - DeductFeeMiddleware(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, txFeeChecker), + DeductFeeMiddleware(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker), SetPubKeyMiddleware(options.AccountKeeper), ValidateSigCountMiddleware(options.AccountKeeper), - SigGasConsumeMiddleware(options.AccountKeeper, sigGasConsumer), + SigGasConsumeMiddleware(options.AccountKeeper, options.SigGasConsumer), SigVerificationMiddleware(options.AccountKeeper, options.SignModeHandler), IncrementSequenceMiddleware(options.AccountKeeper), // Creates a new MultiStore branch, discards downstream writes if the downstream returns error. diff --git a/x/auth/middleware/sigverify.go b/x/auth/middleware/sigverify.go index 6189546df0..0e13b4142a 100644 --- a/x/auth/middleware/sigverify.go +++ b/x/auth/middleware/sigverify.go @@ -299,6 +299,10 @@ type sigGasConsumeTxHandler struct { // CONTRACT: Pubkeys are set in context for all signers before this middleware runs // CONTRACT: Tx must implement SigVerifiableTx interface func SigGasConsumeMiddleware(ak AccountKeeper, sigGasConsumer SignatureVerificationGasConsumer) tx.Middleware { + if sigGasConsumer == nil { + sigGasConsumer = DefaultSigVerificationGasConsumer + } + return func(h tx.Handler) tx.Handler { return sigGasConsumeTxHandler{ ak: ak,