aboutsummaryrefslogtreecommitdiffstats
path: root/lightningPayments.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2019-09-15 23:05:26 -0700
committerAdam Soltys <[email protected]>2019-09-15 23:05:26 -0700
commit765c6a42135b9334b616c26b22c816edd06e382a (patch)
tree05da4f343358fb5e9a9083e348783f0fab973dd8 /lightningPayments.js
parent087fdd27f3683a1deb9376b7a72aa608e6fd8e6a (diff)
downloadcoinos-server-765c6a42135b9334b616c26b22c816edd06e382a.tar.gz
coinos-server-765c6a42135b9334b616c26b22c816edd06e382a.zip
refactor
Diffstat (limited to 'lightningPayments.js')
-rw-r--r--lightningPayments.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/lightningPayments.js b/lightningPayments.js
new file mode 100644
index 00000000..ed1d3647
--- /dev/null
+++ b/lightningPayments.js
@@ -0,0 +1,31 @@
+module.exports = (app, db, lna, lnb, emit, payments) => {
+ const handlePayment = async msg => {
+ if (!msg.settled) return;
+
+ let payment = await db.Payment.findOne({
+ include: { model: db.User, as: "user" },
+ where: {
+ hash: msg.payment_request
+ }
+ });
+
+ if (!payment) return;
+
+ payment.received = true;
+ payment.user.balance += parseInt(msg.value);
+ payment.rate = app.get("rates").ask;
+
+ await payment.save();
+ await payment.user.save();
+ payments.push(msg.payment_request);
+
+ emit(payment.user.username, "invoice", msg);
+ emit(payment.user.username, "user", payment.user);
+ };
+
+ const invoices = lna.subscribeInvoices({});
+ invoices.on("data", handlePayment);
+
+ const invoicesb = lnb.subscribeInvoices({});
+ invoicesb.on("data", handlePayment);
+};