tardis-dev 13.4.8 → 13.4.11
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 +3 -2
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +16 -2
- package/dist/consts.js.map +1 -1
- package/dist/mappers/bybit.d.ts +1 -1
- package/dist/mappers/huobi.d.ts +3 -3
- package/dist/mappers/huobi.js +4 -4
- package/dist/mappers/huobi.js.map +1 -1
- package/dist/mappers/index.d.ts +3 -3
- package/dist/mappers/index.d.ts.map +1 -1
- package/dist/mappers/index.js +11 -4
- 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/index.d.ts.map +1 -1
- package/dist/realtimefeeds/index.js +3 -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 +17 -2
- package/src/mappers/huobi.ts +4 -4
- package/src/mappers/index.ts +16 -5
- package/src/mappers/poloniex.ts +134 -1
- package/src/mappers/serum.ts +27 -13
- package/src/realtimefeeds/index.ts +3 -1
- package/src/realtimefeeds/mango.ts +5 -0
- package/src/realtimefeeds/poloniex.ts +16 -10
- package/src/realtimefeeds/realtimefeed.ts +7 -1
package/src/mappers/serum.ts
CHANGED
|
@@ -31,8 +31,8 @@ export class SerumTradesMapper implements Mapper<'serum' | 'star-atlas', Trade>
|
|
|
31
31
|
price: Number(message.price),
|
|
32
32
|
amount: Number(message.size),
|
|
33
33
|
side: message.side,
|
|
34
|
-
timestamp: new Date(message.timestamp),
|
|
35
|
-
localTimestamp
|
|
34
|
+
timestamp: message.eventTimestamp !== undefined ? new Date(message.eventTimestamp) : new Date(message.timestamp),
|
|
35
|
+
localTimestamp
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -118,17 +118,31 @@ export class SerumBookTickerMapper implements Mapper<'serum' | 'star-atlas', Boo
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
type SerumVialTrade =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
121
|
+
type SerumVialTrade =
|
|
122
|
+
| {
|
|
123
|
+
type: 'trade'
|
|
124
|
+
market: 'RAY/USDT'
|
|
125
|
+
timestamp: '2021-05-22T00:00:59.448Z'
|
|
126
|
+
slot: 79469377
|
|
127
|
+
version: 3
|
|
128
|
+
id: '96845406386975144808722|185.8|1621641659448'
|
|
129
|
+
side: 'buy'
|
|
130
|
+
price: '5.235'
|
|
131
|
+
size: '185.8'
|
|
132
|
+
eventTimestamp: undefined
|
|
133
|
+
}
|
|
134
|
+
| {
|
|
135
|
+
type: 'trade'
|
|
136
|
+
market: string
|
|
137
|
+
timestamp: string
|
|
138
|
+
slot: number
|
|
139
|
+
version: number
|
|
140
|
+
id: string
|
|
141
|
+
side: 'buy' | 'sell'
|
|
142
|
+
price: string
|
|
143
|
+
size: string
|
|
144
|
+
eventTimestamp: string
|
|
145
|
+
}
|
|
132
146
|
|
|
133
147
|
type SerumVialPriceLevel = [string, string]
|
|
134
148
|
|
|
@@ -40,6 +40,7 @@ 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'
|
|
43
44
|
|
|
44
45
|
export * from './realtimefeed'
|
|
45
46
|
|
|
@@ -87,7 +88,8 @@ const realTimeFeedsMap: {
|
|
|
87
88
|
dydx: DydxRealTimeFeed,
|
|
88
89
|
serum: SerumRealTimeFeed,
|
|
89
90
|
'star-atlas': StarAtlasRealTimeFeed,
|
|
90
|
-
'huobi-dm-options': HuobiDMOptionsRealTimeFeed
|
|
91
|
+
'huobi-dm-options': HuobiDMOptionsRealTimeFeed,
|
|
92
|
+
mango: MangoRealTimeFeed
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
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
|
|