diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sockets.js | 4 | ||||
| -rw-r--r-- | lib/sync.js | 40 |
2 files changed, 33 insertions, 11 deletions
diff --git a/lib/sockets.js b/lib/sockets.js index 6a7d0b6b..e876663b 100644 --- a/lib/sockets.js +++ b/lib/sockets.js @@ -20,8 +20,8 @@ emit = (username, type, data) => { let s = subscriptions[i]; if ( s.invoice.amount === data.amount || - s.invoice.address === data.address || - s.invoice.unconfidential === data.address + (data.address && s.invoice.address === data.address) || + (data.address && s.invoice.unconfidential === data.address) ) { s.ws.send(JSON.stringify({ type, data })); subscriptions.splice(i, 1); diff --git a/lib/sync.js b/lib/sync.js index dd1ff9aa..dda83eab 100644 --- a/lib/sync.js +++ b/lib/sync.js @@ -48,16 +48,32 @@ const init = async () => { } catch (e) { console.log(e); } -}; - -init(); -const sync = async () => { - const payments = ( + payments = ( await db.Payment.findAll({ attributes: ["hash"] }) ).map(p => p.hash); +}; + +init(); + +const sync = async () => { + const twoWeeksAgo = new Date(new Date().setDate(new Date().getDate() - 14)); + const payments = await db.Payment.findAll({ + attributes: ["hash", "confirmed", "preimage"], + where: { createdAt: { [Op.gt]: twoWeeksAgo } }, + include: [ + { + model: db.Account, + as: "account" + }, + { + model: db.User, + as: "user" + } + ] + }); try { let { invoices } = await lnp.listInvoices({ @@ -181,7 +197,10 @@ const sync = async () => { unaccounted = []; transactions.map(tx => { - if (!payments.includes(tx.txid) && !exceptions.includes(tx.txid)) { + if ( + !payments.find(p => p.hash === tx.txid) && + !exceptions.includes(tx.txid) + ) { unaccounted.push(tx); } }); @@ -270,12 +289,11 @@ const sync = async () => { }; setTimeout(sync, 5000); -setInterval(sync, 720000); +setInterval(sync, 300000); app.get( "/conversions", ah(async (req, res) => { - const transactions = [ ...(await bc.listTransactions("*", 500)), ...(await lq.listTransactions("*", 500)) @@ -294,7 +312,11 @@ app.get( Object.keys(conversions) .filter(c => conversions[c].address === addr) .filter(c => { - return invoices.find(i => i.payment_request === c && i.state === 'SETTLED') || transactions.find(tx => tx.txid === c) + return ( + invoices.find( + i => i.payment_request === c && i.state === "SETTLED" + ) || transactions.find(tx => tx.txid === c) + ); }) .filter(c => !payments.includes(c)) ); |
