From 16a7f33b03a9c56ad7c9be7da3ee2e910b661609 Mon Sep 17 00:00:00 2001 From: Thomas Coratger <60488569+tcoratger@users.noreply.github.com> Date: Thu, 17 Oct 2024 21:44:52 +0200 Subject: [PATCH 1/3] chore: update engine api --- Cargo.toml | 2 +- crates/consensus/src/transaction/envelope.rs | 4 +- crates/provider/src/ext/engine.rs | 17 +- crates/rpc-types-beacon/src/payload.rs | 84 +------- crates/rpc-types-beacon/src/relay.rs | 9 +- crates/rpc-types-engine/src/payload.rs | 192 +------------------ 6 files changed, 26 insertions(+), 282 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c040927dbf2..7f31fbf7343 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,7 +81,7 @@ alloy-chains = { version = "0.1.18", default-features = false } # eips alloy-eip2930 = { version = "0.1.0", default-features = false } -alloy-eip7702 = { version = "0.1.1", default-features = false } +alloy-eip7702 = { version = "0.2.0", default-features = false } # ethereum ethereum_ssz_derive = "0.8" diff --git a/crates/consensus/src/transaction/envelope.rs b/crates/consensus/src/transaction/envelope.rs index 9fb2ab855c5..6aa6a0b0504 100644 --- a/crates/consensus/src/transaction/envelope.rs +++ b/crates/consensus/src/transaction/envelope.rs @@ -880,7 +880,7 @@ mod tests { storage_keys: vec![B256::left_padding_from(&[9])], }]), authorization_list: vec![(Authorization { - chain_id: U256::from(1), + chain_id: 1, address: Address::left_padding_from(&[10]), nonce: 1u64, }) @@ -1051,7 +1051,7 @@ mod tests { storage_keys: vec![B256::random()], }]), authorization_list: vec![(Authorization { - chain_id: U256::from(1), + chain_id: 1, address: Address::left_padding_from(&[1]), nonce: 1u64, }) diff --git a/crates/provider/src/ext/engine.rs b/crates/provider/src/ext/engine.rs index 42456fb3402..52c0dfea200 100644 --- a/crates/provider/src/ext/engine.rs +++ b/crates/provider/src/ext/engine.rs @@ -1,11 +1,11 @@ use crate::Provider; use alloy_network::Network; -use alloy_primitives::{BlockHash, B256}; +use alloy_primitives::{BlockHash, Bytes, B256}; use alloy_rpc_types_engine::{ ClientVersionV1, ExecutionPayloadBodiesV1, ExecutionPayloadEnvelopeV2, ExecutionPayloadEnvelopeV3, ExecutionPayloadEnvelopeV4, ExecutionPayloadInputV2, - ExecutionPayloadV1, ExecutionPayloadV3, ExecutionPayloadV4, ForkchoiceState, ForkchoiceUpdated, - PayloadAttributes, PayloadId, PayloadStatus, + ExecutionPayloadV1, ExecutionPayloadV3, ForkchoiceState, ForkchoiceUpdated, PayloadAttributes, + PayloadId, PayloadStatus, }; use alloy_transport::{Transport, TransportResult}; @@ -46,9 +46,10 @@ pub trait EngineApi: Send + Sync { /// See also async fn new_payload_v4( &self, - payload: ExecutionPayloadV4, + payload: ExecutionPayloadV3, versioned_hashes: Vec, parent_beacon_block_root: B256, + execution_requests: Vec, ) -> TransportResult; /// Updates the execution layer client with the given fork choice, as specified for the Paris @@ -210,12 +211,16 @@ where async fn new_payload_v4( &self, - payload: ExecutionPayloadV4, + payload: ExecutionPayloadV3, versioned_hashes: Vec, parent_beacon_block_root: B256, + execution_requests: Vec, ) -> TransportResult { self.client() - .request("engine_newPayloadV4", (payload, versioned_hashes, parent_beacon_block_root)) + .request( + "engine_newPayloadV4", + (payload, versioned_hashes, parent_beacon_block_root, execution_requests), + ) .await } diff --git a/crates/rpc-types-beacon/src/payload.rs b/crates/rpc-types-beacon/src/payload.rs index d6a68b1d95e..13bb1fa3099 100644 --- a/crates/rpc-types-beacon/src/payload.rs +++ b/crates/rpc-types-beacon/src/payload.rs @@ -9,14 +9,10 @@ //! See also use crate::{withdrawals::BeaconWithdrawal, BlsPublicKey}; -use alloy_eips::{ - eip4895::Withdrawal, eip6110::DepositRequest, eip7002::WithdrawalRequest, - eip7251::ConsolidationRequest, -}; +use alloy_eips::eip4895::Withdrawal; use alloy_primitives::{Address, Bloom, Bytes, B256, U256}; use alloy_rpc_types_engine::{ ExecutionPayload, ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3, - ExecutionPayloadV4, }; use serde::{Deserialize, Deserializer, Serialize, Serializer}; use serde_with::{serde_as, DeserializeAs, DisplayFromStr, SerializeAs}; @@ -406,76 +402,6 @@ pub mod beacon_payload_v3 { } } -#[serde_as] -#[derive(Debug, Serialize, Deserialize)] -struct BeaconExecutionPayloadV4<'a> { - /// Inner V1 payload - #[serde(flatten)] - payload_inner: BeaconExecutionPayloadV3<'a>, - deposit_requests: Vec, - withdrawal_requests: Vec, - consolidation_requests: Vec, -} - -impl<'a> From> for ExecutionPayloadV4 { - fn from(payload: BeaconExecutionPayloadV4<'a>) -> Self { - let BeaconExecutionPayloadV4 { - payload_inner, - deposit_requests, - withdrawal_requests, - consolidation_requests, - } = payload; - Self { - payload_inner: payload_inner.into(), - deposit_requests, - withdrawal_requests, - consolidation_requests, - } - } -} - -impl<'a> From<&'a ExecutionPayloadV4> for BeaconExecutionPayloadV4<'a> { - fn from(value: &'a ExecutionPayloadV4) -> Self { - let ExecutionPayloadV4 { - payload_inner, - deposit_requests, - withdrawal_requests, - consolidation_requests, - } = value; - BeaconExecutionPayloadV4 { - payload_inner: payload_inner.into(), - deposit_requests: deposit_requests.clone(), - withdrawal_requests: withdrawal_requests.clone(), - consolidation_requests: consolidation_requests.clone(), - } - } -} - -/// A helper serde module to convert from/to the Beacon API which uses quoted decimals rather than -/// big-endian hex. -pub mod beacon_payload_v4 { - use super::*; - - /// Serialize the payload attributes for the beacon API. - pub fn serialize( - payload_attributes: &ExecutionPayloadV4, - serializer: S, - ) -> Result - where - S: Serializer, - { - BeaconExecutionPayloadV4::from(payload_attributes).serialize(serializer) - } - - /// Deserialize the payload attributes for the beacon API. - pub fn deserialize<'de, D>(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - BeaconExecutionPayloadV4::deserialize(deserializer).map(Into::into) - } -} - /// Represents all possible payload versions. #[derive(Debug, Serialize)] #[serde(untagged)] @@ -486,8 +412,6 @@ enum BeaconExecutionPayload<'a> { V2(BeaconExecutionPayloadV2<'a>), /// V3 payload V3(BeaconExecutionPayloadV3<'a>), - /// V4 payload - V4(BeaconExecutionPayloadV4<'a>), } // Deserializes untagged ExecutionPayload by trying each variant in falling order @@ -499,13 +423,11 @@ impl<'de> Deserialize<'de> for BeaconExecutionPayload<'de> { #[derive(Deserialize)] #[serde(untagged)] enum BeaconExecutionPayloadDesc<'a> { - V4(BeaconExecutionPayloadV4<'a>), V3(BeaconExecutionPayloadV3<'a>), V2(BeaconExecutionPayloadV2<'a>), V1(BeaconExecutionPayloadV1<'a>), } match BeaconExecutionPayloadDesc::deserialize(deserializer)? { - BeaconExecutionPayloadDesc::V4(payload) => Ok(Self::V4(payload)), BeaconExecutionPayloadDesc::V3(payload) => Ok(Self::V3(payload)), BeaconExecutionPayloadDesc::V2(payload) => Ok(Self::V2(payload)), BeaconExecutionPayloadDesc::V1(payload) => Ok(Self::V1(payload)), @@ -519,7 +441,6 @@ impl<'a> From> for ExecutionPayload { BeaconExecutionPayload::V1(payload) => Self::V1(ExecutionPayloadV1::from(payload)), BeaconExecutionPayload::V2(payload) => Self::V2(ExecutionPayloadV2::from(payload)), BeaconExecutionPayload::V3(payload) => Self::V3(ExecutionPayloadV3::from(payload)), - BeaconExecutionPayload::V4(payload) => Self::V4(ExecutionPayloadV4::from(payload)), } } } @@ -536,9 +457,6 @@ impl<'a> From<&'a ExecutionPayload> for BeaconExecutionPayload<'a> { ExecutionPayload::V3(payload) => { BeaconExecutionPayload::V3(BeaconExecutionPayloadV3::from(payload)) } - ExecutionPayload::V4(payload) => { - BeaconExecutionPayload::V4(BeaconExecutionPayloadV4::from(payload)) - } } } } diff --git a/crates/rpc-types-beacon/src/relay.rs b/crates/rpc-types-beacon/src/relay.rs index 77963d57a61..ec60ed684e7 100644 --- a/crates/rpc-types-beacon/src/relay.rs +++ b/crates/rpc-types-beacon/src/relay.rs @@ -3,10 +3,9 @@ //! See also use crate::{BlsPublicKey, BlsSignature}; -use alloy_primitives::{Address, B256, U256}; +use alloy_primitives::{Address, Bytes, B256, U256}; use alloy_rpc_types_engine::{ BlobsBundleV1, ExecutionPayload, ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3, - ExecutionPayloadV4, }; use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DisplayFromStr}; @@ -148,10 +147,12 @@ pub struct SignedBidSubmissionV4 { /// The [`BidTrace`] message associated with the submission. pub message: BidTrace, /// The execution payload for the submission. - #[serde(with = "crate::payload::beacon_payload_v4")] - pub execution_payload: ExecutionPayloadV4, + #[serde(with = "crate::payload::beacon_payload_v3")] + pub execution_payload: ExecutionPayloadV3, /// The Electra block bundle for this bid. pub blobs_bundle: BlobsBundleV1, + /// The Pectra execution requests for this bid. + pub execution_requests: Vec, /// The signature associated with the submission. pub signature: BlsSignature, } diff --git a/crates/rpc-types-engine/src/payload.rs b/crates/rpc-types-engine/src/payload.rs index faa00b4af97..8c67c446d4a 100644 --- a/crates/rpc-types-engine/src/payload.rs +++ b/crates/rpc-types-engine/src/payload.rs @@ -139,8 +139,8 @@ pub struct ExecutionPayloadEnvelopeV3 { #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] #[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] pub struct ExecutionPayloadEnvelopeV4 { - /// Execution payload V4 - pub execution_payload: ExecutionPayloadV4, + /// Execution payload V3 + pub execution_payload: ExecutionPayloadV3, /// The expected value to be received by the feeRecipient in wei pub block_value: U256, /// The blobs, commitments, and proofs associated with the executed payload. @@ -148,6 +148,10 @@ pub struct ExecutionPayloadEnvelopeV4 { /// Introduced in V3, this represents a suggestion from the execution layer if the payload /// should be used instead of an externally provided one. pub should_override_builder: bool, + /// A list of opaque [EIP-7685][eip7685] requests. + /// + /// [eip7685]: https://eips.ethereum.org/EIPS/eip-7685 + pub execution_requests: Vec, } /// This structure maps on the ExecutionPayload structure of the beacon chain spec. @@ -444,157 +448,6 @@ impl ssz::Encode for ExecutionPayloadV3 { } } -/// This structure maps on the ExecutionPayloadV4 structure of the beacon chain spec. -/// -/// See also: -/// -/// This structure has the syntax of ExecutionPayloadV3 and appends the new fields: depositRequests -/// and withdrawalRequests. -#[derive(Clone, Debug, PartialEq, Eq)] -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] -pub struct ExecutionPayloadV4 { - /// Inner V3 payload - #[cfg_attr(feature = "serde", serde(flatten))] - pub payload_inner: ExecutionPayloadV3, - /// Array of deposit requests. - /// - /// This maps directly to the deposit requests defined in [EIP-6110](https://eips.ethereum.org/EIPS/eip-6110). - pub deposit_requests: Vec, - /// Array of execution layer triggerable withdrawal requests. - /// - /// See [EIP-7002](https://eips.ethereum.org/EIPS/eip-7002). - pub withdrawal_requests: Vec, - /// Array of consolidation requests. - /// - /// See [EIP-7251](https://eips.ethereum.org/EIPS/eip-7251). - pub consolidation_requests: Vec, -} - -impl ExecutionPayloadV4 { - /// Returns the withdrawals for the payload. - pub const fn withdrawals(&self) -> &Vec { - self.payload_inner.withdrawals() - } - - /// Returns the timestamp for the payload. - pub const fn timestamp(&self) -> u64 { - self.payload_inner.payload_inner.timestamp() - } -} - -#[cfg(feature = "ssz")] -impl ssz::Decode for ExecutionPayloadV4 { - fn is_ssz_fixed_len() -> bool { - false - } - - fn from_ssz_bytes(bytes: &[u8]) -> Result { - let mut builder = ssz::SszDecoderBuilder::new(bytes); - - builder.register_type::()?; - builder.register_type::
()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::>()?; - builder.register_type::>()?; - builder.register_type::()?; - builder.register_type::()?; - builder.register_type::>()?; - builder.register_type::>()?; - builder.register_type::>()?; - - let mut decoder = builder.build()?; - - Ok(Self { - payload_inner: ExecutionPayloadV3 { - payload_inner: ExecutionPayloadV2 { - payload_inner: ExecutionPayloadV1 { - parent_hash: decoder.decode_next()?, - fee_recipient: decoder.decode_next()?, - state_root: decoder.decode_next()?, - receipts_root: decoder.decode_next()?, - logs_bloom: decoder.decode_next()?, - prev_randao: decoder.decode_next()?, - block_number: decoder.decode_next()?, - gas_limit: decoder.decode_next()?, - gas_used: decoder.decode_next()?, - timestamp: decoder.decode_next()?, - extra_data: decoder.decode_next()?, - base_fee_per_gas: decoder.decode_next()?, - block_hash: decoder.decode_next()?, - transactions: decoder.decode_next()?, - }, - withdrawals: decoder.decode_next()?, - }, - blob_gas_used: decoder.decode_next()?, - excess_blob_gas: decoder.decode_next()?, - }, - deposit_requests: decoder.decode_next()?, - withdrawal_requests: decoder.decode_next()?, - consolidation_requests: decoder.decode_next()?, - }) - } -} - -#[cfg(feature = "ssz")] -impl ssz::Encode for ExecutionPayloadV4 { - fn is_ssz_fixed_len() -> bool { - false - } - - fn ssz_append(&self, buf: &mut Vec) { - let offset = ::ssz_fixed_len() * 5 - +
::ssz_fixed_len() - + ::ssz_fixed_len() - + ::ssz_fixed_len() * 6 - + ::ssz_fixed_len() - + ssz::BYTES_PER_LENGTH_OFFSET * 6; - - let mut encoder = ssz::SszEncoder::container(buf, offset); - - encoder.append(&self.payload_inner.payload_inner.payload_inner.parent_hash); - encoder.append(&self.payload_inner.payload_inner.payload_inner.fee_recipient); - encoder.append(&self.payload_inner.payload_inner.payload_inner.state_root); - encoder.append(&self.payload_inner.payload_inner.payload_inner.receipts_root); - encoder.append(&self.payload_inner.payload_inner.payload_inner.logs_bloom); - encoder.append(&self.payload_inner.payload_inner.payload_inner.prev_randao); - encoder.append(&self.payload_inner.payload_inner.payload_inner.block_number); - encoder.append(&self.payload_inner.payload_inner.payload_inner.gas_limit); - encoder.append(&self.payload_inner.payload_inner.payload_inner.gas_used); - encoder.append(&self.payload_inner.payload_inner.payload_inner.timestamp); - encoder.append(&self.payload_inner.payload_inner.payload_inner.extra_data); - encoder.append(&self.payload_inner.payload_inner.payload_inner.base_fee_per_gas); - encoder.append(&self.payload_inner.payload_inner.payload_inner.block_hash); - encoder.append(&self.payload_inner.payload_inner.payload_inner.transactions); - encoder.append(&self.payload_inner.payload_inner.withdrawals); - encoder.append(&self.payload_inner.blob_gas_used); - encoder.append(&self.payload_inner.excess_blob_gas); - encoder.append(&self.deposit_requests); - encoder.append(&self.withdrawal_requests); - encoder.append(&self.consolidation_requests); - - encoder.finalize(); - } - - fn ssz_bytes_len(&self) -> usize { - ::ssz_bytes_len(&self.payload_inner) - + ssz::BYTES_PER_LENGTH_OFFSET * 3 - + self.deposit_requests.ssz_bytes_len() - + self.withdrawal_requests.ssz_bytes_len() - + self.consolidation_requests.ssz_bytes_len() - } -} - /// This includes all bundled blob related data of an executed payload. #[derive(Clone, Debug, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] @@ -733,8 +586,6 @@ pub enum ExecutionPayload { V2(ExecutionPayloadV2), /// V3 payload V3(ExecutionPayloadV3), - /// V4 payload - V4(ExecutionPayloadV4), } impl ExecutionPayload { @@ -744,7 +595,6 @@ impl ExecutionPayload { Self::V1(payload) => payload, Self::V2(payload) => &payload.payload_inner, Self::V3(payload) => &payload.payload_inner.payload_inner, - Self::V4(payload) => &payload.payload_inner.payload_inner.payload_inner, } } @@ -754,7 +604,6 @@ impl ExecutionPayload { Self::V1(payload) => payload, Self::V2(payload) => &mut payload.payload_inner, Self::V3(payload) => &mut payload.payload_inner.payload_inner, - Self::V4(payload) => &mut payload.payload_inner.payload_inner.payload_inner, } } @@ -764,7 +613,6 @@ impl ExecutionPayload { Self::V1(payload) => payload, Self::V2(payload) => payload.payload_inner, Self::V3(payload) => payload.payload_inner.payload_inner, - Self::V4(payload) => payload.payload_inner.payload_inner.payload_inner, } } @@ -774,7 +622,6 @@ impl ExecutionPayload { Self::V1(_) => None, Self::V2(payload) => Some(payload), Self::V3(payload) => Some(&payload.payload_inner), - Self::V4(payload) => Some(&payload.payload_inner.payload_inner), } } @@ -784,7 +631,6 @@ impl ExecutionPayload { Self::V1(_) => None, Self::V2(payload) => Some(payload), Self::V3(payload) => Some(&mut payload.payload_inner), - Self::V4(payload) => Some(&mut payload.payload_inner.payload_inner), } } @@ -793,7 +639,6 @@ impl ExecutionPayload { match self { Self::V1(_) | Self::V2(_) => None, Self::V3(payload) => Some(payload), - Self::V4(payload) => Some(&payload.payload_inner), } } @@ -802,23 +647,6 @@ impl ExecutionPayload { match self { Self::V1(_) | Self::V2(_) => None, Self::V3(payload) => Some(payload), - Self::V4(payload) => Some(&mut payload.payload_inner), - } - } - - /// Returns a reference to the V4 payload, if any. - pub const fn as_v4(&self) -> Option<&ExecutionPayloadV4> { - match self { - Self::V1(_) | Self::V2(_) | Self::V3(_) => None, - Self::V4(payload) => Some(payload), - } - } - - /// Returns a mutable reference to the V4 payload, if any. - pub fn as_v4_mut(&mut self) -> Option<&mut ExecutionPayloadV4> { - match self { - Self::V1(_) | Self::V2(_) | Self::V3(_) => None, - Self::V4(payload) => Some(payload), } } @@ -879,12 +707,6 @@ impl From for ExecutionPayload { } } -impl From for ExecutionPayload { - fn from(payload: ExecutionPayloadV4) -> Self { - Self::V4(payload) - } -} - // Deserializes untagged ExecutionPayload by trying each variant in falling order #[cfg(feature = "serde")] impl<'de> serde::Deserialize<'de> for ExecutionPayload { @@ -895,13 +717,11 @@ impl<'de> serde::Deserialize<'de> for ExecutionPayload { #[derive(serde::Deserialize)] #[serde(untagged)] enum ExecutionPayloadDesc { - V4(ExecutionPayloadV4), V3(ExecutionPayloadV3), V2(ExecutionPayloadV2), V1(ExecutionPayloadV1), } match ExecutionPayloadDesc::deserialize(deserializer)? { - ExecutionPayloadDesc::V4(payload) => Ok(Self::V4(payload)), ExecutionPayloadDesc::V3(payload) => Ok(Self::V3(payload)), ExecutionPayloadDesc::V2(payload) => Ok(Self::V2(payload)), ExecutionPayloadDesc::V1(payload) => Ok(Self::V1(payload)), From c064f6e41061de62771c02a64235e5173d9843cf Mon Sep 17 00:00:00 2001 From: Yash Atreya <44857776+yash-atreya@users.noreply.github.com> Date: Fri, 18 Oct 2024 15:19:22 +0530 Subject: [PATCH 2/3] use u64 for chain_id in tests --- crates/network/src/ethereum/builder.rs | 4 ++-- crates/rpc-types-eth/src/transaction/mod.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/crates/network/src/ethereum/builder.rs b/crates/network/src/ethereum/builder.rs index e245765d530..42c7647ea5a 100644 --- a/crates/network/src/ethereum/builder.rs +++ b/crates/network/src/ethereum/builder.rs @@ -203,7 +203,7 @@ mod tests { }; use alloy_consensus::{BlobTransactionSidecar, TxEip1559, TxType, TypedTransaction}; use alloy_eips::eip7702::Authorization; - use alloy_primitives::{Address, Signature, U256}; + use alloy_primitives::{Address, Signature}; use alloy_rpc_types_eth::{AccessList, TransactionRequest}; use std::str::FromStr; @@ -268,7 +268,7 @@ mod tests { .with_to(Address::ZERO) .with_access_list(AccessList::default()) .with_authorization_list(vec![(Authorization { - chain_id: U256::from(1), + chain_id: 1, address: Address::left_padding_from(&[1]), nonce: 1u64, }) diff --git a/crates/rpc-types-eth/src/transaction/mod.rs b/crates/rpc-types-eth/src/transaction/mod.rs index 0c6bf437926..4d2ae2d696f 100644 --- a/crates/rpc-types-eth/src/transaction/mod.rs +++ b/crates/rpc-types-eth/src/transaction/mod.rs @@ -472,7 +472,7 @@ mod tests { max_priority_fee_per_gas: Some(22), max_fee_per_blob_gas: None, authorization_list: Some(vec![(Authorization { - chain_id: U256::from(1u64), + chain_id: 1, address: Address::left_padding_from(&[6]), nonce: 1u64, }) @@ -516,7 +516,7 @@ mod tests { max_priority_fee_per_gas: Some(22), max_fee_per_blob_gas: None, authorization_list: Some(vec![(Authorization { - chain_id: U256::from(1u64), + chain_id: 1, address: Address::left_padding_from(&[6]), nonce: 1u64, }) From a971b3a3b364048706c8b3be2ca35b9584425bfd Mon Sep 17 00:00:00 2001 From: Oliver Nordbjerg Date: Fri, 18 Oct 2024 13:26:00 +0200 Subject: [PATCH 3/3] chore: rm types for `engine_getPayloadBodiesByRangeV2` --- crates/rpc-types-engine/src/lib.rs | 2 -- crates/rpc-types-engine/src/payload.rs | 36 +------------------------- 2 files changed, 1 insertion(+), 37 deletions(-) diff --git a/crates/rpc-types-engine/src/lib.rs b/crates/rpc-types-engine/src/lib.rs index 3c8ae1b5d2e..e545137b490 100644 --- a/crates/rpc-types-engine/src/lib.rs +++ b/crates/rpc-types-engine/src/lib.rs @@ -59,6 +59,4 @@ pub const CAPABILITIES: &[&str] = &[ "engine_newPayloadV4", "engine_getPayloadBodiesByHashV1", "engine_getPayloadBodiesByRangeV1", - "engine_getPayloadBodiesByHashV2", - "engine_getPayloadBodiesByRangeV2", ]; diff --git a/crates/rpc-types-engine/src/payload.rs b/crates/rpc-types-engine/src/payload.rs index 8c67c446d4a..b53064ceb5c 100644 --- a/crates/rpc-types-engine/src/payload.rs +++ b/crates/rpc-types-engine/src/payload.rs @@ -5,19 +5,13 @@ use alloc::{ vec::Vec, }; use alloy_consensus::{Blob, Bytes48}; -use alloy_eips::{ - eip4844::BlobTransactionSidecar, eip4895::Withdrawal, eip6110::DepositRequest, - eip7002::WithdrawalRequest, eip7251::ConsolidationRequest, BlockNumHash, -}; +use alloy_eips::{eip4844::BlobTransactionSidecar, eip4895::Withdrawal, BlockNumHash}; use alloy_primitives::{Address, Bloom, Bytes, B256, B64, U256}; use core::iter::{FromIterator, IntoIterator}; /// The execution payload body response that allows for `null` values. pub type ExecutionPayloadBodiesV1 = Vec>; -/// The execution payload body response that allows for `null` values. -pub type ExecutionPayloadBodiesV2 = Vec>; - /// And 8-byte identifier for an execution payload. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Default)] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] @@ -840,34 +834,6 @@ pub struct ExecutionPayloadBodyV1 { pub withdrawals: Option>, } -/// This structure has the syntax of [`ExecutionPayloadBodyV1`] and appends the new fields: -/// depositRequests and withdrawalRequests. -/// -/// See also: -#[derive(Clone, Debug, PartialEq, Eq)] -#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] -#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))] -pub struct ExecutionPayloadBodyV2 { - /// Enveloped encoded transactions. - pub transactions: Vec, - /// All withdrawals in the block. - /// - /// Will always be `None` if pre shanghai. - pub withdrawals: Option>, - /// Array of deposits requests. - /// - /// Will always be `None` if pre prague. - pub deposit_requests: Option>, - /// Array of withdrawal requests. - /// - /// Will always be `None` if pre prague. - pub withdrawal_requests: Option>, - /// Array of consolidation requests. - /// - /// Will always be `None` if pre prague. - pub consolidation_requests: Option>, -} - /// This structure contains the attributes required to initiate a payload build process in the /// context of an `engine_forkchoiceUpdated` call. #[derive(Clone, Debug, PartialEq, Eq)]