X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fmain.cpp;h=0456041ee5936335e1f8600cbc0b19b65e9bd1ab;hb=09d1484b2293c9e1619fff29a9a41d520cda294b;hp=6f3ef62debbf12ec331e691bbcbcdc6d971255a6;hpb=e3d884479abcaf52ba6155755ce970998ce0622f;p=novacoin.git diff --git a/src/main.cpp b/src/main.cpp index 6f3ef62..0456041 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3854,9 +3854,18 @@ bool CreateTransaction(const vector >& vecSend, CWalletTx& 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