aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--index.js1
-rw-r--r--routes/payments.js18
2 files changed, 18 insertions, 1 deletions
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}`);