Skip to content

Unblock Gloas submissions through the existing bid-submission wire shape - #514

Open
0w3n-d wants to merge 7 commits into
od/gloas-step4-builder-preferencesfrom
od/gloas-step5-gloas-payload-types
Open

Unblock Gloas submissions through the existing bid-submission wire shape#514
0w3n-d wants to merge 7 commits into
od/gloas-step4-builder-preferencesfrom
od/gloas-step5-gloas-payload-types

Conversation

@0w3n-d

@0w3n-d 0w3n-d commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

Issue: #489 (step 5 of 6, reordered ahead of the original step 5 -- see issue update)

What this PR does

helix's ExecutionPayload/SignedBidSubmission (crates/types/src/bid_submission.rs)
is its own bounded-list builder<->relay wire shape, shared unchanged across
Bellatrix-Fulu -- not a mirror of the real per-fork consensus SSZ types. The
ForkName::Gloas arms in hydration.rs/execution_payload.rs currently hard-error,
which blocks Gloas-fork submissions from decoding at all.

  • Routes ForkName::Gloas through the same decode path ForkName::Fulu already
    uses, in the 4 places that previously errored.
  • Adds ExecutionPayload::to_lighthouse_gloas_payload and
    execution_requests_to_gloas, converting helix's bounded-list submission data
    into the real, progressive-list Gloas consensus types
    (ExecutionPayloadGloas/ExecutionRequestsGloas), for use at the outbound
    bid/envelope boundary.

What this PR deliberately does NOT do

  • Does not wire these conversions into getExecutionPayloadBid or
    submitSignedBeaconBlock yet -- that's the next step.
  • Does not populate block_access_list (EIP-7928) or builder_deposits/
    builder_exits (EIP-8282); left empty with a TODO(gloas) marker since
    there's no producer path for any of these yet.

Tests

Written before implementation, per this repo's workflow:

  • Gloas-fork decode round-trips for all 3 affected hydration paths, mirroring
    the existing Fulu round-trip tests.
  • Field-by-field correctness of both conversion functions (transactions/
    withdrawals/deposits/withdrawals/consolidations preserved, new fields
    defaulted, slot_number set correctly).

Reviewer checklist

  • CI (lint, unit-test) is green
  • This PR matches the step it claims to be (see linked issue)
  • Nothing surprising: no unexplained scope creep, no unrelated files
    touched, no obviously-wrong code the tests happen not to cover

0w3n-d added 7 commits August 24, 2026 17:55
helix's ExecutionPayload/SignedBidSubmission is its own bounded-list
builder<->relay wire shape, shared unchanged across Bellatrix-Fulu; it
is not a mirror of the real per-fork consensus SSZ types. Route the
Gloas fork through the same decode path Fulu already uses instead of
erroring, and add conversion functions producing the real,
progressive-list Gloas consensus types (ExecutionPayloadGloas,
ExecutionRequestsGloas) for use at the outbound bid/envelope boundary.

block_access_list, builder_deposits, and builder_exits are left empty
(TODO(gloas): EIP-7928/EIP-8282, no producer path yet).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant