You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Untangle CoinJoinManager and CoinJoinClient plus their relation to the so called Music Box.
TL;DR
This refactor aims to make CoinJoinManager (CJM) and CoinJoinClient (CJC) more readable especially clarifying the code path that describes the steps of wasabi-client going through to achieve a successful CJ. Starting from the complex decision if the wallet should even start coinjoining, coinselection, which round to register, until the end when the client made a successful CJ.
Details on Specification, Scope, and Features
Motivation
The code got very complex since 2.0 release, thus became error-prone to touch it.
Code parts and logic became fragmented. Hard to read the code.
Maintenance is hard but it is required because we have many minor/major issues with: coinselection, start/stop cj, when to stop mixing, when to start mixing, how to select coins, and how to select rounds.
Rationale
I start with organization, files and code parts are scattered everywhere. Then separate the logic of
Decision to mix or not.
Which coins to mix?
Which round to go?
Maybe more if I find logically separatable things during the organization.
This will also include the clarification of how the switches like stopwhenallmix or plebstop, etc will work.
Add tests for the separated parts. If I have more time then sort out notifications those are controlling the music box messages.
Backward Compatibility
It should not be affected.
Subtasks
Files and folders
Move the related files into a specific folder.
Move subclasses and records to separate files, and organize the existing code.
Preamble
Untangle CoinJoinManager and CoinJoinClient plus their relation to the so called Music Box.
TL;DR
This refactor aims to make CoinJoinManager (CJM) and CoinJoinClient (CJC) more readable especially clarifying the code path that describes the steps of wasabi-client going through to achieve a successful CJ. Starting from the complex decision if the wallet should even start coinjoining, coinselection, which round to register, until the end when the client made a successful CJ.
Details on Specification, Scope, and Features
Motivation
Rationale
I start with organization, files and code parts are scattered everywhere. Then separate the logic of
This will also include the clarification of how the switches like stopwhenallmix or plebstop, etc will work.
Add tests for the separated parts. If I have more time then sort out notifications those are controlling the music box messages.
Backward Compatibility
It should not be affected.
Subtasks
Related
StopWhenAllMix
: Problems with the concept #12602The text was updated successfully, but these errors were encountered: