@subsquid/ponder@0.17.8-sqd.1 — the Portal fork of ponder, grafted onto ponder@0.17.8.
What this is
The Portal layer (backfill from SQD Portal) grafted onto upstream ponder@0.17.8, published as a drop-in ponder bin. Routine upstream-parity: tracks a new upstream patch line at parity, no fork behavior or public-surface change.
Upstream delta 0.17.6 → 0.17.8
- The graft seam (
HistoricalSync.syncBlockRangeData/syncBlockData, interval-scoped) is unchanged. Both declared signatures are identical to0.17.6; upstream added only a JSDoc@returns Closest-to-tip synced block, which the Portal implementation already satisfies. wiring/0.17.8.patchis a byte-identical re-derivation of the0.17.6patch: the0.17.6patch was applied to a fresh0.17.8clone, the resultinggit diffregenerated, anddiffagainst the original returned zero — 12 files, no drift, no hunk re-anchoring.- Upstream's ~115-line removal in this range sits inside
syncBlockRangeData— the body the Portal layer replaces. runtime/filter.ts(+178) is internal batching plumbing (mergeLogFiltersToRequests) with theFilterunion and the config surface untouched: no new user-facing filter, and hence no silent-data-gap class.
Gate
Full suite green on both versions — 416 tests / 24 files on ponder@0.17.8 and the identical 416/24 on ponder@0.17.6 (scripts/sync-upstream.sh <ver> --test); biome clean; no exported-type / config / signature drift vs 0.17.6-sqd.1. CI fork-seam(0.17.8) green on the tracking PR (#218).
Candor — one test-only change was required. Upstream 0.17.8 added common.options.factoryAddressCountThreshold, read on the path the Portal RPC fallback enters. Three Portal test doubles built their common object with no options at all, so the gate was initially red at 3 failed / 413 passed. Production was never affected — production uses upstream's own options builder, which defaults that field. The doubles are now built from upstream's real buildOptions, so a future new upstream option cannot silently break them the same way. No production code changed.
Mutation-verified: neutering the RPC delegation in portal/portal.ts turns exactly 4 tests red (the 3 INV-9 delegation tests plus the INV-15 × INV-9 regression), so the repaired tests are not vacuous.
Published with --tag latest (numeric-max) — the default npm install @subsquid/ponder. 0.17.6-sqd.1 remains installable by exact version.