From 3996d8f9144899f03eef667a6a9ddd5533c68baa Mon Sep 17 00:00:00 2001 From: Benoit Lavenier <benoit.lavenier@e-is.pro> Date: Tue, 6 Jun 2023 12:27:50 +0200 Subject: [PATCH] fix(1446): When reverting a block, delete source condition index only if no create record exists - fix #1446 --- app/lib/dal/indexDAL/leveldb/LevelDBSindex.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/lib/dal/indexDAL/leveldb/LevelDBSindex.ts b/app/lib/dal/indexDAL/leveldb/LevelDBSindex.ts index a8b4aceba..9744a29d4 100644 --- a/app/lib/dal/indexDAL/leveldb/LevelDBSindex.ts +++ b/app/lib/dal/indexDAL/leveldb/LevelDBSindex.ts @@ -288,7 +288,8 @@ export class LevelDBSindex extends LevelDBTable<SindexEntry> const updateRecord = await this.getOrNull(updateKey); // Undo consumption if (updateRecord && updateRecord.writtenOn === writtenOn) { - conditions.push(updateRecord.conditions); + // Delete from condition index only if no createRecord exists - fix #1446 + if (!createRecord) conditions.push(updateRecord.conditions); await this.del(updateKey); } // Undo creation? @@ -296,11 +297,10 @@ export class LevelDBSindex extends LevelDBTable<SindexEntry> conditions.push(createRecord.conditions); await this.del(createKey); } - // Update balance - // 1. Conditions + // Update condition index const uniqConditions = Underscore.uniq(conditions); for (const condition of uniqConditions) { - // Remove this source from the balance + // Remove this source from the condition await this.trimConditions(condition, id); } } @@ -324,7 +324,7 @@ export class LevelDBSindex extends LevelDBTable<SindexEntry> // If some sources are left for this "account", persist what remains await this.indexForConditions.put(condition, trimmed); } else { - // Otherwise just delete the "account" + // Otherwise just delete the "condition" await this.indexForConditions.del(condition); } } -- GitLab