From fa056c9816715b7f905acd4001dc52e82614ad5d Mon Sep 17 00:00:00 2001 From: Alexander Bezobchuk Date: Thu, 3 Jan 2019 18:28:55 -0500 Subject: [PATCH] Minor cleanup of validator CLI logic (#3221) --- client/utils/utils.go | 1 + cmd/gaia/init/gentx.go | 2 +- x/stake/client/cli/flags.go | 26 +++++++++++++------------- x/stake/client/cli/tx.go | 30 +++++++++++++++++------------- 4 files changed, 32 insertions(+), 27 deletions(-) diff --git a/client/utils/utils.go b/client/utils/utils.go index ad3f6a00d..98c53ee5c 100644 --- a/client/utils/utils.go +++ b/client/utils/utils.go @@ -57,6 +57,7 @@ func CompleteAndBroadcastTxCli(txBldr authtxb.TxBuilder, cliCtx context.CLIConte if err != nil { return err } + // broadcast to a Tendermint node _, err = cliCtx.BroadcastTx(txBytes) return err diff --git a/cmd/gaia/init/gentx.go b/cmd/gaia/init/gentx.go index 64d483a28..8e5480a54 100644 --- a/cmd/gaia/init/gentx.go +++ b/cmd/gaia/init/gentx.go @@ -113,7 +113,7 @@ following delegation and commission default parameters: // Run gaiad tx create-validator txBldr := authtxb.NewTxBuilderFromCLI().WithTxEncoder(utils.GetTxEncoder(cdc)) cliCtx := context.NewCLIContext().WithCodec(cdc) - cliCtx, txBldr, msg, err := cli.BuildCreateValidatorMsg(cliCtx, txBldr) + txBldr, msg, err := cli.BuildCreateValidatorMsg(cliCtx, txBldr) if err != nil { return err } diff --git a/x/stake/client/cli/flags.go b/x/stake/client/cli/flags.go index 97a62ebd9..a29bdf376 100644 --- a/x/stake/client/cli/flags.go +++ b/x/stake/client/cli/flags.go @@ -46,24 +46,24 @@ var ( ) func init() { - FsPk.String(FlagPubKey, "", "Bech32-encoded PubKey of the validator. ") + FsPk.String(FlagPubKey, "", "The Bech32 encoded PubKey of the validator") FsAmount.String(FlagAmount, "", "Amount of coins to bond") fsShares.String(FlagSharesAmount, "", "Amount of source-shares to either unbond or redelegate as a positive integer or decimal") fsShares.String(FlagSharesFraction, "", "Fraction of source-shares to either unbond or redelegate as a positive integer or decimal >0 and <=1") - fsDescriptionCreate.String(FlagMoniker, "", "validator name") - fsDescriptionCreate.String(FlagIdentity, "", "optional identity signature (ex. UPort or Keybase)") - fsDescriptionCreate.String(FlagWebsite, "", "optional website") - fsDescriptionCreate.String(FlagDetails, "", "optional details") + fsDescriptionCreate.String(FlagMoniker, "", "The validator's name") + fsDescriptionCreate.String(FlagIdentity, "", "The optional identity signature (ex. UPort or Keybase)") + fsDescriptionCreate.String(FlagWebsite, "", "The validator's (optional) website") + fsDescriptionCreate.String(FlagDetails, "", "The validator's (optional) details") fsCommissionUpdate.String(FlagCommissionRate, "", "The new commission rate percentage") FsCommissionCreate.String(FlagCommissionRate, "", "The initial commission rate percentage") FsCommissionCreate.String(FlagCommissionMaxRate, "", "The maximum commission rate percentage") FsCommissionCreate.String(FlagCommissionMaxChangeRate, "", "The maximum commission change rate percentage (per day)") - fsDescriptionEdit.String(FlagMoniker, types.DoNotModifyDesc, "validator name") - fsDescriptionEdit.String(FlagIdentity, types.DoNotModifyDesc, "optional identity signature (ex. UPort or Keybase)") - fsDescriptionEdit.String(FlagWebsite, types.DoNotModifyDesc, "optional website") - fsDescriptionEdit.String(FlagDetails, types.DoNotModifyDesc, "optional details") - fsValidator.String(FlagAddressValidator, "", "bech address of the validator") - fsDelegator.String(FlagAddressDelegator, "", "bech address of the delegator") - fsRedelegation.String(FlagAddressValidatorSrc, "", "bech address of the source validator") - fsRedelegation.String(FlagAddressValidatorDst, "", "bech address of the destination validator") + fsDescriptionEdit.String(FlagMoniker, types.DoNotModifyDesc, "The validator's name") + fsDescriptionEdit.String(FlagIdentity, types.DoNotModifyDesc, "The (optional) identity signature (ex. UPort or Keybase)") + fsDescriptionEdit.String(FlagWebsite, types.DoNotModifyDesc, "The validator's (optional) website") + fsDescriptionEdit.String(FlagDetails, types.DoNotModifyDesc, "The validator's (optional) details") + fsValidator.String(FlagAddressValidator, "", "The Bech32 address of the validator") + fsDelegator.String(FlagAddressDelegator, "", "The Bech32 address of the delegator") + fsRedelegation.String(FlagAddressValidatorSrc, "", "The Bech32 address of the source validator") + fsRedelegation.String(FlagAddressValidatorDst, "", "The Bech32 address of the destination validator") } diff --git a/x/stake/client/cli/tx.go b/x/stake/client/cli/tx.go index 7df069c74..adcff3799 100644 --- a/x/stake/client/cli/tx.go +++ b/x/stake/client/cli/tx.go @@ -2,9 +2,10 @@ package cli import ( "fmt" - "github.com/cosmos/cosmos-sdk/x/auth" "os" + "github.com/cosmos/cosmos-sdk/x/auth" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/context" "github.com/cosmos/cosmos-sdk/client/utils" @@ -28,7 +29,7 @@ func GetCmdCreateValidator(cdc *codec.Codec) *cobra.Command { WithCodec(cdc). WithAccountDecoder(cdc) - cliCtx, txBldr, msg, err := BuildCreateValidatorMsg(cliCtx, txBldr) + txBldr, msg, err := BuildCreateValidatorMsg(cliCtx, txBldr) if err != nil { return err } @@ -48,8 +49,9 @@ func GetCmdCreateValidator(cdc *codec.Codec) *cobra.Command { cmd.Flags().AddFlagSet(FsCommissionCreate) cmd.Flags().AddFlagSet(fsDelegator) cmd.Flags().Bool(FlagGenesisFormat, false, "Export the transaction in gen-tx format; it implies --generate-only") - cmd.Flags().String(FlagIP, "", fmt.Sprintf("Node's public IP. It takes effect only when used in combination with --%s", FlagGenesisFormat)) - cmd.Flags().String(FlagNodeID, "", "Node's ID") + cmd.Flags().String(FlagIP, "", fmt.Sprintf("The node's public IP. It takes effect only when used in combination with --%s", FlagGenesisFormat)) + cmd.Flags().String(FlagNodeID, "", "The node's ID") + cmd.MarkFlagRequired(client.FlagFrom) cmd.MarkFlagRequired(FlagAmount) cmd.MarkFlagRequired(FlagPubKey) @@ -256,22 +258,22 @@ func GetCmdUnbond(storeName string, cdc *codec.Codec) *cobra.Command { } // BuildCreateValidatorMsg makes a new MsgCreateValidator. -func BuildCreateValidatorMsg(cliCtx context.CLIContext, txBldr authtxb.TxBuilder) (context.CLIContext, authtxb.TxBuilder, sdk.Msg, error) { +func BuildCreateValidatorMsg(cliCtx context.CLIContext, txBldr authtxb.TxBuilder) (authtxb.TxBuilder, sdk.Msg, error) { amounstStr := viper.GetString(FlagAmount) amount, err := sdk.ParseCoin(amounstStr) if err != nil { - return cliCtx, txBldr, nil, err + return txBldr, nil, err } valAddr, err := cliCtx.GetFromAddress() if err != nil { - return cliCtx, txBldr, nil, err + return txBldr, nil, err } pkStr := viper.GetString(FlagPubKey) pk, err := sdk.GetConsPubKeyBech32(pkStr) if err != nil { - return cliCtx, txBldr, nil, err + return txBldr, nil, err } description := stake.NewDescription( @@ -287,14 +289,16 @@ func BuildCreateValidatorMsg(cliCtx context.CLIContext, txBldr authtxb.TxBuilder maxChangeRateStr := viper.GetString(FlagCommissionMaxChangeRate) commissionMsg, err := buildCommissionMsg(rateStr, maxRateStr, maxChangeRateStr) if err != nil { - return cliCtx, txBldr, nil, err + return txBldr, nil, err } + delAddr := viper.GetString(FlagAddressDelegator) + var msg sdk.Msg - if viper.GetString(FlagAddressDelegator) != "" { - delAddr, err := sdk.AccAddressFromBech32(viper.GetString(FlagAddressDelegator)) + if delAddr != "" { + delAddr, err := sdk.AccAddressFromBech32(delAddr) if err != nil { - return cliCtx, txBldr, nil, err + return txBldr, nil, err } msg = stake.NewMsgCreateValidatorOnBehalfOf( @@ -313,5 +317,5 @@ func BuildCreateValidatorMsg(cliCtx context.CLIContext, txBldr authtxb.TxBuilder txBldr = txBldr.WithMemo(fmt.Sprintf("%s@%s:26656", nodeID, ip)) } } - return cliCtx, txBldr, msg, nil + return txBldr, msg, nil }