|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file. |
4 | 4 |
|
| 5 | +## [2.0.2] & [2.0.3] - 2026-02-05 |
| 6 | + |
| 7 | +### Fixed |
| 8 | + |
| 9 | +- **TypeScript SDK Build**: Fixed TypeScript compilation errors in generated SDK code caused by missing `instanceOf` function exports. |
| 10 | + - Added automatic post-processing script to patch OpenAPI-generated code. |
| 11 | + - Resolved `isolatedModules` TypeScript errors in core exchange modules (Kalshi, Limitless, Polymarket). |
| 12 | + - Changed `export` to `export type` for WebSocket config type re-exports. |
| 13 | +- **CI/CD Pipeline**: Resolved build failures in GitHub Actions for npm package publishing. |
| 14 | + |
| 15 | +### Note |
| 16 | + |
| 17 | +- Version 2.0.1 remains valid for Python SDK (`pmxt`). This release (2.0.2) specifically addresses TypeScript SDK (`pmxtjs`) build issues. |
| 18 | + |
| 19 | +## [2.0.1] - 2026-02-05 |
| 20 | + |
| 21 | +### Breaking Changes |
| 22 | + |
| 23 | +- **Removed Deprecated Methods**: All previously deprecated methods have been removed as part of the v2.0.0 cleanup. |
| 24 | + - `searchMarkets(query, params)`: Use `fetchMarkets({ query, ...params })` instead. |
| 25 | + - `getMarketsBySlug(slug)`: Use `fetchMarkets({ slug })` instead. |
| 26 | + - `searchEvents(query, params)`: Use `fetchEvents({ query, ...params })` instead. |
| 27 | +- **Removed Deprecated Fields**: Removed the deprecated `.id` field from `UnifiedMarket` and `MarketOutcome` models. Use `.marketId` and `.outcomeId` instead. |
| 28 | +- **Python SDK Signature Changes**: Refactored Python SDK to use direct keyword arguments instead of params dictionary. |
| 29 | + - `fetch_ohlcv` and `fetch_trades` now use kwargs for cleaner API calls. |
| 30 | + - All methods now follow the pattern: `method(arg1, arg2, key1=value1, key2=value2)` instead of `method(arg1, arg2, params={'key1': value1})`. |
| 31 | + |
| 32 | +### Added |
| 33 | + |
| 34 | +- **Limitless WebSocket Support**: Implemented real-time WebSocket streaming for Limitless exchange. |
| 35 | + - Added `watchOrderBook` and `watchTrades` support for live market data. |
| 36 | + - WebSocket connection management with automatic reconnection. |
| 37 | +- **Limitless On-Chain Balances**: Added on-chain balance fetching capability for Limitless exchange. |
| 38 | + - Queries blockchain directly for accurate balance information. |
| 39 | + - Integrated with Limitless SDK for seamless balance retrieval. |
| 40 | +- **Unified Error Handling System**: Implemented a comprehensive error handling system across all exchanges. |
| 41 | + - Consistent error messages and status codes across Polymarket, Kalshi, and Limitless. |
| 42 | + - Improved error mapping for better debugging and troubleshooting. |
| 43 | + - More robust compliance tests with proper error detection. |
| 44 | +- **Polymarket Signing Updates**: Enhanced Polymarket initialization with new authentication options. |
| 45 | + - Added `proxyAddress` parameter for explicit proxy wallet configuration. |
| 46 | + - Added `signatureType` parameter with support for "gnosis-safe" (default), "polyproxy", and "eoa". |
| 47 | + - Updated examples to demonstrate new signing methods. |
| 48 | + |
| 49 | +### Changed |
| 50 | + |
| 51 | +- **Migration to Unified API**: Completed migration to CCXT-style API patterns as outlined in `MIGRATION.md`. |
| 52 | + - All exchanges now use consistent parameter patterns with unified `params` objects (TypeScript) or keyword arguments (Python). |
| 53 | + - Improved API consistency across all supported exchanges. |
| 54 | +- **Updated Examples**: Refactored all examples in `examples/` directory to use v2.0.0 API patterns. |
| 55 | + - Removed legacy method calls and deprecated patterns. |
| 56 | + - Added examples demonstrating new Polymarket signing configuration. |
| 57 | + - Updated models and data structures throughout. |
| 58 | +- **OpenAPI Documentation**: Updated OpenAPI specification to include: |
| 59 | + - Limitless WebSocket endpoints and methods. |
| 60 | + - Missing methods from previous versions. |
| 61 | + - Corrected parameter definitions and response schemas. |
| 62 | +- **Limitless Documentation**: Improved Limitless exchange documentation with clearer setup instructions and API usage examples. |
| 63 | + |
| 64 | +### Fixed |
| 65 | + |
| 66 | +- **TypeScript Build Errors**: Resolved TypeScript compilation errors related to Limitless WebSocket implementation and server bundle generation. |
| 67 | +- **Python Error Parsing**: Fixed error parsing issues in the Python SDK that were causing incorrect error messages. |
| 68 | +- **Limitless Search Functionality**: Fixed semantic search parameters and query handling for Limitless markets. |
| 69 | + - Corrected parameter mapping for search endpoints. |
| 70 | + - Improved search result relevance and accuracy. |
| 71 | +- **Compliance Test Improvements**: Enhanced compliance test suite across all exchanges. |
| 72 | + - Replaced deprecated `.id` with `.outcomeId` and `.marketId` in all tests. |
| 73 | + - Improved error status and message detection for Kalshi `fetchOrder` tests. |
| 74 | + - Updated `fetchOrderBook` tests and reduced Limitless logging noise. |
| 75 | + - Increased `fetchMarkets` timeout to 120s for Kalshi to handle slower API responses. |
| 76 | + - Changed market fetch limit to 25 for better test reliability. |
| 77 | + - Fixed `fetchMarket` tests to properly handle Kalshi's data structure. |
| 78 | +- **Verbose Logging**: Removed excessive verbose logging from sidecar API, providing cleaner console output during normal operations. |
| 79 | + |
| 80 | +### Improved |
| 81 | + |
| 82 | +- **Error Handling Robustness**: Significantly improved error detection, mapping, and reporting across all exchanges. |
| 83 | +- **Test Reliability**: Enhanced compliance test suite with better timeout handling and more robust assertions. |
| 84 | +- **Code Quality**: Removed all deprecated code paths, resulting in cleaner and more maintainable codebase. |
| 85 | +- **Documentation Quality**: Updated README with authentication introduction and clearer getting started instructions. |
| 86 | + |
| 87 | +### Migration Guide |
| 88 | + |
| 89 | +For TypeScript users upgrading from v1.7.0: |
| 90 | +```typescript |
| 91 | +// v1.7.0 (deprecated methods) |
| 92 | +const markets = await exchange.searchMarkets("Trump", { limit: 10 }); |
| 93 | +const market = await exchange.getMarketsBySlug("trump-wins-2024"); |
| 94 | + |
| 95 | +// v2.0.0 (unified API) |
| 96 | +const markets = await exchange.fetchMarkets({ query: "Trump", limit: 10 }); |
| 97 | +const market = await exchange.fetchMarkets({ slug: "trump-wins-2024" }); |
| 98 | + |
| 99 | +// v1.7.0 (deprecated field) |
| 100 | +console.log(market.id); |
| 101 | + |
| 102 | +// v2.0.0 (use specific ID fields) |
| 103 | +console.log(market.marketId); |
| 104 | +console.log(outcome.outcomeId); |
| 105 | +``` |
| 106 | + |
| 107 | +For Python users upgrading from v1.7.0: |
| 108 | +```python |
| 109 | +# v1.7.0 (params dictionary) |
| 110 | +candles = exchange.fetch_ohlcv(market_id, timeframe, params={'start': start_time}) |
| 111 | + |
| 112 | +# v2.0.0 (keyword arguments) |
| 113 | +candles = exchange.fetch_ohlcv(market_id, timeframe, start=start_time) |
| 114 | + |
| 115 | +# v1.7.0 (deprecated field) |
| 116 | +print(market.id) |
| 117 | + |
| 118 | +# v2.0.0 (use specific ID fields) |
| 119 | +print(market.market_id) |
| 120 | +print(outcome.outcome_id) |
| 121 | +``` |
| 122 | + |
| 123 | +Polymarket initialization with new signing options: |
| 124 | +```typescript |
| 125 | +// v2.0.0 (explicit proxy configuration) |
| 126 | +const poly = new Polymarket({ |
| 127 | + credentials: { |
| 128 | + privateKey: "0x...", |
| 129 | + proxyAddress: "0x...", // Optional: your proxy wallet address |
| 130 | + signatureType: "gnosis-safe" // Optional: "gnosis-safe" (default), "polyproxy", or "eoa" |
| 131 | + } |
| 132 | +}); |
| 133 | +``` |
| 134 | + |
| 135 | +## [2.0.0] - 2026-02-05 |
| 136 | +Invalid |
| 137 | + |
5 | 138 | ## [1.7.0] - 2026-02-03 |
6 | 139 |
|
7 | 140 | ### Added |
|
0 commit comments