From 61a9081bc14dc763de1415178dc7932df0865d39 Mon Sep 17 00:00:00 2001 From: MD Aleem <72057206+aleem1314@users.noreply.github.com> Date: Wed, 8 Dec 2021 16:38:29 +0530 Subject: [PATCH] fix: edit validator bug from the cli (#10684) ## Description Closes: #10660 --- ### Author Checklist *All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues.* I have... - [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] added `!` to the type prefix if API or client breaking change - [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting)) - [ ] provided a link to the relevant issue or specification - [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules) - [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing) - [ ] added a changelog entry to `CHANGELOG.md` - [ ] included comments for [documenting Go code](https://blog.golang.org/godoc) - [ ] updated the relevant documentation or specification - [ ] reviewed "Files changed" and left comments if necessary - [ ] confirmed all CI checks have passed ### Reviewers Checklist *All items are required. Please add a note if the item is not applicable and please add your handle next to the items reviewed if you only reviewed selected items.* I have... - [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] confirmed `!` in the type prefix if API or client breaking change - [ ] confirmed all author checklist items have been addressed - [ ] reviewed state machine logic - [ ] reviewed API design and naming - [ ] reviewed documentation is accurate - [ ] reviewed tests and test coverage - [ ] manually tested (if applicable) --- CHANGELOG.md | 1 + x/staking/client/cli/flags.go | 3 +- x/staking/client/cli/tx.go | 2 +- x/staking/client/testutil/cli_test.go | 1 + x/staking/client/testutil/suite.go | 48 +++++++++++++++++++++++++++ 5 files changed, 53 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eb07f3e50ed..1b6f82a4a124 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -126,6 +126,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * [\#9246](https://github.com/cosmos/cosmos-sdk/pull/9246) Removed the CLI flag `--setup-config-only` from the `testnet` command and added the subcommand `init-files`. * [\#9780](https://github.com/cosmos/cosmos-sdk/pull/9780) Use sigs.k8s.io for yaml, which might lead to minor YAML output changes * [\#10625](https://github.com/cosmos/cosmos-sdk/pull/10625) Rename `--fee-account` CLI flag to `--fee-granter` +* [\#10684](https://github.com/cosmos/cosmos-sdk/pull/10684) Rename `edit-validator` command's `--moniker` flag to `--new-moniker` ### Improvements diff --git a/x/staking/client/cli/flags.go b/x/staking/client/cli/flags.go index d6725e8c1da4..85879567a6af 100644 --- a/x/staking/client/cli/flags.go +++ b/x/staking/client/cli/flags.go @@ -16,6 +16,7 @@ const ( FlagSharesFraction = "shares-fraction" FlagMoniker = "moniker" + FlagEditMoniker = "new-moniker" FlagIdentity = "identity" FlagWebsite = "website" FlagSecurityContact = "security-contact" @@ -82,7 +83,7 @@ func FlagSetPublicKey() *flag.FlagSet { func flagSetDescriptionEdit() *flag.FlagSet { fs := flag.NewFlagSet("", flag.ContinueOnError) - fs.String(FlagMoniker, types.DoNotModifyDesc, "The validator's name") + fs.String(FlagEditMoniker, types.DoNotModifyDesc, "The validator's name") fs.String(FlagIdentity, types.DoNotModifyDesc, "The (optional) identity signature (ex. UPort or Keybase)") fs.String(FlagWebsite, types.DoNotModifyDesc, "The validator's (optional) website") fs.String(FlagSecurityContact, types.DoNotModifyDesc, "The validator's (optional) security contact email") diff --git a/x/staking/client/cli/tx.go b/x/staking/client/cli/tx.go index cafee004c1b4..138bfa24930d 100644 --- a/x/staking/client/cli/tx.go +++ b/x/staking/client/cli/tx.go @@ -98,7 +98,7 @@ func NewEditValidatorCmd() *cobra.Command { return err } valAddr := clientCtx.GetFromAddress() - moniker, _ := cmd.Flags().GetString(FlagMoniker) + moniker, _ := cmd.Flags().GetString(FlagEditMoniker) identity, _ := cmd.Flags().GetString(FlagIdentity) website, _ := cmd.Flags().GetString(FlagWebsite) security, _ := cmd.Flags().GetString(FlagSecurityContact) diff --git a/x/staking/client/testutil/cli_test.go b/x/staking/client/testutil/cli_test.go index 0a7a5cc25871..f23e88847c30 100644 --- a/x/staking/client/testutil/cli_test.go +++ b/x/staking/client/testutil/cli_test.go @@ -1,3 +1,4 @@ +//go:build norace // +build norace package testutil diff --git a/x/staking/client/testutil/suite.go b/x/staking/client/testutil/suite.go index dd128600400a..5b40554b8a5c 100644 --- a/x/staking/client/testutil/suite.go +++ b/x/staking/client/testutil/suite.go @@ -1368,3 +1368,51 @@ func (s *IntegrationTestSuite) TestBlockResults() { s.network.WaitForNextBlock() } } + +// https://github.com/cosmos/cosmos-sdk/issues/10660 +func (s *IntegrationTestSuite) TestEditValidatorMoniker() { + val := s.network.Validators[0] + require := s.Require() + + txCmd := cli.NewEditValidatorCmd() + moniker := "testing" + _, err := clitestutil.ExecTestCLICmd(val.ClientCtx, txCmd, []string{ + val.ValAddress.String(), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock), + fmt.Sprintf("--%s=%s", cli.FlagEditMoniker, moniker), + fmt.Sprintf("--%s=https://newvalidator.io", cli.FlagWebsite), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()), + }) + require.NoError(err) + + queryCmd := cli.GetCmdQueryValidator() + res, err := clitestutil.ExecTestCLICmd( + val.ClientCtx, queryCmd, + []string{val.ValAddress.String(), fmt.Sprintf("--%s=json", tmcli.OutputFlag)}, + ) + require.NoError(err) + var result types.Validator + require.NoError(val.ClientCtx.Codec.UnmarshalJSON(res.Bytes(), &result)) + require.Equal(result.GetMoniker(), moniker) + + _, err = clitestutil.ExecTestCLICmd(val.ClientCtx, txCmd, []string{ + val.ValAddress.String(), + fmt.Sprintf("--%s=%s", flags.FlagFrom, val.Address.String()), + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock), + fmt.Sprintf("--%s=https://newvalidator.io", cli.FlagWebsite), + fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(s.cfg.BondDenom, sdk.NewInt(10))).String()), + }) + require.NoError(err) + + res, err = clitestutil.ExecTestCLICmd( + val.ClientCtx, queryCmd, + []string{val.ValAddress.String(), fmt.Sprintf("--%s=json", tmcli.OutputFlag)}, + ) + require.NoError(err) + + require.NoError(val.ClientCtx.Codec.UnmarshalJSON(res.Bytes(), &result)) + require.Equal(result.GetMoniker(), moniker) +}