diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f99cedc4737..e7f96bc690d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,10 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## [Unreleased] +### Bug Fixes + +* (x/auth) [#19549](https://github.com/cosmos/cosmos-sdk/pull/19549) Accept custom get signers when injecting `x/auth/tx`. + ## [v0.50.4](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.4) - 2023-02-19 ### Features diff --git a/x/auth/tx/config/config.go b/x/auth/tx/config/config.go index 957b3a93e98b..1a6bba6b4da5 100644 --- a/x/auth/tx/config/config.go +++ b/x/auth/tx/config/config.go @@ -7,6 +7,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" grpcstatus "google.golang.org/grpc/status" + "google.golang.org/protobuf/reflect/protoreflect" bankv1beta1 "cosmossdk.io/api/cosmos/bank/v1beta1" txconfigv1 "cosmossdk.io/api/cosmos/tx/config/v1" @@ -51,6 +52,7 @@ type ModuleInputs struct { AccountKeeper ante.AccountKeeper `optional:"true"` FeeGrantKeeper ante.FeegrantKeeper `optional:"true"` CustomSignModeHandlers func() []txsigning.SignModeHandler `optional:"true"` + CustomGetSigners []txsigning.CustomGetSigner `optional:"true"` } type ModuleOutputs struct { @@ -77,10 +79,15 @@ func ProvideModule(in ModuleInputs) ModuleOutputs { FileResolver: in.ProtoFileResolver, AddressCodec: in.AddressCodec, ValidatorAddressCodec: in.ValidatorAddressCodec, + CustomGetSigners: make(map[protoreflect.FullName]txsigning.GetSignersFunc), }, CustomSignModes: customSignModeHandlers, } + for _, mode := range in.CustomGetSigners { + txConfigOptions.SigningOptions.CustomGetSigners[mode.MsgType] = mode.Fn + } + // enable SIGN_MODE_TEXTUAL only if bank keeper is available if in.MetadataBankKeeper != nil { txConfigOptions.EnabledSignModes = append(txConfigOptions.EnabledSignModes, signingtypes.SignMode_SIGN_MODE_TEXTUAL)