aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-11-24 23:19:46 -0800
committerAdam Soltys <[email protected]>2023-11-24 23:19:46 -0800
commit2f1372b53084d5308d593a2fbf653ca0c4fb84ba (patch)
treed5243ed97b5bcf2dacdfcf0daf0d665e5bececfa
parent13f3c21b9ddf9884f190a6fcf7acf50440c82547 (diff)
downloadcoinos-server-2f1372b53084d5308d593a2fbf653ca0c4fb84ba.tar.gz
coinos-server-2f1372b53084d5308d593a2fbf653ca0c4fb84ba.zip
send to lightning address helper endpoint
-rw-r--r--index.js1
-rw-r--r--routes/payments.js18
2 files changed, 19 insertions, 0 deletions
diff --git a/index.js b/index.js
index 6cc1fb3c..e8aa3a64 100644
--- a/index.js
+++ b/index.js
@@ -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);
+ }
}
};