Merge branch 'gloas-payload-processing' into gloas-devnet-0

This commit is contained in:
Eitan Seri-Levi
2026-02-17 21:27:57 -08:00
2 changed files with 33 additions and 1 deletions

View File

@@ -58,7 +58,8 @@ use crate::observed_data_sidecars::ObservedDataSidecars;
use crate::observed_operations::{ObservationOutcome, ObservedOperations};
use crate::observed_slashable::ObservedSlashable;
use crate::payload_envelope_verification::{
EnvelopeError, ExecutedEnvelope, ExecutionPendingEnvelope,
AvailableEnvelope, EnvelopeError, ExecutedEnvelope, ExecutionPendingEnvelope,
MaybeAvailableEnvelope,
};
use crate::pending_payload_envelopes::PendingPayloadEnvelopes;
use crate::persisted_beacon_chain::PersistedBeaconChain;
@@ -3585,6 +3586,21 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
.map_err(BeaconChainError::TokioJoin)?
.ok_or(BeaconChainError::RuntimeShutdown)??;
// TODO(gloas): implement data column availability checking.
// For now, treat all envelopes as available after EL verification with empty columns.
let signed_envelope = match signed_envelope {
available @ MaybeAvailableEnvelope::Available(_) => available,
MaybeAvailableEnvelope::AvailabilityPending { block_hash, envelope } => {
MaybeAvailableEnvelope::Available(AvailableEnvelope::new(
block_hash,
envelope,
vec![],
None,
self.spec.clone(),
))
}
};
Ok(ExecutedEnvelope::new(
signed_envelope,
import_data,

View File

@@ -84,6 +84,22 @@ pub struct AvailableEnvelope<E: EthSpec> {
}
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> {
&self.envelope.message
}