esplora: fix incorrect gap limit check in blocking client
The gap limit was checked such as if the last_index was not None but the last_active_index was, we'd consider having reached it. But the last_index is never None for this check. This effectively made it so the gap limit was always 1: if the first address isn't used last_active_index will be None and we'd return immediately. Fix this by avoiding error-prone Option comparisons and correctly checking we've reached the gap limit before breaking out of the loop.
This commit is contained in:
parent
9e681b39fb
commit
18bd329617
@ -250,7 +250,13 @@ impl EsploraExt for esplora_client::BlockingClient {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if last_index > last_active_index.map(|i| i.saturating_add(stop_gap as u32)) {
|
let last_index = last_index.expect("Must be set since handles wasn't empty.");
|
||||||
|
let past_gap_limit = if let Some(i) = last_active_index {
|
||||||
|
last_index > i.saturating_add(stop_gap as u32)
|
||||||
|
} else {
|
||||||
|
last_index >= stop_gap as u32
|
||||||
|
};
|
||||||
|
if past_gap_limit {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user