Skip to content

fix: align SDK parity gaps#956

Open
realfishsam wants to merge 3 commits into
mainfrom
fix/easy-sdk-parity-python-types-1
Open

fix: align SDK parity gaps#956
realfishsam wants to merge 3 commits into
mainfrom
fix/easy-sdk-parity-python-types-1

Conversation

@realfishsam

@realfishsam realfishsam commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • forward Limitless wallet addresses through Python SDK credentials for delegated signing
  • align Python order validation failures with the SDK ValidationError hierarchy
  • add missing trade outcome ID fields to both SDK models
  • call the current router fetchMarketMatches endpoint and align Python Router auto-start defaults
  • widen TypeScript ExchangeOptions.signatureType to accept string values
  • keep Python stop_server/restart_server as non-deprecated first-class aliases

Fixes #935
Fixes #930
Fixes #745
Fixes #656
Fixes #701
Fixes #929
Fixes #702

Test Plan

  • python3 -m compileall sdks/python/pmxt
  • npm run generate:docs --workspace=pmxt-core (no substantive generated doc diffs)
  • npm run build --workspace=pmxtjs (blocked: generated SDK missing, and regenerating requires java which is not installed in this environment)
  • npm run build --workspace=pmxt-core (attempted; timed out in this environment)

@realfishsam realfishsam force-pushed the fix/easy-sdk-parity-python-types-1 branch from 32dd527 to 99ff371 Compare June 8, 2026 11:01
@realfishsam

Copy link
Copy Markdown
Contributor Author

PR Review: PASS (NOT VERIFIED)

What This Does

Aligns SDK parity gaps: Python server aliases, wallet-address credential plumbing, ValidationError usage, order/trade fields, and TypeScript signature type/outcome fields.

Blast Radius

Python SDK exports/client/router/models and TypeScript client/models; no core server schema changes.

Consumer Verification

Before (base branch):
Base SDKs had parity mismatches such as deprecated warnings for flat server aliases, missing walletAddress credential forwarding, and fetchMatches call naming drift.

After (PR branch):
PR updates those SDK surfaces. Core build/Jest passed (24 suites, 644 tests); root verification then failed in the Python SDK phase because pytest is not installed.

Test Results

  • Build: PASS
  • Unit tests: CORE PASS (24 suites, 644 tests; root verification blocked by missing pytest)
  • Server starts: PASS during root verification
  • E2E smoke: NOT VERIFIED (SDK import/call smoke not run)

Findings

No blocking findings.

PMXT Pipeline Check

  • Field propagation (3-layer): N/A
  • OpenAPI sync: N/A
  • Financial precision: N/A
  • Type safety: OK
  • Auth safety: OK — credential field is forwarded, not logged

Semver Impact

patch -- SDK parity/typing fix.

Risk

SDK consumer behavior was not executed end-to-end because the local Python SDK test dependency is missing.

…ython-types-1

# Conflicts:
#	sdks/python/pmxt/client.py
#	sdks/typescript/pmxt/client.ts
@realfishsam

Copy link
Copy Markdown
Contributor Author

Merge-refresh note from the low-hanging PR automation:

  • Merged current origin/main into this branch and resolved SDK conflicts in:
    • sdks/python/pmxt/client.py
    • sdks/typescript/pmxt/client.ts
  • Local targeted checks after the conflict fix:
    • npm run build --workspace=pmxt-core
    • python3 -m compileall -q sdks/python/pmxt
    • node --check sdks/typescript/scripts/generate-client-methods.js
    • git diff --check
  • I did not merge this PR: GitHub generated-sync checks are red after the refresh. Re-running the client/docs generators locally would remove existing hosted-mode SDK sections / create broad generated drift unrelated to this focused SDK-parity PR, so I left that drift uncommitted.

Current blocker: generated client/docs sync needs a safer generator update or coordinated generated-output refresh before this is merge-ready.

@realfishsam

Copy link
Copy Markdown
Contributor Author

PR Review: PASS (NOT VERIFIED)

What This Does

Aligns several Python/TypeScript SDK parity gaps: Python Limitless accepts wallet_address, credentials include proxy/signature/wallet fields, Python router calls fetchMarketMatches, error type mapping uses ValidationError, and trade/signature model types are widened.

Blast Radius

Python SDK client/router/models/exports and TypeScript SDK type declarations. Core sidecar behavior is unchanged.

Consumer Verification

Before (base branch):
Python Limitless could not pass a delegated wallet_address through the convenience wrapper, Exchange._get_credentials_dict() returned None when only proxy/signature/wallet fields were provided, and Python router convenience fetch_market_matches used the older fetchMatches method name.

After (PR branch):
The wrapper forwards wallet_address, credential serialization includes proxyAddress, signatureType, and walletAddress, router uses fetchMarketMatches, and Python syntax checks pass for all changed Python files.

Test Results

  • Build: PASS (npm run build --workspace=pmxt-core)
  • Core unit tests: PASS (27 suites / 652 tests passed; 1 suite / 3 tests skipped)
  • Python syntax: PASS (py_compile on changed Python files)
  • Full npm test: FAIL in this checkout during Python SDK collection because pmxt_internal / eth_account are not available.
  • Server starts: N/A (SDK-only behavior)
  • E2E smoke: Not run through live hosted/local SDK due missing generated Python package

Findings

No blocking findings.

PMXT Pipeline Check

  • Field propagation (3-layer): N/A
  • OpenAPI sync: N/A
  • Financial precision: N/A
  • Type safety: OK (signature type widened consistently; optional field additions)
  • Auth safety: OK (credentials are serialized, not logged)

Semver Impact

patch -- SDK parity/bug-fix additions and error-class alignment.

Risk

I could not execute the Python SDK consumer path in this checkout because the generated pmxt_internal package is missing, so verification is by diff, syntax, and core tests rather than live SDK calls.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment