mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-01-09 07:17:56 -05:00
fix(rpc): return empty log set for invalid filter block ranges (#18112)
Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
@@ -145,7 +145,9 @@ where
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Computes the block range based on the filter range and current block numbers
|
||||
/// Computes the block range based on the filter range and current block numbers.
|
||||
///
|
||||
/// This returns `(min(best,from), min(best,to))`.
|
||||
pub fn get_filter_block_range(
|
||||
from_block: Option<u64>,
|
||||
to_block: Option<u64>,
|
||||
|
||||
@@ -500,8 +500,17 @@ where
|
||||
.map(|num| self.provider().convert_block_number(num))
|
||||
.transpose()?
|
||||
.flatten();
|
||||
|
||||
if let Some(f) = from {
|
||||
if f > info.best_number {
|
||||
// start block higher than local head, can return empty
|
||||
return Ok(Vec::new());
|
||||
}
|
||||
}
|
||||
|
||||
let (from_block_number, to_block_number) =
|
||||
logs_utils::get_filter_block_range(from, to, start_block, info);
|
||||
|
||||
self.get_logs_in_block_range(filter, from_block_number, to_block_number, limits)
|
||||
.await
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user