Skip to content

Commit

Permalink
Merge pull request #4088 from filecoin-project/feat/walletlist-ux
Browse files Browse the repository at this point in the history
wallet list cli: Print balances/nonces
  • Loading branch information
magik6k authored Sep 29, 2020
2 parents 4b61f17 + eaece30 commit 8205149
Showing 1 changed file with 59 additions and 4 deletions.
63 changes: 59 additions & 4 deletions cli/wallet.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@ import (
"os"
"strings"

"github.com/urfave/cli/v2"
"golang.org/x/xerrors"

"github.com/filecoin-project/go-address"
"github.com/filecoin-project/go-state-types/big"
"github.com/filecoin-project/go-state-types/crypto"

types "github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/lotus/chain/wallet"
"golang.org/x/xerrors"

"github.com/urfave/cli/v2"
"github.com/filecoin-project/lotus/lib/tablewriter"
)

var walletCmd = &cli.Command{
Expand Down Expand Up @@ -66,6 +69,13 @@ var walletNew = &cli.Command{
var walletList = &cli.Command{
Name: "list",
Usage: "List wallet address",
Flags: []cli.Flag{
&cli.BoolFlag{
Name: "addr-only",
Usage: "Only print addresses",
Aliases: []string{"a"},
},
},
Action: func(cctx *cli.Context) error {
api, closer, err := GetFullNodeAPI(cctx)
if err != nil {
Expand All @@ -79,9 +89,54 @@ var walletList = &cli.Command{
return err
}

def, err := api.WalletDefaultAddress(ctx)
if err != nil {
return err
}

tw := tablewriter.New(
tablewriter.Col("Address"),
tablewriter.Col("Balance"),
tablewriter.Col("Nonce"),
tablewriter.Col("Default"),
tablewriter.NewLineCol("Error"))

for _, addr := range addrs {
fmt.Println(addr.String())
if cctx.Bool("addr-only") {
fmt.Println(addr.String())
} else {
a, err := api.StateGetActor(ctx, addr, types.EmptyTSK)
if err != nil {
if !strings.Contains(err.Error(), "actor not found") {
tw.Write(map[string]interface{}{
"Address": addr,
"Error": err,
})
continue
}

a = &types.Actor{
Balance: big.Zero(),
}
}

row := map[string]interface{}{
"Address": addr,
"Balance": types.FIL(a.Balance),
"Nonce": a.Nonce,
}
if addr == def {
row["Default"] = "X"
}

tw.Write(row)
}
}

if !cctx.Bool("addr-only") {
return tw.Flush(os.Stdout)
}

return nil
},
}
Expand Down

0 comments on commit 8205149

Please sign in to comment.