SelectCoins first pass tries not to use coins with less than 6 confirmations

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@177 1a98c847-1fd6-4fd8-948a-caf3550aa51b
This commit is contained in:
s_nakamoto
2010-11-09 19:47:07 +00:00
parent 461764cbbe
commit e2a186af10
2 changed files with 34 additions and 2 deletions

22
main.h
View File

@@ -487,6 +487,11 @@ public:
return false;
}
bool IsFromMe() const
{
return (GetDebit() > 0);
}
int64 GetDebit() const
{
int64 nDebit = 0;
@@ -789,8 +794,23 @@ public:
return nCreditCached;
}
bool IsFromMe() const
{
return (GetDebit() > 0);
}
bool IsConfirmed() const
{
// Quick answer in most cases
if (!IsFinal())
return false;
if (GetDepthInMainChain() >= 1)
return true;
if (!IsFromMe()) // using wtx's cached debit
return false;
// If no confirmations but it's from us, we can still
// consider it confirmed if all dependencies are confirmed
map<uint256, const CMerkleTx*> mapPrev;
vector<const CMerkleTx*> vWorkQueue;
vWorkQueue.reserve(vtxPrev.size()+1);
@@ -803,7 +823,7 @@ public:
return false;
if (ptx->GetDepthInMainChain() >= 1)
return true;
if (ptx->GetDebit() <= 0)
if (!ptx->IsFromMe())
return false;
if (mapPrev.empty())