fix(lite): welcome "Restore from seed" now prompts for the seed inline

On first run the lite welcome screen's "Restore from seed" button only showed a
hint toast and bounced the user to Settings, dismissing the welcome with no
wallet open — it never prompted for a seed. Add a real restore step to the
welcome wizard: a seed-phrase field + optional birthday height, which calls
beginRestoreWalletAsync() (same server failover as create/open), shows
"Restoring…" progress, then completes (wallet syncs) or surfaces the error to
retry. The seed buffer is wiped on success/Back and in finish().

(The Settings -> Lite -> Restore path already prompted for a seed; this fixes
the first-run welcome path.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-16 02:11:19 -05:00
parent d54c7f9e11
commit 0e2c786ebf
2 changed files with 87 additions and 4 deletions

View File

@@ -655,6 +655,12 @@ void I18n::loadBuiltinEnglish()
strings_["lite_welcome_created"] = "Wallet created — back up your recovery phrase now in Settings → Backup & keys";
strings_["lite_welcome_restore_hint"] = "Restore your wallet under Settings → Lite wallet request";
strings_["lite_welcome_create_failed"] = "Could not create wallet";
strings_["lite_restore_title"] = "Restore from seed phrase";
strings_["lite_restore_intro"] = "Enter your recovery seed phrase. The wallet will be restored and then synced from the lite server.";
strings_["lite_restore_seed_label"] = "Seed phrase (words separated by spaces)";
strings_["lite_restore_birthday_label"] = "Birthday block (optional — 0 scans from the start, slower)";
strings_["lite_restore_btn"] = "Restore wallet";
strings_["lite_restore_ok"] = "Wallet restored — syncing from the lite server…";
// Lite send-time unlock prompt.
strings_["lite_unlock_title"] = "Unlock wallet";
strings_["lite_unlock_msg"] = "Enter your passphrase to unlock the wallet for spending.";