use alloy::primitives::aliases::U160;
use tracing::debug;
use uniswap_sdk_core::prelude::{Currency, Price, ToBig};
use uniswap_v3_sdk::prelude::Q192;
#[inline]
pub(crate) fn sqrt_price_x96_to_price(
token_a: Currency,
token_b: Currency,
sqrt_price_x96: U160,
) -> Price<Currency, Currency> {
let sqrt_price_x96_big = sqrt_price_x96.to_big_int();
let price =
Price::new(token_a, token_b, Q192.to_big_int(), sqrt_price_x96_big * sqrt_price_x96_big);
debug!("Price calculated from sqrt_price_x96");
price
}