diff options
| -rw-r--r-- | index.ts | 1 | ||||
| -rw-r--r-- | routes/payments.ts | 18 |
2 files changed, 17 insertions, 2 deletions
@@ -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)); + }, }; |
