fix: omit duplicate methods

This commit is contained in:
floor-licker
2025-11-04 22:57:43 -05:00
parent 0ff584d6ee
commit d4d22e07ac
3 changed files with 75 additions and 153 deletions
+7 -95
View File
@@ -1152,107 +1152,19 @@ impl ClobClient {
} }
} }
// Response types for API calls // Re-export types from the canonical location in types.rs
#[derive(Debug, serde::Deserialize)] pub use crate::types::{
pub struct MarketsResponse { ExtraOrderArgs, MarketOrderArgs, OrderBookSummary, OrderSummary,
pub limit: Decimal, MidpointResponse, SpreadResponse, PriceResponse, TickSizeResponse,
pub count: Decimal, NegRiskResponse, MarketsResponse, Market, Token, Rewards,
pub next_cursor: Option<String>, };
pub data: Vec<Market>,
}
#[derive(Debug, serde::Deserialize)]
pub struct Market {
pub condition_id: String,
pub tokens: [Token; 2],
pub rewards: Rewards,
pub min_incentive_size: Option<String>,
pub max_incentive_spread: Option<String>,
pub active: bool,
pub closed: bool,
pub question_id: String,
pub minimum_order_size: Decimal,
pub minimum_tick_size: Decimal,
pub description: String,
pub category: Option<String>,
pub end_date_iso: Option<String>,
pub game_start_time: Option<String>,
pub question: String,
pub market_slug: String,
pub seconds_delay: Decimal,
pub icon: String,
pub fpmm: String,
}
#[derive(Debug, serde::Deserialize)]
pub struct Token {
pub token_id: String,
pub outcome: String,
}
#[derive(Debug, serde::Deserialize)]
pub struct Rewards {
pub rates: Option<serde_json::Value>,
pub min_size: Decimal,
pub max_spread: Decimal,
pub event_start_date: Option<String>,
pub event_end_date: Option<String>,
pub in_game_multiplier: Option<Decimal>,
pub reward_epoch: Option<Decimal>,
}
#[derive(Debug, serde::Deserialize)]
pub struct OrderBookSummary {
pub market: String,
pub asset_id: String,
pub hash: String,
#[serde(deserialize_with = "crate::decode::deserializers::number_from_string")]
pub timestamp: u64,
pub bids: Vec<OrderSummary>,
pub asks: Vec<OrderSummary>,
}
#[derive(Debug, serde::Deserialize)]
pub struct OrderSummary {
#[serde(with = "rust_decimal::serde::str")]
pub price: Decimal,
#[serde(with = "rust_decimal::serde::str")]
pub size: Decimal,
}
#[derive(Debug, serde::Deserialize)]
pub struct MidpointResponse {
pub mid: Decimal,
}
#[derive(Debug, serde::Deserialize)]
pub struct SpreadResponse {
pub spread: Decimal,
}
#[derive(Debug, serde::Deserialize)]
pub struct PriceResponse {
pub price: Decimal,
}
// Additional types for full compatibility with polymarket-rs-client
pub use crate::types::{ExtraOrderArgs, MarketOrderArgs};
// Compatibility types that need to stay in client.rs
#[derive(Debug, Default)] #[derive(Debug, Default)]
pub struct CreateOrderOptions { pub struct CreateOrderOptions {
pub tick_size: Option<Decimal>, pub tick_size: Option<Decimal>,
pub neg_risk: Option<bool>, pub neg_risk: Option<bool>,
} }
#[derive(Debug, serde::Deserialize)]
pub struct TickSizeResponse {
pub minimum_tick_size: Decimal,
}
#[derive(Debug, serde::Deserialize)]
pub struct NegRiskResponse {
pub neg_risk: bool,
}
// Re-export for compatibility // Re-export for compatibility
pub type PolyfillClient = ClobClient; pub type PolyfillClient = ClobClient;
+1 -1
View File
@@ -101,7 +101,7 @@ pub use crate::types::{
// Additional compatibility types // Additional compatibility types
ApiKeysResponse, MidpointResponse, PriceResponse, SpreadResponse, TickSizeResponse, ApiKeysResponse, MidpointResponse, PriceResponse, SpreadResponse, TickSizeResponse,
NegRiskResponse, BookParams, MarketsResponse, SimplifiedMarketsResponse, Market, NegRiskResponse, BookParams, MarketsResponse, SimplifiedMarketsResponse, Market,
SimplifiedMarket, Token, Rewards, ClientResult, SimplifiedMarket, Token, Rewards, ClientResult, OrderBookSummary, OrderSummary,
}; };
// Re-export client // Re-export client
+67 -57
View File
@@ -861,6 +861,52 @@ pub struct BalanceAllowance {
pub allowance: Decimal, pub allowance: Decimal,
} }
/// Parameters for balance allowance queries (from reference implementation)
#[derive(Default)]
pub struct BalanceAllowanceParams {
pub asset_type: Option<AssetType>,
pub token_id: Option<String>,
pub signature_type: Option<u8>,
}
impl BalanceAllowanceParams {
pub fn to_query_params(&self) -> Vec<(&str, String)> {
let mut params = Vec::with_capacity(3);
if let Some(x) = &self.asset_type {
params.push(("asset_type", x.to_string()));
}
if let Some(x) = &self.token_id {
params.push(("token_id", x.to_string()));
}
if let Some(x) = &self.signature_type {
params.push(("signature_type", x.to_string()));
}
params
}
pub fn set_signature_type(&mut self, s: u8) {
self.signature_type = Some(s);
}
}
/// Asset type enum for balance allowance queries
pub enum AssetType {
COLLATERAL,
CONDITIONAL,
}
impl ToString for AssetType {
fn to_string(&self) -> String {
match self {
AssetType::COLLATERAL => "COLLATERAL".to_string(),
AssetType::CONDITIONAL => "CONDITIONAL".to_string(),
}
}
}
/// Notification preferences /// Notification preferences
#[derive(Debug, Clone, Serialize, Deserialize)] #[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NotificationParams { pub struct NotificationParams {
@@ -946,6 +992,25 @@ pub struct BookParams {
pub side: Side, pub side: Side,
} }
#[derive(Debug, Deserialize)]
pub struct OrderBookSummary {
pub market: String,
pub asset_id: String,
pub hash: String,
#[serde(deserialize_with = "crate::decode::deserializers::number_from_string")]
pub timestamp: u64,
pub bids: Vec<OrderSummary>,
pub asks: Vec<OrderSummary>,
}
#[derive(Debug, Deserialize)]
pub struct OrderSummary {
#[serde(with = "rust_decimal::serde::str")]
pub price: Decimal,
#[serde(with = "rust_decimal::serde::str")]
pub size: Decimal,
}
#[derive(Debug, Serialize, Deserialize)] #[derive(Debug, Serialize, Deserialize)]
pub struct MarketsResponse { pub struct MarketsResponse {
#[serde(with = "rust_decimal::serde::str")] #[serde(with = "rust_decimal::serde::str")]
@@ -966,63 +1031,8 @@ pub struct SimplifiedMarketsResponse {
pub data: Vec<SimplifiedMarket>, pub data: Vec<SimplifiedMarket>,
} }
#[derive(Debug, Serialize, Deserialize)] // Note: Market, Token, Rewards, and SimplifiedMarket are already defined above in this file
pub struct Market { // These duplicate definitions have been removed to avoid conflicts
pub condition_id: String,
pub tokens: [Token; 2],
pub rewards: Rewards,
pub min_incentive_size: Option<String>,
pub max_incentive_spread: Option<String>,
pub active: bool,
pub closed: bool,
pub question_id: String,
#[serde(with = "rust_decimal::serde::str")]
pub minimum_order_size: Decimal,
#[serde(with = "rust_decimal::serde::str")]
pub minimum_tick_size: Decimal,
pub description: String,
pub category: Option<String>,
pub end_date_iso: Option<String>,
pub game_start_time: Option<String>,
pub question: String,
pub market_slug: String,
#[serde(with = "rust_decimal::serde::str")]
pub seconds_delay: Decimal,
pub icon: String,
pub fpmm: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct SimplifiedMarket {
pub condition_id: String,
pub tokens: [Token; 2],
pub rewards: Rewards,
pub min_incentive_size: Option<String>,
pub max_incentive_spread: Option<String>,
pub active: bool,
pub closed: bool,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Token {
pub token_id: String,
pub outcome: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Rewards {
pub rates: Option<serde_json::Value>,
#[serde(with = "rust_decimal::serde::str")]
pub min_size: Decimal,
#[serde(with = "rust_decimal::serde::str")]
pub max_spread: Decimal,
pub event_start_date: Option<String>,
pub event_end_date: Option<String>,
#[serde(with = "rust_decimal::serde::str", skip_serializing_if = "Option::is_none")]
pub in_game_multiplier: Option<Decimal>,
#[serde(with = "rust_decimal::serde::str", skip_serializing_if = "Option::is_none")]
pub reward_epoch: Option<Decimal>,
}
// For compatibility with reference implementation // For compatibility with reference implementation
pub type ClientResult<T> = anyhow::Result<T>; pub type ClientResult<T> = anyhow::Result<T>;