Browse Source

Merge pull request #5675

2d9b0b7 Fix priority calculation in CreateTransaction (Alex Morcos)
0.13
Wladimir J. van der Laan 10 years ago
parent
commit
4e2b1fff98
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 8
      src/wallet.cpp

8
src/wallet.cpp

@ -1445,10 +1445,14 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, CAmount> >& vecSend, @@ -1445,10 +1445,14 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, CAmount> >& vecSend,
BOOST_FOREACH(PAIRTYPE(const CWalletTx*, unsigned int) pcoin, setCoins)
{
CAmount nCredit = pcoin.first->vout[pcoin.second].nValue;
//The priority after the next block (depth+1) is used instead of the current,
//The coin age after the next block (depth+1) is used instead of the current,
//reflecting an assumption the user would accept a bit more delay for
//a chance at a free transaction.
dPriority += (double)nCredit * (pcoin.first->GetDepthInMainChain()+1);
//But mempool inputs might still be in the mempool, so their age stays 0
int age = pcoin.first->GetDepthInMainChain();
if (age != 0)
age += 1;
dPriority += (double)nCredit * age;
}
CAmount nChange = nValueIn - nValue - nFeeRet;

Loading…
Cancel
Save