fix(simapp): do not overwrite tx options (backport #17920) (#17926)

Co-authored-by: Julien Robert <julien@rbrt.fr>
This commit is contained in:
mergify[bot] 2023-09-29 13:21:10 +02:00 committed by GitHub
parent 74e89952c5
commit e6b06db813
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 277 additions and 71 deletions

View File

@ -2723,9 +2723,9 @@ const (
SignMode_SIGN_MODE_DIRECT SignMode = 1
// SIGN_MODE_TEXTUAL is a future signing mode that will verify some
// human-readable textual representation on top of the binary representation
// from SIGN_MODE_DIRECT. It is currently experimental, and should be used
// for testing purposes only, until Textual is fully released. Please follow
// the tracking issue https://github.com/cosmos/cosmos-sdk/issues/11970.
// from SIGN_MODE_DIRECT.
//
// Since: cosmos-sdk 0.50
SignMode_SIGN_MODE_TEXTUAL SignMode = 2
// SIGN_MODE_DIRECT_AUX specifies a signing mode which uses
// SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not

View File

@ -140,3 +140,96 @@ func (mr *MockProposalTxVerifierMockRecorder) ProcessProposalVerifyTx(txBz inter
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ProcessProposalVerifyTx", reflect.TypeOf((*MockProposalTxVerifier)(nil).ProcessProposalVerifyTx), txBz)
}
// TxDecode mocks base method.
func (m *MockProposalTxVerifier) TxDecode(txBz []byte) (types.Tx, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "TxDecode", txBz)
ret0, _ := ret[0].(types.Tx)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// TxDecode indicates an expected call of TxDecode.
func (mr *MockProposalTxVerifierMockRecorder) TxDecode(txBz interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TxDecode", reflect.TypeOf((*MockProposalTxVerifier)(nil).TxDecode), txBz)
}
// TxEncode mocks base method.
func (m *MockProposalTxVerifier) TxEncode(tx types.Tx) ([]byte, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "TxEncode", tx)
ret0, _ := ret[0].([]byte)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// TxEncode indicates an expected call of TxEncode.
func (mr *MockProposalTxVerifierMockRecorder) TxEncode(tx interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TxEncode", reflect.TypeOf((*MockProposalTxVerifier)(nil).TxEncode), tx)
}
// MockTxSelector is a mock of TxSelector interface.
type MockTxSelector struct {
ctrl *gomock.Controller
recorder *MockTxSelectorMockRecorder
}
// MockTxSelectorMockRecorder is the mock recorder for MockTxSelector.
type MockTxSelectorMockRecorder struct {
mock *MockTxSelector
}
// NewMockTxSelector creates a new mock instance.
func NewMockTxSelector(ctrl *gomock.Controller) *MockTxSelector {
mock := &MockTxSelector{ctrl: ctrl}
mock.recorder = &MockTxSelectorMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockTxSelector) EXPECT() *MockTxSelectorMockRecorder {
return m.recorder
}
// Clear mocks base method.
func (m *MockTxSelector) Clear() {
m.ctrl.T.Helper()
m.ctrl.Call(m, "Clear")
}
// Clear indicates an expected call of Clear.
func (mr *MockTxSelectorMockRecorder) Clear() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Clear", reflect.TypeOf((*MockTxSelector)(nil).Clear))
}
// SelectTxForProposal mocks base method.
func (m *MockTxSelector) SelectTxForProposal(maxTxBytes, maxBlockGas uint64, memTx types.Tx, txBz []byte) bool {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SelectTxForProposal", maxTxBytes, maxBlockGas, memTx, txBz)
ret0, _ := ret[0].(bool)
return ret0
}
// SelectTxForProposal indicates an expected call of SelectTxForProposal.
func (mr *MockTxSelectorMockRecorder) SelectTxForProposal(maxTxBytes, maxBlockGas, memTx, txBz interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectTxForProposal", reflect.TypeOf((*MockTxSelector)(nil).SelectTxForProposal), maxTxBytes, maxBlockGas, memTx, txBz)
}
// SelectedTxs mocks base method.
func (m *MockTxSelector) SelectedTxs() [][]byte {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SelectedTxs")
ret0, _ := ret[0].([][]byte)
return ret0
}
// SelectedTxs indicates an expected call of SelectedTxs.
func (mr *MockTxSelectorMockRecorder) SelectedTxs() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectedTxs", reflect.TypeOf((*MockTxSelector)(nil).SelectedTxs))
}

