|
|
|
@ -1580,7 +1580,7 @@ CAmount CWallet::GetUnconfirmedBalance() const
@@ -1580,7 +1580,7 @@ CAmount CWallet::GetUnconfirmedBalance() const
|
|
|
|
|
for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) |
|
|
|
|
{ |
|
|
|
|
const CWalletTx* pcoin = &(*it).second; |
|
|
|
|
if (!CheckFinalTx(*pcoin) || (!pcoin->IsTrusted() && pcoin->GetDepthInMainChain() == 0)) |
|
|
|
|
if (!pcoin->IsTrusted() && pcoin->GetDepthInMainChain() == 0 && pcoin->InMempool()) |
|
|
|
|
nTotal += pcoin->GetAvailableCredit(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -1625,7 +1625,7 @@ CAmount CWallet::GetUnconfirmedWatchOnlyBalance() const
@@ -1625,7 +1625,7 @@ CAmount CWallet::GetUnconfirmedWatchOnlyBalance() const
|
|
|
|
|
for (map<uint256, CWalletTx>::const_iterator it = mapWallet.begin(); it != mapWallet.end(); ++it) |
|
|
|
|
{ |
|
|
|
|
const CWalletTx* pcoin = &(*it).second; |
|
|
|
|
if (!CheckFinalTx(*pcoin) || (!pcoin->IsTrusted() && pcoin->GetDepthInMainChain() == 0)) |
|
|
|
|
if (!pcoin->IsTrusted() && pcoin->GetDepthInMainChain() == 0 && pcoin->InMempool()) |
|
|
|
|
nTotal += pcoin->GetAvailableWatchOnlyCredit(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -1670,6 +1670,11 @@ void CWallet::AvailableCoins(vector<COutput>& vCoins, bool fOnlyConfirmed, const
@@ -1670,6 +1670,11 @@ void CWallet::AvailableCoins(vector<COutput>& vCoins, bool fOnlyConfirmed, const
|
|
|
|
|
if (nDepth < 0) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
// We should not consider coins which aren't at least in our mempool
|
|
|
|
|
// It's possible for these to be conflicted via ancestors which we may never be able to detect
|
|
|
|
|
if (nDepth == 0 && !pcoin->InMempool()) |
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
for (unsigned int i = 0; i < pcoin->vout.size(); i++) { |
|
|
|
|
isminetype mine = IsMine(pcoin->vout[i]); |
|
|
|
|
if (!(IsSpent(wtxid, i)) && mine != ISMINE_NO && |
|
|
|
|