graphprotocol / graphprotocol/indexer
Support force: true in queued actions (batch close for no-reward networks)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 262
- Forks
- 148
- PR merge metrics
- No merged PRs in 30d
Description
Problem
When networks have no indexing rewards (e.g., fuse, xlayer-mainnet, xdai, blast-mainnet, monad, boba, mode), unallocate and reallocate actions queued via queueActions get stuck because the agent cannot generate a valid POI for these networks (see #1088).
The force: true flag works correctly on the direct closeAllocation mutation (with zero POI fallback from PR #949), but it is ignored when set on queued actions. This means the only way to close allocations on no-reward networks is through individual closeAllocation calls — there's no way to batch these via multicall.
Impact
- No batch/multicall for no-reward network closures — each must be an individual direct mutation call, one transaction per allocation
- Indexers managing allocations across many no-reward networks must work around the queue entirely, losing the benefits of batched execution
- The
ActionInputtype already accepts aforcefield, but the execution path doesn't honor it for queued actions
Proposed fix
When executing a queued unallocate or reallocate action that has force: true, the agent should use the zero-POI fallback path (same as the direct closeAllocation(force: true) mutation) instead of trying to query the EBO for a valid POI.
This would allow batching force-close actions alongside normal actions in a single multicall transaction.
Related
- #1088 — EBO missing for no-reward mainnet networks
- PR #949 — zero-POI fallback for unsupported networks (direct mutation only)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Trace queued unallocate and reallocate execution from queueActions, including the ActionInput force field, and compare it with the direct closeAllocation(force: true) path and its zero-POI fallback from PR #949. Confirm that queued force-close actions use the fallback and can be included in a multicall alongside normal actions, without changing non-forced behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100