github.com/lino-network/lino@v0.6.11/x/vote/client/cli/tx.go (about)

     1  package cli
     2  
     3  import (
     4  	"github.com/cosmos/cosmos-sdk/codec"
     5  	"github.com/spf13/cobra"
     6  	"github.com/spf13/viper"
     7  
     8  	"github.com/lino-network/lino/client"
     9  	linotypes "github.com/lino-network/lino/types"
    10  	types "github.com/lino-network/lino/x/vote/types"
    11  )
    12  
    13  const (
    14  	FlagAmount = "amount"
    15  	FlagTo     = "to"
    16  )
    17  
    18  func GetTxCmd(cdc *codec.Codec) *cobra.Command {
    19  	cmd := &cobra.Command{
    20  		Use:                        types.ModuleName,
    21  		Short:                      "vote tx subcommands",
    22  		DisableFlagParsing:         true,
    23  		SuggestionsMinimumDistance: 2,
    24  		RunE:                       client.ValidateCmd,
    25  	}
    26  
    27  	cmd.AddCommand(client.PostCommands(
    28  		GetCmdStakein(cdc),
    29  		GetCmdStakeout(cdc),
    30  		GetCmdClaimInterest(cdc),
    31  		GetCmdStakeinFor(cdc),
    32  	)...)
    33  
    34  	return cmd
    35  }
    36  
    37  // GetCmdStakein - stakein
    38  func GetCmdStakein(cdc *codec.Codec) *cobra.Command {
    39  	cmd := &cobra.Command{
    40  		Use:   "stake-in",
    41  		Short: "stake-in <username> --amount <lino>",
    42  		Args:  cobra.ExactArgs(1),
    43  		RunE: func(cmd *cobra.Command, args []string) error {
    44  			ctx := client.NewCoreContextFromViper().WithTxEncoder(linotypes.TxEncoder(cdc))
    45  			user := linotypes.AccountKey(args[0])
    46  			amount := viper.GetString(FlagAmount)
    47  			msg := types.StakeInMsg{
    48  				Username: user,
    49  				Deposit:  amount,
    50  			}
    51  			return ctx.DoTxPrintResponse(msg)
    52  		},
    53  	}
    54  	cmd.Flags().String(FlagAmount, "", "amount of stake in")
    55  	_ = cmd.MarkFlagRequired(FlagAmount)
    56  	return cmd
    57  }
    58  
    59  // GetCmdStakeout -
    60  func GetCmdStakeout(cdc *codec.Codec) *cobra.Command {
    61  	cmd := &cobra.Command{
    62  		Use:   "stake-out",
    63  		Short: "stake-out <username> --amount <lino>",
    64  		Args:  cobra.ExactArgs(1),
    65  		RunE: func(cmd *cobra.Command, args []string) error {
    66  			ctx := client.NewCoreContextFromViper().WithTxEncoder(linotypes.TxEncoder(cdc))
    67  			user := linotypes.AccountKey(args[0])
    68  			amount := viper.GetString(FlagAmount)
    69  			msg := types.StakeOutMsg{
    70  				Username: user,
    71  				Amount:   amount,
    72  			}
    73  			return ctx.DoTxPrintResponse(msg)
    74  		},
    75  	}
    76  	cmd.Flags().String(FlagAmount, "", "amount of stake in")
    77  	_ = cmd.MarkFlagRequired(FlagAmount)
    78  	return cmd
    79  }
    80  
    81  // GetCmdClaimInterest -
    82  func GetCmdClaimInterest(cdc *codec.Codec) *cobra.Command {
    83  	cmd := &cobra.Command{
    84  		Use:   "claim-interest",
    85  		Short: "claim-interest username",
    86  		Args:  cobra.ExactArgs(1),
    87  		RunE: func(cmd *cobra.Command, args []string) error {
    88  			ctx := client.NewCoreContextFromViper().WithTxEncoder(linotypes.TxEncoder(cdc))
    89  			username := linotypes.AccountKey(args[0])
    90  			msg := types.ClaimInterestMsg{
    91  				Username: username,
    92  			}
    93  			return ctx.DoTxPrintResponse(msg)
    94  		},
    95  	}
    96  	return cmd
    97  }
    98  
    99  // GetCmdStakeinFor - stakeinFor
   100  func GetCmdStakeinFor(cdc *codec.Codec) *cobra.Command {
   101  	cmd := &cobra.Command{
   102  		Use:   "stake-in-for",
   103  		Short: "stake-in-for <from> --to <bar> --amount <lino>",
   104  		Args:  cobra.ExactArgs(1),
   105  		RunE: func(cmd *cobra.Command, args []string) error {
   106  			ctx := client.NewCoreContextFromViper().WithTxEncoder(linotypes.TxEncoder(cdc))
   107  			from := linotypes.AccountKey(args[0])
   108  			to := linotypes.AccountKey(viper.GetString(FlagTo))
   109  			amount := viper.GetString(FlagAmount)
   110  			msg := types.StakeInForMsg{
   111  				Sender:   from,
   112  				Deposit:  amount,
   113  				Receiver: to,
   114  			}
   115  			return ctx.DoTxPrintResponse(msg)
   116  		},
   117  	}
   118  	cmd.Flags().String(FlagAmount, "", "amount of stake in")
   119  	cmd.Flags().String(FlagTo, "", "receiver username")
   120  	_ = cmd.MarkFlagRequired(FlagTo)
   121  	_ = cmd.MarkFlagRequired(FlagAmount)
   122  	return cmd
   123  }