From 8ff8e90c5e1634cd020046475344284baf9901ea Mon Sep 17 00:00:00 2001 From: Greg Fitzgerald Date: Wed, 14 Feb 2018 13:02:39 -0700 Subject: [PATCH] Cleanup slice verification --- src/tick.rs | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/tick.rs b/src/tick.rs index 000cd41f4e..f7ea7a77ed 100644 --- a/src/tick.rs +++ b/src/tick.rs @@ -49,13 +49,7 @@ impl Tick { /// assert!(!verify_slice(&vec![Tick::new(0, 0), Tick::new(1, 0)], 0)); // lazy inductive case, bad /// ``` pub fn verify_slice(ticks: &[Tick], seed: u64) -> bool { - // Verify the first item against the seed. - match ticks.first() { - None => return true, - Some(x) if !x.verify(seed) => return false, - Some(_) => (), - } - // Verify all follow items using the hash in the item before it. - let mut tick_pairs = ticks.iter().zip(ticks.iter().skip(1)); + let genesis = [Tick { hash: seed, n: 0 }]; + let mut tick_pairs = genesis.iter().chain(ticks).zip(ticks); tick_pairs.all(|(x, x1)| x1.verify(x.hash)) }