diff options
| author | Adam Soltys <[email protected]> | 2024-10-04 09:29:21 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-10-10 12:17:05 -0700 |
| commit | 372c635714f6e7de8a0da135980697b49f207f2c (patch) | |
| tree | 5c5af794a4ca18b0919cc363f65fd398bc051b8b /routes | |
| parent | 5127adbb54b7db6eccf27cc4e498d9dfcdb7a7a4 (diff) | |
| download | coinos-server-372c635714f6e7de8a0da135980697b49f207f2c.tar.gz coinos-server-372c635714f6e7de8a0da135980697b49f207f2c.zip | |
wip socket communication
Diffstat (limited to 'routes')
| -rw-r--r-- | routes/nostr.ts | 37 | ||||
| -rw-r--r-- | routes/users.ts | 18 |
2 files changed, 28 insertions, 27 deletions
diff --git a/routes/nostr.ts b/routes/nostr.ts index 9bbff33d..d3c293c6 100644 --- a/routes/nostr.ts +++ b/routes/nostr.ts @@ -27,8 +27,7 @@ export default { let { params: { pubkey }, } = req; - let uid = await g(`user:${pubkey}`); - let user = await g(`user:${uid}`); + let user = await getUser(pubkey); if (!user) user = { @@ -121,24 +120,29 @@ export default { if (tagsonly) return res.send(tags); let follows = []; + + console.log("L", tags.length); + for (let f of tags) { let [_, pubkey] = f; + let user = await getUser(pubkey); - q(`${pubkey}:profile:f1`, { - limit: 1, - kinds: [0], - authors: [pubkey], - }).catch(nada); - - let uid = await g(`user:${pubkey}`); - let user = await g(`user:${uid}`); + if (!(user && user.updated)) { + console.log("Q", pubkey) + q(`${pubkey}:profile:f1`, { + limit: 1, + kinds: [0], + authors: [pubkey], + }).catch(nada); + } - if (!user) + if (!user) { user = { username: pubkey.substr(0, 6), pubkey, anon: true, }; + } follows.push(user); } @@ -172,17 +176,14 @@ export default { ).catch(nada); for (let pubkey of pubkeys) { - let uid = await g(`user:${pubkey}`); - let user = await g(`user:${uid}`); - if (!user || !user.updated) { - await q(`${pubkey}:profile:f2`, { + let user = await getUser(pubkey); + + if (!user?.updated) { + q(`${pubkey}:profile:f2`, { limit: 1, kinds: [0], authors: [pubkey], }).catch(nada); - - uid = await g(`user:${pubkey}`); - user = await g(`user:${uid}`); } if (!user) diff --git a/routes/users.ts b/routes/users.ts index 6b18da28..18ef7e3b 100644 --- a/routes/users.ts +++ b/routes/users.ts @@ -11,12 +11,11 @@ import register from "$lib/register"; import { requirePin } from "$lib/auth"; import { v4 } from "uuid"; import { reconcile, types } from "$lib/payments"; -import { bech32 } from "bech32"; import { mail, templates } from "$lib/mail"; import upload from "$lib/upload"; import rpc from "@coinos/rpc"; - -let { encode, decode, fromWords, toWords } = bech32; +import { nip19 } from "nostr-tools"; +import { hex } from "@scure/base"; export default { upload, @@ -26,8 +25,7 @@ export default { try { user.balance = await g(`balance:${user.id}`); user.prompt = !!user.prompt; - if (user.pubkey) - user.npub = encode("npub", toWords(Buffer.from(user.pubkey, "hex"))); + if (user.pubkey) user.npub = nip19.npubEncode(user.pubkey); res.send(pick(user, whitelist)); } catch (e) { @@ -80,7 +78,7 @@ export default { try { if (key.startsWith("npub")) { try { - key = Buffer.from(fromWords(decode(key).words)).toString("hex"); + key = hex.encode(nip19.decode(key).data as Uint8Array); } catch (e) {} } @@ -115,8 +113,7 @@ export default { "username", ]; - if (user.pubkey) - user.npub = encode("npub", toWords(Buffer.from(user.pubkey, "hex"))); + if (user.pubkey) user.npub = nip19.npubEncode(user.pubkey); user.prompt = !!user.prompt; res.send(pick(user, whitelist)); @@ -193,6 +190,9 @@ export default { let { confirm, password, pin, newpin, pubkey, username } = body; + console.log("PK", pubkey); + console.log("SK", body.nsec); + if (user.pin && !(pin === user.pin)) fail("Pin required"); if (typeof newpin !== "undefined" && newpin.length === 6) user.pin = newpin; @@ -629,7 +629,7 @@ export default { wallet_name: id, descriptors: true, disable_private_keys: true, - load_on_startup: true + load_on_startup: true, }); node = rpc({ ...config[type], wallet: id }); |
