Skip to main content

AnalyticsReader

Trait AnalyticsReader 

Source
pub trait AnalyticsReader: Send + Sync {
Show 22 methods // Required methods fn get_all_trades<'life0, 'async_trait>( &'life0 self, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_trades_by_option<'life0, 'life1, 'async_trait>( &'life0 self, option_id: &'life1 str, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_trades_by_underlying<'life0, 'life1, 'async_trait>( &'life0 self, underlying: &'life1 str, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_trades_by_account<'life0, 'life1, 'async_trait>( &'life0 self, account: &'life1 WalletAddress, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_trades_for_symbol_in_range<'life0, 'life1, 'async_trait>( &'life0 self, symbol: &'life1 str, start_time_ms: i64, end_time_ms: i64, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_fills_by_account<'life0, 'life1, 'async_trait>( &'life0 self, account: &'life1 WalletAddress, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<FillRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_orders_by_account<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, account: &'life1 WalletAddress, status: Option<&'life2 str>, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<OrderRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn trade_history_exists_for_symbol<'life0, 'life1, 'async_trait>( &'life0 self, symbol: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn historical_theo_history_exists_for_symbol<'life0, 'life1, 'async_trait>( &'life0 self, symbol: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_historical_pnl<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, interval_ms: i64, limit: usize, include_attribution: bool, ) -> Pin<Box<dyn Future<Output = Result<Vec<HistoricalPnlPoint>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_historical_theos<'life0, 'life1, 'async_trait>( &'life0 self, symbol: &'life1 str, interval_ms: i64, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<HistoricalTheoPoint>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_historical_theos_batch<'life0, 'life1, 'async_trait>( &'life0 self, symbols: &'life1 [String], interval_ms: i64, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Vec<HistoricalTheoPoint>>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_vol_surface_history<'life0, 'life1, 'async_trait>( &'life0 self, underlying: &'life1 str, interval_ms: i64, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<VolSurfaceSnapshot>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn load_bbo_snapshots_since<'life0, 'async_trait>( &'life0 self, cutoff_ts: i64, ) -> Pin<Box<dyn Future<Output = Result<Vec<BboSnapshotRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn get_bbo_reference_asks<'life0, 'life1, 'async_trait>( &'life0 self, symbols: &'life1 [String], cutoff_ts: i64, ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, BboReferenceData>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_settlement_payouts<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, limit: i64, offset: i64, symbol: Option<&'life2 str>, ledger_applied: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<(Vec<SettlementPayoutRecord>, i64)>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn get_seen_settlement_payout_ids<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, payout_ids: &'life2 [i64], ) -> Pin<Box<dyn Future<Output = Result<HashSet<i64>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait; fn get_client_ids_by_order_ids<'life0, 'life1, 'async_trait>( &'life0 self, order_ids: &'life1 [i64], ) -> Pin<Box<dyn Future<Output = Result<HashMap<i64, Option<String>>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_theo_marks_at_timestamp<'life0, 'life1, 'async_trait>( &'life0 self, symbols: &'life1 [String], timestamp_ms: i64, ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Decimal>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_deposit_withdraw_events<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, ) -> Pin<Box<dyn Future<Output = Result<Vec<LedgerEventTimeDelta>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_settled_pnl_by_symbol<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, before_ts_ms: i64, ) -> Pin<Box<dyn Future<Output = Result<Vec<(String, Decimal)>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_fills_since_timestamp<'life0, 'async_trait>( &'life0 self, cutoff_timestamp: i64, ) -> Pin<Box<dyn Future<Output = Result<Vec<FillBackfillRecord>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait;
}
Expand description

Read-only analytics queries for the API layer.

Required Methods§

Source

