merge from unstable

This commit is contained in:
Daniel Knopik
2026-04-29 09:28:01 +02:00
6 changed files with 24 additions and 18 deletions

View File

@@ -226,7 +226,6 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
signed_envelope,
import_data,
payload_verification_outcome,
self.spec.clone(),
))
}

View File

@@ -132,7 +132,6 @@ impl<E: EthSpec> ExecutedEnvelope<E> {
envelope: MaybeAvailableEnvelope<E>,
import_data: EnvelopeImportData<E>,
payload_verification_outcome: PayloadVerificationOutcome,
spec: Arc<ChainSpec>,
) -> Self {
match envelope {
MaybeAvailableEnvelope::Available(available_envelope) => {

View File

@@ -23,12 +23,6 @@ impl<E: EthSpec> PendingColumn<E> {
}
}
// TODO(gloas): insert_from_partial
pub fn has_cell(&self, index: usize) -> bool {
self.cells.get(index).is_some_and(|c| c.is_some())
}
pub fn cell_matches(&self, index: usize, cell: &Cell<E>, proof: &KzgProof) -> Option<bool> {
self.cells
.get(index)?

View File

@@ -81,13 +81,6 @@ impl<E: EthSpec> PendingComponents<E> {
self.envelope = Some(envelope);
}
/// Returns the number of blobs expected by reading the bid's kzg commitments.
/// Returns an error if the bid is not cached. This function should only be called
/// after ensuring that the bid has been cached.
pub fn num_blobs_expected(&self) -> usize {
self.num_blobs_expected
}
pub fn num_completed_columns(&self) -> usize {
self.verified_data_columns
.values()

View File

@@ -3832,12 +3832,10 @@ pub fn generate_data_column_sidecars_from_block<E: EthSpec>(
)
.unwrap();
// TODO(gloas): The fixture is Fulu format. Generate Gloas-specific fixture once format
// is finalized, or compute columns dynamically for Gloas tests.
let (cells, proofs) = template_data_columns
.into_iter()
.map(|sidecar| {
let DataColumnSidecarFulu {
let DataColumnSidecarGloas {
column, kzg_proofs, ..
} = sidecar;
// There's only one cell per column for a single blob

View File

@@ -3627,6 +3627,23 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
self.propagate_if_timely(is_timely, message_id, peer_id)
}
/// If a payload envelope is still valid with respect to the current time (i.e., its slot
/// matches the current slot), propagate it on gossip. Otherwise, ignore it.
fn propagate_envelope_if_timely(
&self,
envelope_slot: Slot,
message_id: MessageId,
peer_id: PeerId,
) {
let is_timely = self
.chain
.slot_clock
.now()
.is_some_and(|current_slot| envelope_slot == current_slot);
self.propagate_if_timely(is_timely, message_id, peer_id)
}
/// If a sync committee signature or sync committee contribution is still valid with respect to
/// the current time (i.e., timely), propagate it on gossip. Otherwise, ignore it.
fn propagate_sync_message_if_timely(
@@ -3831,6 +3848,12 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
let process_fn = Box::pin(async move {
match chain.verify_envelope_for_gossip(envelope).await {
Ok(verified_envelope) => {
let envelope_slot = verified_envelope.signed_envelope.slot();
inner_self.propagate_envelope_if_timely(
envelope_slot,
message_id,
peer_id,
);
inner_self
.process_gossip_verified_execution_payload_envelope(
peer_id,