aboutsummaryrefslogtreecommitdiffstats
path: root/routes
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-11-21 16:31:51 -0800
committerAdam Soltys <[email protected]>2024-11-21 16:31:51 -0800
commitff4d63f395a556543e9a642676f92dea5d1c1645 (patch)
treedbee8887d40bf535f587c1f10bc0fa7f36db31f8 /routes
parent3b15d16339c9209f307f8453af91fba15f3d340c (diff)
downloadcoinos-server-ff4d63f395a556543e9a642676f92dea5d1c1645.tar.gz
coinos-server-ff4d63f395a556543e9a642676f92dea5d1c1645.zip
ecash requests
Diffstat (limited to 'routes')
-rw-r--r--routes/ecash.ts42
-rw-r--r--routes/nostr.ts19
2 files changed, 21 insertions, 40 deletions
diff --git a/routes/ecash.ts b/routes/ecash.ts
index ff092374..101d1aca 100644
--- a/routes/ecash.ts
+++ b/routes/ecash.ts
@@ -1,26 +1,21 @@
import { db, g, s } from "$lib/db";
-import { check, claim, get, mint, request } from "$lib/ecash";
+import { check, claim, get, mint } from "$lib/ecash";
import { err, l } from "$lib/logging";
import { credit, debit, types } from "$lib/payments";
import { emit } from "$lib/sockets";
import { bail, fail } from "$lib/utils";
-import {
- PaymentRequest,
- PaymentRequestPayload,
- PaymentRequestTransport,
- PaymentRequestTransportType,
- decodePaymentRequest,
- getDecodedToken,
-} from "@cashu/cashu-ts";
import { v4 } from "uuid";
const { ecash: type } = types;
const sendCash = async ({ amount, user }) => {
+ console.log("HELLO", amount);
const id = v4();
const hash = v4();
const p = await debit({ hash, amount, user, type });
+ console.log("P", p);
const token = await mint(amount);
+ console.log("TOKEN", token);
p.memo = id;
await s(`payment:${p.id}`, p);
s(`cash:${id}`, token);
@@ -93,8 +88,10 @@ export default {
user,
} = req;
try {
+ console.log("OY");
res.send(await sendCash({ amount, user }));
} catch (e) {
+ console.log(e);
err(e.message);
bail(res, e.message);
}
@@ -152,31 +149,4 @@ export default {
bail(res, e.message);
}
},
-
- async pay(req, res) {
- const { user } = req;
- const { request } = req.body;
- const { amount } = decodePaymentRequest(request);
- const { id, token } = await sendCash({ amount, user });
-
-
- const decodedToken = getDecodedToken(token);
- if (!decodedToken) {
- console.error("could not decode token");
- return;
- }
- const proofs = token.getProofs(decodedToken);
- const mint = token.getMint(decodedToken);
- const paymentPayload: PaymentRequestPayload = {
- id: request.id,
- mint: mint,
- unit: request.unit || "",
- proofs: proofs,
- };
- const paymentPayloadString = JSON.stringify(paymentPayload);
- try {
- await nostrStore.sendNip17DirectMessageToNprofile(transport.target, paymentPayloadString);
-
- res.send({ id, token });
- },
};
diff --git a/routes/nostr.ts b/routes/nostr.ts
index 1ad86baf..360ae22c 100644
--- a/routes/nostr.ts
+++ b/routes/nostr.ts
@@ -1,14 +1,17 @@
import config from "$config";
-import { bail, fail, getUser, time } from "$lib/utils";
-import { g, s, db } from "$lib/db";
+import { db, g, s } from "$lib/db";
import {
anon,
- send,
getCount,
+ getProfile,
getRelays,
- serverPubkey,
pool,
+ send,
+ serverPubkey,
} from "$lib/nostr";
+import { bail, fail, getUser } from "$lib/utils";
+import { decode } from "nostr-tools/nip19";
+import type { ProfilePointer } from "nostr-tools/nip19";
const opts = { maxWait: 2000 };
@@ -198,4 +201,12 @@ export default {
async info(_, res) {
res.send({ pubkey: serverPubkey });
},
+
+ async profile(req, res) {
+ const { profile } = req.params;
+ const { data } = decode(profile);
+ const { pubkey, relays } = data as ProfilePointer;
+ const user = await getProfile(pubkey, relays);
+ res.send(user);
+ },
};