diff --git a/ts/src/base/Exchange.ts b/ts/src/base/Exchange.ts index 77ca1e39d81a1..3e94f377f5333 100644 --- a/ts/src/base/Exchange.ts +++ b/ts/src/base/Exchange.ts @@ -1404,6 +1404,10 @@ export default class Exchange { this.clients = this.clients || {}; if (!this.clients[url]) { const onMessage = this.handleMessage.bind (this); + const onMessageWithStream = (client, message)=> { + this.streamProduce ('raw', message); + return onMessage (client, message); + }; const onError = this.onError.bind (this); const onClose = this.onClose.bind (this); const onConnected = this.onConnected.bind (this); @@ -1426,7 +1430,12 @@ export default class Exchange { 'agent': finalAgent, } }, wsOptions); - this.clients[url] = new WsClient (url, onMessage, onError, onClose, onConnected, options); + this.clients[url] = new WsClient (url, onMessageWithStream, onError, onClose, onConnected, options); + const originalResolve = this.clients[url].resolve; + this.clients[url].resolve = (result, messageHash) => { + this.streamProduceHook (result, messageHash); + return originalResolve (result, messageHash); + }; } return this.clients[url]; } @@ -1781,6 +1790,25 @@ export default class Exchange { // ------------------------------------------------------------------------ // METHODS BELOW THIS LINE ARE TRANSPILED FROM JAVASCRIPT TO PYTHON AND PHP + streamProduceHook (result, messageHash) { + const parts = messageHash.split (':'); + const targetName = parts[0]; + const targetNameLower = targetName.toLowerCase (); + if (targetNameLower.indexOf ('orderbook') >= 0) { + this.streamProduce ('orderbooks', result); + } else if (targetNameLower.indexOf ('ticker') >= 0) { + this.streamProduce ('tickers', result); + } else if (targetNameLower.indexOf ('order') >= 0) { + this.streamProduce ('orders', result); + } else if (targetNameLower.indexOf ('position') >= 0) { + this.streamProduce ('positions', result); + } else if (targetNameLower.indexOf ('mytrade') >= 0) { + this.streamProduce ('myTrades', result); + } else if (targetNameLower.indexOf ('trade') >= 0) { + this.streamProduce ('trades', result); + } + } + setupStream () { const stream = this.stream; if (this.stream !== undefined) { diff --git a/ts/src/pro/alpaca.ts b/ts/src/pro/alpaca.ts index 618ed531b8a09..2f3cd6f53f383 100644 --- a/ts/src/pro/alpaca.ts +++ b/ts/src/pro/alpaca.ts @@ -86,7 +86,6 @@ export default class alpaca extends alpacaRest { const symbol = ticker['symbol']; const messageHash = 'ticker:' + symbol; this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (this.tickers[symbol], messageHash); } @@ -318,7 +317,6 @@ export default class alpaca extends alpacaRest { } const parsed = this.parseTrade (message); stored.append (parsed); - this.streamProduce ('myTrades', parsed); const messageHash = 'trade' + ':' + symbol; client.resolve (stored, messageHash); } @@ -677,7 +675,6 @@ export default class alpaca extends alpacaRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (Array.isArray (message)) { this.handleCryptoMessage (client, message); return; diff --git a/ts/src/pro/ascendex.ts b/ts/src/pro/ascendex.ts index 13050572d33f3..d4bdb1908bcde 100644 --- a/ts/src/pro/ascendex.ts +++ b/ts/src/pro/ascendex.ts @@ -201,7 +201,6 @@ export default class ascendex extends ascendexRest { } for (let i = 0; i < trades.length; i++) { tradesArray.append (trades[i]); - this.streamProduce ('trades', trades[i]); } this.trades[symbol] = tradesArray; client.resolve (tradesArray, messageHash); @@ -489,7 +488,6 @@ export default class ascendex extends ascendexRest { } } const messageHash = 'balance' + ':' + type; - this.streamProduce ('balances', this.safeBalance (result)); client.resolve (this.safeBalance (result), messageHash); } @@ -742,7 +740,6 @@ export default class ascendex extends ascendexRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/binance.ts b/ts/src/pro/binance.ts index a5f477a01318f..425f367ed2899 100644 --- a/ts/src/pro/binance.ts +++ b/ts/src/pro/binance.ts @@ -137,7 +137,7 @@ export default class binance extends binanceRest { return newValue; } - streamId (type, subscriptionHash, numSubscriptions = 1) { + stream (type, subscriptionHash, numSubscriptions = 1) { const streamBySubscriptionsHash = this.safeValue (this.options, 'streamBySubscriptionsHash', {}); let stream = this.safeString (streamBySubscriptionsHash, subscriptionHash); if (stream === undefined) { @@ -252,7 +252,7 @@ export default class binance extends binanceRest { subParams.push (symbolHash); } const messageHashesLength = messageHashes.length; - const url = this.urls['api']['ws'][type] + '/' + this.streamId (type, streamHash, messageHashesLength); + const url = this.urls['api']['ws'][type] + '/' + this.stream (type, streamHash, messageHashesLength); const requestId = this.requestId (url); const request = { 'method': 'SUBSCRIBE', @@ -321,12 +321,10 @@ export default class binance extends binanceRest { } } this.orderbooks[symbol] = orderbook; - this.streamProduce ('orderbooks', orderbook); client.resolve (orderbook, messageHash); } catch (e) { delete client.subscriptions[messageHash]; client.reject (e, messageHash); - this.streamProduce ('orderbooks', undefined, e); } } @@ -418,7 +416,6 @@ export default class binance extends binanceRest { if (conditional) { this.handleOrderBookMessage (client, message, orderbook); if (nonce < orderbook['nonce']) { - this.streamProduce ('orderbooks', orderbook); client.resolve (orderbook, messageHash); } } else { @@ -435,7 +432,6 @@ export default class binance extends binanceRest { if ((U <= orderbook['nonce']) || (pu === orderbook['nonce'])) { this.handleOrderBookMessage (client, message, orderbook); if (nonce <= orderbook['nonce']) { - this.streamProduce ('orderbooks', orderbook); client.resolve (orderbook, messageHash); } } else { @@ -448,8 +444,6 @@ export default class binance extends binanceRest { delete this.orderbooks[symbol]; delete client.subscriptions[messageHash]; client.reject (e, messageHash); - this.streamProduce ('orderbooks', undefined, e); - this.streamProduce ('orderbooks::' + symbol, undefined, e); } } } @@ -527,7 +521,7 @@ export default class binance extends binanceRest { } const query = this.omit (params, 'type'); const subParamsLength = subParams.length; - const url = this.urls['api']['ws'][type] + '/' + this.streamId (type, streamHash, subParamsLength); + const url = this.urls['api']['ws'][type] + '/' + this.stream (type, streamHash, subParamsLength); const requestId = this.requestId (url); const request = { 'method': 'SUBSCRIBE', @@ -741,7 +735,6 @@ export default class binance extends binanceRest { tradesArray = new ArrayCache (limit); } tradesArray.append (trade); - this.streamProduce ('trades', trade); this.trades[symbol] = tradesArray; client.resolve (tradesArray, messageHash); } @@ -775,7 +768,7 @@ export default class binance extends binanceRest { if (market['contract']) { type = market['linear'] ? 'future' : 'delivery'; } - const url = this.urls['api']['ws'][type] + '/' + this.streamId (type, messageHash); + const url = this.urls['api']['ws'][type] + '/' + this.stream (type, messageHash); const requestId = this.requestId (url); const request = { 'method': 'SUBSCRIBE', @@ -857,8 +850,6 @@ export default class binance extends binanceRest { this.ohlcvs[symbol][timeframe] = stored; } stored.append (parsed); - this.streamProduce ('ohlcv', parsed); - this.streamProduce ('ohlcv::' + symbol + '::' + timeframe, parsed); client.resolve (stored, messageHash); } @@ -974,7 +965,7 @@ export default class binance extends binanceRest { name = this.safeString (params, 'name', name); params = this.omit (params, 'name'); const messageHash = marketId + '@' + name; - const url = this.urls['api']['ws'][type] + '/' + this.streamId (type, messageHash); + const url = this.urls['api']['ws'][type] + '/' + this.stream (type, messageHash); const requestId = this.requestId (url); const request = { 'method': 'SUBSCRIBE', @@ -1036,7 +1027,7 @@ export default class binance extends binanceRest { '!' + name + '@arr', ]; } - const url = this.urls['api']['ws'][type] + '/' + this.streamId (type, messageHash); + const url = this.urls['api']['ws'][type] + '/' + this.stream (type, messageHash); const requestId = this.requestId (url); const request = { 'method': 'SUBSCRIBE', @@ -1181,7 +1172,6 @@ export default class binance extends binanceRest { const symbol = result['symbol']; this.tickers[symbol] = result; client.resolve (result, messageHash); - this.streamProduce ('tickers', result); if (event === 'bookTicker') { // watch bookTickers client.resolve (result, '!' + 'bookTicker@arr'); @@ -1214,7 +1204,6 @@ export default class binance extends binanceRest { const symbol = result['symbol']; this.tickers[symbol] = result; newTickers[symbol] = result; - this.streamProduce ('tickers', result); } const messageHashes = this.findMessageHashes (client, 'tickers::'); for (let i = 0; i < messageHashes.length; i++) { @@ -1363,7 +1352,6 @@ export default class binance extends binanceRest { for (let i = 0; i < messageHashes.length; i++) { const messageHash = messageHashes[i]; client.reject (error, messageHash); - this.streamProduce ('errors', undefined, error); } this.options[type] = this.extend (options, { 'listenKey': undefined, @@ -1420,7 +1408,6 @@ export default class binance extends binanceRest { // don't remove the future from the .futures cache const future = client.futures[messageHash]; future.resolve (); - this.streamProduce ('balances', this.balance[type]); client.resolve (this.balance[type], type + ':balance'); } @@ -1504,7 +1491,6 @@ export default class binance extends binanceRest { const messageHash = this.safeString (message, 'id'); const result = this.safeValue (message, 'result', {}); const parsedBalances = this.parseBalance (result); - this.streamProduce ('balances', parsedBalances); client.resolve (parsedBalances, messageHash); } @@ -1651,7 +1637,6 @@ export default class binance extends binanceRest { this.balance[accountType]['timestamp'] = timestamp; this.balance[accountType]['datetime'] = this.iso8601 (timestamp); this.balance[accountType] = this.safeBalance (this.balance[accountType]); - this.streamProduce ('balances', this.balance[accountType]); client.resolve (this.balance[accountType], messageHash); } @@ -1774,7 +1759,6 @@ export default class binance extends binanceRest { const messageHash = this.safeString (message, 'id'); const result = this.safeValue (message, 'result', {}); const order = this.parseOrder (result); - this.streamProduce ('orders', order); client.resolve (order, messageHash); } @@ -2546,7 +2530,6 @@ export default class binance extends binanceRest { const contracts = this.safeNumber (position, 'contracts', 0); if (contracts > 0) { cache.append (position); - this.streamProduce ('positions', position); } } // don't remove the future from the .futures cache @@ -2605,7 +2588,6 @@ export default class binance extends binanceRest { position['datetime'] = this.iso8601 (timestamp); newPositions.push (position); cache.append (position); - this.streamProduce ('positions', position); } const messageHashes = this.findMessageHashes (client, accountType + ':positions::'); for (let i = 0; i < messageHashes.length; i++) { @@ -2819,9 +2801,6 @@ export default class binance extends binanceRest { const messageHash = this.safeString (message, 'id'); const result = this.safeValue (message, 'result', []); const trades = this.parseTrades (result); - for (let i = 0; i < trades.length; i++) { - this.streamProduce ('myTrades', trades[i]); - } client.resolve (trades, messageHash); } @@ -2940,7 +2919,6 @@ export default class binance extends binanceRest { } const myTrades = this.myTrades; myTrades.append (trade); - this.streamProduce ('myTrades'); client.resolve (this.myTrades, messageHash); const messageHashSymbol = messageHash + ':' + symbol; client.resolve (this.myTrades, messageHashSymbol); @@ -2978,7 +2956,6 @@ export default class binance extends binanceRest { cachedOrders.append (parsed); const messageHash = 'orders'; const symbolSpecificMessageHash = 'orders:' + symbol; - this.streamProduce ('orders', parsed); client.resolve (cachedOrders, messageHash); client.resolve (cachedOrders, symbolSpecificMessageHash); } @@ -3010,7 +2987,6 @@ export default class binance extends binanceRest { rejected = true; // private endpoint uses id as messageHash client.reject (e, id); - this.streamProduce ('errors', undefined, error); // public endpoint stores messageHash in subscriptios const subscriptionKeys = Object.keys (client.subscriptions); for (let i = 0; i < subscriptionKeys.length; i++) { @@ -3018,24 +2994,20 @@ export default class binance extends binanceRest { const subscriptionId = this.safeString (client.subscriptions[subscriptionHash], 'id'); if (id === subscriptionId) { client.reject (e, subscriptionHash); - this.streamProduce ('errors', undefined, error); } } } if (!rejected) { client.reject (message, id); - this.streamProduce ('errors', undefined, error); } // reset connection if 5xx error if (this.safeString (code, 0) === '5') { client.reset (message); - this.streamProduce ('errors', undefined, message); } } handleMessage (client: Client, message) { // handle WebSocketAPI - this.streamProduce ('raw', message); const status = this.safeString (message, 'status'); const error = this.safeValue (message, 'error'); if ((error !== undefined) || (status !== undefined && status !== '200')) { diff --git a/ts/src/pro/bingx.ts b/ts/src/pro/bingx.ts index 7fed7a8a046fb..fa742f12ee4fa 100644 --- a/ts/src/pro/bingx.ts +++ b/ts/src/pro/bingx.ts @@ -170,7 +170,6 @@ export default class bingx extends bingxRest { const ticker = this.parseWsTicker (data, market); this.tickers[symbol] = ticker; const messageHash = market['id'] + '@ticker'; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -342,7 +341,6 @@ export default class bingx extends bingxRest { } for (let j = 0; j < trades.length; j++) { stored.append (trades[j]); - this.streamProduce ('trades', trades[j]); } client.resolve (stored, messageHash); } @@ -1084,7 +1082,6 @@ export default class bingx extends bingxRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (!this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/bitfinex.ts b/ts/src/pro/bitfinex.ts index e7ce6f72c1adf..e51566b7fc37a 100644 --- a/ts/src/pro/bitfinex.ts +++ b/ts/src/pro/bitfinex.ts @@ -128,7 +128,6 @@ export default class bitfinex extends bitfinexRest { const trades = this.parseTrades (data, market); for (let i = 0; i < trades.length; i++) { stored.append (trades[i]); - this.streamProduce ('trades', trades[i]); } } else { const second = this.safeString (message, 1); @@ -137,7 +136,6 @@ export default class bitfinex extends bitfinexRest { } const trade = this.parseTrade (message, market); stored.append (trade); - this.streamProduce ('trades', trade); } client.resolve (stored, messageHash); } @@ -251,7 +249,6 @@ export default class bitfinex extends bitfinexRest { 'info': message, }; this.tickers[symbol] = result; - this.streamProduce ('tickers', result); client.resolve (result, messageHash); } @@ -628,7 +625,6 @@ export default class bitfinex extends bitfinexRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (Array.isArray (message)) { const channelId = this.safeString (message, 0); // diff --git a/ts/src/pro/bitfinex2.ts b/ts/src/pro/bitfinex2.ts index 0352e892a6479..1b4c3673a5b84 100644 --- a/ts/src/pro/bitfinex2.ts +++ b/ts/src/pro/bitfinex2.ts @@ -338,7 +338,6 @@ export default class bitfinex2 extends bitfinex2Rest { const index = length - i - 1; const parsed = this.parseWsTrade (trades[index], market); stored.append (parsed); - this.streamProduce ('trades', parsed); } } else { // update @@ -350,7 +349,6 @@ export default class bitfinex2 extends bitfinex2Rest { } const trade = this.safeValue (message, 2, []); const parsed = this.parseWsTrade (trade, market); - this.streamProduce ('trades', parsed); stored.append (parsed); } client.resolve (stored, messageHash); @@ -484,7 +482,6 @@ export default class bitfinex2 extends bitfinex2Rest { const channel = 'ticker'; const messageHash = channel + ':' + marketId; this.tickers[symbol] = parsed; - this.streamProduce ('tickers', parsed); client.resolve (parsed, messageHash); } @@ -1100,7 +1097,6 @@ export default class bitfinex2 extends bitfinex2Rest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const channelId = this.safeString (message, 0); // // [ diff --git a/ts/src/pro/bitget.ts b/ts/src/pro/bitget.ts index a5cb207b18c1e..0efaf06ee6dd8 100644 --- a/ts/src/pro/bitget.ts +++ b/ts/src/pro/bitget.ts @@ -204,7 +204,6 @@ export default class bitget extends bitgetRest { const symbol = ticker['symbol']; this.tickers[symbol] = ticker; const messageHash = 'ticker:' + symbol; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -693,7 +692,6 @@ export default class bitget extends bitgetRest { const rawTrade = data[index]; const parsed = this.parseWsTrade (rawTrade, market); stored.append (parsed); - this.streamProduce ('trades', parsed); } const messageHash = 'trade:' + symbol; client.resolve (stored, messageHash); @@ -1721,7 +1719,6 @@ export default class bitget extends bitgetRest { // "arg": { instType: 'SPOT', channel: "account", instId: "default" } // } // - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/bitmart.ts b/ts/src/pro/bitmart.ts index f895abbf08a83..a4e03400f1115 100644 --- a/ts/src/pro/bitmart.ts +++ b/ts/src/pro/bitmart.ts @@ -867,7 +867,6 @@ export default class bitmart extends bitmartRest { } const stored = this.trades[symbol]; stored.append (trade); - this.streamProduce ('trades', trade); return symbol; } @@ -963,7 +962,6 @@ export default class bitmart extends bitmartRest { const symbol = ticker['symbol']; this.tickers[symbol] = ticker; const messageHash = 'ticker:' + symbol; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } } @@ -1494,7 +1492,6 @@ export default class bitmart extends bitmartRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/bitmex.ts b/ts/src/pro/bitmex.ts index c6d345d257a42..869cc3d10f1a9 100644 --- a/ts/src/pro/bitmex.ts +++ b/ts/src/pro/bitmex.ts @@ -352,7 +352,6 @@ export default class bitmex extends bitmexRest { tickers[symbol] = fullParsedTicker; this.tickers[symbol] = fullParsedTicker; const messageHash = 'ticker:' + symbol; - this.streamProduce ('tickers', fullParsedTicker); client.resolve (fullParsedTicker, messageHash); client.resolve (fullParsedTicker, 'alltickers'); } @@ -564,7 +563,6 @@ export default class bitmex extends bitmexRest { } for (let j = 0; j < trades.length; j++) { stored.append (trades[j]); - this.streamProduce ('trades', trades[j]); } client.resolve (stored, messageHash); } @@ -1596,7 +1594,6 @@ export default class bitmex extends bitmexRest { // ] // } // - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { const table = this.safeString (message, 'table'); const methods = { diff --git a/ts/src/pro/bitopro.ts b/ts/src/pro/bitopro.ts index 4463fac9a7216..9a2a8c7c27c52 100644 --- a/ts/src/pro/bitopro.ts +++ b/ts/src/pro/bitopro.ts @@ -177,7 +177,6 @@ export default class bitopro extends bitoproRest { } for (let i = 0; i < trades.length; i++) { tradesCache.append (trades[i]); - this.streamProduce ('trades', trades[i]); } this.trades[symbol] = tradesCache; client.resolve (tradesCache, messageHash); @@ -375,7 +374,6 @@ export default class bitopro extends bitoproRest { result['timestamp'] = timestamp; result['datetime'] = datetime; this.tickers[symbol] = result; - this.streamProduce ('tickers', result); client.resolve (result, messageHash); } @@ -471,7 +469,6 @@ export default class bitopro extends bitoproRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const methods = { 'TRADE': this.handleTrade, 'TICKER': this.handleTicker, diff --git a/ts/src/pro/bitrue.ts b/ts/src/pro/bitrue.ts index 82f6cae13956a..1c9d4efe5c9ca 100644 --- a/ts/src/pro/bitrue.ts +++ b/ts/src/pro/bitrue.ts @@ -406,7 +406,6 @@ export default class bitrue extends bitrueRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if ('channel' in message) { this.handleOrderBook (client, message); } else if ('ping' in message) { diff --git a/ts/src/pro/bitstamp.ts b/ts/src/pro/bitstamp.ts index 06bc1f93ab1b3..15720f4338ad8 100644 --- a/ts/src/pro/bitstamp.ts +++ b/ts/src/pro/bitstamp.ts @@ -267,7 +267,6 @@ export default class bitstamp extends bitstampRest { this.trades[symbol] = tradesArray; } tradesArray.append (trade); - this.streamProduce ('trades', trade); client.resolve (tradesArray, messageHash); } @@ -480,7 +479,6 @@ export default class bitstamp extends bitstampRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (!this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/bitvavo.ts b/ts/src/pro/bitvavo.ts index f93654a9c1f42..2c320c88a5aca 100644 --- a/ts/src/pro/bitvavo.ts +++ b/ts/src/pro/bitvavo.ts @@ -126,7 +126,6 @@ export default class bitvavo extends bitvavoRest { const ticker = this.parseTicker (data, market); const symbol = ticker['symbol']; this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } return message; @@ -177,7 +176,6 @@ export default class bitvavo extends bitvavoRest { } tradesArray.append (trade); this.trades[symbol] = tradesArray; - this.streamProduce ('trades', trade); client.resolve (tradesArray, messageHash); } @@ -1367,7 +1365,6 @@ export default class bitvavo extends bitvavoRest { // "authenticated": true // } // - this.streamProduce ('raw', message); const error = this.safeString (message, 'error'); if (error !== undefined) { this.handleErrorMessage (client, message); diff --git a/ts/src/pro/blockchaincom.ts b/ts/src/pro/blockchaincom.ts index ad2fb41357e69..68e5d9d65b7b8 100644 --- a/ts/src/pro/blockchaincom.ts +++ b/ts/src/pro/blockchaincom.ts @@ -269,7 +269,6 @@ export default class blockchaincom extends blockchaincomRest { } const messageHash = 'ticker:' + symbol; this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -375,7 +374,6 @@ export default class blockchaincom extends blockchaincomRest { } const parsed = this.parseWsTrade (message, market); stored.append (parsed); - this.streamProduce ('trades', parsed); this.trades[symbol] = stored; client.resolve (this.trades[symbol], messageHash); } @@ -733,7 +731,6 @@ export default class blockchaincom extends blockchaincomRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const channel = this.safeString (message, 'channel'); const handlers = { 'ticker': this.handleTicker, diff --git a/ts/src/pro/bybit.ts b/ts/src/pro/bybit.ts index 7f3fa69838d49..7348b06c5967c 100644 --- a/ts/src/pro/bybit.ts +++ b/ts/src/pro/bybit.ts @@ -375,7 +375,6 @@ export default class bybit extends bybitRest { parsed['datetime'] = this.iso8601 (timestamp); this.tickers[symbol] = parsed; const messageHash = 'ticker:' + symbol; - this.streamProduce ('tickers', parsed); client.resolve (this.tickers[symbol], messageHash); } @@ -711,7 +710,6 @@ export default class bybit extends bybitRest { for (let j = 0; j < trades.length; j++) { const parsed = this.parseWsTrade (trades[j], market); stored.append (parsed); - this.streamProduce ('trades', parsed); } const messageHash = 'trade' + ':' + symbol; client.resolve (stored, messageHash); @@ -1745,7 +1743,6 @@ export default class bybit extends bybitRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/cex.ts b/ts/src/pro/cex.ts index 9a5a4b0842afe..717c0563c0586 100644 --- a/ts/src/pro/cex.ts +++ b/ts/src/pro/cex.ts @@ -178,7 +178,6 @@ export default class cex extends cexRest { const rawTrade = data[i]; const parsed = this.parseWsOldTrade (rawTrade); stored.append (parsed); - this.streamProduce ('trades', parsed); } const messageHash = 'trades'; this.trades = stored as any; // trades don't have symbol @@ -232,7 +231,6 @@ export default class cex extends cexRest { const rawTrade = data[i]; const parsed = this.parseWsOldTrade (rawTrade); stored.append (parsed); - this.streamProduce ('trades', parsed); } const messageHash = 'trades'; this.trades = stored; @@ -355,7 +353,6 @@ export default class cex extends cexRest { client.resolve (ticker, messageHash); client.resolve (ticker, 'tickers'); messageHash = this.safeString (message, 'oid'); - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -1484,7 +1481,6 @@ export default class cex extends cexRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const ok = this.safeString (message, 'ok'); if (ok === 'error') { this.handleErrorMessage (client, message); diff --git a/ts/src/pro/coinbase.ts b/ts/src/pro/coinbase.ts index 49b3389cd68bb..e1d871bff5718 100644 --- a/ts/src/pro/coinbase.ts +++ b/ts/src/pro/coinbase.ts @@ -189,7 +189,6 @@ export default class coinbase extends coinbaseRest { const wsMarketId = this.safeString (ticker, 'product_id'); const messageHash = channel + '::' + wsMarketId; newTickers.push (result); - this.streamProduce ('tickers', result); client.resolve (result, messageHash); } } @@ -352,9 +351,7 @@ export default class coinbase extends coinbaseRest { const currentTrades = this.safeValue (currentEvent, 'trades'); for (let j = 0; j < currentTrades.length; j++) { const item = currentTrades[i]; - const parsedTrade = this.parseTrade (item); - tradesArray.append (parsedTrade); - this.streamProduce ('trades', parsedTrade); + tradesArray.append (this.parseTrade (item)); } } client.resolve (tradesArray, messageHash); @@ -557,7 +554,6 @@ export default class coinbase extends coinbaseRest { } handleMessage (client, message) { - this.streamProduce ('raw', message); const channel = this.safeString (message, 'channel'); const methods = { 'subscriptions': this.handleSubscriptionStatus, diff --git a/ts/src/pro/coinbaseinternational.ts b/ts/src/pro/coinbaseinternational.ts index da57644ab5a3b..cc1f247495c06 100644 --- a/ts/src/pro/coinbaseinternational.ts +++ b/ts/src/pro/coinbaseinternational.ts @@ -306,7 +306,6 @@ export default class coinbaseinternational extends coinbaseinternationalRest { // const ticker = this.parseWsTicker (message); const channel = this.safeString (message, 'channel'); - this.streamProduce ('tickers', ticker); client.resolve (ticker, channel); client.resolve (ticker, channel + '::' + ticker['symbol']); } @@ -412,7 +411,6 @@ export default class coinbaseinternational extends coinbaseinternationalRest { } const tradesArray = this.trades[symbol]; tradesArray.append (trade); - this.streamProduce ('trades', trade); this.trades[symbol] = tradesArray; client.resolve (tradesArray, channel); client.resolve (tradesArray, channel + '::' + trade['symbol']); @@ -639,7 +637,6 @@ export default class coinbaseinternational extends coinbaseinternationalRest { } handleMessage (client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/coinbasepro.ts b/ts/src/pro/coinbasepro.ts index 41f530ec9aa31..fd2fda7170b62 100644 --- a/ts/src/pro/coinbasepro.ts +++ b/ts/src/pro/coinbasepro.ts @@ -413,7 +413,6 @@ export default class coinbasepro extends coinbaseproRest { this.trades[symbol] = tradesArray; } tradesArray.append (trade); - this.streamProduce ('trades', trade); client.resolve (tradesArray, messageHash); } return message; @@ -773,7 +772,6 @@ export default class coinbasepro extends coinbaseproRest { this.tickers[symbol] = ticker; const messageHash = 'ticker:' + symbol; const idMessageHash = 'ticker:' + marketId; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); client.resolve (ticker, idMessageHash); } @@ -958,7 +956,6 @@ export default class coinbasepro extends coinbaseproRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const type = this.safeString (message, 'type'); const methods = { 'snapshot': this.handleOrderBook, diff --git a/ts/src/pro/coincheck.ts b/ts/src/pro/coincheck.ts index 9ccf88c88a174..7d1919048d8d2 100644 --- a/ts/src/pro/coincheck.ts +++ b/ts/src/pro/coincheck.ts @@ -162,7 +162,6 @@ export default class coincheck extends coincheckRest { const data = this.safeValue (message, i); const trade = this.parseWsTrade (data); stored.append (trade); - this.streamProduce ('trades', trade); } const messageHash = 'trade:' + symbol; client.resolve (stored, messageHash); @@ -204,7 +203,6 @@ export default class coincheck extends coincheckRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const data = this.safeValue (message, 0); if (!Array.isArray (data)) { this.handleOrderBook (client, message); diff --git a/ts/src/pro/coinex.ts b/ts/src/pro/coinex.ts index 7ef65af119340..ceb0fb6e80f0b 100644 --- a/ts/src/pro/coinex.ts +++ b/ts/src/pro/coinex.ts @@ -143,7 +143,6 @@ export default class coinex extends coinexRest { const market = this.safeMarket (marketId, undefined, undefined, defaultType); const parsedTicker = this.parseWSTicker (rawTicker, market); this.tickers[symbol] = parsedTicker; - this.streamProduce ('tickers', parsedTicker); newTickers.push (parsedTicker); } const messageHashes = this.findMessageHashes (client, 'tickers::'); @@ -319,7 +318,6 @@ export default class coinex extends coinexRest { const trade = trades[i]; const parsed = this.parseWsTrade (trade, market); stored.append (parsed); - this.streamProduce ('trades', parsed); } this.trades[symbol] = stored; client.resolve (this.trades[symbol], messageHash); @@ -1008,7 +1006,6 @@ export default class coinex extends coinexRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const error = this.safeValue (message, 'error'); if (error !== undefined) { throw new ExchangeError (this.id + ' ' + this.json (error)); diff --git a/ts/src/pro/coinone.ts b/ts/src/pro/coinone.ts index bea0ea3e5c8b6..def6a0ec9db69 100644 --- a/ts/src/pro/coinone.ts +++ b/ts/src/pro/coinone.ts @@ -193,7 +193,6 @@ export default class coinone extends coinoneRest { const symbol = ticker['symbol']; this.tickers[symbol] = ticker; const messageHash = 'ticker:' + symbol; - this.streamProduce ('tickers', ticker); client.resolve (this.tickers[symbol], messageHash); } @@ -312,7 +311,6 @@ export default class coinone extends coinoneRest { this.trades[symbol] = stored; } stored.append (trade); - this.streamProduce ('trades', trade); const messageHash = 'trade:' + symbol; client.resolve (stored, messageHash); } @@ -376,7 +374,6 @@ export default class coinone extends coinoneRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/cryptocom.ts b/ts/src/pro/cryptocom.ts index 27a9688f2cb09..2b43eaed3f29c 100644 --- a/ts/src/pro/cryptocom.ts +++ b/ts/src/pro/cryptocom.ts @@ -321,7 +321,6 @@ export default class cryptocom extends cryptocomRest { const parsedTrades = this.parseTrades (data, market); for (let j = 0; j < parsedTrades.length; j++) { stored.append (parsedTrades[j]); - this.streamProduce ('trades', parsedTrades[j]); } const channelReplaced = channel.replace ('.' + marketId, ''); client.resolve (stored, symbolSpecificMessageHash); @@ -403,7 +402,6 @@ export default class cryptocom extends cryptocomRest { const parsed = this.parseTicker (ticker, market); const symbol = parsed['symbol']; this.tickers[symbol] = parsed; - this.streamProduce ('tickers', parsed); client.resolve (parsed, messageHash); } } @@ -997,7 +995,6 @@ export default class cryptocom extends cryptocomRest { // "channel":"ticker", // "data":[ { } ] // - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/currencycom.ts b/ts/src/pro/currencycom.ts index 19352891d7c25..9745e033b8c73 100644 --- a/ts/src/pro/currencycom.ts +++ b/ts/src/pro/currencycom.ts @@ -151,7 +151,6 @@ export default class currencycom extends currencycomRest { const symbol = ticker['symbol']; this.tickers[symbol] = ticker; const messageHash = destination + ':' + symbol; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); if (messageHash in client.subscriptions) { delete client.subscriptions[messageHash]; @@ -231,7 +230,6 @@ export default class currencycom extends currencycomRest { this.trades[symbol] = stored; } stored.append (parsed); - this.streamProduce ('trades', parsed); client.resolve (stored, messageHash); } @@ -542,7 +540,6 @@ export default class currencycom extends currencycomRest { // } // } // - this.streamProduce ('raw', message); const requestId = this.safeString (message, 'correlationId'); if (requestId !== undefined) { const subscriptionsById = this.indexBy (client.subscriptions, 'correlationId'); diff --git a/ts/src/pro/deribit.ts b/ts/src/pro/deribit.ts index e74a64f34e1aa..da63a3b03fc5d 100644 --- a/ts/src/pro/deribit.ts +++ b/ts/src/pro/deribit.ts @@ -231,7 +231,6 @@ export default class deribit extends deribitRest { const ticker = this.parseTicker (data); const messageHash = this.safeString (params, 'channel'); this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -317,7 +316,6 @@ export default class deribit extends deribitRest { const trade = trades[i]; const parsed = this.parseTrade (trade, market); stored.append (parsed); - this.streamProduce ('trades', parsed); } this.trades[symbol] = stored; const messageHash = 'trades|' + symbol + '|' + interval; @@ -878,7 +876,6 @@ export default class deribit extends deribitRest { // } // } // - this.streamProduce ('raw', message); const error = this.safeValue (message, 'error'); if (error !== undefined) { throw new ExchangeError (this.id + ' ' + this.json (error)); diff --git a/ts/src/pro/exmo.ts b/ts/src/pro/exmo.ts index fc98837f557ba..9796cd7092805 100644 --- a/ts/src/pro/exmo.ts +++ b/ts/src/pro/exmo.ts @@ -259,7 +259,6 @@ export default class exmo extends exmoRest { const parsedTicker = this.parseTicker (ticker, market); const messageHash = 'ticker:' + symbol; this.tickers[symbol] = parsedTicker; - this.streamProduce ('tickers', parsedTicker); client.resolve (parsedTicker, messageHash); } @@ -324,7 +323,6 @@ export default class exmo extends exmoRest { const trade = trades[i]; const parsed = this.parseTrade (trade, market); stored.append (parsed); - this.streamProduce ('trades', parsed); } this.trades[symbol] = stored; client.resolve (this.trades[symbol], messageHash); @@ -575,7 +573,6 @@ export default class exmo extends exmoRest { // "id": 1, // "topic": "spot/ticker:BTC_USDT" // } - this.streamProduce ('raw', message); const event = this.safeString (message, 'event'); const events = { 'logged_in': this.handleAuthenticationMessage, diff --git a/ts/src/pro/gate.ts b/ts/src/pro/gate.ts index f92ec414807a8..024238c858971 100644 --- a/ts/src/pro/gate.ts +++ b/ts/src/pro/gate.ts @@ -412,7 +412,6 @@ export default class gate extends gateRest { const symbol = parsedItem['symbol']; if (isTicker) { this.tickers[symbol] = parsedItem; - this.streamProduce ('tickers', parsedItem); } else { this.bidsasks[symbol] = parsedItem; } @@ -499,7 +498,6 @@ export default class gate extends gateRest { this.trades[symbol] = cachedTrades; } cachedTrades.append (trade); - this.streamProduce ('trades', trade); const hash = 'trades:' + symbol; client.resolve (cachedTrades, hash); } @@ -1218,7 +1216,6 @@ export default class gate extends gateRest { // ] // } // - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/gemini.ts b/ts/src/pro/gemini.ts index b6cb39c8d67ce..0d388729ab783 100644 --- a/ts/src/pro/gemini.ts +++ b/ts/src/pro/gemini.ts @@ -172,7 +172,6 @@ export default class gemini extends geminiRest { this.trades[symbol] = stored; } stored.append (trade); - this.streamProduce ('trades', trade); const messageHash = 'trades:' + symbol; client.resolve (stored, messageHash); } @@ -229,7 +228,6 @@ export default class gemini extends geminiRest { for (let i = 0; i < trades.length; i++) { const trade = this.parseWsTrade (trades[i], market); stored.append (trade); - this.streamProduce ('trades', trade); } const messageHash = 'trades:' + symbol; client.resolve (stored, messageHash); @@ -253,7 +251,6 @@ export default class gemini extends geminiRest { this.trades[symbol] = stored; } stored.append (trade); - this.streamProduce ('trades', trade); storesForSymbols[symbol] = stored; } const symbols = Object.keys (storesForSymbols); @@ -846,7 +843,6 @@ export default class gemini extends geminiRest { // } // ] // - this.streamProduce ('raw', message); const isArray = Array.isArray (message); if (isArray) { this.handleOrder (client, message); diff --git a/ts/src/pro/hitbtc.ts b/ts/src/pro/hitbtc.ts index f8c7da94b5ad8..2dab0db4435e0 100644 --- a/ts/src/pro/hitbtc.ts +++ b/ts/src/pro/hitbtc.ts @@ -421,7 +421,6 @@ export default class hitbtc extends hitbtcRest { const symbol = market['symbol']; const ticker = this.parseWsTicker (data[marketId], market); this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); newTickers[symbol] = ticker; } client.resolve (newTickers, 'tickers'); @@ -582,7 +581,6 @@ export default class hitbtc extends hitbtcRest { const trades = this.parseWsTrades (data[marketId], market); for (let j = 0; j < trades.length; j++) { stored.append (trades[j]); - this.streamProduce ('trades', trades[j]); } const messageHash = 'trades::' + symbol; client.resolve (stored, messageHash); @@ -1235,7 +1233,6 @@ export default class hitbtc extends hitbtcRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); this.handleError (client, message); let channel = this.safeString2 (message, 'ch', 'method'); if (channel !== undefined) { diff --git a/ts/src/pro/hollaex.ts b/ts/src/pro/hollaex.ts index d81005afb4aad..87d22ea0f9129 100644 --- a/ts/src/pro/hollaex.ts +++ b/ts/src/pro/hollaex.ts @@ -165,7 +165,6 @@ export default class hollaex extends hollaexRest { const parsedTrades = this.parseTrades (data, market); for (let j = 0; j < parsedTrades.length; j++) { stored.append (parsedTrades[j]); - this.streamProduce ('trades', parsedTrades[j]); } const messageHash = channel + ':' + marketId; client.resolve (stored, messageHash); @@ -570,7 +569,6 @@ export default class hollaex extends hollaexRest { // } // } // - this.streamProduce ('raw', message); if (!this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/htx.ts b/ts/src/pro/htx.ts index e5306d7e4181c..3145651dda447 100644 --- a/ts/src/pro/htx.ts +++ b/ts/src/pro/htx.ts @@ -196,7 +196,6 @@ export default class htx extends htxRest { ticker['datetime'] = this.iso8601 (timestamp); const symbol = ticker['symbol']; this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, ch); return message; } @@ -261,7 +260,6 @@ export default class htx extends htxRest { for (let i = 0; i < data.length; i++) { const trade = this.parseTrade (data[i], market); tradesCache.append (trade); - this.streamProduce ('trades', trade); } client.resolve (tradesCache, ch); return message; @@ -1971,7 +1969,6 @@ export default class htx extends htxRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { // // {"id":1583414227,"status":"ok","subbed":"market.btcusdt.mbp.150","ts":1583414229143} diff --git a/ts/src/pro/huobijp.ts b/ts/src/pro/huobijp.ts index b7bf6c9284357..9bf0dd299b0f7 100644 --- a/ts/src/pro/huobijp.ts +++ b/ts/src/pro/huobijp.ts @@ -108,7 +108,6 @@ export default class huobijp extends huobijpRest { ticker['datetime'] = this.iso8601 (timestamp); const symbol = ticker['symbol']; this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, ch); return message; } @@ -187,7 +186,6 @@ export default class huobijp extends huobijpRest { for (let i = 0; i < data.length; i++) { const trade = this.parseTrade (data[i], market); tradesCache.append (trade); - this.streamProduce ('trades', trade); } client.resolve (tradesCache, ch); return message; @@ -599,7 +597,6 @@ export default class huobijp extends huobijpRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { // // {"id":1583414227,"status":"ok","subbed":"market.btcusdt.mbp.150","ts":1583414229143} diff --git a/ts/src/pro/hyperliquid.ts b/ts/src/pro/hyperliquid.ts index 0c1e9a7126c88..e23d47e1f5248 100644 --- a/ts/src/pro/hyperliquid.ts +++ b/ts/src/pro/hyperliquid.ts @@ -283,7 +283,6 @@ export default class hyperliquid extends hyperliquidRest { const data = this.safeDict (entry, i); const trade = this.parseWsTrade (data); trades.append (trade); - this.streamProduce ('trades', trade); } const messageHash = 'trade:' + symbol; client.resolve (trades, messageHash); @@ -527,7 +526,6 @@ export default class hyperliquid extends hyperliquidRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/idex.ts b/ts/src/pro/idex.ts index 403b31e774aa5..21be409f11915 100644 --- a/ts/src/pro/idex.ts +++ b/ts/src/pro/idex.ts @@ -140,7 +140,6 @@ export default class idex extends idexRest { 'quoteVolume': this.safeString (data, 'q'), 'info': message, }); - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -185,7 +184,6 @@ export default class idex extends idexRest { } const trades = this.trades as any; trades.append (trade); - this.streamProduce ('trades', trade); client.resolve (trades, messageHash); } @@ -716,7 +714,6 @@ export default class idex extends idexRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const type = this.safeString (message, 'type'); const methods = { 'tickers': this.handleTicker, diff --git a/ts/src/pro/independentreserve.ts b/ts/src/pro/independentreserve.ts index a91e86e94aeaa..489abb3434a4b 100644 --- a/ts/src/pro/independentreserve.ts +++ b/ts/src/pro/independentreserve.ts @@ -88,7 +88,6 @@ export default class independentreserve extends independentreserveRest { } const trade = this.parseWsTrade (data); stored.append (trade); - this.streamProduce ('trades', trade); this.trades[symbol] = stored; client.resolve (this.trades[symbol], messageHash); } @@ -276,7 +275,6 @@ export default class independentreserve extends independentreserveRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const event = this.safeString (message, 'Event'); const handlers = { 'Subscriptions': this.handleSubscriptions, diff --git a/ts/src/pro/kraken.ts b/ts/src/pro/kraken.ts index 7784cef975177..b60ab1aa35731 100644 --- a/ts/src/pro/kraken.ts +++ b/ts/src/pro/kraken.ts @@ -359,7 +359,6 @@ export default class kraken extends krakenRest { // kraken confirms multi-pair subscriptions separately one by one // trigger correct watchTickers calls upon receiving any of symbols this.tickers[symbol] = result; - this.streamProduce ('tickers', result); client.resolve (result, messageHash); } @@ -390,7 +389,6 @@ export default class kraken extends krakenRest { const parsed = this.parseTrades (trades, market); for (let i = 0; i < parsed.length; i++) { stored.append (parsed[i]); - this.streamProduce ('trades', parsed[i]); } client.resolve (stored, messageHash); } @@ -1342,7 +1340,6 @@ export default class kraken extends krakenRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (Array.isArray (message)) { const channelId = this.safeString (message, 0); const subscription = this.safeValue (client.subscriptions, channelId, {}); diff --git a/ts/src/pro/krakenfutures.ts b/ts/src/pro/krakenfutures.ts index 6194c41423cc3..3bda0a76aecca 100644 --- a/ts/src/pro/krakenfutures.ts +++ b/ts/src/pro/krakenfutures.ts @@ -496,12 +496,10 @@ export default class krakenfutures extends krakenfuturesRest { const item = trades[index]; const trade = this.parseWsTrade (item); tradesArray.append (trade); - this.streamProduce ('trades', trade); } } else { const trade = this.parseWsTrade (message); tradesArray.append (trade); - this.streamProduce ('trades', trade); } client.resolve (tradesArray, messageHash); } @@ -959,7 +957,6 @@ export default class krakenfutures extends krakenfuturesRest { const symbol = ticker['symbol']; this.tickers[symbol] = ticker; const messageHash = feed + ':' + symbol; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } client.resolve (this.tickers, feed); @@ -1466,7 +1463,6 @@ export default class krakenfutures extends krakenfuturesRest { } handleMessage (client, message) { - this.streamProduce ('raw', message); const event = this.safeString (message, 'event'); if (event === 'challenge') { this.handleAuthenticate (client, message); diff --git a/ts/src/pro/kucoin.ts b/ts/src/pro/kucoin.ts index cbc356a18f7b3..490dd47c8fae9 100644 --- a/ts/src/pro/kucoin.ts +++ b/ts/src/pro/kucoin.ts @@ -274,7 +274,6 @@ export default class kucoin extends kucoinRest { const symbol = ticker['symbol']; this.tickers[symbol] = ticker; const messageHash = 'ticker:' + symbol; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); // watchTickers const allTickers = {}; @@ -447,7 +446,6 @@ export default class kucoin extends kucoinRest { this.trades[symbol] = trades; } trades.append (trade); - this.streamProduce ('trades', trade); client.resolve (trades, messageHash); } @@ -1129,7 +1127,6 @@ export default class kucoin extends kucoinRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const type = this.safeString (message, 'type'); const methods = { // 'heartbeat': this.handleHeartbeat, diff --git a/ts/src/pro/kucoinfutures.ts b/ts/src/pro/kucoinfutures.ts index 31309fab903c9..6f1c08553af60 100644 --- a/ts/src/pro/kucoinfutures.ts +++ b/ts/src/pro/kucoinfutures.ts @@ -216,7 +216,6 @@ export default class kucoinfutures extends kucoinfuturesRest { const ticker = this.parseTicker (data, market); this.tickers[market['symbol']] = ticker; const messageHash = 'ticker:' + market['symbol']; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); return message; } @@ -484,7 +483,6 @@ export default class kucoinfutures extends kucoinfuturesRest { this.trades[symbol] = trades; } trades.append (trade); - this.streamProduce ('trades', trade); const messageHash = 'trades:' + symbol; client.resolve (trades, messageHash); return message; @@ -1005,7 +1003,6 @@ export default class kucoinfutures extends kucoinfuturesRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const type = this.safeString (message, 'type'); const methods = { // 'heartbeat': this.handleHeartbeat, diff --git a/ts/src/pro/lbank.ts b/ts/src/pro/lbank.ts index 32cd9c607fab9..1600601e0c371 100644 --- a/ts/src/pro/lbank.ts +++ b/ts/src/pro/lbank.ts @@ -313,7 +313,6 @@ export default class lbank extends lbankRest { let messageHash = 'ticker:' + symbol; client.resolve (parsedTicker, messageHash); messageHash = 'fetchTicker:' + symbol; - this.streamProduce ('tickers', parsedTicker); client.resolve (parsedTicker, messageHash); } @@ -465,7 +464,6 @@ export default class lbank extends lbankRest { const trade = this.parseWsTrade (rawTrades[i], market); trade['symbol'] = symbol; stored.append (trade); - this.streamProduce ('trades', trade); } this.trades[symbol] = stored; let messageHash = 'trades:' + symbol; @@ -839,7 +837,6 @@ export default class lbank extends lbankRest { } handleMessage (client, message) { - this.streamProduce ('raw', message); const status = this.safeString (message, 'status'); if (status === 'error') { this.handleErrorMessage (client, message); diff --git a/ts/src/pro/luno.ts b/ts/src/pro/luno.ts index 3a1cec708fd76..4feec558ef7a3 100644 --- a/ts/src/pro/luno.ts +++ b/ts/src/pro/luno.ts @@ -101,7 +101,6 @@ export default class luno extends lunoRest { const rawTrade = rawTrades[i]; const trade = this.parseTrade (rawTrade, market); stored.append (trade); - this.streamProduce ('trades', trade); } this.trades[symbol] = stored; client.resolve (this.trades[symbol], messageHash); @@ -318,7 +317,6 @@ export default class luno extends lunoRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (message === '') { return; } diff --git a/ts/src/pro/mexc.ts b/ts/src/pro/mexc.ts index 759d59a419eed..54cc13d352554 100644 --- a/ts/src/pro/mexc.ts +++ b/ts/src/pro/mexc.ts @@ -124,7 +124,6 @@ export default class mexc extends mexcRest { } this.tickers[symbol] = ticker; const messageHash = 'ticker:' + symbol; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -616,7 +615,6 @@ export default class mexc extends mexcRest { parsedTrade = this.parseTrade (trades[j], market); } stored.append (parsedTrade); - this.streamProduce ('trades', parsedTrade); } client.resolve (stored, messageHash); } @@ -1149,7 +1147,6 @@ export default class mexc extends mexcRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (typeof message === 'string') { if (message === 'Invalid listen key') { const error = new AuthenticationError (this.id + ' invalid listen key'); diff --git a/ts/src/pro/ndax.ts b/ts/src/pro/ndax.ts index 330b4e8f2d357..d8f21be3428ff 100644 --- a/ts/src/pro/ndax.ts +++ b/ts/src/pro/ndax.ts @@ -104,7 +104,6 @@ export default class ndax extends ndaxRest { this.tickers[symbol] = ticker; const name = 'SubscribeLevel1'; const messageHash = name + ':' + market['id']; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -178,7 +177,6 @@ export default class ndax extends ndaxRest { tradesArray = new ArrayCache (limit); } tradesArray.append (trade); - this.streamProduce ('trades', trade); this.trades[symbol] = tradesArray; updates[symbol] = true; } @@ -524,7 +522,6 @@ export default class ndax extends ndaxRest { // "o": "[[2,1,1608208308265,0,20782.49,1,25000,8,1,1]]" // } // - this.streamProduce ('raw', message); const payload = this.safeString (message, 'o'); if (payload === undefined) { return; diff --git a/ts/src/pro/okcoin.ts b/ts/src/pro/okcoin.ts index 83c4f88e51692..69e124b6c1cf7 100644 --- a/ts/src/pro/okcoin.ts +++ b/ts/src/pro/okcoin.ts @@ -217,7 +217,6 @@ export default class okcoin extends okcoinRest { this.trades[symbol] = stored; } stored.append (trade); - this.streamProduce ('trades', trade); client.resolve (stored, messageHash); } return message; @@ -254,7 +253,6 @@ export default class okcoin extends okcoinRest { const marketId = this.safeString (ticker['info'], 'instrument_id'); const messageHash = table + ':' + marketId; this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } return message; @@ -675,7 +673,6 @@ export default class okcoin extends okcoinRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (!this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/okx.ts b/ts/src/pro/okx.ts index a6cecb5d0d6a1..104aa6b370e69 100644 --- a/ts/src/pro/okx.ts +++ b/ts/src/pro/okx.ts @@ -250,7 +250,6 @@ export default class okx extends okxRest { this.trades[symbol] = stored; } stored.append (trade); - this.streamProduce ('trades', trade); client.resolve (stored, messageHash); } } @@ -330,7 +329,6 @@ export default class okx extends okxRest { const ticker = this.parseTicker (data[i]); const symbol = ticker['symbol']; this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); newTickers.push (ticker); } const messageHashes = this.findMessageHashes (client, channel + '::'); @@ -1571,7 +1569,6 @@ export default class okx extends okxRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (!this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/onetrading.ts b/ts/src/pro/onetrading.ts index c3fa8d78645ef..3463be7b41dfe 100644 --- a/ts/src/pro/onetrading.ts +++ b/ts/src/pro/onetrading.ts @@ -221,7 +221,6 @@ export default class onetrading extends onetradingRest { const timestamp = this.parse8601 (datetime); this.tickers[symbol]['timestamp'] = timestamp; this.tickers[symbol]['datetime'] = this.iso8601 (timestamp); - this.streamProduce ('tickers', this.tickers[symbol]); client.resolve (this.tickers[symbol], 'ticker.' + symbol); } client.resolve (this.tickers, 'tickers'); @@ -1235,7 +1234,6 @@ export default class onetrading extends onetradingRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const error = this.safeValue (message, 'error'); if (error !== undefined) { this.handleErrorMessage (client, message); diff --git a/ts/src/pro/p2b.ts b/ts/src/pro/p2b.ts index fbbd4417ea567..701bb01632ced 100644 --- a/ts/src/pro/p2b.ts +++ b/ts/src/pro/p2b.ts @@ -270,7 +270,6 @@ export default class p2b extends p2bRest { const item = trades[i]; const trade = this.parseTrade (item, market); tradesArray.append (trade); - this.streamProduce ('trades', trade); } const messageHash = 'deals::' + symbol; client.resolve (tradesArray, messageHash); @@ -330,7 +329,6 @@ export default class p2b extends p2bRest { } const symbol = ticker['symbol']; const messageHash = messageHashStart + '::' + symbol; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); return message; } @@ -392,7 +390,6 @@ export default class p2b extends p2bRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/phemex.ts b/ts/src/pro/phemex.ts index 5024fb7905c31..036b894c0db3b 100644 --- a/ts/src/pro/phemex.ts +++ b/ts/src/pro/phemex.ts @@ -296,7 +296,6 @@ export default class phemex extends phemexRest { ticker['timestamp'] = timestamp; ticker['datetime'] = this.iso8601 (timestamp); this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } } @@ -439,7 +438,6 @@ export default class phemex extends phemexRest { const parsed = this.parseTrades (trades, market); for (let i = 0; i < parsed.length; i++) { stored.append (parsed[i]); - this.streamProduce ('trades', parsed[i]); } client.resolve (stored, messageHash); } @@ -1329,7 +1327,6 @@ export default class phemex extends phemexRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); // private spot update // { // "orders": { closed: [ ], fills: [ ], open: [] }, diff --git a/ts/src/pro/poloniex.ts b/ts/src/pro/poloniex.ts index 8b71fd9a04faf..cc87b20f75a36 100644 --- a/ts/src/pro/poloniex.ts +++ b/ts/src/pro/poloniex.ts @@ -606,7 +606,6 @@ export default class poloniex extends poloniexRest { this.trades[symbol] = tradesArray; } tradesArray.append (trade); - this.streamProduce ('trades', trade); client.resolve (tradesArray, messageHash); } } @@ -971,7 +970,6 @@ export default class poloniex extends poloniexRest { const symbol = ticker['symbol']; this.tickers[symbol] = ticker; newTickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); } } const messageHashes = this.findMessageHashes (client, 'ticker::'); @@ -1166,7 +1164,6 @@ export default class poloniex extends poloniexRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); if (this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/poloniexfutures.ts b/ts/src/pro/poloniexfutures.ts index 98675a779860a..6956f16e98181 100644 --- a/ts/src/pro/poloniexfutures.ts +++ b/ts/src/pro/poloniexfutures.ts @@ -153,7 +153,7 @@ export default class poloniexfutures extends poloniexfuturesRest { name += ':' + marketId; } const messageHash = name; - const tunnelId = await this.streamId (url, messageHash); + const tunnelId = await this.stream (url, messageHash); const requestId = this.requestId (); const subscribe = { 'id': requestId, @@ -180,7 +180,7 @@ export default class poloniexfutures extends poloniexfuturesRest { super.onClose (client, error); } - async streamId (url, subscriptionHash) { + async stream (url, subscriptionHash) { const streamBySubscriptionsHash = this.safeValue (this.options, 'streamBySubscriptionsHash', {}); let stream = this.safeString (streamBySubscriptionsHash, subscriptionHash); if (stream === undefined) { @@ -389,7 +389,6 @@ export default class poloniexfutures extends poloniexfuturesRest { this.trades[symbol] = stored; } stored.append (trade); - this.streamProduce ('trades', trade); client.resolve (stored, messageHash); } return message; @@ -682,7 +681,6 @@ export default class poloniexfutures extends poloniexfuturesRest { if (symbol !== undefined) { const ticker = this.parseTicker (data); this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } return message; @@ -1021,7 +1019,6 @@ export default class poloniexfutures extends poloniexfuturesRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const type = this.safeString (message, 'type'); const methods = { 'welcome': this.handleSystemStatus, diff --git a/ts/src/pro/probit.ts b/ts/src/pro/probit.ts index ab568ec6588d6..d79bea8b7017e 100644 --- a/ts/src/pro/probit.ts +++ b/ts/src/pro/probit.ts @@ -134,7 +134,7 @@ export default class probit extends probitRest { */ let filter = undefined; [ filter, params ] = this.handleOptionAndParams (params, 'watchTicker', 'filter', 'ticker'); - return await this.subscribeToOrderBook (symbol, 'ticker', filter, params); + return await this.subscribeOrderBook (symbol, 'ticker', filter, params); } handleTicker (client: Client, message) { @@ -163,7 +163,6 @@ export default class probit extends probitRest { const parsedTicker = this.parseTicker (ticker, market); const messageHash = 'ticker:' + symbol; this.tickers[symbol] = parsedTicker; - this.streamProduce ('tickers', parsedTicker); client.resolve (parsedTicker, messageHash); } @@ -182,7 +181,7 @@ export default class probit extends probitRest { */ let filter = undefined; [ filter, params ] = this.handleOptionAndParams (params, 'watchTrades', 'filter', 'recent_trades'); - const trades = await this.subscribeToOrderBook (symbol, 'trades', filter, params); + const trades = await this.subscribeOrderBook (symbol, 'trades', filter, params); if (this.newUpdates) { limit = trades.getLimit (symbol, limit); } @@ -226,7 +225,6 @@ export default class probit extends probitRest { const trade = trades[i]; const parsed = this.parseTrade (trade, market); stored.append (parsed); - this.streamProduce ('trades', parsed); } this.trades[symbol] = stored; client.resolve (this.trades[symbol], messageHash); @@ -416,11 +414,11 @@ export default class probit extends probitRest { */ let filter = undefined; [ filter, params ] = this.handleOptionAndParams (params, 'watchOrderBook', 'filter', 'order_books'); - const orderbook = await this.subscribeToOrderBook (symbol, 'orderbook', filter, params); + const orderbook = await this.subscribeOrderBook (symbol, 'orderbook', filter, params); return orderbook.limit (); } - async subscribeToOrderBook (symbol: string, messageHash, filter, params = {}) { + async subscribeOrderBook (symbol: string, messageHash, filter, params = {}) { await this.loadMarkets (); const market = this.market (symbol); symbol = market['symbol']; @@ -558,7 +556,6 @@ export default class probit extends probitRest { // } // } // - this.streamProduce ('raw', message); const errorCode = this.safeString (message, 'errorCode'); if (errorCode !== undefined) { this.handleErrorMessage (client, message); diff --git a/ts/src/pro/upbit.ts b/ts/src/pro/upbit.ts index 5de16e754d999..001d1cb27ea9d 100644 --- a/ts/src/pro/upbit.ts +++ b/ts/src/pro/upbit.ts @@ -141,7 +141,6 @@ export default class upbit extends upbitRest { const ticker = this.parseTicker (message); const symbol = ticker['symbol']; this.tickers[symbol] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); } @@ -224,14 +223,12 @@ export default class upbit extends upbitRest { this.trades[symbol] = stored; } stored.append (trade); - this.streamProduce ('trades', trade); const marketId = this.safeString (message, 'code'); const messageHash = 'trade:' + marketId; client.resolve (stored, messageHash); } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const methods = { 'ticker': this.handleTicker, 'orderbook': this.handleOrderBook, diff --git a/ts/src/pro/wazirx.ts b/ts/src/pro/wazirx.ts index c5d051fc01273..15b9f1ab72e31 100644 --- a/ts/src/pro/wazirx.ts +++ b/ts/src/pro/wazirx.ts @@ -244,7 +244,6 @@ export default class wazirx extends wazirxRest { const symbol = parsedTicker['symbol']; this.tickers[symbol] = parsedTicker; const messageHash = 'ticker:' + symbol; - this.streamProduce ('tickers', parsedTicker); client.resolve (parsedTicker, messageHash); } client.resolve (this.tickers, 'tickers'); @@ -356,7 +355,6 @@ export default class wazirx extends wazirxRest { for (let i = 0; i < rawTrades.length; i++) { const parsedTrade = this.parseWsTrade (rawTrades[i], market); trades.append (parsedTrade); - this.streamProduce ('trades', parsedTrade); } client.resolve (trades, messageHash); } @@ -748,7 +746,6 @@ export default class wazirx extends wazirxRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const status = this.safeString (message, 'status'); if (status === 'error') { this.handleError (client, message); diff --git a/ts/src/pro/whitebit.ts b/ts/src/pro/whitebit.ts index e5db8bd646bd9..409441afae612 100644 --- a/ts/src/pro/whitebit.ts +++ b/ts/src/pro/whitebit.ts @@ -291,7 +291,6 @@ export default class whitebit extends whitebitRest { const ticker = this.parseTicker (rawTicker, market); this.tickers[symbol] = ticker; // watchTicker - this.streamProduce ('tickers', ticker); client.resolve (ticker, messageHash); // watchTickers const messageHashes = Object.keys (client.futures); @@ -376,7 +375,6 @@ export default class whitebit extends whitebitRest { const parsedTrades = this.parseTrades (data, market); for (let j = 0; j < parsedTrades.length; j++) { stored.append (parsedTrades[j]); - this.streamProduce ('trades', parsedTrades[j]); } const messageHash = 'trades:' + market['symbol']; client.resolve (stored, messageHash); @@ -886,7 +884,6 @@ export default class whitebit extends whitebitRest { // pong // { error: null, result: "pong", id: 0 } // - this.streamProduce ('raw', message); if (!this.handleErrorMessage (client, message)) { return; } diff --git a/ts/src/pro/woo.ts b/ts/src/pro/woo.ts index 72dda732e8254..75009390ef9a3 100644 --- a/ts/src/pro/woo.ts +++ b/ts/src/pro/woo.ts @@ -206,7 +206,6 @@ export default class woo extends wooRest { const ticker = this.parseWsTicker (data, market); ticker['symbol'] = market['symbol']; this.tickers[market['symbol']] = ticker; - this.streamProduce ('tickers', ticker); client.resolve (ticker, topic); return message; } @@ -264,7 +263,6 @@ export default class woo extends wooRest { const ticker = this.parseWsTicker (this.extend (data[i], { 'date': timestamp }), market); this.tickers[market['symbol']] = ticker; result.push (ticker); - this.streamProduce ('tickers', ticker); } client.resolve (result, topic); } @@ -378,7 +376,6 @@ export default class woo extends wooRest { tradesArray = new ArrayCache (limit); } tradesArray.append (trade); - this.streamProduce ('trades', trade); this.trades[symbol] = tradesArray; client.resolve (tradesArray, topic); } @@ -830,7 +827,6 @@ export default class woo extends wooRest { } handleMessage (client: Client, message) { - this.streamProduce ('raw', message); const methods = { 'ping': this.handlePing, 'pong': this.handlePong,