graphprotocol / graphprotocol/indexer

Support force: true in queued actions (batch close for no-reward networks)

Open
#1,179 0 comments 0 reactions 0 assignees View on GitHub

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 ActionInput type already accepts a force field, 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.