From bcaf17d28fec60b0743040a3a5a361e38583503f Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 27 Jan 2023 21:43:15 -0800 Subject: deal in millisats --- src/components/Lnurlw.svelte | 2 +- src/routes/(app)/ln/[lnurl]/+page.server.js | 20 +++++++++++++++----- src/routes/(app)/ln/[lnurl]/+page.svelte | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/components/Lnurlw.svelte b/src/components/Lnurlw.svelte index dab360aa..f2855b53 100644 --- a/src/components/Lnurlw.svelte +++ b/src/components/Lnurlw.svelte @@ -9,7 +9,7 @@ let { currency, username } = data.user; let { defaultDescription, minWithdrawable, maxWithdrawable, k1, callback } = data; - let amount = maxWithdrawable, + let amount = Math.round(maxWithdrawable / 1000), loading; let submit = () => (loading = true); diff --git a/src/routes/(app)/ln/[lnurl]/+page.server.js b/src/routes/(app)/ln/[lnurl]/+page.server.js index a947dbb4..6eebd87e 100644 --- a/src/routes/(app)/ln/[lnurl]/+page.server.js +++ b/src/routes/(app)/ln/[lnurl]/+page.server.js @@ -2,15 +2,19 @@ import { auth, get, post } from '$lib/utils'; import { error, fail, redirect } from '@sveltejs/kit'; export async function load({ params }) { + let data; + try { let { lnurl } = params; - let data = await get(`/decode?text=${lnurl}`); - if (data.tag === 'payRequest') throw redirect('/lnurlp'); - throw error(500, 'We can only handle lnurl pay requests'); - return data; + data = await get(`/decode?text=${lnurl}`); } catch (e) { throw error(500, e.message); } + + if (!['payRequest', 'withdrawRequest'].includes(data.tag)) + throw error(500, 'We only support LNURLp and LNURLw at this time'); + + return data; } export const actions = { @@ -21,11 +25,14 @@ export const actions = { await request.formData() ); + minSendable = Math.round(minSendable / 1000); + maxSendable = Math.round(maxSendable / 1000); + if (amount < minSendable) error = `Amount must be at least ${minSendable} sats`; if (amount > maxSendable) error = `Amount must be at most ${maxSendable} sats`; if (error) return fail(400, { error }); - let { pr } = await fetch(`${callback}?amount=${amount}`).then((r) => r.json()); + let { pr } = await fetch(`${callback}?amount=${amount * 1000}`).then((r) => r.json()); throw redirect(307, `/send/lightning/${pr}`); }, @@ -36,6 +43,9 @@ export const actions = { await request.formData() ); + minWithdrawable = Math.round(minWithdrawable / 1000); + maxWithdrawable = Math.round(maxWithdrawable / 1000); + if (amount < minWithdrawable) error = `Amount must be at least ${minWithdrawable} sats`; if (amount > maxWithdrawable) error = `Amount must be at most ${maxWithdrawable} sats`; if (error) return fail(400, { error }); diff --git a/src/routes/(app)/ln/[lnurl]/+page.svelte b/src/routes/(app)/ln/[lnurl]/+page.svelte index a1222698..ce73b387 100644 --- a/src/routes/(app)/ln/[lnurl]/+page.svelte +++ b/src/routes/(app)/ln/[lnurl]/+page.svelte @@ -1,7 +1,7 @@ {#if tag === 'payRequest'} -- cgit v1.2.3