This commit is contained in:
Eitan Seri- Levi
2026-03-31 10:40:39 -07:00
parent 95a58393c6
commit 7645064a38
2 changed files with 24 additions and 6 deletions

View File

@@ -12,7 +12,7 @@ use crate::{
PayloadVerificationOutcome, PayloadVerificationOutcome,
block_verification::PayloadVerificationHandle, block_verification::PayloadVerificationHandle,
payload_envelope_verification::{ payload_envelope_verification::{
EnvelopeError, EnvelopeImportData, MaybeAvailableEnvelope, AvailableEnvelope, EnvelopeError, EnvelopeImportData, MaybeAvailableEnvelope,
gossip_verified_envelope::GossipVerifiedEnvelope, load_snapshot_from_state_root, gossip_verified_envelope::GossipVerifiedEnvelope, load_snapshot_from_state_root,
payload_notifier::PayloadNotifier, payload_notifier::PayloadNotifier,
}, },
@@ -32,7 +32,6 @@ impl<T: BeaconChainTypes> GossipVerifiedEnvelope<T> {
) -> Result<ExecutionPendingEnvelope<T::EthSpec>, EnvelopeError> { ) -> Result<ExecutionPendingEnvelope<T::EthSpec>, EnvelopeError> {
let signed_envelope = self.signed_envelope; let signed_envelope = self.signed_envelope;
let envelope = &signed_envelope.message; let envelope = &signed_envelope.message;
let payload = &envelope.payload;
// Define a future that will verify the execution payload with an execution engine. // Define a future that will verify the execution payload with an execution engine.
// //
@@ -91,10 +90,13 @@ impl<T: BeaconChainTypes> GossipVerifiedEnvelope<T> {
)?; )?;
Ok(ExecutionPendingEnvelope { Ok(ExecutionPendingEnvelope {
signed_envelope: MaybeAvailableEnvelope::AvailabilityPending { signed_envelope: MaybeAvailableEnvelope::Available(AvailableEnvelope::new(
block_hash: payload.block_hash, signed_envelope.block_hash(),
envelope: signed_envelope, signed_envelope.clone(),
}, vec![],
None,
chain.spec.clone(),
)),
import_data: EnvelopeImportData { import_data: EnvelopeImportData {
block_root, block_root,
post_state: Box::new(state), post_state: Box::new(state),

View File

@@ -59,6 +59,22 @@ pub struct AvailableEnvelope<E: EthSpec> {
} }
impl<E: EthSpec> AvailableEnvelope<E> { impl<E: EthSpec> AvailableEnvelope<E> {
pub fn new(
execution_block_hash: ExecutionBlockHash,
envelope: Arc<SignedExecutionPayloadEnvelope<E>>,
columns: DataColumnSidecarList<E>,
columns_available_timestamp: Option<std::time::Duration>,
spec: Arc<ChainSpec>,
) -> Self {
Self {
execution_block_hash,
envelope,
columns,
columns_available_timestamp,
spec,
}
}
pub fn message(&self) -> &ExecutionPayloadEnvelope<E> { pub fn message(&self) -> &ExecutionPayloadEnvelope<E> {
&self.envelope.message &self.envelope.message
} }