diff --git a/crates/interfaces/src/consensus.rs b/crates/interfaces/src/consensus.rs index bdb1c04ea..a1412fa44 100644 --- a/crates/interfaces/src/consensus.rs +++ b/crates/interfaces/src/consensus.rs @@ -37,18 +37,16 @@ pub trait Consensus: Debug + Send + Sync { /// /// Note: this expects that the headers are in natural order (ascending block number) fn validate_header_range(&self, headers: &[SealedHeader]) -> Result<(), ConsensusError> { - if headers.is_empty() { - return Ok(()) - } - let first = headers.first().expect("checked empty"); - self.validate_header(first)?; - let mut parent = first; - for child in headers.iter().skip(1) { + let mut headers = headers.iter(); + let Some(mut parent) = headers.next() else { + return Ok(()); + }; + self.validate_header(parent)?; + for child in headers { self.validate_header(child)?; self.validate_header_against_parent(child, parent)?; parent = child; } - Ok(()) }