aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbun.lockbbin186623 -> 186956 bytes
-rw-r--r--package.json2
-rw-r--r--src/lib/parse.ts1
-rw-r--r--src/routes/(app)/ecash/post/+server.ts10
-rw-r--r--src/routes/(app)/send/ecash/[request]/+page.server.ts13
-rw-r--r--src/routes/(app)/send/ecash/[request]/+page.svelte30
6 files changed, 39 insertions, 17 deletions
diff --git a/bun.lockb b/bun.lockb
index f42f489d..773d37b2 100755
--- a/bun.lockb
+++ b/bun.lockb
Binary files differ
diff --git a/package.json b/package.json
index f152b00f..2208fcca 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"@capacitor/cli": "^6.0.0",
"@capacitor/core": "^6.0.0",
"@capacitor/ios": "^6.1.2",
- "@cashu/cashu-ts": "^1.2.1",
+ "@cashu/cashu-ts": "^2.0.0-rc4",
"@iconify/iconify": "^3.1.1",
"@scure/base": "^1.1.8",
"@scure/bip39": "^1.2.1",
diff --git a/src/lib/parse.ts b/src/lib/parse.ts
index 5082cc16..6483aaa0 100644
--- a/src/lib/parse.ts
+++ b/src/lib/parse.ts
@@ -65,7 +65,6 @@ export default async (s, host) => {
redirect(307, `/ecash/${id}`);
}
- console.log("HI", t);
if (t.startsWith("creq")) redirect(307, `/send/ecash/${t}`);
// user
diff --git a/src/routes/(app)/ecash/post/+server.ts b/src/routes/(app)/ecash/post/+server.ts
new file mode 100644
index 00000000..0e5ae605
--- /dev/null
+++ b/src/routes/(app)/ecash/post/+server.ts
@@ -0,0 +1,10 @@
+import { json } from "@sveltejs/kit";
+
+export async function POST({ fetch, request }) {
+ const { target, payload } = await request.json();
+ const res = await fetch(target, {
+ method: "POST",
+ body: JSON.stringify(payload),
+ });
+ return json(res);
+}
diff --git a/src/routes/(app)/send/ecash/[request]/+page.server.ts b/src/routes/(app)/send/ecash/[request]/+page.server.ts
index 5ab3e9c0..6cc593cc 100644
--- a/src/routes/(app)/send/ecash/[request]/+page.server.ts
+++ b/src/routes/(app)/send/ecash/[request]/+page.server.ts
@@ -7,9 +7,16 @@ export async function load({ cookies, params, url }) {
redirect(307, `/login?redirect=${encodeURIComponent(url.pathname)}`);
const req = { ...decodePaymentRequest(params.request) };
- const { target } = req.transport[0];
- const recipient = await get(`/profile/${target}`);
- return { req, recipient };
+ const [{ target, type }] = req.transport;
+
+ let recipient = { name: "", pubkey: null };
+ if (type === "nostr") {
+ recipient = await get(`/profile/${target}`);
+ } else if (type === "post") {
+ recipient.name = new URL(target).hostname;
+ }
+
+ return { req, recipient, type, target };
}
export const actions = {
diff --git a/src/routes/(app)/send/ecash/[request]/+page.svelte b/src/routes/(app)/send/ecash/[request]/+page.svelte
index 2f58d78c..1f950de0 100644
--- a/src/routes/(app)/send/ecash/[request]/+page.svelte
+++ b/src/routes/(app)/send/ecash/[request]/+page.svelte
@@ -1,6 +1,6 @@
<script lang="ts">
import { goto } from "$app/navigation";
- import { fail, post } from "$lib/utils";
+ import { focus, fail, post } from "$lib/utils";
import { applyAction, deserialize } from "$app/forms";
import { t } from "$lib/translations";
import { enhance } from "$app/forms";
@@ -31,25 +31,28 @@
try {
let { pid, token } = await post("/ecash/mint", { amount });
- const dec = (token) => getDecodedToken(token).token[0];
- let { proofs } = dec(token);
+ let { proofs } = getDecodedToken(token);
let { id, mints, unit = "" } = req;
let mint = mints[0];
- const paymentPayload: PaymentRequestPayload = {
+
+ const payload = {
id,
mint,
unit,
proofs,
};
- const paymentPayloadString = JSON.stringify(paymentPayload);
- let event = wrapEvent(
- await getPrivateKey(user),
- { publicKey: recipient.pubkey },
- JSON.stringify(paymentPayload),
- );
+ if (type === "nostr") {
+ let event = wrapEvent(
+ await getPrivateKey(user),
+ { publicKey: recipient.pubkey },
+ JSON.stringify(payload),
+ );
- await Promise.any(pool.publish(recipient.relays, event));
+ await Promise.any(pool.publish(recipient.relays, event));
+ } else if (type === "post") {
+ await post("/ecash/post", { target, payload });
+ }
goto(`/sent/${pid}`);
} catch (e) {
@@ -60,7 +63,10 @@
submitting = false;
};
- let { rates, recipient, req, user } = $derived({ ...data, ...form });
+ let { rates, recipient, req, user, type, target } = $derived({
+ ...data,
+ ...form,
+ });
let { currency } = $derived(user);
let a = $state();
let next = $state();