Skip to content

beacon/engine, eth/catalyst: encode payload body access lists - #35374

Closed
0xoasis wants to merge 2 commits into
ethereum:masterfrom
0xoasis:payload-body-v2-bal-rlp
Closed

0xoasis wants to merge 2 commits into
ethereum:masterfrom
0xoasis:payload-body-v2-bal-rlp

Conversation

@0xoasis

@0xoasis 0xoasis commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • encode ExecutionPayloadBodyV2 block access lists as RLP bytes before JSON serialization
  • preserve null for pre-Amsterdam blocks and pruned access lists
  • update the regression test to require 0xc0 for an empty RLP list

Motivation

The Amsterdam Engine API defines ExecutionPayloadBodyV2.blockAccessList as DATA|null containing an RLP-encoded block access list. The V2 implementation exposed bal.BlockAccessList directly, producing structured JSON such as [] instead of hex DATA such as "0xc0". This gives Engine API callers an incompatible response shape.

Specification: https://github.com/ethereum/execution-apis/blob/main/src/engine/amsterdam.md#executionpayloadbodyv2

Validation

  • go test ./eth/catalyst -run TestGetPayloadBodyV2BlockAccessList -count=1
  • go test ./beacon/engine ./eth/catalyst
  • make all
  • go run ./build/ci.go test -short
  • go run ./build/ci.go test
  • go run ./build/ci.go lint
  • go run ./build/ci.go check_generate
  • go run ./build/ci.go check_baddeps

Resolve conflicts by keeping master's RLP encoding of block access
lists in getBodyV2 (already landed via ethereum#35372), including error
handling and the test expectation comment.
@0xoasis

0xoasis commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

Closing as superseded.

The RLP encoding of ExecutionPayloadBodyV2.blockAccessList as hex DATA (and the "0xc0" regression expectation) has already landed on master via related engine API work (see #35372 and surrounding payload-body changes). After merging master, this branch has no remaining unique diff.

@0xoasis 0xoasis closed this Jul 20, 2026
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