diff options
| author | Adam Soltys <[email protected]> | 2022-10-03 12:03:36 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-10-03 12:03:36 -0700 |
| commit | c67f7d46412dd9cfeec324797c9e55309a2a8ce5 (patch) | |
| tree | d738d1965c5b2f7e569b54fbe3bd6b8767ce7929 /src/routes/send/+page.server.js | |
| parent | 1792eb0ce5a2ff127e9f3c3bce392749f20b3f86 (diff) | |
| download | coinos-ui-c67f7d46412dd9cfeec324797c9e55309a2a8ce5.tar.gz coinos-ui-c67f7d46412dd9cfeec324797c9e55309a2a8ce5.zip | |
lightning send improvements
Diffstat (limited to 'src/routes/send/+page.server.js')
| -rw-r--r-- | src/routes/send/+page.server.js | 39 |
1 files changed, 39 insertions, 0 deletions
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' }); + } +}; |
