From 98e237197d643140979fa25c79670c061408be74 Mon Sep 17 00:00:00 2001 From: "Samuel EF. Tinnerholm" Date: Sun, 24 May 2026 19:48:22 +0300 Subject: [PATCH] fix: myriad websocket non-null guards on resolver maps Fixes #240 --- core/src/exchanges/myriad/websocket.ts | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/core/src/exchanges/myriad/websocket.ts b/core/src/exchanges/myriad/websocket.ts index e427f2f7..58a9a0f6 100644 --- a/core/src/exchanges/myriad/websocket.ts +++ b/core/src/exchanges/myriad/websocket.ts @@ -43,8 +43,14 @@ export class MyriadWebSocket { this.orderBookResolvers.set(outcomeId, []); this.orderBookRejecters.set(outcomeId, []); } - this.orderBookResolvers.get(outcomeId)!.push(resolve); - this.orderBookRejecters.get(outcomeId)!.push(reject); + const resolvers = this.orderBookResolvers.get(outcomeId); + const rejecters = this.orderBookRejecters.get(outcomeId); + if (!resolvers || !rejecters) { + reject(new Error(`Failed to initialize orderBook resolvers for outcomeId=${outcomeId}`)); + return; + } + resolvers.push(resolve); + rejecters.push(reject); if (!this.orderBookTimers.has(outcomeId)) { this.startOrderBookPolling(outcomeId); @@ -60,8 +66,14 @@ export class MyriadWebSocket { this.tradeResolvers.set(outcomeId, []); this.tradeRejecters.set(outcomeId, []); } - this.tradeResolvers.get(outcomeId)!.push(resolve); - this.tradeRejecters.get(outcomeId)!.push(reject); + const resolvers = this.tradeResolvers.get(outcomeId); + const rejecters = this.tradeRejecters.get(outcomeId); + if (!resolvers || !rejecters) { + reject(new Error(`Failed to initialize trade resolvers for outcomeId=${outcomeId}`)); + return; + } + resolvers.push(resolve); + rejecters.push(reject); if (!this.tradeTimers.has(outcomeId)) { this.startTradePolling(outcomeId);