Skip to content

Commit

Permalink
strip down cli/flags, tx
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel committed Oct 28, 2022
1 parent b6e0335 commit d23a709
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 186 deletions.
94 changes: 5 additions & 89 deletions x/ccv/provider/client/cli/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,74 +2,22 @@ package cli

import (
flag "github.com/spf13/pflag"

"github.com/cosmos/cosmos-sdk/x/staking/types"
)

const (
FlagAddressValidator = "validator"
FlagAddressValidatorSrc = "addr-validator-source"
FlagAddressValidatorDst = "addr-validator-dest"
FlagPubKey = "pubkey"
FlagAmount = "amount"
FlagSharesAmount = "shares-amount"
FlagSharesFraction = "shares-fraction"

FlagMoniker = "moniker"
FlagIdentity = "identity"
FlagWebsite = "website"
FlagSecurityContact = "security-contact"
FlagDetails = "details"

FlagCommissionRate = "commission-rate"
FlagCommissionMaxRate = "commission-max-rate"
FlagCommissionMaxChangeRate = "commission-max-change-rate"

FlagMinSelfDelegation = "min-self-delegation"

FlagGenesisFormat = "genesis-format"
FlagNodeID = "node-id"
FlagIP = "ip"
FlagAddressValidator = "validator"
FlagPubKey = "pubkey"
FlagNodeID = "node-id"
FlagIP = "ip"
)

// common flagsets to add to various functions
var (
fsShares = flag.NewFlagSet("", flag.ContinueOnError)
fsValidator = flag.NewFlagSet("", flag.ContinueOnError)
fsRedelegation = flag.NewFlagSet("", flag.ContinueOnError)
fsValidator = flag.NewFlagSet("", flag.ContinueOnError)
)

func init() {
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")
fsValidator.String(FlagAddressValidator, "", "The Bech32 address of the validator")
fsRedelegation.String(FlagAddressValidatorSrc, "", "The Bech32 address of the source validator")
fsRedelegation.String(FlagAddressValidatorDst, "", "The Bech32 address of the destination validator")
}

// FlagSetCommissionCreate Returns the FlagSet used for commission create.
func FlagSetCommissionCreate() *flag.FlagSet {
fs := flag.NewFlagSet("", flag.ContinueOnError)

fs.String(FlagCommissionRate, "", "The initial commission rate percentage")
fs.String(FlagCommissionMaxRate, "", "The maximum commission rate percentage")
fs.String(FlagCommissionMaxChangeRate, "", "The maximum commission change rate percentage (per day)")

return fs
}

// FlagSetMinSelfDelegation Returns the FlagSet used for minimum set delegation.
func FlagSetMinSelfDelegation() *flag.FlagSet {
fs := flag.NewFlagSet("", flag.ContinueOnError)
fs.String(FlagMinSelfDelegation, "", "The minimum self delegation required on the validator")
return fs
}

// FlagSetAmount Returns the FlagSet for amount related operations.
func FlagSetAmount() *flag.FlagSet {
fs := flag.NewFlagSet("", flag.ContinueOnError)
fs.String(FlagAmount, "", "Amount of coins to bond")
return fs
}

// FlagSetPublicKey Returns the flagset for Public Key related operations.
Expand All @@ -78,35 +26,3 @@ func FlagSetPublicKey() *flag.FlagSet {
fs.String(FlagPubKey, "", "The validator's Protobuf JSON encoded public key")
return fs
}

