Skip to content

refactor coin filtering, combine frozen and coincontrol into new class CoinFilter - #10918

Open
accumulator wants to merge 5 commits into
spesmilo:masterfrom
accumulator:coincontrol_frozen_refactor
Open

accumulator wants to merge 5 commits into
spesmilo:masterfrom
accumulator:coincontrol_frozen_refactor

Conversation

@accumulator

@accumulator accumulator commented Aug 31, 2026 •

Copy link
Copy Markdown
Member

refactor coin filtering, combine frozen and coincontrol into new class CoinFilter.

Currently, the code for coin control is separate from frozen addresses/coins, and
an active coin control selection must be filtered against the frozen list by the caller
the moment the selection is used.

This commit is an attempt to unify the filtering, so filtering works in predictable
ways everywhere (and can e.g. be more easily be extended in the future, if needed)

a CoinFilter instance is owned by each wallet, and takes care of managing the list
of frozen coins/addresses and the coin control set. Upon query, additional filters like
nonlocal_only, confirmed_only are applied.

CoinFilter emits callbacks when the set of frozen coins/addresses is changed, or when
coin control selection changes.

@accumulator
accumulator force-pushed the coincontrol_frozen_refactor branch from db572f7 to e1f5e52 Compare August 31, 2026 15:30
@accumulator accumulator added the topic-wallet 👛 related to wallet.py, or maybe address_synchronizer.py/coinchooser.py label Aug 31, 2026
@accumulator
accumulator force-pushed the coincontrol_frozen_refactor branch 3 times, most recently from 26c145d to f65ca30 Compare September 4, 2026 09:02
@accumulator
accumulator marked this pull request as ready for review September 4, 2026 15:19
@accumulator accumulator mentioned this pull request Sep 6, 2026
@accumulator accumulator linked an issue Sep 7, 2026 that may be closed by this pull request
@accumulator
accumulator force-pushed the coincontrol_frozen_refactor branch from f65ca30 to 6393c83 Compare September 8, 2026 07:13
…s CoinFilter.

Currently, the code for coin control is separate from frozen addresses/coins, and
an active coin control selection must be filtered against the frozen list by the caller
the moment the selection is used.

This commit is an attempt to unify the filtering, so filtering works in predictable
ways everywhere (and can e.g. be more easily be extended in the future, if needed)

a CoinFilter instance is owned by each wallet, and takes care of managing the list
of frozen coins/addresses and the coin control set. Upon query, additional filters like
nonlocal_only, confirmed_only are applied.
@accumulator
accumulator force-pushed the coincontrol_frozen_refactor branch from 6393c83 to d20f05e Compare September 9, 2026 14:32
@accumulator accumulator added this to the 4.9.0 milestone Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

topic-wallet 👛 related to wallet.py, or maybe address_synchronizer.py/coinchooser.py

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AssertionError:

1 participant