tardis-dev 13.10.4 → 13.12.0
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 -1
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +18 -2
- package/dist/consts.js.map +1 -1
- package/dist/handy.js +1 -1
- package/dist/handy.js.map +1 -1
- package/dist/mappers/binance.js +2 -2
- package/dist/mappers/binance.js.map +1 -1
- package/dist/mappers/bitnomial.d.ts +33 -0
- package/dist/mappers/bitnomial.d.ts.map +1 -0
- package/dist/mappers/bitnomial.js +88 -0
- package/dist/mappers/bitnomial.js.map +1 -0
- package/dist/mappers/bybit.d.ts +1 -1
- package/dist/mappers/bybitspot.d.ts +1 -1
- package/dist/mappers/cryptocom.d.ts +1 -1
- package/dist/mappers/huobi.d.ts +3 -3
- package/dist/mappers/index.d.ts +4 -4
- package/dist/mappers/index.d.ts.map +1 -1
- package/dist/mappers/index.js +12 -4
- package/dist/mappers/index.js.map +1 -1
- package/dist/mappers/woox.d.ts +111 -0
- package/dist/mappers/woox.d.ts.map +1 -0
- package/dist/mappers/woox.js +236 -0
- package/dist/mappers/woox.js.map +1 -0
- package/dist/realtimefeeds/bitnomial.d.ts +11 -0
- package/dist/realtimefeeds/bitnomial.d.ts.map +1 -0
- package/dist/realtimefeeds/bitnomial.js +59 -0
- package/dist/realtimefeeds/bitnomial.js.map +1 -0
- 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/woox.d.ts +11 -0
- package/dist/realtimefeeds/woox.d.ts.map +1 -0
- package/dist/realtimefeeds/woox.js +65 -0
- package/dist/realtimefeeds/woox.js.map +1 -0
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +20 -2
- package/src/handy.ts +1 -1
- package/src/mappers/binance.ts +2 -2
- package/src/mappers/bitnomial.ts +126 -0
- package/src/mappers/index.ts +12 -4
- package/src/mappers/woox.ts +322 -0
- package/src/realtimefeeds/bitnomial.ts +57 -0
- package/src/realtimefeeds/index.ts +5 -1
- package/src/realtimefeeds/woox.ts +70 -0
- package/src/types.ts +2 -2
|
@@ -44,6 +44,8 @@ import { MangoRealTimeFeed } from './mango'
|
|
|
44
44
|
import { BybitSpotRealTimeFeed } from './bybitspot'
|
|
45
45
|
import { CryptoComRealTimeFeed } from './cryptocom'
|
|
46
46
|
import { KucoinRealTimeFeed } from './kucoin'
|
|
47
|
+
import { BitnomialRealTimeFeed } from './bitnomial'
|
|
48
|
+
import { WooxRealTimeFeed } from './woox'
|
|
47
49
|
|
|
48
50
|
export * from './realtimefeed'
|
|
49
51
|
|
|
@@ -96,7 +98,9 @@ const realTimeFeedsMap: {
|
|
|
96
98
|
'bybit-spot': BybitSpotRealTimeFeed,
|
|
97
99
|
'crypto-com': CryptoComRealTimeFeed,
|
|
98
100
|
'crypto-com-derivatives': CryptoComRealTimeFeed,
|
|
99
|
-
kucoin: KucoinRealTimeFeed
|
|
101
|
+
kucoin: KucoinRealTimeFeed,
|
|
102
|
+
bitnomial: BitnomialRealTimeFeed,
|
|
103
|
+
'woo-x': WooxRealTimeFeed
|
|
100
104
|
}
|
|
101
105
|
|
|
102
106
|
export function getRealTimeFeedFactory(exchange: Exchange): RealTimeFeed {
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { wait } from '../handy'
|
|
2
|
+
import { Filter } from '../types'
|
|
3
|
+
import { RealTimeFeedBase } from './realtimefeed'
|
|
4
|
+
|
|
5
|
+
export class WooxRealTimeFeed extends RealTimeFeedBase {
|
|
6
|
+
protected wssURL = 'wss://wss.woo.org/ws/stream/OqdphuyCtYWxwzhxyLLjOWNdFP7sQt8RPWzmb5xY'
|
|
7
|
+
|
|
8
|
+
protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {
|
|
9
|
+
return filters
|
|
10
|
+
.filter((filter) => filter.channel !== 'orderbook')
|
|
11
|
+
.map((filter) => {
|
|
12
|
+
if (!filter.symbols || filter.symbols.length === 0) {
|
|
13
|
+
throw new Error('WooxRealTimeFeed requires explicitly specified symbols when subscribing to live feed')
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return filter.symbols.map((symbol) => {
|
|
17
|
+
return {
|
|
18
|
+
id: `${symbol}@${filter.channel}`,
|
|
19
|
+
topic: `${symbol}@${filter.channel}`,
|
|
20
|
+
event: 'subscribe'
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
.flatMap((f) => f)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
protected async provideManualSnapshots(filters: Filter<string>[], shouldCancel: () => boolean) {
|
|
28
|
+
const orderbookFilter = filters.find((f) => f.channel === 'orderbook')
|
|
29
|
+
if (!orderbookFilter) {
|
|
30
|
+
return
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
await wait(200)
|
|
34
|
+
|
|
35
|
+
for (let symbol of orderbookFilter.symbols!) {
|
|
36
|
+
if (shouldCancel()) {
|
|
37
|
+
return
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
this.send({
|
|
41
|
+
id: `${symbol}@orderbook`,
|
|
42
|
+
event: 'request',
|
|
43
|
+
params: {
|
|
44
|
+
type: 'orderbook',
|
|
45
|
+
symbol
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
await wait(1)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
this.debug('sent orderbook requests for: %s', orderbookFilter.symbols)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
protected messageIsError(message: any): boolean {
|
|
56
|
+
return message.success === false || message.errorMsg !== undefined
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
protected messageIsHeartbeat(message: any): boolean {
|
|
60
|
+
return message.event === 'ping'
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
protected onMessage(msg: any) {
|
|
64
|
+
if (msg.event === 'ping') {
|
|
65
|
+
this.send({
|
|
66
|
+
event: 'ping'
|
|
67
|
+
})
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { EXCHANGES, EXCHANGE_CHANNELS_INFO } from './consts'
|
|
2
2
|
|
|
3
|
-
export type Exchange = typeof EXCHANGES[number]
|
|
3
|
+
export type Exchange = (typeof EXCHANGES)[number]
|
|
4
4
|
|
|
5
|
-
export type FilterForExchange = { [key in Exchange]: Filter<typeof EXCHANGE_CHANNELS_INFO[key][number]> }
|
|
5
|
+
export type FilterForExchange = { [key in Exchange]: Filter<(typeof EXCHANGE_CHANNELS_INFO)[key][number]> }
|
|
6
6
|
|
|
7
7
|
export type Filter<T> = {
|
|
8
8
|
channel: T
|