diff --git a/src/mappings/staking.ts b/src/mappings/staking.ts index 3e808e0c..6a0555c6 100644 --- a/src/mappings/staking.ts +++ b/src/mappings/staking.ts @@ -397,19 +397,21 @@ export function handleAllocationCollected(event: AllocationCollected): void { let taxedFees = event.params.tokens.minus(event.params.rebateFees.plus(event.params.curationFees)) // Update epoch - let epoch = createOrLoadEpoch(event.block.number) + let epoch = createOrLoadEpoch(allocation.closedAtBlockNumber? allocation.closedAtBlockNumber : event.block.number) + if (allocation.status == 'Closed'){ + epoch.queryFeesCollected = epoch.queryFeesCollected.plus(allocation.queryFeesCollected) + } epoch.totalQueryFees = epoch.totalQueryFees.plus(event.params.tokens) epoch.taxedQueryFees = epoch.taxedQueryFees.plus(taxedFees) - epoch.queryFeesCollected = epoch.queryFeesCollected.plus(event.params.rebateFees) epoch.curatorQueryFees = epoch.curatorQueryFees.plus(event.params.curationFees) epoch.save() // update pool - let pool = createOrLoadPool(event.params.epoch) + let pool = createOrLoadPool(epoch.id) // ONLY if allocation is closed. Otherwise it gets collected into an allocation, and it will // get added to the pool where the allocation gets closed if (allocation.status == 'Closed') { - pool.totalQueryFees = pool.totalQueryFees.plus(event.params.rebateFees) + pool.totalQueryFees = pool.totalQueryFees.plus(allocation.queryFeesCollected) } // Curator rewards in pool is not stored in the contract, so we take the actual value of it // happening. Every time an allocation is collected, curator rewards get transferred into