aboutsummaryrefslogtreecommitdiffstats
path: root/lib/lightning.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lightning.js')
-rw-r--r--lib/lightning.js62
1 files changed, 3 insertions, 59 deletions
diff --git a/lib/lightning.js b/lib/lightning.js
index 57667be2..86dfdb2b 100644
--- a/lib/lightning.js
+++ b/lib/lightning.js
@@ -5,7 +5,6 @@ import { callWebhook } from "$lib/webhooks";
import ln from "$lib/ln";
import { l, err, warn } from "$lib/logging";
import { g, s, t, db } from "$lib/db";
-import Redlock from "redlock";
export async function listenForLightning() {
let {
@@ -18,6 +17,7 @@ export async function listenForLightning() {
} = await ln.waitanyinvoice(await g("pay_index"));
await s("pay_index", pay_index);
+ setTimeout(listenForLightning);
let received = Math.round(msatoshi_received / 1000);
@@ -52,65 +52,11 @@ export async function listenForLightning() {
invoice.status = "paid";
invoice.received += received;
- const redlock = new Redlock([db]);
-
await s(`invoice:${hash}`, invoice);
- console.log("BAL", await g(`balance:${uid}`));
- setTimeout(async () => {
- let lock = await redlock.acquire(["b"], 5000);
- try {
- let bal = await g(`balance:${uid}`);
- console.log("b bal", bal);
- await new Promise(r => setTimeout(r, 50));
-
- await s(`balance:${uid}`, bal + 100);
- console.log("set b bal", bal + 100);
- } finally {
- await lock.release();
- }
- // try {
- // console.log("tweaking balance");
- // await s(`balance:${uid}`, 0);
- // await new Promise(r => setTimeout(r, 5));
- // console.log("mwahaha", await g(`balance:${uid}`));
- // await new Promise(r => setTimeout(r, 600));
- // console.log("hmm", await g(`balance:${uid}`));
- // } catch (e) {
- // console.log(e);
- // }
- }, 50);
-
- await new Promise(r => setTimeout(r, 5));
-
- let lock = await redlock.acquire(["a"], 5000);
- try {
- let bal = await g(`balance:${uid}`);
- console.log("a bal", bal, received);
- await new Promise(r => setTimeout(r, 500));
-
- await s(`balance:${uid}`, bal + received);
- console.log("set a bal", bal + received);
- } finally {
- await lock.release();
- }
-
- // await t(async signal => {
- // console.log("acquiring lock");
- // let bal = await g(`balance:${uid}`);
- // console.log("bal", bal);
- // await new Promise(r => setTimeout(r, 500));
- //
- // if (signal.aborted) throw signal.error;
- //
- // await s(`balance:${uid}`, bal + received);
- // console.log("set bal", bal + received);
- // });
- console.log("done", await g(`balance:${uid}`));
-
+ await db.incrBy(`balance:${uid}`, received);
payment.invoice = invoice;
-
await s(`payment:${hash}`, payment);
- await db.lpush(`${uid}:payments`, hash);
+ await db.lPush(`${uid}:payments`, hash);
callWebhook(invoice, payment);
@@ -122,6 +68,4 @@ export async function listenForLightning() {
console.log(e);
err("problem receiving lightning payment", e.message);
}
-
- setTimeout(listenForLightning);
}