From f569e93805d4a433f17f3d73077134378115ba87 Mon Sep 17 00:00:00 2001 From: Shuhui Luo Date: Sun, 17 Dec 2023 05:56:50 -0800 Subject: [PATCH] Test `get_positions_slots` --- src/pool_lens.rs | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/src/pool_lens.rs b/src/pool_lens.rs index 77a5fb0..5e44f61 100644 --- a/src/pool_lens.rs +++ b/src/pool_lens.rs @@ -137,7 +137,7 @@ mod tests { use super::*; use crate::bindings::{ i_nonfungible_position_manager::INonfungiblePositionManager, - i_uniswap_v3_pool::IUniswapV3Pool, + i_uniswap_v3_pool::{IUniswapV3Pool, MintFilter}, shared_types::{PositionFull, Slot0}, }; use anyhow::Result; @@ -397,6 +397,31 @@ mod tests { Ok(()) } - // #[tokio::test] - // async fn test_get_positions_slots() -> Result<()> {} + #[tokio::test] + async fn test_get_positions_slots() -> Result<()> { + let client = make_provider().await; + let filter = MintFilter::new::<&Provider, Provider>( + Filter::new().from_block(17000000 - 10000).to_block(17000000), + &client, + ); + let logs = filter.query().await?; + let positions = logs + .iter() + .map( + |&MintFilter { + owner, + tick_lower, + tick_upper, + .. + }| PositionKey { + owner, + tick_lower, + tick_upper, + }, + ) + .collect(); + let slots = get_positions_slots(POOL_ADDRESS.parse()?, positions, client.clone(), Some(*BLOCK_NUMBER)).await?; + verify_slots(slots, client).await; + Ok(()) + } }