aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-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) => {