aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/nostr.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/nostr.js')
-rw-r--r--src/lib/nostr.js17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/lib/nostr.js b/src/lib/nostr.js
index 7523e97f..3f112788 100644
--- a/src/lib/nostr.js
+++ b/src/lib/nostr.js
@@ -2,28 +2,19 @@ import { get } from 'svelte/store';
import { entropyToMnemonic, mnemonicToSeedSync } from 'bip39';
import { Buffer } from 'buffer';
import { bech32m } from 'bech32';
-import { bip32, post, stretch } from '$lib/utils';
+import { bip32, wait, post, stretch } from '$lib/utils';
import { calculateId, signId } from 'nostr';
import { password as pw, passwordPrompt } from '$lib/store';
const { decode, fromWords } = bech32m;
-let signing;
-
-pw.subscribe((nv, ov) => {
- if (!signing) return;
- sign(signing);
-});
-
export let sign = async ({ event, user }) => {
- signing = { event, user };
let { cipher, username, salt } = user;
let password = get(pw);
if (!password) {
passwordPrompt.set(true);
- return;
}
try {
@@ -31,9 +22,11 @@ export let sign = async ({ event, user }) => {
} catch (e) {
console.log(e);
passwordPrompt.set(true);
- return;
}
+ await wait(() => !!get(pw));
+ password = get(pw);
+
let mnemonic, key, seed, entropy, child, privkey;
entropy = Buffer.from(
await crypto.subtle.decrypt(
@@ -52,8 +45,6 @@ export let sign = async ({ event, user }) => {
event.id = await calculateId(event);
event.sig = await signId(privkey, event.id);
-
- signing = false;
};
export let send = (event) => {