ostium-rust-sdk 0.1.0

Rust SDK for interacting with the Ostium trading platform on Arbitrum
Documentation
//! # Ostium Rust SDK
//!
//! A modern Rust SDK for interacting with the Ostium trading platform on Arbitrum.
//!
//! ## Features
//!
//! - Type-safe contract interactions using Alloy
//! - Async/await support with Tokio
//! - GraphQL API client for market data
//! - Comprehensive error handling
//! - Support for both mainnet and testnet environments
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use ostium_rust_sdk::{OstiumClient, Network};
//!
//! #[tokio::main]
//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
//!     // Create a new client connected to testnet
//!     let client = OstiumClient::new(Network::Testnet).await?;
//!     
//!     // Get available trading pairs
//!     let pairs = client.get_pairs().await?;
//!     println!("Available pairs: {:?}", pairs);
//!     
//!     Ok(())
//! }
//! ```

#![warn(missing_docs)]
#![deny(unsafe_code)]

// Test comment to demonstrate pre-commit hooks

/// Client module containing the main SDK client
pub mod client;

/// Network configuration module
pub mod config;

/// Error types and handling
pub mod error;

/// Common types used throughout the SDK
pub mod types;

/// Smart contract interfaces and implementations
pub mod contracts;

/// ABI definitions for smart contracts
pub mod abi;

/// Retry module
pub mod retry;

/// Rate limiting module
pub mod rate_limit;

// Re-export main types for convenient access
pub use client::{
    AccountApi, AdvancedOrderApi, MarketDataApi, OstiumClient, OstiumClientBuilder, TradingApi,
    UnsignedTransactionApi,
};
pub use config::{Network, NetworkConfig, NetworkConfigBuilder};
pub use error::{OstiumError, Result};
pub use retry::{CircuitBreaker, CircuitState, RetryConfig, RetryExecutor};
pub use types::*;

// Re-export commonly used external types
pub use alloy_primitives::{Address, U256};
pub use rust_decimal::Decimal;

// Re-export contract interfaces
pub use contracts::*;