From 7e8cd3546f1873b4699137bffbb0a7243ac535f3 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Mon, 3 Apr 2023 14:12:31 +0200 Subject: [PATCH 1/8] refactor: remove `cometbft/libs/cli` import --- client/cmd.go | 7 +++---- client/flags/flags.go | 5 ++--- client/keys/add_ledger_test.go | 5 ++--- client/keys/add_test.go | 11 +++++------ client/keys/parse.go | 4 ++-- client/keys/root.go | 3 +-- client/keys/show.go | 6 +++--- server/util.go | 3 +-- tests/e2e/auth/suite.go | 2 +- testutil/cli/cmd.go | 4 ++-- version/command.go | 10 ++++++---- version/version_test.go | 6 +++--- x/auth/client/testutil/helpers.go | 4 ++-- x/genutil/client/cli/init.go | 3 +-- x/genutil/client/cli/init_test.go | 7 +++---- x/genutil/client/testutil/helpers.go | 4 ++-- 16 files changed, 39 insertions(+), 45 deletions(-) diff --git a/client/cmd.go b/client/cmd.go index 2822512fd5eb..1bf8084a07f9 100644 --- a/client/cmd.go +++ b/client/cmd.go @@ -6,7 +6,6 @@ import ( "strings" "github.com/cockroachdb/errors" - "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" "github.com/spf13/pflag" "google.golang.org/grpc" @@ -92,8 +91,8 @@ func ValidateCmd(cmd *cobra.Command, args []string) error { // - client.Context field pre-populated & flag not set: uses pre-populated value // - client.Context field pre-populated & flag set: uses set flag value func ReadPersistentCommandFlags(clientCtx Context, flagSet *pflag.FlagSet) (Context, error) { - if clientCtx.OutputFormat == "" || flagSet.Changed(cli.OutputFlag) { - output, _ := flagSet.GetString(cli.OutputFlag) + if clientCtx.OutputFormat == "" || flagSet.Changed(flags.FlagOutput) { + output, _ := flagSet.GetString(flags.FlagOutput) clientCtx = clientCtx.WithOutputFormat(output) } @@ -305,7 +304,7 @@ func readTxCommandFlags(clientCtx Context, flagSet *pflag.FlagSet) (Context, err if isAux { // If the user didn't explicitly set an --output flag, use JSON by // default. - if clientCtx.OutputFormat == "" || !flagSet.Changed(cli.OutputFlag) { + if clientCtx.OutputFormat == "" || !flagSet.Changed(flags.FlagOutput) { clientCtx = clientCtx.WithOutputFormat("json") } diff --git a/client/flags/flags.go b/client/flags/flags.go index c06aad1e6b07..237827b90d79 100644 --- a/client/flags/flags.go +++ b/client/flags/flags.go @@ -4,7 +4,6 @@ import ( "fmt" "strconv" - cmtcli "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" "github.com/spf13/pflag" @@ -45,7 +44,7 @@ const ( // List of CLI flags const ( - FlagHome = cmtcli.HomeFlag + FlagHome = "home" FlagKeyringDir = "keyring-dir" FlagUseLedger = "ledger" FlagChainID = "chain-id" @@ -86,7 +85,7 @@ const ( FlagInitHeight = "initial-height" // FlagOutput is the flag to set the output format. // This differs from FlagOutputDocument that is used to set the output file. - FlagOutput = cmtcli.OutputFlag + FlagOutput = "output" // Logging flags FlagLogLevel = "log_level" diff --git a/client/keys/add_ledger_test.go b/client/keys/add_ledger_test.go index 1bcc62aa5654..f656f06b9038 100644 --- a/client/keys/add_ledger_test.go +++ b/client/keys/add_ledger_test.go @@ -10,7 +10,6 @@ import ( "io" "testing" - "github.com/cometbft/cometbft/libs/cli" "github.com/stretchr/testify/require" "github.com/cosmos/cosmos-sdk/client" @@ -54,7 +53,7 @@ func Test_runAddCmdLedgerWithCustomCoinType(t *testing.T) { fmt.Sprintf("--%s=0", flagAccount), fmt.Sprintf("--%s=0", flagIndex), fmt.Sprintf("--%s=330", flagCoinType), - fmt.Sprintf("--%s=%s", cli.OutputFlag, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), }) @@ -104,7 +103,7 @@ func Test_runAddCmdLedger(t *testing.T) { cmd.SetArgs([]string{ "keyname1", fmt.Sprintf("--%s=true", flags.FlagUseLedger), - fmt.Sprintf("--%s=%s", cli.OutputFlag, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%d", flagCoinType, sdk.CoinType), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), diff --git a/client/keys/add_test.go b/client/keys/add_test.go index 1f28fcddbc3a..a9edd3d48a65 100644 --- a/client/keys/add_test.go +++ b/client/keys/add_test.go @@ -7,7 +7,6 @@ import ( "io" "testing" - "github.com/cometbft/cometbft/libs/cli" "github.com/stretchr/testify/require" "github.com/cosmos/cosmos-sdk/client" @@ -43,7 +42,7 @@ func Test_runAddCmdBasic(t *testing.T) { cmd.SetArgs([]string{ "keyname1", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=%s", cli.OutputFlag, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), }) @@ -56,7 +55,7 @@ func Test_runAddCmdBasic(t *testing.T) { cmd.SetArgs([]string{ "keyname2", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=%s", cli.OutputFlag, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), }) @@ -70,7 +69,7 @@ func Test_runAddCmdBasic(t *testing.T) { cmd.SetArgs([]string{ "keyname4", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=%s", cli.OutputFlag, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), }) @@ -82,7 +81,7 @@ func Test_runAddCmdBasic(t *testing.T) { "keyname5", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), fmt.Sprintf("--%s=true", flags.FlagDryRun), - fmt.Sprintf("--%s=%s", cli.OutputFlag, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), }) @@ -245,7 +244,7 @@ func TestAddRecoverFileBackend(t *testing.T) { cmd.SetArgs([]string{ "keyname1", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=%s", cli.OutputFlag, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendFile), fmt.Sprintf("--%s", flagRecover), diff --git a/client/keys/parse.go b/client/keys/parse.go index fc0344c19827..e34f356456f2 100644 --- a/client/keys/parse.go +++ b/client/keys/parse.go @@ -8,10 +8,10 @@ import ( "io" "strings" - "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" "sigs.k8s.io/yaml" + "github.com/cosmos/cosmos-sdk/client/flags" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/bech32" ) @@ -98,7 +98,7 @@ func doParseKey(cmd *cobra.Command, config *sdk.Config, args []string) error { return errors.New("couldn't parse empty input") } - output, _ := cmd.Flags().GetString(cli.OutputFlag) + output, _ := cmd.Flags().GetString(flags.FlagOutput) if !(runFromBech32(outstream, addr, output) || runFromHex(config, outstream, addr, output)) { return errors.New("couldn't find valid bech32 nor hex data") } diff --git a/client/keys/root.go b/client/keys/root.go index 855a50798168..92fd3ae2e339 100644 --- a/client/keys/root.go +++ b/client/keys/root.go @@ -1,7 +1,6 @@ package keys import ( - "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" "github.com/cosmos/cosmos-sdk/client/flags" @@ -52,7 +51,7 @@ The pass backend requires GnuPG: https://gnupg.org/ ) cmd.PersistentFlags().String(flags.FlagHome, defaultNodeHome, "The application home directory") - cmd.PersistentFlags().String(cli.OutputFlag, "text", "Output format (text|json)") + cmd.PersistentFlags().String(flags.FlagOutput, "text", "Output format (text|json)") flags.AddKeyringFlags(cmd.PersistentFlags()) return cmd diff --git a/client/keys/show.go b/client/keys/show.go index 21c800b48227..c65a000409d1 100644 --- a/client/keys/show.go +++ b/client/keys/show.go @@ -4,12 +4,12 @@ import ( "errors" "fmt" - "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" errorsmod "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/crypto/keyring" "github.com/cosmos/cosmos-sdk/crypto/keys/multisig" "github.com/cosmos/cosmos-sdk/crypto/ledger" @@ -97,7 +97,7 @@ func runShowCmd(cmd *cobra.Command, args []string) (err error) { isShowDevice, _ := cmd.Flags().GetBool(FlagDevice) isOutputSet := false - tmp := cmd.Flag(cli.OutputFlag) + tmp := cmd.Flag(flags.FlagOutput) if tmp != nil { isOutputSet = tmp.Changed } @@ -117,7 +117,7 @@ func runShowCmd(cmd *cobra.Command, args []string) (err error) { } if isOutputSet { - clientCtx.OutputFormat, _ = cmd.Flags().GetString(cli.OutputFlag) + clientCtx.OutputFormat, _ = cmd.Flags().GetString(flags.FlagOutput) } switch { diff --git a/server/util.go b/server/util.go index 6bb46bd6ddc3..1bb2f1052e00 100644 --- a/server/util.go +++ b/server/util.go @@ -16,7 +16,6 @@ import ( cmtcmd "github.com/cometbft/cometbft/cmd/cometbft/commands" cmtcfg "github.com/cometbft/cometbft/config" - cmtcli "github.com/cometbft/cometbft/libs/cli" dbm "github.com/cosmos/cosmos-db" "github.com/rs/zerolog" "github.com/spf13/cast" @@ -190,7 +189,7 @@ func CreateSDKLogger(ctx *Context, out io.Writer) (log.Logger, error) { opts = append(opts, log.FilterOption(filterFunc)) - } else if ctx.Viper.GetBool(cmtcli.TraceFlag) { + } else if ctx.Viper.GetBool("trace") { // cmtcli.TraceFlag // Check if the CometBFT flag for trace logging is set if it is then setup a tracing logger in this app as well. // Note it overrides log level passed in `log_levels`. opts = append(opts, log.LevelOption(zerolog.TraceLevel)) diff --git a/tests/e2e/auth/suite.go b/tests/e2e/auth/suite.go index 7097851bad74..adb5aa69abb5 100644 --- a/tests/e2e/auth/suite.go +++ b/tests/e2e/auth/suite.go @@ -220,7 +220,7 @@ func (s *E2ETestSuite) TestCLISignGenOnly() { for _, tc := range cases { cmd := authcli.GetSignCommand() - cmtcli.PrepareBaseCmd(cmd, "", "") + cmtcli.PrepareBaseCmd(cmd, "", "") // TODO out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, append(tc.args, commonArgs...)) if tc.expErr { s.Require().Error(err) diff --git a/testutil/cli/cmd.go b/testutil/cli/cmd.go index e571ce78454b..64c25be9b7de 100644 --- a/testutil/cli/cmd.go +++ b/testutil/cli/cmd.go @@ -4,10 +4,10 @@ import ( "context" "fmt" - cli2 "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/testutil" "github.com/cosmos/cosmos-sdk/x/bank/client/cli" ) @@ -37,7 +37,7 @@ func MsgSendExec(clientCtx client.Context, from, to, amount fmt.Stringer, extraA } func QueryBalancesExec(clientCtx client.Context, address fmt.Stringer, extraArgs ...string) (testutil.BufferWriter, error) { - args := []string{address.String(), fmt.Sprintf("--%s=json", cli2.OutputFlag)} + args := []string{address.String(), fmt.Sprintf("--%s=json", flags.FlagOutput)} args = append(args, extraArgs...) return ExecTestCLICmd(clientCtx, cli.GetBalancesCmd(), args) diff --git a/version/command.go b/version/command.go index 96fcfcc954c5..451173400c22 100644 --- a/version/command.go +++ b/version/command.go @@ -5,12 +5,14 @@ import ( "fmt" "strings" - "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" "sigs.k8s.io/yaml" ) -const flagLong = "long" +const ( + flagLong = "long" + flagOutput = "output" +) // NewVersionCommand returns a CLI command to interactively print the application binary version information. func NewVersionCommand() *cobra.Command { @@ -31,7 +33,7 @@ func NewVersionCommand() *cobra.Command { err error ) - output, _ := cmd.Flags().GetString(cli.OutputFlag) + output, _ := cmd.Flags().GetString(flagOutput) switch strings.ToLower(output) { case "json": bz, err = json.Marshal(verInfo) @@ -50,7 +52,7 @@ func NewVersionCommand() *cobra.Command { } cmd.Flags().Bool(flagLong, false, "Print long version information") - cmd.Flags().StringP(cli.OutputFlag, "o", "text", "Output format (text|json)") + cmd.Flags().StringP(flagOutput, "o", "text", "Output format (text|json)") return cmd } diff --git a/version/version_test.go b/version/version_test.go index f14f6c03d31c..caf0a5fb6b60 100644 --- a/version/version_test.go +++ b/version/version_test.go @@ -7,10 +7,10 @@ import ( "strings" "testing" - "github.com/cometbft/cometbft/libs/cli" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/testutil" "github.com/cosmos/cosmos-sdk/testutil/cmdtest" "github.com/cosmos/cosmos-sdk/version" @@ -144,7 +144,7 @@ func Test_runVersionCmd(t *testing.T) { _, mockOut := testutil.ApplyMockIO(cmd) cmd.SetArgs([]string{ - fmt.Sprintf("--%s=''", cli.OutputFlag), + fmt.Sprintf("--%s=''", flags.FlagOutput), "--long=false", }) @@ -153,7 +153,7 @@ func Test_runVersionCmd(t *testing.T) { mockOut.Reset() cmd.SetArgs([]string{ - fmt.Sprintf("--%s=json", cli.OutputFlag), "--long=true", + fmt.Sprintf("--%s=json", flags.FlagOutput), "--long=true", }) info := version.NewInfo() diff --git a/x/auth/client/testutil/helpers.go b/x/auth/client/testutil/helpers.go index 106c4a76d7b4..0612daa3e350 100644 --- a/x/auth/client/testutil/helpers.go +++ b/x/auth/client/testutil/helpers.go @@ -23,7 +23,7 @@ func TxSignExec(clientCtx client.Context, from fmt.Stringer, filename string, ex } cmd := cli.GetSignCommand() - cmtcli.PrepareBaseCmd(cmd, "", "") + cmtcli.PrepareBaseCmd(cmd, "", "") // TODO return clitestutil.ExecTestCLICmd(clientCtx, cmd, append(args, extraArgs...)) } @@ -92,7 +92,7 @@ func TxAuxToFeeExec(clientCtx client.Context, filename string, extraArgs ...stri } func QueryAccountExec(clientCtx client.Context, address fmt.Stringer, extraArgs ...string) (testutil.BufferWriter, error) { - args := []string{address.String(), fmt.Sprintf("--%s=json", cmtcli.OutputFlag)} + args := []string{address.String(), fmt.Sprintf("--%s=json", flags.FlagOutput)} return clitestutil.ExecTestCLICmd(clientCtx, cli.GetAccountCmd(), append(args, extraArgs...)) } diff --git a/x/genutil/client/cli/init.go b/x/genutil/client/cli/init.go index e09e84067e51..37eda3cc719d 100644 --- a/x/genutil/client/cli/init.go +++ b/x/genutil/client/cli/init.go @@ -11,7 +11,6 @@ import ( errorsmod "cosmossdk.io/errors" "cosmossdk.io/math/unsafe" cfg "github.com/cometbft/cometbft/config" - "github.com/cometbft/cometbft/libs/cli" "github.com/cosmos/go-bip39" "github.com/spf13/cobra" @@ -173,7 +172,7 @@ func InitCmd(mbm module.BasicManager, defaultNodeHome string) *cobra.Command { }, } - cmd.Flags().String(cli.HomeFlag, defaultNodeHome, "node's home directory") + cmd.Flags().String(flags.FlagHome, defaultNodeHome, "node's home directory") cmd.Flags().BoolP(FlagOverwrite, "o", false, "overwrite the genesis.json file") cmd.Flags().Bool(FlagRecover, false, "provide seed phrase to recover existing key instead of creating") cmd.Flags().String(flags.FlagChainID, "", "genesis file chain-id, if left blank will be randomly created") diff --git a/x/genutil/client/cli/init_test.go b/x/genutil/client/cli/init_test.go index 01cbc5f97669..a53e5037c185 100644 --- a/x/genutil/client/cli/init_test.go +++ b/x/genutil/client/cli/init_test.go @@ -10,7 +10,6 @@ import ( "time" abci_server "github.com/cometbft/cometbft/abci/server" - "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/viper" "github.com/stretchr/testify/require" @@ -146,7 +145,7 @@ func TestInitDefaultBondDenom(t *testing.T) { cmd.SetArgs([]string{ "appnode-test", - fmt.Sprintf("--%s=%s", cli.HomeFlag, home), + fmt.Sprintf("--%s=%s", flags.FlagHome, home), fmt.Sprintf("--%s=testtoken", genutilcli.FlagDefaultBondDenom), }) require.NoError(t, cmd.ExecuteContext(ctx)) @@ -171,7 +170,7 @@ func TestEmptyState(t *testing.T) { ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx) cmd := genutilcli.InitCmd(testMbm, home) - cmd.SetArgs([]string{"appnode-test", fmt.Sprintf("--%s=%s", cli.HomeFlag, home)}) + cmd.SetArgs([]string{"appnode-test", fmt.Sprintf("--%s=%s", flags.FlagHome, home)}) require.NoError(t, cmd.ExecuteContext(ctx)) @@ -180,7 +179,7 @@ func TestEmptyState(t *testing.T) { os.Stdout = w cmd = server.ExportCmd(nil, home) - cmd.SetArgs([]string{fmt.Sprintf("--%s=%s", cli.HomeFlag, home)}) + cmd.SetArgs([]string{fmt.Sprintf("--%s=%s", flags.FlagHome, home)}) require.NoError(t, cmd.ExecuteContext(ctx)) outC := make(chan string) diff --git a/x/genutil/client/testutil/helpers.go b/x/genutil/client/testutil/helpers.go index c570b9a6d080..7060f6ab243c 100644 --- a/x/genutil/client/testutil/helpers.go +++ b/x/genutil/client/testutil/helpers.go @@ -5,12 +5,12 @@ import ( "fmt" cmtcfg "github.com/cometbft/cometbft/config" - "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/viper" "cosmossdk.io/log" "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/testutil" @@ -36,7 +36,7 @@ func ExecInitCmd(testMbm module.BasicManager, home string, cdc codec.Codec) erro ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) ctx = context.WithValue(ctx, server.ServerContextKey, serverCtx) - cmd.SetArgs([]string{"appnode-test", fmt.Sprintf("--%s=%s", cli.HomeFlag, home)}) + cmd.SetArgs([]string{"appnode-test", fmt.Sprintf("--%s=%s", flags.FlagHome, home)}) return cmd.ExecuteContext(ctx) } From 4e9d2b5d3b94b7a766006b0472032657ad649098 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Mon, 3 Apr 2023 14:23:32 +0200 Subject: [PATCH 2/8] updates --- server/util.go | 7 ++++--- tests/e2e/auth/suite.go | 2 -- x/auth/client/testutil/helpers.go | 3 --- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/server/util.go b/server/util.go index 1bb2f1052e00..eb63c0085425 100644 --- a/server/util.go +++ b/server/util.go @@ -180,7 +180,8 @@ func CreateSDKLogger(ctx *Context, out io.Writer) (log.Logger, error) { } logLvl, err := zerolog.ParseLevel(logLvlStr) - if err != nil { + switch { + case err != nil: // If the log level is not a valid zerolog level, then we try to parse it as a key filter. filterFunc, err := log.ParseLogLevel(logLvlStr) if err != nil { @@ -189,11 +190,11 @@ func CreateSDKLogger(ctx *Context, out io.Writer) (log.Logger, error) { opts = append(opts, log.FilterOption(filterFunc)) - } else if ctx.Viper.GetBool("trace") { // cmtcli.TraceFlag + case ctx.Viper.GetBool("trace"): // cmtcli.TraceFlag // Check if the CometBFT flag for trace logging is set if it is then setup a tracing logger in this app as well. // Note it overrides log level passed in `log_levels`. opts = append(opts, log.LevelOption(zerolog.TraceLevel)) - } else { + default: opts = append(opts, log.LevelOption(logLvl)) } diff --git a/tests/e2e/auth/suite.go b/tests/e2e/auth/suite.go index adb5aa69abb5..9b945e62e051 100644 --- a/tests/e2e/auth/suite.go +++ b/tests/e2e/auth/suite.go @@ -7,7 +7,6 @@ import ( "strings" "testing" - cmtcli "github.com/cometbft/cometbft/libs/cli" "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" @@ -220,7 +219,6 @@ func (s *E2ETestSuite) TestCLISignGenOnly() { for _, tc := range cases { cmd := authcli.GetSignCommand() - cmtcli.PrepareBaseCmd(cmd, "", "") // TODO out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, append(tc.args, commonArgs...)) if tc.expErr { s.Require().Error(err) diff --git a/x/auth/client/testutil/helpers.go b/x/auth/client/testutil/helpers.go index 0612daa3e350..2092f5ae04bf 100644 --- a/x/auth/client/testutil/helpers.go +++ b/x/auth/client/testutil/helpers.go @@ -4,8 +4,6 @@ import ( "fmt" "strings" - cmtcli "github.com/cometbft/cometbft/libs/cli" - "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/crypto/keyring" @@ -23,7 +21,6 @@ func TxSignExec(clientCtx client.Context, from fmt.Stringer, filename string, ex } cmd := cli.GetSignCommand() - cmtcli.PrepareBaseCmd(cmd, "", "") // TODO return clitestutil.ExecTestCLICmd(clientCtx, cmd, append(args, extraArgs...)) } From 492988ec18c71004314f65087e9be615d41fa621 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Mon, 3 Apr 2023 14:39:01 +0200 Subject: [PATCH 3/8] remove LogFormatJSON --- client/cmd.go | 2 +- client/flags/flags.go | 7 ++++++- client/keys/add.go | 4 ++-- client/keys/add_test.go | 10 +++++----- client/keys/parse.go | 4 ++-- client/keys/utils.go | 15 +++++---------- server/util.go | 2 +- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/client/cmd.go b/client/cmd.go index 1bf8084a07f9..83b46028960b 100644 --- a/client/cmd.go +++ b/client/cmd.go @@ -305,7 +305,7 @@ func readTxCommandFlags(clientCtx Context, flagSet *pflag.FlagSet) (Context, err // If the user didn't explicitly set an --output flag, use JSON by // default. if clientCtx.OutputFormat == "" || !flagSet.Changed(flags.FlagOutput) { - clientCtx = clientCtx.WithOutputFormat("json") + clientCtx = clientCtx.WithOutputFormat(flags.OutputFormatJSON) } // If the user didn't explicitly set a --sign-mode flag, use diff --git a/client/flags/flags.go b/client/flags/flags.go index 237827b90d79..e69e76c1e1d5 100644 --- a/client/flags/flags.go +++ b/client/flags/flags.go @@ -86,12 +86,17 @@ const ( // FlagOutput is the flag to set the output format. // This differs from FlagOutputDocument that is used to set the output file. FlagOutput = "output" - // Logging flags FlagLogLevel = "log_level" FlagLogFormat = "log_format" ) +// List of supported output formats +const ( + OutputFormatJSON = "json" + OutputFormatText = "text" +) + // LineBreak can be included in a command list to provide a blank line // to help with readability var LineBreak = &cobra.Command{Run: func(*cobra.Command, []string) {}} diff --git a/client/keys/add.go b/client/keys/add.go index a38fa798ca2b..373b4b9aec09 100644 --- a/client/keys/add.go +++ b/client/keys/add.go @@ -302,7 +302,7 @@ func runAddCmd(ctx client.Context, cmd *cobra.Command, args []string, inBuf *buf func printCreate(cmd *cobra.Command, k *keyring.Record, showMnemonic bool, mnemonic, outputFormat string) error { switch outputFormat { - case OutputFormatText: + case flags.OutputFormatText: cmd.PrintErrln() if err := printKeyringRecord(cmd.OutOrStdout(), k, MkAccKeyOutput, outputFormat); err != nil { return err @@ -314,7 +314,7 @@ func printCreate(cmd *cobra.Command, k *keyring.Record, showMnemonic bool, mnemo return fmt.Errorf("failed to print mnemonic: %v", err) } } - case OutputFormatJSON: + case flags.OutputFormatJSON: out, err := MkAccKeyOutput(k) if err != nil { return err diff --git a/client/keys/add_test.go b/client/keys/add_test.go index a9edd3d48a65..f275d001ab38 100644 --- a/client/keys/add_test.go +++ b/client/keys/add_test.go @@ -42,7 +42,7 @@ func Test_runAddCmdBasic(t *testing.T) { cmd.SetArgs([]string{ "keyname1", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, flags.OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), }) @@ -55,7 +55,7 @@ func Test_runAddCmdBasic(t *testing.T) { cmd.SetArgs([]string{ "keyname2", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, flags.OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), }) @@ -69,7 +69,7 @@ func Test_runAddCmdBasic(t *testing.T) { cmd.SetArgs([]string{ "keyname4", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, flags.OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), }) @@ -81,7 +81,7 @@ func Test_runAddCmdBasic(t *testing.T) { "keyname5", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), fmt.Sprintf("--%s=true", flags.FlagDryRun), - fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, flags.OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), }) @@ -244,7 +244,7 @@ func TestAddRecoverFileBackend(t *testing.T) { cmd.SetArgs([]string{ "keyname1", fmt.Sprintf("--%s=%s", flags.FlagHome, kbHome), - fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, flags.OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendFile), fmt.Sprintf("--%s", flagRecover), diff --git a/client/keys/parse.go b/client/keys/parse.go index e34f356456f2..dc009f56d43c 100644 --- a/client/keys/parse.go +++ b/client/keys/parse.go @@ -137,10 +137,10 @@ func displayParseKeyInfo(w io.Writer, stringer fmt.Stringer, output string) { ) switch output { - case OutputFormatText: + case flags.OutputFormatText: out, err = yaml.Marshal(&stringer) - case OutputFormatJSON: + case flags.OutputFormatJSON: out, err = json.Marshal(&stringer) } diff --git a/client/keys/utils.go b/client/keys/utils.go index ccd8cce8b0ce..40b800757cca 100644 --- a/client/keys/utils.go +++ b/client/keys/utils.go @@ -7,15 +7,10 @@ import ( "sigs.k8s.io/yaml" + "github.com/cosmos/cosmos-sdk/client/flags" cryptokeyring "github.com/cosmos/cosmos-sdk/crypto/keyring" ) -// available output formats. -const ( - OutputFormatText = "text" - OutputFormatJSON = "json" -) - type bechKeyOutFn func(k *cryptokeyring.Record) (KeyOutput, error) func printKeyringRecord(w io.Writer, k *cryptokeyring.Record, bechKeyOut bechKeyOutFn, output string) error { @@ -25,12 +20,12 @@ func printKeyringRecord(w io.Writer, k *cryptokeyring.Record, bechKeyOut bechKey } switch output { - case OutputFormatText: + case flags.OutputFormatText: if err := printTextRecords(w, []KeyOutput{ko}); err != nil { return err } - case OutputFormatJSON: + case flags.OutputFormatJSON: out, err := json.Marshal(ko) if err != nil { return err @@ -51,12 +46,12 @@ func printKeyringRecords(w io.Writer, records []*cryptokeyring.Record, output st } switch output { - case OutputFormatText: + case flags.OutputFormatText: if err := printTextRecords(w, kos); err != nil { return err } - case OutputFormatJSON: + case flags.OutputFormatJSON: out, err := json.Marshal(kos) if err != nil { return err diff --git a/server/util.go b/server/util.go index eb63c0085425..e74110105aa4 100644 --- a/server/util.go +++ b/server/util.go @@ -169,7 +169,7 @@ func InterceptConfigsAndCreateContext(cmd *cobra.Command, customAppConfigTemplat // It reads the log level and format from the server context. func CreateSDKLogger(ctx *Context, out io.Writer) (log.Logger, error) { var opts []log.Option - if ctx.Viper.GetString(flags.FlagLogFormat) == cmtcfg.LogFormatJSON { + if ctx.Viper.GetString(flags.FlagLogFormat) == flags.OutputFormatJSON { opts = append(opts, log.OutputJSONOption()) } From 5278e68d84f00104d047f9f43c61a23a95508c15 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Mon, 3 Apr 2023 14:41:40 +0200 Subject: [PATCH 4/8] changelog --- CHANGELOG.md | 7 ++++--- client/context_test.go | 17 ++++++----------- client/flags/flags.go | 2 +- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e0cb9893e2c..a098d093634f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -99,6 +99,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### API Breaking Changes +* (client) [#15673](https://github.com/cosmos/cosmos-sdk/pull/15673) Move `client/keys.OutputFormatJSON` and `client/keys.OutputFormatText` to `client/flags` package. * (x/nft) [#15588](https://github.com/cosmos/cosmos-sdk/pull/15588) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey` and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`. * (x/auth) [#15520](https://github.com/cosmos/cosmos-sdk/pull/15520) `NewAccountKeeper` now takes a `KVStoreService` instead of a `StoreKey` and methods in the `Keeper` now take a `context.Context` instead of a `sdk.Context`. * (x/consensus) [#15517](https://github.com/cosmos/cosmos-sdk/pull/15517) `NewKeeper` now takes a `KVStoreService` instead of a `StoreKey`. @@ -144,11 +145,11 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/capability) [#15344](https://github.com/cosmos/cosmos-sdk/pull/15344) Capability module was removed and is now housed in [IBC-GO](https://github.com/cosmos/ibc-go). * [#15299](https://github.com/cosmos/cosmos-sdk/pull/15299) remove `StdTx` transaction and signing APIs. No SDK version has actually supported `StdTx` since before Stargate. * [#15600](https://github.com/cosmos/cosmos-sdk/pull/15600) add support for getting signers to `codec.Codec` and protoregistry support to `InterfaceRegistry`: - * `Codec` is now a private interface and has the methods `InterfaceRegistry`, `GetMsgAnySigners`, `GetMsgV1Signers`, and `GetMsgV2Signers` which will fail when using `AminoCodec`. + * `Codec` is now a private interface and has the methods `InterfaceRegistry`, `GetMsgAnySigners`, `GetMsgV1Signers`, and `GetMsgV2Signers` which will fail when using `AminoCodec`. All implementations of `Codec` by other users must now embed an official implementation from the `codec` package. - * `InterfaceRegistry` is now a private interface and implements `protodesc.Resolver` plus the `RangeFiles` method + * `InterfaceRegistry` is now a private interface and implements `protodesc.Resolver` plus the `RangeFiles` method All implementations of `InterfaceRegistry` by other users must now embed the official implementation. - * `AminoCodec` is marked as deprecated. + * `AminoCodec` is marked as deprecated. ### Client Breaking Changes diff --git a/client/context_test.go b/client/context_test.go index 7145dada0092..9d701545ca4c 100644 --- a/client/context_test.go +++ b/client/context_test.go @@ -20,11 +20,6 @@ import ( "github.com/cosmos/cosmos-sdk/types/module/testutil" ) -const ( - text = "text" - jsonText = "json" -) - func TestMain(m *testing.M) { viper.Set(flags.FlagKeyringBackend, keyring.BackendMemory) os.Exit(m.Run()) @@ -51,7 +46,7 @@ func TestContext_PrintProto(t *testing.T) { // json buf := &bytes.Buffer{} ctx = ctx.WithOutput(buf) - ctx.OutputFormat = jsonText + ctx.OutputFormat = flags.OutputFormatJSON err = ctx.PrintProto(hasAnimal) require.NoError(t, err) require.Equal(t, @@ -61,7 +56,7 @@ func TestContext_PrintProto(t *testing.T) { // yaml buf = &bytes.Buffer{} ctx = ctx.WithOutput(buf) - ctx.OutputFormat = text + ctx.OutputFormat = flags.OutputFormatText err = ctx.PrintProto(hasAnimal) require.NoError(t, err) require.Equal(t, @@ -94,7 +89,7 @@ func TestContext_PrintObjectLegacy(t *testing.T) { // json buf := &bytes.Buffer{} ctx = ctx.WithOutput(buf) - ctx.OutputFormat = jsonText + ctx.OutputFormat = flags.OutputFormatJSON err = ctx.PrintObjectLegacy(hasAnimal) require.NoError(t, err) require.Equal(t, @@ -104,7 +99,7 @@ func TestContext_PrintObjectLegacy(t *testing.T) { // yaml buf = &bytes.Buffer{} ctx = ctx.WithOutput(buf) - ctx.OutputFormat = text + ctx.OutputFormat = flags.OutputFormatText err = ctx.PrintObjectLegacy(hasAnimal) require.NoError(t, err) require.Equal(t, @@ -126,7 +121,7 @@ func TestContext_PrintRaw(t *testing.T) { // json buf := &bytes.Buffer{} ctx = ctx.WithOutput(buf) - ctx.OutputFormat = jsonText + ctx.OutputFormat = flags.OutputFormatJSON err := ctx.PrintRaw(hasAnimal) require.NoError(t, err) require.Equal(t, @@ -136,7 +131,7 @@ func TestContext_PrintRaw(t *testing.T) { // yaml buf = &bytes.Buffer{} ctx = ctx.WithOutput(buf) - ctx.OutputFormat = text + ctx.OutputFormat = flags.OutputFormatText err = ctx.PrintRaw(hasAnimal) require.NoError(t, err) require.Equal(t, diff --git a/client/flags/flags.go b/client/flags/flags.go index e69e76c1e1d5..a2d918edde9a 100644 --- a/client/flags/flags.go +++ b/client/flags/flags.go @@ -117,7 +117,7 @@ func AddQueryFlagsToCmd(cmd *cobra.Command) { // AddTxFlagsToCmd adds common flags to a module tx command. func AddTxFlagsToCmd(cmd *cobra.Command) { f := cmd.Flags() - f.StringP(FlagOutput, "o", "json", "Output format (text|json)") + f.StringP(FlagOutput, "o", OutputFormatJSON, "Output format (text|json)") f.String(FlagFrom, "", "Name or address of private key with which to sign") f.Uint64P(FlagAccountNumber, "a", 0, "The account number of the signing account (offline mode only)") f.Uint64P(FlagSequence, "s", 0, "The sequence number of the signing account (offline mode only)") From ac42031d06c87ebb9a67153bfae61d9b6ad3ef6b Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Mon, 3 Apr 2023 14:44:46 +0200 Subject: [PATCH 5/8] updates --- server/cmd/execute.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/cmd/execute.go b/server/cmd/execute.go index e42429cf9938..7a1a0c5ad1f3 100644 --- a/server/cmd/execute.go +++ b/server/cmd/execute.go @@ -3,7 +3,6 @@ package cmd import ( "context" - cmtcfg "github.com/cometbft/cometbft/config" cmtcli "github.com/cometbft/cometbft/libs/cli" "github.com/rs/zerolog" "github.com/spf13/cobra" @@ -27,7 +26,8 @@ func Execute(rootCmd *cobra.Command, envPrefix, defaultHome string) error { ctx := CreateExecuteContext(context.Background()) rootCmd.PersistentFlags().String(flags.FlagLogLevel, zerolog.InfoLevel.String(), "The logging level (trace|debug|info|warn|error|fatal|panic)") - rootCmd.PersistentFlags().String(flags.FlagLogFormat, cmtcfg.LogFormatPlain, "The logging format (json|plain)") + // NOTE: The default logger is only checking for the "json" value, any other value will default to plain text. + rootCmd.PersistentFlags().String(flags.FlagLogFormat, "plain", "The logging format (json|plain)") executor := cmtcli.PrepareBaseCmd(rootCmd, envPrefix, defaultHome) return executor.ExecuteContext(ctx) From d76908352295f3f4029cdad2420a6c2fd8e6262e Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Mon, 3 Apr 2023 15:00:58 +0200 Subject: [PATCH 6/8] fix build --- client/keys/add_ledger_test.go | 4 ++-- testutil/cli/cmd.go | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/client/keys/add_ledger_test.go b/client/keys/add_ledger_test.go index f656f06b9038..289200e3fe29 100644 --- a/client/keys/add_ledger_test.go +++ b/client/keys/add_ledger_test.go @@ -53,7 +53,7 @@ func Test_runAddCmdLedgerWithCustomCoinType(t *testing.T) { fmt.Sprintf("--%s=0", flagAccount), fmt.Sprintf("--%s=0", flagIndex), fmt.Sprintf("--%s=330", flagCoinType), - fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, flags.OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), }) @@ -103,7 +103,7 @@ func Test_runAddCmdLedger(t *testing.T) { cmd.SetArgs([]string{ "keyname1", fmt.Sprintf("--%s=true", flags.FlagUseLedger), - fmt.Sprintf("--%s=%s", flags.FlagOutput, OutputFormatText), + fmt.Sprintf("--%s=%s", flags.FlagOutput, flags.OutputFormatText), fmt.Sprintf("--%s=%s", flags.FlagKeyType, hd.Secp256k1Type), fmt.Sprintf("--%s=%d", flagCoinType, sdk.CoinType), fmt.Sprintf("--%s=%s", flags.FlagKeyringBackend, keyring.BackendTest), diff --git a/testutil/cli/cmd.go b/testutil/cli/cmd.go index 64c25be9b7de..f90135e07de5 100644 --- a/testutil/cli/cmd.go +++ b/testutil/cli/cmd.go @@ -4,6 +4,7 @@ import ( "context" "fmt" + cmtcli "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" "github.com/cosmos/cosmos-sdk/client" @@ -22,7 +23,8 @@ func ExecTestCLICmd(clientCtx client.Context, cmd *cobra.Command, extraArgs []st ctx := context.Background() ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) - if err := cmd.ExecuteContext(ctx); err != nil { + executor := cmtcli.PrepareBaseCmd(cmd, "", "") + if err := executor.ExecuteContext(ctx); err != nil { return out, err } From 535d0faded6991dd7124ccb2fa8b62087f7990ea Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Mon, 3 Apr 2023 15:41:55 +0200 Subject: [PATCH 7/8] updates --- testutil/cli/cmd.go | 4 +--- x/auth/client/testutil/helpers.go | 1 + 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/testutil/cli/cmd.go b/testutil/cli/cmd.go index f90135e07de5..64c25be9b7de 100644 --- a/testutil/cli/cmd.go +++ b/testutil/cli/cmd.go @@ -4,7 +4,6 @@ import ( "context" "fmt" - cmtcli "github.com/cometbft/cometbft/libs/cli" "github.com/spf13/cobra" "github.com/cosmos/cosmos-sdk/client" @@ -23,8 +22,7 @@ func ExecTestCLICmd(clientCtx client.Context, cmd *cobra.Command, extraArgs []st ctx := context.Background() ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx) - executor := cmtcli.PrepareBaseCmd(cmd, "", "") - if err := executor.ExecuteContext(ctx); err != nil { + if err := cmd.ExecuteContext(ctx); err != nil { return out, err } diff --git a/x/auth/client/testutil/helpers.go b/x/auth/client/testutil/helpers.go index 2092f5ae04bf..98654eef0d55 100644 --- a/x/auth/client/testutil/helpers.go +++ b/x/auth/client/testutil/helpers.go @@ -21,6 +21,7 @@ func TxSignExec(clientCtx client.Context, from fmt.Stringer, filename string, ex } cmd := cli.GetSignCommand() + cmd.PersistentFlags().String(flags.FlagHome, clientCtx.HomeDir, "directory for config and data") return clitestutil.ExecTestCLICmd(clientCtx, cmd, append(args, extraArgs...)) } From 1671b020d7ecdb22cf90391ebe68f556358ccdcf Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Mon, 3 Apr 2023 16:18:50 +0200 Subject: [PATCH 8/8] updates --- tests/e2e/auth/suite.go | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/e2e/auth/suite.go b/tests/e2e/auth/suite.go index 9b945e62e051..990edbab1822 100644 --- a/tests/e2e/auth/suite.go +++ b/tests/e2e/auth/suite.go @@ -219,6 +219,7 @@ func (s *E2ETestSuite) TestCLISignGenOnly() { for _, tc := range cases { cmd := authcli.GetSignCommand() + cmd.PersistentFlags().String(flags.FlagHome, val.ClientCtx.HomeDir, "directory for config and data") out, err := clitestutil.ExecTestCLICmd(val.ClientCtx, cmd, append(tc.args, commonArgs...)) if tc.expErr { s.Require().Error(err)