From 296208dbdeddd654f64b409ad6ba033aa91c25ab Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 17:00:18 -0400 Subject: [PATCH] Add BEC to initial subaccount orders socks channel (#1500) (#1504) * Add BEC to initial subaccount orders socks channel * fix tests (cherry picked from commit 54ceae665ae336045950de4eb6849b86698c631d) Co-authored-by: Christopher-Li --- .../socks/__tests__/lib/subscriptions.test.ts | 4 ++-- .../services/socks/src/lib/subscription.ts | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/indexer/services/socks/__tests__/lib/subscriptions.test.ts b/indexer/services/socks/__tests__/lib/subscriptions.test.ts index 95946f6e7b..7481d00c83 100644 --- a/indexer/services/socks/__tests__/lib/subscriptions.test.ts +++ b/indexer/services/socks/__tests__/lib/subscriptions.test.ts @@ -51,7 +51,7 @@ describe('Subscriptions', () => { const initialResponseUrlPatterns: Record = { [Channel.V4_ACCOUNTS]: [ '/v4/addresses/.+/subaccountNumber/.+', - '/v4/orders?.+subaccountNumber.+OPEN,UNTRIGGERED,BEST_EFFORT_OPENED', + '/v4/orders?.+subaccountNumber.+OPEN,UNTRIGGERED,BEST_EFFORT_OPENED,BEST_EFFORT_CANCELED', ], [Channel.V4_CANDLES]: ['/v4/candles/perpetualMarkets/.+?resolution=.+'], [Channel.V4_MARKETS]: ['/v4/perpetualMarkets'], @@ -59,7 +59,7 @@ describe('Subscriptions', () => { [Channel.V4_TRADES]: ['/v4/trades/perpetualMarket/.+'], [Channel.V4_PARENT_ACCOUNTS]: [ '/v4/addresses/.+/parentSubaccountNumber/.+', - '/v4/orders/parentSubaccountNumber?.+parentSubaccountNumber.+OPEN,UNTRIGGERED,BEST_EFFORT_OPENED', + '/v4/orders/parentSubaccountNumber?.+parentSubaccountNumber.+OPEN,UNTRIGGERED,BEST_EFFORT_OPENED,BEST_EFFORT_CANCELED', ], }; const initialMessage: Object = { a: 'b' }; diff --git a/indexer/services/socks/src/lib/subscription.ts b/indexer/services/socks/src/lib/subscription.ts index dd8c8ba25b..a2f850232d 100644 --- a/indexer/services/socks/src/lib/subscription.ts +++ b/indexer/services/socks/src/lib/subscription.ts @@ -4,7 +4,13 @@ import { stats, } from '@dydxprotocol-indexer/base'; import { - CHILD_SUBACCOUNT_MULTIPLIER, CandleResolution, MAX_PARENT_SUBACCOUNTS, perpetualMarketRefresher, + APIOrderStatus, + BestEffortOpenedStatus, + CHILD_SUBACCOUNT_MULTIPLIER, + CandleResolution, + MAX_PARENT_SUBACCOUNTS, + OrderStatus, + perpetualMarketRefresher, } from '@dydxprotocol-indexer/postgres'; import WebSocket from 'ws'; @@ -25,6 +31,13 @@ import { RateLimiter } from './rate-limit'; const COMLINK_URL: string = `http://${config.COMLINK_URL}`; const EMPTY_INITIAL_RESPONSE: string = '{}'; +const VALID_ORDER_STATUS_FOR_INITIAL_SUBACCOUNT_RESPONSE: APIOrderStatus[] = [ + OrderStatus.OPEN, + OrderStatus.UNTRIGGERED, + BestEffortOpenedStatus.BEST_EFFORT_OPENED, + OrderStatus.BEST_EFFORT_CANCELED, +]; +const VALID_ORDER_STATUS: string = VALID_ORDER_STATUS_FOR_INITIAL_SUBACCOUNT_RESPONSE.join(','); export class Subscriptions { // Maps channels and ids to a list of websocket connections subscribed to them @@ -537,7 +550,7 @@ export class Subscriptions { // TODO(DEC-1462): Use the /active-orders endpoint once it's added. axiosRequest({ method: RequestMethod.GET, - url: `${COMLINK_URL}/v4/orders?address=${address}&subaccountNumber=${subaccountNumber}&status=OPEN,UNTRIGGERED,BEST_EFFORT_OPENED`, + url: `${COMLINK_URL}/v4/orders?address=${address}&subaccountNumber=${subaccountNumber}&status=${VALID_ORDER_STATUS}`, timeout: config.INITIAL_GET_TIMEOUT_MS, headers: { 'cf-ipcountry': country, @@ -602,7 +615,7 @@ export class Subscriptions { // TODO(DEC-1462): Use the /active-orders endpoint once it's added. axiosRequest({ method: RequestMethod.GET, - url: `${COMLINK_URL}/v4/orders/parentSubaccountNumber?address=${address}&parentSubaccountNumber=${subaccountNumber}&status=OPEN,UNTRIGGERED,BEST_EFFORT_OPENED`, + url: `${COMLINK_URL}/v4/orders/parentSubaccountNumber?address=${address}&parentSubaccountNumber=${subaccountNumber}&status=${VALID_ORDER_STATUS}`, timeout: config.INITIAL_GET_TIMEOUT_MS, headers: { 'cf-ipcountry': country,