@@ -93,6 +93,8 @@ impl<N: Network> EventScanner<Historic, N> {
9393#[ cfg( test) ]
9494mod tests {
9595 use super :: * ;
96+ use alloy:: providers:: { Provider , ProviderBuilder } ;
97+ use alloy_node_bindings:: Anvil ;
9698
9799 #[ test]
98100 fn test_historic_scanner_builder_pattern ( ) {
@@ -129,4 +131,36 @@ mod tests {
129131 assert ! ( matches!( builder. config. from_block, BlockNumberOrTag :: Number ( 2 ) ) ) ;
130132 assert ! ( matches!( builder. config. to_block, BlockNumberOrTag :: Number ( 200 ) ) ) ;
131133 }
134+
135+ #[ tokio:: test]
136+ #[ should_panic( expected = "Invalid historical block range" ) ]
137+ async fn test_from_block_above_latest_panics ( ) {
138+ let anvil = Anvil :: new ( ) . try_spawn ( ) . unwrap ( ) ;
139+ let provider = ProviderBuilder :: new ( ) . connect_http ( anvil. endpoint_url ( ) ) ;
140+
141+ let latest_block = provider. get_block_number ( ) . await . unwrap ( ) ;
142+
143+ let _scanner = EventScannerBuilder :: historic ( )
144+ . from_block ( latest_block + 100 )
145+ . to_block ( latest_block)
146+ . connect ( provider)
147+ . await
148+ . unwrap ( ) ;
149+ }
150+
151+ #[ tokio:: test]
152+ #[ should_panic( expected = "Invalid historical block range" ) ]
153+ async fn test_to_block_above_latest_panics ( ) {
154+ let anvil = Anvil :: new ( ) . try_spawn ( ) . unwrap ( ) ;
155+ let provider = ProviderBuilder :: new ( ) . connect_http ( anvil. endpoint_url ( ) ) ;
156+
157+ let latest_block = provider. get_block_number ( ) . await . unwrap ( ) ;
158+
159+ let _scanner = EventScannerBuilder :: historic ( )
160+ . from_block ( 0 )
161+ . to_block ( latest_block + 100 )
162+ . connect ( provider)
163+ . await
164+ . unwrap ( ) ;
165+ }
132166}
0 commit comments