clmm_lp_data/
lib.rs

1//! Data ingestion and storage.
2
3/// Prelude module for convenient imports.
4pub mod prelude;
5
6/// Caching layer for market data.
7pub mod cache;
8/// Historical pool state structures.
9pub mod pool_state;
10/// Data providers.
11pub mod providers;
12/// Database repositories.
13pub mod repositories;
14/// In-memory data repository for simulation.
15pub mod repository;
16/// Time series data structures.
17pub mod timeseries;
18
19use anyhow::Result;
20use async_trait::async_trait;
21use clmm_lp_domain::entities::price_candle::PriceCandle;
22use clmm_lp_domain::entities::token::Token;
23
24/// Trait for providing market data.
25#[async_trait]
26pub trait MarketDataProvider {
27    /// Fetches price history for a token pair.
28    async fn get_price_history(
29        &self,
30        token_a: &Token,
31        token_b: &Token,
32        start_time: u64,
33        end_time: u64,
34        resolution: u64, // seconds
35    ) -> Result<Vec<PriceCandle>>;
36}