Module parse

Module parse 

Source
Expand description

Parsing utilities for converting dYdX v4 Indexer API responses into Nautilus domain models.

This module contains functions that transform raw JSON data structures from the dYdX Indexer API into strongly-typed Nautilus data types such as instruments, trades, bars, account states, etc.

§Design Principles

  • Validation First: All inputs are validated before parsing
  • Contextual Errors: All errors include context about what was being parsed
  • Zero-Copy When Possible: Uses references and borrows to minimize allocations
  • Type Safety: Leverages Rust’s type system to prevent invalid states

§Error Handling

All parsing functions return anyhow::Result<T> with descriptive error messages that include context about the field being parsed and the value that failed. This makes debugging API changes or data issues much easier.

Functions§

calculate_time_in_force
Calculate time-in-force for conditional orders.
parse_account_state
Parse a dYdX subaccount info into a Nautilus AccountState.
parse_fill_report
Parse a dYdX Fill into a Nautilus FillReport.
parse_instrument_any
Parses a dYdX perpetual market into a Nautilus InstrumentAny.
parse_order_status_report
Parse a dYdX Order into a Nautilus OrderStatusReport.
parse_position_status_report
Parse a dYdX PerpetualPosition into a Nautilus PositionStatusReport.
parse_ticker_currencies
Parses base and quote currency codes from a ticker.
validate_conditional_order
Validate conditional order parameters.
validate_market_active
Validates that a market is active and tradable.
validate_ticker_format
Validates that a ticker has the correct format (BASE-QUOTE).