core/fetcher: fetch payload attestation data - #4667
Conversation
|
There was a problem hiding this comment.
Pull request overview
Adds Fetcher support for the Gloas Payload Timeliness Committee duty (DutyPayloadAttestation) by fetching per-slot payload attestation data from the beacon node once and fanning it out to all PTC members in the duty definition set. This integrates the new duty type into the existing core workflow “Fetcher → downstream subscribers” stage and aligns with the hardfork readiness work in #4324.
Changes:
- Adds a
DutyPayloadAttestationcase toFetcher.Fetchand implementsfetchPayloadAttestationDatato queryPayloadAttestationDatafor a slot and distribute the result to all definitions. - Treats “no payload attestation data” (BN 204 / no block seen) as a non-retryable error with a clear message.
- Adds unit tests covering the happy path plus key error scenarios (no block, nil data, unsupported version).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| core/fetcher/fetcher.go | Adds payload attestation duty fetching and fan-out logic, including explicit handling for the “no block seen” case. |
| core/fetcher/fetcher_test.go | Adds tests validating per-slot fan-out semantics and error handling for payload attestation fetching. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## gloas #4667 +/- ##
========================================
Coverage ? 58.79%
========================================
Files ? 246
Lines ? 34667
Branches ? 0
========================================
Hits ? 20383
Misses ? 11752
Partials ? 2532 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|



Add
DutyPayloadAttestationsupport to the fetcher: fetch the versioned payload attestation data once per slot and fan it out to all PTC members in the definition set. A 204 from the beacon node (no block seen for the slot) is a plain, non-retryable error since there is nothing to attest.category: feature
ticket: #4324