package main import ( "context" "fmt" "github.com/kaspanet/kaspad/cmd/kaspawallet/daemon/client" "github.com/kaspanet/kaspad/cmd/kaspawallet/daemon/pb" "github.com/kaspanet/kaspad/domain/consensus/utils/constants" ) func formatKas(amount uint64) string { res := " " if amount > 0 { res = fmt.Sprintf("%19.8f", float64(amount)/constants.SompiPerKaspa) } return res } func balance(conf *balanceConfig) error { daemonClient, tearDown, err := client.Connect(conf.DaemonAddress) if err != nil { return err } defer tearDown() ctx, cancel := context.WithTimeout(context.Background(), daemonTimeout) defer cancel() response, err := daemonClient.GetBalance(ctx, &pb.GetBalanceRequest{}) if err != nil { return err } pendingSuffix := "" if response.Pending > 0 { pendingSuffix = " (pending)" } if conf.Verbose { pendingSuffix = "" println("Address Available Pending") println("-----------------------------------------------------------------------------------------------------------") for _, addressBalance := range response.AddressBalances { fmt.Printf("%s %s %s\n", addressBalance.Address, formatKas(addressBalance.Available), formatKas(addressBalance.Pending)) } println("-----------------------------------------------------------------------------------------------------------") print(" ") } fmt.Printf("Total balance, KAS %s %s%s\n", formatKas(response.Available), formatKas(response.Pending), pendingSuffix) return nil }