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