Skip to content

Commit 18c8654

Browse files
authored
docs: Fix readme examples (#278)
1 parent 281d874 commit 18c8654

File tree

1 file changed

+31
-20
lines changed

1 file changed

+31
-20
lines changed

README.md

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ event-scanner = "0.9.0-alpha"
5959
Create an event stream for the given event filters registered with the `EventScanner`:
6060

6161
```rust
62-
use alloy::{network::Ethereum, providers::{Provider, ProviderBuilder}, sol_types::SolEvent};
62+
use alloy::{network::Ethereum, providers::ProviderBuilder, sol_types::SolEvent};
6363
use event_scanner::{EventFilter, EventScannerBuilder, Message, robust_provider::RobustProviderBuilder};
6464
use tokio_stream::StreamExt;
6565
use tracing::{error, info};
@@ -125,8 +125,8 @@ Once configured, connect using:
125125
This will connect the `EventScanner` and allow you to create event streams and start scanning in various [modes](#scanning-modes).
126126

127127
```rust
128-
use alloy::providers::{Provider, ProviderBuilder};
129-
use event_scanner::robust_provider::RobustProviderBuilder;
128+
use alloy::providers::ProviderBuilder;
129+
use event_scanner::{EventScannerBuilder, robust_provider::RobustProviderBuilder};
130130

131131
// Connect to provider (example with WebSocket)
132132
let provider = ProviderBuilder::new().connect("ws://localhost:8545").await?;
@@ -135,14 +135,16 @@ let provider = ProviderBuilder::new().connect("ws://localhost:8545").await?;
135135
let scanner = EventScannerBuilder::live()
136136
.max_block_range(500) // Optional: set max blocks per read (default: 1000)
137137
.block_confirmations(12) // Optional: set block confirmations (default: 12)
138-
.connect(provider.clone());
138+
.connect(provider.clone())
139+
.await?;
139140

140141
// Historical block range mode
141142
let scanner = EventScannerBuilder::historic()
142143
.from_block(1_000_000)
143144
.to_block(2_000_000)
144145
.max_block_range(500)
145-
.connect(provider.clone());
146+
.connect(provider.clone())
147+
.await?;
146148

147149
// we can also wrap the provider in a RobustProvider
148150
// for more advanced configurations like retries and fallbacks
@@ -153,20 +155,23 @@ let scanner = EventScannerBuilder::latest(100)
153155
// .from_block(1_000_000) // Optional: set start of search range
154156
// .to_block(2_000_000) // Optional: set end of search range
155157
.max_block_range(500)
156-
.connect(robust_provider.clone());
158+
.connect(robust_provider.clone())
159+
.await?;
157160

158161
// Sync from block then switch to live mode
159162
let scanner = EventScannerBuilder::sync()
160163
.from_block(100)
161164
.max_block_range(500)
162165
.block_confirmations(12)
163-
.connect(robust_provider.clone());
166+
.connect(robust_provider.clone())
167+
.await?;
164168

165169
// Sync the latest 60 events then switch to live mode
166170
let scanner = EventScannerBuilder::sync()
167171
.from_latest(60)
168172
.block_confirmations(12)
169-
.connect(robust_provider);
173+
.connect(robust_provider)
174+
.await?;
170175
```
171176

172177
Invoking `scanner.start()` starts the scanner in the specified mode.
@@ -176,25 +181,28 @@ Invoking `scanner.start()` starts the scanner in the specified mode.
176181
Create an `EventFilter` for each event stream you wish to process. The filter specifies the contract address where events originated, and event signatures (tip: you can use the value stored in `SolEvent::SIGNATURE`).
177182

178183
```rust
184+
use alloy::sol_types::SolEvent;
185+
use event_scanner::EventFilter;
186+
179187
// Track a SPECIFIC event from a SPECIFIC contract
180188
let specific_filter = EventFilter::new()
181-
.contract_address(*counter_contract.address())
182-
.event(Counter::CountIncreased::SIGNATURE);
189+
.contract_address(*my_contract.address())
190+
.event(MyContract::SomeEvent::SIGNATURE);
183191

184192
// Track multiple events from a SPECIFIC contract
185193
let specific_filter = EventFilter::new()
186-
.contract_address(*counter_contract.address())
187-
.event(Counter::CountIncreased::SIGNATURE)
188-
.event(Counter::CountDecreased::SIGNATURE);
194+
.contract_address(*my_contract.address())
195+
.event(MyContract::SomeEvent::SIGNATURE)
196+
.event(MyContract::OtherEvent::SIGNATURE);
189197

190198
// Track a SPECIFIC event from ALL contracts
191199
let specific_filter = EventFilter::new()
192-
.event(Counter::CountIncreased::SIGNATURE);
200+
.event(MyContract::SomeEvent::SIGNATURE);
193201

194202
// Track ALL events from SPECIFIC contracts
195203
let all_contract_events_filter = EventFilter::new()
196-
.contract_address(*counter_contract.address())
197-
.contract_address(*other_counter_contract.address());
204+
.contract_address(*my_contract.address())
205+
.contract_address(*other_contract.address());
198206

199207
// Track ALL events from ALL contracts
200208
let all_events_filter = EventFilter::new();
@@ -211,17 +219,17 @@ Batch builder examples:
211219
```rust
212220
// Multiple contract addresses at once
213221
let multi_addr = EventFilter::new()
214-
.contract_addresses([*counter_contract.address(), *other_counter_contract.address()]);
222+
.contract_addresses([*my_contract.address(), *other_contract.address()]);
215223

216224
// Multiple event names at once
217225
let multi_events = EventFilter::new()
218-
.events([Counter::CountIncreased::SIGNATURE, Counter::CountDecreased::SIGNATURE]);
226+
.events([MyContract::SomeEvent::SIGNATURE, MyContract::OtherEvent::SIGNATURE]);
219227

220228
// Multiple event signature hashes at once
221229
let multi_sigs = EventFilter::new()
222230
.event_signatures([
223-
Counter::CountIncreased::SIGNATURE_HASH,
224-
Counter::CountDecreased::SIGNATURE_HASH,
231+
MyContract::SomeEvent::SIGNATURE_HASH,
232+
MyContract::OtherEvent::SIGNATURE_HASH,
225233
]);
226234
```
227235

@@ -303,6 +311,9 @@ async fn example() -> anyhow::Result<()> {
303311
.subscription_timeout(Duration::from_secs(120))
304312
.build()
305313
.await?;
314+
315+
// ...
316+
306317
Ok(())
307318
}
308319
```

0 commit comments

Comments
 (0)