From cf9ccd673cbbf29d9c9d00c2d379382f0a9c06c0 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 27 Dec 2022 22:49:25 -0800 Subject: show follows and followers --- src/lib/nostr.js | 31 ++++++++++++++++++++++++++++++- src/lib/utils.js | 1 + 2 files changed, 31 insertions(+), 1 deletion(-) (limited to 'src/lib') diff --git a/src/lib/nostr.js b/src/lib/nostr.js index 385c7ac6..7523e97f 100644 --- a/src/lib/nostr.js +++ b/src/lib/nostr.js @@ -1,12 +1,39 @@ +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 { calculateId, signId } from 'nostr'; +import { password as pw, passwordPrompt } from '$lib/store'; const { decode, fromWords } = bech32m; -export let sign = async (event, { cipher, username, salt }, password) => { +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 { + await post('/password', { password }); + } catch (e) { + console.log(e); + passwordPrompt.set(true); + return; + } + let mnemonic, key, seed, entropy, child, privkey; entropy = Buffer.from( await crypto.subtle.decrypt( @@ -25,6 +52,8 @@ export let sign = async (event, { cipher, username, salt }, password) => { event.id = await calculateId(event); event.sig = await signId(privkey, event.id); + + signing = false; }; export let send = (event) => { diff --git a/src/lib/utils.js b/src/lib/utils.js index 43e77022..8b3e8070 100644 --- a/src/lib/utils.js +++ b/src/lib/utils.js @@ -120,6 +120,7 @@ export const info = (m) => { export const login = async (user, cookies) => { let maxAge = 30 * 24 * 60 * 60; + let res = await fetch(base + '/login', { method: 'POST', body: JSON.stringify(user), -- cgit v1.2.3