From 90fd57b064d3ef0176d5747b79863d6e60a22fc1 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Wed, 5 Oct 2022 12:07:46 -0700 Subject: detect internal sends --- src/components/Numpad.svelte | 18 +++--- src/components/Qr.svelte | 2 +- src/lib/utils.js | 5 +- src/locales/en.json | 8 +-- src/routes/+error.svelte | 24 +++++--- src/routes/+layout.server.js | 1 - src/routes/[username]/dashboard/+page.svelte | 54 ++++++++-------- .../[username]/transactions/[...page]/+page.svelte | 4 +- src/routes/send/+page.server.js | 17 +++++- src/routes/send/+page.svelte | 17 ++++-- src/routes/send/user/[username]/+page.server.js | 23 +++++++ src/routes/send/user/[username]/+page.svelte | 71 ++++++++++++++++++++++ src/routes/sent/+page.svelte | 2 +- 13 files changed, 178 insertions(+), 68 deletions(-) create mode 100644 src/routes/send/user/[username]/+page.server.js create mode 100644 src/routes/send/user/[username]/+page.svelte (limited to 'src') diff --git a/src/components/Numpad.svelte b/src/components/Numpad.svelte index 9de4a0dc..f7a18aad 100644 --- a/src/components/Numpad.svelte +++ b/src/components/Numpad.svelte @@ -4,10 +4,8 @@ import { f, s, post, warning, sats } from '$lib/utils'; import { t } from '$lib/translations'; - export let amount, currency; + export let amount, amountFiat = 0, currency, fiat = true; - let useFiat = true; - let amountFiat = 0; let amountSats = 0; let loading = false; @@ -28,7 +26,7 @@ KRW: '₩' }[currency] || ''; - $: amount = parseInt(useFiat ? Math.round(amountFiat / ($selectedRate / sats)) : amountSats); + $: amount = parseInt(fiat ? Math.round(amountFiat / ($selectedRate / sats)) : amountSats); $: amountSatsFormatted = s(amountSats); @@ -39,7 +37,7 @@ const numPad = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '.', '0', '<']; const handleInput = (value) => { - if (useFiat) { + if (fiat) { if (amountFiat === 0 && value !== '.' && value !== '<' && value !== '0') { amountFiat = value; } else if ((amountFiat === 0 || amountFiat === '0') && value === '0') { @@ -89,17 +87,17 @@
- {useFiat ? `${symbol}${amountFiat}` : amountSatsFormatted}{useFiat ? currency : 'SAT'}{fiat ? currency : 'SAT'}
{useFiat ? `${amountSatsConverted} SAT` : amountFiatConverted}{fiat ? `${amountSatsConverted} SAT` : amountFiatConverted}
diff --git a/src/components/Qr.svelte b/src/components/Qr.svelte index 3456b607..0ae028b9 100644 --- a/src/components/Qr.svelte +++ b/src/components/Qr.svelte @@ -1,5 +1,5 @@ {#if $page.error.message.includes('not found') || $page.status === 404} {:else} -
-
- - - +
+ +

+ {$t('error.header')} +

- +

{$page.error.message}

-

{$t('error.header')}

-

{$page.error.message}

-

{$t('error.message')}

-
+ + +
{/if} diff --git a/src/routes/+layout.server.js b/src/routes/+layout.server.js index e9b01593..84e5ce5c 100644 --- a/src/routes/+layout.server.js +++ b/src/routes/+layout.server.js @@ -18,7 +18,6 @@ export async function load({ cookies, request, url, params }) { if (token && token !== 'undefined') { try { - console.log("GETTING USER"); user = await get('/me', auth(cookies)); } catch (e) { throw redirect(307, '/logout'); diff --git a/src/routes/[username]/dashboard/+page.svelte b/src/routes/[username]/dashboard/+page.svelte index 8d77b699..05f821ec 100644 --- a/src/routes/[username]/dashboard/+page.svelte +++ b/src/routes/[username]/dashboard/+page.svelte @@ -51,37 +51,37 @@ {/if}
-
-
- {$selectedRate - ? f(accountBalanceFiat, user.currency) - : $t('user.dashboard.fetchingRate')} +
+

+ Dashboard +

- - {accountBalanceSats} SAT - +
+ {$selectedRate ? f(accountBalanceFiat, user.currency) : $t('user.dashboard.fetchingRate')} +
+ +
+ {accountBalanceSats} SAT +
-
diff --git a/src/routes/[username]/transactions/[...page]/+page.svelte b/src/routes/[username]/transactions/[...page]/+page.svelte index 223418a3..18990fa3 100644 --- a/src/routes/[username]/transactions/[...page]/+page.svelte +++ b/src/routes/[username]/transactions/[...page]/+page.svelte @@ -23,9 +23,9 @@
{#if pages.length > 1} {#each pages as _, i} - +
{i + 1}
diff --git a/src/routes/send/+page.server.js b/src/routes/send/+page.server.js index 4108bcb5..c8edb1cc 100644 --- a/src/routes/send/+page.server.js +++ b/src/routes/send/+page.server.js @@ -16,7 +16,14 @@ export const actions = { // bitcoin if (validate(t)) { - throw redirect(303, `/send/bitcoin/${t}`); + let user; + try { + ({ user } = await get(`/invoice/${t}`)); + } catch (e) { + throw redirect(303, `/send/bitcoin/${t}`); + } + + if (user) throw redirect(303, `/send/user/${user.username}`); } // ln address @@ -28,7 +35,13 @@ export const actions = { } // user + let user; + try { + user = await get(`/users/${t}`); + } catch (e) {} + + if (user) throw redirect(303, `/send/user/${t}`); - return invalid(403, { error: 'Failed to parse destination' }); + return invalid(403, { error: 'Failed to recognize input' }); } }; diff --git a/src/routes/send/+page.svelte b/src/routes/send/+page.svelte index 8a695ac6..87d06e35 100644 --- a/src/routes/send/+page.svelte +++ b/src/routes/send/+page.svelte @@ -1,4 +1,5 @@ -
+ + {#if form?.error} +
+ {form.error} +
+ {/if}