feat(bootstrap,validate): Retry keeps the mirror; Validate works offline

- Bootstrap: Retry now reuses the source the user actually started (was always
  the default), and a "Try mirror" button offers the alternate server on
  failure (s_lastUrl remembered on start, cleared on a fresh Confirm).
- Validate Address: classification + checksum are local, so the dialog no
  longer requires a node connection — offline/lite now validate and show the
  type, with ownership reported as "Unknown — node offline / not checkable in
  the lite wallet" instead of a dead "not connected" screen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-10-18 13:05:40 -05:00
co-authored by Claude Opus 4.8
parent f3f0b32a48
commit 7cea9b7339
3 changed files with 29 additions and 15 deletions
+3
View File
@@ -688,6 +688,7 @@ void I18n::loadBuiltinEnglish()
strings_["wiz_bootstrap_desc"] = "Download a blockchain bootstrap to dramatically speed up initial sync.\n\nYour existing wallet.dat will NOT be modified or replaced.";
strings_["wiz_skip"] = "Skip";
strings_["wiz_bootstrap_failed"] = "Bootstrap failed";
strings_["bootstrap_try_mirror"] = "Try mirror";
strings_["wiz_download_failed"] = "Download Failed";
strings_["wiz_ext_daemon_running"] = "External daemon running";
strings_["wiz_ext_daemon_warning"] = "It must be stopped before downloading a bootstrap, otherwise chain data could be corrupted.";
@@ -2723,6 +2724,8 @@ void I18n::loadBuiltinEnglish()
strings_["validate_invalid"] = "INVALID";
strings_["validate_is_mine"] = "This wallet owns this address";
strings_["validate_not_mine"] = "Not owned by this wallet";
strings_["validate_ownership_unknown_offline"] = "Unknown — node offline";
strings_["validate_ownership_unknown_lite"] = "Unknown — not checkable in the lite wallet";
strings_["validate_ownership"] = "Ownership:";
strings_["validate_results"] = "Results:";
strings_["validate_results_placeholder"] = "Results will appear here";