• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

graphprotocol / indexer-rs / 29513639787
72%

Build:
DEFAULT BRANCH: main
Ran 16 Jul 2026 04:03PM UTC
Jobs 1
Files 100
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

16 Jul 2026 03:59PM UTC coverage: 71.641% (+0.2%) from 71.473%
29513639787

push

github

web-flow
perf: stop querying the network subgraph on every TAP receipt (#1069)

* perf(service): move allocation-redeemed check to a background watcher

The TAP receipt path queried the network subgraph once per receipt to ask whether the
allocation's escrow was already redeemed, blocking every paid query on an external round trip.
A watcher now keeps a snapshot for the active allocations and the check reads it in memory.

* perf(service): read RAV redemption from postgres, not the subgraph

The redeemed check no longer polls the network subgraph at all. indexer-agent already records
when a collection's closing RAV is redeemed on-chain; the check now loads those rows and stays
current through a trigger with pg_notify, the same pattern the deny-list check uses.

* fix(service): reject from redeemed_at so the check can fire in time

The final flag is only set a finality window after redemption, past the default buffer in
which receipts still pass eligibility, so the check never fired. Keying on last and redeemed_at
fires at redemption time; rows are scoped per service provider and reconnects trigger reloads.

* docs(service): state when the redeemed check can actually fire

In the routine lifecycle redemption follows the same recently-closed buffer that gates the
eligibility check, so by the time a closing RAV is redeemed, eligibility already rejects the
receipt; the check's real role is insurance against out-of-band redemptions, not a routine gate.

* fix(service): re-listen before resyncing redeemed RAVs after reconnect

When the notification connection dropped, the watcher reloaded the redeemed set while still
disconnected; sqlx only reconnects on the next receive call, so a redemption landing between
the reload and the reconnect went unseen. Re-issue LISTEN first, then reload, as at startup.

* fix(service): resync redeemed RAVs when a notification fails to parse

The watcher used to log and skip a notification it could not parse. The payload comes from
this... (continued)

216 of 238 new or added lines in 2 files covered. (90.76%)

10830 of 15117 relevant lines covered (71.64%)

112.75 hits per line

Uncovered Changes

Lines Coverage ∆ File
22
91.09
-6.5% crates/service/src/tap/checks/allocation_redeemed.rs
Jobs
ID Job ID Ran Files Coverage
1 29513639787.1 16 Jul 2026 04:03PM UTC 100
71.64
GitHub Action Run
Source Files on build 29513639787
  • Tree
  • List 100
  • Changed 3
  • Source Changed 3
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29513639787
  • 60c3314f on github
  • Prev Build on main (#29472516945)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc