add CWalletTx::GetImmatureCredit() and use it in CWallet::GetImmatureBalance()
This commit is contained in:
parent
0d5b1d2a3e
commit
966a0e8cc9
2 changed files with 20 additions and 3 deletions
|
@ -926,9 +926,8 @@ int64 CWallet::GetImmatureBalance() const
|
||||||
LOCK(cs_wallet);
|
LOCK(cs_wallet);
|
||||||
for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it)
|
for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it)
|
||||||
{
|
{
|
||||||
const CWalletTx& pcoin = (*it).second;
|
const CWalletTx* pcoin = &(*it).second;
|
||||||
if (pcoin.IsCoinBase() && pcoin.GetBlocksToMaturity() > 0 && pcoin.IsInMainChain())
|
nTotal += pcoin->GetImmatureCredit();
|
||||||
nTotal += GetCredit(pcoin);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nTotal;
|
return nTotal;
|
||||||
|
|
18
src/wallet.h
18
src/wallet.h
|
@ -375,10 +375,12 @@ public:
|
||||||
// memory only
|
// memory only
|
||||||
mutable bool fDebitCached;
|
mutable bool fDebitCached;
|
||||||
mutable bool fCreditCached;
|
mutable bool fCreditCached;
|
||||||
|
mutable bool fImmatureCreditCached;
|
||||||
mutable bool fAvailableCreditCached;
|
mutable bool fAvailableCreditCached;
|
||||||
mutable bool fChangeCached;
|
mutable bool fChangeCached;
|
||||||
mutable int64 nDebitCached;
|
mutable int64 nDebitCached;
|
||||||
mutable int64 nCreditCached;
|
mutable int64 nCreditCached;
|
||||||
|
mutable int64 nImmatureCreditCached;
|
||||||
mutable int64 nAvailableCreditCached;
|
mutable int64 nAvailableCreditCached;
|
||||||
mutable int64 nChangeCached;
|
mutable int64 nChangeCached;
|
||||||
|
|
||||||
|
@ -416,10 +418,12 @@ public:
|
||||||
vfSpent.clear();
|
vfSpent.clear();
|
||||||
fDebitCached = false;
|
fDebitCached = false;
|
||||||
fCreditCached = false;
|
fCreditCached = false;
|
||||||
|
fImmatureCreditCached = false;
|
||||||
fAvailableCreditCached = false;
|
fAvailableCreditCached = false;
|
||||||
fChangeCached = false;
|
fChangeCached = false;
|
||||||
nDebitCached = 0;
|
nDebitCached = 0;
|
||||||
nCreditCached = 0;
|
nCreditCached = 0;
|
||||||
|
nImmatureCreditCached = 0;
|
||||||
nAvailableCreditCached = 0;
|
nAvailableCreditCached = 0;
|
||||||
nChangeCached = 0;
|
nChangeCached = 0;
|
||||||
nOrderPos = -1;
|
nOrderPos = -1;
|
||||||
|
@ -563,6 +567,20 @@ public:
|
||||||
return nCreditCached;
|
return nCreditCached;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int64 GetImmatureCredit(bool fUseCache=true) const
|
||||||
|
{
|
||||||
|
if (IsCoinBase() && GetBlocksToMaturity() > 0 && IsInMainChain())
|
||||||
|
{
|
||||||
|
if (fUseCache && fImmatureCreditCached)
|
||||||
|
return nImmatureCreditCached;
|
||||||
|
nImmatureCreditCached = pwallet->GetCredit(*this);
|
||||||
|
fImmatureCreditCached = true;
|
||||||
|
return nImmatureCreditCached;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int64 GetAvailableCredit(bool fUseCache=true) const
|
int64 GetAvailableCredit(bool fUseCache=true) const
|
||||||
{
|
{
|
||||||
// Must wait until coinbase is safely deep enough in the chain before valuing it
|
// Must wait until coinbase is safely deep enough in the chain before valuing it
|
||||||
|
|
Loading…
Reference in a new issue