fn get_all_trades<'life0, 'async_trait>( &'life0 self, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Paginated trade history, ordered by timestamp descending.

Source

fn get_trades_by_option<'life0, 'life1, 'async_trait>( &'life0 self, option_id: &'life1 str, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Trades for a specific option symbol (e.g. “BTC-20260131-100000-C”).

Source

fn get_trades_by_underlying<'life0, 'life1, 'async_trait>( &'life0 self, underlying: &'life1 str, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Trades for all instruments with the given underlying (e.g. “BTC”).

Source

fn get_trades_by_account<'life0, 'life1, 'async_trait>( &'life0 self, account: &'life1 WalletAddress, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Trades where the wallet was either maker or taker.

Source

fn get_trades_for_symbol_in_range<'life0, 'life1, 'async_trait>( &'life0 self, symbol: &'life1 str, start_time_ms: i64, end_time_ms: i64, ) -> Pin<Box<dyn Future<Output = Result<Vec<TradeRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Trades for a symbol within a time range (inclusive, ascending order).

Source

fn get_fills_by_account<'life0, 'life1, 'async_trait>( &'life0 self, account: &'life1 WalletAddress, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<FillRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Fills for a wallet, ordered by timestamp descending.

Source

fn get_orders_by_account<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, account: &'life1 WalletAddress, status: Option<&'life2 str>, limit: usize, offset: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<OrderRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Orders for a wallet, optionally filtered by status. Descending by timestamp.

Source

fn trade_history_exists_for_symbol<'life0, 'life1, 'async_trait>( &'life0 self, symbol: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Check whether any trades exist for a symbol.

Source

fn historical_theo_history_exists_for_symbol<'life0, 'life1, 'async_trait>( &'life0 self, symbol: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Check whether any historical theo snapshots exist for a symbol.

Source

fn get_historical_pnl<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, interval_ms: i64, limit: usize, include_attribution: bool, ) -> Pin<Box<dyn Future<Output = Result<Vec<HistoricalPnlPoint>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Historical equity snapshots for a wallet at the given interval. Returns points in ascending timestamp order.

Source

fn get_historical_theos<'life0, 'life1, 'async_trait>( &'life0 self, symbol: &'life1 str, interval_ms: i64, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<HistoricalTheoPoint>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Historical theoretical price snapshots for a symbol at the given interval.

Source

fn get_historical_theos_batch<'life0, 'life1, 'async_trait>( &'life0 self, symbols: &'life1 [String], interval_ms: i64, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Vec<HistoricalTheoPoint>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Batch fetch historical theos for multiple symbols at once.

Source

fn get_vol_surface_history<'life0, 'life1, 'async_trait>( &'life0 self, underlying: &'life1 str, interval_ms: i64, limit: usize, ) -> Pin<Box<dyn Future<Output = Result<Vec<VolSurfaceSnapshot>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Historical vol surface snapshots for an underlying at the given interval.

Source

fn load_bbo_snapshots_since<'life0, 'async_trait>( &'life0 self, cutoff_ts: i64, ) -> Pin<Box<dyn Future<Output = Result<Vec<BboSnapshotRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

BBO snapshots since a cutoff timestamp, ordered by symbol then time.

Source

fn get_bbo_reference_asks<'life0, 'life1, 'async_trait>( &'life0 self, symbols: &'life1 [String], cutoff_ts: i64, ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, BboReferenceData>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Reference best-ask prices for 24h-change calculation. Falls back to the earliest available snapshot if no data exists before the cutoff.

Source

fn get_settlement_payouts<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, limit: i64, offset: i64, symbol: Option<&'life2 str>, ledger_applied: Option<bool>, ) -> Pin<Box<dyn Future<Output = Result<(Vec<SettlementPayoutRecord>, i64)>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Settlement payouts for a wallet with optional filters. Returns (rows, total_count).

Source

fn get_seen_settlement_payout_ids<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, payout_ids: &'life2 [i64], ) -> Pin<Box<dyn Future<Output = Result<HashSet<i64>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Which payout IDs have been marked as “seen” by the user.

Source

fn get_client_ids_by_order_ids<'life0, 'life1, 'async_trait>( &'life0 self, order_ids: &'life1 [i64], ) -> Pin<Box<dyn Future<Output = Result<HashMap<i64, Option<String>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Batch lookup of client_ids by order_ids. Missing orders are omitted.

Source

fn get_theo_marks_at_timestamp<'life0, 'life1, 'async_trait>( &'life0 self, symbols: &'life1 [String], timestamp_ms: i64, ) -> Pin<Box<dyn Future<Output = Result<HashMap<String, Decimal>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Latest theoretical marks for symbols at or before a timestamp.

Source

fn get_deposit_withdraw_events<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, ) -> Pin<Box<dyn Future<Output = Result<Vec<LedgerEventTimeDelta>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Deposit and withdraw ledger events for a wallet, ascending by time.

Source

fn get_settled_pnl_by_symbol<'life0, 'life1, 'async_trait>( &'life0 self, wallet: &'life1 WalletAddress, before_ts_ms: i64, ) -> Pin<Box<dyn Future<Output = Result<Vec<(String, Decimal)>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Net realized PnL per symbol for a wallet, scoped to events at or before the given timestamp. Covers fill_premium, fill_realized_pnl, and settlement_realized_pnl event types.

Source

fn get_fills_since_timestamp<'life0, 'async_trait>( &'life0 self, cutoff_timestamp: i64, ) -> Pin<Box<dyn Future<Output = Result<Vec<FillBackfillRecord>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Recent fills since a cutoff timestamp, ascending by time. Used for cache backfill (market stats).

Implementors§