get rid of unneded type

This commit is contained in:
Daniel Knopik
2026-04-29 10:21:56 +02:00
parent 215a07c22e
commit ab1da0b664
5 changed files with 30 additions and 62 deletions

View File

@@ -1,7 +1,7 @@
use std::sync::Arc; use bls::Hash256;
use slot_clock::SlotClock; use slot_clock::SlotClock;
use state_processing::{VerifySignatures, envelope_processing::verify_execution_payload_envelope}; use state_processing::{VerifySignatures, envelope_processing::verify_execution_payload_envelope};
use std::sync::Arc;
use types::EthSpec; use types::EthSpec;
use crate::{ use crate::{
@@ -9,15 +9,14 @@ use crate::{
PayloadVerificationOutcome, PayloadVerificationOutcome,
block_verification::PayloadVerificationHandle, block_verification::PayloadVerificationHandle,
payload_envelope_verification::{ payload_envelope_verification::{
EnvelopeError, EnvelopeImportData, MaybeAvailableEnvelope, EnvelopeError, MaybeAvailableEnvelope, gossip_verified_envelope::GossipVerifiedEnvelope,
gossip_verified_envelope::GossipVerifiedEnvelope, load_snapshot_from_state_root, load_snapshot_from_state_root, payload_notifier::PayloadNotifier,
payload_notifier::PayloadNotifier,
}, },
}; };
pub struct ExecutionPendingEnvelope<E: EthSpec> { pub struct ExecutionPendingEnvelope<E: EthSpec> {
pub signed_envelope: MaybeAvailableEnvelope<E>, pub signed_envelope: MaybeAvailableEnvelope<E>,
pub import_data: EnvelopeImportData<E>, pub block_root: Hash256,
pub payload_verification_handle: PayloadVerificationHandle, pub payload_verification_handle: PayloadVerificationHandle,
} }
@@ -91,10 +90,7 @@ impl<T: BeaconChainTypes> GossipVerifiedEnvelope<T> {
block_hash: payload.block_hash, block_hash: payload.block_hash,
envelope: signed_envelope, envelope: signed_envelope,
}, },
import_data: EnvelopeImportData {
block_root, block_root,
_phantom: Default::default(),
},
payload_verification_handle, payload_verification_handle,
}) })
} }

View File

