Skip to content

Latest commit

Β 

History

History
490 lines (333 loc) Β· 17.8 KB

File metadata and controls

490 lines (333 loc) Β· 17.8 KB

[0.12.0] - 2026-03-27

⚠️ Breaking Changes

  • (clob) BalanceAllowanceResponse.allowance: String replaced with allowances: HashMap<String, String> to match upstream API change (#1)
  • (clob) Several fields on Market changed to Option<T>: question_id, minimum_order_size, minimum_tick_size, description, question (#1)
  • (clob) Several fields on SpreadResponse changed to Option<T>: token_id, bid, ask (#1)
  • (clob) Several fields on LastTradePriceResponse changed to Option<T>: token_id, last_trade_price, timestamp; new optional fields price, side (#1)

πŸš€ Features

  • (core) Add concurrency limiter to HttpClient for Cloudflare connection limits (#3)
  • (core) Set default concurrency limits in all API client builders (#3)
  • (relay) Hold concurrency permit across full request lifetime (#3)
  • (data) Hold concurrency permit across full request lifetime (#3)
  • (py) Scaffold polyoxide-py crate with PyO3 + maturin (#2)
  • (py) Add Gamma, Data, and CLOB domain type wrappers via py_type! macro (#2)
  • (py) Add Gamma, Data, and CLOB clients with sync + async variants (#2)
  • (py) Add .pyi type stubs and py.typed marker (#4)
  • (py) Export all type classes from polyoxide package (#4)

πŸ› Bug Fixes

  • (clob) Update BalanceAllowanceResponse for upstream API field change from allowance to allowances (#1)
  • (clob) Make optional fields on Market, SpreadResponse, and LastTradePriceResponse to match upstream API (#1)

πŸ§ͺ Tests

  • (core) Add concurrency limiter integration and default verification tests (#3)
  • (py) Add live API tests and expand unit tests (#2)

πŸ“š Documentation

  • Add upstream Polymarket API specs for CLOB, Gamma, Data, and Relay
  • Add design and implementation plans for PyPI publishing (#4)

πŸ”§ CI

  • Add Python bindings test job (#2)
  • Add PyPI wheel build and publish to release workflow (#4)
  • Filter release artifacts to exclude Python wheels (#4)

βš™οΈ Miscellaneous Tasks

  • Add *.so and .claude-squad directory to .gitignore

[0.11.0] - 2026-03-05

πŸš€ Features

  • (clob) Add RFQ namespace for request-for-quote trading
  • (clob) Add rewards namespace for liquidity reward tracking
  • (clob) Add auth namespace for API key management
  • (clob) Add batch order operations and single order lookup
  • (clob) Add batch pricing endpoints for books, prices, midpoints, spreads, and last trades
  • (clob) Add single pricing, live activity, calculate price, and server time endpoints
  • (clob) Add heartbeat, notifications, order scoring, and ban status endpoints
  • (clob) Add simplified/sampling market lists and builder trades endpoint
  • (clob) Add ListClobTrades request builder with filter methods
  • (gamma) Add missing endpoints and query params across all namespaces
  • (gamma) Add public search endpoint for profiles, events, and tags
  • (gamma) Complete UserResponse with profile, bio, and badge fields
  • (data) Add trader leaderboard endpoint and move TimePeriod to types

πŸ› Bug Fixes

  • (clob) Fix 5 critical deserialization crashes against live API
  • (clob) Add missing fields to OpenOrder, OrderResponse, and Trade types
  • (clob) Add missing fields to OrderBook type
  • (gamma) Correct 6 serde renames and expand SeriesInfo to match live API
  • (gamma) Align SDK types with real Polymarket API responses
  • (data) Add missing verified field to Holder type
  • (core) Replace silent epoch fallback with explicit panic in current_timestamp
  • (cli) Use floor_char_boundary for safe UTF-8 string truncation

🚜 Refactor

  • (clob) Make gamma dependency optional behind gamma feature flag
  • (clob) Extract WebSocket subscription validation helper
  • (clob) Deduplicate EIP-712 order conversion and digest computation
  • (core) Simplify rate limiter config with endpoint_limit helper
  • (relay) Extract retry helper, named constants, and module-level types

πŸ§ͺ Tests

  • (clob) Add 73 new tests: WebSocket message types, utils, error, mock API (retry, errors, order creation), rejection and edge cases
  • (gamma) Add mock tests for open() inversion, volume serde renames, and events namespace
  • (data) Add 12 mock HTTP tests bootstrapping polyoxide-data coverage
  • (core) Fix retry mock strictness and add 401/403/408 error tests
  • (cli) Add multibyte and emoji edge case tests for truncate
  • Add mockito HTTP mock tests for core, gamma, and clob

πŸ“š Documentation

  • Add docstrings across workspace, complete relay crate coverage
  • Fix incorrect API examples and update project documentation

βš™οΈ Build

  • Add mockito workspace dev-dependency for HTTP mock tests
  • Move futures-util from workspace deps to per-crate
  • Specify per-crate tokio features instead of workspace-wide

πŸ’… Style

  • Apply rustfmt to gamma and data

[0.10.0] - 2026-03-01

⚠️ Breaking Changes

  • (clob) WebSocketBuilder::market_url() and user_url() now return Result<Self, WebSocketError> to enforce wss:// scheme validation
  • (core) MSRV raised from 1.75 to 1.91 (required by str::floor_char_boundary)
  • (core) HTTP client now disables redirect following to prevent open redirect attacks

πŸ› Bug Fixes

  • (relay) Strip 0x prefix from PROXY_INIT_CODE_HASH to prevent hex::decode panic at runtime
  • (core) Truncate response bodies in error logs to 512 chars to prevent sensitive data leakage
  • (clob) Truncate response bodies in error logs to 512 chars
  • (relay) Truncate response bodies in error logs to 512 chars
  • (core) Add 10-second connect timeout to HTTP client
  • (clob) Enforce wss:// scheme on WebSocket builder URLs to prevent plaintext connections

πŸ”’ Security

  • (clob) Redact private_key in AccountConfig Debug impl to prevent secret leakage in logs
  • (relay) Redact signer key in BuilderAccount Debug impl, showing only address
  • Harden .gitignore to cover .env.*, *.pem, *.key, and account.json

πŸ§ͺ Tests

  • (core) Add tests for prefix collisions, concurrency, and retry edge cases
  • (core) Add unit tests for truncate_for_log including multibyte boundary handling
  • (clob) Add tests for WebSocket URL scheme validation
  • (clob) Add test for AccountConfig Debug redaction
  • (relay) Add test for BuilderAccount Debug redaction

πŸ”§ CI

  • Remove sccache and add lightweight ci profile
  • Consolidate publish steps into retry loop
  • Use cargo-nextest for parallel test execution
  • Merge lint/test jobs and remove redundant release build

πŸ’… Style

  • Apply cargo fmt across workspace

[0.9.2] - 2026-03-01

πŸš€ Features

  • (core) Parse Retry-After header for server-guided backoff delays
  • (core) Expose RetryConfig through all high-level client builders (Clob, Gamma, DataApi, RelayClient)

πŸ› Bug Fixes

  • (core) Add segment-boundary-aware endpoint matching to prevent /price from matching /prices-history
  • (core) Replace SystemTime nanos with fastrand for uniform backoff jitter
  • (clob) Generate fresh L1 auth timestamp on each retry to avoid staleness
  • (relay) Add retry loops with 429 handling to all relay endpoints

[0.9.1] - 2026-02-28

βš™οΈ Miscellaneous Tasks

  • Prune unused deps, tokio/alloy features, and fix TLS duplication
  • Apply rustfmt formatting across workspace

πŸ“š Documentation

  • Add testing conventions and module organization to CLAUDE.md

πŸ”§ CI

  • Replace rust-cache with sccache for shared compilation caching

[0.9.0] - 2026-02-28

πŸš€ Features

  • (core) Add per-endpoint rate limiting with configurable quotas, retry-on-429 backoff with jitter, and governor-based throttling

πŸ› Bug Fixes

  • (core) Fix rate limit quota precision, backoff jitter range, and add missing endpoint quota
  • (core) Carry message context in RateLimit error variant and downgrade retry log level
  • (core) Redact secrets from Debug impls to prevent log leakage
  • (clob) Use BUY/SELL strings for price endpoint side parameter
  • (clob) Use typed request for get_fee_rate with correct field and token_id
  • (clob) Fix tautological assertion in salt test
  • (clob) Reject NaN and infinity in order parameter validation
  • (clob) Classify service errors as Api instead of Validation
  • (clob) Return None on insufficient liquidity and increase salt entropy
  • (data) Route all HTTP calls through Request for rate limiting and 429 retries
  • (data) Align Display impls with serde SCREAMING_SNAKE_CASE for sort enums
  • (relay) Replace unwraps with error propagation and compile-time address validation
  • (cli) Replace process::exit with Result-based error handling in WS credentials and completions
  • (cli) Reject invalid activity types with error instead of silently dropping

🚜 Refactor

  • (core) Make Signer::new infallible

πŸ§ͺ Tests

  • (core) Add unit tests for Request query builder and typed request
  • (clob) Add unit tests for EIP-712 signing, WS types, and auth credentials
  • (clob) Add live integration tests for CLOB public endpoints
  • (data) Add unit tests for enum serialization, builders, and type serde
  • (data) Add live integration tests for data API public endpoints
  • (gamma) Add unit tests for type deserialization and client builder
  • (relay) Add unit tests for types serde, address derivation, signature packing, hex constants, contract config, and builder defaults
  • (cli) Add unit tests for argument parsing across all subcommands
  • Add live integration tests for all API endpoints

[0.8.1] - 2026-02-26

🚜 Refactor

  • (core) Remove verbose request/response body logging from HTTP clients
  • (clob) Remove verbose request/response body logging from HTTP clients
  • (relay) Remove verbose request/response body logging and leftover eprintln! debug statements

[0.8.0] - 2026-02-25

πŸš€ Features

  • Migrate price and size fields from String to Decimal with serde(with = "rust_decimal::serde::str") for accurate serialization

[0.7.1] - 2026-02-24

πŸ› Bug Fixes

  • (clob) Add canceled_order_id and message fields to CancelResponse and mark success as default.

[0.7.0] - 2026-02-24

πŸš€ Features

  • (relay) Update builder to default to Polygon Mainnet (137) and relay V2 (https://relayer-v2.polymarket.com/)
  • (relay) Update RelayClientBuilder to implement Default

[0.6.1] - 2026-02-20

πŸš€ Features

  • (core) Add unified authentication module with HMAC signing and timestamp generation
  • (core) Add Signer struct supporting multiple base64 formats (URL-safe and standard)
  • (core) Add current_timestamp() function for safe Unix timestamp generation
  • (core) Add Base64Format enum to support both URL-safe and standard base64 encoding
  • (core) Add impl_api_error_conversions! macro to reduce error conversion boilerplate

🚜 Refactor

  • (core) Consolidate HMAC signing logic from CLOB and Relay into shared Signer implementation
  • (core) Consolidate timestamp generation into single safe implementation
  • (clob) Refactor Signer to use polyoxide_core::Signer as thin wrapper with CLOB-specific error handling
  • (clob) Extract market metadata fetching into get_market_metadata() helper method
  • (clob) Extract fee rate fetching into get_fee_rate() helper method
  • (clob) Extract maker address resolution into resolve_maker_address() helper method
  • (clob) Extract order building into build_order() helper method
  • (clob) Simplify create_order() and create_market_order() by using extracted helpers (~140 lines removed)
  • (relay) Update to use polyoxide_core::Signer and current_timestamp() for authentication
  • (gamma) Use impl_api_error_conversions! macro to reduce error conversion boilerplate
  • (data) Use impl_api_error_conversions! macro to reduce error conversion boilerplate

[0.6.0] - 2026-02-19

πŸš€ Features

  • (relay) Add gas estimation for redemption transactions with safety buffer and relayer overhead
  • (relay) Add estimate_redemption_gas method to estimate gas costs using RPC provider simulation
  • (relay) Add submit_gasless_redemption_with_gas_estimation method for redemptions with optional gas estimation
  • (relay) Add default RPC URLs to contract configuration for Polygon mainnet and Amoy testnet
  • (repo) Rename project from polyte to polyoxide

[0.5.0] - 2026-02-19

πŸš€ Features

  • (clob) Add health API namespace with ping method
  • (relay) Introduce polyte-relay crate for interacting with relayer services
  • (relay) Add gasless redemption functionality via relayer v2 API
  • (relay) Introduce BuilderAccount for centralized signer and config management
  • (clob) Introduce MarketOrderArgs and market order calculation utilities
  • (clob) Enhance order creation logic with maker address determination and optional funder parameter
  • (clob) Integrate polyte-gamma client into Clob and ClobBuilder
  • (clob) Add neg_risk and tick_size methods to markets search
  • (clob) Add neg_risk support for orders
  • (clob) Implement funder and signature type support
  • (clob) Add get_by_token_ids method to retrieve markets by token IDs
  • (clob) Add prices_history method for historical token prices
  • (clob) Add Display impl for OrderKind and SignatureType
  • (clob) Introduce PartialCreateOrderOptions for enhanced order creation flexibility
  • (gamma) Introduce Gamma User API
  • (gamma) Add volume_1yr field to match Gamma API naming conventions
  • (data) Add USDC balance endpoint to account API
  • (data) Update BalanceAllowanceResponse to use HashMap for allowances
  • (polyte) Add DataApi to unified Polymarket client
  • (types) Add is_proxy method to SignatureType enum
  • (error) Add service error creation method to ClobError

πŸ› Bug Fixes

  • (clob) Use precise decimal arithmetic and explicit TickSize parsing
  • (clob) Update order amount calculations to support 6 decimal places
  • (clob) Update owner field in order payload to use account address
  • (clob) Add custom deserialization for minimum_tick_size to handle both string and number formats
  • (gamma) Correct typos in Market and Event field names
  • (error) Enhance API error logging by capturing raw response body
  • (tests) Update salt generation test to check for non-empty output

🚜 Refactor

  • (clob) Serialize OrderSide enum variants as 'BUY' and 'SELL' strings
  • (clob) Update ClobBuilder to use optional account and introduce with_account method
  • (clob) Restructure EIP-712 domain and order definitions into protocol module
  • (clob) Implement custom serialization and deserialization for SignatureType enum
  • (gamma) Rename active filter to open for market and series listing
  • (gamma) Rename user proxy field to proxyWallet in API response
  • (gamma) Rename wallet_address query parameter to address in public profile API
  • (core) Add shared HTTP client infrastructure
  • Remove Result type aliases in favor of explicit types
  • Refactor amount calculations to use f64 arithmetic

βš™οΈ Miscellaneous Tasks

  • Add CLAUDE.md with project guidance and architecture overview
  • Update thiserror dependency to version 2.0.17
  • Add specta support in multiple modules
  • Add dotenvy dependency

[0.4.0] - 2026-01-05

πŸ› Bug Fixes

  • (clob) Correct the type of the OrderBook timestamp

βš™οΈ Miscellaneous Tasks

  • Add changelog and publish it on Github Releases page

[cli-v0.3.2] - 2025-12-04

πŸ› Bug Fixes

  • (cli) Use limit flag instead of hardcorded value
  • (gamma) Typo

🚜 Refactor

  • (cli) Move duplicates into common module
  • Use clap value_parser for comma-separated arguments

βš™οΈ Miscellaneous Tasks

  • Format
  • Remove unnecessary doc

[cli-v0.3.1] - 2025-12-04

🚜 Refactor

  • (cli) Improve credential error messages for ws user command

[cli-v0.3.0] - 2025-12-03

πŸš€ Features

  • (clob) Add websocket support
  • (cli) Add support for Clob websockets

🚜 Refactor

  • Consolidate auth into account module

πŸ“š Documentation

  • Update Clob documentation

βš™οΈ Miscellaneous Tasks

  • Remove clob examples

[cli-v0.2.4] - 2025-12-01

πŸ› Bug Fixes

  • Change comment_count type from u32 to i64 to prevent sentinel value issues

🚜 Refactor

  • Extract common Request builder to polyte-core

πŸ“š Documentation

  • Update CLI README
  • Update polyte README

βš™οΈ Miscellaneous Tasks

  • Remove gamma examples
  • Update Event type in Gamma

[cli-v0.2.1] - 2025-12-01

πŸš€ Features

  • Add support for Builders API

πŸ“š Documentation

  • Fix typo

[cli-v0.2.0] - 2025-11-30

πŸš€ Features

  • Add support for Data API

🚜 Refactor

  • Remove deprecated code
  • Reuse SortOrder enum

[cli-v0.1.5] - 2025-11-28

πŸ› Bug Fixes

  • (gamma) Change order_min_price_tick_size and order_min_size to f64

🚜 Refactor

  • (cli) Chain builder methods for request construction

[cli-v0.1.4] - 2025-11-28

πŸš€ Features

  • Bump versions
  • Release cli-v0.1.4

πŸ› Bug Fixes

  • Clean-up types and make them more exhaustive
  • Typo

βš™οΈ Miscellaneous Tasks

  • (cli) Set default values to flags
  • Enable retrieving a market by its slug

[cli-v0.1.3] - 2025-11-28

πŸš€ Features

  • Add cli commands presets and more flags

πŸ› Bug Fixes

  • Deserialize API responses into correct structs

βš™οΈ Miscellaneous Tasks

  • Run cargo fmt

[cli-v0.1.2] - 2025-11-27

πŸš€ Features

  • (cli) Add command to display CLI version

βš™οΈ Miscellaneous Tasks

  • Add more unit tests for utils

[cli-v0.1.1] - 2025-11-27

πŸš€ Features

  • Enable generating shell completions

[cli-v0.1.0] - 2025-11-27

πŸš€ Features

  • Add cli

πŸ“š Documentation

  • Add links to crates documentation
  • Say it's wip in README

βš™οΈ Miscellaneous Tasks

  • Make Polymarket client clonable
  • Bump deps
  • Bump alloy to latest and move it clob crate
  • Add install script and workflow to release binaries on Github Releases
  • Fix release workflow