diff options
| author | Adam Soltys <[email protected]> | 2024-11-26 13:08:08 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-11-26 13:20:53 -0800 |
| commit | 9b3e117eafbba224b86dd7f8b3c56a0370f72d5b (patch) | |
| tree | a670c3ae954d5075c851126c2aca7a1a45d1b41d /src/routes/(app)/send | |
| parent | 2761363d694d3f24600abbe656769f64d7a67605 (diff) | |
| download | coinos-ui-9b3e117eafbba224b86dd7f8b3c56a0370f72d5b.tar.gz coinos-ui-9b3e117eafbba224b86dd7f8b3c56a0370f72d5b.zip | |
bip21 and socket fixes
Diffstat (limited to 'src/routes/(app)/send')
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]} — ⚡️{fees[feeName]}/vb</option + >{feeNames[feeName]} — {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> |
