aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/send
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-11-26 13:08:08 -0800
committerAdam Soltys <[email protected]>2024-11-26 13:20:53 -0800
commit9b3e117eafbba224b86dd7f8b3c56a0370f72d5b (patch)
treea670c3ae954d5075c851126c2aca7a1a45d1b41d /src/routes/(app)/send
parent2761363d694d3f24600abbe656769f64d7a67605 (diff)
downloadcoinos-ui-9b3e117eafbba224b86dd7f8b3c56a0370f72d5b.tar.gz
coinos-ui-9b3e117eafbba224b86dd7f8b3c56a0370f72d5b.zip
bip21 and socket fixes
Diffstat (limited to 'src/routes/(app)/send')
-rw-r--r--src/routes/(app)/send/bitcoin/[address]/+layout.server.ts18
-rw-r--r--src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts5
-rw-r--r--src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte35
-rw-r--r--src/routes/(app)/send/invoice/[id]/+page.svelte2
4 files changed, 21 insertions, 39 deletions
diff --git a/src/routes/(app)/send/bitcoin/[address]/+layout.server.ts b/src/routes/(app)/send/bitcoin/[address]/+layout.server.ts
index 68191311..a321ec43 100644
--- a/src/routes/(app)/send/bitcoin/[address]/+layout.server.ts
+++ b/src/routes/(app)/send/bitcoin/[address]/+layout.server.ts
@@ -4,20 +4,22 @@ import { redirect } from "@sveltejs/kit";
export async function load({ cookies, params, parent }) {
const { user } = await parent();
const aid = cookies.get("aid");
- const { address } = params;
+ const { address, amount } = params;
const { balance } = await get(`/account/${aid}`, auth(cookies));
+ let invoice;
try {
- const invoice = await get(`/invoice/${address}`);
-
- if (invoice) {
- const recipient = await get(`/users/${invoice.uid}`);
- if (recipient?.id !== user.id)
- redirect(307, `/pay/${recipient.username}`);
- }
+ invoice = await get(`/invoice/${address}`);
} catch (e) {
// invoice not found
}
+ if (invoice) {
+ const recipient = await get(`/users/${invoice.uid}`);
+ let r = `/pay/${recipient.username}`;
+ if (amount) r += `/${amount}`;
+ if (recipient?.id !== user.id) redirect(307, r);
+ }
+
return { balance };
}
diff --git a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts
index 1122e689..9156bf7b 100644
--- a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts
+++ b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.server.ts
@@ -39,9 +39,10 @@ export const actions = {
try {
const body = await fd(request);
p = await post("/bitcoin/send", body, auth(cookies));
- } catch (e: any) {
+ } catch (e) {
console.log("problem sending bitcoin", e);
- return fail(400, { address, amount, feeRate, message: e.message });
+ const { message } = e as Error;
+ return fail(400, { address, amount, feeRate, message });
}
redirect(307, `/sent/${p.id}`);
diff --git a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte
index f37d4479..298280df 100644
--- a/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte
+++ b/src/routes/(app)/send/bitcoin/[address]/[amount]/[...feeRate]/+page.svelte
@@ -5,19 +5,10 @@
import { t } from "$lib/translations";
import { enhance } from "$app/forms";
import Toggle from "$comp/Toggle.svelte";
- import Icon from "$comp/Icon.svelte";
import Spinner from "$comp/Spinner.svelte";
import WalletPass from "$comp/WalletPass.svelte";
import { page } from "$app/stores";
- import {
- toFiat,
- f,
- focus,
- s,
- sat,
- closest,
- network,
- } from "$lib/utils";
+ import { toFiat, f, focus, s, sat, closest, network } from "$lib/utils";
import { pin } from "$lib/store";
import { goto, invalidate } from "$app/navigation";
import { rate } from "$lib/store";
@@ -30,6 +21,8 @@
import { entropyToMnemonic, mnemonicToSeed } from "@scure/bip39";
import { wordlist } from "@scure/bip39/wordlists/english";
+ import Amount from "$comp/Amount.svelte";
+
let { data, form } = $props();
let { encode, decode } = hexUtil;
@@ -130,34 +123,20 @@
{:else}
<div class="text-xl text-secondary break-all">{address}</div>
- <div class="text-center">
- <h2 class="text-2xl md:text-3xl font-semibold">
- {f(toFiat(amount, $rate), currency)}
- </h2>
- <h3 class="text-secondary md:text-lg mb-6 mt-1">⚡️{s(amount)}</h3>
- </div>
+ <Amount {amount} rate={$rate} {currency} />
<div class="text-center">
<h2 class="text-secondary text-lg">{$t("payments.networkFee")}</h2>
<div class="flex flex-wrap gap-4 justify-center">
- <select
- bind:value={feeRate}
- onchange={setFee}
- class="border text-lg bg-white p-4 rounded-2xl text-center my-auto"
- >
+ <select bind:value={feeRate} onchange={setFee}>
{#each Object.keys(feeNames) as feeName}
<option value={fees[feeName]}
- >{feeNames[feeName]} &mdash; ⚡️{fees[feeName]}/vb</option
+ >{feeNames[feeName]} &mdash; {fees[feeName]} sats/vb</option
>
{/each}
</select>
- <div class="my-auto">
- <h2 class="text-xl">
- {f(toFiat(fee, $rate), currency)}
- </h2>
- <h3 class="text-secondary">⚡️{s(fee)}</h3>
- </div>
+ <Amount amount={fee} rate={$rate} {currency} />
</div>
</div>
diff --git a/src/routes/(app)/send/invoice/[id]/+page.svelte b/src/routes/(app)/send/invoice/[id]/+page.svelte
index f5259170..d2b3727c 100644
--- a/src/routes/(app)/send/invoice/[id]/+page.svelte
+++ b/src/routes/(app)/send/invoice/[id]/+page.svelte
@@ -103,7 +103,7 @@
<Amount {amount} {tip} {rate} {currency} />
- <h1 class="text-xl md:text-2xl text-secondary">
+ <h1 class="text-xl text-secondary">
{$t("payments.to")}
</h1>