fix(fullnode): reliable rescan completion + self-explaining shielded send errors
Two related fixes for the post-bootstrap "send fails / rescan stuck at 99%" trap: 1) Rescan completion now keys off warmup-end. A -rescan runs entirely inside daemon warmup (every RPC returns -28 until it finishes), so warmup completing IS the rescan completing. The old detectors relied on getrescaninfo (which some daemons answer with "Method not found") or a "Done rescanning"/bench log line the daemon may never print, leaving the status bar stuck at 99% — so users killed the rescan before it finished. When warmup ends and a rescan was confirmed active, clear the rescan state, flip to 100%, refresh history/balance, and toast completion. 2) z_sendmany failures that mean stale shielded note data (shielded-requirements-not-met, missing sapling anchor, invalid sapling spend proof, bad-txns-sapling-*) now append a plain-language hint telling the user to run a full rescan, instead of surfacing only the raw daemon string. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1293,6 +1293,7 @@ void I18n::loadBuiltinEnglish()
|
||||
strings_["send_tx_sent"] = "Transaction sent!";
|
||||
strings_["send_tx_success"] = "Transaction sent successfully!";
|
||||
strings_["send_status_unconfirmed"] = "Transaction status could not be confirmed";
|
||||
strings_["send_err_needs_rescan"] = "Your wallet's shielded note data is out of date with the blockchain (this happens after a bootstrap or reindex). Run a full rescan via Settings -> Rescan Blockchain and let it finish completely, then try sending again.";
|
||||
strings_["send_txid_copied"] = "TxID copied to clipboard";
|
||||
strings_["send_txid_label"] = "TxID: %s";
|
||||
strings_["send_valid_shielded"] = "Valid shielded address";
|
||||
|
||||
Reference in New Issue
Block a user