diff options
| -rwxr-xr-x | bun.lockb | bin | 186623 -> 186956 bytes | |||
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | src/lib/parse.ts | 1 | ||||
| -rw-r--r-- | src/routes/(app)/ecash/post/+server.ts | 10 | ||||
| -rw-r--r-- | src/routes/(app)/send/ecash/[request]/+page.server.ts | 13 | ||||
| -rw-r--r-- | src/routes/(app)/send/ecash/[request]/+page.svelte | 30 |
6 files changed, 39 insertions, 17 deletions
| 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(); |
