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.
Files changed (48) hide show
  1. package/dist/consts.d.ts +3 -1
  2. package/dist/consts.d.ts.map +1 -1
  3. package/dist/consts.js +18 -2
  4. package/dist/consts.js.map +1 -1
  5. package/dist/handy.js +1 -1
  6. package/dist/handy.js.map +1 -1
  7. package/dist/mappers/binance.js +2 -2
  8. package/dist/mappers/binance.js.map +1 -1
  9. package/dist/mappers/bitnomial.d.ts +33 -0
  10. package/dist/mappers/bitnomial.d.ts.map +1 -0
  11. package/dist/mappers/bitnomial.js +88 -0
  12. package/dist/mappers/bitnomial.js.map +1 -0
  13. package/dist/mappers/bybit.d.ts +1 -1
  14. package/dist/mappers/bybitspot.d.ts +1 -1
  15. package/dist/mappers/cryptocom.d.ts +1 -1
  16. package/dist/mappers/huobi.d.ts +3 -3
  17. package/dist/mappers/index.d.ts +4 -4
  18. package/dist/mappers/index.d.ts.map +1 -1
  19. package/dist/mappers/index.js +12 -4
  20. package/dist/mappers/index.js.map +1 -1
  21. package/dist/mappers/woox.d.ts +111 -0
  22. package/dist/mappers/woox.d.ts.map +1 -0
  23. package/dist/mappers/woox.js +236 -0
  24. package/dist/mappers/woox.js.map +1 -0
  25. package/dist/realtimefeeds/bitnomial.d.ts +11 -0
  26. package/dist/realtimefeeds/bitnomial.d.ts.map +1 -0
  27. package/dist/realtimefeeds/bitnomial.js +59 -0
  28. package/dist/realtimefeeds/bitnomial.js.map +1 -0
  29. package/dist/realtimefeeds/index.d.ts.map +1 -1
  30. package/dist/realtimefeeds/index.js +5 -1
  31. package/dist/realtimefeeds/index.js.map +1 -1
  32. package/dist/realtimefeeds/woox.d.ts +11 -0
  33. package/dist/realtimefeeds/woox.d.ts.map +1 -0
  34. package/dist/realtimefeeds/woox.js +65 -0
  35. package/dist/realtimefeeds/woox.js.map +1 -0
  36. package/dist/types.d.ts +2 -2
  37. package/dist/types.d.ts.map +1 -1
  38. package/package.json +1 -1
  39. package/src/consts.ts +20 -2
  40. package/src/handy.ts +1 -1
  41. package/src/mappers/binance.ts +2 -2
  42. package/src/mappers/bitnomial.ts +126 -0
  43. package/src/mappers/index.ts +12 -4
  44. package/src/mappers/woox.ts +322 -0
  45. package/src/realtimefeeds/bitnomial.ts +57 -0
  46. package/src/realtimefeeds/index.ts +5 -1
  47. package/src/realtimefeeds/woox.ts +70 -0
  48. 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