From 70dbbc1746bb9c1db1e786190b03c73e1a7f5ec7 Mon Sep 17 00:00:00 2001 From: Hoa Nguyen Date: Fri, 7 Jun 2024 16:27:34 +0700 Subject: [PATCH] fix: miss handler SignMode_SIGN_MODE_TEXTUAL (#529) --- cmd/picad/cmd/root.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/cmd/picad/cmd/root.go b/cmd/picad/cmd/root.go index 810d2e0e..1eff90f9 100644 --- a/cmd/picad/cmd/root.go +++ b/cmd/picad/cmd/root.go @@ -5,7 +5,11 @@ import ( "io" "os" + "github.com/cosmos/cosmos-sdk/types/tx/signing" + "github.com/cosmos/cosmos-sdk/x/auth/tx" + "github.com/cosmos/cosmos-sdk/crypto/keyring" + txmodule "github.com/cosmos/cosmos-sdk/x/auth/tx/config" "cosmossdk.io/log" tmcli "github.com/cometbft/cometbft/libs/cli" @@ -91,6 +95,25 @@ func NewRootCmd() (*cobra.Command, app.EncodingConfig) { return err } + // This needs to go after ReadFromClientConfig, as that function + // sets the RPC client needed for SIGN_MODE_TEXTUAL. This sign mode + // is only available if the client is online. + if !initClientCtx.Offline { + txConfigOpts := tx.ConfigOptions{ + EnabledSignModes: append(tx.DefaultSignModes, signing.SignMode_SIGN_MODE_TEXTUAL), + TextualCoinMetadataQueryFn: txmodule.NewGRPCCoinMetadataQueryFn(initClientCtx), + } + txConfig, err := tx.NewTxConfigWithOptions( + initClientCtx.Codec, + txConfigOpts, + ) + if err != nil { + return err + } + + initClientCtx = initClientCtx.WithTxConfig(txConfig) + } + if err := client.SetCmdClientContextHandler(initClientCtx, cmd); err != nil { return err }