multi-scope: update getbalance

This commit is contained in:
Roy Lee 2022-08-22 11:41:26 -07:00
parent 8cadd74e47
commit d54e539700
2 changed files with 15 additions and 23 deletions

View file

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

View file

@ -582,32 +582,24 @@ func getAddressInfo(icmd interface{}, w *wallet.Wallet) (interface{}, error) {
func getBalance(icmd interface{}, w *wallet.Wallet) (interface{}, error) { func getBalance(icmd interface{}, w *wallet.Wallet) (interface{}, error) {
cmd := icmd.(*btcjson.GetBalanceCmd) cmd := icmd.(*btcjson.GetBalanceCmd)
var balance btcutil.Amount if *cmd.Account == "*" {
var err error balance, _, err := w.CalculateBalance(int32(*cmd.MinConf))
accountName := "*"
if cmd.Account != nil {
accountName = *cmd.Account
}
if accountName == "*" {
balance, _, err = w.CalculateBalance(int32(*cmd.MinConf))
if err != nil { if err != nil {
return nil, err 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
}
return balance.ToBTC(), nil return balance.ToBTC(), nil
} }
account, err := w.AccountNumber(*cmd.Account)
if err != nil {
return nil, err
}
bals, err := w.CalculateAccountBalances(account, int32(*cmd.MinConf))
return bals.Spendable.ToBTC(), err
}
// getBestBlock handles a getbestblock request by returning a JSON object // getBestBlock handles a getbestblock request by returning a JSON object
// with the height and hash of the most recently processed block. // with the height and hash of the most recently processed block.
func getBestBlock(icmd interface{}, w *wallet.Wallet) (interface{}, error) { func getBestBlock(icmd interface{}, w *wallet.Wallet) (interface{}, error) {