Mark entities as removed on store remove host API call (#484)

This commit is contained in:
prathamesh0
2023-11-21 16:00:26 +05:30
committed by GitHub
parent 8c44fbbe6d
commit e6b957e921
5 changed files with 56 additions and 27 deletions
+20 -1
View File
@@ -79,7 +79,7 @@ export const instantiate = async (
assert(context.block);
const entityData = await database.getEntity(entityName, entityId, context.block.blockHash);
if (!entityData) {
if (!entityData || entityData.isRemoved) {
return null;
}
@@ -112,6 +112,25 @@ export const instantiate = async (
indexer.updateSubgraphState(context.contractAddress, diffData);
}
},
'store.remove': async (entity: number, id: number) => {
const entityName = __getString(entity);
const entityId = __getString(id);
assert(context.block);
const entityData = await database.getEntity(entityName, entityId, context.block.blockHash);
if (!entityData || entityData.isRemoved) {
return;
}
// Add an additional entry at block with isRemoved set to true
entityData.blockHash = context.block.blockHash;
entityData.blockNumber = context.block.blockNumber;
entityData.isRemoved = true;
const dbEntity = await database.saveEntity(entityName, entityData);
database.cacheUpdatedEntityByName(entityName, dbEntity);
},
'log.log': (level: number, msg: number) => {
log('log %s | %s', Level[level], __getString(msg));