github.com/Finschia/finschia-sdk@v0.48.1/x/bank/client/cli/tx.go (about)

     1  package cli
     2  
     3  import (
     4  	"github.com/spf13/cobra"
     5  
     6  	"github.com/Finschia/finschia-sdk/client"
     7  	"github.com/Finschia/finschia-sdk/client/flags"
     8  	"github.com/Finschia/finschia-sdk/client/tx"
     9  	sdk "github.com/Finschia/finschia-sdk/types"
    10  	"github.com/Finschia/finschia-sdk/x/bank/types"
    11  )
    12  
    13  // NewTxCmd returns a root CLI command handler for all x/bank transaction commands.
    14  func NewTxCmd() *cobra.Command {
    15  	txCmd := &cobra.Command{
    16  		Use:                        types.ModuleName,
    17  		Short:                      "Bank transaction subcommands",
    18  		DisableFlagParsing:         true,
    19  		SuggestionsMinimumDistance: 2,
    20  		RunE:                       client.ValidateCmd,
    21  	}
    22  
    23  	txCmd.AddCommand(NewSendTxCmd())
    24  
    25  	return txCmd
    26  }
    27  
    28  // NewSendTxCmd returns a CLI command handler for creating a MsgSend transaction.
    29  func NewSendTxCmd() *cobra.Command {
    30  	cmd := &cobra.Command{
    31  		Use: "send [from_key_or_address] [to_address] [amount]",
    32  		Short: `Send funds from one account to another. Note, the'--from' flag is
    33  ignored as it is implied from [from_key_or_address].`,
    34  		Args: cobra.ExactArgs(3),
    35  		RunE: func(cmd *cobra.Command, args []string) error {
    36  			if err := cmd.Flags().Set(flags.FlagFrom, args[0]); err != nil {
    37  				return err
    38  			}
    39  			clientCtx, err := client.GetClientTxContext(cmd)
    40  			if err != nil {
    41  				return err
    42  			}
    43  
    44  			coins, err := sdk.ParseCoinsNormalized(args[2])
    45  			if err != nil {
    46  				return err
    47  			}
    48  
    49  			msg := &types.MsgSend{
    50  				FromAddress: clientCtx.GetFromAddress().String(),
    51  				ToAddress:   args[1],
    52  				Amount:      coins,
    53  			}
    54  			if err := msg.ValidateBasic(); err != nil {
    55  				return err
    56  			}
    57  
    58  			return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
    59  		},
    60  	}
    61  
    62  	flags.AddTxFlagsToCmd(cmd)
    63  
    64  	return cmd
    65  }