import { getNetworkEndpoints, Network } from '@injectivelabs/networks'
import {
StreamManagerV2,
IndexerGrpcSpotStreamV2
} from '@injectivelabs/sdk-ts/client/indexer'
const endpoints = getNetworkEndpoints(Network.Testnet)
const stream = new IndexerGrpcSpotStreamV2(endpoints.indexer)
const streamManager = new StreamManagerV2({
id: 'my-stream',
streamFactory: () => stream.streamOrders({
marketId: '0x...',
callback: (response) => {
streamManager.emit('data', response)
}
}),
onData: (data) => {
console.log(data)
},
retryConfig: {
enabled: true,
maxAttempts: 5,
initialDelayMs: 1000,
maxDelayMs: 30000,
backoffMultiplier: 2,
persistent: true
}
})
// Event listeners
streamManager.on('connect', () => console.log('Connected'))
streamManager.on('disconnect', (reason) => console.log('Disconnected:', reason))
streamManager.on('error', (error) => console.error('Error:', error))
streamManager.on('stateChange', ({ from, to }) => console.log(`State: ${from} -> ${to}`))
// Start/stop
streamManager.start()
streamManager.stop()