Skip to content

fix Bitget Classic account reads - #1027

Merged
luokerenx4 merged 1 commit into
devfrom
codex/bitget-classic-read-correctness
Aug 8, 2026
Merged

fix Bitget Classic account reads#1027
luokerenx4 merged 1 commit into
devfrom
codex/bitget-classic-read-correctness

Conversation

@luokerenx4

Copy link
Copy Markdown
Contributor

Summary

  • model Bitget Classic as separate Spot and USDT-M Futures compartments under one OpenAlice UTA
  • route Classic balances and positions through explicit USDT-FUTURES parameters
  • enumerate regular, trigger, TP/SL, and trailing open-order namespaces, failing loudly on incomplete Bitget reads
  • keep Bitget Unified/v3 routing disabled and label that boundary in the preset
  • credit @enderzcx in CONTRIBUTORS.md and README for the diagnosis proposed in fix: read Bitget USDT-M and UTA account state #951

Root cause

CCXT 4.5.38 defaults unscoped Bitget private reads to Spot. Those calls can succeed while omitting Classic USDT-M funds and several open-order namespaces, so the prior single-account model could report plausible but incomplete state.

Verification

  • pnpm exec vitest run services/uta/src/domain/trading/brokers/ccxt/CcxtBroker.spec.ts services/uta/src/domain/trading/brokers/ccxt/exchanges/bitget.spec.ts services/uta/src/domain/trading/brokers/ccxt/exchanges/bitget.ccxt.spec.ts services/uta/src/domain/trading/brokers/presets.spec.ts — 168 passed
  • npx tsc --noEmit
  • pnpm -F @traderalice/uta-broker-ccxt typecheck
  • pnpm test — 4,046 passed, 9 skipped
  • pnpm -F @traderalice/guardian-runtime build && pnpm test:e2e — 30 passed, 3 skipped
  • pnpm broker-packs:build && pnpm broker-packs:verify — all five darwin-arm64 artifacts verified

No configured Bitget Classic/demo account was available in the local runtime, so private venue reads were not independently repeated. The deterministic suite exercises the real CCXT 4.5.38 routing implementation; #951's read-only Classic venue evidence remains external corroboration rather than this PR's local acceptance.

Boundary touch

Trading account reads and logical sub-account topology. Bitget Classic writes still use the existing CCXT endpoints, but multi-compartment UTA safety now requires an explicit subAccountId for staged writes. This PR does not enable CCXT options.uta or any Bitget v3 route.

Non-goals

  • Bitget Unified Trading Account/v3 support
  • funding, earn, P2P, or custody wallet enumeration
  • Bitget main/sub-UID aggregation

Reported in #951; reimplemented on the maintainer-owned branch and credited in CONTRIBUTORS.md.
@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
openalice-demo Ready Ready Preview Aug 8, 2026 3:21pm

Request Review

@luokerenx4
luokerenx4 merged commit 13efeb6 into dev Aug 8, 2026
12 checks passed
@luokerenx4
luokerenx4 deleted the codex/bitget-classic-read-correctness branch August 8, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant