wallet: Remove unused vecTxDSInTmp in CWallet::CreateTransaction
wallet: Calculate fees earlier and respect them in change determination
wallet: Cleanup obsolete code in CreateTransaction
This parts were needed before when the fee was calculated after the change was assigned. But now with the previous commit the fee is calculated upfront and respected properly from the begining. So there is no longer a need of increasing or decreasing the change depending on the fee as it has the correct value directly after its added.
wallet: Try to pick other inputs if the selected ones are too small
If nChange is negative in this cases it means that the selected inputs can't cover the amount to send and the required transaction fee. So we just add the missing amount to nFeeRet. This leads to the algo trying to pick larger inputs in the next loop (with nFeeRet more duffs than in the previous loop). This process gets repeated until the selected amount is enough to cover all the costs or until the requested amount can't be selected anymore (not enough utxos to cover it).
wallet: Break the loop if the transaction is ready
wallet: Respect additional amount from previous cycles
wallet: Respect available in coin selection, try all coins in last round
wallet: Avoid potential infinite loop, just in case..
wallet: Fix signing in CreateTransaction
Prior it was messed because of 60d96a1a28b55f071c6144f248e136679c44337e. Set coins isn't sorted the same way as txNew.vin is so it sometimes may pick wrong coins for signing the input.
wallet: Fix change calculation if "subtract fee from amount" is enabled
wallet: Return after fee calc if no or not enough amount available
Return the proper fail reason. Prior to this commit it run into "Exceeded max tried".
Note: Only return if not enough amount is available if we can't subtract fee from amount.
wallet: Fix break logic if available amount is not enough
Revert "wallet: Fix signing in CreateTransaction"
This reverts commit 5fcdc0f00e7b961ebb62c94d17d585537e911309.
Use a vector of coins instead of a set in CreateTransaction and sort it in a BIP69 compliant way when needed
wallet: Adjust comment
Cleaner usage of nChangePosRequest/InOut
Simplify some fail/try-again conditions (fixed)
Loop through outputs to update change output position only when outputs are sorted for BIP69
No need to do this for non-bip69 cases (i.e. when a specific change output position was requested and assigned)
Partial
wallet: Remove unused vecTxDSInTmp in CWallet::CreateTransaction
wallet: Calculate fees earlier and respect them in change determination
wallet: Cleanup obsolete code in CreateTransaction
This parts were needed before when the fee was calculated after the change was assigned. But now with the previous commit the fee is calculated upfront and respected properly from the begining. So there is no longer a need of increasing or decreasing the change depending on the fee as it has the correct value directly after its added.
If nChange is negative in this cases it means that the selected inputs can't cover the amount to send and the required transaction fee. So we just add the missing amount to nFeeRet. This leads to the algo trying to pick larger inputs in the next loop (with nFeeRet more duffs than in the previous loop). This process gets repeated until the selected amount is enough to cover all the costs or until the requested amount can't be selected anymore (not enough utxos to cover it).
wallet: Break the loop if the transaction is ready
wallet: Respect additional amount from previous cycles
wallet: Respect available in coin selection, try all coins in last round
wallet: Avoid potential infinite loop, just in case..
wallet: Fix signing in CreateTransaction
Prior it was messed because of 60d96a1a28b55f071c6144f248e136679c44337e. Set coins isn't sorted the same way as txNew.vin is so it sometimes may pick wrong coins for signing the input.
wallet: Fix change calculation if "subtract fee from amount" is enabled
wallet: Return after fee calc if no or not enough amount available
Return the proper fail reason. Prior to this commit it run into "Exceeded max tried".
Note: Only return if not enough amount is available if we can't subtract fee from amount.
wallet: Fix break logic if available amount is not enough
Revert "wallet: Fix signing in CreateTransaction"
This reverts commit 5fcdc0f00e7b961ebb62c94d17d585537e911309.
Use a vector of coins instead of a set in CreateTransaction and sort it in a BIP69 compliant way when needed
wallet: Adjust comment
Cleaner usage of nChangePosRequest/InOut
Simplify some fail/try-again conditions (fixed)
Loop through outputs to update change output position only when outputs are sorted for BIP69
No need to do this for non-bip69 cases (i.e. when a specific change output position was requested and assigned)
Avoid implicit conversions of int-s into bool-s
Move
nAmountLeft == nFeeRet
check higher, tweak commentswallet: Fix some formatting
wallet: Improve CTxIn creation in CreateTransaction
Description
Please describe the purpose of the pull request.
Checklist
Thanks for contributing!