diff --git a/internal/rpchelp/methods.go b/internal/rpchelp/methods.go index 7e2c136..3d362c9 100644 --- a/internal/rpchelp/methods.go +++ b/internal/rpchelp/methods.go @@ -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)}}, diff --git a/rpc/legacyrpc/methods.go b/rpc/legacyrpc/methods.go index a187dab..494201f 100644 --- a/rpc/legacyrpc/methods.go +++ b/rpc/legacyrpc/methods.go @@ -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