wallet.bump_fee() only allows targeting a feerate.
Prior to this commit, _BaseRBFDialog(TxEditor) allowed setting either a feerate or an abs fee.
When setting an abs fee, TxEditor.update_fee_fields() tries to adjust the feerate accordingly,
and then via side-effecting, wallet.bump_fee() will get called with the derived feerate.
This seems really buggy atm. I think it is best to disable setting abs fees, and
if we want to enable it later, targeting needs to be implemented in wallet.bump_fee() -
just like how it works in ConfirmTxDialog(TxEditor) and wallet.make_unsigned_transaction().
That way, users can see the effects settings directly on their transaction.
This changes the API of make_tx:
- get_coins is called inside make_tx, so that inputs can be changed dynamically
- make_tx takes an optional parameter: unconfirmed_only, passed to get_coins
- ConfirmTxDialog detects if we can pay by disabling confirmed_only or lowering fee
- replace complex strategies with a simpler choice,
between preserving or decreasing the payment.
- Always expose that choice to the user.
- Show the resulting fees to the user before they click OK
preference from the GUI, because the mempoolfullrbf option in
Bitcoin 0.24 makes RBF signaling pretty meaningless. Fixes#8088.
Note: RBF remains disabled for channel funding transactions.
In that case, the flag is actually only used as a semaphore
between different instances of the same wallet.
Now that the checkbox is hidden behind an advanced option, there is
no need to be brief about it, better to be explicit.
(terminology unchanged for kivy.)