aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/send/+page.server.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-10-03 12:03:36 -0700
committerAdam Soltys <[email protected]>2022-10-03 12:03:36 -0700
commitc67f7d46412dd9cfeec324797c9e55309a2a8ce5 (patch)
treed738d1965c5b2f7e569b54fbe3bd6b8767ce7929 /src/routes/send/+page.server.js
parent1792eb0ce5a2ff127e9f3c3bce392749f20b3f86 (diff)
downloadcoinos-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.js39
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' });
+ }
+};