From a9fa7f2e19fe60181a313c73d228096ee4247ba4 Mon Sep 17 00:00:00 2001 From: discountry Date: Thu, 13 Nov 2025 02:34:10 +0800 Subject: [PATCH] feat: add bid, ask, and mark price to AsterTicker and normalize order status in LighterGateway --- src/exchanges/lighter/mappers.ts | 3 ++- src/exchanges/lighter/status.ts | 14 ++++++++++++++ src/exchanges/types.ts | 3 +++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/exchanges/lighter/status.ts diff --git a/src/exchanges/lighter/mappers.ts b/src/exchanges/lighter/mappers.ts index 6c71460..6e01572 100644 --- a/src/exchanges/lighter/mappers.ts +++ b/src/exchanges/lighter/mappers.ts @@ -21,6 +21,7 @@ import type { } from "./types"; import { coerceBooleanFlag, normalizeBooleanFlag } from "./flags"; import { normalizeOrderIdentity } from "./order-identity"; +import { normalizeOrderStatus } from "./status"; export function toDepth(symbol: string, snapshot: LighterOrderBookSnapshot): AsterDepth { const toLevels = (levels: LighterOrderBookLevel[]): AsterDepthLevel[] => @@ -104,7 +105,7 @@ export function lighterOrderToAster(symbol: string, order: LighterOrder): AsterO symbol, side, type: mapOrderType(order.type), - status: order.status ?? order.trigger_status ?? "UNKNOWN", + status: normalizeOrderStatus(order.status ?? order.trigger_status ?? "UNKNOWN"), price: order.price ?? "0", origQty: order.initial_base_amount ?? "0", executedQty: computeExecutedQty(order), diff --git a/src/exchanges/lighter/status.ts b/src/exchanges/lighter/status.ts new file mode 100644 index 0000000..a666276 --- /dev/null +++ b/src/exchanges/lighter/status.ts @@ -0,0 +1,14 @@ +const TERMINAL_STATUS_MAP: Record = { + filled: "FILLED", + canceled: "CANCELED", + cancelled: "CANCELED", + expired: "EXPIRED", + "canceled-post-only": "CANCELED", + "canceled-reduce-only": "CANCELED", +}; + +export function normalizeOrderStatus(raw: string): string { + if (!raw) return "UNKNOWN"; + const normalized = raw.toLowerCase(); + return TERMINAL_STATUS_MAP[normalized] ?? raw.toUpperCase(); +} diff --git a/src/exchanges/types.ts b/src/exchanges/types.ts index beaf2a3..9465408 100644 --- a/src/exchanges/types.ts +++ b/src/exchanges/types.ts @@ -316,6 +316,9 @@ export interface AsterTicker { priceChange?: string; priceChangePercent?: string; weightedAvgPrice?: string; + bidPrice?: string; + askPrice?: string; + markPrice?: string; lastQty?: string; openTime?: number; closeTime?: number;