diff --git a/polkadot/validation/src/attestation_service.rs b/polkadot/validation/src/attestation_service.rs index 5cbb934059..c670ab6ef1 100644 --- a/polkadot/validation/src/attestation_service.rs +++ b/polkadot/validation/src/attestation_service.rs @@ -54,15 +54,19 @@ pub(crate) fn fetch_candidates>(client: &P, block: &BlockId) use polkadot_runtime::{Call, ParachainsCall, UncheckedExtrinsic as RuntimeExtrinsic}; let extrinsics = client.block_body(block)?; - Ok(extrinsics - .into_iter() - .filter_map(|ex| RuntimeExtrinsic::decode(&mut ex.encode().as_slice())) - .filter_map(|ex| match ex.function { - Call::Parachains(ParachainsCall::set_heads(heads)) => - Some(heads.into_iter().map(|c| c.candidate)), - _ => None, - }) - .next()) + Ok(match extrinsics { + Some(extrinsics) => extrinsics + .into_iter() + .filter_map(|ex| RuntimeExtrinsic::decode(&mut ex.encode().as_slice())) + .filter_map(|ex| match ex.function { + Call::Parachains(ParachainsCall::set_heads(heads)) => { + Some(heads.into_iter().map(|c| c.candidate)) + } + _ => None, + }) + .next(), + None => None, + }) } // creates a task to prune redundant entries in availability store upon block finalization