aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2024-11-16 23:27:32 -0800
committerAdam Soltys <[email protected]>2024-11-16 23:27:55 -0800
commit4f5617ca59141a8bf64e131a8b2e6d39aa9cab4c (patch)
tree46e1bb7ecddc61765fbcfa58a328fc77f36095cb
parent69c5b07a68e05d62d8503dbde310b06965330447 (diff)
downloadcoinos-server-4f5617ca59141a8bf64e131a8b2e6d39aa9cab4c.tar.gz
coinos-server-4f5617ca59141a8bf64e131a8b2e6d39aa9cab4c.zip
parse offers
-rw-r--r--index.ts1
-rw-r--r--routes/payments.ts18
2 files changed, 17 insertions, 2 deletions
diff --git a/index.ts b/index.ts
index d50f67df..03926604 100644
--- a/index.ts
+++ b/index.ts
@@ -67,6 +67,7 @@ app.post("/send", auth, payments.internal);
app.post("/gateway", payments.gateway);
app.post("/replace", auth, payments.replace);
app.get("/decode/:bolt11", payments.decode);
+app.get("/offer/:offer", payments.offer);
app.get("/encode", lnurl.encode);
app.get("/decode", lnurl.decode);
diff --git a/routes/payments.ts b/routes/payments.ts
index bf3f65c0..dfd9ad36 100644
--- a/routes/payments.ts
+++ b/routes/payments.ts
@@ -181,8 +181,16 @@ export default {
await s("nodes", nodes);
}
- const decoded = await ln.decodepay(payreq);
- const { amount_msat, payee } = decoded;
+ const decoded = await ln.decode(payreq);
+
+ let amount_msat;
+ let payee;
+
+ if (decoded.type.includes("bolt12")) {
+ ({ invoice_amount_msat: amount_msat, invoice_node_id: payee } =
+ decoded);
+ } else ({ amount_msat, payee } = decoded);
+
const node = nodes.find((n) => n.nodeid === payee);
const alias = node ? node.alias : payee.substr(0, 12);
@@ -194,6 +202,7 @@ export default {
res.send({ alias, amount, ourfee });
} catch (e) {
+ err("problem parsing", e.message);
bail(res, e.message);
}
},
@@ -538,4 +547,9 @@ export default {
const { bolt11 } = req.params;
res.send(await ln.decode(bolt11));
},
+
+ async offer(req, res) {
+ const { offer } = req.params;
+ res.send(await ln.fetchinvoice(offer));
+ },
};