fix(oneshot): use endDate instead of endDateIso for market expiry check

The Gamma API returns two date fields:
  endDateIso = "2026-02-24"           ← date only, no time
  endDate    = "2026-02-24T06:35:00Z" ← correct close datetime

_parseEndTs() was preferring endDateIso, which parsed to midnight UTC
and was already in the past by the time any market opened during the day.
Both current and next-slot markets were therefore rejected as "already expired".

Fix: prioritise endDate (full ISO datetime) over endDateIso (date-only).

Co-Authored-By: direkturcrypto <direkturcrypto.x@mail3.me>
This commit is contained in:
direkturcrypto
2026-02-24 13:33:48 +07:00
parent 202bf98fe7
commit acf3943f80
+4 -1
View File
@@ -177,7 +177,10 @@ export class MarketFeedService {
}
_parseEndTs(market) {
const raw = market.endDateIso || market.end_date_iso || market.endDate;
// endDate contains the full datetime (e.g. "2026-02-24T06:35:00Z").
// endDateIso is date-only ("2026-02-24") and parses to midnight UTC —
// which is already in the past by market-open time, so it must come last.
const raw = market.endDate || market.end_date || market.endDateIso || market.end_date_iso;
if (!raw) return null;
const ts = new Date(raw).getTime();
return Number.isFinite(ts) ? ts : null;