predict-sdk 0.1.0

Rust SDK for Predict.fun prediction market - order building, EIP-712 signing, and real-time WebSocket data
Documentation
/// predict.fun SDK for Rust
///
/// Port of the TypeScript SDK for predict.fun prediction market
///
/// # Overview
///
/// This SDK provides functionality to:
/// - Build and sign orders using EIP-712
/// - Interact with predict.fun smart contracts on BNB Chain
/// - Calculate order amounts with proper precision
/// - Manage positions (split, merge, redeem)
///
/// # Example
///
/// ```no_run
/// use predict_sdk::{OrderBuilder, ChainId};
/// use alloy::signers::local::PrivateKeySigner;
///
/// #[tokio::main]
/// async fn main() -> Result<(), Box<dyn std::error::Error>> {
///     let signer = PrivateKeySigner::random();
///     let builder = OrderBuilder::new(ChainId::BnbTestnet, Some(signer), None)?;
///
///     // Build and place orders...
///
///     Ok(())
/// }
/// ```

pub mod api_types;
pub mod client;
pub mod constants;
pub mod errors;
pub mod graphql;
pub mod onchain;
pub mod order_builder;
pub mod types;
pub mod utils;
pub mod websocket;

mod internal;

// Re-export main types
pub use api_types::{
    AuthMessageResponse, AuthRequest, AuthResponse, CategoryResponse, CreateOrderData,
    CreateOrderRequest, GetOrdersResponse, GetPositionsResponse, OrderStatus, PlaceOrderData,
    PlaceOrderResponse, PredictCategory, PredictMarket, PredictOrder, PredictOrderBook,
    PredictOrderData, PredictOutcome, PredictPosition, PredictPositionMarket,
    PredictPositionOutcome, PredictWalletEvent, WalletEventDetails, RemoveOrdersData, RemoveOrdersRequest,
    RemoveOrdersResponse,
};
pub use client::PredictClient;
pub use errors::{Error, Result};
pub use graphql::{CategoryData, MarketData, PredictGraphQL};
pub use onchain::{OnchainClient, SplitOptions};
pub use order_builder::{OrderBuilder, OrderBuilderOptions};
pub use types::{ChainId, MarketType, Order, Side, SignatureType, SignedOrder};