tardis-dev 13.0.0 → 13.1.3
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 +4 -4
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +58 -4
- package/dist/consts.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 +5 -0
- 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 +3 -1
- 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 +43 -23
- package/dist/mappers/index.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 +247 -1
- package/dist/mappers/okex.d.ts.map +1 -1
- package/dist/mappers/okex.js +399 -1
- 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/okex.d.ts +4 -2
- package/dist/realtimefeeds/okex.d.ts.map +1 -1
- package/dist/realtimefeeds/okex.js +38 -10
- package/dist/realtimefeeds/okex.js.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +62 -4
- 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 +9 -0
- 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 +6 -2
- package/src/mappers/index.ts +77 -24
- package/src/mappers/kraken.ts +7 -1
- package/src/mappers/okex.ts +596 -2
- package/src/mappers/poloniex.ts +5 -0
- package/src/mappers/serum.ts +14 -2
- package/src/mappers/upbit.ts +6 -1
- package/src/realtimefeeds/okex.ts +42 -10
|
@@ -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"}
|
|
@@ -2,12 +2,14 @@ import { Filter } from '../types';
|
|
|
2
2
|
import { RealTimeFeedBase } from './realtimefeed';
|
|
3
3
|
export declare class OkexRealTimeFeed extends RealTimeFeedBase {
|
|
4
4
|
protected wssURL: string;
|
|
5
|
-
protected decompress: (message: any) => any;
|
|
6
5
|
protected mapToSubscribeMessages(filters: Filter<string>[]): any[];
|
|
7
6
|
protected messageIsError(message: any): boolean;
|
|
8
7
|
}
|
|
9
|
-
export declare class OKCoinRealTimeFeed extends
|
|
8
|
+
export declare class OKCoinRealTimeFeed extends RealTimeFeedBase {
|
|
10
9
|
protected wssURL: string;
|
|
10
|
+
protected mapToSubscribeMessages(filters: Filter<string>[]): any[];
|
|
11
|
+
protected messageIsError(message: any): boolean;
|
|
12
|
+
protected decompress: (message: any) => any;
|
|
11
13
|
}
|
|
12
14
|
export declare class OkexOptionsRealTimeFeed extends OkexRealTimeFeed {
|
|
13
15
|
private _defaultIndexes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"okex.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/okex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD,SAAS,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"okex.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/okex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD,SAAS,CAAC,MAAM,SAAwC;IAExD,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAwBlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;CAGhD;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;IACtD,SAAS,CAAC,MAAM,SAAqC;IAErD,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAqBlE,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAI/C,SAAS,CAAC,UAAU,YAAa,GAAG,SAInC;CACF;AAED,qBAAa,uBAAwB,SAAQ,gBAAgB;IAC3D,OAAO,CAAC,eAAe,CAAyB;IAEhD,OAAO,CAAC,8BAA8B;IAMtC,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;CAoCnE"}
|
|
@@ -6,11 +6,7 @@ const realtimefeed_1 = require("./realtimefeed");
|
|
|
6
6
|
class OkexRealTimeFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
|
-
this.wssURL = 'wss://
|
|
10
|
-
this.decompress = (message) => {
|
|
11
|
-
message = (0, zlib_1.inflateRawSync)(message);
|
|
12
|
-
return message;
|
|
13
|
-
};
|
|
9
|
+
this.wssURL = 'wss://ws.okex.com:8443/ws/v5/public';
|
|
14
10
|
}
|
|
15
11
|
mapToSubscribeMessages(filters) {
|
|
16
12
|
const args = filters
|
|
@@ -19,7 +15,10 @@ class OkexRealTimeFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
|
19
15
|
throw new Error(`${this._exchange} RealTimeFeed requires explicitly specified symbols when subscribing to live feed`);
|
|
20
16
|
}
|
|
21
17
|
return filter.symbols.map((symbol) => {
|
|
22
|
-
return
|
|
18
|
+
return {
|
|
19
|
+
channel: filter.channel,
|
|
20
|
+
instId: symbol
|
|
21
|
+
};
|
|
23
22
|
});
|
|
24
23
|
})
|
|
25
24
|
.flatMap((s) => s);
|
|
@@ -35,20 +34,45 @@ class OkexRealTimeFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
|
35
34
|
}
|
|
36
35
|
}
|
|
37
36
|
exports.OkexRealTimeFeed = OkexRealTimeFeed;
|
|
38
|
-
class OKCoinRealTimeFeed extends
|
|
37
|
+
class OKCoinRealTimeFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
39
38
|
constructor() {
|
|
40
39
|
super(...arguments);
|
|
41
40
|
this.wssURL = 'wss://real.okcoin.com:8443/ws/v3';
|
|
41
|
+
this.decompress = (message) => {
|
|
42
|
+
message = (0, zlib_1.inflateRawSync)(message);
|
|
43
|
+
return message;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
mapToSubscribeMessages(filters) {
|
|
47
|
+
const args = filters
|
|
48
|
+
.map((filter) => {
|
|
49
|
+
if (!filter.symbols || filter.symbols.length === 0) {
|
|
50
|
+
throw new Error(`${this._exchange} RealTimeFeed requires explicitly specified symbols when subscribing to live feed`);
|
|
51
|
+
}
|
|
52
|
+
return filter.symbols.map((symbol) => {
|
|
53
|
+
return `${filter.channel}:${symbol}`;
|
|
54
|
+
});
|
|
55
|
+
})
|
|
56
|
+
.flatMap((s) => s);
|
|
57
|
+
return [
|
|
58
|
+
{
|
|
59
|
+
op: 'subscribe',
|
|
60
|
+
args: [...new Set(args)]
|
|
61
|
+
}
|
|
62
|
+
];
|
|
63
|
+
}
|
|
64
|
+
messageIsError(message) {
|
|
65
|
+
return message.event === 'error';
|
|
42
66
|
}
|
|
43
67
|
}
|
|
44
68
|
exports.OKCoinRealTimeFeed = OKCoinRealTimeFeed;
|
|
45
69
|
class OkexOptionsRealTimeFeed extends OkexRealTimeFeed {
|
|
46
70
|
constructor() {
|
|
47
71
|
super(...arguments);
|
|
48
|
-
this._defaultIndexes = ['BTC-USD', 'ETH-USD'
|
|
72
|
+
this._defaultIndexes = ['BTC-USD', 'ETH-USD'];
|
|
49
73
|
}
|
|
50
74
|
_channelRequiresIndexNotSymbol(channel) {
|
|
51
|
-
if (channel === 'index
|
|
75
|
+
if (channel === 'index-tickers' || channel === 'opt-summary') {
|
|
52
76
|
return true;
|
|
53
77
|
}
|
|
54
78
|
return false;
|
|
@@ -70,7 +94,11 @@ class OkexOptionsRealTimeFeed extends OkexRealTimeFeed {
|
|
|
70
94
|
const symbolParts = symbol.split('-');
|
|
71
95
|
finalSymbol = `${symbolParts[0]}-${symbolParts[1]}`;
|
|
72
96
|
}
|
|
73
|
-
return
|
|
97
|
+
return {
|
|
98
|
+
channel: filter.channel,
|
|
99
|
+
instId: filter.channel !== 'opt-summary' ? finalSymbol : undefined,
|
|
100
|
+
uly: filter.channel === 'opt-summary' ? finalSymbol : undefined
|
|
101
|
+
};
|
|
74
102
|
});
|
|
75
103
|
})
|
|
76
104
|
.flatMap((s) => s);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"okex.js","sourceRoot":"","sources":["../../src/realtimefeeds/okex.ts"],"names":[],"mappings":";;;AAAA,+BAAqC;AAErC,iDAAiD;AAEjD,MAAa,gBAAiB,SAAQ,+BAAgB;IAAtD;;QACY,WAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"okex.js","sourceRoot":"","sources":["../../src/realtimefeeds/okex.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/consts.ts
CHANGED
|
@@ -104,7 +104,24 @@ const DERIBIT_CHANNELS = [
|
|
|
104
104
|
|
|
105
105
|
const KRAKEN_CHANNELS = ['trade', 'ticker', 'book', 'spread'] as const
|
|
106
106
|
|
|
107
|
-
const OKEX_CHANNELS = [
|
|
107
|
+
const OKEX_CHANNELS = [
|
|
108
|
+
'spot/trade',
|
|
109
|
+
'spot/depth',
|
|
110
|
+
'spot/depth_l2_tbt',
|
|
111
|
+
'spot/ticker',
|
|
112
|
+
'system/status',
|
|
113
|
+
'margin/interest_rate',
|
|
114
|
+
|
|
115
|
+
// v5
|
|
116
|
+
'trades',
|
|
117
|
+
'books-l2-tbt',
|
|
118
|
+
'tickers',
|
|
119
|
+
'interest-rate-loan-quota',
|
|
120
|
+
'vip-interest-rate-loan-quota',
|
|
121
|
+
'status',
|
|
122
|
+
'instruments',
|
|
123
|
+
'taker-volume'
|
|
124
|
+
] as const
|
|
108
125
|
|
|
109
126
|
const OKCOIN_CHANNELS = ['spot/trade', 'spot/depth', 'spot/depth_l2_tbt', 'spot/ticker', 'system/status'] as const
|
|
110
127
|
|
|
@@ -119,7 +136,21 @@ const OKEX_FUTURES_CHANNELS = [
|
|
|
119
136
|
'system/status',
|
|
120
137
|
'information/sentiment',
|
|
121
138
|
'information/long_short_ratio',
|
|
122
|
-
'information/margin'
|
|
139
|
+
'information/margin',
|
|
140
|
+
|
|
141
|
+
// v5
|
|
142
|
+
'trades',
|
|
143
|
+
'books-l2-tbt',
|
|
144
|
+
'tickers',
|
|
145
|
+
'open-interest',
|
|
146
|
+
'mark-price',
|
|
147
|
+
'price-limit',
|
|
148
|
+
'status',
|
|
149
|
+
'instruments',
|
|
150
|
+
'index-tickers',
|
|
151
|
+
'long-short-account-ratio',
|
|
152
|
+
'taker-volume',
|
|
153
|
+
'liquidations'
|
|
123
154
|
] as const
|
|
124
155
|
|
|
125
156
|
const OKEX_SWAP_CHANNELS = [
|
|
@@ -134,7 +165,22 @@ const OKEX_SWAP_CHANNELS = [
|
|
|
134
165
|
'system/status',
|
|
135
166
|
'information/sentiment',
|
|
136
167
|
'information/long_short_ratio',
|
|
137
|
-
'information/margin'
|
|
168
|
+
'information/margin',
|
|
169
|
+
|
|
170
|
+
//v5
|
|
171
|
+
'trades',
|
|
172
|
+
'books-l2-tbt',
|
|
173
|
+
'tickers',
|
|
174
|
+
'open-interest',
|
|
175
|
+
'mark-price',
|
|
176
|
+
'price-limit',
|
|
177
|
+
'funding-rate',
|
|
178
|
+
'status',
|
|
179
|
+
'instruments',
|
|
180
|
+
'index-tickers',
|
|
181
|
+
'long-short-account-ratio',
|
|
182
|
+
'taker-volume',
|
|
183
|
+
'liquidations'
|
|
138
184
|
] as const
|
|
139
185
|
|
|
140
186
|
const OKEX_OPTIONS_CHANNELS = [
|
|
@@ -146,7 +192,19 @@ const OKEX_OPTIONS_CHANNELS = [
|
|
|
146
192
|
'option/instruments',
|
|
147
193
|
'index/ticker',
|
|
148
194
|
'system/status',
|
|
149
|
-
'option/trades'
|
|
195
|
+
'option/trades',
|
|
196
|
+
|
|
197
|
+
//v5
|
|
198
|
+
'trades',
|
|
199
|
+
'books-l2-tbt',
|
|
200
|
+
'tickers',
|
|
201
|
+
'opt-summary',
|
|
202
|
+
'status',
|
|
203
|
+
'instruments',
|
|
204
|
+
'index-tickers',
|
|
205
|
+
'open-interest',
|
|
206
|
+
'mark-price',
|
|
207
|
+
'price-limit'
|
|
150
208
|
] as const
|
|
151
209
|
|
|
152
210
|
const COINFLEX_CHANNELS = ['futures/depth', 'trade', 'ticker'] as const
|
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',
|
package/src/mappers/bitflyer.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { parseμs } from '../handy'
|
|
2
|
-
import { BookChange,
|
|
1
|
+
import { parseμs, upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookTicker, Trade } from '../types'
|
|
3
3
|
import { Mapper } from './mapper'
|
|
4
4
|
|
|
5
5
|
export const bitflyerTradesMapper: Mapper<'bitflyer', Trade> = {
|
|
@@ -8,6 +8,8 @@ export const bitflyerTradesMapper: Mapper<'bitflyer', Trade> = {
|
|
|
8
8
|
},
|
|
9
9
|
|
|
10
10
|
getFilters(symbols?: string[]) {
|
|
11
|
+
symbols = upperCaseSymbols(symbols)
|
|
12
|
+
|
|
11
13
|
return [
|
|
12
14
|
{
|
|
13
15
|
channel: 'lightning_executions',
|
|
@@ -52,6 +54,8 @@ export class BitflyerBookChangeMapper implements Mapper<'bitflyer', BookChange>
|
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
getFilters(symbols?: string[]) {
|
|
57
|
+
symbols = upperCaseSymbols(symbols)
|
|
58
|
+
|
|
55
59
|
return [
|
|
56
60
|
{
|
|
57
61
|
channel: 'lightning_board_snapshot',
|
|
@@ -97,6 +101,8 @@ export const bitflyerBookTickerMapper: Mapper<'bitflyer', BookTicker> = {
|
|
|
97
101
|
},
|
|
98
102
|
|
|
99
103
|
getFilters(symbols?: string[]) {
|
|
104
|
+
symbols = upperCaseSymbols(symbols)
|
|
105
|
+
|
|
100
106
|
return [
|
|
101
107
|
{
|
|
102
108
|
channel: 'lightning_ticker',
|
package/src/mappers/bitmex.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { asNumberIfValid } from '../handy'
|
|
2
|
-
import { BookChange, BookPriceLevel, DerivativeTicker, FilterForExchange, Liquidation, Trade
|
|
1
|
+
import { asNumberIfValid, upperCaseSymbols } from '../handy'
|
|
2
|
+
import { BookChange, BookPriceLevel, BookTicker, DerivativeTicker, FilterForExchange, Liquidation, Trade } from '../types'
|
|
3
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
4
4
|
|
|
5
5
|
// https://www.bitmex.com/app/wsAPI
|
|
@@ -10,6 +10,8 @@ export const bitmexTradesMapper: Mapper<'bitmex', Trade> = {
|
|
|
10
10
|
},
|
|
11
11
|
|
|
12
12
|
getFilters(symbols?: string[]) {
|
|
13
|
+
symbols = upperCaseSymbols(symbols)
|
|
14
|
+
|
|
13
15
|
return [
|
|
14
16
|
{
|
|
15
17
|
channel: 'trade',
|
|
@@ -45,6 +47,8 @@ export class BitmexBookChangeMapper implements Mapper<'bitmex', BookChange> {
|
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
getFilters(symbols?: string[]) {
|
|
50
|
+
symbols = upperCaseSymbols(symbols)
|
|
51
|
+
|
|
48
52
|
return [
|
|
49
53
|
{
|
|
50
54
|
channel: 'orderBookL2',
|
|
@@ -150,6 +154,8 @@ export class BitmexDerivativeTickerMapper implements Mapper<'bitmex', Derivative
|
|
|
150
154
|
}
|
|
151
155
|
|
|
152
156
|
getFilters(symbols?: string[]) {
|
|
157
|
+
symbols = upperCaseSymbols(symbols)
|
|
158
|
+
|
|
153
159
|
return [
|
|
154
160
|
{
|
|
155
161
|
channel: 'instrument',
|
|
@@ -198,6 +204,8 @@ export const bitmexLiquidationsMapper: Mapper<'bitmex', Liquidation> = {
|
|
|
198
204
|
},
|
|
199
205
|
|
|
200
206
|
getFilters(symbols?: string[]) {
|
|
207
|
+
symbols = upperCaseSymbols(symbols)
|
|
208
|
+
|
|
201
209
|
return [
|
|
202
210
|
{
|
|
203
211
|
channel: 'liquidation',
|
|
@@ -231,6 +239,8 @@ export const bitmexBookTickerMapper: Mapper<'bitmex', BookTicker> = {
|
|
|
231
239
|
},
|
|
232
240
|
|
|
233
241
|
getFilters(symbols?: string[]) {
|
|
242
|
+
symbols = upperCaseSymbols(symbols)
|
|
243
|
+
|
|
234
244
|
return [
|
|
235
245
|
{
|
|
236
246
|
channel: 'quote',
|
package/src/mappers/bitstamp.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { lowerCaseSymbols } from '../handy'
|
|
1
2
|
import { BookChange, Trade } from '../types'
|
|
2
3
|
import { Mapper } from './mapper'
|
|
3
4
|
|
|
@@ -168,13 +169,6 @@ export class BitstampBookChangeMapper implements Mapper<'bitstamp', BookChange>
|
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
171
|
|
|
171
|
-
function lowerCaseSymbols(symbols?: string[]) {
|
|
172
|
-
if (symbols !== undefined) {
|
|
173
|
-
return symbols.map((s) => s.toLowerCase())
|
|
174
|
-
}
|
|
175
|
-
return
|
|
176
|
-
}
|
|
177
|
-
|
|
178
172
|
type BitstampTrade = {
|
|
179
173
|
event: 'trade'
|
|
180
174
|
channel: string
|
package/src/mappers/bybit.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { upperCaseSymbols } from '../handy'
|
|
1
2
|
import { BookChange, DerivativeTicker, Exchange, Liquidation, Trade } from '../types'
|
|
2
3
|
import { Mapper, PendingTickerInfoHelper } from './mapper'
|
|
3
4
|
|
|
@@ -14,6 +15,8 @@ export class BybitTradesMapper implements Mapper<'bybit', Trade> {
|
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
getFilters(symbols?: string[]) {
|
|
18
|
+
symbols = upperCaseSymbols(symbols)
|
|
19
|
+
|
|
17
20
|
return [
|
|
18
21
|
{
|
|
19
22
|
channel: 'trade',
|
|
@@ -57,6 +60,8 @@ export class BybitBookChangeMapper implements Mapper<'bybit', BookChange> {
|
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
getFilters(symbols?: string[]) {
|
|
63
|
+
symbols = upperCaseSymbols(symbols)
|
|
64
|
+
|
|
60
65
|
if (this._canUseBook200Channel) {
|
|
61
66
|
return [
|
|
62
67
|
{
|
|
@@ -117,6 +122,8 @@ export class BybitDerivativeTickerMapper implements Mapper<'bybit', DerivativeTi
|
|
|
117
122
|
}
|
|
118
123
|
|
|
119
124
|
getFilters(symbols?: string[]) {
|
|
125
|
+
symbols = upperCaseSymbols(symbols)
|
|
126
|
+
|
|
120
127
|
return [
|
|
121
128
|
{
|
|
122
129
|
channel: 'instrument_info',
|
|
@@ -190,6 +197,8 @@ export class BybitLiquidationsMapper implements Mapper<'bybit', Liquidation> {
|
|
|
190
197
|
}
|
|
191
198
|
|
|
192
199
|
getFilters(symbols?: string[]) {
|
|
200
|
+
symbols = upperCaseSymbols(symbols)
|
|
201
|
+
|
|
193
202
|
return [
|
|
194
203
|
{
|
|
195
204
|
channel: 'liquidation',
|
package/src/mappers/coinbase.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { parseμs, upperCaseSymbols } from '../handy'
|
|
1
2
|
import { BookChange, BookPriceLevel, BookTicker, Trade } from '../types'
|
|
2
3
|
import { Mapper } from './mapper'
|
|
3
|
-
import { parseμs } from '../handy'
|
|
4
4
|
|
|
5
5
|
// https://docs.pro.coinbase.com/#websocket-feed
|
|
6
6
|
|
|
@@ -10,6 +10,8 @@ export const coinbaseTradesMapper: Mapper<'coinbase', Trade> = {
|
|
|
10
10
|
},
|
|
11
11
|
|
|
12
12
|
getFilters(symbols?: string[]) {
|
|
13
|
+
symbols = upperCaseSymbols(symbols)
|
|
14
|
+
|
|
13
15
|
return [
|
|
14
16
|
{
|
|
15
17
|
channel: 'match',
|
|
@@ -69,6 +71,8 @@ export class CoinbaseBookChangMapper implements Mapper<'coinbase', BookChange> {
|
|
|
69
71
|
}
|
|
70
72
|
|
|
71
73
|
getFilters(symbols?: string[]) {
|
|
74
|
+
symbols = upperCaseSymbols(symbols)
|
|
75
|
+
|
|
72
76
|
return [
|
|
73
77
|
{
|
|
74
78
|
channel: 'snapshot',
|
|
@@ -128,6 +132,8 @@ export const coinbaseBookTickerMapper: Mapper<'coinbase', BookTicker> = {
|
|
|
128
132
|
},
|
|
129
133
|
|
|
130
134
|
getFilters(symbols?: string[]) {
|
|
135
|
+
symbols = upperCaseSymbols(symbols)
|
|
136
|
+
|
|
131
137
|
return [
|
|
132
138
|
{
|
|
133
139
|
channel: 'ticker',
|