Skip to content

Spec drift: gemini-titan — /orders/active and /orders/history silently truncate to 50 results (no pagination) #430

@realfishsam

Description

@realfishsam

Exchange

gemini-titan

Drift Type

changed_params

Severity

MEDIUM — Orders beyond the first 50 are silently dropped for both active orders and order history.

Their Docs

Both POST /v1/prediction-markets/orders/active and POST /v1/prediction-markets/orders/history accept pagination parameters:

  • limit (max 100, default 50)
  • offset (default 0)

/orders/history also accepts a status filter ("filled" or "cancelled").
Source: https://docs.gemini.com/prediction-markets/

Our Cached Spec / Implementation

core/src/exchanges/gemini-titan/fetcher.ts:

  • Sends { symbol } body only to /orders/active — no limit/offset
  • Sends {} (empty body) to /orders/history — no limit, offset, or status filter

There is no OpenAPI spec for this exchange (see issue #408).

callApi() References at Risk

None — direct HTTP calls.

Hardcoded URL Bypasses

  • POST ${this.baseUrl}/v1/prediction-markets/orders/active at fetcher.ts:145–153
  • POST ${this.baseUrl}/v1/prediction-markets/orders/history at fetcher.ts:156–161

Impact

Any account with more than 50 active orders or 50 closed orders will silently miss the extras. fetchOpenOrders() and fetchClosedOrders() are both incomplete for active traders.


Found by automated spec drift audit

Metadata

Metadata

Assignees

No one assigned

    Labels

    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