AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Informational 22 Bitcoin

qt: perform 'fully spend' action with coin selection, keep separate from coin control when doing action.

Public commit record

What the developer wrote

Authored by Sander van Grieken

85/100 · Strong
qt: perform 'fully spend' action with coin selection, keep separate from coin control when doing action.

Also stop timer when dialog is finished, to avoid re-generating txs with the same input coin set, which
results in an exception as these coins have signatures when the swap has started.
✓ Specific, descriptive subject✓ Names a concrete action or component✓ Provides detailed explanatory context✓ Explains rationale or failure mode
The short version

What changed, and why it matters

This commit fixes a user-interface bug in the Electrum Bitcoin wallet's Qt desktop client. Previously, when a user chose to 'fully spend' selected coins to open a Lightning channel or perform a submarine swap, the wallet used the global 'coin control' setting to remember the coin selection. That caused the selected coins to remain locked in coin control after the dialog closed, and a background timer could keep re-creating transactions with the same already-signed coins, leading to an exception. The change passes the selected coins directly to the relevant dialogs instead of relying on coin control, and stops the timer when the dialog finishes. It is a reliability/usability fix rather than a remote-exploitable security vulnerability.

Recommended action

Treat as a normal bug-fix commit. Reviewers should verify that `get_coins` is consistently honored in all coin-selection paths and that `SwapDialog`'s timer is stopped in every close path, including error paths. No emergency response is warranted.

Security signals we found

01

State-management defect: selected UTXOs leaked into global coin control, causing unintended coin locking/retention

02

Exception path: background timer re-generated transactions with already-signed inputs after swap start

03

Fix pattern: explicit parameter passing replaces mutable shared state for coin selection

04

No input validation, deserialization, or cryptographic changes observed

Risk score

Why this scored 22/100

Our methodology →
Potential impact 4/30
Exploitability 2/25
Stealth signal 3/15
Affected reach 4/15
Confidence 6/10
Evidence quality 3/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.