- fix bug in CWallet::CreateTransaction. If dPriorityNeeded is -1, then dPriority >= dPriorityNeeded is always true, so we always "break;"
- CFeeRate::GetFee(..) currently returns zero for very small nSatoshisPerK. For example, if you set the voluntary fee to 1 satoshi, and the tx has less than 1000 bytes, payTxFee.GetFee(nTxBytes) returns zero, this results in CWallet::GetMinimumFee(..) to return pool.estimateFee(..) instead of the voluntary fee. So its not possible to set the voluntary fee as low as 1 satoshi.
- Add fallback hard-coded AllowFree to coin control, because CreateTransaction also does.
- Handle voluntary fee case in coin control. nPayFee was set to zero if dPriority >= dPriorityNeeded, even in the voluntary fee case. And we need to consider, that CreateTransaction pays at least for 1000 bytes in the voluntary fee case.
Just a question, why did -mintxfee move from Testing options to Wallet options? I dont think we should bother people with this, otherwise we wouldnt need smart fee in the first place.