aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-02-15 10:57:58 -0800
committerAdam Soltys <[email protected]>2024-02-15 10:57:58 -0800
commit36e967d2c124c93734f80cd94ce0a2efb0d3d21f (patch)
treea9f97758ce2a619c6d7af8aca35b6828ebc8717e
parent43d147172330703101592ec7821053b4111b4f62 (diff)
downloadcoinos-ui-36e967d2c124c93734f80cd94ce0a2efb0d3d21f.tar.gz
coinos-ui-36e967d2c124c93734f80cd94ce0a2efb0d3d21f.zip
persist key
-rw-r--r--src/lib/nostr.js20
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) => {