From 30910e1a7c02b7a4c18d029c521136c77e9ee8bc Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 10 Nov 2023 22:07:24 +0000 Subject: freeze withdrawals endpoint --- index.js | 1 + routes/payments.js | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index f61d3f20..b818188f 100644 --- a/index.js +++ b/index.js @@ -64,6 +64,7 @@ app.get("/decode", lnurl.decode); app.get("/lnurlp/:username", lnurl.lnurlp); app.get("/lnurl/:id", lnurl.lnurl); +app.post("/freeze", payments.freeze); app.post("/fix", auth, payments.fix); app.post("/bitcoin", payments.bitcoin); app.post("/bitcoin/fee", auth, payments.fee); diff --git a/routes/payments.js b/routes/payments.js index a6120caf..84edc786 100644 --- a/routes/payments.js +++ b/routes/payments.js @@ -35,10 +35,15 @@ catchUp(); export default { async create({ body, user }, res) { + warn(JSON.stringify(body)); let { amount, hash, maxfee, name, memo, payreq, username } = body; try { + if (await g('freeze')) fail("Problem sending payment"); + amount = parseInt(amount); + if (amount < 0) fail("Invalid amount"); + maxfee = maxfee ? parseInt(maxfee) : 0; if (maxfee < 0) fail("Max fee cannot be negative"); @@ -368,7 +373,7 @@ export default { res.send({ feeRate, min, max, fee, tx }); } catch (e) { - warn("problem estimating fee", e.message, user.username); + warn("problem estimating fee", e.message, user.username, amount, address); bail(res, "problem estimating fee"); } }, @@ -522,6 +527,17 @@ export default { } }, + async freeze({ body: { secret }}, res) { + try { + if (secret !== config.adminpass) fail("unauthorized"); + await s('freeze', true); + res.send("ok"); + } catch (e) { + console.log(e); + bail(res, e.message); + } + }, + async print({ body: { id }, user }, res) { try { let p = await g(`payment:${id}`); -- cgit v1.2.3