From 45c95e6366e485a89b462176df0959c4c6d895e7 Mon Sep 17 00:00:00 2001 From: Oscar Pepper Date: Thu, 16 Jan 2025 08:52:38 +0000 Subject: [PATCH] fix overflow bugs --- zingo-sync/src/sync.rs | 9 ++++++--- zingo-sync/src/sync/state.rs | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/zingo-sync/src/sync.rs b/zingo-sync/src/sync.rs index f90c00994..69f5f4ada 100644 --- a/zingo-sync/src/sync.rs +++ b/zingo-sync/src/sync.rs @@ -209,7 +209,10 @@ where .fold(0, |acc, block_range| { acc + (block_range.end - block_range.start) }); - let scanned_blocks = sync_state.initial_sync_state().total_blocks_to_scan() - unscanned_blocks; + let scanned_blocks = sync_state + .initial_sync_state() + .total_blocks_to_scan() + .saturating_sub(unscanned_blocks); let percentage_blocks_scanned = (scanned_blocks as f32 / sync_state.initial_sync_state().total_blocks_to_scan() as f32) * 100.0; @@ -219,11 +222,11 @@ where let scanned_sapling_outputs = sync_state .initial_sync_state() .total_sapling_outputs_to_scan() - - unscanned_sapling_outputs; + .saturating_sub(unscanned_sapling_outputs); let scanned_orchard_outputs = sync_state .initial_sync_state() .total_orchard_outputs_to_scan() - - unscanned_orchard_outputs; + .saturating_sub(unscanned_orchard_outputs); let percentage_outputs_scanned = ((scanned_sapling_outputs + scanned_orchard_outputs) as f32 / (sync_state .initial_sync_state() diff --git a/zingo-sync/src/sync/state.rs b/zingo-sync/src/sync/state.rs index d78ec8e3a..783c0e4e1 100644 --- a/zingo-sync/src/sync/state.rs +++ b/zingo-sync/src/sync/state.rs @@ -557,7 +557,7 @@ where .activation_height(NetworkUpgrade::Sapling) .expect("should have some sapling activation height"); - match block_height.cmp(&sapling_activation_height) { + match block_height.cmp(&(sapling_activation_height - 1)) { cmp::Ordering::Greater => { let frontiers = client::get_frontiers(fetch_request_sender.clone(), block_height) .await