mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-03 00:31:50 +00:00
Delete RuntimeVariableList::from_vec (#7930)
This method is a footgun because it truncates the list. It is the source of a recent bug: - https://github.com/sigp/lighthouse/pull/7927 - Delete uses of `RuntimeVariableList::from_vec` and replace them with `::new` which does validation and can fail. - Propagate errors where possible, unwrap in tests and use `expect` for obviously-safe uses (in `chain_spec.rs`).
This commit is contained in:
@@ -25,6 +25,7 @@ redb = { version = "2.1.3", optional = true }
|
||||
safe_arith = { workspace = true }
|
||||
serde = { workspace = true }
|
||||
smallvec = { workspace = true }
|
||||
ssz_types = { workspace = true }
|
||||
state_processing = { workspace = true }
|
||||
strum = { workspace = true }
|
||||
superstruct = { workspace = true }
|
||||
|
||||
@@ -69,6 +69,7 @@ pub enum Error {
|
||||
CacheBuildError(EpochCacheError),
|
||||
RandaoMixOutOfBounds,
|
||||
MilhouseError(milhouse::Error),
|
||||
SszTypesError(ssz_types::Error),
|
||||
Compression(std::io::Error),
|
||||
FinalizedStateDecreasingSlot,
|
||||
FinalizedStateUnaligned,
|
||||
@@ -161,6 +162,12 @@ impl From<milhouse::Error> for Error {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<ssz_types::Error> for Error {
|
||||
fn from(e: ssz_types::Error) -> Self {
|
||||
Self::SszTypesError(e)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<hdiff::Error> for Error {
|
||||
fn from(e: hdiff::Error) -> Self {
|
||||
Self::Hdiff(e)
|
||||
|
||||
@@ -2478,7 +2478,7 @@ impl<E: EthSpec, Hot: ItemStore<E>, Cold: ItemStore<E>> HotColdDB<E, Hot, Cold>
|
||||
.first()
|
||||
.map(|blob| self.spec.max_blobs_per_block(blob.epoch()))
|
||||
{
|
||||
let blobs = BlobSidecarList::from_vec(blobs, max_blobs_per_block as usize);
|
||||
let blobs = BlobSidecarList::new(blobs, max_blobs_per_block as usize)?;
|
||||
self.block_cache
|
||||
.lock()
|
||||
.put_blobs(*block_root, blobs.clone());
|
||||
|
||||
Reference in New Issue
Block a user