Added argument to getbalance to include watchonly addresses and fixed errors in balance calculation.
This commit is contained in:
@@ -711,7 +711,7 @@ isminetype CWallet::IsMine(const CTxIn &txin) const
|
||||
return MINE_NO;
|
||||
}
|
||||
|
||||
int64_t CWallet::GetDebit(const CTxIn &txin) const
|
||||
int64_t CWallet::GetDebit(const CTxIn &txin, const isminefilter& filter) const
|
||||
{
|
||||
{
|
||||
LOCK(cs_wallet);
|
||||
@@ -720,7 +720,7 @@ int64_t CWallet::GetDebit(const CTxIn &txin) const
|
||||
{
|
||||
const CWalletTx& prev = (*mi).second;
|
||||
if (txin.prevout.n < prev.vout.size())
|
||||
if (IsMine(prev.vout[txin.prevout.n]))
|
||||
if (IsMine(prev.vout[txin.prevout.n]) & filter)
|
||||
return prev.vout[txin.prevout.n].nValue;
|
||||
}
|
||||
}
|
||||
@@ -801,7 +801,7 @@ void CWalletTx::GetAmounts(list<pair<CTxDestination, int64_t> >& listReceived,
|
||||
strSentAccount = strFromAccount;
|
||||
|
||||
// Compute fee:
|
||||
int64_t nDebit = GetDebit();
|
||||
int64_t nDebit = GetDebit(filter);
|
||||
if (nDebit > 0) // debit>0 means we signed/sent this transaction
|
||||
{
|
||||
int64_t nValueOut = GetValueOut();
|
||||
@@ -846,7 +846,7 @@ void CWalletTx::GetAmounts(list<pair<CTxDestination, int64_t> >& listReceived,
|
||||
}
|
||||
|
||||
void CWalletTx::GetAccountAmounts(const string& strAccount, int64_t& nReceived,
|
||||
int64_t& nSent, int64_t& nFee) const
|
||||
int64_t& nSent, int64_t& nFee, const isminefilter& filter) const
|
||||
{
|
||||
nReceived = nSent = nFee = 0;
|
||||
|
||||
@@ -854,7 +854,7 @@ void CWalletTx::GetAccountAmounts(const string& strAccount, int64_t& nReceived,
|
||||
string strSentAccount;
|
||||
list<pair<CTxDestination, int64_t> > listReceived;
|
||||
list<pair<CTxDestination, int64_t> > listSent;
|
||||
GetAmounts(listReceived, listSent, allFee, strSentAccount);
|
||||
GetAmounts(listReceived, listSent, allFee, strSentAccount, filter);
|
||||
|
||||
if (strAccount == strSentAccount)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user