39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
/**
|
|
* This script goes through all user invoices in LND and if it is settled - marks it
|
|
* so in our database. Does this only for invoices younger than week. *
|
|
*/
|
|
import { Invo } from '../class/';
|
|
const config = require('../config');
|
|
|
|
const fs = require('fs');
|
|
const Redis = require('ioredis');
|
|
const redis = new Redis(config.redis);
|
|
|
|
let bitcoinclient = require('../bitcoin');
|
|
let lightning = require('../lightning');
|
|
|
|
(async () => {
|
|
console.log('fetching listinvoices...');
|
|
let tempInv = new Invo(redis, bitcoinclient, lightning);
|
|
|
|
let listinvoices = await tempInv.listInvoices();
|
|
console.log('done', 'got', listinvoices['invoices'].length, 'invoices');
|
|
fs.writeFileSync('listInvoices.json', '[\n');
|
|
|
|
let markedInvoices = 0;
|
|
for (const invoice of listinvoices['invoices']) {
|
|
fs.appendFileSync('listInvoices.json', JSON.stringify(invoice, null, 2) + ',\n');
|
|
if (invoice.state === 'SETTLED' && +invoice.creation_date >= +new Date() / 1000 - 3600 * 24 * 7 * 2) {
|
|
tempInv.setInvoice(invoice.payment_request);
|
|
await tempInv.markAsPaidInDatabase();
|
|
markedInvoices++;
|
|
process.stdout.write(markedInvoices + '\r');
|
|
}
|
|
}
|
|
|
|
fs.appendFileSync('listInvoices.json', ']');
|
|
|
|
console.log('done, marked', markedInvoices, 'invoices');
|
|
process.exit();
|
|
})();
|