Hook up payload attestation message in fork choice spec tests - #16934
Merged
Conversation
syjn99
approved these changes
Jun 10, 2026
potuz
approved these changes
Jun 11, 2026
terencechain
force-pushed
the
gloas-payload-attestation-spectests
branch
from
June 11, 2026 15:01
4be960e to
02f64d9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The gloas
on_payload_attestation_messagefork choice spec tests were silently passing because the runner'sStep/Checktypes had no fields forpayload_attestation_messagesteps or thepayload_timeliness_vote/payload_data_availability_votechecks, so YAML unmarshalling silently dropped both.payload_attestation_messagestep support: unmarshals the message and feeds it throughReceivePayloadAttestationMessage, asserting acceptance/rejection per the step'svalidfieldpayload_timeliness_vote/payload_data_availability_votecheck support, comparing the per-seat PTC vote bitvectors in forkchoice (null= no vote,true/false= recorded value)PTCVotesgetter on the doubly-linked-tree forkchoice to expose the vote bit vectorsmap[string]stringso each skip logs its rationaleWith the steps actually wired up, 2 of 7 test cases pass (
from_block,not_ptc_member). The remaining 5 are skipped with rationales:valid,multiple_ptc_members_vote_independentlycurrent_slot_and_signaturevalidate_payload_attestation.go), not the fork choice handlerunknown_block_rootVerifyBlockRootSeen)slot_mismatchVerifyBlockSlotMatches)