From 4fccec158aaf2e63b779ddee268633d59f4e16c8 Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Mon, 23 Sep 2019 22:22:19 +1000 Subject: [PATCH] Fix wasted iterations when getting previous state --- beacon_node/beacon_chain/src/beacon_chain.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/beacon_node/beacon_chain/src/beacon_chain.rs b/beacon_node/beacon_chain/src/beacon_chain.rs index f0d1589643..731165f81f 100644 --- a/beacon_node/beacon_chain/src/beacon_chain.rs +++ b/beacon_node/beacon_chain/src/beacon_chain.rs @@ -393,7 +393,8 @@ impl BeaconChain { } else { let state_root = self .rev_iter_state_roots() - .find(|(_root, s)| *s == slot) + .take_while(|(_root, current_slot)| *current_slot >= slot) + .find(|(_root, current_slot)| *current_slot == slot) .map(|(root, _slot)| root) .ok_or_else(|| Error::NoStateForSlot(slot))?;