From ea887e99c71f75e30ed2662b0ba5bff17ba95387 Mon Sep 17 00:00:00 2001 From: Miguel de Elias Date: Wed, 3 Jun 2026 12:58:05 -0300 Subject: [PATCH] fix: use submitted at epoch to calculate allocation lifetime --- packages/indexer-agent/src/agent.ts | 5 ++++- packages/indexer-common/src/allocations/types.ts | 1 + packages/indexer-common/src/indexer-management/monitor.ts | 3 +++ packages/indexer-common/src/indexer-management/types.ts | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/indexer-agent/src/agent.ts b/packages/indexer-agent/src/agent.ts index c5589796c..bd7be1323 100644 --- a/packages/indexer-agent/src/agent.ts +++ b/packages/indexer-agent/src/agent.ts @@ -992,7 +992,10 @@ export class Agent { .rule?.allocationLifetime ? deploymentAllocationDecision.ruleMatch.rule.allocationLifetime : maxAllocationDuration - return epoch >= allocation.createdAtEpoch + desiredAllocationLifetime + + const lastCollectedEpoch = + allocation.lastPresentedPoiEpoch ?? allocation.createdAtEpoch + return epoch >= lastCollectedEpoch + desiredAllocationLifetime }, ) logger.debug('Expired allocations found', { diff --git a/packages/indexer-common/src/allocations/types.ts b/packages/indexer-common/src/allocations/types.ts index 63afd6e0a..46dde1209 100644 --- a/packages/indexer-common/src/allocations/types.ts +++ b/packages/indexer-common/src/allocations/types.ts @@ -20,6 +20,7 @@ export interface Allocation { poi: string | undefined queryFeeRebates: bigint | undefined queryFeesCollected: bigint | undefined + lastPresentedPoiEpoch: number | undefined } export interface Provision { diff --git a/packages/indexer-common/src/indexer-management/monitor.ts b/packages/indexer-common/src/indexer-management/monitor.ts index 52d66d53f..c4771d89e 100644 --- a/packages/indexer-common/src/indexer-management/monitor.ts +++ b/packages/indexer-common/src/indexer-management/monitor.ts @@ -260,6 +260,9 @@ export class NetworkMonitor { closedAt closedAtEpoch createdAtBlockHash + pois(first: 1, orderBy: submittedAtEpoch, orderDirection: desc) { + submittedAtEpoch + } subgraphDeployment { id stakedTokens diff --git a/packages/indexer-common/src/indexer-management/types.ts b/packages/indexer-common/src/indexer-management/types.ts index 5aead4ed1..0b9d8c471 100644 --- a/packages/indexer-common/src/indexer-management/types.ts +++ b/packages/indexer-common/src/indexer-management/types.ts @@ -139,6 +139,7 @@ export const parseGraphQLAllocation = ( poi: allocation.poi, queryFeeRebates: allocation.queryFeeRebates, queryFeesCollected: allocation.queryFeesCollected, + lastPresentedPoiEpoch: allocation.pois?.[0]?.submittedAtEpoch, }) export const parseGraphQLProvision = (provision: any): Provision => ({