tardis-dev 13.4.10 → 13.4.11
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 -2
- package/dist/consts.d.ts.map +1 -1
- package/dist/consts.js +16 -2
- package/dist/consts.js.map +1 -1
- package/dist/mappers/bybit.d.ts +1 -1
- package/dist/mappers/huobi.d.ts +3 -3
- package/dist/mappers/index.d.ts +3 -3
- package/dist/mappers/index.d.ts.map +1 -1
- package/dist/mappers/index.js +11 -4
- package/dist/mappers/index.js.map +1 -1
- package/dist/mappers/poloniex.d.ts +60 -0
- package/dist/mappers/poloniex.d.ts.map +1 -1
- package/dist/mappers/poloniex.js +73 -2
- package/dist/mappers/poloniex.js.map +1 -1
- package/dist/mappers/serum.d.ts +12 -0
- package/dist/mappers/serum.d.ts.map +1 -1
- package/dist/mappers/serum.js +2 -2
- package/dist/mappers/serum.js.map +1 -1
- package/dist/realtimefeeds/index.d.ts.map +1 -1
- package/dist/realtimefeeds/index.js +3 -1
- package/dist/realtimefeeds/index.js.map +1 -1
- package/dist/realtimefeeds/mango.d.ts +5 -0
- package/dist/realtimefeeds/mango.d.ts.map +1 -0
- package/dist/realtimefeeds/mango.js +12 -0
- package/dist/realtimefeeds/mango.js.map +1 -0
- package/dist/realtimefeeds/poloniex.d.ts +6 -3
- package/dist/realtimefeeds/poloniex.d.ts.map +1 -1
- package/dist/realtimefeeds/poloniex.js +14 -9
- package/dist/realtimefeeds/poloniex.js.map +1 -1
- package/dist/realtimefeeds/realtimefeed.d.ts +1 -0
- package/dist/realtimefeeds/realtimefeed.d.ts.map +1 -1
- package/dist/realtimefeeds/realtimefeed.js +7 -1
- package/dist/realtimefeeds/realtimefeed.js.map +1 -1
- package/package.json +1 -1
- package/src/consts.ts +17 -2
- package/src/mappers/index.ts +16 -5
- package/src/mappers/poloniex.ts +134 -1
- package/src/mappers/serum.ts +27 -13
- package/src/realtimefeeds/index.ts +3 -1
- package/src/realtimefeeds/mango.ts +5 -0
- package/src/realtimefeeds/poloniex.ts +16 -10
- package/src/realtimefeeds/realtimefeed.ts +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/realtimefeeds/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,uCAMkB;AAClB,6CAAqD;AACrD,yCAAiD;AACjD,yCAAiD;AACjD,qCAA6C;AAC7C,yCAAiD;AACjD,mCAA+C;AAC/C,yCAAiD;AACjD,yDAAiE;AACjE,uCAAmD;AACnD,+BAA0D;AAC1D,qCAA6C;AAC7C,qCAA6C;AAC7C,mCAMgB;AAChB,qCAA6C;AAC7C,iCAAsF;AAEtF,qCAA6C;AAC7C,mCAA2C;AAC3C,qCAA6C;AAC7C,mDAA2D;AAC3D,yCAAiD;AACjD,yCAAiD;AACjD,qDAA6D;AAC7D,mCAA2C;AAC3C,yCAAiD;AACjD,iCAAyC;AACzC,mCAA2C;AAC3C,2CAAmD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/realtimefeeds/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,uCAMkB;AAClB,6CAAqD;AACrD,yCAAiD;AACjD,yCAAiD;AACjD,qCAA6C;AAC7C,yCAAiD;AACjD,mCAA+C;AAC/C,yCAAiD;AACjD,yDAAiE;AACjE,uCAAmD;AACnD,+BAA0D;AAC1D,qCAA6C;AAC7C,qCAA6C;AAC7C,mCAMgB;AAChB,qCAA6C;AAC7C,iCAAsF;AAEtF,qCAA6C;AAC7C,mCAA2C;AAC3C,qCAA6C;AAC7C,mDAA2D;AAC3D,yCAAiD;AACjD,yCAAiD;AACjD,qDAA6D;AAC7D,mCAA2C;AAC3C,yCAAiD;AACjD,iCAAyC;AACzC,mCAA2C;AAC3C,2CAAmD;AACnD,mCAA2C;AAE3C,iDAA8B;AAE9B,MAAM,gBAAgB,GAElB;IACF,MAAM,EAAE,2BAAkB;IAC1B,OAAO,EAAE,6BAAmB;IAC5B,gBAAgB,EAAE,mCAAyB;IAC3C,YAAY,EAAE,+BAAqB;IACnC,aAAa,EAAE,mCAAsB;IACrC,iBAAiB,EAAE,oCAA0B;IAC7C,kBAAkB,EAAE,qCAA2B;IAC/C,QAAQ,EAAE,+BAAoB;IAC9B,sBAAsB,EAAE,+BAAoB;IAC5C,QAAQ,EAAE,+BAAoB;IAC9B,QAAQ,EAAE,+BAAoB;IAC9B,QAAQ,EAAE,+BAAoB;IAC9B,gBAAgB,EAAE,+CAA4B;IAC9C,OAAO,EAAE,iCAAuB;IAChC,GAAG,EAAE,qBAAe;IACpB,QAAQ,EAAE,uBAAiB;IAC3B,MAAM,EAAE,2BAAkB;IAC1B,MAAM,EAAE,2BAAkB;IAC1B,IAAI,EAAE,uBAAgB;IACtB,cAAc,EAAE,uBAAgB;IAChC,WAAW,EAAE,uBAAgB;IAC7B,cAAc,EAAE,8BAAuB;IACvC,UAAU,EAAE,2BAAmB;IAC/B,eAAe,EAAE,+BAAuB;IACxC,sBAAsB,EAAE,qCAA6B;IACrD,KAAK,EAAE,yBAAiB;IACxB,KAAK,EAAE,6BAAqB;IAC5B,MAAM,EAAE,yBAAkB;IAC1B,MAAM,EAAE,2BAAkB;IAC1B,MAAM,EAAE,2BAAkB;IAC1B,KAAK,EAAE,yBAAiB;IACxB,SAAS,EAAE,2BAAkB;IAC7B,iBAAiB,EAAE,yCAAyB;IAC5C,QAAQ,EAAE,+BAAoB;IAC9B,QAAQ,EAAE,+BAAoB;IAC9B,iBAAiB,EAAE,2CAA0B;IAC7C,KAAK,EAAE,yBAAiB;IACxB,QAAQ,EAAE,+BAAoB;IAC9B,IAAI,EAAE,uBAAgB;IACtB,KAAK,EAAE,yBAAiB;IACxB,YAAY,EAAE,iCAAqB;IACnC,kBAAkB,EAAE,kCAA0B;IAC9C,KAAK,EAAE,yBAAiB;CACzB,CAAA;AAED,SAAgB,sBAAsB,CAAC,QAAkB;IACvD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE;QAC9B,OAAO,gBAAgB,CAAC,QAAQ,CAAE,CAAA;KACnC;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAA;AACvD,CAAC;AAND,wDAMC;AAED,SAAgB,kBAAkB,CAChC,QAAkB,EAClB,OAAyB,EACzB,iBAAqC,EACrC,OAAgC;IAEhC,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAE5D,OAAO,IAAI,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;AAC/E,CAAC;AATD,gDASC;AAED,SAAgB,sBAAsB,CAAC,QAAkB,EAAE,YAA0B;IACnF,gBAAgB,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAA;AAC3C,CAAC;AAFD,wDAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mango.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/mango.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE3C,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,SAAS,CAAC,MAAM,SAAmC;CACpD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MangoRealTimeFeed = void 0;
|
|
4
|
+
const serum_1 = require("./serum");
|
|
5
|
+
class MangoRealTimeFeed extends serum_1.SerumRealTimeFeed {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.wssURL = 'wss://api.mango-bowl.com/v1/ws';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
exports.MangoRealTimeFeed = MangoRealTimeFeed;
|
|
12
|
+
//# sourceMappingURL=mango.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mango.js","sourceRoot":"","sources":["../../src/realtimefeeds/mango.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAE3C,MAAa,iBAAkB,SAAQ,yBAAiB;IAAxD;;QACY,WAAM,GAAG,gCAAgC,CAAA;IACrD,CAAC;CAAA;AAFD,8CAEC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import { Filter } from '../types';
|
|
2
2
|
import { RealTimeFeedBase } from './realtimefeed';
|
|
3
3
|
export declare class PoloniexRealTimeFeed extends RealTimeFeedBase {
|
|
4
|
-
protected readonly wssURL = "wss://
|
|
4
|
+
protected readonly wssURL = "wss://ws.poloniex.com/ws/public";
|
|
5
5
|
protected mapToSubscribeMessages(filters: Filter<string>[]): {
|
|
6
|
-
|
|
7
|
-
channel: string;
|
|
6
|
+
event: string;
|
|
7
|
+
channel: string[];
|
|
8
|
+
symbols: string[];
|
|
8
9
|
}[];
|
|
10
|
+
protected sendCustomPing: () => void;
|
|
11
|
+
protected messageIsHeartbeat(msg: any): boolean;
|
|
9
12
|
protected messageIsError(message: any): boolean;
|
|
10
13
|
}
|
|
11
14
|
//# sourceMappingURL=poloniex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poloniex.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/poloniex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,SAAS,CAAC,QAAQ,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"poloniex.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/poloniex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,qBAAa,oBAAqB,SAAQ,gBAAgB;IACxD,SAAS,CAAC,QAAQ,CAAC,MAAM,qCAAoC;IAE7D,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE;;;;;IAc1D,SAAS,CAAC,cAAc,aAIvB;IAED,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG;IAIrC,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;CAGhD"}
|
|
@@ -5,25 +5,30 @@ const realtimefeed_1 = require("./realtimefeed");
|
|
|
5
5
|
class PoloniexRealTimeFeed extends realtimefeed_1.RealTimeFeedBase {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
|
-
this.wssURL = 'wss://
|
|
8
|
+
this.wssURL = 'wss://ws.poloniex.com/ws/public';
|
|
9
|
+
this.sendCustomPing = () => {
|
|
10
|
+
this.send({
|
|
11
|
+
event: 'ping'
|
|
12
|
+
});
|
|
13
|
+
};
|
|
9
14
|
}
|
|
10
15
|
mapToSubscribeMessages(filters) {
|
|
11
|
-
|
|
16
|
+
return filters.flatMap((filter) => {
|
|
12
17
|
if (!filter.symbols || filter.symbols.length === 0) {
|
|
13
18
|
throw new Error('PoloniexRealTimeFeed requires explicitly specified symbols when subscribing to live feed');
|
|
14
19
|
}
|
|
15
|
-
return filter.symbols;
|
|
16
|
-
});
|
|
17
|
-
const uniqueSymbols = [...new Set(allSymbols)];
|
|
18
|
-
return uniqueSymbols.map((symbol) => {
|
|
19
20
|
return {
|
|
20
|
-
|
|
21
|
-
channel:
|
|
21
|
+
event: 'subscribe',
|
|
22
|
+
channel: [filter.channel],
|
|
23
|
+
symbols: filter.symbols
|
|
22
24
|
};
|
|
23
25
|
});
|
|
24
26
|
}
|
|
27
|
+
messageIsHeartbeat(msg) {
|
|
28
|
+
return msg.event === 'pong';
|
|
29
|
+
}
|
|
25
30
|
messageIsError(message) {
|
|
26
|
-
return message.
|
|
31
|
+
return message.event === 'error';
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
34
|
exports.PoloniexRealTimeFeed = PoloniexRealTimeFeed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"poloniex.js","sourceRoot":"","sources":["../../src/realtimefeeds/poloniex.ts"],"names":[],"mappings":";;;AACA,iDAAiD;AAEjD,MAAa,oBAAqB,SAAQ,+BAAgB;IAA1D;;QACqB,WAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"poloniex.js","sourceRoot":"","sources":["../../src/realtimefeeds/poloniex.ts"],"names":[],"mappings":";;;AACA,iDAAiD;AAEjD,MAAa,oBAAqB,SAAQ,+BAAgB;IAA1D;;QACqB,WAAM,GAAG,iCAAiC,CAAA;QAgBnD,mBAAc,GAAG,GAAG,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,MAAM;aACd,CAAC,CAAA;QACJ,CAAC,CAAA;IASH,CAAC;IA3BW,sBAAsB,CAAC,OAAyB;QACxD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YAChC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;gBAClD,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAA;aAC5G;YAED,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;gBACzB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAQS,kBAAkB,CAAC,GAAQ;QACnC,OAAO,GAAG,CAAC,KAAK,KAAK,MAAM,CAAA;IAC7B,CAAC;IAES,cAAc,CAAC,OAAY;QACnC,OAAO,OAAO,CAAC,KAAK,KAAK,OAAO,CAAA;IAClC,CAAC;CACF;AA9BD,oDA8BC"}
|
|
@@ -26,6 +26,7 @@ export declare abstract class RealTimeFeedBase implements RealTimeFeedIterable {
|
|
|
26
26
|
protected send(msg: any): void;
|
|
27
27
|
protected abstract mapToSubscribeMessages(filters: Filter<string>[]): any[];
|
|
28
28
|
protected abstract messageIsError(message: any): boolean;
|
|
29
|
+
protected sendCustomPing: (() => void) | undefined;
|
|
29
30
|
protected isIgnoredError(_message: any): boolean;
|
|
30
31
|
protected messageIsHeartbeat(_msg: any): boolean;
|
|
31
32
|
protected provideManualSnapshots(_filters: Filter<string>[], _shouldCancel: () => boolean): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"realtimefeed.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/realtimefeed.ts"],"names":[],"mappings":";;AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AAGvB,OAAO,EAAe,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAE3C,oBAAY,YAAY,GAAG;IACzB,KACE,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACzB,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,oBAAoB,CAAA;CACxB,CAAA;AAID,oBAAY,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;AAErD,8BAAsB,gBAAiB,YAAW,oBAAoB;IAgBlE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;IAEpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAlB5B,CAAC,MAAM,CAAC,aAAa,CAAC;IAItB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAA;IACtC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAC1C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAI;IAClD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAK;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,sBAAsB,CAAI;IAClC,OAAO,CAAC,GAAG,CAAC,CAAW;IACvB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,gBAAgB,CAA6C;gBAGhD,SAAS,EAAE,MAAM,EACpC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACR,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,QAAQ,CAAC,WAAU,KAAK,KAAK,IAAI,aAAA;YAoBrC,OAAO;IAkItB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;IAUvB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAE3E,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAExD,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG;IAItC,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG;cAItB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO;IAE/F,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG;cAEb,WAAW;IAE3B,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAA;IAE3C,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"realtimefeed.d.ts","sourceRoot":"","sources":["../../src/realtimefeeds/realtimefeed.ts"],"names":[],"mappings":";;AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AAGvB,OAAO,EAAe,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAG9C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAE3C,oBAAY,YAAY,GAAG;IACzB,KACE,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACzB,iBAAiB,EAAE,MAAM,GAAG,SAAS,EACrC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,oBAAoB,CAAA;CACxB,CAAA;AAID,oBAAY,oBAAoB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAA;AAErD,8BAAsB,gBAAiB,YAAW,oBAAoB;IAgBlE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;IAEpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAlB5B,CAAC,MAAM,CAAC,aAAa,CAAC;IAItB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAA;IACtC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IAC1C,SAAS,CAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAI;IAClD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAK;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,sBAAsB,CAAI;IAClC,OAAO,CAAC,GAAG,CAAC,CAAW;IACvB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,gBAAgB,CAA6C;gBAGhD,SAAS,EAAE,MAAM,EACpC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACR,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,QAAQ,CAAC,WAAU,KAAK,KAAK,IAAI,aAAA;YAoBrC,OAAO;IAkItB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG;IAUvB,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,EAAE;IAE3E,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO;IAExD,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAY;IAE9D,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG;IAItC,SAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,GAAG;cAItB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO;IAE/F,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG;cAEb,WAAW;IAE3B,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAA;IAE3C,OAAO,CAAC,yBAAyB;IAuBjC,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,yBAAyB,CAwChC;IAED,OAAO,CAAC,mBAAmB,CAE1B;CACF;AAED,8BAAsB,+BAAgC,YAAW,oBAAoB;IAEjF,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAHT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAC1B,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,QAAQ,CAAC,WAAU,KAAK,KAAK,IAAI,aAAA;IAGpD,CAAC,MAAM,CAAC,aAAa,CAAC;YAIP,OAAO;IA4BtB,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EACzB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAC/B,gBAAgB,CAAC,oBAAoB,CAAC;CAC1C;AAED,8BAAsB,iBAAkB,YAAW,oBAAoB;IAIvC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAAU,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAU,KAAK,KAAK,IAAI;IAHnI,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAA;IACtC,OAAO,CAAC,IAAI,CAAwC;gBAExC,QAAQ,EAAE,MAAM,EAAmB,uBAAuB,EAAE,MAAM,EAAqB,OAAO,CAAC,WAAU,KAAK,KAAK,IAAI,aAAA;IAInI,CAAC,MAAM,CAAC,aAAa,CAAC;IAItB,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAE5D,aAAa;YAqBZ,OAAO;CAsBvB"}
|
|
@@ -19,6 +19,7 @@ class RealTimeFeedBase {
|
|
|
19
19
|
this.manualSnapshotsBuffer = [];
|
|
20
20
|
this._receivedMessagesCount = 0;
|
|
21
21
|
this._connectionId = connectionCounter++;
|
|
22
|
+
this.sendCustomPing = undefined;
|
|
22
23
|
this._onConnectionEstabilished = async () => {
|
|
23
24
|
try {
|
|
24
25
|
const subscribeMessages = this.mapToSubscribeMessages(this._filters);
|
|
@@ -208,7 +209,12 @@ class RealTimeFeedBase {
|
|
|
208
209
|
if (this._ws === undefined || this._ws.readyState !== ws_1.default.OPEN) {
|
|
209
210
|
return;
|
|
210
211
|
}
|
|
211
|
-
this.
|
|
212
|
+
if (this.sendCustomPing !== undefined) {
|
|
213
|
+
this.sendCustomPing();
|
|
214
|
+
}
|
|
215
|
+
else {
|
|
216
|
+
this._ws.ping();
|
|
217
|
+
}
|
|
212
218
|
}, 5 * handy_1.ONE_SEC_IN_MS);
|
|
213
219
|
}
|
|
214
220
|
}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"realtimefeed.js","sourceRoot":"","sources":["../../src/realtimefeeds/realtimefeed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/consts.ts
CHANGED
|
@@ -39,6 +39,7 @@ export const EXCHANGES = [
|
|
|
39
39
|
'ascendex',
|
|
40
40
|
'dydx',
|
|
41
41
|
'serum',
|
|
42
|
+
'mango',
|
|
42
43
|
'huobi-dm-options',
|
|
43
44
|
'star-atlas'
|
|
44
45
|
] as const
|
|
@@ -338,7 +339,7 @@ const DELTA_CHANNELS = [
|
|
|
338
339
|
|
|
339
340
|
const GATE_IO_CHANNELS = ['trades', 'depth', 'ticker'] as const
|
|
340
341
|
const GATE_IO_FUTURES_CHANNELS = ['trades', 'order_book', 'tickers', 'book_ticker'] as const
|
|
341
|
-
const POLONIEX_CHANNELS = ['price_aggregated_book'] as const
|
|
342
|
+
const POLONIEX_CHANNELS = ['price_aggregated_book', 'trades', 'ticker', 'book_lv2'] as const
|
|
342
343
|
const UPBIT_CHANNELS = ['trade', 'orderbook', 'ticker'] as const
|
|
343
344
|
const ASCENDEX_CHANNELS = ['trades', 'depth-realtime', 'depth-snapshot-realtime', 'bbo', 'futures-pricing-data'] as const
|
|
344
345
|
const DYDX_CHANNELS = ['v3_trades', 'v3_orderbook', 'v3_markets'] as const
|
|
@@ -355,6 +356,19 @@ const SERUM_CHANNELS = [
|
|
|
355
356
|
'done'
|
|
356
357
|
] as const
|
|
357
358
|
|
|
359
|
+
const MANGO_CHANNELS = [
|
|
360
|
+
'recent_trades',
|
|
361
|
+
'trade',
|
|
362
|
+
'quote',
|
|
363
|
+
'l2snapshot',
|
|
364
|
+
'l2update',
|
|
365
|
+
'l3snapshot',
|
|
366
|
+
'open',
|
|
367
|
+
'fill',
|
|
368
|
+
'change',
|
|
369
|
+
'done'
|
|
370
|
+
] as const
|
|
371
|
+
|
|
358
372
|
const HUOBI_DM_OPTIONS_CHANNELS = ['trade', 'detail', 'depth', 'bbo', 'open_interest', 'option_market_index', 'option_index'] as const
|
|
359
373
|
|
|
360
374
|
export const EXCHANGE_CHANNELS_INFO = {
|
|
@@ -399,5 +413,6 @@ export const EXCHANGE_CHANNELS_INFO = {
|
|
|
399
413
|
dydx: DYDX_CHANNELS,
|
|
400
414
|
serum: SERUM_CHANNELS,
|
|
401
415
|
'star-atlas': SERUM_CHANNELS,
|
|
402
|
-
'huobi-dm-options': HUOBI_DM_OPTIONS_CHANNELS
|
|
416
|
+
'huobi-dm-options': HUOBI_DM_OPTIONS_CHANNELS,
|
|
417
|
+
mango: MANGO_CHANNELS
|
|
403
418
|
}
|
package/src/mappers/index.ts
CHANGED
|
@@ -83,7 +83,7 @@ import {
|
|
|
83
83
|
OkexV5TradesMapper
|
|
84
84
|
} from './okex'
|
|
85
85
|
import { phemexBookChangeMapper, PhemexDerivativeTickerMapper, phemexTradesMapper } from './phemex'
|
|
86
|
-
import { PoloniexBookChangeMapper, PoloniexTradesMapper } from './poloniex'
|
|
86
|
+
import { PoloniexBookChangeMapper, PoloniexTradesMapper, PoloniexV2BookChangeMapper, PoloniexV2TradesMapper } from './poloniex'
|
|
87
87
|
import { SerumBookChangeMapper, SerumBookTickerMapper, SerumTradesMapper } from './serum'
|
|
88
88
|
import { UpbitBookChangeMapper, UpbitTradesMapper } from './upbit'
|
|
89
89
|
|
|
@@ -108,6 +108,12 @@ const canUseOkexTbtBookTicker = (localTimestamp: Date) => {
|
|
|
108
108
|
return isRealTime(localTimestamp) || localTimestamp.valueOf() >= OKEX_V5_TBT_BOOK_TICKER_RELEASE_DATE.valueOf()
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
const POLONIEX_V2_API_SWITCH_DATE = new Date('2022-08-02T00:00:00.000Z')
|
|
112
|
+
|
|
113
|
+
const shouldUsePoloniexV2Mappers = (localTimestamp: Date) => {
|
|
114
|
+
return isRealTime(localTimestamp) || localTimestamp.valueOf() >= POLONIEX_V2_API_SWITCH_DATE.valueOf()
|
|
115
|
+
}
|
|
116
|
+
|
|
111
117
|
const tradesMappers = {
|
|
112
118
|
bitmex: () => bitmexTradesMapper,
|
|
113
119
|
binance: () => new BinanceTradesMapper('binance'),
|
|
@@ -151,14 +157,16 @@ const tradesMappers = {
|
|
|
151
157
|
delta: (localTimestamp: Date) => new DeltaTradesMapper(localTimestamp.valueOf() >= new Date('2020-10-14').valueOf()),
|
|
152
158
|
'gate-io': () => new GateIOTradesMapper('gate-io'),
|
|
153
159
|
'gate-io-futures': () => new GateIOFuturesTradesMapper('gate-io-futures'),
|
|
154
|
-
poloniex: () =>
|
|
160
|
+
poloniex: (localTimestamp: Date) =>
|
|
161
|
+
shouldUsePoloniexV2Mappers(localTimestamp) ? new PoloniexV2TradesMapper() : new PoloniexTradesMapper(),
|
|
155
162
|
coinflex: () => coinflexTradesMapper,
|
|
156
163
|
'binance-options': () => new BinanceOptionsTradesMapper(),
|
|
157
164
|
upbit: () => new UpbitTradesMapper(),
|
|
158
165
|
ascendex: () => new AscendexTradesMapper(),
|
|
159
166
|
dydx: () => new DydxTradesMapper(),
|
|
160
167
|
serum: () => new SerumTradesMapper('serum'),
|
|
161
|
-
'star-atlas': () => new SerumTradesMapper('star-atlas')
|
|
168
|
+
'star-atlas': () => new SerumTradesMapper('star-atlas'),
|
|
169
|
+
mango: () => new SerumTradesMapper('mango')
|
|
162
170
|
}
|
|
163
171
|
|
|
164
172
|
const bookChangeMappers = {
|
|
@@ -217,14 +225,16 @@ const bookChangeMappers = {
|
|
|
217
225
|
delta: () => deltaBookChangeMapper,
|
|
218
226
|
'gate-io': () => new GateIOBookChangeMapper('gate-io'),
|
|
219
227
|
'gate-io-futures': () => new GateIOFuturesBookChangeMapper('gate-io-futures'),
|
|
220
|
-
poloniex: () =>
|
|
228
|
+
poloniex: (localTimestamp: Date) =>
|
|
229
|
+
shouldUsePoloniexV2Mappers(localTimestamp) ? new PoloniexV2BookChangeMapper() : new PoloniexBookChangeMapper(),
|
|
221
230
|
coinflex: () => coinflexBookChangeMapper,
|
|
222
231
|
'binance-options': () => new BinanceOptionsBookChangeMapper(),
|
|
223
232
|
upbit: () => new UpbitBookChangeMapper(),
|
|
224
233
|
ascendex: () => new AscendexBookChangeMapper(),
|
|
225
234
|
dydx: () => new DydxBookChangeMapper(),
|
|
226
235
|
serum: () => new SerumBookChangeMapper('serum'),
|
|
227
|
-
'star-atlas': () => new SerumBookChangeMapper('star-atlas')
|
|
236
|
+
'star-atlas': () => new SerumBookChangeMapper('star-atlas'),
|
|
237
|
+
mango: () => new SerumBookChangeMapper('mango')
|
|
228
238
|
}
|
|
229
239
|
|
|
230
240
|
const derivativeTickersMappers = {
|
|
@@ -327,6 +337,7 @@ const bookTickersMappers = {
|
|
|
327
337
|
okcoin: () => new OkexBookTickerMapper('okcoin', 'spot'),
|
|
328
338
|
serum: () => new SerumBookTickerMapper('serum'),
|
|
329
339
|
'star-atlas': () => new SerumBookTickerMapper('star-atlas'),
|
|
340
|
+
mango: () => new SerumBookTickerMapper('mango'),
|
|
330
341
|
'gate-io-futures': () => new GateIOFuturesBookTickerMapper('gate-io-futures')
|
|
331
342
|
}
|
|
332
343
|
|
package/src/mappers/poloniex.ts
CHANGED
|
@@ -2,12 +2,87 @@ import { upperCaseSymbols } from '../handy'
|
|
|
2
2
|
import { BookChange, Trade } from '../types'
|
|
3
3
|
import { Mapper } from './mapper'
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
export class PoloniexV2TradesMapper implements Mapper<'poloniex', Trade> {
|
|
6
|
+
canHandle(message: any) {
|
|
7
|
+
return message.channel === 'trades' && message.data !== undefined && message.data.length > 0
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
getFilters(symbols?: string[]) {
|
|
11
|
+
symbols = upperCaseSymbols(symbols)
|
|
12
|
+
|
|
13
|
+
return [
|
|
14
|
+
{
|
|
15
|
+
channel: 'trades',
|
|
16
|
+
symbols
|
|
17
|
+
} as const
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
*map(message: PoloniexV2TradesMessage, localTimestamp: Date): IterableIterator<Trade> {
|
|
22
|
+
for (const item of message.data) {
|
|
23
|
+
yield {
|
|
24
|
+
type: 'trade',
|
|
25
|
+
symbol: item.symbol,
|
|
26
|
+
exchange: 'poloniex',
|
|
27
|
+
id: item.id,
|
|
28
|
+
price: Number(item.price),
|
|
29
|
+
amount: Number(item.quantity),
|
|
30
|
+
side: item.takerSide === 'sell' ? 'sell' : 'buy',
|
|
31
|
+
timestamp: new Date(item.createTime),
|
|
32
|
+
localTimestamp: localTimestamp
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const mapBookLevelV2 = (level: [string, string]) => {
|
|
39
|
+
return {
|
|
40
|
+
price: Number(level[0]),
|
|
41
|
+
amount: Number(level[1])
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class PoloniexV2BookChangeMapper implements Mapper<'poloniex', BookChange> {
|
|
45
|
+
canHandle(message: any) {
|
|
46
|
+
return message.channel === 'book_lv2' && message.data !== undefined && message.data.length > 0
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
getFilters(symbols?: string[]) {
|
|
50
|
+
symbols = upperCaseSymbols(symbols)
|
|
51
|
+
|
|
52
|
+
return [
|
|
53
|
+
{
|
|
54
|
+
channel: 'book_lv2',
|
|
55
|
+
symbols
|
|
56
|
+
} as const
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
*map(message: PoloniexV2BookMessage, localTimestamp: Date): IterableIterator<BookChange> {
|
|
61
|
+
for (const item of message.data) {
|
|
62
|
+
const bookSnapshot: BookChange = {
|
|
63
|
+
type: 'book_change',
|
|
64
|
+
symbol: item.symbol,
|
|
65
|
+
exchange: 'poloniex',
|
|
66
|
+
isSnapshot: message.action === 'snapshot',
|
|
67
|
+
bids: item.bids.map(mapBookLevelV2),
|
|
68
|
+
asks: item.asks.map(mapBookLevelV2),
|
|
69
|
+
timestamp: new Date(item.ts),
|
|
70
|
+
localTimestamp: localTimestamp
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
yield bookSnapshot
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
6
77
|
|
|
7
78
|
export class PoloniexTradesMapper implements Mapper<'poloniex', Trade> {
|
|
8
79
|
private readonly _channelIdToSymbolMap: Map<number, string> = new Map()
|
|
9
80
|
|
|
10
81
|
canHandle(message: PoloniexPriceAggreatedMessage) {
|
|
82
|
+
if (Array.isArray(message) === false) {
|
|
83
|
+
return false
|
|
84
|
+
}
|
|
85
|
+
|
|
11
86
|
if (message.length < 3) {
|
|
12
87
|
return false
|
|
13
88
|
}
|
|
@@ -80,6 +155,10 @@ export class PoloniexBookChangeMapper implements Mapper<'poloniex', BookChange>
|
|
|
80
155
|
private readonly _channelIdToSymbolMap: Map<number, string> = new Map()
|
|
81
156
|
|
|
82
157
|
canHandle(message: PoloniexPriceAggreatedMessage) {
|
|
158
|
+
if (Array.isArray(message) === false) {
|
|
159
|
+
return false
|
|
160
|
+
}
|
|
161
|
+
|
|
83
162
|
if (message.length < 3) {
|
|
84
163
|
return false
|
|
85
164
|
}
|
|
@@ -153,3 +232,57 @@ type PoloniexBookUpdate = ['o', 0 | 1, string, string]
|
|
|
153
232
|
type PoloniexTrade = ['t', string, 1 | 0, string, string, number]
|
|
154
233
|
|
|
155
234
|
type PoloniexPriceAggreatedMessage = [number, number, (PoloniexBookSnapshot | PoloniexBookUpdate | PoloniexTrade)[], string?]
|
|
235
|
+
|
|
236
|
+
type PoloniexV2SubscribeMessage = {
|
|
237
|
+
event: 'subscribe'
|
|
238
|
+
channel: 'trades'
|
|
239
|
+
symbols: string[]
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
type PoloniexV2TradesMessage = {
|
|
243
|
+
channel: 'trades'
|
|
244
|
+
data: [
|
|
245
|
+
{
|
|
246
|
+
symbol: 'USDD_USDT'
|
|
247
|
+
amount: '53.17153856'
|
|
248
|
+
quantity: '53.0866'
|
|
249
|
+
takerSide: 'sell'
|
|
250
|
+
createTime: 1659916859838
|
|
251
|
+
price: '1.0016'
|
|
252
|
+
id: '60100203'
|
|
253
|
+
ts: 1659916859843
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
type PoloniexV2BookMessage =
|
|
259
|
+
| {
|
|
260
|
+
channel: 'book_lv2'
|
|
261
|
+
data: [
|
|
262
|
+
{
|
|
263
|
+
symbol: 'AAVE_BTC'
|
|
264
|
+
createTime: 1659916859818
|
|
265
|
+
asks: [string, string][]
|
|
266
|
+
bids: [string, string][]
|
|
267
|
+
lastId: 20251
|
|
268
|
+
id: 20252
|
|
269
|
+
ts: 1659916859824
|
|
270
|
+
}
|
|
271
|
+
]
|
|
272
|
+
action: 'update'
|
|
273
|
+
}
|
|
274
|
+
| {
|
|
275
|
+
channel: 'book_lv2'
|
|
276
|
+
data: [
|
|
277
|
+
{
|
|
278
|
+
symbol: 'AAVE_BTC'
|
|
279
|
+
createTime: 1659900600092
|
|
280
|
+
asks: [string, string][]
|
|
281
|
+
bids: [string, string][]
|
|
282
|
+
lastId: 85
|
|
283
|
+
id: 86
|
|
284
|
+
ts: 1659916800614
|
|
285
|
+
}
|
|
286
|
+
]
|
|
287
|
+
action: 'snapshot'
|
|
288
|
+
}
|
package/src/mappers/serum.ts
CHANGED
|
@@ -31,8 +31,8 @@ export class SerumTradesMapper implements Mapper<'serum' | 'star-atlas', Trade>
|
|
|
31
31
|
price: Number(message.price),
|
|
32
32
|
amount: Number(message.size),
|
|
33
33
|
side: message.side,
|
|
34
|
-
timestamp: new Date(message.timestamp),
|
|
35
|
-
localTimestamp
|
|
34
|
+
timestamp: message.eventTimestamp !== undefined ? new Date(message.eventTimestamp) : new Date(message.timestamp),
|
|
35
|
+
localTimestamp
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
}
|
|
@@ -118,17 +118,31 @@ export class SerumBookTickerMapper implements Mapper<'serum' | 'star-atlas', Boo
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
type SerumVialTrade =
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
121
|
+
type SerumVialTrade =
|
|
122
|
+
| {
|
|
123
|
+
type: 'trade'
|
|
124
|
+
market: 'RAY/USDT'
|
|
125
|
+
timestamp: '2021-05-22T00:00:59.448Z'
|
|
126
|
+
slot: 79469377
|
|
127
|
+
version: 3
|
|
128
|
+
id: '96845406386975144808722|185.8|1621641659448'
|
|
129
|
+
side: 'buy'
|
|
130
|
+
price: '5.235'
|
|
131
|
+
size: '185.8'
|
|
132
|
+
eventTimestamp: undefined
|
|
133
|
+
}
|
|
134
|
+
| {
|
|
135
|
+
type: 'trade'
|
|
136
|
+
market: string
|
|
137
|
+
timestamp: string
|
|
138
|
+
slot: number
|
|
139
|
+
version: number
|
|
140
|
+
id: string
|
|
141
|
+
side: 'buy' | 'sell'
|
|
142
|
+
price: string
|
|
143
|
+
size: string
|
|
144
|
+
eventTimestamp: string
|
|
145
|
+
}
|
|
132
146
|
|
|
133
147
|
type SerumVialPriceLevel = [string, string]
|
|
134
148
|
|
|
@@ -40,6 +40,7 @@ import { AscendexRealTimeFeed } from './ascendex'
|
|
|
40
40
|
import { DydxRealTimeFeed } from './dydx'
|
|
41
41
|
import { SerumRealTimeFeed } from './serum'
|
|
42
42
|
import { StarAtlasRealTimeFeed } from './staratlas'
|
|
43
|
+
import { MangoRealTimeFeed } from './mango'
|
|
43
44
|
|
|
44
45
|
export * from './realtimefeed'
|
|
45
46
|
|
|
@@ -87,7 +88,8 @@ const realTimeFeedsMap: {
|
|
|
87
88
|
dydx: DydxRealTimeFeed,
|
|
88
89
|
serum: SerumRealTimeFeed,
|
|
89
90
|
'star-atlas': StarAtlasRealTimeFeed,
|
|
90
|
-
'huobi-dm-options': HuobiDMOptionsRealTimeFeed
|
|
91
|
+
'huobi-dm-options': HuobiDMOptionsRealTimeFeed,
|
|
92
|
+
mango: MangoRealTimeFeed
|
|
91
93
|
}
|
|
92
94
|
|
|
93
95
|
export function getRealTimeFeedFactory(exchange: Exchange): RealTimeFeed {
|
|
@@ -2,27 +2,33 @@ import { Filter } from '../types'
|
|
|
2
2
|
import { RealTimeFeedBase } from './realtimefeed'
|
|
3
3
|
|
|
4
4
|
export class PoloniexRealTimeFeed extends RealTimeFeedBase {
|
|
5
|
-
protected readonly wssURL = 'wss://
|
|
5
|
+
protected readonly wssURL = 'wss://ws.poloniex.com/ws/public'
|
|
6
6
|
|
|
7
7
|
protected mapToSubscribeMessages(filters: Filter<string>[]) {
|
|
8
|
-
|
|
8
|
+
return filters.flatMap((filter) => {
|
|
9
9
|
if (!filter.symbols || filter.symbols.length === 0) {
|
|
10
10
|
throw new Error('PoloniexRealTimeFeed requires explicitly specified symbols when subscribing to live feed')
|
|
11
11
|
}
|
|
12
|
-
return filter.symbols
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
const uniqueSymbols = [...new Set(allSymbols)]
|
|
16
12
|
|
|
17
|
-
return uniqueSymbols.map((symbol) => {
|
|
18
13
|
return {
|
|
19
|
-
|
|
20
|
-
channel:
|
|
14
|
+
event: 'subscribe',
|
|
15
|
+
channel: [filter.channel],
|
|
16
|
+
symbols: filter.symbols
|
|
21
17
|
}
|
|
22
18
|
})
|
|
23
19
|
}
|
|
24
20
|
|
|
21
|
+
protected sendCustomPing = () => {
|
|
22
|
+
this.send({
|
|
23
|
+
event: 'ping'
|
|
24
|
+
})
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
protected messageIsHeartbeat(msg: any) {
|
|
28
|
+
return msg.event === 'pong'
|
|
29
|
+
}
|
|
30
|
+
|
|
25
31
|
protected messageIsError(message: any): boolean {
|
|
26
|
-
return message.
|
|
32
|
+
return message.event === 'error'
|
|
27
33
|
}
|
|
28
34
|
}
|
|
@@ -202,6 +202,8 @@ export abstract class RealTimeFeedBase implements RealTimeFeedIterable {
|
|
|
202
202
|
|
|
203
203
|
protected abstract messageIsError(message: any): boolean
|
|
204
204
|
|
|
205
|
+
protected sendCustomPing: (() => void) | undefined = undefined
|
|
206
|
+
|
|
205
207
|
protected isIgnoredError(_message: any) {
|
|
206
208
|
return false
|
|
207
209
|
}
|
|
@@ -247,7 +249,11 @@ export abstract class RealTimeFeedBase implements RealTimeFeedIterable {
|
|
|
247
249
|
return
|
|
248
250
|
}
|
|
249
251
|
|
|
250
|
-
this.
|
|
252
|
+
if (this.sendCustomPing !== undefined) {
|
|
253
|
+
this.sendCustomPing()
|
|
254
|
+
} else {
|
|
255
|
+
this._ws.ping()
|
|
256
|
+
}
|
|
251
257
|
}, 5 * ONE_SEC_IN_MS)
|
|
252
258
|
}
|
|
253
259
|
|