mirror of
https://gitlab.com/pulsechaincom/lighthouse-pulse.git
synced 2025-01-13 15:38:21 +00:00
Add get_deserialized
fns to block & state stores.
This commit is contained in:
parent
6fd3a1a03e
commit
271a4cf8a7
@ -26,6 +26,18 @@ impl<T: ClientDB> BeaconBlockStore<T> {
|
|||||||
Self { db }
|
Self { db }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_deserialized(&self, hash: &Hash256) -> Result<Option<BeaconBlock>, DBError> {
|
||||||
|
match self.get(&hash)? {
|
||||||
|
None => Ok(None),
|
||||||
|
Some(ssz) => {
|
||||||
|
let (block, _) = BeaconBlock::ssz_decode(&ssz, 0).map_err(|_| DBError {
|
||||||
|
message: "Bad BeaconBlock SSZ.".to_string(),
|
||||||
|
})?;
|
||||||
|
Ok(Some(block))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Retuns an object implementing `BeaconBlockReader`, or `None` (if hash not known).
|
/// Retuns an object implementing `BeaconBlockReader`, or `None` (if hash not known).
|
||||||
///
|
///
|
||||||
/// Note: Presently, this function fully deserializes a `BeaconBlock` and returns that. In the
|
/// Note: Presently, this function fully deserializes a `BeaconBlock` and returns that. In the
|
||||||
|
@ -19,6 +19,18 @@ impl<T: ClientDB> BeaconStateStore<T> {
|
|||||||
Self { db }
|
Self { db }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_deserialized(&self, hash: &Hash256) -> Result<Option<BeaconState>, DBError> {
|
||||||
|
match self.get(&hash)? {
|
||||||
|
None => Ok(None),
|
||||||
|
Some(ssz) => {
|
||||||
|
let (state, _) = BeaconState::ssz_decode(&ssz, 0).map_err(|_| DBError {
|
||||||
|
message: "Bad State SSZ.".to_string(),
|
||||||
|
})?;
|
||||||
|
Ok(Some(state))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Retuns an object implementing `BeaconStateReader`, or `None` (if hash not known).
|
/// Retuns an object implementing `BeaconStateReader`, or `None` (if hash not known).
|
||||||
///
|
///
|
||||||
/// Note: Presently, this function fully deserializes a `BeaconState` and returns that. In the
|
/// Note: Presently, this function fully deserializes a `BeaconState` and returns that. In the
|
||||||
|
Loading…
Reference in New Issue
Block a user