feat(merge): run per-address consolidation as a paced background job
"Keep in each address" posted one task that called z_mergetoaddress for every batch of every address back to back; each call is a whole-wallet scan under cs_main, and the daemon runs the ops one at a time anyway. It is now an App-owned services::ConsolidationRun: - one RPC at a time; the next merge only after the previous batch left the queue and a gap as long as the last call took (2-120 s); - pauses while the node syncs, the wallet is locked, a send of ours is in progress, or another wallet scan is running; - failures classified: nothing that may have queued is ever resent; a breaker stops after 3 dead addresses or 3 failed ops in a row; - each merge is charged to the scan budget; one re-read and one forced balance at the end; - it keeps running when the dialog closes: a status-bar chip, a run view with progress, the wait reason and a Stop button. The "Into one" merge can no longer be confirmed twice while its call is in flight. fake_dragonxd gains FAKE_SCAN_SECS, FAKE_MERGE_SERIAL and FAKE_MERGE_FAIL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1097,6 +1097,7 @@ fee-input = { width = 150 }
|
||||
utxo-limit-input = { width = 150 }
|
||||
shield-button = { width = 120, font = "button" }
|
||||
cancel-button = { width = 100, font = "button" }
|
||||
list-max-rows = { size = 7 } # address picker / run rows shown before the list scrolls
|
||||
|
||||
[dialogs.request-payment]
|
||||
width = 500.0
|
||||
|
||||
Reference in New Issue
Block a user