peerdas-devnet-7: update DataColumnSidecarsByRoot request to use DataColumnsByRootIdentifier (#7399)

Update DataColumnSidecarsByRoot request to use DataColumnsByRootIdentifier #7377


  As described in https://github.com/ethereum/consensus-specs/pull/4284
This commit is contained in:
SunnysidedJ
2025-05-12 09:20:55 +09:00
committed by GitHub
parent 92391cdac6
commit 593390162f
19 changed files with 262 additions and 208 deletions

View File

@@ -1,6 +1,9 @@
use lighthouse_network::rpc::methods::DataColumnsByRootRequest;
use std::sync::Arc;
use types::{ChainSpec, DataColumnIdentifier, DataColumnSidecar, EthSpec, Hash256};
use types::{
ChainSpec, DataColumnSidecar, DataColumnsByRootIdentifier, EthSpec, ForkName, Hash256,
RuntimeVariableList,
};
use super::{ActiveRequestItems, LookupVerifyError};
@@ -11,17 +14,21 @@ pub struct DataColumnsByRootSingleBlockRequest {
}
impl DataColumnsByRootSingleBlockRequest {
pub fn into_request(self, spec: &ChainSpec) -> DataColumnsByRootRequest {
DataColumnsByRootRequest::new(
self.indices
.into_iter()
.map(|index| DataColumnIdentifier {
block_root: self.block_root,
index,
})
.collect(),
spec,
)
pub fn try_into_request(
self,
fork_name: ForkName,
spec: &ChainSpec,
) -> Result<DataColumnsByRootRequest, &'static str> {
let number_of_columns = spec.number_of_columns as usize;
let columns = RuntimeVariableList::new(self.indices, number_of_columns)
.map_err(|_| "Number of indices exceeds total number of columns")?;
Ok(DataColumnsByRootRequest::new(
vec![DataColumnsByRootIdentifier {
block_root: self.block_root,
columns,
}],
spec.max_request_blocks(fork_name),
))
}
}