refactor: couple ExecutionPayload and ExecutionPayloadSidecar (#14172)

This commit is contained in:
Arsenii Kulikov
2025-02-04 01:04:42 +04:00
committed by GitHub
parent e3106889a8
commit 04c1d7120e
15 changed files with 155 additions and 113 deletions

View File

@ -17,7 +17,9 @@ use async_trait::async_trait;
use jsonrpsee_core::RpcResult;
use parking_lot::Mutex;
use reth_chainspec::{EthereumHardfork, EthereumHardforks};
use reth_engine_primitives::{BeaconConsensusEngineHandle, EngineTypes, EngineValidator};
use reth_engine_primitives::{
BeaconConsensusEngineHandle, EngineTypes, EngineValidator, ExecutionData,
};
use reth_payload_builder::PayloadStore;
use reth_payload_primitives::{
validate_payload_timestamp, EngineApiMessageVersion, PayloadBuilderAttributes,
@ -148,7 +150,7 @@ where
Ok(self
.inner
.beacon_consensus
.new_payload(payload, ExecutionPayloadSidecar::none())
.new_payload(ExecutionData { payload, sidecar: ExecutionPayloadSidecar::none() })
.await
.inspect(|_| self.inner.on_new_payload_response())?)
}
@ -183,7 +185,7 @@ where
Ok(self
.inner
.beacon_consensus
.new_payload(payload, ExecutionPayloadSidecar::none())
.new_payload(ExecutionData { payload, sidecar: ExecutionPayloadSidecar::none() })
.await
.inspect(|_| self.inner.on_new_payload_response())?)
}
@ -222,13 +224,13 @@ where
Ok(self
.inner
.beacon_consensus
.new_payload(
.new_payload(ExecutionData {
payload,
ExecutionPayloadSidecar::v3(CancunPayloadFields {
sidecar: ExecutionPayloadSidecar::v3(CancunPayloadFields {
versioned_hashes,
parent_beacon_block_root,
}),
)
})
.await
.inspect(|_| self.inner.on_new_payload_response())?)
}
@ -272,13 +274,13 @@ where
Ok(self
.inner
.beacon_consensus
.new_payload(
.new_payload(ExecutionData {
payload,
ExecutionPayloadSidecar::v4(
sidecar: ExecutionPayloadSidecar::v4(
CancunPayloadFields { versioned_hashes, parent_beacon_block_root },
PraguePayloadFields { requests: RequestsOrHash::Requests(execution_requests) },
),
)
})
.await
.inspect(|_| self.inner.on_new_payload_response())?)
}

View File

@ -14,7 +14,7 @@ use async_trait::async_trait;
use jsonrpsee::core::RpcResult;
use reth_chainspec::{ChainSpecProvider, EthereumHardforks};
use reth_consensus::{Consensus, FullConsensus, PostExecutionInput};
use reth_engine_primitives::PayloadValidator;
use reth_engine_primitives::{ExecutionData, PayloadValidator};
use reth_errors::{BlockExecutionError, ConsensusError, ProviderError};
use reth_evm::execute::{BlockExecutorProvider, Executor};
use reth_metrics::{metrics, metrics::Gauge, Metrics};
@ -348,13 +348,13 @@ where
) -> Result<(), ValidationApiError> {
let block = self
.payload_validator
.ensure_well_formed_payload(
ExecutionPayload::V3(request.request.execution_payload),
ExecutionPayloadSidecar::v3(CancunPayloadFields {
.ensure_well_formed_payload(ExecutionData {
payload: ExecutionPayload::V3(request.request.execution_payload),
sidecar: ExecutionPayloadSidecar::v3(CancunPayloadFields {
parent_beacon_block_root: request.parent_beacon_block_root,
versioned_hashes: self.validate_blobs_bundle(request.request.blobs_bundle)?,
}),
)?
})?
.try_recover()
.map_err(|_| ValidationApiError::InvalidTransactionSignature)?;
@ -373,9 +373,9 @@ where
) -> Result<(), ValidationApiError> {
let block = self
.payload_validator
.ensure_well_formed_payload(
ExecutionPayload::V3(request.request.execution_payload),
ExecutionPayloadSidecar::v4(
.ensure_well_formed_payload(ExecutionData {
payload: ExecutionPayload::V3(request.request.execution_payload),
sidecar: ExecutionPayloadSidecar::v4(
CancunPayloadFields {
parent_beacon_block_root: request.parent_beacon_block_root,
versioned_hashes: self
@ -387,7 +387,7 @@ where
),
},
),
)?
})?
.try_recover()
.map_err(|_| ValidationApiError::InvalidTransactionSignature)?;