aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/nostr.js17
-rw-r--r--src/routes/(app)/+layout.svelte2
-rw-r--r--src/routes/(app)/[username]/(profile)/+page.svelte5
-rw-r--r--src/routes/(app)/[username]/generate/+page.svelte13
-rw-r--r--src/routes/(app)/[username]/messages/+page.svelte1
-rw-r--r--src/routes/(app)/[username]/settings/[...tab]/+page.svelte4
-rw-r--r--src/routes/(app)/[username]/settings/[...tab]/_security.svelte7
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}