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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poloniex.js","sourceRoot":"","sources":["../../src/mappers/poloniex.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"poloniex.js","sourceRoot":"","sources":["../../src/mappers/poloniex.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers/serum.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { BookChange, BookTicker, Exchange, Trade } from '../types';
|
|
1
2
|
import { Mapper } from './mapper';
|
|
2
|
-
import { Trade, BookChange, BookTicker, Exchange } from '../types';
|
|
3
3
|
export declare class SerumTradesMapper implements Mapper<'serum' | 'star-atlas', Trade> {
|
|
4
4
|
private readonly _exchange;
|
|
5
5
|
constructor(_exchange: Exchange);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serum.d.ts","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serum.d.ts","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers/serum.js
CHANGED
|
@@ -10,6 +10,9 @@ class SerumTradesMapper {
|
|
|
10
10
|
return message.type === 'trade';
|
|
11
11
|
}
|
|
12
12
|
getFilters(symbols) {
|
|
13
|
+
if (this._exchange === 'serum') {
|
|
14
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
15
|
+
}
|
|
13
16
|
return [
|
|
14
17
|
{
|
|
15
18
|
channel: 'trade',
|
|
@@ -40,6 +43,9 @@ class SerumBookChangeMapper {
|
|
|
40
43
|
return message.type === 'l2snapshot' || message.type === 'l2update';
|
|
41
44
|
}
|
|
42
45
|
getFilters(symbols) {
|
|
46
|
+
if (this._exchange === 'serum') {
|
|
47
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
48
|
+
}
|
|
43
49
|
return [
|
|
44
50
|
{
|
|
45
51
|
channel: 'l2snapshot',
|
|
@@ -78,6 +84,9 @@ class SerumBookTickerMapper {
|
|
|
78
84
|
return message.type === 'quote';
|
|
79
85
|
}
|
|
80
86
|
getFilters(symbols) {
|
|
87
|
+
if (this._exchange === 'serum') {
|
|
88
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
89
|
+
}
|
|
81
90
|
return [
|
|
82
91
|
{
|
|
83
92
|
channel: 'quote',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serum.js","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"serum.js","sourceRoot":"","sources":["../../src/mappers/serum.ts"],"names":[],"mappings":"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"}
|
package/dist/mappers/upbit.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { BookChange, Trade } from '../types';
|
|
1
2
|
import { Mapper } from './mapper';
|
|
2
|
-
import { Trade, BookChange } from '../types';
|
|
3
3
|
export declare class UpbitTradesMapper implements Mapper<'upbit', Trade> {
|
|
4
4
|
canHandle(message: UpbitTrade): boolean;
|
|
5
5
|
getFilters(symbols?: string[]): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upbit.d.ts","sourceRoot":"","sources":["../../src/mappers/upbit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"upbit.d.ts","sourceRoot":"","sources":["../../src/mappers/upbit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkB,KAAK,EAAE,MAAM,UAAU,CAAA;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,qBAAa,iBAAkB,YAAW,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;IAC9D,SAAS,CAAC,OAAO,EAAE,UAAU;IAI7B,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;;;;IAW5B,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC;CAazE;AAED,qBAAa,qBAAsB,YAAW,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC;IACvE,SAAS,CAAC,OAAO,EAAE,cAAc;IAIjC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE;;;;IAW5B,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,GAAG,gBAAgB,CAAC,UAAU,CAAC;CA8BlF;AAED,aAAK,UAAU,GAAG;IAChB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,aAAa,CAAA;IACxB,UAAU,EAAE,YAAY,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,aAAa,CAAA;IAC9B,WAAW,EAAE,IAAI,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,KAAK,CAAA;IACd,kBAAkB,EAAE,IAAI,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,GAAG,CAAA;IACjB,aAAa,EAAE,gBAAgB,CAAA;IAC/B,WAAW,EAAE,UAAU,CAAA;CACxB,CAAA;AAED,aAAK,cAAc,GAAG;IACpB,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,aAAa,CAAA;IACxB,cAAc,EAAE,aAAa,CAAA;IAC7B,cAAc,EAAE,aAAa,CAAA;IAC7B,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC/F,WAAW,EAAE,UAAU,CAAA;CACxB,CAAA"}
|
package/dist/mappers/upbit.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UpbitBookChangeMapper = exports.UpbitTradesMapper = void 0;
|
|
4
|
+
const handy_1 = require("../handy");
|
|
4
5
|
class UpbitTradesMapper {
|
|
5
6
|
canHandle(message) {
|
|
6
7
|
return message.type === 'trade';
|
|
7
8
|
}
|
|
8
9
|
getFilters(symbols) {
|
|
10
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
9
11
|
return [
|
|
10
12
|
{
|
|
11
13
|
channel: 'trade',
|
|
@@ -33,6 +35,7 @@ class UpbitBookChangeMapper {
|
|
|
33
35
|
return message.type === 'orderbook';
|
|
34
36
|
}
|
|
35
37
|
getFilters(symbols) {
|
|
38
|
+
symbols = (0, handy_1.upperCaseSymbols)(symbols);
|
|
36
39
|
return [
|
|
37
40
|
{
|
|
38
41
|
channel: 'orderbook',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upbit.js","sourceRoot":"","sources":["../../src/mappers/upbit.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"upbit.js","sourceRoot":"","sources":["../../src/mappers/upbit.ts"],"names":[],"mappings":";;;AAAA,oCAA2C;AAI3C,MAAa,iBAAiB;IAC5B,SAAS,CAAC,OAAmB;QAC3B,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO,CAAA;IACjC,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,OAAO;gBAChB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAAmB,EAAE,cAAoB;QAC5C,MAAM;YACJ,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,QAAQ,EAAE,OAAO;YACjB,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;YACjC,KAAK,EAAE,OAAO,CAAC,WAAW;YAC1B,MAAM,EAAE,OAAO,CAAC,YAAY;YAC5B,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;YAChD,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;YAC5C,cAAc,EAAE,cAAc;SAC/B,CAAA;IACH,CAAC;CACF;AA7BD,8CA6BC;AAED,MAAa,qBAAqB;IAChC,SAAS,CAAC,OAAuB;QAC/B,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,CAAA;IACrC,CAAC;IAED,UAAU,CAAC,OAAkB;QAC3B,OAAO,GAAG,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAA;QAEnC,OAAO;YACL;gBACE,OAAO,EAAE,WAAW;gBACpB,OAAO;aACC;SACX,CAAA;IACH,CAAC;IAED,CAAC,GAAG,CAAC,OAAuB,EAAE,cAAoB;QAChD,IAAI,IAAI,GAAqB,EAAE,CAAA;QAC/B,IAAI,IAAI,GAAqB,EAAE,CAAA;QAE/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,eAAe,EAAE;YAC3C,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,MAAM,EAAE,KAAK,CAAC,QAAQ;iBACvB,CAAC,CAAA;aACH;YAED,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;gBACvB,IAAI,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,KAAK,CAAC,SAAS;oBACtB,MAAM,EAAE,KAAK,CAAC,QAAQ;iBACvB,CAAC,CAAA;aACH;SACF;QACD,MAAM;YACJ,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,IAAI;YAChB,IAAI;YACJ,IAAI;YACJ,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,cAAc;SACf,CAAA;IACH,CAAC;CACF;AA9CD,sDA8CC"}
|
|
@@ -5,6 +5,7 @@ export declare class DeribitRealTimeDataFeed extends RealTimeFeedBase {
|
|
|
5
5
|
protected channelsWithIntervals: FilterForExchange['deribit']['channel'][];
|
|
6
6
|
protected mapToSubscribeMessages(filters: Filter<string>[]): any[];
|
|
7
7
|
protected messageIsError(message: any): boolean;
|
|
8
|
+
private hasCredentials;
|
|
8
9
|
protected onConnected(): void;
|
|
9
10
|
protected messageIsHeartbeat(msg: any): boolean;
|
|
10
11
|
protected onMessage(msg: any): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deribit.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/deribit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,SAAS,CAAC,MAAM,SAAoC;IAEpD,SAAS,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,CAA4C;IAEtH,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"deribit.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/deribit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,SAAS,CAAC,MAAM,SAAoC;IAEpD,SAAS,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,EAAE,CAA4C;IAEtH,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IA+BlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAI/C,OAAO,CAAC,cAAc;IAItB,SAAS,CAAC,WAAW;IA2BrB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG;IAIrC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG;CAW7B"}
|
|
@@ -9,13 +9,18 @@ class DeribitRealTimeDataFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
|
9
9
|
this.channelsWithIntervals = ['book', 'perpetual', 'trades', 'ticker'];
|
|
10
10
|
}
|
|
11
11
|
mapToSubscribeMessages(filters) {
|
|
12
|
+
const hasCredentials = this.hasCredentials();
|
|
12
13
|
const channels = filters
|
|
13
14
|
.map((filter) => {
|
|
14
15
|
if (!filter.symbols || filter.symbols.length === 0) {
|
|
15
16
|
throw new Error('DeribitRealTimeDataFeed requires explicitly specified symbols when subscribing to live feed');
|
|
16
17
|
}
|
|
17
18
|
return filter.symbols.map((symbol) => {
|
|
18
|
-
|
|
19
|
+
let suffix = this.channelsWithIntervals.includes(filter.channel) ? '.raw' : '';
|
|
20
|
+
if (hasCredentials === false && filter.channel === 'book') {
|
|
21
|
+
// deribit requires authentications for raw book data feed
|
|
22
|
+
suffix = '.100ms';
|
|
23
|
+
}
|
|
19
24
|
return `${filter.channel}.${symbol}${suffix}`;
|
|
20
25
|
});
|
|
21
26
|
})
|
|
@@ -23,8 +28,8 @@ class DeribitRealTimeDataFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
|
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
|
}
|
|
@@ -34,6 +39,9 @@ class DeribitRealTimeDataFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
|
34
39
|
messageIsError(message) {
|
|
35
40
|
return message.error !== undefined;
|
|
36
41
|
}
|
|
42
|
+
hasCredentials() {
|
|
43
|
+
return process.env.DERIBIT_API_CLIENT_ID !== undefined && process.env.DERIBIT_API_CLIENT_SECRET !== undefined;
|
|
44
|
+
}
|
|
37
45
|
onConnected() {
|
|
38
46
|
// set heartbeat so deribit won't close connection prematurely
|
|
39
47
|
// https://docs.deribit.com/v2/#public-set_heartbeat
|
|
@@ -45,6 +53,18 @@ class DeribitRealTimeDataFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
|
45
53
|
interval: 10
|
|
46
54
|
}
|
|
47
55
|
});
|
|
56
|
+
if (this.hasCredentials()) {
|
|
57
|
+
this.send({
|
|
58
|
+
jsonrpc: '2.0',
|
|
59
|
+
method: 'public/auth',
|
|
60
|
+
id: 1,
|
|
61
|
+
params: {
|
|
62
|
+
grant_type: 'client_credentials',
|
|
63
|
+
client_id: process.env.DERIBIT_API_CLIENT_ID,
|
|
64
|
+
client_secret: process.env.DERIBIT_API_CLIENT_SECRET
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}
|
|
48
68
|
}
|
|
49
69
|
messageIsHeartbeat(msg) {
|
|
50
70
|
return msg.method === 'heartbeat';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deribit.js","sourceRoot":"","sources":["../../src/realtimefeeds/deribit.ts"],"names":[],"mappings":";;;AACA,iDAAiD;AAEjD,MAAa,uBAAwB,SAAQ,+BAAgB;IAA7D;;QACY,WAAM,GAAG,iCAAiC,CAAA;QAE1C,0BAAqB,GAA8C,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"deribit.js","sourceRoot":"","sources":["../../src/realtimefeeds/deribit.ts"],"names":[],"mappings":";;;AACA,iDAAiD;AAEjD,MAAa,uBAAwB,SAAQ,+BAAgB;IAA7D;;QACY,WAAM,GAAG,iCAAiC,CAAA;QAE1C,0BAAqB,GAA8C,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAmFxH,CAAC;IAjFW,sBAAsB,CAAC,OAAyB;QACxD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;QAC5C,MAAM,QAAQ,GAAG,OAAO;aACrB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClD,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAA;aAC/G;YAED,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACnC,IAAI,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;gBACrF,IAAI,cAAc,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE;oBACzD,0DAA0D;oBAC1D,MAAM,GAAG,QAAQ,CAAA;iBAClB;gBAED,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,GAAG,MAAM,EAAE,CAAA;YAC/C,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC;aACD,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QACpB,OAAO;YACL;gBACE,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB;gBACjE,MAAM,EAAE;oBACN,QAAQ;iBACT;aACF;SACF,CAAA;IACH,CAAC;IAES,cAAc,CAAC,OAAY;QACnC,OAAO,OAAO,CAAC,KAAK,KAAK,SAAS,CAAA;IACpC,CAAC;IAEO,cAAc;QACpB,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,SAAS,CAAA;IAC/G,CAAC;IAES,WAAW;QACnB,8DAA8D;QAC9D,oDAAoD;QAEpD,IAAI,CAAC,IAAI,CAAC;YACR,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,sBAAsB;YAC9B,EAAE,EAAE,CAAC;YACL,MAAM,EAAE;gBACN,QAAQ,EAAE,EAAE;aACb;SACF,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;YACzB,IAAI,CAAC,IAAI,CAAC;gBACR,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,aAAa;gBACrB,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE;oBACN,UAAU,EAAE,oBAAoB;oBAChC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;oBAC5C,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;iBACrD;aACF,CAAC,CAAA;SACH;IACH,CAAC;IAES,kBAAkB,CAAC,GAAQ;QACnC,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,CAAA;IACnC,CAAC;IAES,SAAS,CAAC,GAAQ;QAC1B,4DAA4D;QAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE;YAClE,IAAI,CAAC,IAAI,CAAC;gBACR,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,aAAa;gBACrB,EAAE,EAAE,CAAC;gBACL,MAAM,EAAE,EAAE;aACX,CAAC,CAAA;SACH;IACH,CAAC;CACF;AAtFD,0DAsFC"}
|
|
@@ -30,6 +30,7 @@ class RealTimeFeedBase {
|
|
|
30
30
|
}
|
|
31
31
|
return prev;
|
|
32
32
|
}, new Set()).size;
|
|
33
|
+
this.onConnected();
|
|
33
34
|
for (const message of subscribeMessages) {
|
|
34
35
|
this.send(message);
|
|
35
36
|
if (this.throttleSubscribeMS > 0) {
|
|
@@ -37,7 +38,6 @@ class RealTimeFeedBase {
|
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
this.debug('(connection id: %d) estabilished connection', this._connectionId);
|
|
40
|
-
this.onConnected();
|
|
41
41
|
//wait before fetching snapshots until we're sure we've got proper connection estabilished (received some messages)
|
|
42
42
|
while (this._receivedMessagesCount < symbolsCount * 2) {
|
|
43
43
|
await (0, handy_1.wait)(100);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtimefeed.js","sourceRoot":"","sources":["../../src/realtimefeeds/realtimefeed.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAuB;AACvB,4CAA0B;AAE1B,mCAA8C;AAC9C,mCAA6B;AAC7B,oCAAgF;AAYhF,IAAI,iBAAiB,GAAG,CAAC,CAAA;AAIzB,MAAsB,gBAAgB;IAepC,YACqB,SAAiB,EACpC,OAAyB,EACR,kBAAsC,EACtC,QAAiC;QAH/B,cAAS,GAAT,SAAS,CAAQ;QAEnB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,aAAQ,GAAR,QAAQ,CAAyB;QAZjC,wBAAmB,GAAW,CAAC,CAAA;QAC/B,0BAAqB,GAAU,EAAE,CAAA;QAE5C,2BAAsB,GAAG,CAAC,CAAA;QAE1B,kBAAa,GAAG,iBAAiB,EAAE,CAAA;QA0MnC,8BAAyB,GAAG,KAAK,IAAI,EAAE;YAC7C,IAAI;gBACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAEpE,IAAI,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;oBACrD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;wBAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;4BACjC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;yBACjB;qBACF;oBACD,OAAO,IAAI,CAAA;gBACb,CAAC,EAAE,IAAI,GAAG,EAAU,CAAC,CAAC,IAAI,CAAA;gBAE1B,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE;oBACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBAClB,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE;wBAChC,MAAM,IAAA,YAAI,EAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;qBACrC;iBACF;gBAED,IAAI,CAAC,KAAK,CAAC,6CAA6C,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;gBAE7E,
|
|
1
|
+
{"version":3,"file":"realtimefeed.js","sourceRoot":"","sources":["../../src/realtimefeeds/realtimefeed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/combine.ts
CHANGED
|
@@ -119,34 +119,40 @@ export async function* combine<
|
|
|
119
119
|
async function* combineHistorical(
|
|
120
120
|
iterators: AsyncIterableIterator<Combinable>[] | { stream: AsyncIterableIterator<Combinable>; offsetMS: OffsetMS }[]
|
|
121
121
|
) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
122
|
+
try {
|
|
123
|
+
// wait for all results to resolve
|
|
124
|
+
const results = await Promise.all(iterators.map(nextWithIndex))
|
|
125
|
+
let aliveIteratorsCount = results.length
|
|
126
|
+
do {
|
|
127
|
+
// if we're dealing with historical data replay
|
|
128
|
+
// and need to return combined messages iterable sorted by local timestamp in ascending order
|
|
129
|
+
|
|
130
|
+
// find resolved one that is the 'oldest'
|
|
131
|
+
const oldestResult = results.reduce(findOldestResult, results[0])
|
|
132
|
+
const { result, index } = oldestResult
|
|
133
|
+
|
|
134
|
+
if (result.done) {
|
|
135
|
+
aliveIteratorsCount--
|
|
136
|
+
|
|
137
|
+
// we don't want finished iterators to every be considered 'oldest' again
|
|
138
|
+
// hence provide them with result that has local timestamp set to DATE_MAX
|
|
139
|
+
// and that is not done
|
|
140
|
+
|
|
141
|
+
results[index].result = {
|
|
142
|
+
done: false,
|
|
143
|
+
value: {
|
|
144
|
+
localTimestamp: DATE_MAX
|
|
145
|
+
}
|
|
144
146
|
}
|
|
147
|
+
} else {
|
|
148
|
+
// yield oldest value and replace with next value from iterable for given index
|
|
149
|
+
yield result.value
|
|
150
|
+
results[index] = await nextWithIndex(iterators[index], index)
|
|
145
151
|
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
152
|
+
} while (aliveIteratorsCount > 0)
|
|
153
|
+
} finally {
|
|
154
|
+
for (let iterator of iterators) {
|
|
155
|
+
;(iterator as any).return()
|
|
150
156
|
}
|
|
151
|
-
}
|
|
157
|
+
}
|
|
152
158
|
}
|
|
@@ -11,30 +11,34 @@ async function* _compute<T extends ComputableFactory<any>[], U extends Normalize
|
|
|
11
11
|
messages: AsyncIterableIterator<U>,
|
|
12
12
|
...computables: T
|
|
13
13
|
): AsyncIterableIterator<T extends ComputableFactory<infer Z>[] ? (U extends Disconnect ? U | Z | Disconnect : U | Z) : never> {
|
|
14
|
-
|
|
14
|
+
try {
|
|
15
|
+
const factory = new Computables(computables)
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
for await (const message of messages) {
|
|
18
|
+
// always pass through source message
|
|
19
|
+
yield message as any
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
if (message.type === 'disconnect') {
|
|
22
|
+
// reset all computables for given exchange if we've received disconnect for it
|
|
23
|
+
factory.reset(message.exchange)
|
|
24
|
+
continue
|
|
25
|
+
}
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
const normalizedMessage = message as NormalizedData
|
|
28
|
+
const id = normalizedMessage.name !== undefined ? `${normalizedMessage.symbol}:${normalizedMessage.name}` : normalizedMessage.symbol
|
|
28
29
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
const computablesMap = factory.getOrCreate(normalizedMessage.exchange, id)
|
|
31
|
+
const computables = computablesMap[normalizedMessage.type]
|
|
32
|
+
if (!computables) continue
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
for (const computable of computables) {
|
|
35
|
+
for (const computedMessage of computable.compute(normalizedMessage)) {
|
|
36
|
+
yield computedMessage
|
|
37
|
+
}
|
|
36
38
|
}
|
|
37
39
|
}
|
|
40
|
+
} finally {
|
|
41
|
+
messages.return!()
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
|
package/src/handy.ts
CHANGED
|
@@ -451,4 +451,18 @@ if (httpsProxyAgent !== undefined) {
|
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
453
|
|
|
454
|
+
export function upperCaseSymbols(symbols?: string[]) {
|
|
455
|
+
if (symbols !== undefined) {
|
|
456
|
+
return symbols.map((s) => s.toUpperCase())
|
|
457
|
+
}
|
|
458
|
+
return
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
export function lowerCaseSymbols(symbols?: string[]) {
|
|
462
|
+
if (symbols !== undefined) {
|
|
463
|
+
return symbols.map((s) => s.toLowerCase())
|
|
464
|
+
}
|
|
465
|
+
return
|
|
466
|
+
}
|
|
467
|
+
|
|
454
468
|
export const httpClient = got.extend(gotDefaultOptions)
|
package/src/mappers/ascendex.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, DerivativeTicker, Trade } from '../types'
|
|
1
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
2
|
-
import { Trade, BookChange, DerivativeTicker, BookTicker } from '../types'
|
|
3
4
|
|
|
4
5
|
export class AscendexTradesMapper implements Mapper<'ascendex', Trade> {
|
|
5
6
|
canHandle(message: AscendexTrade) {
|
|
@@ -7,6 +8,7 @@ export class AscendexTradesMapper implements Mapper<'ascendex', Trade> {
|
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
getFilters(symbols?: string[]) {
|
|
11
|
+
symbols = upperCaseSymbols(symbols)
|
|
10
12
|
return [
|
|
11
13
|
{
|
|
12
14
|
channel: 'trades',
|
|
@@ -38,6 +40,7 @@ export class AscendexBookChangeMapper implements Mapper<'ascendex', BookChange>
|
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
getFilters(symbols?: string[]) {
|
|
43
|
+
symbols = upperCaseSymbols(symbols)
|
|
41
44
|
return [
|
|
42
45
|
{
|
|
43
46
|
channel: 'depth-realtime',
|
|
@@ -78,6 +81,7 @@ export class AscendexDerivativeTickerMapper implements Mapper<'ascendex', Deriva
|
|
|
78
81
|
}
|
|
79
82
|
|
|
80
83
|
getFilters(symbols?: string[]) {
|
|
84
|
+
symbols = upperCaseSymbols(symbols)
|
|
81
85
|
return [
|
|
82
86
|
{
|
|
83
87
|
channel: 'futures-pricing-data',
|
|
@@ -120,6 +124,7 @@ export class AscendexBookTickerMapper implements Mapper<'ascendex', BookTicker>
|
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
getFilters(symbols?: string[]) {
|
|
127
|
+
symbols = upperCaseSymbols(symbols)
|
|
123
128
|
return [
|
|
124
129
|
{
|
|
125
130
|
channel: 'bbo',
|
package/src/mappers/binance.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { debug } from '../debug'
|
|
2
|
-
import { CircularBuffer } from '../handy'
|
|
3
|
-
import { BookChange, DerivativeTicker, Exchange, FilterForExchange, Liquidation,
|
|
2
|
+
import { CircularBuffer, lowerCaseSymbols } from '../handy'
|
|
3
|
+
import { BookChange, BookTicker, DerivativeTicker, Exchange, FilterForExchange, Liquidation, Trade } from '../types'
|
|
4
4
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
5
5
|
|
|
6
6
|
// https://github.com/binance-exchange/binance-official-api-docs/blob/master/web-socket-streams.md
|
|
@@ -447,13 +447,6 @@ export class BinanceBookTickerMapper implements Mapper<'binance-futures' | 'bina
|
|
|
447
447
|
}
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
-
function lowerCaseSymbols(symbols?: string[]) {
|
|
451
|
-
if (symbols !== undefined) {
|
|
452
|
-
return symbols.map((s) => s.toLowerCase())
|
|
453
|
-
}
|
|
454
|
-
return
|
|
455
|
-
}
|
|
456
|
-
|
|
457
450
|
type BinanceResponse<T> = {
|
|
458
451
|
stream: string
|
|
459
452
|
data: T
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, Trade } from '../types'
|
|
2
3
|
import { Mapper } from './mapper'
|
|
3
4
|
|
|
4
5
|
// https://docs.binance.org/api-reference/dex-api/ws-streams.html
|
|
@@ -9,6 +10,8 @@ export const binanceDexTradesMapper: Mapper<'binance-dex', Trade> = {
|
|
|
9
10
|
},
|
|
10
11
|
|
|
11
12
|
getFilters(symbols?: string[]) {
|
|
13
|
+
symbols = upperCaseSymbols(symbols)
|
|
14
|
+
|
|
12
15
|
return [
|
|
13
16
|
{
|
|
14
17
|
channel: 'trades',
|
|
@@ -46,6 +49,7 @@ export const binanceDexBookChangeMapper: Mapper<'binance-dex', BookChange> = {
|
|
|
46
49
|
},
|
|
47
50
|
|
|
48
51
|
getFilters(symbols?: string[]) {
|
|
52
|
+
symbols = upperCaseSymbols(symbols)
|
|
49
53
|
return [
|
|
50
54
|
{
|
|
51
55
|
channel: 'depthSnapshot',
|
|
@@ -96,6 +100,7 @@ export const binanceDexBookTickerMapper: Mapper<'binance-dex', BookTicker> = {
|
|
|
96
100
|
},
|
|
97
101
|
|
|
98
102
|
getFilters(symbols?: string[]) {
|
|
103
|
+
symbols = upperCaseSymbols(symbols)
|
|
99
104
|
return [
|
|
100
105
|
{
|
|
101
106
|
channel: 'ticker',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { asNumberIfValid } from '../handy'
|
|
1
|
+
import { asNumberIfValid, upperCaseSymbols } from '../handy'
|
|
2
2
|
import { BookChange, OptionSummary, Trade } from '../types'
|
|
3
3
|
import { Mapper } from './mapper'
|
|
4
4
|
|
|
@@ -15,6 +15,8 @@ export class BinanceOptionsTradesMapper implements Mapper<'binance-options', Tra
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
getFilters(symbols?: string[]) {
|
|
18
|
+
symbols = upperCaseSymbols(symbols)
|
|
19
|
+
|
|
18
20
|
return [
|
|
19
21
|
{
|
|
20
22
|
channel: 'TRADE',
|
|
@@ -68,6 +70,8 @@ export class BinanceOptionsBookChangeMapper implements Mapper<'binance-options',
|
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
getFilters(symbols?: string[]) {
|
|
73
|
+
symbols = upperCaseSymbols(symbols)
|
|
74
|
+
|
|
71
75
|
return [
|
|
72
76
|
{
|
|
73
77
|
channel: 'DEPTH100',
|
|
@@ -109,6 +113,8 @@ export class BinanceOptionSummaryMapper implements Mapper<'binance-options', Opt
|
|
|
109
113
|
}
|
|
110
114
|
|
|
111
115
|
getFilters(symbols?: string[]) {
|
|
116
|
+
symbols = upperCaseSymbols(symbols)
|
|
117
|
+
|
|
112
118
|
const indexes =
|
|
113
119
|
symbols !== undefined
|
|
114
120
|
? symbols.map((s) => {
|
package/src/mappers/bitfinex.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, DerivativeTicker, Exchange, FilterForExchange, Liquidation, Trade } from '../types'
|
|
2
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
3
4
|
|
|
4
5
|
// https://docs.bitfinex.com/v2/docs/ws-general
|
|
@@ -33,6 +34,8 @@ export class BitfinexTradesMapper implements Mapper<'bitfinex' | 'bitfinex-deriv
|
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
getFilters(symbols?: string[]) {
|
|
37
|
+
symbols = upperCaseSymbols(symbols)
|
|
38
|
+
|
|
36
39
|
return [
|
|
37
40
|
{
|
|
38
41
|
channel: 'trades',
|
|
@@ -107,6 +110,8 @@ export class BitfinexBookChangeMapper implements Mapper<'bitfinex' | 'bitfinex-d
|
|
|
107
110
|
}
|
|
108
111
|
|
|
109
112
|
getFilters(symbols?: string[]) {
|
|
113
|
+
symbols = upperCaseSymbols(symbols)
|
|
114
|
+
|
|
110
115
|
return [
|
|
111
116
|
{
|
|
112
117
|
channel: 'book',
|
|
@@ -187,6 +192,8 @@ export class BitfinexDerivativeTickerMapper implements Mapper<'bitfinex-derivati
|
|
|
187
192
|
}
|
|
188
193
|
|
|
189
194
|
getFilters(symbols?: string[]) {
|
|
195
|
+
symbols = upperCaseSymbols(symbols)
|
|
196
|
+
|
|
190
197
|
return [
|
|
191
198
|
{
|
|
192
199
|
channel: 'status',
|
|
@@ -345,6 +352,8 @@ export class BitfinexBookTickerMapper implements Mapper<'bitfinex' | 'bitfinex-d
|
|
|
345
352
|
}
|
|
346
353
|
|
|
347
354
|
getFilters(symbols?: string[]) {
|
|
355
|
+
symbols = upperCaseSymbols(symbols)
|
|
356
|
+
|
|
348
357
|
return [
|
|
349
358
|
{
|
|
350
359
|
channel: 'ticker',
|