commit
d4e8d9b476
@ -234,6 +234,17 @@ export class User {
|
|||||||
return await this._redis.get('ispaid_' + payment_hash);
|
return await this._redis.get('ispaid_' + payment_hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async syncInvoicePaid(payment_hash) {
|
||||||
|
const invoice = await this.lookupInvoice(payment_hash);
|
||||||
|
const ispaid = invoice.settled; // TODO: start using `state` instead as its future proof, and this one might get deprecated
|
||||||
|
if (ispaid) {
|
||||||
|
// so invoice was paid after all
|
||||||
|
await this.setPaymentHashPaid(payment_hash);
|
||||||
|
await this.clearBalanceCache();
|
||||||
|
}
|
||||||
|
return ispaid;
|
||||||
|
}
|
||||||
|
|
||||||
async getUserInvoices(limit) {
|
async getUserInvoices(limit) {
|
||||||
let range = await this._redis.lrange('userinvoices_for_' + this._userid, 0, -1);
|
let range = await this._redis.lrange('userinvoices_for_' + this._userid, 0, -1);
|
||||||
if (limit && !isNaN(parseInt(limit))) {
|
if (limit && !isNaN(parseInt(limit))) {
|
||||||
@ -261,13 +272,7 @@ export class User {
|
|||||||
if (!invoice.ispaid) {
|
if (!invoice.ispaid) {
|
||||||
if (decoded && decoded.timestamp > +new Date() / 1000 - 3600 * 24 * 5) {
|
if (decoded && decoded.timestamp > +new Date() / 1000 - 3600 * 24 * 5) {
|
||||||
// if invoice is not too old we query lnd to find out if its paid
|
// if invoice is not too old we query lnd to find out if its paid
|
||||||
let lookup_info = await this.lookupInvoice(invoice.payment_hash);
|
invoice.ispaid = await this.syncInvoicePaid(invoice.payment_hash);
|
||||||
invoice.ispaid = lookup_info.settled; // TODO: start using `state` instead as its future proof, and this one might get deprecated
|
|
||||||
if (invoice.ispaid) {
|
|
||||||
// so invoice was paid after all
|
|
||||||
await this.setPaymentHashPaid(invoice.payment_hash);
|
|
||||||
await this.clearBalanceCache();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_invoice_ispaid_cache[invoice.payment_hash] = true;
|
_invoice_ispaid_cache[invoice.payment_hash] = true;
|
||||||
|
@ -20,7 +20,7 @@ let identity_pubkey = false;
|
|||||||
|
|
||||||
bitcoinclient.request('getblockchaininfo', false, function(err, info) {
|
bitcoinclient.request('getblockchaininfo', false, function(err, info) {
|
||||||
if (info && info.result && info.result.blocks) {
|
if (info && info.result && info.result.blocks) {
|
||||||
if (info.result.blocks < 550000) {
|
if (info.result.chain === 'mainnet' && info.result.blocks < 550000) {
|
||||||
console.error('bitcoind is not caught up');
|
console.error('bitcoind is not caught up');
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
@ -33,9 +33,11 @@ bitcoinclient.request('getblockchaininfo', false, function(err, info) {
|
|||||||
lightning.getInfo({}, function(err, info) {
|
lightning.getInfo({}, function(err, info) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error('lnd failure');
|
console.error('lnd failure');
|
||||||
|
console.dir(err);
|
||||||
process.exit(3);
|
process.exit(3);
|
||||||
}
|
}
|
||||||
if (info) {
|
if (info) {
|
||||||
|
console.info(info);
|
||||||
if (!info.synced_to_chain) {
|
if (!info.synced_to_chain) {
|
||||||
console.error('lnd not synced');
|
console.error('lnd not synced');
|
||||||
process.exit(4);
|
process.exit(4);
|
||||||
@ -264,8 +266,11 @@ router.get('/checkpayment/:payment_hash', async function(req, res) {
|
|||||||
return errorBadAuth(res);
|
return errorBadAuth(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
let paid = !!(await u.getPaymentHashPaid(req.params.payment_hash));
|
let paid = true;
|
||||||
res.send({ paid: paid });
|
if (!(await u.getPaymentHashPaid(req.params.payment_hash))) { // Not found on cache
|
||||||
|
paid = await u.syncInvoicePaid(req.params.payment_hash);
|
||||||
|
}
|
||||||
|
res.send({paid: paid});
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/balance', postLimiter, async function(req, res) {
|
router.get('/balance', postLimiter, async function(req, res) {
|
||||||
|
1008
package-lock.json
generated
1008
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
18
package.json
18
package.json
@ -19,20 +19,20 @@
|
|||||||
"babel-preset-env": "^1.7.0",
|
"babel-preset-env": "^1.7.0",
|
||||||
"babel-preset-es2015": "^6.24.1",
|
"babel-preset-es2015": "^6.24.1",
|
||||||
"babel-register": "^6.26.0",
|
"babel-register": "^6.26.0",
|
||||||
"bignumber.js": "^8.0.1",
|
"bignumber.js": "^9.0.0",
|
||||||
"bolt11": "https://github.com/bitcoinjs/bolt11",
|
"bolt11": "^1.2.6",
|
||||||
"eslint": "^5.9.0",
|
"eslint": "^6.8.0",
|
||||||
"eslint-config-prettier": "^3.3.0",
|
"eslint-config-prettier": "^6.10.1",
|
||||||
"eslint-plugin-prettier": "^3.1.2",
|
"eslint-plugin-prettier": "^3.1.2",
|
||||||
"express": "^4.16.4",
|
"express": "^4.16.4",
|
||||||
"express-rate-limit": "^3.4.0",
|
"express-rate-limit": "^5.0.0",
|
||||||
"grpc": "^1.17.0-pre1",
|
"grpc": "^1.17.0-pre1",
|
||||||
"ioredis": "^4.16.0",
|
"ioredis": "^4.16.1",
|
||||||
"jayson": "^2.1.0",
|
"jayson": "^3.1.2",
|
||||||
"morgan": "^1.9.1",
|
"morgan": "^1.9.1",
|
||||||
"mustache": "^3.2.1",
|
"mustache": "^4.0.1",
|
||||||
"node-uuid": "^1.4.8",
|
"node-uuid": "^1.4.8",
|
||||||
"prettier": "^1.19.1",
|
"prettier": "^2.0.2",
|
||||||
"request": "^2.88.0",
|
"request": "^2.88.0",
|
||||||
"request-promise": "^4.2.2",
|
"request-promise": "^4.2.2",
|
||||||
"winston": "^3.1.0"
|
"winston": "^3.1.0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user