File: deposit.go
54: 	for _, msg := range tx.GetMsgs() {
55: 		handler := k.router.Handler(msg)
56: 		if handler == nil {
57: 			reason = fmt.Sprintf("Unrecognized Msg type: %s", sdk.MsgTypeURL(msg))
58: 			return
59: 		}
60: 
61: 		_, err = handler(cacheCtx, msg)
62: 		if err != nil {
63: 			reason = fmt.Sprintf("Failed to execute Msg: %s", err)
64: 			return
65: 		}
66: 	}
File: baseapp.go
825: func (app *BaseApp) runTx(mode execMode, txBytes []byte) (gInfo sdk.GasInfo, result *sdk.Result, anteEvents []abci.Event, err error) {
---
873: 	tx, err := app.txDecoder(txBytes)
874: 	if err != nil {
875: 		return sdk.GasInfo{}, nil, nil, err
876: 	}
877: 
878: 	msgs := tx.GetMsgs()
879: 	if err := validateBasicTxMsgs(msgs); err != nil {
880: 		return sdk.GasInfo{}, nil, nil, err
881: 	}
---
890: 	if app.anteHandler != nil {
---
934: 	}
---
954: 	// Attempt to execute all messages and only update state if all messages pass
955: 	// and we're in DeliverTx. Note, runMsgs will never return a reference to a
956: 	// Result if any single message fails or does not have a registered Handler.
957: 	msgsV2, err := tx.GetMsgsV2()
958: 	if err == nil {
959: 		result, err = app.runMsgs(runMsgCtx, msgs, msgsV2, mode)
960: 	}
---
998: }
func validateBasicTxMsgs(msgs []sdk.Msg) error {
	if len(msgs) == 0 {
		return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "must contain at least one message")
	}

	for _, msg := range msgs {
		m, ok := msg.(sdk.HasValidateBasic)
		if !ok {
			continue
		}

		if err := m.ValidateBasic(); err != nil {
			return err
		}
	}

	return nil
}
File: ante.go
040: func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {
---
085: 	anteDecorators := []sdk.AnteDecorator{
086: 		accnumante.NewAccountNumberDecorator(options.AccountKeeper),
087: 		ante.NewSetUpContextDecorator(), // outermost AnteDecorator. SetUpContext must be called first
088: 		ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker),
089: 		moveante.NewGasPricesDecorator(),
090: 		ante.NewValidateBasicDecorator(),
091: 		ante.NewTxTimeoutHeightDecorator(),
092: 		ante.NewValidateMemoDecorator(options.AccountKeeper),
093: 		ante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper),
094: 		ante.NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, freeLaneFeeChecker),
095: 		// SetPubKeyDecorator must be called before all signature verification decorators
096: 		ante.NewSetPubKeyDecorator(options.AccountKeeper),
097: 		ante.NewValidateSigCountDecorator(options.AccountKeeper),
098: 		ante.NewSigGasConsumeDecorator(options.AccountKeeper, sigGasConsumer),
099: 		sigverify.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler),
100: 		ante.NewIncrementSequenceDecorator(options.AccountKeeper),
101: 		ibcante.NewRedundantRelayDecorator(options.IBCkeeper),
102: 		auctionante.NewAuctionDecorator(options.AuctionKeeper, options.TxEncoder, options.MevLane),
103: 		opchildante.NewRedundantBridgeDecorator(options.OPChildKeeper),
104: 	}
105: 
106: 	return sdk.ChainAnteDecorators(anteDecorators...), nil
107: }
108: 
109: func CreateAnteHandlerForOPinit(ak ante.AccountKeeper, signModeHandler *txsigning.HandlerMap) sdk.AnteHandler {
110: 	return sdk.ChainAnteDecorators(
111: 		ante.NewSetPubKeyDecorator(ak),
112: 		ante.NewValidateSigCountDecorator(ak),
113: 		ante.NewSigGasConsumeDecorator(ak, ante.DefaultSigVerificationGasConsumer),
114: 		ante.NewSigVerificationDecorator(ak, signModeHandler),
115: 		ante.NewIncrementSequenceDecorator(ak),
116: 	)
117: }
