diff --git a/package.json b/package.json index 562e59e..a795721 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.15.26-rc.2", + "version": "0.15.26-rc.3", "description": "Orion Protocol SDK", "main": "./lib/esm/index.js", "module": "./lib/esm/index.js", diff --git a/src/services/OrionAggregator/index.ts b/src/services/OrionAggregator/index.ts index ec0c38b..e011941 100644 --- a/src/services/OrionAggregator/index.ts +++ b/src/services/OrionAggregator/index.ts @@ -12,7 +12,7 @@ import { atomicSwapHistorySchema } from './schemas/atomicSwapHistorySchema'; import { Exchange, SignedCancelOrderRequest, SignedOrder } from '../../types'; import { pairConfigSchema } from './schemas'; import { - aggregatedOrderbookSchema, exchangeOrderbookSchema, + aggregatedOrderbookSchema, exchangeOrderbookSchema, poolReservesSchema, } from './schemas/aggregatedOrderbookSchema'; import networkCodes from '../../constants/networkCodes'; @@ -38,6 +38,7 @@ class OrionAggregator { this.getLockedBalance = this.getLockedBalance.bind(this); this.getAggregatedOrderbook = this.getAggregatedOrderbook.bind(this); this.getExchangeOrderbook = this.getExchangeOrderbook.bind(this); + this.getPoolReserves = this.getPoolReserves.bind(this); } getPairsList = () => fetchWithValidation( @@ -59,7 +60,7 @@ class OrionAggregator { getExchangeOrderbook = ( pair: string, - exchange: string, + exchange: Exchange, depth = 20, filterByBrokerBalances: boolean | null = null, ) => { @@ -77,6 +78,19 @@ class OrionAggregator { ); }; + getPoolReserves = ( + pair: string, + exchange: Exchange, + ) => { + const url = new URL(`${this.apiUrl}/api/v1/pools/reserves/${exchange}/${pair}`); + return fetchWithValidation( + url.toString(), + poolReservesSchema, + undefined, + errorSchema, + ); + }; + getPairConfigs = () => fetchWithValidation( `${this.apiUrl}/api/v1/pairs/exchangeInfo`, exchangeInfoSchema, diff --git a/src/services/OrionAggregator/schemas/aggregatedOrderbookSchema.ts b/src/services/OrionAggregator/schemas/aggregatedOrderbookSchema.ts index 0cd610b..e9a505b 100644 --- a/src/services/OrionAggregator/schemas/aggregatedOrderbookSchema.ts +++ b/src/services/OrionAggregator/schemas/aggregatedOrderbookSchema.ts @@ -24,3 +24,9 @@ export const exchangeOrderbookSchema = z.object({ asks: z.array(orderbookElementSchema), bids: z.array(orderbookElementSchema), }); + +export const poolReservesSchema = z.object({ + a: z.number(), // amount asset + p: z.number(), // price asset + indicativePrice: z.number(), +});