@@ -60,7 +60,7 @@ Create an event stream for the given event filters registered with the `EventSca
6060
6161``` rust
6262use alloy :: {network :: Ethereum , providers :: {Provider , ProviderBuilder }, sol_types :: SolEvent };
63- use event_scanner :: {EventFilter , EventScannerBuilder , Message , robust_provider :: RobustProvider };
63+ use event_scanner :: {EventFilter , EventScannerBuilder , Message , robust_provider :: RobustProviderBuilder };
6464use tokio_stream :: StreamExt ;
6565
6666use crate :: MyContract ;
@@ -71,7 +71,7 @@ async fn run_scanner(
7171) -> Result <(), Box <dyn std :: error :: Error >> {
7272 // Connect to provider
7373 let provider = ProviderBuilder :: new (). connect (ws_url ). await ? ;
74- let robust_provider = RobustProvider :: new (provider );
74+ let robust_provider = RobustProviderBuilder :: new (provider ). build () . await ? ;
7575
7676 // Configure scanner with custom batch size (optional)
7777 let mut scanner = EventScannerBuilder :: live ()
@@ -116,30 +116,33 @@ async fn run_scanner(
116116` EventScannerBuilder ` provides mode-specific constructors and functions to configure settings before connecting.
117117Once configured, connect using:
118118
119- - ` connect(robust_provider ) ` - Connect using a ` RobustProvider ` wrapping your alloy provider
119+ - ` connect(provider ) ` - Connect using a ` RobustProvider ` wrapping your alloy provider or using an alloy provider directly
120120
121121This will connect the ` EventScanner ` and allow you to create event streams and start scanning in various [ modes] ( #scanning-modes ) .
122122
123123``` rust
124124use alloy :: providers :: {Provider , ProviderBuilder };
125- use event_scanner :: robust_provider :: RobustProvider ;
125+ use event_scanner :: robust_provider :: RobustProviderBuilder ;
126126
127127// Connect to provider (example with WebSocket)
128128let provider = ProviderBuilder :: new (). connect (" ws://localhost:8545" ). await ? ;
129- let robust_provider = RobustProvider :: new (provider );
130129
131130// Live streaming mode
132131let scanner = EventScannerBuilder :: live ()
133132 . max_block_range (500 ) // Optional: set max blocks per read (default: 1000)
134133 . block_confirmations (12 ) // Optional: set block confirmations (default: 12)
135- . connect (robust_provider . clone ());
134+ . connect (provider . clone ());
136135
137136// Historical block range mode
138137let scanner = EventScannerBuilder :: historic ()
139138 . from_block (1_000_000 )
140139 . to_block (2_000_000 )
141140 . max_block_range (500 )
142- . connect (robust_provider . clone ());
141+ . connect (provider . clone ());
142+
143+ // we can also wrap the provider in a RobustProvider
144+ // for more advanced configurations like retries and fallbacks
145+ let robust_provider = RobustProviderBuilder :: new (provider ). build (). await ? ;
143146
144147// Latest events mode
145148let scanner = EventScannerBuilder :: latest (100 )
0 commit comments