Skip to content

feat(builder): assemble execution payload bids - #9978

Draft
krisoshea-eth wants to merge 14 commits into
ChainSafe:unstablefrom
krisoshea-eth:krisoshea/bid-assembly
Draft

feat(builder): assemble execution payload bids#9978
krisoshea-eth wants to merge 14 commits into
ChainSafe:unstablefrom
krisoshea-eth:krisoshea/bid-assembly

Conversation

@krisoshea-eth

@krisoshea-eth krisoshea-eth commented Sep 2, 2026

Copy link
Copy Markdown

Motivation

The Builder needs one explicit, tested boundary for turning exact Engine payload material into the fork-correct ExecutionPayloadBid before pricing, signing, publication, and slot orchestration are wired together.

Nico's nflaig/builder proof of concept performs this mapping inside SlotBidder. This PR extracts only the message assembly so the protocol fields and later-fork behavior can be reviewed independently.

Changes

  • Assemble all common bid fields from an exact BuiltPayload plus caller-owned proposal context.
  • Force executionPayment to zero for the p2p trustless bid path.
  • Hash execution requests with the matching fork type.
  • Preserve Gloas and Heze fork correlation.
  • Require Heze inclusionListBits explicitly instead of silently dropping the fork field.
  • Reject runtime payload-fork mismatches and invalid or unsafe numeric bid values with structured errors.

Scope

This PR does not compute bid value, check balance or coverability, retain payload material, select proposer preferences, sign or publish bids, schedule slot work, or wire the Builder runtime.

It is stacked on #9958 for the BuiltPayload contract. Until #9958 merges, this PR's upstream diff includes that dependency. The bid-assembly change itself is two files and one commit.

Tracking: LOD-62

Reference: nflaig/builder at 99fd8fa9ad

Current unstable base: f22c5ce63e

Current head: 8efec66e9c

Testing

Validated on Node.js 24.19.0:

  • 8 focused bid-assembly tests
  • all 48 current Builder unit tests
  • Builder type-check
  • Biome on both changed files
  • Builder build and import check
  • git diff --check

Review plan

Keep this draft separate while the protocol mapping changes. Treat it and #9979 as one logical bid assembly/publication path. If maintainers prefer fewer service-only PRs, combine the two around their first runtime consumer after the foundation interfaces settle.

AI assistance

AI assistance was used during codebase research, implementation, drafting, testing, and review. The submitted code and PR text were reviewed and revised by the author, including technical decisions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant