FIX: better stuck payments handling

This commit is contained in:
Overtorment 2019-04-13 18:56:12 +01:00
parent 35d8ff5599
commit 2c25a2090e
3 changed files with 14 additions and 4 deletions

View File

@ -24,7 +24,7 @@ export class Lock {
} }
// success - got 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 // lock expires in 5 mins just for any case
return true; return true;
} }

View File

@ -156,8 +156,8 @@ export class User {
let lockedPayments = await this.getLockedPayments(); let lockedPayments = await this.getLockedPayments();
for (let paym of lockedPayments) { for (let paym of lockedPayments) {
// TODO: check if payment in determined state and actually evict it from this list // locked payments are processed in scripts/process-locked-payments.js
calculatedBalance -= +paym.amount; calculatedBalance -= +paym.amount + /* feelimit */ Math.floor(paym.amount * 0.01);
} }
return calculatedBalance; return calculatedBalance;
@ -173,7 +173,7 @@ export class User {
async saveBalance(balance) { async saveBalance(balance) {
const key = 'balance_for_' + this._userid; const key = 'balance_for_' + this._userid;
await this._redis.set(key, balance); await this._redis.set(key, balance);
await this._redis.expire(key, 3600); await this._redis.expire(key, 1800);
} }
async clearBalanceCache() { async clearBalanceCache() {

View File

@ -286,6 +286,16 @@ router.get('/gettxs', async function(req, res) {
try { try {
await u.accountForPosibleTxids(); await u.accountForPosibleTxids();
let txs = await u.getTxs(); 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); res.send(txs);
} catch (Err) { } catch (Err) {
logger.log('', [req.id, 'error:', Err]); logger.log('', [req.id, 'error:', Err]);