Skip to content

Commit

Permalink
Revert "chore: update sdk-ts with latest indexer protos"
Browse files Browse the repository at this point in the history
This reverts commit 7c5c396.
  • Loading branch information
bangjelkoski committed Apr 12, 2023
1 parent c57aad7 commit fcb9d33
Show file tree
Hide file tree
Showing 11 changed files with 342 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,35 @@ describe('IndexerGrpcDerivativeApi', () => {
}
})

test('fetchOrderbook', async () => {
try {
const response = await indexerGrpcDerivativesApi.fetchOrderbook(
market.marketId,
)

if (response.buys.length === 0) {
console.warn('fetchOrderbook.buysIsEmptyArray')
}

if (response.sells.length === 0) {
console.warn('fetchOrderbook.sellsIsEmptyArray')
}

expect(response).toBeDefined()
expect(response).toEqual(
expect.objectContaining<
ReturnType<
typeof IndexerGrpcDerivativeTransformer.orderbookResponseToOrderbook
>
>(response),
)
} catch (e) {
console.error(
'IndexerGrpcDerivativesApi.fetchOrderbook => ' + (e as any).message,
)
}
})

test('fetchOrders', async () => {
try {
const response = await indexerGrpcDerivativesApi.fetchOrders({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,32 @@ export class IndexerGrpcDerivativesApi {
}
}

async fetchOrderbook(marketId: string) {
const request = InjectiveDerivativeExchangeRpc.OrderbookRequest.create()

request.marketId = marketId

try {
const response = await this.client.Orderbook(request)

return IndexerGrpcDerivativeTransformer.orderbookResponseToOrderbook(
response,
)
} catch (e: unknown) {
if (e instanceof InjectiveDerivativeExchangeRpc.GrpcWebError) {
throw new GrpcUnaryRequestException(new Error(e.toString()), {
code: e.code,
contextModule: this.module,
})
}

throw new GrpcUnaryRequestException(e as Error, {
code: UnspecifiedErrorCode,
contextModule: this.module,
})
}
}

async fetchOrders(params?: {
marketId?: string
marketIds?: string[]
Expand Down Expand Up @@ -702,6 +728,34 @@ export class IndexerGrpcDerivativesApi {
}
}

async fetchOrderbooks(marketIds: string[]) {
const request = InjectiveDerivativeExchangeRpc.OrderbooksRequest.create()

if (marketIds.length > 0) {
request.marketIds = marketIds
}

try {
const response = await this.client.Orderbooks(request)

return IndexerGrpcDerivativeTransformer.orderbooksResponseToOrderbooks(
response,
)
} catch (e: unknown) {
if (e instanceof InjectiveDerivativeExchangeRpc.GrpcWebError) {
throw new GrpcUnaryRequestException(new Error(e.toString()), {
code: e.code,
contextModule: this.module,
})
}

throw new GrpcUnaryRequestException(e as Error, {
code: UnspecifiedErrorCode,
contextModule: this.module,
})
}
}

async fetchOrderbooksV2(marketIds: string[]) {
const request = InjectiveDerivativeExchangeRpc.OrderbooksV2Request.create()

Expand Down
27 changes: 27 additions & 0 deletions packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcSpotApi.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,33 @@ describe('IndexerGrpcSpotApi', () => {
}
})

test('fetchOrderbook', async () => {
try {
const response = await indexerGrpcSpotApi.fetchOrderbook(market.marketId)

if (response.buys.length === 0) {
console.warn('fetchOrderbook.buysIsEmptyArray')
}

if (response.sells.length === 0) {
console.warn('fetchOrderbook.sellsIsEmptyArray')
}

expect(response).toBeDefined()
expect(response).toEqual(
expect.objectContaining<
ReturnType<
typeof IndexerGrpcSpotTransformer.orderbookResponseToOrderbook
>
>(response),
)
} catch (e) {
console.error(
'IndexerGrpcSpotApi.fetchOrderbook => ' + (e as any).message,
)
}
})

test('fetchOrders', async () => {
try {
const response = await indexerGrpcSpotApi.fetchOrders({
Expand Down
51 changes: 51 additions & 0 deletions packages/sdk-ts/src/client/indexer/grpc/IndexerGrpcSpotApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,30 @@ export class IndexerGrpcSpotApi {
}
}

async fetchOrderbook(marketId: string) {
const request = InjectiveSpotExchangeRpc.OrderbookRequest.create()

request.marketId = marketId

try {
const response = await this.client.Orderbook(request)

return IndexerGrpcSpotTransformer.orderbookResponseToOrderbook(response)
} catch (e: unknown) {
if (e instanceof InjectiveSpotExchangeRpc.GrpcWebError) {
throw new GrpcUnaryRequestException(new Error(e.toString()), {
code: e.code,
contextModule: this.module,
})
}

throw new GrpcUnaryRequestException(e as Error, {
code: UnspecifiedErrorCode,
contextModule: this.module,
})
}
}

async fetchOrders(params?: {
marketId?: string
marketIds?: string[]
Expand Down Expand Up @@ -460,6 +484,33 @@ export class IndexerGrpcSpotApi {
})
}
}

async fetchOrderbooks(marketIds: string[]) {
const request = InjectiveSpotExchangeRpc.OrderbooksRequest.create()

if (marketIds.length > 0) {
request.marketIds = marketIds
}

try {
const response = await this.client.Orderbooks(request)

return IndexerGrpcSpotTransformer.orderbooksResponseToOrderbooks(response)
} catch (e: unknown) {
if (e instanceof InjectiveSpotExchangeRpc.GrpcWebError) {
throw new GrpcUnaryRequestException(new Error(e.toString()), {
code: e.code,
contextModule: this.module,
})
}

throw new GrpcUnaryRequestException(e as Error, {
code: UnspecifiedErrorCode,
contextModule: this.module,
})
}
}

async fetchOrderbooksV2(marketIds: string[]) {
const request = InjectiveSpotExchangeRpc.OrderbooksV2Request.create()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@ import { getGrpcIndexerWebImpl } from '../../BaseIndexerGrpcWebConsumer'
import { Subscription } from 'rxjs'
import { InjectiveDerivativeExchangeRpc } from '@injectivelabs/indexer-proto-ts'

export type DerivativeOrderbookStreamCallback = (
response: ReturnType<
typeof IndexerDerivativeStreamTransformer.orderbookStreamCallback
>,
) => void

export type DerivativeOrderbookV2StreamCallback = (
response: ReturnType<
typeof IndexerDerivativeStreamTransformer.orderbookV2StreamCallback
Expand Down Expand Up @@ -64,6 +70,43 @@ export class IndexerGrpcDerivativesStream {
)
}

streamDerivativeOrderbook({
marketIds,
callback,
onEndCallback,
onStatusCallback,
}: {
marketIds: string[]
callback: DerivativeOrderbookStreamCallback
onEndCallback?: (status?: StreamStatusResponse) => void
onStatusCallback?: (status: StreamStatusResponse) => void
}): Subscription {
const request =
InjectiveDerivativeExchangeRpc.StreamOrderbookRequest.create()

request.marketIds = marketIds

const subscription = this.client.StreamOrderbook(request).subscribe({
next(response: InjectiveDerivativeExchangeRpc.StreamOrderbookResponse) {
callback(
IndexerDerivativeStreamTransformer.orderbookStreamCallback(response),
)
},
error(err) {
if (onStatusCallback) {
onStatusCallback(err)
}
},
complete() {
if (onEndCallback) {
onEndCallback()
}
},
})

return subscription as unknown as Subscription
}

streamDerivativeOrders({
marketId,
subaccountId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,12 @@ export type MarketsStreamCallback = (
response: InjectiveSpotExchangeRpc.StreamMarketsResponse,
) => void

export type SpotOrderbookStreamCallback = (
response: ReturnType<
typeof IndexerSpotStreamTransformer.orderbookStreamCallback
>,
) => void

export type SpotOrderbookV2StreamCallback = (
response: ReturnType<
typeof IndexerSpotStreamTransformer.orderbookV2StreamCallback
Expand Down Expand Up @@ -58,6 +64,40 @@ export class IndexerGrpcSpotStream {
)
}

streamSpotOrderbook({
marketIds,
callback,
onEndCallback,
onStatusCallback,
}: {
marketIds: string[]
callback: SpotOrderbookStreamCallback
onEndCallback?: (status?: StreamStatusResponse) => void
onStatusCallback?: (status: StreamStatusResponse) => void
}): Subscription {
const request = InjectiveSpotExchangeRpc.StreamOrderbookRequest.create()

request.marketIds = marketIds

const subscription = this.client.StreamOrderbook(request).subscribe({
next(response: InjectiveSpotExchangeRpc.StreamOrderbookResponse) {
callback(IndexerSpotStreamTransformer.orderbookStreamCallback(response))
},
error(err) {
if (onStatusCallback) {
onStatusCallback(err)
}
},
complete() {
if (onEndCallback) {
onEndCallback()
}
},
})

return subscription as unknown as Subscription
}

streamSpotOrders({
marketId,
subaccountId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,24 @@ import { InjectiveDerivativeExchangeRpc } from '@injectivelabs/indexer-proto-ts'
* @category Indexer Stream Transformer
*/
export class IndexerDerivativeStreamTransformer {
static orderbookStreamCallback = (
response: InjectiveDerivativeExchangeRpc.StreamOrderbookResponse,
) => {
const orderbook = response.orderbook

return {
orderbook: orderbook
? IndexerGrpcDerivativeTransformer.grpcOrderbookToOrderbook({
buys: orderbook.buys,
sells: orderbook.sells,
})
: undefined,
operation: response.operationType as StreamOperation,
marketId: response.marketId,
timestamp: response.timestamp,
}
}

static tradesStreamCallback = (
response: InjectiveDerivativeExchangeRpc.StreamTradesResponse,
) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,17 @@ export class IndexerGrpcDerivativeTransformer {
}
}

static orderbookResponseToOrderbook(
response: InjectiveDerivativeExchangeRpc.OrderbookResponse,
) {
const orderbook = response.orderbook!

return IndexerGrpcDerivativeTransformer.grpcOrderbookToOrderbook({
buys: orderbook?.buys,
sells: orderbook?.sells,
})
}

static orderbookV2ResponseToOrderbookV2(
response: InjectiveDerivativeExchangeRpc.OrderbookV2Response,
) {
Expand All @@ -238,6 +249,24 @@ export class IndexerGrpcDerivativeTransformer {
})
}

static orderbooksResponseToOrderbooks(
response: InjectiveDerivativeExchangeRpc.OrderbooksResponse,
) {
const orderbooks = response.orderbooks!

return orderbooks.map((o) => {
const orderbook = o.orderbook!

return {
marketId: o.marketId,
orderbook: IndexerGrpcDerivativeTransformer.grpcOrderbookToOrderbook({
buys: orderbook.buys,
sells: orderbook.sells,
}),
}
})
}

static orderbooksV2ResponseToOrderbooksV2(
response: InjectiveDerivativeExchangeRpc.OrderbooksV2Response,
) {
Expand Down
Loading

0 comments on commit fcb9d33

Please sign in to comment.