aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2023-09-19 07:09:36 -0700
committerAdam Soltys <[email protected]>2023-09-19 07:09:36 -0700
commit21431092d710bf155082e522620cc5ba4fab6c7c (patch)
tree3e86859f0d960d98e0243a516d6fa3208c90e665
parent9f846760924ea58ccd120a812f2a3c9a42ec933f (diff)
downloadcoinos-server-21431092d710bf155082e522620cc5ba4fab6c7c.tar.gz
coinos-server-21431092d710bf155082e522620cc5ba4fab6c7c.zip
abort payment after 5 checks
-rw-r--r--routes/payments.js10
1 files changed, 6 insertions, 4 deletions
diff --git a/routes/payments.js b/routes/payments.js
index 8f9b90bd..7a8659f5 100644
--- a/routes/payments.js
+++ b/routes/payments.js
@@ -82,17 +82,20 @@ export default {
let check = async () => {
checks++;
- if (checks > 10) clearInterval(interval);
try {
let { pays } = await ln.listpays(payreq);
let recordExists = !!(await g(`payment:${p.id}`));
- let paymentFailed = (pays.length && pays[pays.length - 1].status === "failed")
+ let paymentFailed =
+ pays.length && pays[pays.length - 1].status === "failed";
l("checking", payreq, recordExists, paymentFailed);
- if (recordExists && paymentFailed) {
+ if (
+ recordExists &&
+ (paymentFailed || (checks > 5 && !pays.length))
+ ) {
await db.del(`payment:${p.id}`);
let credit = Math.round(total * config.fee) - p.ourfee;
@@ -136,7 +139,6 @@ export default {
p.fee = Math.round((r.amount_sent_msat - r.amount_msat) / 1000);
p.ref = r.payment_preimage;
-
await s(`payment:${p.id}`, p);
l("refunding fee", maxfee, p.fee, maxfee - p.fee, p.ref);