diff --git a/beacon_node/beacon_chain/src/data_availability_checker.rs b/beacon_node/beacon_chain/src/data_availability_checker.rs index 2150d7598b..9fc95f0171 100644 --- a/beacon_node/beacon_chain/src/data_availability_checker.rs +++ b/beacon_node/beacon_chain/src/data_availability_checker.rs @@ -607,7 +607,10 @@ impl DataAvailabilityChecker { let all_data_columns = KzgVerifiedCustodyDataColumn::reconstruct_columns( &self.kzg, - &verified_data_columns, + verified_data_columns + .into_iter() + .map(|c| c.into_inner()) + .collect(), &self.spec, ) .map_err(|e| { diff --git a/beacon_node/beacon_chain/src/data_column_verification.rs b/beacon_node/beacon_chain/src/data_column_verification.rs index c360f90301..24911cdc19 100644 --- a/beacon_node/beacon_chain/src/data_column_verification.rs +++ b/beacon_node/beacon_chain/src/data_column_verification.rs @@ -640,17 +640,11 @@ impl KzgVerifiedCustodyDataColumn { pub fn reconstruct_columns( kzg: &Kzg, - partial_set_of_columns: &[Self], + partial_set_of_columns: Vec>>, spec: &ChainSpec, ) -> Result>, KzgError> { - let all_data_columns = reconstruct_data_columns( - kzg, - partial_set_of_columns - .iter() - .map(|d| d.clone_arc()) - .collect::>(), - spec, - )?; + let all_data_columns = + reconstruct_data_columns(kzg, partial_set_of_columns.to_vec(), spec)?; let seen_timestamp = timestamp_now(); diff --git a/beacon_node/beacon_chain/src/pending_payload_cache/mod.rs b/beacon_node/beacon_chain/src/pending_payload_cache/mod.rs index 4f6c0f81d2..5b46270a19 100644 --- a/beacon_node/beacon_chain/src/pending_payload_cache/mod.rs +++ b/beacon_node/beacon_chain/src/pending_payload_cache/mod.rs @@ -317,7 +317,7 @@ impl PendingPayloadCache { let all_data_columns = KzgVerifiedCustodyDataColumn::reconstruct_columns( &self.kzg, - &verified_data_columns, + verified_data_columns, &self.spec, ) .map_err(|e| { @@ -495,7 +495,7 @@ impl PendingPayloadCache { } pending_components.reconstruction_started = true; - ReconstructColumnsDecision::Yes(pending_components.get_cached_data_columns(block_root)) + ReconstructColumnsDecision::Yes(pending_components.get_cached_data_columns(*block_root)) } /// This could mean some invalid data columns made it through to the `DataAvailabilityChecker`. diff --git a/beacon_node/beacon_chain/src/pending_payload_cache/pending_column.rs b/beacon_node/beacon_chain/src/pending_payload_cache/pending_column.rs index 4289f17634..91c0d27b8c 100644 --- a/beacon_node/beacon_chain/src/pending_payload_cache/pending_column.rs +++ b/beacon_node/beacon_chain/src/pending_payload_cache/pending_column.rs @@ -19,7 +19,7 @@ impl PendingColumn { if let Some(existing_cell) = self.cells.get_mut(index) && existing_cell.is_none() { - *existing_cell = Some((cell.clone(), proof.clone())); + *existing_cell = Some((cell.clone(), proof)); } } @@ -49,7 +49,7 @@ impl PendingColumn { }; // TODO(gloas): we likely want to go and arc all cells column.push(cell.clone()); - kzg_proofs.push(proof.clone()); + kzg_proofs.push(proof); } Some(Arc::new(DataColumnSidecar::Gloas(DataColumnSidecarGloas { diff --git a/beacon_node/beacon_chain/src/pending_payload_cache/pending_components.rs b/beacon_node/beacon_chain/src/pending_payload_cache/pending_components.rs index 067a22701f..1d2899d9ee 100644 --- a/beacon_node/beacon_chain/src/pending_payload_cache/pending_components.rs +++ b/beacon_node/beacon_chain/src/pending_payload_cache/pending_components.rs @@ -8,8 +8,8 @@ use std::cmp::Ordering; use std::collections::HashMap; use std::sync::Arc; use tracing::{Span, debug, debug_span}; -use types::Slot; use types::{ChainSpec, ColumnIndex, Epoch, EthSpec, Hash256}; +use types::{DataColumnSidecar, Slot}; /// This represents the components of a payload pending data availability. /// @@ -90,8 +90,8 @@ impl PendingComponents { pub fn num_completed_columns(&self) -> usize { self.verified_data_columns - .iter() - .filter_map(|(_, col)| col.is_complete(self.num_blobs_expected).then_some(())) + .values() + .filter_map(|col| col.is_complete(self.num_blobs_expected).then_some(())) .count() }