func flagSetDescriptionEdit() *flag.FlagSet {
fs := flag.NewFlagSet("", flag.ContinueOnError)

fs.String(FlagMoniker, 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")
fs.String(FlagDetails, types.DoNotModifyDesc, "The validator's (optional) details")

return fs
}

func flagSetCommissionUpdate() *flag.FlagSet {
fs := flag.NewFlagSet("", flag.ContinueOnError)

fs.String(FlagCommissionRate, "", "The new commission rate percentage")

return fs
}

func flagSetDescriptionCreate() *flag.FlagSet {
fs := flag.NewFlagSet("", flag.ContinueOnError)

fs.String(FlagMoniker, "", "The validator's name")
fs.String(FlagIdentity, "", "The optional identity signature (ex. UPort or Keybase)")
fs.String(FlagWebsite, "", "The validator's (optional) website")
fs.String(FlagSecurityContact, "", "The validator's (optional) security contact email")
fs.String(FlagDetails, "", "The validator's (optional) details")

return fs
}
105 changes: 8 additions & 97 deletions x/ccv/provider/client/cli/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ import (
"github.com/cosmos/cosmos-sdk/client/flags"
"github.com/cosmos/cosmos-sdk/client/tx"
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/cosmos/cosmos-sdk/x/staking/types"

// "github.com/cosmos/cosmos-sdk/x/staking/types"
"github.com/cosmos/interchain-security/x/ccv/provider/types"
flag "github.com/spf13/pflag"
)

Expand All @@ -22,11 +22,6 @@ var (
_ = strconv.Itoa(0)
)

const (
flagPacketTimeoutTimestamp = "packet-timeout-timestamp"
listSeparator = ","
)

// GetTxCmd returns the transaction commands for this module
func GetTxCmd() *cobra.Command {
cmd := &cobra.Command{
Expand All @@ -45,8 +40,8 @@ func GetTxCmd() *cobra.Command {

func NewCreateValidatorCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "create-validator",
Short: "create new validator initialized with a self-delegation to it",
Use: ":TODO:",
Short: ":TODO:",
RunE: func(cmd *cobra.Command, args []string) error {
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
Expand All @@ -55,7 +50,7 @@ func NewCreateValidatorCmd() *cobra.Command {

txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()).
WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever)
txf, msg, err := newBuildCreateValidatorMsg(clientCtx, txf, cmd.Flags())
txf, msg, err := newBuildDesignateConsensusKeyForConsumerChainMsg(clientCtx, txf, cmd.Flags())
if err != nil {
return err
}
Expand All @@ -65,31 +60,17 @@ func NewCreateValidatorCmd() *cobra.Command {
}

cmd.Flags().AddFlagSet(FlagSetPublicKey())
cmd.Flags().AddFlagSet(FlagSetAmount())
cmd.Flags().AddFlagSet(flagSetDescriptionCreate())
cmd.Flags().AddFlagSet(FlagSetCommissionCreate())
cmd.Flags().AddFlagSet(FlagSetMinSelfDelegation())

cmd.Flags().String(FlagIP, "", fmt.Sprintf("The node's public IP. It takes effect only when used in combination with --%s", flags.FlagGenerateOnly))
cmd.Flags().String(FlagNodeID, "", "The node's ID")
flags.AddTxFlagsToCmd(cmd)

_ = cmd.MarkFlagRequired(flags.FlagFrom)
_ = cmd.MarkFlagRequired(FlagAmount)
_ = cmd.MarkFlagRequired(FlagPubKey)
_ = cmd.MarkFlagRequired(FlagMoniker)

return cmd
}

func newBuildCreateValidatorMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgCreateValidator, error) {
fAmount, _ := fs.GetString(FlagAmount)
amount, err := sdk.ParseCoinNormalized(fAmount)
if err != nil {
return txf, nil, err
}
func newBuildDesignateConsensusKeyForConsumerChainMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgDesignateConsensusKeyForConsumerChain, error) {

valAddr := clientCtx.GetFromAddress()
pkStr, err := fs.GetString(FlagPubKey)
if err != nil {
return txf, nil, err
Expand All @@ -100,44 +81,7 @@ func newBuildCreateValidatorMsg(clientCtx client.Context, txf tx.Factory, fs *fl
return txf, nil, err
}

moniker, _ := fs.GetString(FlagMoniker)
identity, _ := fs.GetString(FlagIdentity)
website, _ := fs.GetString(FlagWebsite)
security, _ := fs.GetString(FlagSecurityContact)
details, _ := fs.GetString(FlagDetails)
description := types.NewDescription(
moniker,
identity,
website,
security,
details,
)

// get the initial validator commission parameters
rateStr, _ := fs.GetString(FlagCommissionRate)
maxRateStr, _ := fs.GetString(FlagCommissionMaxRate)
maxChangeRateStr, _ := fs.GetString(FlagCommissionMaxChangeRate)
_ = rateStr
_ = maxRateStr
_ = maxChangeRateStr

commissionRates := types.CommissionRates{}
// commissionRates, err := stakingcli.buildCommissionRates(rateStr, maxRateStr, maxChangeRateStr)
// if err != nil {
// return txf, nil, err
// }

// get the initial validator min self delegation
msbStr, _ := fs.GetString(FlagMinSelfDelegation)

minSelfDelegation, ok := sdk.NewIntFromString(msbStr)
if !ok {
return txf, nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "minimum self delegation must be a positive integer")
}

msg, err := types.NewMsgCreateValidator(
sdk.ValAddress(valAddr), pk, amount, description, commissionRates, minSelfDelegation,
)
msg, err := types.NewMsgDesignateConsensusKeyForConsumerChain()
if err != nil {
return txf, nil, err
}
Expand All @@ -157,36 +101,3 @@ func newBuildCreateValidatorMsg(clientCtx client.Context, txf tx.Factory, fs *fl

return txf, msg, nil
}

/*
func CmdDesignateConsensusKeyForConsumerChain() *cobra.Command {
cmd := &cobra.Command{
Use: "create-post [title] [body]",
Short: "Broadcast message createPost",
Args: cobra.ExactArgs(2),
RunE: func(cmd *cobra.Command, args []string) (err error) {
argTitle := args[0]
argBody := args[1]
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
return err
}
msg := types.NewMsgDesignateConsensusKeyForConsumerChain(
clientCtx.GetFromAddress().String(),
argTitle,
argBody,
)
if err := msg.ValidateBasic(); err != nil {
return err
}
return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}
flags.AddTxFlagsToCmd(cmd)
return cmd
}
*/

0 comments on commit d23a709

Please sign in to comment.