feat(settings): split import into separate key + viewing-key buttons
Backup & Data now has two distinct import actions instead of one auto-detecting dialog: - "Import Key" imports a spending key (transparent WIF or shielded z-spending key) with the strong "grants access to funds" warning. - "Import Viewing Key" imports a watch-only shielded viewing key (zxviews…) with a milder eye/watch-only note and an optional "scan from block height" field — z_importviewingkey accepts a start height, so watching a recent address needn't rescan the whole chain. The shared Material dialog (renderImportKeyDialog) branches on import_view_mode_: title, warning tone, field label, the live type indicator, and the recognition guard. A key valid for the *other* button (e.g. a spending key pasted into the viewing-key dialog) now shows a redirect hint rather than a generic "unrecognized" error. importPrivateKey gains a startHeight arg, appended to the shielded import RPCs (z_importviewingkey / z_importkey) and ignored for transparent WIF (importprivkey has no start-height param). The scan-height buffer is wiped on open/close alongside the key buffer. i18n: 9 new keys (button label + tooltip, viewing title/note/field, scan label/hint, two wrong-type redirect hints) with translations for all 8 languages; CJK subset rebuilt (+1 glyph). A modal-import-viewkey sweep surface is added for the viewing-mode dialog. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -429,6 +429,7 @@ void I18n::loadBuiltinEnglish()
|
||||
strings_["settings_merge_to_address"] = "Merge to Address...";
|
||||
strings_["settings_clear_ztx"] = "Clear Z-Tx History";
|
||||
strings_["settings_import_key"] = "Import Key...";
|
||||
strings_["settings_import_viewkey"] = "Import Viewing Key...";
|
||||
strings_["settings_export_key"] = "Export Key...";
|
||||
strings_["settings_export_all"] = "Export All...";
|
||||
strings_["settings_backup"] = "Backup...";
|
||||
@@ -731,6 +732,7 @@ void I18n::loadBuiltinEnglish()
|
||||
|
||||
// Settings: additional tooltips (keys/data row)
|
||||
strings_["tt_import_key"] = "Import a private key (zkey or tkey) into this wallet";
|
||||
strings_["tt_import_viewkey"] = "Import a shielded viewing key to watch an address (read-only)";
|
||||
strings_["tt_export_key"] = "Export the private key for the selected address";
|
||||
strings_["tt_export_all"] = "Export all private keys to a file";
|
||||
strings_["tt_backup"] = "Create a backup of your wallet.dat file";
|
||||
@@ -1358,6 +1360,14 @@ void I18n::loadBuiltinEnglish()
|
||||
strings_["import_key_done"] = "Imported. Wallet is rescanning.";
|
||||
strings_["import_key_address"] = "Address:";
|
||||
strings_["import_key_import"] = "Import";
|
||||
// Viewing-key (watch-only) import — separate button + dialog mode.
|
||||
strings_["import_viewkey_title"] = "Import Viewing Key";
|
||||
strings_["import_viewkey_note"] = "Watch-only: a viewing key reveals an address's balance and transactions but cannot spend its funds.";
|
||||
strings_["import_viewkey_field"] = "Viewing key";
|
||||
strings_["import_key_wrong_type"] = "This looks like a viewing key. Use \"Import Viewing Key\" instead.";
|
||||
strings_["import_viewkey_wrong_type"] = "This looks like a spending key. Use \"Import Key\" instead.";
|
||||
strings_["import_viewkey_scan_label"] = "Scan from block height (optional)";
|
||||
strings_["import_viewkey_scan_hint"] = "0 = rescan from the start";
|
||||
|
||||
// --- Key Export Dialog ---
|
||||
strings_["key_export_fetching"] = "Fetching key from wallet...";
|
||||
|
||||
Reference in New Issue
Block a user