diff --git a/crates/storage/codecs/src/lib.rs b/crates/storage/codecs/src/lib.rs index 082fd7eee3..f3ac5b0e42 100644 --- a/crates/storage/codecs/src/lib.rs +++ b/crates/storage/codecs/src/lib.rs @@ -104,7 +104,9 @@ where let mut element = T::default(); let len = buf.get_u16(); - (element, buf) = T::from_compact(buf, len as usize); + + (element, _) = T::from_compact(&buf[..(len as usize)], len as usize); + buf.advance(len as usize); list.push(element); } @@ -161,7 +163,9 @@ where } let len = buf.get_u16(); - let (element, buf) = T::from_compact(buf, len as usize); + + let (element, _) = T::from_compact(&buf[..(len as usize)], len as usize); + buf.advance(len as usize); (Some(element), buf) } diff --git a/crates/storage/db/src/tables/models/blocks.rs b/crates/storage/db/src/tables/models/blocks.rs index cfae7a66fd..ae307aaf81 100644 --- a/crates/storage/db/src/tables/models/blocks.rs +++ b/crates/storage/db/src/tables/models/blocks.rs @@ -128,6 +128,8 @@ impl_fixed_arbitrary!(BlockNumHash, 40); #[cfg(test)] mod test { + use crate::table::{Compress, Decompress}; + use super::*; use rand::{thread_rng, Rng}; @@ -155,4 +157,15 @@ mod test { let key = BlockNumHash::arbitrary(&mut Unstructured::new(&bytes)).unwrap(); assert_eq!(bytes, Encode::encode(key)); } + + #[test] + fn test_ommer() { + let mut ommer = StoredBlockOmmers::default(); + ommer.ommers.push(Header::default()); + ommer.ommers.push(Header::default()); + assert!( + ommer.clone() == + StoredBlockOmmers::decompress::>(ommer.compress().into()).unwrap() + ); + } }