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§
Sourcefn 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_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.
Sourcefn 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_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”).
Sourcefn 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_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”).
Sourcefn 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_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.
Sourcefn 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_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).
Sourcefn 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_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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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_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.
Sourcefn 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<'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.
Sourcefn 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_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.
Sourcefn 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 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.
Sourcefn 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 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.
Sourcefn 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_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.
Sourcefn 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_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).
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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_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.
Sourcefn 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,
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).