Skip to content

Add dialog to select change output when bumping fee - #954

Open
pablomartin4btc wants to merge 4 commits into
bitcoin-core:masterfrom
pablomartin4btc:qt/bumpfee-choose-change-output
Open

Add dialog to select change output when bumping fee#954
pablomartin4btc wants to merge 4 commits into
bitcoin-core:masterfrom
pablomartin4btc:qt/bumpfee-choose-change-output

Conversation

@pablomartin4btc

Copy link
Copy Markdown
Contributor

Rebases and fixes the closed #700.

Implements a GUI dialog that lets the user choose which output to use as change when bumping a transaction fee, bringing the GUI in line with the RPC functionality added in bitcoin/bitcoin#26467. Without this, the GUI adds an unnecessary extra change output when change detection fails (e.g. custom change addresses or labeled outputs).

achow101 added 4 commits July 31, 2026 00:09
ConfirmSend and ConfirmMessage assumed that the widgets with the buttons
to click would be ready by the time the functions fired. This may not
necessarily be the case, so instead they should check for the right
widgets in a loop and only exit when a button has been clicked.
In order to correctly choose the change output when doing fee bumping in
the GUI, we need to ask the user which output is change. We can make a
guess using our ScriptIsChange heuristic, however the user may have
chosen to have a custom change address or have otherwise labeled their
change address which makes our change detection fail. By asking the user
when fee bumping, we can avoid adding additional change outputs that are
unnecessary.
@DrahtBot

DrahtBot commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Reviews

See the guideline and AI policy for information on the review process.
A summary of reviews will appear here.

Conflicts

Reviewers, this pull request conflicts with the following ones:

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@DrahtBot

Copy link
Copy Markdown
Contributor

🚧 At least one of the CI tasks failed.
Task riscv32 bare metal, static libbitcoin_consensus: https://github.com/bitcoin-core/gui/actions/runs/30601076216/job/91063660090
LLM reason (✨ experimental): CI failed because the Docker build’s submodule fetch hit a GitHub rate limit (HTTP 429), causing the required binutils commit to be missing and 01_base_install.sh to exit with code 2.

Hints

Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:

  • Possibly due to a silent merge conflict (the changes in this pull request being
    incompatible with the current code in the target branch). If so, make sure to rebase on the latest
    commit of the target branch.

  • A sanitizer issue, which can only be found by compiling with the sanitizer and running the
    affected test.

  • An intermittent issue.

Leave a comment here, if you need help tracking down a confusing failure.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants