Skip to content
Snippets Groups Projects

Fix #255 distance reading discarded state

Merged Benjamin Gallois requested to merge fix-255 into master
+ 19
12
@@ -40,21 +40,24 @@ where
Backend: sc_client_api::Backend<B>,
IdtyIndex: Decode + Encode + PartialEq + TypeInfo,
{
let pool_index = client
let pool_index = if let Some(index) = client
.storage(
parent,
&StorageKey(
frame_support::storage::storage_prefix(b"Distance", b"CurrentPoolIndex").to_vec(),
),
)
.expect("CurrentIndex is Err")
.map_or(0, |raw| {
u32::decode(&mut &raw.0[..]).expect("cannot decode CurrentIndex")
});
)?
.map_or(None, |raw| u32::decode(&mut &raw.0[..]).ok())
{
index
} else {
log::error!("🧙 [distance oracle] CurrentPoolIndex cannot be decoded");
return Ok(sp_distance::InherentDataProvider::<IdtyIndex>::new(None));
};
let published_results = client
let published_results = if let Some(results) = client
.storage(
parent,
B::Hash::default(),
&StorageKey(
frame_support::storage::storage_prefix(
b"Distance",
@@ -68,10 +71,14 @@ where
.to_vec(),
),
)?
.map_or_else(Default::default, |raw| {
pallet_distance::EvaluationPool::<AccountId32, IdtyIndex>::decode(&mut &raw.0[..])
.expect("cannot decode EvaluationPool")
});
.map_or(None, |raw| {
pallet_distance::EvaluationPool::<AccountId32, IdtyIndex>::decode(&mut &raw.0[..]).ok()
}) {
results
} else {
log::error!("🧙 [distance oracle] EvaluationPool cannot be decoded");
return Ok(sp_distance::InherentDataProvider::<IdtyIndex>::new(None));
};
// Have we already published a result for this period?
// The block author is guaranteed to be in the owner_keys.
Loading