Skip to content

Limitless.watchPrices / watchUserPositions / watchUserTransactions documented in TypeScript API_REFERENCE but not implemented in client.ts #833

@realfishsam

Description

@realfishsam

Gap

Three Limitless-specific streaming methods exist in core and are correctly implemented in the Python SDK, and are even documented in the TypeScript SDK's API_REFERENCE.md — but they are completely absent from the TypeScript SDK's client.ts. TypeScript users who follow the documented API will get a runtime TypeError: exchange.watchPrices is not a function.

Core

File: core/src/exchanges/limitless/index.ts

  • Line 495: async watchPrices(marketAddress: string, callback: (data: any) => void): Promise<void>
  • Line 506: async watchUserPositions(callback: (data: any) => void): Promise<void>
  • Line 518: async watchUserTransactions(callback: (data: any) => void): Promise<void>

These delegate to the Limitless WebSocket layer (core/src/exchanges/limitless/websocket.ts lines 206, 222, 244).

None of the three appear in core/src/server/method-verbs.json or core/src/server/openapi.yaml, but the server dispatches any method that exists on the exchange object dynamically (see core/src/server/app.ts line 413), so all three are reachable via POST /api/limitless/<method>.

TypeScript SDK

Documented in: sdks/typescript/API_REFERENCE.md

  • Line 1178: watchPrices — documented with full signature and usage example
  • Line 1206: watchUserPositions — documented with full signature and usage example
  • Line 1233: watchUserTransactions — documented with full signature and usage example

Implemented in: sdks/typescript/pmxt/client.tsMissing — none of the three methods appear anywhere in this file.

Python SDK

File: sdks/python/pmxt/client.py

  • Line 2180: def watch_prices(self, market_address, callback=None) -> Dict[str, Any]
  • Line 2216: def watch_user_positions(self, callback=None) -> List[Position]
  • Line 2253: def watch_user_transactions(self, callback=None) -> Dict[str, Any]

All three are correctly implemented and call POST /api/{exchange}/watchPrices etc. on the sidecar.

Evidence

  1. grep -n "watchPrices\|watchUserPositions\|watchUserTransactions" sdks/typescript/pmxt/client.ts returns no results.
  2. grep -n "watchPrices\|watchUserPositions\|watchUserTransactions" sdks/typescript/API_REFERENCE.md returns lines 1178, 1206, 1233 with full documented signatures and examples.
  3. The same grep against sdks/python/pmxt/client.py returns lines 2180, 2216, 2253.

The TypeScript SDK API reference is generated from or synchronized with the Python implementation, which means the docs were written but the corresponding TypeScript wrapper methods were never added to client.ts.

Impact

  • TypeScript users who try to stream Limitless market prices, user positions, or user transaction feeds using the documented API get a runtime error, not a compile error, because the exchange base class uses any typed params.
  • The TypeScript SDK is inconsistent with both the documented API and the Python SDK for these three Limitless-specific capabilities.
  • Users cannot monitor their Limitless positions or activity in real-time from TypeScript without dropping down to the raw SidecarWsClient.

Found by automated Core-to-SDK surface coverage audit

Metadata

Metadata

Assignees

No one assigned

    Labels

    core-sdk-gapCore engine capabilities not exposed in SDKs

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions