|
|
|
@ -557,7 +557,7 @@ Value getreceivedbyaccount(const Array& params, bool fHelp)
@@ -557,7 +557,7 @@ Value getreceivedbyaccount(const Array& params, bool fHelp)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int64_t GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMinDepth) |
|
|
|
|
int64_t GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMinDepth, const isminefilter& filter = MINE_SPENDABLE) |
|
|
|
|
{ |
|
|
|
|
int64_t nBalance = 0; |
|
|
|
|
|
|
|
|
@ -569,7 +569,7 @@ int64_t GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMi
@@ -569,7 +569,7 @@ int64_t GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMi
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
int64_t nReceived, nSent, nFee; |
|
|
|
|
wtx.GetAccountAmounts(strAccount, nReceived, nSent, nFee); |
|
|
|
|
wtx.GetAccountAmounts(strAccount, nReceived, nSent, nFee, filter); |
|
|
|
|
|
|
|
|
|
if (nReceived != 0 && wtx.GetDepthInMainChain() >= nMinDepth) |
|
|
|
|
nBalance += nReceived; |
|
|
|
@ -582,18 +582,18 @@ int64_t GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMi
@@ -582,18 +582,18 @@ int64_t GetAccountBalance(CWalletDB& walletdb, const string& strAccount, int nMi
|
|
|
|
|
return nBalance; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int64_t GetAccountBalance(const string& strAccount, int nMinDepth) |
|
|
|
|
int64_t GetAccountBalance(const string& strAccount, int nMinDepth, const isminefilter& filter = MINE_SPENDABLE) |
|
|
|
|
{ |
|
|
|
|
CWalletDB walletdb(pwalletMain->strWalletFile); |
|
|
|
|
return GetAccountBalance(walletdb, strAccount, nMinDepth); |
|
|
|
|
return GetAccountBalance(walletdb, strAccount, nMinDepth, filter); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value getbalance(const Array& params, bool fHelp) |
|
|
|
|
{ |
|
|
|
|
if (fHelp || params.size() > 2) |
|
|
|
|
if (fHelp || params.size() > 3) |
|
|
|
|
throw runtime_error( |
|
|
|
|
"getbalance ( \"account\" minconf )\n" |
|
|
|
|
"getbalance ( \"account\" minconf includeWatchonly )\n" |
|
|
|
|
"\nIf account is not specified, returns the server's total available balance.\n" |
|
|
|
|
"If account is specified, returns the balance in the account.\n" |
|
|
|
|
"Note that the account \"\" is not the same as leaving the parameter out.\n" |
|
|
|
@ -601,6 +601,7 @@ Value getbalance(const Array& params, bool fHelp)
@@ -601,6 +601,7 @@ Value getbalance(const Array& params, bool fHelp)
|
|
|
|
|
"\nArguments:\n" |
|
|
|
|
"1. \"account\" (string, optional) The selected account, or \"*\" for entire wallet. It may be the default account using \"\".\n" |
|
|
|
|
"2. minconf (numeric, optional, default=1) Only include transactions confirmed at least this many times.\n" |
|
|
|
|
"3. includeWatchonly (bool, optional, default=false) Also include balance in watchonly addresses (see 'importaddress')\n" |
|
|
|
|
"\nResult:\n" |
|
|
|
|
"amount (numeric) The total amount in btc received for this account.\n" |
|
|
|
|
"\nExamples:\n" |
|
|
|
@ -620,8 +621,14 @@ Value getbalance(const Array& params, bool fHelp)
@@ -620,8 +621,14 @@ Value getbalance(const Array& params, bool fHelp)
|
|
|
|
|
return ValueFromAmount(pwalletMain->GetBalance()); |
|
|
|
|
|
|
|
|
|
int nMinDepth = 1; |
|
|
|
|
isminefilter filter = MINE_SPENDABLE; |
|
|
|
|
if (params.size() > 1) |
|
|
|
|
{ |
|
|
|
|
nMinDepth = params[1].get_int(); |
|
|
|
|
if(params.size() > 2) |
|
|
|
|
if(params[2].get_bool()) |
|
|
|
|
filter = filter | MINE_WATCH_ONLY; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (params[0].get_str() == "*") { |
|
|
|
|
// Calculate total balance a different way from GetBalance()
|
|
|
|
@ -638,7 +645,7 @@ Value getbalance(const Array& params, bool fHelp)
@@ -638,7 +645,7 @@ Value getbalance(const Array& params, bool fHelp)
|
|
|
|
|
string strSentAccount; |
|
|
|
|
list<pair<CTxDestination, int64_t> > listReceived; |
|
|
|
|
list<pair<CTxDestination, int64_t> > listSent; |
|
|
|
|
wtx.GetAmounts(listReceived, listSent, allFee, strSentAccount); |
|
|
|
|
wtx.GetAmounts(listReceived, listSent, allFee, strSentAccount, filter); |
|
|
|
|
if (wtx.GetDepthInMainChain() >= nMinDepth) |
|
|
|
|
{ |
|
|
|
|
BOOST_FOREACH(const PAIRTYPE(CTxDestination,int64_t)& r, listReceived) |
|
|
|
@ -653,7 +660,7 @@ Value getbalance(const Array& params, bool fHelp)
@@ -653,7 +660,7 @@ Value getbalance(const Array& params, bool fHelp)
|
|
|
|
|
|
|
|
|
|
string strAccount = AccountFromValue(params[0]); |
|
|
|
|
|
|
|
|
|
int64_t nBalance = GetAccountBalance(strAccount, nMinDepth); |
|
|
|
|
int64_t nBalance = GetAccountBalance(strAccount, nMinDepth, filter); |
|
|
|
|
|
|
|
|
|
return ValueFromAmount(nBalance); |
|
|
|
|
} |
|
|
|
|