Skip to content

Commit

Permalink
fix client config don't take effect (backport #9211) (#9360)
Browse files Browse the repository at this point in the history
* fix client config don't take effect (#9211)

* fix client keyring config

* fix output flag of keys commads

Co-authored-by: Robert Zaremba <robert@zaremba.ch>
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
(cherry picked from commit b4d1a5e)

# Conflicts:
#	client/keys/add.go

* Fix conflicts

Co-authored-by: yihuang <huang@crypto.com>
Co-authored-by: Amaury M <1293565+amaurym@users.noreply.github.com>
  • Loading branch information
3 people committed May 19, 2021
1 parent 1327224 commit 9fe61a7
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 30 deletions.
3 changes: 2 additions & 1 deletion client/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ func ReadFromClientConfig(ctx client.Context) (client.Context, error) {
}
// we need to update KeyringDir field on Client Context first cause it is used in NewKeyringFromBackend
ctx = ctx.WithOutputFormat(conf.Output).
WithChainID(conf.ChainID)
WithChainID(conf.ChainID).
WithKeyringDir(ctx.HomeDir)

keyring, err := client.NewKeyringFromBackend(ctx, conf.KeyringBackend)
if err != nil {
Expand Down
39 changes: 12 additions & 27 deletions client/keys/add.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (

bip39 "github.com/cosmos/go-bip39"
"github.com/spf13/cobra"
"github.com/tendermint/tendermint/libs/cli"

"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/client/flags"
Expand Down Expand Up @@ -59,7 +58,7 @@ required through --multisig-threshold. The keys are sorted by address, unless
the flag --nosort is set.
`,
Args: cobra.ExactArgs(1),
RunE: runAddCmd,
RunE: runAddCmdPrepare,
}

cmd.Flags().StringSlice(flagMultisig, nil, "Construct and store a multisig public key (implies --pubkey)")
Expand All @@ -83,28 +82,14 @@ the flag --nosort is set.
return cmd
}

func runAddCmd(cmd *cobra.Command, args []string) error {
func runAddCmdPrepare(cmd *cobra.Command, args []string) error {
buf := bufio.NewReader(cmd.InOrStdin())
clientCtx, err := client.GetClientQueryContext(cmd)
if err != nil {
return err
}

var kr keyring.Keyring

dryRun, _ := cmd.Flags().GetBool(flags.FlagDryRun)
if dryRun {
kr, err = keyring.New(sdk.KeyringServiceName(), keyring.BackendMemory, clientCtx.KeyringDir, buf)
} else {
backend, _ := cmd.Flags().GetString(flags.FlagKeyringBackend)
kr, err = keyring.New(sdk.KeyringServiceName(), backend, clientCtx.KeyringDir, buf)
}

if err != nil {
return err
}

return RunAddCmd(cmd, args, kr, buf)
return RunAddCmd(clientCtx, cmd, args, buf)
}

/*
Expand All @@ -116,13 +101,15 @@ input
output
- armor encrypted private key (saved to file)
*/
func RunAddCmd(cmd *cobra.Command, args []string, kb keyring.Keyring, inBuf *bufio.Reader) error {
func RunAddCmd(ctx client.Context, cmd *cobra.Command, args []string, inBuf *bufio.Reader) error {
var err error

name := args[0]
interactive, _ := cmd.Flags().GetBool(flagInteractive)
noBackup, _ := cmd.Flags().GetBool(flagNoBackup)
showMnemonic := !noBackup
kb := ctx.Keyring
outputFormat := ctx.OutputFormat

keyringAlgos, _ := kb.SupportedAlgorithms()
algoStr, _ := cmd.Flags().GetString(flags.FlagKeyAlgorithm)
Expand Down Expand Up @@ -219,7 +206,7 @@ func RunAddCmd(cmd *cobra.Command, args []string, kb keyring.Keyring, inBuf *buf
return err
}

return printCreate(cmd, info, false, "")
return printCreate(cmd, info, false, "", outputFormat)
}

// Get bip39 mnemonic
Expand Down Expand Up @@ -293,16 +280,14 @@ func RunAddCmd(cmd *cobra.Command, args []string, kb keyring.Keyring, inBuf *buf
mnemonic = ""
}

return printCreate(cmd, info, showMnemonic, mnemonic)
return printCreate(cmd, info, showMnemonic, mnemonic, outputFormat)
}

func printCreate(cmd *cobra.Command, info keyring.Info, showMnemonic bool, mnemonic string) error {
output, _ := cmd.Flags().GetString(cli.OutputFlag)

switch output {
func printCreate(cmd *cobra.Command, info keyring.Info, showMnemonic bool, mnemonic string, outputFormat string) error {
switch outputFormat {
case OutputFormatText:
cmd.PrintErrln()
printKeyInfo(cmd.OutOrStdout(), info, keyring.Bech32KeyOutput, output)
printKeyInfo(cmd.OutOrStdout(), info, keyring.Bech32KeyOutput, outputFormat)

// print mnemonic unless requested not to.
if showMnemonic {
Expand All @@ -329,7 +314,7 @@ func printCreate(cmd *cobra.Command, info keyring.Info, showMnemonic bool, mnemo
cmd.Println(string(jsonString))

default:
return fmt.Errorf("invalid output format %s", output)
return fmt.Errorf("invalid output format %s", outputFormat)
}

return nil
Expand Down
6 changes: 4 additions & 2 deletions client/keys/show.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,15 +111,17 @@ func runShowCmd(cmd *cobra.Command, args []string) (err error) {
return err
}

output, _ := cmd.Flags().GetString(cli.OutputFlag)
if isOutputSet {
clientCtx.OutputFormat, _ = cmd.Flags().GetString(cli.OutputFlag)
}

switch {
case isShowAddr:
printKeyAddress(cmd.OutOrStdout(), info, bechKeyOut)
case isShowPubKey:
printPubKey(cmd.OutOrStdout(), info, bechKeyOut)
default:
printKeyInfo(cmd.OutOrStdout(), info, bechKeyOut, output)
printKeyInfo(cmd.OutOrStdout(), info, bechKeyOut, clientCtx.OutputFormat)
}

if isShowDevice {
Expand Down

0 comments on commit 9fe61a7

Please sign in to comment.