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 }