diff --git a/crates/payload/builder/src/payload.rs b/crates/payload/builder/src/payload.rs index c930585a45..0deb698087 100644 --- a/crates/payload/builder/src/payload.rs +++ b/crates/payload/builder/src/payload.rs @@ -69,7 +69,11 @@ impl From for ExecutionPayloadEnvelope { fn from(value: BuiltPayload) -> Self { let BuiltPayload { block, fees, .. } = value; - ExecutionPayloadEnvelope { block_value: fees, payload: block.into() } + ExecutionPayloadEnvelope { + block_value: fees, + payload: block.into(), + should_override_builder: None, + } } } diff --git a/crates/rpc/rpc-types/src/eth/engine/payload.rs b/crates/rpc/rpc-types/src/eth/engine/payload.rs index 856e872847..84751e7f7a 100644 --- a/crates/rpc/rpc-types/src/eth/engine/payload.rs +++ b/crates/rpc/rpc-types/src/eth/engine/payload.rs @@ -29,9 +29,12 @@ impl std::fmt::Display for PayloadId { } } -/// This structure maps for the return value of `engine_getPayloadV2` of the beacon chain spec. +/// This structure maps for the return value of `engine_getPayload` of the beacon chain spec, for +/// both V2 and V3. /// -/// See also: +/// See also: +/// +/// #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] pub struct ExecutionPayloadEnvelope { /// Execution payload, which could be either V1 or V2 @@ -50,6 +53,10 @@ pub struct ExecutionPayloadEnvelope { // // TODO(mattsse): for V3 // #[serde(rename = "blobsBundle", skip_serializing_if = "Option::is_none")] // pub blobs_bundle: Option, + /// Introduced in V3, this represents a suggestion from the execution layer if the payload + /// should be used instead of an externally provided one. + #[serde(rename = "shouldOverrideBuilder", skip_serializing_if = "Option::is_none")] + pub should_override_builder: Option, } impl ExecutionPayloadEnvelope {