This commit is contained in:
Eitan Seri-Levi
2026-04-23 01:52:47 +09:00
parent 29f6dfa460
commit f2ce147f79
2 changed files with 28 additions and 12 deletions

View File

@@ -9,7 +9,9 @@ use crate::{
PayloadVerificationOutcome,
block_verification::PayloadVerificationHandle,
payload_envelope_verification::{
AvailableEnvelope, EnvelopeError, EnvelopeImportData, MaybeAvailableEnvelope, gossip_verified_envelope::GossipVerifiedEnvelope, load_snapshot_from_state_root, payload_notifier::PayloadNotifier
AvailableEnvelope, EnvelopeError, EnvelopeImportData, MaybeAvailableEnvelope,
gossip_verified_envelope::GossipVerifiedEnvelope, load_snapshot_from_state_root,
payload_notifier::PayloadNotifier,
},
};
@@ -88,13 +90,12 @@ impl<T: BeaconChainTypes> GossipVerifiedEnvelope<T> {
// once the da cache is implemented we should set this envelope to pending and let the da cache
// handle the availability logic.
Ok(ExecutionPendingEnvelope {
signed_envelope: MaybeAvailableEnvelope::Available(AvailableEnvelope {
execution_block_hash: payload.block_hash,
envelope: signed_envelope,
columns: vec![].into(),
columns_available_timestamp: None,
spec: chain.spec.clone(),
}),
signed_envelope: MaybeAvailableEnvelope::Available(AvailableEnvelope::new(
payload.block_hash,
signed_envelope,
vec![].into(),
chain.spec.clone(),
)),
import_data: EnvelopeImportData {
block_root,
_phantom: Default::default(),

View File

@@ -50,14 +50,29 @@ pub struct EnvelopeImportData<E: EthSpec> {
#[derive(Debug)]
pub struct AvailableEnvelope<E: EthSpec> {
pub execution_block_hash: ExecutionBlockHash,
pub envelope: Arc<SignedExecutionPayloadEnvelope<E>>,
pub columns: DataColumnSidecarList<E>,
pub columns_available_timestamp: Option<std::time::Duration>,
execution_block_hash: ExecutionBlockHash,
envelope: Arc<SignedExecutionPayloadEnvelope<E>>,
columns: DataColumnSidecarList<E>,
columns_available_timestamp: Option<std::time::Duration>,
pub spec: Arc<ChainSpec>,
}
impl<E: EthSpec> AvailableEnvelope<E> {
pub fn new(
execution_block_hash: ExecutionBlockHash,
envelope: Arc<SignedExecutionPayloadEnvelope<E>>,
columns: DataColumnSidecarList<E>,
spec: Arc<ChainSpec>,
) -> Self {
Self {
execution_block_hash,
envelope,
columns,
columns_available_timestamp: None,
spec,
}
}
pub fn message(&self) -> &ExecutionPayloadEnvelope<E> {
&self.envelope.message
}