aboutsummaryrefslogtreecommitdiffstats
path: root/routes/ecash.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-08-26 21:17:43 -0700
committerAdam Soltys <[email protected]>2024-08-26 21:17:43 -0700
commitfe62cadd6fb4a7e49f7d59401fc74ae0411e32a7 (patch)
treeaa8f34e1692bd2d638a2c996eeadb58671d07aea /routes/ecash.js
parent00e43ddc0bf3d6dd719fc9295d156567fa2fecfb (diff)
downloadcoinos-server-fe62cadd6fb4a7e49f7d59401fc74ae0411e32a7.tar.gz
coinos-server-fe62cadd6fb4a7e49f7d59401fc74ae0411e32a7.zip
typescript
Diffstat (limited to 'routes/ecash.js')
-rw-r--r--routes/ecash.js127
1 files changed, 0 insertions, 127 deletions
diff --git a/routes/ecash.js b/routes/ecash.js
deleted file mode 100644
index 8c2684b1..00000000
--- a/routes/ecash.js
+++ /dev/null
@@ -1,127 +0,0 @@
-import { g, s, db } from "$lib/db";
-import { claim, mint, check } from "$lib/ecash";
-import { bail } from "$lib/utils";
-import { debit, credit, types } from "$lib/payments";
-import { v4 } from "uuid";
-import { l, err, warn } from "$lib/logging";
-import { emit } from "$lib/sockets";
-import store from "$lib/store";
-
-let { ecash: type } = types;
-
-export default {
- async save({ body: { token } }, res) {
- try {
- let id = v4();
- await s(`cash:${id}`, token);
- res.send({ id });
- } catch (e) {
- err(e.message);
- bail(res, e.message);
- }
- },
-
- async get({ params: { id } }, res) {
- try {
- let token = await g(`cash:${id}`);
- let status = await check(token);
- res.send({ token, status });
- } catch (e) {
- err(e.message);
- bail(res, e.message);
- }
- },
-
- async claim({ body: { token }, user }, res) {
- try {
- let amount = await claim(token);
-
- let memo;
- let hash = v4();
- let { currency, id: uid } = user;
- let rates = await g("rates");
- await s(`invoice:${hash}`, {
- currency,
- id: hash,
- hash,
- rate: rates[currency],
- uid,
- received: 0,
- });
-
- await credit(hash, amount, memo, user.id, type);
-
- res.send({ ok: true });
- } catch (e) {
- err(e.message);
- bail(res, e.message);
- }
- },
-
- async mint({ body: { amount }, user }, res) {
- try {
- let id = v4();
- let hash = v4();
-
- let p = await debit({ hash, amount, user, type });
- let token = await mint(amount);
- p.memo = token;
- await s(`payment:${p.id}`, p);
- s(`cash:${id}`, token);
-
- res.send({ id });
- } catch (e) {
- err(e.message);
- bail(res, e.message);
- }
- },
-
- async melt({ body: { amount, bolt11: hash, preimage }, user }, res) {
- try {
- amount = Math.round(amount / 1000);
- let ref = preimage;
- let { lightning: type } = types;
- if (user.username !== "mint") fail("unauthorized");
- let { id: uid, currency, username } = user;
- let ourfee = await db.debit(
- `balance:${uid}`,
- `credit:${type}:${uid}`,
- amount || 0,
- 0,
- 0,
- 0,
- );
-
- let rates = await g("rates");
- let rate = rates[currency];
-
- if (ourfee.err) fail(ourfee.err);
-
- let id = v4();
- let p = {
- id,
- amount: -amount,
- hash,
- ourfee,
- uid,
- confirmed: true,
- rate,
- currency,
- type,
- ref,
- created: Date.now(),
- };
-
- await s(`payment:${hash}`, id);
- await s(`payment:${id}`, p);
- await db.lPush(`${uid}:payments`, id);
-
- l(user.username, "sent", type, amount);
- emit(user.id, "payment", p);
-
- res.send(p);
- } catch (e) {
- bail(res, e.message);
- }
- },
-};