Skip to content

Generated API reference examples call getAuthNonce()/loginWithSignature()/isSessionActive() with zero args — all three require a walletAddress #2137

Description

@realfishsam

Gap

The auto-generated code samples for the three new Probable-auth-lifecycle base methods (getAuthNonce, loginWithSignature, isSessionActive, added in #1614) call each method with no arguments, in both languages, for every one of the 17 venues. All three methods have required positional parameters — calling them as shown would fail at runtime (Python: TypeError: missing required positional argument) or fail to type-check (TypeScript: "Expected 1-3 arguments, but got 0"). This is a code-generation defect distinct from #1606/#1589 (which are about the auth flow being unimplemented for specific venues) — here the methods exist and work, but every single generated example calling them is broken.

Core

core/src/BaseExchange.ts:567async getAuthNonce(walletAddress: string): Promise<AuthNonceResponse> (required param, no default).
core/src/BaseExchange.ts:577-582async loginWithSignature(walletAddress: string, signature: string, nonce: string): Promise<AuthLoginResponse> (3 required params).
core/src/BaseExchange.ts:597async isSessionActive(walletAddress: string): Promise<boolean> (required param).

TypeScript SDK

sdks/typescript/pmxt/client.ts:960async getAuthNonce(walletAddress: string); :985async loginWithSignature(walletAddress: string, signature: string, nonce: string); :1037async isSessionActive(walletAddress: string). All correctly require the arguments — the SDK method signatures are fine. The bug is only in the generated documentation examples.

Generated example (docs/api-reference/openapi.json, x-codeSamples for /api/{exchange}/getAuthNonce, TypeScript sample, repeated per-venue):

const exchange = new Polymarket({ pmxtApiKey: "YOUR_PMXT_API_KEY" });
const result = await exchange.getAuthNonce();

This omits the required walletAddress argument. The same zero-arg pattern repeats for loginWithSignature() and isSessionActive(), for all 17 venues (Polymarket, Limitless, Kalshi, KalshiDemo, Probable, Baozi, Myriad, Opinion, Metaculus, Smarkets, PolymarketUS, Hyperliquid, GeminiTitan, SuiBets, Rain, Hunch) × both languages — over 100 broken snippets in total.

Python SDK

sdks/python/pmxt/client.py:1309def get_auth_nonce(self, wallet_address: str); :1329def login_with_signature(self, wallet_address: str, signature: str, nonce: str); :1371def is_session_active(self, wallet_address: str). Signatures are correct; same doc-generation bug applies.

Generated example (Python sample for the same endpoints, per-venue):

exchange = pmxt.Polymarket(pmxt_api_key="YOUR_PMXT_API_KEY")
result = exchange.get_auth_nonce()

Calling this raises TypeError: get_auth_nonce() missing 1 required positional argument: 'wallet_address'.

Evidence

Compared the x-codeSamples blocks in docs/api-reference/openapi.json for /api/{exchange}/getAuthNonce, /api/{exchange}/loginWithSignature, and /api/{exchange}/isSessionActive (also mirrored into docs/llms-full.txt around lines 6108-6224) against the actual method signatures in core/src/BaseExchange.ts, sdks/typescript/pmxt/client.ts, and sdks/python/pmxt/client.py. As a control, the generated sample for /api/{exchange}/cancelOrder correctly includes its required argument (exchange.cancel_order("ord-001")), showing the doc generator normally does emit example arguments for required params — it's specifically these three new auth methods where the generator produced empty argument lists, likely because it has no example-value mapping for walletAddress/signature/nonce param names.

Impact

Every reader who copies the generated getAuthNonce/loginWithSignature/isSessionActive example from the API reference (or from llms-full.txt, which LLM-based tooling and agents are meant to consume directly) hits an immediate runtime error or type error, for all 17 venues in both SDKs. This is the first real end-to-end usage example most users would see for the newly shipped Web3 auth lifecycle feature, and it does not run as written.


Found by automated Core-to-SDK surface coverage audit

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2: mediumbugSomething isn't workingcore-sdk-gapCore engine capabilities not exposed in SDKsdocumentationImprovements or additions to documentationeffort: small

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions