mirror of
https://code.gri.mw/GUI/grim.git
synced 2026-07-15 03:08:56 +00:00
2592eadc9f
DELETE: each held identity row gains a trash affordance. Step 1 is a danger card naming the identity, stating the removal is PERMANENT and prominently reminding the user to back it up first (unrecoverable without its nsec or .backup); step 2 is the existing wallet-password modal, which executes Wallet::delete_nostr_identity. Delete drops the entry from the held-identity index, removes its on-disk encrypted file, and rebuilds the service without it, so its pubkey leaves the multi-pubkey gift-wrap subscription and its key leaves the unlocked in-memory set. The shared balance and all other identities are untouched. Edge cases: the LAST identity can never be deleted (the trash only renders with more than one held); deleting the ACTIVE identity promotes a survivor to active first; deleting the legacy primary (identity.json) promotes a survivor INTO identity.json so init_nostr's fallback and an older build's rollback anchor still resolve, never leaving a hole that would mint a fresh key. IMPORT: the add panel's "Import nsec" is now just "Import" and offers both a .backup file picker and a paste-an-nsec field. The .backup path reuses the same from_encrypted_backup + re-encrypt-under-this-wallet's-password flow as the existing identity import (name and history restored), through the same NIP-49 encrypted store; the pasted-nsec path is unchanged. New strings in all six locales; drift green.