Partial columns cleanup (#9321)

#8314 left a few ugly potentially panicking location behind - all of them believed to be unreachable, but this PR fixes them regardless for good hygiene.


  Update to `ethereum_ssz 0.10.4` for two new helpers: `not_inplace` and `clone_zeroed`.

Remove remaining `expect` and `todo!` in favour of these helpers and one new fallible (but practically infallible) method.


Co-Authored-By: Daniel Knopik <daniel@dknopik.de>
This commit is contained in:
Daniel Knopik
2026-05-21 05:25:02 +02:00
committed by GitHub
parent 2c76ee5b6b
commit a9637c1650
6 changed files with 47 additions and 39 deletions

View File

@@ -524,11 +524,15 @@ pub(crate) fn publish_column_sidecars<T: BeaconChainTypes>(
if chain.config.enable_partial_columns
&& let DataColumnSidecar::Fulu(fulu_data_col) = data_col.as_ref()
{
let mut partial = fulu_data_col.to_partial();
if let Some(header) = partial.sidecar.header.take() {
partial_header = Some(header);
match fulu_data_col.to_partial() {
Ok(mut partial) => {
if let Some(header) = partial.sidecar.header.take() {
partial_header = Some(header);
}
partial_columns.push(Arc::new(partial));
}
Err(err) => crit!(?err, "Could not convert from full to partial"),
}
partial_columns.push(Arc::new(partial));
}
let subnet = DataColumnSubnetId::from_column_index(*data_col.index(), &chain.spec);