View File

@ -14733,6 +14733,7 @@ paths:
the recommended format of the metadata is to be found
here:
https://docs.cosmos.network/v0.47/modules/gov#proposal-3
title:
type: string
@ -15357,6 +15358,7 @@ paths:
the recommended format of the metadata is to be found
here:
https://docs.cosmos.network/v0.47/modules/gov#proposal-3
title:
type: string
@ -49855,9 +49857,8 @@ definitions:
description: voting_end_time is the end time of voting on a proposal.
metadata:
type: string
title: >-
title: |-
metadata is any arbitrary metadata attached to the proposal.
the recommended format of the metadata is to be found here:
https://docs.cosmos.network/v0.47/modules/gov#proposal-3
title:
@ -50457,9 +50458,8 @@ definitions:
description: voting_end_time is the end time of voting on a proposal.
metadata:
type: string
title: >-
title: |-
metadata is any arbitrary metadata attached to the proposal.
the recommended format of the metadata is to be found here:
https://docs.cosmos.network/v0.47/modules/gov#proposal-3
title:
@ -50751,9 +50751,8 @@ definitions:
description: voting_end_time is the end time of voting on a proposal.
metadata:
type: string
title: >-
title: |-
metadata is any arbitrary metadata attached to the proposal.
the recommended format of the metadata is to be found here:
https://docs.cosmos.network/v0.47/modules/gov#proposal-3
title:
@ -55625,13 +55624,12 @@ definitions:
verified with raw bytes from Tx.
- SIGN_MODE_TEXTUAL: SIGN_MODE_TEXTUAL is a future signing mode that will verify some
human-readable textual representation on top of the binary representation
from SIGN_MODE_DIRECT. It is currently experimental, and should be used
for testing purposes only, until Textual is fully released. Please follow
the tracking issue https://github.com/cosmos/cosmos-sdk/issues/11970.
from SIGN_MODE_DIRECT.
Since: cosmos-sdk 0.50
- SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses
SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not
require signers signing over other signers' `signer_info`. It also allows
for adding Tips in transactions.
require signers signing over other signers' `signer_info`.
Since: cosmos-sdk 0.46
- SIGN_MODE_LEGACY_AMINO_JSON: SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses
@ -57523,22 +57521,15 @@ definitions:
human-readable textual representation on top of the binary
representation
from SIGN_MODE_DIRECT. It is currently experimental, and should be
used
from SIGN_MODE_DIRECT.
for testing purposes only, until Textual is fully released. Please
follow
the tracking issue
https://github.com/cosmos/cosmos-sdk/issues/11970.
Since: cosmos-sdk 0.50
- SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses
SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode
does not
require signers signing over other signers' `signer_info`. It also
allows
for adding Tips in transactions.
require signers signing over other signers' `signer_info`.
Since: cosmos-sdk 0.46
@ -57634,21 +57625,15 @@ definitions:
human-readable textual representation on top of the binary
representation
from SIGN_MODE_DIRECT. It is currently experimental, and should be
used
from SIGN_MODE_DIRECT.
for testing purposes only, until Textual is fully released. Please
follow
the tracking issue https://github.com/cosmos/cosmos-sdk/issues/11970.
Since: cosmos-sdk 0.50
- SIGN_MODE_DIRECT_AUX: SIGN_MODE_DIRECT_AUX specifies a signing mode which uses
SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does
not
require signers signing over other signers' `signer_info`. It also
allows
for adding Tips in transactions.
require signers signing over other signers' `signer_info`.
Since: cosmos-sdk 0.46

View File

