From d7836552e64b1f949385f7b11836ece99f7c3d67 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Wed, 26 Dec 2012 12:45:42 -0500 Subject: [PATCH] If the prio. will be enough after the next block don't force fees. If the user was really after the fastest possible confirmation times they would be manually setting a fee. In cases where the wallet builds a transaction with a priority that is too low to qualify as free until the next block, go ahead without a fee. Confirmation frequently takes multiple blocks even when a minimum fee is provided. --- src/wallet.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/wallet.cpp b/src/wallet.cpp index c07adff6..37b86c35 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -1154,7 +1154,10 @@ bool CWallet::CreateTransaction(const vector >& vecSend, CW BOOST_FOREACH(PAIRTYPE(const CWalletTx*, unsigned int) pcoin, setCoins) { int64 nCredit = pcoin.first->vout[pcoin.second].nValue; - dPriority += (double)nCredit * pcoin.first->GetDepthInMainChain(); + //The priority 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); } int64 nChange = nValueIn - nValue - nFeeRet;