Skip to content

Commit 4134a0b

Browse files
committed
feat: don't force block number on updates
1 parent 3770881 commit 4134a0b

2 files changed

Lines changed: 10 additions & 16 deletions

File tree

crates/uni-v4-common/src/shared_pools.rs

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,17 @@ impl UniswapPools {
6767
return
6868
}
6969

70-
let mut new_block_number = 0;
70+
let mut new_block_number = None;
7171
// we sort ascending
7272
updates.sort_by(|a, b| a.sort(b));
7373

7474
for update in updates {
7575
match update {
7676
PoolUpdate::NewBlock(block_number) => {
77-
new_block_number = block_number;
77+
new_block_number = Some(block_number);
7878
}
7979
PoolUpdate::Reorg { to_block, .. } => {
80-
new_block_number = to_block;
80+
new_block_number = Some(to_block);
8181
}
8282
PoolUpdate::SwapEvent { pool_id, event, .. } => {
8383
let Some(mut pool) = self.pools.get_mut(&pool_id) else {
@@ -151,17 +151,11 @@ impl UniswapPools {
151151
}
152152
}
153153

154-
tracing::debug!("processed block: {}", new_block_number);
155-
156-
assert!(
157-
new_block_number != 0,
158-
"Got a update but no block info with update. Should never happen"
159-
);
160-
161-
self.block_number
162-
.store(new_block_number, std::sync::atomic::Ordering::SeqCst);
163-
164-
self.notifier.notify_waiters();
154+
if let Some(bn) = new_block_number {
155+
self.block_number
156+
.store(bn, std::sync::atomic::Ordering::SeqCst);
157+
self.notifier.notify_waiters();
158+
}
165159
}
166160

167161
/// Update pools using a PoolUpdateDelivery source

examples/pool_manager_with_slot0_stream.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ async fn main() -> eyre::Result<()> {
9696
event_stream
9797
)
9898
.with_slot0_stream(slot0_client)
99-
.with_initial_tick_range_size(300) // Standard tick range
100-
.with_tick_edge_threshold(100) // Standard threshold
99+
.with_initial_tick_range_size(50) // Standard tick range
100+
.with_tick_edge_threshold(10) // Standard threshold
101101
.with_ticks_per_batch(10) // Standard batch size
102102
.with_reorg_detection_blocks(10) // Standard reorg detection
103103
.with_reorg_lookback_block_chunk(100) // Standard chunk size

0 commit comments

Comments
 (0)