bitcoin-core / gui

Bitcoin Core GUI staging repository
https://github.com/bitcoin/bitcoin
MIT License
588 stars 259 forks source link

Generalized fee bumping #822

Open jb55 opened 3 months ago

jb55 commented 3 months ago

Please describe the feature you'd like to see added.

It would be nice if we had a GUI implementation of this new RPC feature:

Maybe the lowest common denominator here is:

This would allows us to edit transactions pre-flight and in-flight?

The main usecase here is that let's say you have a transaction that isn't going to confirm for a couple hours, days, weeks. Then all of a sudden you remember that you wanted to add another output or remove an existing one.

In my case, I had a single input and single output, and wanted to add another output so that the output amount is split. This is pretty common for transferring between different accounts with different security levels, such as coldstore to multisig.

More specifically I created a transaction from my cold storage to multisig, but wanted to update it to [coldstore input -> multisig + lightning wallet output]. I controlled every wallet involved in the transaction, and just wanted to add another output that split the funds and bumped the fee on a single input.

Fee-bumping is just inflight-transaction editing without user-modification of the number of input/outputs. So this would be in some sense "generalized fee bumping"?

The main thing that would be needed is restoring the send transaction view from an arbitrary transaction. Then bumping the fee could ask if you would like to modify the transaction in any way, dropping you back into that send transaction view to re-create the transaction. It would also have to keep track of the original fee so that it can warn that editing the transaction may not confirm.

Design-wise, one might be tempted to just call this "edit transaction" instead of bump fee, but this may be too confusing. If the user doesn't bump the fee during transaction editing it may not have any higher priority over the previous one, leading to confusion when the original tx confirms, so it would make sense to make this a fee bumping feature.

Thoughts? or is this a too complex/niche use case? I find myself wanted to do this a lot, at least in the pre-flight case, so I would be happy with PSBT editing in the meantime :sweat_smile:

hebasto commented 1 month ago

cc @achow101 @Sjors @GBKS