From 36e967d2c124c93734f80cd94ce0a2efb0d3d21f Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Thu, 15 Feb 2024 10:57:58 -0800 Subject: persist key --- src/lib/nostr.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/lib') diff --git a/src/lib/nostr.js b/src/lib/nostr.js index 4ddfad98..5de08199 100644 --- a/src/lib/nostr.js +++ b/src/lib/nostr.js @@ -1,3 +1,4 @@ +import { browser } from "$app/environment"; import { hexToUint8Array } from "uint8array-extras"; import { get } from "svelte/store"; import { Buffer } from "buffer"; @@ -85,15 +86,22 @@ function typedArrayToBuffer(array) { } export let getPrivateKey = async (user) => { + let k; + if (browser) { + k = localStorage.getItem("nsec"); + if (k) { + return nip19.decode(k).data; + } + } + let { nsec, username, salt } = user; - let privkey = hexToUint8Array( - privateKeyFromSeedWords(await getMnemonic(user)) - ); if (nsec) { - let decrypted = nip49decrypt(nsec, await getPassword()); - return decrypted; - } else return privkey; + k = nip49decrypt(nsec, await getPassword()); + } else k = hexToUint8Array(privateKeyFromSeedWords(await getMnemonic(user))); + + localStorage.setItem("nsec", nip19.nsecEncode(k)); + return k; }; export let getMnemonic = async (user) => { -- cgit v1.2.3