diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/nostr.js | 17 | ||||
| -rw-r--r-- | src/routes/(app)/+layout.svelte | 2 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/(profile)/+page.svelte | 5 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/generate/+page.svelte | 13 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/messages/+page.svelte | 1 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/[...tab]/+page.svelte | 4 | ||||
| -rw-r--r-- | src/routes/(app)/[username]/settings/[...tab]/_security.svelte | 7 |
7 files changed, 16 insertions, 33 deletions
diff --git a/src/lib/nostr.js b/src/lib/nostr.js index 66f3bd3a..7af0cef8 100644 --- a/src/lib/nostr.js +++ b/src/lib/nostr.js @@ -1,3 +1,4 @@ +import { hexToUint8Array } from "uint8array-extras"; import { get } from "svelte/store"; import { Buffer } from "buffer"; import { fail, wait, post, stretch } from "$lib/utils"; @@ -84,7 +85,9 @@ function typedArrayToBuffer(array) { export let getPrivateKey = async (user) => { let { nsec, username, salt } = user; - let privkey = privateKeyFromSeedWords(await getMnemonic(user)); + let privkey = hexToUint8Array( + privateKeyFromSeedWords(await getMnemonic(user)) + ); if (nsec) { let decrypted = nip49decrypt(nsec, await getPassword()); @@ -135,17 +138,7 @@ export let send = (event) => { }; let getPassword = async () => { - let password = get(pw); - - if (!password) passwordPrompt.set(true); - else { - try { - await post("/password", { password }); - } catch (e) { - passwordPrompt.set(true); - } - } - + if (!get(pw)) passwordPrompt.set(true); await wait(() => !!get(pw)); return get(pw); }; diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index d33aa193..07f8a2a1 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -99,7 +99,7 @@ }); </script> -{#if browser && $passwordPrompt} +{#if browser && user && $passwordPrompt} <Password {user} /> {/if} diff --git a/src/routes/(app)/[username]/(profile)/+page.svelte b/src/routes/(app)/[username]/(profile)/+page.svelte index c52009a7..9dd968b6 100644 --- a/src/routes/(app)/[username]/(profile)/+page.svelte +++ b/src/routes/(app)/[username]/(profile)/+page.svelte @@ -22,7 +22,7 @@ let ready; e.subscribe(async (event) => { - if (!(event && ready)) return; + if (!(browser && event && ready)) return; if ( event.recipient?.id === user.id && !~latest.findIndex((m) => m.id === event.id) @@ -43,7 +43,7 @@ let initialize = async (p) => { let i = 0; ready = false; - if (!p || !user) return; + if (!(browser && user)) return; while (i < messages.length) { let event = messages[i]; i++; @@ -54,6 +54,7 @@ event.author.id === user.id ? event.recipient?.pubkey : event.author.pubkey; + if (!keys.has(k)) { keys.add(k); event.content = await decrypt({ event, user }); diff --git a/src/routes/(app)/[username]/generate/+page.svelte b/src/routes/(app)/[username]/generate/+page.svelte index b9b077a3..767b7545 100644 --- a/src/routes/(app)/[username]/generate/+page.svelte +++ b/src/routes/(app)/[username]/generate/+page.svelte @@ -4,7 +4,7 @@ import { goto, invalidate } from "$app/navigation"; import Pin from "$comp/Pin.svelte"; import Spinner from "$comp/Spinner.svelte"; - import { loginRedirect, pin, password, passwordPrompt } from "$lib/store"; + import { loginRedirect, pin, password } from "$lib/store"; import { generate } from "$lib/nostr"; import { browser } from "$app/environment"; @@ -20,17 +20,6 @@ return; } - console.log("PASSWORRRRD", $password); - if (!$password) $passwordPrompt = true; - - try { - await post("/password", { password: $password }); - } catch (e) { - $passwordPrompt = true; - } - - await wait(() => $password); - try { await generate(user); } catch (e) { diff --git a/src/routes/(app)/[username]/messages/+page.svelte b/src/routes/(app)/[username]/messages/+page.svelte index 263f7294..48855a26 100644 --- a/src/routes/(app)/[username]/messages/+page.svelte +++ b/src/routes/(app)/[username]/messages/+page.svelte @@ -41,7 +41,6 @@ $: initialize($password); let initialize = async (p) => { - if (!p) return; await Promise.all( messages.map( async (event) => (event.message = await decrypt({ event, user })) diff --git a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte index 383785ec..819d4e80 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/+page.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/+page.svelte @@ -12,7 +12,7 @@ import { avatar, banner, password, pin } from "$lib/store"; import { upload } from "$lib/upload"; import { page } from "$app/stores"; - import { sign, send, reEncryptEntropy } from "$lib/nostr"; + import { sign, send, reEncryptEntropy, setNsec } from "$lib/nostr"; import { invalidateAll } from "$app/navigation"; import Account from "./_account.svelte"; @@ -77,6 +77,8 @@ submitting = true; let data = new FormData(formElement); + if (data.get("newNsec")) setNsec(user, data.get("newNsec")) + if (data.get("password")) { try { data.set( diff --git a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte index 7151f619..c57b5262 100644 --- a/src/routes/(app)/[username]/settings/[...tab]/_security.svelte +++ b/src/routes/(app)/[username]/settings/[...tab]/_security.svelte @@ -1,5 +1,5 @@ <script> - import { getMnemonic, getNsec, setNsec } from "$lib/nostr"; + import { getMnemonic, getNsec } from "$lib/nostr"; import { tick } from "svelte"; import { t } from "$lib/translations"; import Pin from "$comp/Pin.svelte"; @@ -17,7 +17,7 @@ importing, locked, mnemonic, - newNsec = "nsec13wekuqstlsyfrzm369yh6vjaphslq5pq9kze74acqqynjm8lvpms4qzsx9", + newNsec, nsec, old, otp, @@ -323,10 +323,9 @@ {#if importing} <input - name="nsec" + name="newNsec" bind:value={newNsec} placeholder="nsec..." - on:blur={() => setNsec(user, newNsec)} /> {/if} |
