feat(lite): mirror errors into the lite Console (copyable), not just toasts
Lite send/shield, unlock, and key-import failures were shown only as transient toasts — impossible to copy. Route them through liteLog() so they also appear in the lite Console (which has a Copy button), alongside the lifecycle/open/sync errors the controller already logs: - send/shield broadcast failures (App broadcast-result delivery) - wallet unlock failure - key import failure (controller; logs the error text only, never the key) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -532,6 +532,10 @@ void App::update()
|
||||
// Deliver a completed async send/shield result to the waiting send_tab callback.
|
||||
wallet::LiteBroadcastResult broadcast;
|
||||
if (lite_wallet_->takeBroadcastResult(broadcast)) {
|
||||
// Mirror failures into the lite Console (copyable) in addition to the toast the send UI
|
||||
// shows — transient toasts are easy to miss and impossible to copy.
|
||||
if (!broadcast.ok)
|
||||
wallet::liteLog("Send/shield failed: " + broadcast.error);
|
||||
if (lite_send_callback_) {
|
||||
lite_send_callback_(broadcast.ok, broadcast.ok ? broadcast.txid : broadcast.error);
|
||||
lite_send_callback_ = nullptr;
|
||||
@@ -2243,7 +2247,10 @@ void App::renderLiteUnlockPrompt()
|
||||
const bool ok = lite_wallet_->unlockWallet(pass);
|
||||
sodium_memzero(pass, sizeof(pass));
|
||||
if (ok) ui::Notifications::instance().success(TR("lite_unlock_ok"), 5.0f);
|
||||
else ui::Notifications::instance().error(TR("lite_unlock_failed"));
|
||||
else {
|
||||
wallet::liteLog(std::string("Unlock failed: ") + TR("lite_unlock_failed"));
|
||||
ui::Notifications::instance().error(TR("lite_unlock_failed"));
|
||||
}
|
||||
lite_unlock_prompt_ = false;
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
|
||||
@@ -896,6 +896,7 @@ LiteImportResult LiteWalletController::importKey(std::string spendingOrViewingKe
|
||||
LiteImportResult alt = runImport(transparentFirst ? "import" : "timport");
|
||||
if (alt.ok) out = alt;
|
||||
}
|
||||
if (!out.ok) liteLog("Key import failed: " + out.error); // error text only — never the key
|
||||
secureWipeLiteSecret(spendingOrViewingKey); // wipe our copy after both attempts
|
||||
return out;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user