From 75bfac565c4b9751ebb609050bfa709b8cd9b1ba Mon Sep 17 00:00:00 2001 From: Overtorment Date: Thu, 4 Apr 2019 12:51:46 +0100 Subject: [PATCH] REF --- class/User.js | 3 ++- controllers/api.js | 3 ++- controllers/website.js | 1 + doc/schema.md | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/class/User.js b/class/User.js index 01ca477..086956e 100644 --- a/class/User.js +++ b/class/User.js @@ -246,13 +246,14 @@ export class User { } invoice.ispaid = !!(await this.getPaymentHashPaid(invoice.payment_hash)); if (!invoice.ispaid) { + // TODO: check if expired // attempting to lookup invoice let lookup_info = await this.lookupInvoice(invoice.payment_hash); invoice.ispaid = lookup_info.settled; if (invoice.ispaid) { // so invoice was paid after all await this.setPaymentHashPaid(invoice.payment_hash); - await this.saveBalance(await this.getCalculatedBalance()); + await this.clearBalanceCache(); } } diff --git a/controllers/api.js b/controllers/api.js index f33b0ce..cccfaa4 100644 --- a/controllers/api.js +++ b/controllers/api.js @@ -98,7 +98,7 @@ router.post('/addinvoice', postLimiter, async function(req, res) { } logger.log('/addinvoice', [req.id, 'userid: ' + u.getUserId()]); - if (!req.body.amt) return errorBadArguments(res); + if (!req.body.amt || req.body.amt < 1) return errorBadArguments(res); lightning.addInvoice({ memo: req.body.memo, value: req.body.amt }, async function(err, info) { if (err) return errorLnd(res); @@ -179,6 +179,7 @@ router.post('/payinvoice', async function(req, res) { value: +info.num_satoshis + Math.floor(info.num_satoshis * 0.01), fee: Math.floor(info.num_satoshis * Paym.fee), memo: decodeURIComponent(info.description), + pay_req: req.body.invoice, }); await UserPayee.setPaymentHashPaid(info.payment_hash); diff --git a/controllers/website.js b/controllers/website.js index 5185f76..2ab8330 100644 --- a/controllers/website.js +++ b/controllers/website.js @@ -69,6 +69,7 @@ const pubkey2name = { '02816caed43171d3c9854e3b0ab2cf0c42be086ff1bd4005acc2a5f7db70d83774': 'ln.pizza', '024a2e265cd66066b78a788ae615acdc84b5b0dec9efac36d7ac87513015eaf6ed': 'Bitrefill.com/lightning', '02a0bc43557fae6af7be8e3a29fdebda819e439bea9c0f8eb8ed6a0201f3471ca9': 'LightningPeachHub', + '02d4531a2f2e6e5a9033d37d548cff4834a3898e74c3abe1985b493c42ebbd707d': 'coinfinity.co', }; router.get('/', function(req, res) { diff --git a/doc/schema.md b/doc/schema.md index 79bb075..fb58b26 100644 --- a/doc/schema.md +++ b/doc/schema.md @@ -20,7 +20,7 @@ User storage schema * bitcoin_address_for_{userid} = {address} * balance_for_{userid} = {int} * txs_for_{userid} = [] `serialized paid lnd invoices in a list` -* locked_invoices_for_{userod} = [] `serialized attempts to pay invoice. used in calculating user's balance` +* locked_payments_for_{userid} = [] `serialized attempts to pay invoice. used in calculating user's balance` : {pay_req:..., amount:666, timestamp:666} * imported_txids_for_{userid} = [] `list of txids processed for this user` * metadata_for_{userid}= {serialized json}