mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-13 07:28:59 +01:00
wallet: Get all balances in one call
This commit is contained in:
@@ -308,7 +308,7 @@ static UniValue setlabel(const JSONRPCRequest& request)
|
||||
|
||||
static CTransactionRef SendMoney(interfaces::Chain::Lock& locked_chain, CWallet * const pwallet, const CTxDestination &address, CAmount nValue, bool fSubtractFeeFromAmount, const CCoinControl& coin_control, mapValue_t mapValue)
|
||||
{
|
||||
CAmount curBalance = pwallet->GetBalance();
|
||||
CAmount curBalance = pwallet->GetBalance().m_mine_trusted;
|
||||
|
||||
// Check amount
|
||||
if (nValue <= 0)
|
||||
@@ -761,12 +761,14 @@ static UniValue getbalance(const JSONRPCRequest& request)
|
||||
min_depth = request.params[1].get_int();
|
||||
}
|
||||
|
||||
isminefilter filter = ISMINE_SPENDABLE;
|
||||
bool include_watchonly = false;
|
||||
if (!request.params[2].isNull() && request.params[2].get_bool()) {
|
||||
filter = filter | ISMINE_WATCH_ONLY;
|
||||
include_watchonly = true;
|
||||
}
|
||||
|
||||
return ValueFromAmount(pwallet->GetBalance(filter, min_depth));
|
||||
const auto bal = pwallet->GetBalance(min_depth);
|
||||
|
||||
return ValueFromAmount(bal.m_mine_trusted + (include_watchonly ? bal.m_watchonly_trusted : 0));
|
||||
}
|
||||
|
||||
static UniValue getunconfirmedbalance(const JSONRPCRequest &request)
|
||||
@@ -794,7 +796,7 @@ static UniValue getunconfirmedbalance(const JSONRPCRequest &request)
|
||||
auto locked_chain = pwallet->chain().lock();
|
||||
LOCK(pwallet->cs_wallet);
|
||||
|
||||
return ValueFromAmount(pwallet->GetUnconfirmedBalance());
|
||||
return ValueFromAmount(pwallet->GetBalance().m_mine_untrusted_pending);
|
||||
}
|
||||
|
||||
|
||||
@@ -2416,11 +2418,12 @@ static UniValue getwalletinfo(const JSONRPCRequest& request)
|
||||
UniValue obj(UniValue::VOBJ);
|
||||
|
||||
size_t kpExternalSize = pwallet->KeypoolCountExternalKeys();
|
||||
const auto bal = pwallet->GetBalance();
|
||||
obj.pushKV("walletname", pwallet->GetName());
|
||||
obj.pushKV("walletversion", pwallet->GetVersion());
|
||||
obj.pushKV("balance", ValueFromAmount(pwallet->GetBalance()));
|
||||
obj.pushKV("unconfirmed_balance", ValueFromAmount(pwallet->GetUnconfirmedBalance()));
|
||||
obj.pushKV("immature_balance", ValueFromAmount(pwallet->GetImmatureBalance()));
|
||||
obj.pushKV("balance", ValueFromAmount(bal.m_mine_trusted));
|
||||
obj.pushKV("unconfirmed_balance", ValueFromAmount(bal.m_mine_untrusted_pending));
|
||||
obj.pushKV("immature_balance", ValueFromAmount(bal.m_mine_immature));
|
||||
obj.pushKV("txcount", (int)pwallet->mapWallet.size());
|
||||
obj.pushKV("keypoololdest", pwallet->GetOldestKeyPoolTime());
|
||||
obj.pushKV("keypoolsize", (int64_t)kpExternalSize);
|
||||
|
||||
Reference in New Issue
Block a user