tardis-dev 13.1.1 → 13.1.5
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/combine.js +34 -26
- package/dist/combine.js.map +1 -1
- package/dist/computable/computable.d.ts.map +1 -1
- package/dist/computable/computable.js +23 -18
- package/dist/computable/computable.js.map +1 -1
- package/dist/handy.d.ts +2 -0
- package/dist/handy.d.ts.map +1 -1
- package/dist/handy.js +15 -1
- package/dist/handy.js.map +1 -1
- package/dist/mappers/ascendex.d.ts +1 -1
- package/dist/mappers/ascendex.d.ts.map +1 -1
- package/dist/mappers/ascendex.js +5 -0
- package/dist/mappers/ascendex.js.map +1 -1
- package/dist/mappers/binance.d.ts +1 -1
- package/dist/mappers/binance.d.ts.map +1 -1
- package/dist/mappers/binance.js +5 -11
- package/dist/mappers/binance.js.map +1 -1
- package/dist/mappers/binancedex.d.ts +1 -1
- package/dist/mappers/binancedex.d.ts.map +1 -1
- package/dist/mappers/binancedex.js +4 -0
- package/dist/mappers/binancedex.js.map +1 -1
- package/dist/mappers/binanceoptions.d.ts.map +1 -1
- package/dist/mappers/binanceoptions.js +3 -0
- package/dist/mappers/binanceoptions.js.map +1 -1
- package/dist/mappers/bitfinex.d.ts +1 -1
- package/dist/mappers/bitfinex.d.ts.map +1 -1
- package/dist/mappers/bitfinex.js +5 -0
- package/dist/mappers/bitfinex.js.map +1 -1
- package/dist/mappers/bitflyer.d.ts +1 -1
- package/dist/mappers/bitflyer.d.ts.map +1 -1
- package/dist/mappers/bitflyer.js +3 -0
- package/dist/mappers/bitflyer.js.map +1 -1
- package/dist/mappers/bitmex.d.ts +1 -1
- package/dist/mappers/bitmex.d.ts.map +1 -1
- package/dist/mappers/bitmex.js +5 -0
- package/dist/mappers/bitmex.js.map +1 -1
- package/dist/mappers/bitstamp.d.ts.map +1 -1
- package/dist/mappers/bitstamp.js +3 -8
- package/dist/mappers/bitstamp.js.map +1 -1
- package/dist/mappers/bybit.d.ts.map +1 -1
- package/dist/mappers/bybit.js +8 -1
- package/dist/mappers/bybit.js.map +1 -1
- package/dist/mappers/coinbase.d.ts.map +1 -1
- package/dist/mappers/coinbase.js +3 -0
- package/dist/mappers/coinbase.js.map +1 -1
- package/dist/mappers/coinflex.d.ts +1 -1
- package/dist/mappers/coinflex.d.ts.map +1 -1
- package/dist/mappers/coinflex.js +4 -0
- package/dist/mappers/coinflex.js.map +1 -1
- package/dist/mappers/cryptofacilities.d.ts +1 -1
- package/dist/mappers/cryptofacilities.d.ts.map +1 -1
- package/dist/mappers/cryptofacilities.js +6 -0
- package/dist/mappers/cryptofacilities.js.map +1 -1
- package/dist/mappers/delta.d.ts +1 -1
- package/dist/mappers/delta.d.ts.map +1 -1
- package/dist/mappers/delta.js +4 -0
- package/dist/mappers/delta.js.map +1 -1
- package/dist/mappers/deribit.d.ts +1 -1
- package/dist/mappers/deribit.d.ts.map +1 -1
- package/dist/mappers/deribit.js +6 -0
- package/dist/mappers/deribit.js.map +1 -1
- package/dist/mappers/dydx.d.ts +1 -1
- package/dist/mappers/dydx.d.ts.map +1 -1
- package/dist/mappers/dydx.js +4 -0
- package/dist/mappers/dydx.js.map +1 -1
- package/dist/mappers/ftx.d.ts +1 -1
- package/dist/mappers/ftx.d.ts.map +1 -1
- package/dist/mappers/ftx.js +5 -0
- package/dist/mappers/ftx.js.map +1 -1
- package/dist/mappers/gateio.d.ts.map +1 -1
- package/dist/mappers/gateio.js +3 -0
- package/dist/mappers/gateio.js.map +1 -1
- package/dist/mappers/gateiofutures.d.ts +1 -1
- package/dist/mappers/gateiofutures.d.ts.map +1 -1
- package/dist/mappers/gateiofutures.js +4 -0
- package/dist/mappers/gateiofutures.js.map +1 -1
- package/dist/mappers/gemini.d.ts.map +1 -1
- package/dist/mappers/gemini.js +3 -0
- package/dist/mappers/gemini.js.map +1 -1
- package/dist/mappers/hitbtc.d.ts.map +1 -1
- package/dist/mappers/hitbtc.js +3 -0
- package/dist/mappers/hitbtc.js.map +1 -1
- package/dist/mappers/huobi.d.ts +2 -2
- package/dist/mappers/huobi.d.ts.map +1 -1
- package/dist/mappers/huobi.js +4 -2
- package/dist/mappers/huobi.js.map +1 -1
- package/dist/mappers/kraken.d.ts.map +1 -1
- package/dist/mappers/kraken.js +3 -0
- package/dist/mappers/kraken.js.map +1 -1
- package/dist/mappers/okex.d.ts +10 -8
- package/dist/mappers/okex.d.ts.map +1 -1
- package/dist/mappers/okex.js +18 -3
- package/dist/mappers/okex.js.map +1 -1
- package/dist/mappers/poloniex.d.ts.map +1 -1
- package/dist/mappers/poloniex.js +3 -0
- package/dist/mappers/poloniex.js.map +1 -1
- package/dist/mappers/serum.d.ts +1 -1
- package/dist/mappers/serum.d.ts.map +1 -1
- package/dist/mappers/serum.js +9 -0
- package/dist/mappers/serum.js.map +1 -1
- package/dist/mappers/upbit.d.ts +1 -1
- package/dist/mappers/upbit.d.ts.map +1 -1
- package/dist/mappers/upbit.js +3 -0
- package/dist/mappers/upbit.js.map +1 -1
- package/dist/realtimefeeds/deribit.d.ts +1 -0
- package/dist/realtimefeeds/deribit.d.ts.map +1 -1
- package/dist/realtimefeeds/deribit.js +23 -3
- package/dist/realtimefeeds/deribit.js.map +1 -1
- package/dist/realtimefeeds/realtimefeed.js +1 -1
- package/dist/realtimefeeds/realtimefeed.js.map +1 -1
- package/package.json +1 -1
- package/src/combine.ts +33 -27
- package/src/computable/computable.ts +21 -17
- package/src/handy.ts +14 -0
- package/src/mappers/ascendex.ts +6 -1
- package/src/mappers/binance.ts +2 -9
- package/src/mappers/binancedex.ts +6 -1
- package/src/mappers/binanceoptions.ts +7 -1
- package/src/mappers/bitfinex.ts +10 -1
- package/src/mappers/bitflyer.ts +8 -2
- package/src/mappers/bitmex.ts +12 -2
- package/src/mappers/bitstamp.ts +1 -7
- package/src/mappers/bybit.ts +12 -1
- package/src/mappers/coinbase.ts +7 -1
- package/src/mappers/coinflex.ts +8 -1
- package/src/mappers/cryptofacilities.ts +12 -1
- package/src/mappers/delta.ts +8 -1
- package/src/mappers/deribit.ts +14 -2
- package/src/mappers/dydx.ts +8 -1
- package/src/mappers/ftx.ts +12 -2
- package/src/mappers/gateio.ts +5 -0
- package/src/mappers/gateiofutures.ts +8 -1
- package/src/mappers/gemini.ts +5 -0
- package/src/mappers/hitbtc.ts +5 -0
- package/src/mappers/huobi.ts +7 -3
- package/src/mappers/kraken.ts +7 -1
- package/src/mappers/okex.ts +35 -6
- package/src/mappers/poloniex.ts +5 -0
- package/src/mappers/serum.ts +14 -2
- package/src/mappers/upbit.ts +6 -1
- package/src/realtimefeeds/deribit.ts +26 -4
- package/src/realtimefeeds/realtimefeed.ts +2 -2
package/src/mappers/okex.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { asNumberIfValid } from '../handy'
|
|
2
|
-
import { BookChange, DerivativeTicker, Exchange,
|
|
1
|
+
import { asNumberIfValid, upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, DerivativeTicker, Exchange, Liquidation, OptionSummary, Trade } from '../types'
|
|
3
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
4
4
|
|
|
5
5
|
// V5 Okex API mappers
|
|
@@ -16,6 +16,8 @@ export class OkexV5TradesMapper implements Mapper<OKEX_EXCHANGES, Trade> {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
getFilters(symbols?: string[]) {
|
|
19
|
+
symbols = upperCaseSymbols(symbols)
|
|
20
|
+
|
|
19
21
|
return [
|
|
20
22
|
{
|
|
21
23
|
channel: `trades` as const,
|
|
@@ -59,6 +61,8 @@ export class OkexV5BookChangeMapper implements Mapper<OKEX_EXCHANGES, BookChange
|
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
getFilters(symbols?: string[]) {
|
|
64
|
+
symbols = upperCaseSymbols(symbols)
|
|
65
|
+
|
|
62
66
|
return [
|
|
63
67
|
{
|
|
64
68
|
channel: `books-l2-tbt` as const,
|
|
@@ -104,6 +108,8 @@ export class OkexV5BookTickerMapper implements Mapper<OKEX_EXCHANGES, BookTicker
|
|
|
104
108
|
}
|
|
105
109
|
|
|
106
110
|
getFilters(symbols?: string[]) {
|
|
111
|
+
symbols = upperCaseSymbols(symbols)
|
|
112
|
+
|
|
107
113
|
return [
|
|
108
114
|
{
|
|
109
115
|
channel: `tickers` as const,
|
|
@@ -154,6 +160,8 @@ export class OkexV5DerivativeTickerMapper implements Mapper<'okex-futures' | 'ok
|
|
|
154
160
|
}
|
|
155
161
|
|
|
156
162
|
getFilters(symbols?: string[]) {
|
|
163
|
+
symbols = upperCaseSymbols(symbols)
|
|
164
|
+
|
|
157
165
|
const channels = this._exchange === 'okex-futures' ? this._futuresChannels : this._swapChannels
|
|
158
166
|
return channels.map((channel) => {
|
|
159
167
|
if (channel === 'index-tickers') {
|
|
@@ -228,9 +236,12 @@ export class OkexV5DerivativeTickerMapper implements Mapper<'okex-futures' | 'ok
|
|
|
228
236
|
if (message.arg.channel === 'funding-rate') {
|
|
229
237
|
const fundingRateMessage = dataMessage as OkexV5FundingRateMessage['data'][0]
|
|
230
238
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
239
|
+
if (fundingRateMessage.fundingRate !== undefined) {
|
|
240
|
+
pendingTickerInfo.updateFundingRate(Number(fundingRateMessage.fundingRate))
|
|
241
|
+
}
|
|
242
|
+
if (fundingRateMessage.fundingTime !== undefined) {
|
|
243
|
+
pendingTickerInfo.updateFundingTimestamp(new Date(Number(fundingRateMessage.fundingTime)))
|
|
244
|
+
}
|
|
234
245
|
|
|
235
246
|
if (fundingRateMessage.nextFundingRate !== undefined) {
|
|
236
247
|
pendingTickerInfo.updatePredictedFundingRate(Number(fundingRateMessage.nextFundingRate))
|
|
@@ -266,6 +277,8 @@ export class OkexV5LiquidationsMapper implements Mapper<OKEX_EXCHANGES, Liquidat
|
|
|
266
277
|
}
|
|
267
278
|
|
|
268
279
|
getFilters(symbols?: string[]) {
|
|
280
|
+
symbols = upperCaseSymbols(symbols)
|
|
281
|
+
|
|
269
282
|
return [
|
|
270
283
|
{
|
|
271
284
|
channel: 'liquidations',
|
|
@@ -314,6 +327,8 @@ export class OkexV5OptionSummaryMapper implements Mapper<'okex-options', OptionS
|
|
|
314
327
|
}
|
|
315
328
|
|
|
316
329
|
getFilters(symbols?: string[]) {
|
|
330
|
+
symbols = upperCaseSymbols(symbols)
|
|
331
|
+
|
|
317
332
|
const indexes =
|
|
318
333
|
symbols !== undefined
|
|
319
334
|
? symbols.map((s) => {
|
|
@@ -532,7 +547,9 @@ type OkexV5IndexTickerMessage = {
|
|
|
532
547
|
|
|
533
548
|
type OkexV5FundingRateMessage = {
|
|
534
549
|
arg: { channel: 'funding-rate'; instId: string }
|
|
535
|
-
data: [
|
|
550
|
+
data: [
|
|
551
|
+
{ fundingRate: '0.00048105' | undefined; fundingTime: '1640131200000'; instId: string; instType: 'SWAP'; nextFundingRate: '0.00114' }
|
|
552
|
+
]
|
|
536
553
|
}
|
|
537
554
|
|
|
538
555
|
type OkexV5LiquidationMessage = {
|
|
@@ -577,6 +594,8 @@ export class OkexTradesMapper implements Mapper<OKEX_EXCHANGES, Trade> {
|
|
|
577
594
|
}
|
|
578
595
|
|
|
579
596
|
getFilters(symbols?: string[]) {
|
|
597
|
+
symbols = upperCaseSymbols(symbols)
|
|
598
|
+
|
|
580
599
|
return [
|
|
581
600
|
{
|
|
582
601
|
channel: `${this._market}/trade` as const,
|
|
@@ -625,6 +644,8 @@ export class OkexBookChangeMapper implements Mapper<OKEX_EXCHANGES, BookChange>
|
|
|
625
644
|
}
|
|
626
645
|
|
|
627
646
|
getFilters(symbols?: string[]) {
|
|
647
|
+
symbols = upperCaseSymbols(symbols)
|
|
648
|
+
|
|
628
649
|
if (this._canUseTickByTickChannel) {
|
|
629
650
|
return [
|
|
630
651
|
{
|
|
@@ -689,6 +710,8 @@ export class OkexDerivativeTickerMapper implements Mapper<'okex-futures' | 'okex
|
|
|
689
710
|
}
|
|
690
711
|
|
|
691
712
|
getFilters(symbols?: string[]) {
|
|
713
|
+
symbols = upperCaseSymbols(symbols)
|
|
714
|
+
|
|
692
715
|
const channels = this._exchange === 'okex-futures' ? this._futuresChannels : this._swapChannels
|
|
693
716
|
return channels.map((channel) => {
|
|
694
717
|
return {
|
|
@@ -745,6 +768,8 @@ export class OkexOptionSummaryMapper implements Mapper<'okex-options', OptionSum
|
|
|
745
768
|
}
|
|
746
769
|
|
|
747
770
|
getFilters(symbols?: string[]) {
|
|
771
|
+
symbols = upperCaseSymbols(symbols)
|
|
772
|
+
|
|
748
773
|
const indexes =
|
|
749
774
|
symbols !== undefined
|
|
750
775
|
? symbols.map((s) => {
|
|
@@ -834,6 +859,8 @@ export class OkexLiquidationsMapper implements Mapper<OKEX_EXCHANGES, Liquidatio
|
|
|
834
859
|
}
|
|
835
860
|
|
|
836
861
|
getFilters(symbols?: string[]) {
|
|
862
|
+
symbols = upperCaseSymbols(symbols)
|
|
863
|
+
|
|
837
864
|
return [
|
|
838
865
|
{
|
|
839
866
|
channel: `${this._market}/liquidation`,
|
|
@@ -868,6 +895,8 @@ export class OkexBookTickerMapper implements Mapper<OKEX_EXCHANGES, BookTicker>
|
|
|
868
895
|
}
|
|
869
896
|
|
|
870
897
|
getFilters(symbols?: string[]) {
|
|
898
|
+
symbols = upperCaseSymbols(symbols)
|
|
899
|
+
|
|
871
900
|
return [
|
|
872
901
|
{
|
|
873
902
|
channel: `${this._market}/ticker`,
|
package/src/mappers/poloniex.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
1
2
|
import { BookChange, Trade } from '../types'
|
|
2
3
|
import { Mapper } from './mapper'
|
|
3
4
|
|
|
@@ -19,6 +20,8 @@ export class PoloniexTradesMapper implements Mapper<'poloniex', Trade> {
|
|
|
19
20
|
}
|
|
20
21
|
|
|
21
22
|
getFilters(symbols?: string[]) {
|
|
23
|
+
symbols = upperCaseSymbols(symbols)
|
|
24
|
+
|
|
22
25
|
return [
|
|
23
26
|
{
|
|
24
27
|
channel: 'price_aggregated_book',
|
|
@@ -89,6 +92,8 @@ export class PoloniexBookChangeMapper implements Mapper<'poloniex', BookChange>
|
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
getFilters(symbols?: string[]) {
|
|
95
|
+
symbols = upperCaseSymbols(symbols)
|
|
96
|
+
|
|
92
97
|
return [
|
|
93
98
|
{
|
|
94
99
|
channel: 'price_aggregated_book',
|
package/src/mappers/serum.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { asNumberIfValid, upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, Exchange, Trade } from '../types'
|
|
1
3
|
import { Mapper } from './mapper'
|
|
2
|
-
import { Trade, BookChange, BookTicker, Exchange } from '../types'
|
|
3
|
-
import { asNumberIfValid } from '../handy'
|
|
4
4
|
|
|
5
5
|
export class SerumTradesMapper implements Mapper<'serum' | 'star-atlas', Trade> {
|
|
6
6
|
constructor(private readonly _exchange: Exchange) {}
|
|
@@ -10,6 +10,10 @@ export class SerumTradesMapper implements Mapper<'serum' | 'star-atlas', Trade>
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
getFilters(symbols?: string[]) {
|
|
13
|
+
if (this._exchange === 'serum') {
|
|
14
|
+
symbols = upperCaseSymbols(symbols)
|
|
15
|
+
}
|
|
16
|
+
|
|
13
17
|
return [
|
|
14
18
|
{
|
|
15
19
|
channel: 'trade',
|
|
@@ -41,6 +45,10 @@ export class SerumBookChangeMapper implements Mapper<'serum' | 'star-atlas', Boo
|
|
|
41
45
|
}
|
|
42
46
|
|
|
43
47
|
getFilters(symbols?: string[]) {
|
|
48
|
+
if (this._exchange === 'serum') {
|
|
49
|
+
symbols = upperCaseSymbols(symbols)
|
|
50
|
+
}
|
|
51
|
+
|
|
44
52
|
return [
|
|
45
53
|
{
|
|
46
54
|
channel: 'l2snapshot',
|
|
@@ -81,6 +89,10 @@ export class SerumBookTickerMapper implements Mapper<'serum' | 'star-atlas', Boo
|
|
|
81
89
|
}
|
|
82
90
|
|
|
83
91
|
getFilters(symbols?: string[]) {
|
|
92
|
+
if (this._exchange === 'serum') {
|
|
93
|
+
symbols = upperCaseSymbols(symbols)
|
|
94
|
+
}
|
|
95
|
+
|
|
84
96
|
return [
|
|
85
97
|
{
|
|
86
98
|
channel: 'quote',
|
package/src/mappers/upbit.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookPriceLevel, Trade } from '../types'
|
|
1
3
|
import { Mapper } from './mapper'
|
|
2
|
-
import { Trade, BookChange, BookPriceLevel } from '../types'
|
|
3
4
|
|
|
4
5
|
export class UpbitTradesMapper implements Mapper<'upbit', Trade> {
|
|
5
6
|
canHandle(message: UpbitTrade) {
|
|
@@ -7,6 +8,8 @@ export class UpbitTradesMapper implements Mapper<'upbit', Trade> {
|
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
getFilters(symbols?: string[]) {
|
|
11
|
+
symbols = upperCaseSymbols(symbols)
|
|
12
|
+
|
|
10
13
|
return [
|
|
11
14
|
{
|
|
12
15
|
channel: 'trade',
|
|
@@ -36,6 +39,8 @@ export class UpbitBookChangeMapper implements Mapper<'upbit', BookChange> {
|
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
getFilters(symbols?: string[]) {
|
|
42
|
+
symbols = upperCaseSymbols(symbols)
|
|
43
|
+
|
|
39
44
|
return [
|
|
40
45
|
{
|
|
41
46
|
channel: 'orderbook',
|
|
@@ -7,6 +7,7 @@ export class DeribitRealTimeDataFeed extends RealTimeFeedBase {
|
|
|
7
7
|
protected channelsWithIntervals: FilterForExchange['deribit']['channel'][] = ['book', 'perpetual', 'trades', 'ticker']
|
|
8
8
|
|
|
9
9
|
protected mapToSubscribeMessages(filters: Filter<string>[]): any[] {
|
|
10
|
+
const hasCredentials = this.hasCredentials()
|
|
10
11
|
const channels = filters
|
|
11
12
|
.map((filter) => {
|
|
12
13
|
if (!filter.symbols || filter.symbols.length === 0) {
|
|
@@ -14,17 +15,21 @@ export class DeribitRealTimeDataFeed extends RealTimeFeedBase {
|
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
return filter.symbols.map((symbol) => {
|
|
17
|
-
|
|
18
|
+
let suffix = this.channelsWithIntervals.includes(filter.channel as any) ? '.raw' : ''
|
|
19
|
+
if (hasCredentials === false && filter.channel === 'book') {
|
|
20
|
+
// deribit requires authentications for raw book data feed
|
|
21
|
+
suffix = '.100ms'
|
|
22
|
+
}
|
|
23
|
+
|
|
18
24
|
return `${filter.channel}.${symbol}${suffix}`
|
|
19
25
|
})
|
|
20
26
|
})
|
|
21
27
|
.flatMap((f) => f)
|
|
22
|
-
|
|
23
28
|
return [
|
|
24
29
|
{
|
|
25
30
|
jsonrpc: '2.0',
|
|
26
|
-
id:
|
|
27
|
-
method: 'public/subscribe',
|
|
31
|
+
id: 3,
|
|
32
|
+
method: hasCredentials ? 'private/subscribe' : 'public/subscribe',
|
|
28
33
|
params: {
|
|
29
34
|
channels
|
|
30
35
|
}
|
|
@@ -36,6 +41,10 @@ export class DeribitRealTimeDataFeed extends RealTimeFeedBase {
|
|
|
36
41
|
return message.error !== undefined
|
|
37
42
|
}
|
|
38
43
|
|
|
44
|
+
private hasCredentials() {
|
|
45
|
+
return process.env.DERIBIT_API_CLIENT_ID !== undefined && process.env.DERIBIT_API_CLIENT_SECRET !== undefined
|
|
46
|
+
}
|
|
47
|
+
|
|
39
48
|
protected onConnected() {
|
|
40
49
|
// set heartbeat so deribit won't close connection prematurely
|
|
41
50
|
// https://docs.deribit.com/v2/#public-set_heartbeat
|
|
@@ -48,6 +57,19 @@ export class DeribitRealTimeDataFeed extends RealTimeFeedBase {
|
|
|
48
57
|
interval: 10
|
|
49
58
|
}
|
|
50
59
|
})
|
|
60
|
+
|
|
61
|
+
if (this.hasCredentials()) {
|
|
62
|
+
this.send({
|
|
63
|
+
jsonrpc: '2.0',
|
|
64
|
+
method: 'public/auth',
|
|
65
|
+
id: 1,
|
|
66
|
+
params: {
|
|
67
|
+
grant_type: 'client_credentials',
|
|
68
|
+
client_id: process.env.DERIBIT_API_CLIENT_ID,
|
|
69
|
+
client_secret: process.env.DERIBIT_API_CLIENT_SECRET
|
|
70
|
+
}
|
|
71
|
+
})
|
|
72
|
+
}
|
|
51
73
|
}
|
|
52
74
|
|
|
53
75
|
protected messageIsHeartbeat(msg: any) {
|
|
@@ -246,6 +246,8 @@ export abstract class RealTimeFeedBase implements RealTimeFeedIterable {
|
|
|
246
246
|
return prev
|
|
247
247
|
}, new Set<string>()).size
|
|
248
248
|
|
|
249
|
+
this.onConnected()
|
|
250
|
+
|
|
249
251
|
for (const message of subscribeMessages) {
|
|
250
252
|
this.send(message)
|
|
251
253
|
if (this.throttleSubscribeMS > 0) {
|
|
@@ -255,8 +257,6 @@ export abstract class RealTimeFeedBase implements RealTimeFeedIterable {
|
|
|
255
257
|
|
|
256
258
|
this.debug('(connection id: %d) estabilished connection', this._connectionId)
|
|
257
259
|
|
|
258
|
-
this.onConnected()
|
|
259
|
-
|
|
260
260
|
//wait before fetching snapshots until we're sure we've got proper connection estabilished (received some messages)
|
|
261
261
|
while (this._receivedMessagesCount < symbolsCount * 2) {
|
|
262
262
|
await wait(100)
|