@ -35,8 +35,6 @@ const (
// SignModeDirectAux is the value of the --sign-mode flag for SIGN_MODE_DIRECT_AUX
SignModeDirectAux = "direct-aux"
// SignModeTextual is the value of the --sign-mode flag for SIGN_MODE_TEXTUAL.
// Choosing this flag will result in an error for now, as Textual should be
// used only for TESTING purposes for now.
SignModeTextual = "textual"
// SignModeEIP191 is the value of the --sign-mode flag for SIGN_MODE_EIP_191
SignModeEIP191 = "eip-191"

View File

@ -25,9 +25,9 @@ enum SignMode {
// SIGN_MODE_TEXTUAL is a future signing mode that will verify some
// human-readable textual representation on top of the binary representation
// from SIGN_MODE_DIRECT. It is currently experimental, and should be used
// for testing purposes only, until Textual is fully released. Please follow
// the tracking issue https://github.com/cosmos/cosmos-sdk/issues/11970.
// from SIGN_MODE_DIRECT.
//
// Since: cosmos-sdk 0.50
SIGN_MODE_TEXTUAL = 2;
// SIGN_MODE_DIRECT_AUX specifies a signing mode which uses

View File

@ -38,6 +38,7 @@ func NewRootCmd() *cobra.Command {
initClientCtx := client.Context{}.
WithCodec(encodingConfig.Codec).
WithInterfaceRegistry(encodingConfig.InterfaceRegistry).
WithTxConfig(encodingConfig.TxConfig).
WithLegacyAmino(encodingConfig.Amino).
WithInput(os.Stdin).
WithAccountRetriever(types.AccountRetriever{}).

View File

@ -30,12 +30,10 @@ import (
// NewRootCmd creates a new root command for simd. It is called once in the main function.
func NewRootCmd() *cobra.Command {
var (
interfaceRegistry codectypes.InterfaceRegistry
appCodec codec.Codec
txConfig client.TxConfig
txConfigOpts tx.ConfigOptions
autoCliOpts autocli.AppOptions
moduleBasicManager module.BasicManager
clientCtx *client.Context
initClientCtx *client.Context
)
if err := depinject.Inject(
@ -49,12 +47,10 @@ func NewRootCmd() *cobra.Command {
ProvideKeyring,
),
),
&interfaceRegistry,
&appCodec,
&txConfig,
&txConfigOpts,
&autoCliOpts,
&moduleBasicManager,
&clientCtx,
&initClientCtx,
); err != nil {
panic(err)
}
@ -68,34 +64,31 @@ func NewRootCmd() *cobra.Command {
cmd.SetOut(cmd.OutOrStdout())
cmd.SetErr(cmd.ErrOrStderr())
initClientCtx := *clientCtx
initClientCtx = initClientCtx.WithCmdContext(cmd.Context())
initClientCtx, err := client.ReadPersistentCommandFlags(initClientCtx, cmd.Flags())
clientCtx := *initClientCtx
clientCtx = clientCtx.WithCmdContext(cmd.Context())
clientCtx, err := client.ReadPersistentCommandFlags(clientCtx, cmd.Flags())
if err != nil {
return err
}
initClientCtx, err = config.ReadFromClientConfig(initClientCtx)
clientCtx, err = config.ReadFromClientConfig(clientCtx)
if err != nil {
return err
}
// This needs to go after ReadFromClientConfig, as that function
// sets the RPC client needed for SIGN_MODE_TEXTUAL.
enabledSignModes := append(tx.DefaultSignModes, signing.SignMode_SIGN_MODE_TEXTUAL)
txConfigOpts := tx.ConfigOptions{
EnabledSignModes: enabledSignModes,
TextualCoinMetadataQueryFn: txmodule.NewGRPCCoinMetadataQueryFn(initClientCtx),
}
// This needs to go after CreateClientConfig, as that function sets the RPC client needed for SIGN_MODE_TEXTUAL.
txConfigOpts.EnabledSignModes = append(txConfigOpts.EnabledSignModes, signing.SignMode_SIGN_MODE_TEXTUAL)
txConfigOpts.TextualCoinMetadataQueryFn = txmodule.NewGRPCCoinMetadataQueryFn(clientCtx)
txConfigWithTextual, err := tx.NewTxConfigWithOptions(
codec.NewProtoCodec(interfaceRegistry),
codec.NewProtoCodec(clientCtx.InterfaceRegistry),
txConfigOpts,
)
if err != nil {
return err
}
initClientCtx = initClientCtx.WithTxConfig(txConfigWithTextual)
if err := client.SetCmdClientContextHandler(initClientCtx, cmd); err != nil {
clientCtx = clientCtx.WithTxConfig(txConfigWithTextual)
if err := client.SetCmdClientContextHandler(clientCtx, cmd); err != nil {
return err
}
@ -106,7 +99,7 @@ func NewRootCmd() *cobra.Command {
},
}
initRootCmd(rootCmd, txConfig, interfaceRegistry, appCodec, moduleBasicManager)
initRootCmd(rootCmd, initClientCtx.TxConfig, initClientCtx.InterfaceRegistry, initClientCtx.Codec, moduleBasicManager)
if err := autoCliOpts.EnhanceRootCommand(rootCmd); err != nil {
panic(err)
@ -115,10 +108,16 @@ func NewRootCmd() *cobra.Command {
return rootCmd
}
func ProvideClientContext(appCodec codec.Codec, interfaceRegistry codectypes.InterfaceRegistry, legacyAmino *codec.LegacyAmino) *client.Context {
initClientCtx := client.Context{}.
func ProvideClientContext(
appCodec codec.Codec,
interfaceRegistry codectypes.InterfaceRegistry,
txConfig client.TxConfig,
legacyAmino *codec.LegacyAmino,
) *client.Context {
clientCtx := client.Context{}.
WithCodec(appCodec).
WithInterfaceRegistry(interfaceRegistry).
WithTxConfig(txConfig).
WithLegacyAmino(legacyAmino).
WithInput(os.Stdin).
WithAccountRetriever(types.AccountRetriever{}).
@ -126,9 +125,9 @@ func ProvideClientContext(appCodec codec.Codec, interfaceRegistry codectypes.Int
WithViper("") // In simapp, we don't use any prefix for env variables.
// Read the config again to overwrite the default values with the values from the config file
initClientCtx, _ = config.ReadFromClientConfig(initClientCtx)
clientCtx, _ = config.ReadFromClientConfig(clientCtx)
return &initClientCtx
return &clientCtx
}
func ProvideKeyring(clientCtx *client.Context, addressCodec address.Codec) (clientv2keyring.Keyring, error) {

View File

@ -603,3 +603,132 @@ func (mr *MockHasABCIEndBlockMockRecorder) RegisterLegacyAminoCodec(arg0 interfa
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterLegacyAminoCodec", reflect.TypeOf((*MockHasABCIEndBlock)(nil).RegisterLegacyAminoCodec), arg0)
}
// MockAppModuleGenesis is a mock of AppModuleGenesis interface.
type MockAppModuleGenesis struct {
ctrl *gomock.Controller
recorder *MockAppModuleGenesisMockRecorder
}
// MockAppModuleGenesisMockRecorder is the mock recorder for MockAppModuleGenesis.
type MockAppModuleGenesisMockRecorder struct {
mock *MockAppModuleGenesis
}
// NewMockAppModuleGenesis creates a new mock instance.
func NewMockAppModuleGenesis(ctrl *gomock.Controller) *MockAppModuleGenesis {
mock := &MockAppModuleGenesis{ctrl: ctrl}
mock.recorder = &MockAppModuleGenesisMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockAppModuleGenesis) EXPECT() *MockAppModuleGenesisMockRecorder {
return m.recorder
}
// DefaultGenesis mocks base method.
func (m *MockAppModuleGenesis) DefaultGenesis(arg0 codec.JSONCodec) json.RawMessage {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DefaultGenesis", arg0)
ret0, _ := ret[0].(json.RawMessage)
return ret0
}
// DefaultGenesis indicates an expected call of DefaultGenesis.
func (mr *MockAppModuleGenesisMockRecorder) DefaultGenesis(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DefaultGenesis", reflect.TypeOf((*MockAppModuleGenesis)(nil).DefaultGenesis), arg0)
}
// ExportGenesis mocks base method.
func (m *MockAppModuleGenesis) ExportGenesis(arg0 types1.Context, arg1 codec.JSONCodec) json.RawMessage {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ExportGenesis", arg0, arg1)
ret0, _ := ret[0].(json.RawMessage)
return ret0
}
// ExportGenesis indicates an expected call of ExportGenesis.
func (mr *MockAppModuleGenesisMockRecorder) ExportGenesis(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExportGenesis", reflect.TypeOf((*MockAppModuleGenesis)(nil).ExportGenesis), arg0, arg1)
}
// InitGenesis mocks base method.
func (m *MockAppModuleGenesis) InitGenesis(arg0 types1.Context, arg1 codec.JSONCodec, arg2 json.RawMessage) []types.ValidatorUpdate {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "InitGenesis", arg0, arg1, arg2)
ret0, _ := ret[0].([]types.ValidatorUpdate)
return ret0
}
// InitGenesis indicates an expected call of InitGenesis.
func (mr *MockAppModuleGenesisMockRecorder) InitGenesis(arg0, arg1, arg2 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitGenesis", reflect.TypeOf((*MockAppModuleGenesis)(nil).InitGenesis), arg0, arg1, arg2)
}
// Name mocks base method.
func (m *MockAppModuleGenesis) Name() string {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Name")
ret0, _ := ret[0].(string)
return ret0
}
// Name indicates an expected call of Name.
func (mr *MockAppModuleGenesisMockRecorder) Name() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Name", reflect.TypeOf((*MockAppModuleGenesis)(nil).Name))
}
// RegisterGRPCGatewayRoutes mocks base method.
func (m *MockAppModuleGenesis) RegisterGRPCGatewayRoutes(arg0 client.Context, arg1 *runtime.ServeMux) {
m.ctrl.T.Helper()
m.ctrl.Call(m, "RegisterGRPCGatewayRoutes", arg0, arg1)
}
// RegisterGRPCGatewayRoutes indicates an expected call of RegisterGRPCGatewayRoutes.
func (mr *MockAppModuleGenesisMockRecorder) RegisterGRPCGatewayRoutes(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterGRPCGatewayRoutes", reflect.TypeOf((*MockAppModuleGenesis)(nil).RegisterGRPCGatewayRoutes), arg0, arg1)
}
// RegisterInterfaces mocks base method.
func (m *MockAppModuleGenesis) RegisterInterfaces(arg0 types0.InterfaceRegistry) {
m.ctrl.T.Helper()
m.ctrl.Call(m, "RegisterInterfaces", arg0)
}
// RegisterInterfaces indicates an expected call of RegisterInterfaces.
func (mr *MockAppModuleGenesisMockRecorder) RegisterInterfaces(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterInterfaces", reflect.TypeOf((*MockAppModuleGenesis)(nil).RegisterInterfaces), arg0)
}
// RegisterLegacyAminoCodec mocks base method.
func (m *MockAppModuleGenesis) RegisterLegacyAminoCodec(arg0 *codec.LegacyAmino) {
m.ctrl.T.Helper()
m.ctrl.Call(m, "RegisterLegacyAminoCodec", arg0)
}
// RegisterLegacyAminoCodec indicates an expected call of RegisterLegacyAminoCodec.
func (mr *MockAppModuleGenesisMockRecorder) RegisterLegacyAminoCodec(arg0 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterLegacyAminoCodec", reflect.TypeOf((*MockAppModuleGenesis)(nil).RegisterLegacyAminoCodec), arg0)
}
// ValidateGenesis mocks base method.
func (m *MockAppModuleGenesis) ValidateGenesis(arg0 codec.JSONCodec, arg1 client.TxEncodingConfig, arg2 json.RawMessage) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ValidateGenesis", arg0, arg1, arg2)
ret0, _ := ret[0].(error)
return ret0
}
// ValidateGenesis indicates an expected call of ValidateGenesis.
func (mr *MockAppModuleGenesisMockRecorder) ValidateGenesis(arg0, arg1, arg2 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateGenesis", reflect.TypeOf((*MockAppModuleGenesis)(nil).ValidateGenesis), arg0, arg1, arg2)
}

View File

@ -43,9 +43,9 @@ const (
SignMode_SIGN_MODE_DIRECT SignMode = 1
// SIGN_MODE_TEXTUAL is a future signing mode that will verify some
// human-readable textual representation on top of the binary representation
// from SIGN_MODE_DIRECT. It is currently experimental, and should be used
// for testing purposes only, until Textual is fully released. Please follow
// the tracking issue https://github.com/cosmos/cosmos-sdk/issues/11970.
// from SIGN_MODE_DIRECT.
//
// Since: cosmos-sdk 0.50
SignMode_SIGN_MODE_TEXTUAL SignMode = 2
// SIGN_MODE_DIRECT_AUX specifies a signing mode which uses
// SignDocDirectAux. As opposed to SIGN_MODE_DIRECT, this sign mode does not

View File

@ -56,8 +56,9 @@ type ModuleInputs struct {
type ModuleOutputs struct {
depinject.Out
TxConfig client.TxConfig
BaseAppOption runtime.BaseAppOption
TxConfig client.TxConfig
TxConfigOptions tx.ConfigOptions
BaseAppOption runtime.BaseAppOption
}
func ProvideProtoRegistry() txsigning.ProtoFileResolver {
@ -130,7 +131,7 @@ func ProvideModule(in ModuleInputs) ModuleOutputs {
app.SetTxEncoder(txConfig.TxEncoder())
}
return ModuleOutputs{TxConfig: txConfig, BaseAppOption: baseAppOption}
return ModuleOutputs{TxConfig: txConfig, TxConfigOptions: txConfigOptions, BaseAppOption: baseAppOption}
}
func newAnteHandler(txConfig client.TxConfig, in ModuleInputs) (sdk.AnteHandler, error) {