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
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;
}

View File

@ -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() {

View File

@ -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]);