diff --git a/class/Lock.js b/class/Lock.js index 6c6412ef..e6966247 100644 --- a/class/Lock.js +++ b/class/Lock.js @@ -24,7 +24,7 @@ export class Lock { } // success - got lock - await this._redis.expire(this._lock_key, 3600); + await this._redis.expire(this._lock_key, 5 * 60); // lock expires in 5 mins just for any case return true; } diff --git a/class/User.js b/class/User.js index 44ebde97..fcfbb862 100644 --- a/class/User.js +++ b/class/User.js @@ -156,8 +156,8 @@ export class User { let lockedPayments = await this.getLockedPayments(); for (let paym of lockedPayments) { - // TODO: check if payment in determined state and actually evict it from this list - calculatedBalance -= +paym.amount; + // locked payments are processed in scripts/process-locked-payments.js + calculatedBalance -= +paym.amount + /* feelimit */ Math.floor(paym.amount * 0.01); } return calculatedBalance; @@ -173,7 +173,7 @@ export class User { async saveBalance(balance) { const key = 'balance_for_' + this._userid; await this._redis.set(key, balance); - await this._redis.expire(key, 3600); + await this._redis.expire(key, 1800); } async clearBalanceCache() { diff --git a/controllers/api.js b/controllers/api.js index 37d8d3a0..cce81e13 100644 --- a/controllers/api.js +++ b/controllers/api.js @@ -286,6 +286,16 @@ router.get('/gettxs', async function(req, res) { try { await u.accountForPosibleTxids(); let txs = await u.getTxs(); + let lockedPayments = await u.getLockedPayments(); + for (let locked of lockedPayments) { + txs.push({ + type: 'paid_invoice', + fee: Math.floor(locked.amount * 0.01) /* feelimit */, + value: locked.amount + Math.floor(locked.amount * 0.01) /* feelimit */, + timestamp: locked.timestamp, + memo: 'Payment in transition', + }); + } res.send(txs); } catch (Err) { logger.log('', [req.id, 'error:', Err]);