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:
@@ -1183,6 +1183,22 @@
|
||||
"merge_max_inputs": "每批最大输入数",
|
||||
"merge_no_spendable": "暂无可合并的可用输入。",
|
||||
"merge_progress": "正在合并…这可能需要几分钟。您可以关闭此窗口。",
|
||||
"merge_run_aborted_toast": "节点连接已重置,合并已停止。再次运行以继续。",
|
||||
"merge_run_busy": "正在进行合并。请等待其完成,或先将其停止。",
|
||||
"merge_run_chip_fmt": "合并中 %d/%d",
|
||||
"merge_run_err_timeout": "节点未及时响应;该批次可能仍在队列中。",
|
||||
"merge_run_halted_fmt": "多次失败后合并已停止:%s",
|
||||
"merge_run_migration_pending": "请先完成或取消助记词迁移,再进行合并。",
|
||||
"merge_run_progress_fmt": "正在合并… 第 %d 批(共约 %d 批),已合并 %d 张票据。可以关闭此窗口,合并会在后台继续。",
|
||||
"merge_run_start_failed": "无法开始合并——节点未连接。",
|
||||
"merge_run_status_not_run": "%s——未合并(%d 张票据)",
|
||||
"merge_run_status_waiting": "%s——等待中(%d 张票据)",
|
||||
"merge_run_stop": "停止",
|
||||
"merge_run_stopped_toast": "合并已停止。再次运行以合并其余部分。",
|
||||
"merge_run_stopping": "已发送的批次完成后停止…",
|
||||
"merge_run_wait_batch": "正在间隔各批次,以保持节点响应…",
|
||||
"merge_run_wait_send": "已暂停,等待您的待处理交易完成。",
|
||||
"merge_run_wait_sync": "已暂停:节点仍在同步。",
|
||||
"merge_scope_failed_fmt": "无法读取您的输入:%s",
|
||||
"merge_scope_fmt": "%d 笔透明输入 + %d 笔屏蔽输入 ・ 约 %s DRGX 可用",
|
||||
"merge_scope_loading": "正在检查您的输入…",
|
||||
|
||||
Reference in New Issue
Block a user