From 924c83701a02f043041d7dbb27ce8d77c6829c6b Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 4 Apr 2023 22:12:49 +0000 Subject: catch lnurlp errors --- routes/lnurl.js | 65 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/routes/lnurl.js b/routes/lnurl.js index e31d24e2..1f45627b 100644 --- a/routes/lnurl.js +++ b/routes/lnurl.js @@ -42,42 +42,47 @@ export default { }, async lnurlp({ params: { username } }, res) { - let { id: uid } = await getUser(username); - if (!uid) { - let u = await got(`${classic}/admin/migrate/${username}?zero=true`, { - headers: { authorization: `Bearer ${admin}` }, - }).json(); + try { + let { id: uid } = await getUser(username); + if (!uid) { + let u = await got(`${classic}/admin/migrate/${username}?zero=true`, { + headers: { authorization: `Bearer ${admin}` }, + }).json(); - if (!u) fail("user not found"); - let { balance, pubkey } = u; + if (!u) fail("user not found"); + let { balance, pubkey } = u; - uid = u.uuid; + uid = u.uuid; - u = { id: uid, about: u.address, ...pick(u, fields) }; - delete u.address; + u = { id: uid, about: u.address, ...pick(u, fields) }; + delete u.address; - await s(`user:${username.replace(/\s/g, "").toLowerCase()}`, uid); - await s(`user:${uid}`, u); - await s(`balance:${uid}`, balance); + await s(`user:${username.replace(/\s/g, "").toLowerCase()}`, uid); + await s(`user:${uid}`, u); + await s(`balance:${uid}`, balance); - l("added missing user", username); - } + l("added missing user", username); + } + + let metadata = JSON.stringify([ + ["text/plain", `Paying ${username}@${host}`], + ["text/identifier", `${username}@${host}`], + ]); + + let id = v4(); + await s(`lnurl:${id}`, uid); - let metadata = JSON.stringify([ - ["text/plain", `Paying ${username}@${host}`], - ["text/identifier", `${username}@${host}`], - ]); - - let id = v4(); - await s(`lnurl:${id}`, uid); - - res.send({ - minSendable: 1000, - maxSendable: 100000000000, - metadata, - callback: `${URL}/api/lnurl/${id}`, - tag: "payRequest", - }); + res.send({ + minSendable: 1000, + maxSendable: 100000000000, + metadata, + callback: `${URL}/api/lnurl/${id}`, + tag: "payRequest", + }); + } catch (e) { + warn("problem generating lnurlp request", e.message); + bail(res, e.message); + } }, async lnurl({ params: { id }, query: { amount } }, res) { -- cgit v1.2.3