|
|
|
@ -222,6 +222,7 @@ public:
@@ -222,6 +222,7 @@ public:
|
|
|
|
|
|
|
|
|
|
// Adds a watch-only address to the store, and saves it to disk.
|
|
|
|
|
bool AddWatchOnly(const CScript &dest); |
|
|
|
|
bool RemoveWatchOnly(const CScript &dest); |
|
|
|
|
// Adds a watch-only address to the store, without saving it to disk (used by LoadWallet)
|
|
|
|
|
bool LoadWatchOnly(const CScript &dest); |
|
|
|
|
|
|
|
|
@ -701,18 +702,37 @@ public:
@@ -701,18 +702,37 @@ public:
|
|
|
|
|
return debit; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CAmount GetCredit(bool fUseCache=true) const |
|
|
|
|
CAmount GetCredit(const isminefilter& filter) const |
|
|
|
|
{ |
|
|
|
|
// Must wait until coinbase is safely deep enough in the chain before valuing it
|
|
|
|
|
if (IsCoinBase() && GetBlocksToMaturity() > 0) |
|
|
|
|
return 0; |
|
|
|
|
|
|
|
|
|
int64_t credit = 0; |
|
|
|
|
if (filter & ISMINE_SPENDABLE) |
|
|
|
|
{ |
|
|
|
|
// GetBalance can assume transactions in mapWallet won't change
|
|
|
|
|
if (fUseCache && fCreditCached) |
|
|
|
|
return nCreditCached; |
|
|
|
|
nCreditCached = pwallet->GetCredit(*this, ISMINE_ALL); |
|
|
|
|
if (fCreditCached) |
|
|
|
|
credit += nCreditCached; |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
nCreditCached = pwallet->GetCredit(*this, ISMINE_SPENDABLE); |
|
|
|
|
fCreditCached = true; |
|
|
|
|
return nCreditCached; |
|
|
|
|
credit += nCreditCached; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (filter & ISMINE_WATCH_ONLY) |
|
|
|
|
{ |
|
|
|
|
if (fWatchCreditCached) |
|
|
|
|
credit += nWatchCreditCached; |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
nWatchCreditCached = pwallet->GetCredit(*this, ISMINE_WATCH_ONLY); |
|
|
|
|
fWatchCreditCached = true; |
|
|
|
|
credit += nWatchCreditCached; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return credit; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
CAmount GetImmatureCredit(bool fUseCache=true) const |
|
|
|
|