diff options
| author | Adam Soltys <[email protected]> | 2024-02-15 10:57:58 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-02-15 10:57:58 -0800 |
| commit | 36e967d2c124c93734f80cd94ce0a2efb0d3d21f (patch) | |
| tree | a9f97758ce2a619c6d7af8aca35b6828ebc8717e | |
| parent | 43d147172330703101592ec7821053b4111b4f62 (diff) | |
| download | coinos-ui-36e967d2c124c93734f80cd94ce0a2efb0d3d21f.tar.gz coinos-ui-36e967d2c124c93734f80cd94ce0a2efb0d3d21f.zip | |
persist key
| -rw-r--r-- | src/lib/nostr.js | 20 |
1 files changed, 14 insertions, 6 deletions
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) => { |
