Skip to content

Implement eth/v1/beacon/execution_payload_envelope#10537

Open
akronim26 wants to merge 15 commits intoConsensys:masterfrom
akronim26:api/execution-payload-envelope
Open

Implement eth/v1/beacon/execution_payload_envelope#10537
akronim26 wants to merge 15 commits intoConsensys:masterfrom
akronim26:api/execution-payload-envelope

Conversation

@akronim26
Copy link
Copy Markdown
Contributor

@akronim26 akronim26 commented Mar 26, 2026

PR Description

This PR implements eth/v1/beacon/execution_payload_envelope endpoint. It uses overloading of publishSignedExecutionPayload function to support the query param block_validation.

Fixed Issue(s)

Fixes #10416

Documentation

  • I thought about documentation and added the doc-change-required label to this PR if updates are required.

Changelog

  • I thought about adding a changelog entry, and added one if I deemed necessary.

Note

Medium Risk
Touches the publish/validation pipeline for execution payload envelopes and changes multiple public interfaces, so incorrect propagation of broadcast_validation could alter validation/broadcast behavior. Scope is contained to Gloas execution payload envelope publishing and is covered by updated unit/integration tests.

Overview
Adds new REST endpoint POST /eth/v1/beacon/execution_payload_envelope (Gloas-only) to submit a SignedExecutionPayloadEnvelope, including support for the broadcast_validation query param and response mapping (200 success, 202 published-but-not-imported, 400 rejected/invalid param).

Plumbs Optional<BroadcastValidationLevel> through ValidatorApiChannel/ExecutionPayloadPublisher/ExecutionPayloadManager into ExecutionPayloadGossipValidator, including a fast-path to skip validation when NOT_REQUIRED is requested and updated “already seen” handling for GOSSIP.

Extends remote validator support by adding a new ValidatorApiMethod route and OkHttp typedef request to call the new endpoint with the consensus version header, and introduces PublishSignedExecutionPayloadResult.notImported to represent accepted-but-not-integrated outcomes; updates affected tests and API spec fixtures accordingly.

Written by Cursor Bugbot for commit 19f30f6. This will update automatically on new commits. Configure here.

SafeFuture<InternalValidationResult> validateAndImportExecutionPayload(
SignedExecutionPayloadEnvelope signedExecutionPayload, Optional<UInt64> arrivalTimestamp);
SignedExecutionPayloadEnvelope signedExecutionPayload,
Optional<UInt64> arrivalTimestamp,

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'arrivalTimestamp' is never used.
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

@akronim26 akronim26 marked this pull request as draft March 27, 2026 09:08
@akronim26 akronim26 marked this pull request as ready for review March 27, 2026 10:21
@akronim26
Copy link
Copy Markdown
Contributor Author

@rolfyone, please review whenever you are free

Copy link
Copy Markdown
Contributor

@rolfyone rolfyone left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks pretty good! Some mostly minor things. Hopefully soon the other PR is merged (beacon-api) with no other changes required...

@akronim26 akronim26 requested a review from rolfyone April 1, 2026 09:37
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.

[beacon-api] POST /eth/v1/beacon/execution_payload_envelope added

3 participants