aboutsummaryrefslogtreecommitdiff
path: root/src/wallet.cpp
diff options
context:
space:
mode:
authorGavin Andresen <gavinandresen@gmail.com>2013-10-19 23:05:04 -0700
committerGavin Andresen <gavinandresen@gmail.com>2013-10-19 23:05:04 -0700
commitbd48a4fe492b46708a0397c6330f06fcc80aee0b (patch)
tree1bac0297ba887a4b65499ca1d92f388687de2e4c /src/wallet.cpp
parentf90b690a0d5fb147080da4ecdab1a99ce0b72042 (diff)
parentd6eb259953699f5bea208ff41a0967d8ea513a70 (diff)
Merge pull request #2945 from gmaxwell/fee-logic_encourage_sweeping
[Fee logic] Don't count txins for priority to encourage sweeping.
Diffstat (limited to 'src/wallet.cpp')
-rw-r--r--src/wallet.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/wallet.cpp b/src/wallet.cpp
index 03d79406d8..6f61cfc734 100644
--- a/src/wallet.cpp
+++ b/src/wallet.cpp
@@ -1300,7 +1300,15 @@ bool CWallet::CreateTransaction(const vector<pair<CScript, int64> >& vecSend,
strFailReason = _("Transaction too large");
return false;
}
- dPriority /= nBytes;
+ unsigned int nTxSizeMod = nBytes;
+ // See miner.c's dPriority logic for the matching network-node side code.
+ BOOST_FOREACH(const CTxIn& txin, (*(CTransaction*)&wtxNew).vin)
+ {
+ unsigned int offset = 41U + min(110U, (unsigned int)txin.scriptSig.size());
+ if (nTxSizeMod > offset)
+ nTxSizeMod -= offset;
+ }
+ dPriority /= nTxSizeMod;
// Check that enough fee is included
int64 nPayFee = nTransactionFee * (1 + (int64)nBytes / 1000);