Skip to main content

predict_sdk/
lib.rs

1/// predict.fun SDK for Rust
2///
3/// Port of the TypeScript SDK for predict.fun prediction market
4///
5/// # Overview
6///
7/// This SDK provides functionality to:
8/// - Build and sign orders using EIP-712
9/// - Interact with predict.fun smart contracts on BNB Chain
10/// - Calculate order amounts with proper precision
11/// - Manage positions (split, merge, redeem)
12///
13/// # Example
14///
15/// ```no_run
16/// use predict_sdk::{OrderBuilder, ChainId};
17/// use alloy::signers::local::PrivateKeySigner;
18///
19/// #[tokio::main]
20/// async fn main() -> Result<(), Box<dyn std::error::Error>> {
21///     let signer = PrivateKeySigner::random();
22///     let builder = OrderBuilder::new(ChainId::BnbTestnet, Some(signer), None)?;
23///
24///     // Build and place orders...
25///
26///     Ok(())
27/// }
28/// ```
29
30pub mod api_types;
31pub mod client;
32pub mod constants;
33pub mod errors;
34pub mod graphql;
35pub mod onchain;
36pub mod order_builder;
37pub mod types;
38pub mod utils;
39pub mod websocket;
40
41mod internal;
42
43// Re-export main types
44pub use api_types::{
45    AuthMessageResponse, AuthRequest, AuthResponse, CategoryResponse, CreateOrderData,
46    CreateOrderRequest, GetOrdersResponse, GetPositionsResponse, OrderStatus, PlaceOrderData,
47    PlaceOrderResponse, PredictCategory, PredictMarket, PredictOrder, PredictOrderBook,
48    PredictOrderData, PredictOutcome, PredictPosition, PredictPositionMarket,
49    PredictPositionOutcome, PredictWalletEvent, WalletEventDetails, RemoveOrdersData, RemoveOrdersRequest,
50    RemoveOrdersResponse,
51};
52pub use client::PredictClient;
53pub use errors::{Error, Result};
54pub use graphql::{CategoryData, MarketData, PredictGraphQL};
55pub use onchain::{OnchainClient, SplitOptions};
56pub use order_builder::{OrderBuilder, OrderBuilderOptions};
57pub use types::{ChainId, MarketType, Order, Side, SignatureType, SignedOrder};