multi-account: update getbalance

This commit is contained in:
Roy Lee 2022-08-22 11:41:26 -07:00
parent 71f8ba68a0
commit 608e4dddb5
2 changed files with 15 additions and 23 deletions

View file

@ -31,7 +31,7 @@ var Methods = []struct {
{"getaccountaddress", returnsString},
{"getaddressesbyaccount", returnsStringArray},
{"getaddressinfo", []interface{}{(*btcjson.GetAddressInfoResult)(nil)}},
{"getbalance", append(returnsNumber, returnsNumber[0])},
{"getbalance", returnsNumber},
{"getbestblockhash", returnsString},
{"getblockcount", returnsNumber},
{"getinfo", []interface{}{(*btcjson.InfoWalletResult)(nil)}},

View file

@ -582,30 +582,22 @@ func getAddressInfo(icmd interface{}, w *wallet.Wallet) (interface{}, error) {
func getBalance(icmd interface{}, w *wallet.Wallet) (interface{}, error) {
cmd := icmd.(*btcjson.GetBalanceCmd)
var balance btcutil.Amount
var err error
accountName := "*"
if cmd.Account != nil {
accountName = *cmd.Account
if *cmd.Account == "*" {
balance, _, err := w.CalculateBalance(int32(*cmd.MinConf))
if err != nil {
return nil, err
}
return balance.ToBTC(), nil
}
if accountName == "*" {
balance, _, err = w.CalculateBalance(int32(*cmd.MinConf))
if err != nil {
return nil, err
}
} else {
var account uint32
account, err = w.AccountNumber(waddrmgr.KeyScopeBIP0044, accountName)
if err != nil {
return nil, err
}
bals, err := w.CalculateAccountBalances(account, int32(*cmd.MinConf))
if err != nil {
return nil, err
}
balance = bals.Spendable
account, err := w.AccountNumber(*cmd.Account)
if err != nil {
return nil, err
}
return balance.ToBTC(), nil
bals, err := w.CalculateAccountBalances(account, int32(*cmd.MinConf))
return bals.Spendable.ToBTC(), err
}
// getBestBlock handles a getbestblock request by returning a JSON object