Mercurial > hg > bitcoin
changeset 664:b7fc3ed893a3 draft
Merge pull request #264 from sipa/mintxfeefix
Fix for small change outputs
author | Jeff Garzik <jgarzik@exmulti.com> |
---|---|
date | Sun, 05 Jun 2011 07:32:58 -0700 (2011-06-05) |
parents | 2a5e1dcb0a8d (current diff) 5fbfc07d9ae8 (diff) |
children | 90eff0e452d5 |
files | src/main.cpp |
diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main.cpp +++ b/src/main.cpp @@ -3854,9 +3854,18 @@ dPriority += (double)nCredit * pcoin.first->GetDepthInMainChain(); } - // Fill a vout back to self with any change - int64 nChange = nValueIn - nTotalValue; - if (nChange >= CENT) + int64 nChange = nValueIn - nValue - nFeeRet; + + // if sub-cent change is required, the fee must be raised to at least MIN_TX_FEE + // or until nChange becomes zero + if (nFeeRet < MIN_TX_FEE && nChange > 0 && nChange < CENT) + { + int64 nMoveToFee = min(nChange, MIN_TX_FEE - nFeeRet); + nChange -= nMoveToFee; + nFeeRet += nMoveToFee; + } + + if (nChange > 0) { // Note: We use a new key here to keep it from being obvious which side is the change. // The drawback is that by not reusing a previous key, the change may be lost if a