aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/payments.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/payments.js b/lib/payments.js
index 2d1bf6c0..5958bc14 100644
--- a/lib/payments.js
+++ b/lib/payments.js
@@ -439,6 +439,7 @@ let getMaxFee = (n) =>
: n * 0.01,
);
+let checking = {};
export let sendLightning = async ({ user, pr, amount, maxfee, memo }) => {
let p;
let hash = pr;
@@ -481,14 +482,18 @@ export let sendLightning = async ({ user, pr, amount, maxfee, memo }) => {
});
let check = async () => {
+ if (checking(pr)) return;
+ checking[pr] = true;
+
try {
let { pays } = await ln.listpays(pr);
- let recordExists = !!(await g(`payment:${p.id}`));
+ let recordExists = !!(await g(`payment:${pr}`));
let paymentFailed =
!pays.length || pays.every((p) => p.status === "failed");
if (recordExists && paymentFailed) {
+ await db.del(`payment:${pr}`);
await db.del(`payment:${p.id}`);
let ourfee = p.ourfee || 0;
@@ -503,6 +508,8 @@ export let sendLightning = async ({ user, pr, amount, maxfee, memo }) => {
} catch (e) {
err("Failed to reverse payment", r);
}
+
+ checking[pr] = false;
};
let interval = setInterval(check, 5000);