polymarket 0.1.0

Rust SDK for Polymarket prediction market - CLOB trading, on-chain operations, and WebSocket streaming
Documentation
#[derive(Debug, Clone, serde::Serialize)]
pub struct ClobAuth {
    pub key: String,
    pub secret: String,
    pub passphrase: String,
}

#[derive(Debug, Clone, serde::Serialize)]
pub struct GammaAuth {
    pub address: String,
}

#[derive(Debug, Clone, serde::Serialize)]
pub struct Subscription {
    pub topic: String,
    pub r#type: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub filters: Option<String>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub clob_auth: Option<ClobAuth>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub gamma_auth: Option<GammaAuth>,
}

#[derive(Debug, Clone, serde::Serialize)]
pub struct SubscribeRequest {
    pub action: String,
    pub subscriptions: Vec<Subscription>,
}

impl SubscribeRequest {
    pub fn new(subscriptions: Vec<Subscription>) -> Self {
        Self {
            action: "subscribe".to_string(),
            subscriptions,
        }
    }
}

#[derive(Debug, Clone, serde::Serialize)]
pub struct UnsubscribeRequest {
    pub action: String,
    pub subscriptions: Vec<Subscription>,
}

impl UnsubscribeRequest {
    pub fn new(subscriptions: Vec<Subscription>) -> Self {
        Self {
            action: "unsubscribe".to_string(),
            subscriptions,
        }
    }
}