mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00

Co-authored-by: Constantine Bitensky <cbitensky1@gmail.com> Co-authored-by: Ori Newman <orinewman1@gmail.com>
51 lines
1.6 KiB
Go
51 lines
1.6 KiB
Go
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
|
|
}
|