adapters(bingx_direct): component-correct message/comment attribution (operator: in-kernel messages name the emitting component, not the consumer)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -594,8 +594,8 @@ class BingxDirectExecutionAdapter(ExecutionPort):
|
|||||||
_action_char = "e" if intent.action == DecisionAction.ENTER else "x"
|
_action_char = "e" if intent.action == DecisionAction.ENTER else "x"
|
||||||
_ts36 = self._base36(int(time.time() * 1000))
|
_ts36 = self._base36(int(time.time() * 1000))
|
||||||
_rand4 = uuid.uuid4().hex[:4]
|
_rand4 = uuid.uuid4().hex[:4]
|
||||||
# UV-FIX 2026-07-11: honor an upstream-minted client id (the u- prefix
|
# FIX 2026-07-11 (bingx_direct): honor an upstream-minted client id (e.g. the caller's
|
||||||
# from the UV seam) when the intent carries one — venue orders then join
|
# u- prefixed seam id) when the intent carries one — venue orders then join
|
||||||
# back to exec_journal rows by id, and the sentinel u- check holds.
|
# back to exec_journal rows by id, and the sentinel u- check holds.
|
||||||
# Same charset/length rules apply (metadata id is trimmed to 40).
|
# Same charset/length rules apply (metadata id is trimmed to 40).
|
||||||
_meta = intent.metadata or {}
|
_meta = intent.metadata or {}
|
||||||
@@ -659,7 +659,7 @@ class BingxDirectExecutionAdapter(ExecutionPort):
|
|||||||
)
|
)
|
||||||
ack = BingxOrderAck.from_http(ack_payload if isinstance(ack_payload, dict) else {})
|
ack = BingxOrderAck.from_http(ack_payload if isinstance(ack_payload, dict) else {})
|
||||||
ack_row = dict(unwrap_order_payload(ack_payload)) if isinstance(ack_payload, dict) else {}
|
ack_row = dict(unwrap_order_payload(ack_payload)) if isinstance(ack_payload, dict) else {}
|
||||||
# UV-FIX 2026-07-11: an accepted order ALWAYS carries the venue's
|
# FIX 2026-07-11 (bingx_direct): an accepted order ALWAYS carries the venue's
|
||||||
# orderId. VST answers an order on an offline/delisted symbol with
|
# orderId. VST answers an order on an offline/delisted symbol with
|
||||||
# code==0 + EMPTY data (observed BAND/CELR 2026-07-10/11) — the
|
# code==0 + EMPTY data (observed BAND/CELR 2026-07-10/11) — the
|
||||||
# unwrapped ack is {} and, before this guard, fell through as
|
# unwrapped ack is {} and, before this guard, fell through as
|
||||||
@@ -722,7 +722,7 @@ class BingxDirectExecutionAdapter(ExecutionPort):
|
|||||||
# BingX REST ACK does not include commission. WS FILL_SETTLED will deliver
|
# BingX REST ACK does not include commission. WS FILL_SETTLED will deliver
|
||||||
# the actual fee later and update the fee_source to "WS_SETTLED".
|
# the actual fee later and update the fee_source to "WS_SETTLED".
|
||||||
# Until then, log an estimate so CH rows are never blank on this field.
|
# Until then, log an estimate so CH rows are never blank on this field.
|
||||||
# UV-FIX 2026-07-11: never fabricate a fill for a rejected order — the
|
# FIX 2026-07-11 (bingx_direct): never fabricate a fill for a rejected order — the
|
||||||
# target_size fallback applies only to accepted MARKET acks whose fill
|
# target_size fallback applies only to accepted MARKET acks whose fill
|
||||||
# arrives later via WS (BingX REST ack omits executedQty on those).
|
# arrives later via WS (BingX REST ack omits executedQty on those).
|
||||||
if status in ("REJECTED", "RATE_LIMITED"):
|
if status in ("REJECTED", "RATE_LIMITED"):
|
||||||
|
|||||||
Reference in New Issue
Block a user