lotus/cli/wallet.go

97 lines
1.6 KiB
Go
Raw Normal View History

2019-07-13 00:41:32 +00:00
package cli
import (
"fmt"
2019-07-18 20:26:04 +00:00
"github.com/filecoin-project/go-lotus/chain/address"
2019-07-13 00:41:32 +00:00
"gopkg.in/urfave/cli.v2"
)
var walletCmd = &cli.Command{
Name: "wallet",
Usage: "Manage wallet",
Subcommands: []*cli.Command{
walletNew,
walletList,
2019-07-18 20:26:04 +00:00
walletBalance,
2019-07-13 00:41:32 +00:00
},
}
var walletNew = &cli.Command{
Name: "new",
Usage: "Generate a new key of the given type (bls or secp256k1)",
Action: func(cctx *cli.Context) error {
2019-08-02 16:18:44 +00:00
api, err := GetFullNodeAPI(cctx)
2019-07-13 00:41:32 +00:00
if err != nil {
return err
}
2019-07-18 23:16:23 +00:00
ctx := ReqContext(cctx)
2019-07-13 00:41:32 +00:00
t := cctx.Args().First()
if t == "" {
t = "bls"
}
nk, err := api.WalletNew(ctx, t)
if err != nil {
return err
}
fmt.Println(nk.String())
return nil
},
}
var walletList = &cli.Command{
Name: "list",
Usage: "List wallet address",
Action: func(cctx *cli.Context) error {
2019-08-02 16:18:44 +00:00
api, err := GetFullNodeAPI(cctx)
2019-07-13 00:41:32 +00:00
if err != nil {
return err
}
2019-07-18 23:16:23 +00:00
ctx := ReqContext(cctx)
2019-07-13 00:41:32 +00:00
addrs, err := api.WalletList(ctx)
if err != nil {
return err
}
for _, addr := range addrs {
fmt.Println(addr.String())
}
return nil
},
}
2019-07-18 20:26:04 +00:00
var walletBalance = &cli.Command{
Name: "balance",
Usage: "get account balance",
Action: func(cctx *cli.Context) error {
2019-08-02 16:18:44 +00:00
api, err := GetFullNodeAPI(cctx)
2019-07-18 20:26:04 +00:00
if err != nil {
return err
}
2019-07-18 23:16:23 +00:00
ctx := ReqContext(cctx)
2019-07-18 20:26:04 +00:00
var addr address.Address
if cctx.Args().First() != "" {
addr, err = address.NewFromString(cctx.Args().First())
} else {
addr, err = api.WalletDefaultAddress(ctx)
}
2019-07-18 20:26:04 +00:00
if err != nil {
return err
}
balance, err := api.WalletBalance(ctx, addr)
if err != nil {
return err
}
fmt.Printf("%s\n", balance.String())
return nil
},
}