diff options
| author | Adam Soltys <[email protected]> | 2019-09-15 23:05:26 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2019-09-15 23:05:26 -0700 |
| commit | 765c6a42135b9334b616c26b22c816edd06e382a (patch) | |
| tree | 05da4f343358fb5e9a9083e348783f0fab973dd8 /lightningPayments.js | |
| parent | 087fdd27f3683a1deb9376b7a72aa608e6fd8e6a (diff) | |
| download | coinos-server-765c6a42135b9334b616c26b22c816edd06e382a.tar.gz coinos-server-765c6a42135b9334b616c26b22c816edd06e382a.zip | |
refactor
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); +}; |