@@ -9,8 +9,8 @@ use tracing::{debug, error, info, info_span, instrument, warn};
use types::{BlockImportSource, Hash256, SignedExecutionPayloadEnvelope, Slot}; use types::{BlockImportSource, Hash256, SignedExecutionPayloadEnvelope, Slot};
use super::{ use super::{
AvailableEnvelope, AvailableExecutedEnvelope, EnvelopeError, EnvelopeImportData, AvailableEnvelope, AvailableExecutedEnvelope, EnvelopeError, ExecutedEnvelope,
ExecutedEnvelope, gossip_verified_envelope::GossipVerifiedEnvelope, gossip_verified_envelope::GossipVerifiedEnvelope,
}; };
use crate::pending_payload_cache::Availability as PayloadAvailability; use crate::pending_payload_cache::Availability as PayloadAvailability;
use crate::{ use crate::{
@@ -203,7 +203,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
) -> Result<ExecutedEnvelope<T::EthSpec>, EnvelopeError> { ) -> Result<ExecutedEnvelope<T::EthSpec>, EnvelopeError> {
let ExecutionPendingEnvelope { let ExecutionPendingEnvelope {
signed_envelope, signed_envelope,
import_data, block_root,
payload_verification_handle, payload_verification_handle,
} = pending_envelope; } = pending_envelope;
@@ -217,14 +217,12 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
.payload_verification_status .payload_verification_status
.is_optimistic() .is_optimistic()
{ {
return Err(EnvelopeError::OptimisticSyncNotSupported { return Err(EnvelopeError::OptimisticSyncNotSupported { block_root });
block_root: import_data.block_root,
});
} }
Ok(ExecutedEnvelope::new( Ok(ExecutedEnvelope::new(
signed_envelope, signed_envelope,
import_data, block_root,
payload_verification_outcome, payload_verification_outcome,
)) ))
} }
@@ -236,15 +234,10 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
) -> Result<AvailabilityProcessingStatus, EnvelopeError> { ) -> Result<AvailabilityProcessingStatus, EnvelopeError> {
let AvailableExecutedEnvelope { let AvailableExecutedEnvelope {
envelope, envelope,
import_data, block_root,
payload_verification_outcome, payload_verification_outcome,
} = *envelope; } = *envelope;
let EnvelopeImportData {
block_root,
_phantom,
} = import_data;
let block_root = { let block_root = {
let chain = self.clone(); let chain = self.clone();
self.spawn_blocking_handle( self.spawn_blocking_handle(

View File

@@ -18,7 +18,6 @@
//! //!
//! ``` //! ```
use std::marker::PhantomData;
use std::sync::Arc; use std::sync::Arc;
use state_processing::{BlockProcessingError, envelope_processing::EnvelopeProcessingError}; use state_processing::{BlockProcessingError, envelope_processing::EnvelopeProcessingError};
@@ -42,15 +41,7 @@ mod payload_notifier;
use crate::data_availability_checker::AvailabilityCheckError; use crate::data_availability_checker::AvailabilityCheckError;
pub use execution_pending_envelope::ExecutionPendingEnvelope; pub use execution_pending_envelope::ExecutionPendingEnvelope;
// TODO(gloas): could remove this type completely, or remove the generic
#[derive(Clone, Debug, PartialEq)]
pub struct EnvelopeImportData<E: EthSpec> {
pub block_root: Hash256,
pub _phantom: PhantomData<E>,
}
#[derive(Debug)] #[derive(Debug)]
#[allow(dead_code)]
pub struct AvailableEnvelope<E: EthSpec> { pub struct AvailableEnvelope<E: EthSpec> {
pub execution_block_hash: ExecutionBlockHash, pub execution_block_hash: ExecutionBlockHash,
pub envelope: Arc<SignedExecutionPayloadEnvelope<E>>, pub envelope: Arc<SignedExecutionPayloadEnvelope<E>>,
@@ -127,14 +118,14 @@ pub enum ExecutedEnvelope<E: EthSpec> {
impl<E: EthSpec> ExecutedEnvelope<E> { impl<E: EthSpec> ExecutedEnvelope<E> {
pub fn new( pub fn new(
envelope: MaybeAvailableEnvelope<E>, envelope: MaybeAvailableEnvelope<E>,
import_data: EnvelopeImportData<E>, block_root: Hash256,
payload_verification_outcome: PayloadVerificationOutcome, payload_verification_outcome: PayloadVerificationOutcome,
) -> Self { ) -> Self {
match envelope { match envelope {
MaybeAvailableEnvelope::Available(available_envelope) => { MaybeAvailableEnvelope::Available(available_envelope) => {
Self::Available(AvailableExecutedEnvelope::new( Self::Available(AvailableExecutedEnvelope::new(
available_envelope, available_envelope,
import_data, block_root,
payload_verification_outcome, payload_verification_outcome,
)) ))
} }
@@ -143,7 +134,7 @@ impl<E: EthSpec> ExecutedEnvelope<E> {
envelope, envelope,
} => Self::AvailabilityPending(AvailabilityPendingExecutedEnvelope::new( } => Self::AvailabilityPending(AvailabilityPendingExecutedEnvelope::new(
envelope, envelope,
import_data, block_root,
payload_verification_outcome, payload_verification_outcome,
)), )),
} }
@@ -155,19 +146,19 @@ impl<E: EthSpec> ExecutedEnvelope<E> {
/// fork choice. /// fork choice.
pub struct AvailabilityPendingExecutedEnvelope<E: EthSpec> { pub struct AvailabilityPendingExecutedEnvelope<E: EthSpec> {
pub envelope: Arc<SignedExecutionPayloadEnvelope<E>>, pub envelope: Arc<SignedExecutionPayloadEnvelope<E>>,
pub import_data: EnvelopeImportData<E>, pub block_root: Hash256,
pub payload_verification_outcome: PayloadVerificationOutcome, pub payload_verification_outcome: PayloadVerificationOutcome,
} }
impl<E: EthSpec> AvailabilityPendingExecutedEnvelope<E> { impl<E: EthSpec> AvailabilityPendingExecutedEnvelope<E> {
pub fn new( pub fn new(
envelope: Arc<SignedExecutionPayloadEnvelope<E>>, envelope: Arc<SignedExecutionPayloadEnvelope<E>>,
import_data: EnvelopeImportData<E>, block_root: Hash256,
payload_verification_outcome: PayloadVerificationOutcome, payload_verification_outcome: PayloadVerificationOutcome,
) -> Self { ) -> Self {
Self { Self {
envelope, envelope,
import_data, block_root,
payload_verification_outcome, payload_verification_outcome,
} }
} }
@@ -181,19 +172,19 @@ impl<E: EthSpec> AvailabilityPendingExecutedEnvelope<E> {
/// by an EL client **and** has all requisite blob data to be imported into fork choice. /// by an EL client **and** has all requisite blob data to be imported into fork choice.
pub struct AvailableExecutedEnvelope<E: EthSpec> { pub struct AvailableExecutedEnvelope<E: EthSpec> {
pub envelope: AvailableEnvelope<E>, pub envelope: AvailableEnvelope<E>,
pub import_data: EnvelopeImportData<E>, pub block_root: Hash256,
pub payload_verification_outcome: PayloadVerificationOutcome, pub payload_verification_outcome: PayloadVerificationOutcome,
} }
impl<E: EthSpec> AvailableExecutedEnvelope<E> { impl<E: EthSpec> AvailableExecutedEnvelope<E> {
pub fn new( pub fn new(
envelope: AvailableEnvelope<E>, envelope: AvailableEnvelope<E>,
import_data: EnvelopeImportData<E>, block_root: Hash256,
payload_verification_outcome: PayloadVerificationOutcome, payload_verification_outcome: PayloadVerificationOutcome,
) -> Self { ) -> Self {
Self { Self {
envelope, envelope,
import_data, block_root,
payload_verification_outcome, payload_verification_outcome,
} }
} }

View File

@@ -99,7 +99,7 @@ impl<E: EthSpec> Debug for Availability<E> {
} }
// TODO(gloas) fix success case // TODO(gloas) fix success case
Self::Available(envelope) => { Self::Available(envelope) => {
write!(f, "Available({:?})", envelope.import_data.block_root) write!(f, "Available({:?})", envelope.block_root)
} }
} }
} }
@@ -299,19 +299,11 @@ impl<T: BeaconChainTypes> PendingPayloadCache<T> {
block_root: Hash256, block_root: Hash256,
kzg_verified_data_columns: Vec<KzgVerifiedCustodyDataColumn<T::EthSpec>>, kzg_verified_data_columns: Vec<KzgVerifiedCustodyDataColumn<T::EthSpec>>,
) -> Result<Availability<T::EthSpec>, AvailabilityCheckError> { ) -> Result<Availability<T::EthSpec>, AvailabilityCheckError> {
let mut kzg_verified_data_columns = kzg_verified_data_columns.into_iter().peekable();
let Some(epoch) = kzg_verified_data_columns
.peek()
.map(|verified_col| verified_col.as_data_column().epoch())
else {
return Ok(Availability::MissingComponents(block_root));
};
let pending_components = self.get_pending_components(block_root, |pending_components| { let pending_components = self.get_pending_components(block_root, |pending_components| {
pending_components.merge_data_columns(kzg_verified_data_columns) pending_components.merge_data_columns(kzg_verified_data_columns)
})?; })?;
let num_expected_columns = self.get_num_expected_columns(epoch); let num_expected_columns = self.get_num_expected_columns(pending_components.epoch());
pending_components.span.in_scope(|| { pending_components.span.in_scope(|| {
debug!( debug!(
@@ -644,11 +636,9 @@ async fn availability_cache_maintenance_service<T: BeaconChainTypes>(
#[cfg(test)] #[cfg(test)]
mod data_availability_checker_tests { mod data_availability_checker_tests {
use super::*; use super::*;
use std::marker::PhantomData;
use crate::block_verification::PayloadVerificationOutcome; use crate::block_verification::PayloadVerificationOutcome;
use crate::data_column_verification::{KzgVerifiedCustodyDataColumn, KzgVerifiedDataColumn}; use crate::data_column_verification::{KzgVerifiedCustodyDataColumn, KzgVerifiedDataColumn};
use crate::payload_envelope_verification::EnvelopeImportData;
use crate::test_utils::{ use crate::test_utils::{
NumBlobs, generate_data_column_indices_rand_order, generate_rand_block_and_data_columns, NumBlobs, generate_data_column_indices_rand_order, generate_rand_block_and_data_columns,
test_spec, test_spec,
@@ -664,8 +654,8 @@ mod data_availability_checker_tests {
use store::{HotColdDB, StoreConfig, database::interface::BeaconNodeBackend}; use store::{HotColdDB, StoreConfig, database::interface::BeaconNodeBackend};
use tempfile::{TempDir, tempdir}; use tempfile::{TempDir, tempdir};
use types::{ use types::{
ExecutionPayloadEnvelope, ExecutionPayloadGloas, ExecutionRequests, ForkName, FullPayload, ExecutionPayloadEnvelope, ExecutionPayloadGloas, ExecutionRequests, ForkName,
MinimalEthSpec, SignedBeaconBlock, SignedExecutionPayloadEnvelope, Slot, MinimalEthSpec, SignedExecutionPayloadEnvelope, Slot,
}; };
type E = MinimalEthSpec; type E = MinimalEthSpec;
@@ -784,10 +774,7 @@ mod data_availability_checker_tests {
fn make_test_executed_envelope(block_root: Hash256) -> AvailabilityPendingExecutedEnvelope<E> { fn make_test_executed_envelope(block_root: Hash256) -> AvailabilityPendingExecutedEnvelope<E> {
AvailabilityPendingExecutedEnvelope { AvailabilityPendingExecutedEnvelope {
envelope: make_test_signed_envelope(block_root), envelope: make_test_signed_envelope(block_root),
import_data: EnvelopeImportData {
block_root, block_root,
_phantom: PhantomData,
},
payload_verification_outcome: PayloadVerificationOutcome { payload_verification_outcome: PayloadVerificationOutcome {
payload_verification_status: PayloadVerificationStatus::Verified, payload_verification_status: PayloadVerificationStatus::Verified,
}, },

View File

@@ -110,7 +110,7 @@ impl<E: EthSpec> PendingComponents<E> {
let AvailabilityPendingExecutedEnvelope { let AvailabilityPendingExecutedEnvelope {
envelope, envelope,
import_data, block_root,
payload_verification_outcome, payload_verification_outcome,
} = envelope; } = envelope;
@@ -161,7 +161,7 @@ impl<E: EthSpec> PendingComponents<E> {
Ok(Some(AvailableExecutedEnvelope { Ok(Some(AvailableExecutedEnvelope {
envelope: available_envelope, envelope: available_envelope,
import_data: import_data.clone(), block_root: *block_root,
payload_verification_outcome: payload_verification_outcome.clone(), payload_verification_outcome: payload_verification_outcome.clone(),
})) }))
} }
@@ -186,7 +186,8 @@ impl<E: EthSpec> PendingComponents<E> {
pub fn status_str(&self, num_expected_columns: usize) -> String { pub fn status_str(&self, num_expected_columns: usize) -> String {
format!( format!(
"data_columns {}/{}", "envelope {}, data_columns {}/{}",
self.envelope.is_some(),
self.verified_data_columns.len(), self.verified_data_columns.len(),
num_expected_columns num_expected_columns
) )