Gap
LimitlessExchange exposes watchUserTransactions(callback) — a WebSocket method that streams real-time authenticated user transaction events. The Python SDK base Exchange class exposes watch_user_transactions. The TypeScript SDK does not expose this method anywhere.
Core
File: core/src/exchanges/limitless/index.ts line 512
watchUserTransactions(callback: (tx: any) => void): void
Subscribes to the Limitless user-transaction WebSocket feed. Requires authentication (API key). The callback receives transaction payloads (fills, settlements, etc.) as they occur.
TypeScript SDK
Missing — the Limitless subclass in sdks/typescript/pmxt/client.ts (lines 2576–2580) is a thin wrapper with no watchUserTransactions method. The base Exchange class also has no watchUserTransactions. Searching the entire sdks/typescript/ tree for watchUserTransactions returns zero results.
Python SDK
Present — watch_user_transactions(callback?) is defined on the base Exchange class in sdks/python/pmxt/client.py at line 2195. It constructs POST /api/{exchange}/watchUserTransactions, sends credentials, and returns the raw transaction payload dict.
Evidence
grep -rn "watchUserTransactions\|watch_user_transactions" sdks/typescript/ returns zero results.
grep -n "watch_user_transactions" sdks/python/pmxt/client.py returns line 2195 (method definition).
grep -n "watchUserTransactions" core/src/exchanges/limitless/index.ts returns line 512.
The sidecar accepts POST /api/limitless/watchUserTransactions via dynamic dispatch since the method exists on the exchange instance.
Impact
TypeScript SDK users building Limitless trade-confirmation flows, P&L trackers, or on-chain receipt loggers cannot subscribe to real-time transaction events. They must poll order and trade history endpoints instead, which introduces latency and additional API calls. Python users have a fully typed watch_user_transactions. This is an asymmetric TypeScript-only gap.
Found by automated Core-to-SDK surface coverage audit
Gap
LimitlessExchangeexposeswatchUserTransactions(callback)— a WebSocket method that streams real-time authenticated user transaction events. The Python SDK baseExchangeclass exposeswatch_user_transactions. The TypeScript SDK does not expose this method anywhere.Core
File:
core/src/exchanges/limitless/index.tsline 512Subscribes to the Limitless user-transaction WebSocket feed. Requires authentication (API key). The callback receives transaction payloads (fills, settlements, etc.) as they occur.
TypeScript SDK
Missing — the
Limitlesssubclass insdks/typescript/pmxt/client.ts(lines 2576–2580) is a thin wrapper with nowatchUserTransactionsmethod. The baseExchangeclass also has nowatchUserTransactions. Searching the entiresdks/typescript/tree forwatchUserTransactionsreturns zero results.Python SDK
Present —
watch_user_transactions(callback?)is defined on the baseExchangeclass insdks/python/pmxt/client.pyat line 2195. It constructsPOST /api/{exchange}/watchUserTransactions, sends credentials, and returns the raw transaction payload dict.Evidence
grep -rn "watchUserTransactions\|watch_user_transactions" sdks/typescript/returns zero results.grep -n "watch_user_transactions" sdks/python/pmxt/client.pyreturns line 2195 (method definition).grep -n "watchUserTransactions" core/src/exchanges/limitless/index.tsreturns line 512.The sidecar accepts
POST /api/limitless/watchUserTransactionsvia dynamic dispatch since the method exists on the exchange instance.Impact
TypeScript SDK users building Limitless trade-confirmation flows, P&L trackers, or on-chain receipt loggers cannot subscribe to real-time transaction events. They must poll order and trade history endpoints instead, which introduces latency and additional API calls. Python users have a fully typed
watch_user_transactions. This is an asymmetric TypeScript-only gap.Found by automated Core-to-SDK surface coverage audit