pub mod coingecko_api;
pub mod forced_price_client;
mod utils;
use std::fmt;
use async_trait::async_trait;
use zksync_types::{base_token_ratio::BaseTokenAPIRatio, Address};
#[async_trait]
pub trait PriceAPIClient: Sync + Send + fmt::Debug + 'static {
async fn fetch_ratio(&self, token_address: Address) -> anyhow::Result<BaseTokenAPIRatio>;
}
#[derive(Debug, Clone)]
pub struct NoOpPriceAPIClient;
#[async_trait]
impl PriceAPIClient for NoOpPriceAPIClient {
async fn fetch_ratio(&self, _token_address: Address) -> anyhow::Result<BaseTokenAPIRatio> {
Ok(BaseTokenAPIRatio::default())
}
}
fn address_to_string(address: &Address) -> String {
format!("{:#x}", address)
}