diff options
Diffstat (limited to 'lightningPayments.js')
| -rw-r--r-- | lightningPayments.js | 31 |
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); +}; |
