fix(lite): keep a rejected import key out of the log and Settings
The backend's error for a key it doesn't recognize repeats the key
("'<key>' was not recognized as either a spending key or a viewing
key"). Import passed that text on as its error, so a mistyped private
key was written to the lite log (shown in the Console tab) and to the
Settings status line. A failed import now carries a fixed reason
(unrecognized format, wallet locked, key already exists, could not be
decoded, or rejected), which is all the log records. Settings shows
"Couldn't import the key — check it, unlock the wallet (if encrypted)
and try again." instead, translated in all eight languages.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1916,8 +1916,9 @@ void RenderSettingsPage(App* app) {
|
||||
} else {
|
||||
s_settingsState.lite_backup_status = TR("lite_working");
|
||||
app->liteWallet()->importKeyAsync(liteKey, [](const wallet::LiteImportResult& r) {
|
||||
// Generic text: the reason (non-secret) is in the lite log.
|
||||
s_settingsState.lite_backup_status =
|
||||
r.ok ? std::string(TR("lite_key_imported")) : r.error;
|
||||
r.ok ? TR("lite_key_imported") : TR("lite_key_import_failed");
|
||||
});
|
||||
sodium_memzero(s_settingsState.lite_import_key, sizeof(s_settingsState.lite_import_key));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user