tardis-dev 13.4.9 → 13.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/consts.d.ts +4 -2
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +19 -2
- package/dist/consts.js.map +1 -1
- package/dist/mappers/bybit.d.ts +1 -1
- package/dist/mappers/bybitspot.d.ts +96 -0
- package/dist/mappers/bybitspot.d.ts.map +1 -0
- package/dist/mappers/bybitspot.js +102 -0
- package/dist/mappers/bybitspot.js.map +1 -0
- package/dist/mappers/huobi.d.ts +3 -3
- package/dist/mappers/huobi.js +1 -1
- package/dist/mappers/index.d.ts +3 -3
- package/dist/mappers/index.d.ts.map +1 -1
- package/dist/mappers/index.js +16 -5
- package/dist/mappers/index.js.map +1 -1
- package/dist/mappers/poloniex.d.ts +60 -0
- package/dist/mappers/poloniex.d.ts.map +1 -1
- package/dist/mappers/poloniex.js +73 -2
- package/dist/mappers/poloniex.js.map +1 -1
- package/dist/mappers/serum.d.ts +12 -0
- package/dist/mappers/serum.d.ts.map +1 -1
- package/dist/mappers/serum.js +2 -2
- package/dist/mappers/serum.js.map +1 -1
- package/dist/realtimefeeds/ascendex.d.ts +2 -0
- package/dist/realtimefeeds/ascendex.d.ts.map +1 -1
- package/dist/realtimefeeds/ascendex.js +6 -0
- package/dist/realtimefeeds/ascendex.js.map +1 -1
- package/dist/realtimefeeds/bybit.d.ts +2 -0
- package/dist/realtimefeeds/bybit.d.ts.map +1 -1
- package/dist/realtimefeeds/bybit.js +6 -0
- package/dist/realtimefeeds/bybit.js.map +1 -1
- package/dist/realtimefeeds/bybitspot.d.ts +10 -0
- package/dist/realtimefeeds/bybitspot.d.ts.map +1 -0
- package/dist/realtimefeeds/bybitspot.js +40 -0
- package/dist/realtimefeeds/bybitspot.js.map +1 -0
- package/dist/realtimefeeds/delta.d.ts +2 -0
- package/dist/realtimefeeds/delta.d.ts.map +1 -1
- package/dist/realtimefeeds/delta.js +6 -0
- package/dist/realtimefeeds/delta.js.map +1 -1
- package/dist/realtimefeeds/ftx.d.ts +2 -0
- package/dist/realtimefeeds/ftx.d.ts.map +1 -1
- package/dist/realtimefeeds/ftx.js +6 -0
- package/dist/realtimefeeds/ftx.js.map +1 -1
- package/dist/realtimefeeds/index.d.ts.map +1 -1
- package/dist/realtimefeeds/index.js +5 -1
- package/dist/realtimefeeds/index.js.map +1 -1
- package/dist/realtimefeeds/mango.d.ts +5 -0
- package/dist/realtimefeeds/mango.d.ts.map +1 -0
- package/dist/realtimefeeds/mango.js +12 -0
- package/dist/realtimefeeds/mango.js.map +1 -0
- package/dist/realtimefeeds/poloniex.d.ts +6 -3
- package/dist/realtimefeeds/poloniex.d.ts.map +1 -1
- package/dist/realtimefeeds/poloniex.js +14 -9
- package/dist/realtimefeeds/poloniex.js.map +1 -1
- package/dist/realtimefeeds/realtimefeed.d.ts +1 -0
- package/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
- package/dist/realtimefeeds/realtimefeed.js +7 -1
- package/dist/realtimefeeds/realtimefeed.js.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +21 -2
- package/src/mappers/bybitspot.ts +129 -0
- package/src/mappers/huobi.ts +1 -1
- package/src/mappers/index.ts +21 -7
- package/src/mappers/poloniex.ts +134 -1
- package/src/mappers/serum.ts +27 -13
- package/src/realtimefeeds/ascendex.ts +8 -0
- package/src/realtimefeeds/bybit.ts +8 -0
- package/src/realtimefeeds/bybitspot.ts +39 -0
- package/src/realtimefeeds/delta.ts +8 -0
- package/src/realtimefeeds/ftx.ts +8 -0
- package/src/realtimefeeds/index.ts +5 -1
- package/src/realtimefeeds/mango.ts +5 -0
- package/src/realtimefeeds/poloniex.ts +16 -10
- package/src/realtimefeeds/realtimefeed.ts +7 -1
|
@@ -38,6 +38,14 @@ export class AscendexRealTimeFeed extends RealTimeFeedBase {
|
|
|
38
38
|
return message.m === 'error'
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
protected sendCustomPing = () => {
|
|
42
|
+
this.send({ op: 'ping' })
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
protected messageIsHeartbeat(msg: any) {
|
|
46
|
+
return msg.m === 'pong'
|
|
47
|
+
}
|
|
48
|
+
|
|
41
49
|
protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {
|
|
42
50
|
const depthSnapshotChannel = filters.find((f) => f.channel === 'depth-snapshot-realtime')
|
|
43
51
|
if (!depthSnapshotChannel) {
|
|
@@ -90,4 +90,12 @@ class BybitSingleConnectionRealTimeDataFeed extends RealTimeFeedBase {
|
|
|
90
90
|
protected messageIsError(message: any): boolean {
|
|
91
91
|
return message.success === false
|
|
92
92
|
}
|
|
93
|
+
|
|
94
|
+
protected sendCustomPing = () => {
|
|
95
|
+
this.send({ op: 'ping' })
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
protected messageIsHeartbeat(msg: any) {
|
|
99
|
+
return msg.ret_msg === 'pong' || msg.op == 'pong'
|
|
100
|
+
}
|
|
93
101
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Filter } from '../types'
|
|
2
|
+
import { RealTimeFeedBase } from './realtimefeed'
|
|
3
|
+
|
|
4
|
+
export class BybitSpotRealTimeFeed extends RealTimeFeedBase {
|
|
5
|
+
protected wssURL = 'wss://stream.bybit.com/spot/quote/ws/v2'
|
|
6
|
+
|
|
7
|
+
protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {
|
|
8
|
+
return filters
|
|
9
|
+
.map((filter) => {
|
|
10
|
+
if (!filter.symbols || filter.symbols.length === 0) {
|
|
11
|
+
throw new Error('BybitSpotRealTimeFeed requires explicitly specified symbols when subscribing to live feed')
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return filter.symbols.map((symbol) => {
|
|
15
|
+
return {
|
|
16
|
+
event: 'sub',
|
|
17
|
+
topic: filter.channel,
|
|
18
|
+
params: {
|
|
19
|
+
binary: false,
|
|
20
|
+
symbol: symbol
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
})
|
|
25
|
+
.flatMap((c) => c)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
protected messageIsError(message: any): boolean {
|
|
29
|
+
return message.code !== undefined && message.code !== '0'
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
protected sendCustomPing = () => {
|
|
33
|
+
this.send({ ping: new Date().valueOf() })
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
protected messageIsHeartbeat(msg: any) {
|
|
37
|
+
return msg.pong !== undefined
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -24,4 +24,12 @@ export class DeltaRealTimeFeed extends RealTimeFeedBase {
|
|
|
24
24
|
protected messageIsError(message: any): boolean {
|
|
25
25
|
return message.error !== undefined && message.error !== null
|
|
26
26
|
}
|
|
27
|
+
|
|
28
|
+
protected sendCustomPing = () => {
|
|
29
|
+
this.send({ type: 'ping' })
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
protected messageIsHeartbeat(msg: any) {
|
|
33
|
+
return msg.type === 'pong'
|
|
34
|
+
}
|
|
27
35
|
}
|
package/src/realtimefeeds/ftx.ts
CHANGED
|
@@ -63,6 +63,14 @@ class FtxSingleConnectionRealTimeFeed extends RealTimeFeedBase {
|
|
|
63
63
|
// ignore market not found errors
|
|
64
64
|
return message.code == 404
|
|
65
65
|
}
|
|
66
|
+
|
|
67
|
+
protected sendCustomPing = () => {
|
|
68
|
+
this.send({ op: 'ping' })
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
protected messageIsHeartbeat(msg: any) {
|
|
72
|
+
return msg.type === 'pong'
|
|
73
|
+
}
|
|
66
74
|
}
|
|
67
75
|
|
|
68
76
|
class FTXInstrumentInfoClient extends PoolingClientBase {
|
|
@@ -40,6 +40,8 @@ import { AscendexRealTimeFeed } from './ascendex'
|
|
|
40
40
|
import { DydxRealTimeFeed } from './dydx'
|
|
41
41
|
import { SerumRealTimeFeed } from './serum'
|
|
42
42
|
import { StarAtlasRealTimeFeed } from './staratlas'
|
|
43
|
+
import { MangoRealTimeFeed } from './mango'
|
|
44
|
+
import { BybitSpotRealTimeFeed } from './bybitspot'
|
|
43
45
|
|
|
44
46
|
export * from './realtimefeed'
|
|
45
47
|
|
|
@@ -87,7 +89,9 @@ const realTimeFeedsMap: {
|
|
|
87
89
|
dydx: DydxRealTimeFeed,
|
|
88
90
|
serum: SerumRealTimeFeed,
|
|
89
91
|
'star-atlas': StarAtlasRealTimeFeed,
|
|
90
|
-
'huobi-dm-options': HuobiDMOptionsRealTimeFeed
|
|
92
|
+
'huobi-dm-options': HuobiDMOptionsRealTimeFeed,
|
|
93
|
+
mango: MangoRealTimeFeed,
|
|
94
|
+
'bybit-spot': BybitSpotRealTimeFeed
|
|
91
95
|
}
|
|
92
96
|
|
|
93
97
|
export function getRealTimeFeedFactory(exchange: Exchange): RealTimeFeed {
|
|
@@ -2,27 +2,33 @@ import { Filter } from '../types'
|
|
|
2
2
|
import { RealTimeFeedBase } from './realtimefeed'
|
|
3
3
|
|
|
4
4
|
export class PoloniexRealTimeFeed extends RealTimeFeedBase {
|
|
5
|
-
protected readonly wssURL = 'wss://
|
|
5
|
+
protected readonly wssURL = 'wss://ws.poloniex.com/ws/public'
|
|
6
6
|
|
|
7
7
|
protected mapToSubscribeMessages(filters: Filter<string>[]) {
|
|
8
|
-
|
|
8
|
+
return filters.flatMap((filter) => {
|
|
9
9
|
if (!filter.symbols || filter.symbols.length === 0) {
|
|
10
10
|
throw new Error('PoloniexRealTimeFeed requires explicitly specified symbols when subscribing to live feed')
|
|
11
11
|
}
|
|
12
|
-
return filter.symbols
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
const uniqueSymbols = [...new Set(allSymbols)]
|
|
16
12
|
|
|
17
|
-
return uniqueSymbols.map((symbol) => {
|
|
18
13
|
return {
|
|
19
|
-
|
|
20
|
-
channel:
|
|
14
|
+
event: 'subscribe',
|
|
15
|
+
channel: [filter.channel],
|
|
16
|
+
symbols: filter.symbols
|
|
21
17
|
}
|
|
22
18
|
})
|
|
23
19
|
}
|
|
24
20
|
|
|
21
|
+
protected sendCustomPing = () => {
|
|
22
|
+
this.send({
|
|
23
|
+
event: 'ping'
|
|
24
|
+
})
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
protected messageIsHeartbeat(msg: any) {
|
|
28
|
+
return msg.event === 'pong'
|
|
29
|
+
}
|
|
30
|
+
|
|
25
31
|
protected messageIsError(message: any): boolean {
|
|
26
|
-
return message.
|
|
32
|
+
return message.event === 'error'
|
|
27
33
|
}
|
|
28
34
|
}
|
|
@@ -202,6 +202,8 @@ export abstract class RealTimeFeedBase implements RealTimeFeedIterable {
|
|
|
202
202
|
|
|
203
203
|
protected abstract messageIsError(message: any): boolean
|
|
204
204
|
|
|
205
|
+
protected sendCustomPing: (() => void) | undefined = undefined
|
|
206
|
+
|
|
205
207
|
protected isIgnoredError(_message: any) {
|
|
206
208
|
return false
|
|
207
209
|
}
|
|
@@ -247,7 +249,11 @@ export abstract class RealTimeFeedBase implements RealTimeFeedIterable {
|
|
|
247
249
|
return
|
|
248
250
|
}
|
|
249
251
|
|
|
250
|
-
this.
|
|
252
|
+
if (this.sendCustomPing !== undefined) {
|
|
253
|
+
this.sendCustomPing()
|
|
254
|
+
} else {
|
|
255
|
+
this._ws.ping()
|
|
256
|
+
}
|
|
251
257
|
}, 5 * ONE_SEC_IN_MS)
|
|
252
258
|
}
|
|
253
259
|
|