diff options
| author | Adam Soltys <[email protected]> | 2023-11-24 23:19:46 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-11-24 23:19:46 -0800 |
| commit | 2f1372b53084d5308d593a2fbf653ca0c4fb84ba (patch) | |
| tree | d5243ed97b5bcf2dacdfcf0daf0d665e5bececfa | |
| parent | 13f3c21b9ddf9884f190a6fcf7acf50440c82547 (diff) | |
| download | coinos-server-2f1372b53084d5308d593a2fbf653ca0c4fb84ba.tar.gz coinos-server-2f1372b53084d5308d593a2fbf653ca0c4fb84ba.zip | |
send to lightning address helper endpoint
| -rw-r--r-- | index.js | 1 | ||||
| -rw-r--r-- | routes/payments.js | 18 |
2 files changed, 19 insertions, 0 deletions
@@ -58,6 +58,7 @@ app.get("/fund/:name/withdraw", payments.withdraw); app.post("/take", auth, payments.take); app.post("/buy", auth, payments.buy); app.post("/print", auth, payments.print); +app.post("/send/:lnaddress/:amount", auth, payments.lnaddress); app.get("/encode", lnurl.encode); app.get("/decode", lnurl.decode); diff --git a/routes/payments.js b/routes/payments.js index 7cda38d7..58c4f506 100644 --- a/routes/payments.js +++ b/routes/payments.js @@ -582,5 +582,23 @@ export default { } catch (e) { bail(res, e.message); } + }, + + async lnaddress({ params: { lnaddress, amount }, user }, res) { + try { + let [username, domain] = lnaddress.split("@"); + let { minSendable, maxSendable, callback } = await got( + `https://${domain}/.well-known/lnurlp/${username}` + ).json(); + + if (amount * 1000 < minSendable || amount * 1000 > maxSendable) + fail("amount out of range"); + + let { pr } = await got(`${callback}?amount=${amount}`).json(); + console.log(pr); + res.send(lnurl); + } catch (e) { + bail(res, e.message); + } } }; |
