Skip to content

Commit b22c42b

Browse files
committed
fix test
1 parent a1867c5 commit b22c42b

File tree

4 files changed

+19
-16
lines changed

4 files changed

+19
-16
lines changed

src/block_range_scanner.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -365,15 +365,12 @@ impl<N: Network> Service<N> {
365365
&mut self,
366366
block_confirmations: Option<u64>,
367367
) -> Result<(), BlockRangeScannerError> {
368-
let provider = self.provider.clone();
369-
let latest = self.provider.get_block_number().await?;
370-
let max_read_per_epoch = self.reads_per_epoch.unwrap_or(DEFAULT_BLOCKS_READ_PER_EPOCH);
371-
372368
let Some(sender) = self.subscriber.clone() else {
373369
return Err(BlockRangeScannerError::ServiceShutdown);
374370
};
375371

376372
let block_confirmations = block_confirmations.unwrap_or(DEFAULT_BLOCK_CONFIRMATIONS);
373+
let max_read_per_epoch = self.reads_per_epoch.unwrap_or(DEFAULT_BLOCKS_READ_PER_EPOCH);
377374
let provider = self.provider.clone();
378375
let latest = self.provider.get_block_number().await?;
379376

@@ -383,7 +380,14 @@ impl<N: Network> Service<N> {
383380
let range_start = (latest + 1).saturating_sub(block_confirmations);
384381

385382
tokio::spawn(async move {
386-
Self::stream_live_blocks(range_start, provider, sender, block_confirmations, max_read_per_epoch).await;
383+
Self::stream_live_blocks(
384+
range_start,
385+
provider,
386+
sender,
387+
block_confirmations,
388+
max_read_per_epoch,
389+
)
390+
.await;
387391
});
388392

389393
Ok(())
@@ -626,7 +630,7 @@ impl<N: Network> Service<N> {
626630
// NOTE: Edge case when difference between range end and range start >= max
627631
// reads
628632
let range_end = confirmed
629-
.min(expected_next_block.saturating_add(max_read_per_epoch as u64 - 1));
633+
.min(range_start.saturating_add(max_read_per_epoch as u64 - 1));
630634

631635
if sender
632636
.send(BlockRangeMessage::Data(range_start..=range_end))
@@ -889,8 +893,6 @@ impl BlockRangeScannerClient {
889893

890894
#[cfg(test)]
891895
mod tests {
892-
use std::time::Duration;
893-
894896
use alloy::{
895897
network::Ethereum,
896898
providers::{ProviderBuilder, ext::AnvilApi},

tests/common.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ use alloy::{
1212
use alloy_node_bindings::{Anvil, AnvilInstance};
1313
use event_scanner::{
1414
EventFilter,
15+
block_range_scanner::DEFAULT_BLOCKS_READ_PER_EPOCH,
1516
event_scanner::{EventScanner, EventScannerClient, EventScannerMessage},
1617
};
1718
use tokio_stream::wrappers::ReceiverStream;
@@ -57,7 +58,7 @@ where
5758
pub async fn setup_scanner(
5859
block_interval: Option<f64>,
5960
filter: Option<EventFilter>,
60-
_confirmations: Option<u64>,
61+
max_reads_per_epoch: Option<usize>,
6162
) -> anyhow::Result<TestSetup<impl Provider<Ethereum> + Clone>> {
6263
let anvil = spawn_anvil(block_interval.unwrap_or(0.1))?;
6364
let provider = build_provider(&anvil).await?;
@@ -69,7 +70,10 @@ pub async fn setup_scanner(
6970

7071
let filter = filter.unwrap_or(default_filter);
7172

72-
let mut client = EventScanner::new().connect_ws(anvil.ws_endpoint_url()).await?;
73+
let mut client = EventScanner::new()
74+
.with_max_block_range(max_reads_per_epoch.unwrap_or(DEFAULT_BLOCKS_READ_PER_EPOCH))
75+
.connect_ws(anvil.ws_endpoint_url())
76+
.await?;
7377

7478
let stream = client.create_event_stream(filter);
7579

tests/historic_to_live/reorg.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,15 @@ async fn block_confirmations_mitigate_reorgs_historic_to_live() -> anyhow::Resul
1616
// any reorg ≤ 5 should be invisible to consumers
1717
let block_confirmations = 5;
1818
let TestSetup { provider, contract, client, mut stream, anvil: _anvil } =
19-
setup_scanner(Option::Some(1.0), Option::None, Option::Some(block_confirmations)).await?;
19+
setup_scanner(Option::Some(1.0), Option::None, Option::None).await?;
2020

2121
provider.anvil_mine(Some(10), None).await?;
2222

2323
let start_height = provider.get_block_number().await?.saturating_sub(5);
2424

2525
tokio::spawn(async move {
2626
client
27-
.stream_from(
28-
BlockNumberOrTag::Number(start_height),
29-
Option::Some(block_confirmations),
30-
)
27+
.stream_from(BlockNumberOrTag::Number(start_height), Option::Some(block_confirmations))
3128
.await
3229
});
3330

tests/live_mode/reorg.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ async fn block_confirmations_mitigate_reorgs() -> anyhow::Result<()> {
261261
// any reorg ≤ 5 should be invisible to consumers
262262
let block_confirmations = 5;
263263
let TestSetup { provider, contract, client, mut stream, anvil: _anvil } =
264-
setup_scanner(Option::Some(1.0), Option::None, Option::Some(block_confirmations)).await?;
264+
setup_scanner(Option::Some(1.0), Option::None, Option::None).await?;
265265

266266
tokio::spawn(async move { client.stream_live(Some(block_confirmations)).await });
267267

0 commit comments

Comments
 (0)