From 2bb082b4aa5f29d344d059e2c8934694264b980f Mon Sep 17 00:00:00 2001 From: meafmira Date: Tue, 14 Jun 2022 12:08:17 +0530 Subject: [PATCH] feat: add kind to update pair callback --- src/services/OrionAggregator/ws/index.ts | 19 +++++++++++++++---- .../ws/schemas/assetPairConfigSchema.ts | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/services/OrionAggregator/ws/index.ts b/src/services/OrionAggregator/ws/index.ts index e32949f..6bd51bd 100644 --- a/src/services/OrionAggregator/ws/index.ts +++ b/src/services/OrionAggregator/ws/index.ts @@ -87,7 +87,10 @@ type PairsConfigSubscription = { type PairConfigSubscription = { payload: string, - callback: (data: AssetPairUpdate) => void, + callback: ({ kind, data }: { + kind: 'initial' | 'update', + data: AssetPairUpdate, + }) => void, } type AggregatedOrderbookSubscription = { @@ -418,10 +421,18 @@ class OrionAggregatorWS { } break; case MessageType.ASSET_PAIR_CONFIG_UPDATE: { - const pair = json; - const [, minQty, pricePrecision] = pair.u; + const pair = json.u; + const [, minQty, pricePrecision] = pair; - this.subscriptions[SubscriptionType.ASSET_PAIR_CONFIG_UPDATES_SUBSCRIBE]?.[json.id]?.callback({ minQty, pricePrecision }); + this.subscriptions[ + SubscriptionType.ASSET_PAIR_CONFIG_UPDATES_SUBSCRIBE + ]?.[json.id]?.callback({ + data: { + minQty, + pricePrecision, + }, + kind: json.k === 'i' ? 'initial' : 'update', + }); break; } diff --git a/src/services/OrionAggregator/ws/schemas/assetPairConfigSchema.ts b/src/services/OrionAggregator/ws/schemas/assetPairConfigSchema.ts index 9bab636..0b17754 100644 --- a/src/services/OrionAggregator/ws/schemas/assetPairConfigSchema.ts +++ b/src/services/OrionAggregator/ws/schemas/assetPairConfigSchema.ts @@ -5,6 +5,7 @@ import baseMessageSchema from './baseMessageSchema'; const assetPairConfigSchema = baseMessageSchema.extend({ id: z.string(), T: z.literal(MessageType.ASSET_PAIR_CONFIG_UPDATE), + k: z.enum(['i', 'u']), u: z.tuple([ z.string(), // pairName z.number(), // minQty