aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/send
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-11-21 22:56:09 -0800
committerAdam Soltys <[email protected]>2024-11-21 22:56:35 -0800
commitff3bbbe6a1814ab5b17386eb630b5dd3111578eb (patch)
tree468233f260d41d08685212729cc94b5dc661a570 /src/routes/(app)/send
parent38660e024c055952180bfa3f9067274cf2e0d6ed (diff)
downloadcoinos-ui-ff3bbbe6a1814ab5b17386eb630b5dd3111578eb.tar.gz
coinos-ui-ff3bbbe6a1814ab5b17386eb630b5dd3111578eb.zip
ecash requests
Diffstat (limited to 'src/routes/(app)/send')
-rw-r--r--src/routes/(app)/send/ecash/+page.svelte6
-rw-r--r--src/routes/(app)/send/ecash/[request]/+page.svelte51
2 files changed, 30 insertions, 27 deletions
diff --git a/src/routes/(app)/send/ecash/+page.svelte b/src/routes/(app)/send/ecash/+page.svelte
index 88239c1a..5de8bee1 100644
--- a/src/routes/(app)/send/ecash/+page.svelte
+++ b/src/routes/(app)/send/ecash/+page.svelte
@@ -34,12 +34,6 @@
</script>
<div class="container px-4 max-w-xl mx-auto space-y-5 text-center">
- <div class="card text-left rounded-2xl shadow shadow-primary p-4 bg-base-200">
- <div class="text-secondary">
- {$t("payments.ecashDesc")}
- <a href="https://cashu.space/" class="font-bold">cashu.space</a>
- </div>
- </div>
<form use:enhance={handler(toggle)} method="POST" class="space-y-5">
<h1 class="px-3 md:px-0 text-center text-3xl md:text-4xl font-semibold">
{$t("payments.fundingAmount")}
diff --git a/src/routes/(app)/send/ecash/[request]/+page.svelte b/src/routes/(app)/send/ecash/[request]/+page.svelte
index 7f2ac7ba..bed8c0ae 100644
--- a/src/routes/(app)/send/ecash/[request]/+page.svelte
+++ b/src/routes/(app)/send/ecash/[request]/+page.svelte
@@ -1,5 +1,6 @@
<script lang="ts">
- import { post } from "$lib/utils";
+ import { goto } from "$app/navigation";
+ import { fail, post } from "$lib/utils";
import { applyAction, deserialize } from "$app/forms";
import { t } from "$lib/translations";
import { enhance } from "$app/forms";
@@ -8,7 +9,7 @@
import Spinner from "$comp/Spinner.svelte";
import { rate, pin } from "$lib/store";
import { wrapEvent } from "nostr-tools/nip17";
- import { getPrivateKey, sign } from "$lib/nostr";
+ import { getPrivateKey, sign, send } from "$lib/nostr";
import { getDecodedToken } from "@cashu/cashu-ts";
import type { PaymentRequestPayload } from "@cashu/cashu-ts";
@@ -20,27 +21,35 @@
e.preventDefault();
submitting = true;
- let { token } = await post("/ecash/mint", { amount });
- const dec = (token) => getDecodedToken(token).token[0];
- let { proofs } = dec(token);
- let { id, mints, unit = "" } = req;
- // let mint = mints[0];
- let mint = "http://mint:3338";
- const paymentPayload: PaymentRequestPayload = {
- id,
- mint,
- unit,
- proofs,
- };
+ try {
+ let { pid, token } = await post("/ecash/mint", { amount });
+ const dec = (token) => getDecodedToken(token).token[0];
+ let { proofs } = dec(token);
+ let { id, mints, unit = "" } = req;
+ let mint = mints[0];
+ const paymentPayload: PaymentRequestPayload = {
+ id,
+ mint,
+ unit,
+ proofs,
+ };
- const paymentPayloadString = JSON.stringify(paymentPayload);
- let event = wrapEvent(
- await getPrivateKey(user),
- { publicKey: recipient.pubkey },
- JSON.stringify(paymentPayload),
- );
+ const paymentPayloadString = JSON.stringify(paymentPayload);
+ let event = wrapEvent(
+ await getPrivateKey(user),
+ { publicKey: recipient.pubkey },
+ JSON.stringify(paymentPayload),
+ );
+
+ await sign({ event, user });
+ await send(event);
+
+ goto(`/sent/${pid}`);
+ } catch (e) {
+ console.log(e);
+ fail(e.message);
+ }
- await sign({ event, user });
submitting = false;
};