aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/send
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-11-05 11:53:08 -0700
committerAdam Soltys <[email protected]>2022-11-05 11:53:27 -0700
commitd76060a5dc4f9f3da6d9cea517dff48995fd5818 (patch)
treedbeef979157bdbb104526ab16e925176871df1b2 /src/routes/(app)/send
parent2a2b3d7074e8a784e5673699af2143fdcb01e728 (diff)
downloadcoinos-ui-invoice-requests.tar.gz
coinos-ui-invoice-requests.zip
handle lnurl pay requestsinvoice-requests
Diffstat (limited to 'src/routes/(app)/send')
-rw-r--r--src/routes/(app)/send/[...text]/+page.server.js21
1 files changed, 14 insertions, 7 deletions
diff --git a/src/routes/(app)/send/[...text]/+page.server.js b/src/routes/(app)/send/[...text]/+page.server.js
index b909ab4d..4668cb4f 100644
--- a/src/routes/(app)/send/[...text]/+page.server.js
+++ b/src/routes/(app)/send/[...text]/+page.server.js
@@ -3,8 +3,10 @@ import bip21 from 'bip21';
import { get, post } from '$lib/utils';
import { invalid, redirect } from '@sveltejs/kit';
-let parse = async (t) => {
+let parse = async (t, r) => {
if (!t) return;
+ if (t.includes(':')) t = t.split(':')[1];
+
let user, uuid;
// lightning
@@ -32,11 +34,16 @@ let parse = async (t) => {
// ln address
if (t.includes('@') && t.includes('.')) {
let [name, domain] = t.split('@');
- try {
- let lnurl = await get(`/encode?domain=${domain}&name=${name}`);
- } catch (e) {}
+ if (domain === r.host) t = name;
+ else {
+ try {
+ t = await get(`/encode?domain=${domain}&name=${name}`);
+ } catch (e) {}
+ }
}
+ if (t.toLowerCase().startsWith('lnurl')) throw redirect(307, `/lnurl/${t}`);
+
// user
try {
user = await get(`/users/${t}`);
@@ -45,15 +52,15 @@ let parse = async (t) => {
if (user) throw redirect(303, `/send/user/${t}`);
};
-export async function load({ params }) {
+export async function load({ params, request }) {
let { text } = params;
- await parse(text);
+ await parse(text, request);
}
export const actions = {
default: async ({ request }) => {
const form = await request.formData();
- await parse(form.get('text'));
+ await parse(form.get('text'), request);
return invalid(403, { error: 'Does not compute, try again' });
}