StreamManagerV2를 사용한 gRPC 스트림
오더북 업데이트 스트림
복사
AI에게 묻기
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
import {
StreamManagerV2,
IndexerGrpcDerivativesStreamV2
} from '@injectivelabs/sdk-ts/client/indexer'
const endpoints = getNetworkEndpoints(Network.Testnet)
const stream = new IndexerGrpcDerivativesStreamV2(endpoints.indexer)
const streamManager = new StreamManagerV2({
id: 'derivatives-orderbook-updates',
streamFactory: () => stream.streamOrderbookUpdates({
marketIds: ['0x...'],
callback: (response) => {
streamManager.emit('data', response)
}
}),
onData: (orderbookUpdates) => {
console.log(orderbookUpdates)
},
retryConfig: { enabled: true }
})
streamManager.on('connect', () => console.log('스트림 연결됨'))
streamManager.start()
파생상품 주문 스트림
복사
AI에게 묻기
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
import { OrderSide } from '@injectivelabs/sdk-ts/types'
import {
StreamManagerV2,
IndexerGrpcDerivativesStreamV2
} from '@injectivelabs/sdk-ts/client/indexer'
const endpoints = getNetworkEndpoints(Network.Testnet)
const stream = new IndexerGrpcDerivativesStreamV2(endpoints.indexer)
const streamManager = new StreamManagerV2({
id: 'derivatives-orders',
streamFactory: () => stream.streamOrders({
marketId: '0x...',
subaccountId: '0x...', // 선택적
orderSide: OrderSide.Buy, // 선택적
callback: (response) => {
streamManager.emit('data', response)
}
}),
onData: (orders) => {
console.log(orders)
},
retryConfig: { enabled: true }
})
streamManager.on('connect', () => console.log('스트림 연결됨'))
streamManager.start()
파생상품 거래 스트림
복사
AI에게 묻기
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
import { TradeDirection } from '@injectivelabs/sdk-ts/types'
import {
StreamManagerV2,
IndexerGrpcDerivativesStreamV2
} from '@injectivelabs/sdk-ts/client/indexer'
const endpoints = getNetworkEndpoints(Network.Testnet)
const stream = new IndexerGrpcDerivativesStreamV2(endpoints.indexer)
const streamManager = new StreamManagerV2({
id: 'derivatives-trades',
streamFactory: () => stream.streamTrades({
marketIds: ['0x...'], // 선택적
subaccountId: '0x...', // 선택적
direction: TradeDirection.Buy, // 선택적
callback: (response) => {
streamManager.emit('data', response)
}
}),
onData: (trades) => {
console.log(trades)
},
retryConfig: { enabled: true }
})
streamManager.on('connect', () => console.log('스트림 연결됨'))
streamManager.start()
파생상품 포지션 스트림
복사
AI에게 묻기
import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
import {
StreamManagerV2,
IndexerGrpcDerivativesStreamV2
} from '@injectivelabs/sdk-ts/client/indexer'
const endpoints = getNetworkEndpoints(Network.Testnet)
const stream = new IndexerGrpcDerivativesStreamV2(endpoints.indexer)
const streamManager = new StreamManagerV2({
id: 'derivatives-positions',
streamFactory: () => stream.streamPositions({
marketId: '0x...', // 선택적
subaccountId: '0x...', // 선택적
callback: (response) => {
streamManager.emit('data', response)
}
}),
onData: (positions) => {
console.log(positions)
},
retryConfig: { enabled: true }
})
streamManager.on('connect', () => console.log('스트림 연결됨'))
streamManager.start()
