mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-11-25 23:15:55 +00:00
41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/kaspanet/kaspad/infrastructure/network/rpcclient"
|
|
|
|
"github.com/kaspanet/kaspad/util"
|
|
)
|
|
|
|
func balance(conf *balanceConfig) error {
|
|
client, err := rpcclient.NewRPCClient(conf.RPCServer)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
getUTXOsByAddressesResponse, err := client.GetUTXOsByAddresses([]string{conf.Address})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
virtualSelectedParentBlueScoreResponse, err := client.GetVirtualSelectedParentBlueScore()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
virtualSelectedParentBlueScore := virtualSelectedParentBlueScoreResponse.BlueScore
|
|
|
|
var availableBalance, pendingBalance uint64
|
|
for _, entry := range getUTXOsByAddressesResponse.Entries {
|
|
if isUTXOSpendable(entry, virtualSelectedParentBlueScore, conf.ActiveNetParams.BlockCoinbaseMaturity) {
|
|
availableBalance += entry.UTXOEntry.Amount
|
|
} else {
|
|
pendingBalance += entry.UTXOEntry.Amount
|
|
}
|
|
}
|
|
|
|
fmt.Printf("Balance:\t\tKAS %f\n", float64(availableBalance)/util.SompiPerKaspa)
|
|
if pendingBalance > 0 {
|
|
fmt.Printf("Pending balance:\tKAS %f\n", float64(pendingBalance)/util.SompiPerKaspa)
|
|
}
|
|
|
|
return nil
|
|
}
|