From c67f7d46412dd9cfeec324797c9e55309a2a8ce5 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 3 Oct 2022 12:03:36 -0700 Subject: lightning send improvements --- src/routes/send/+page.server.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/routes/send/+page.server.js (limited to 'src/routes/send/+page.server.js') diff --git a/src/routes/send/+page.server.js b/src/routes/send/+page.server.js new file mode 100644 index 00000000..837060f2 --- /dev/null +++ b/src/routes/send/+page.server.js @@ -0,0 +1,39 @@ +import validate from 'bitcoin-address-validation'; +import bip21 from 'bip21'; +import { get } from '$lib/utils'; +import { invalid, redirect } from "@sveltejs/kit"; + +export const actions = { + default: async ({ request }) => { + const values = await request.formData(); + const t = values.get('text'); + console.log('parsing', t); + if (!t) return; + + // lightning + if (t.startsWith('ln')) { + throw redirect(303, `/send/lightning/${t}`); + } + + // bitcoin + if (validate(t)) { + console.log('bitcoin'); + throw redirect(303, `/send/bitcoin/${t}`); + } + + // ln address + if (t.includes('@') && t.includes('.')) { + console.log('ln address'); + let [name, domain] = t.split('@'); + try { + let lnurl = await get(`/encode?domain=${domain}&name=${name}`); + console.log('lnurl', lnurl); + } catch (e) {} + } + + // user + console.log('username'); + + return invalid(403, { error: 'Failed to parse destination' }); + } +}; -- cgit v1.2.3