(self, client: Client, message: dict)
| 804 | return message |
| 805 | |
| 806 | def handle_ohlcv(self, client: Client, message: dict): |
| 807 | # |
| 808 | # spot |
| 809 | # |
| 810 | # { |
| 811 | # "topic": "kline", |
| 812 | # "event": "kline@btc_usdt,5m", |
| 813 | # "data": { |
| 814 | # "s": "btc_usdt", # symbol |
| 815 | # "t": 1656043200000, # time |
| 816 | # "i": "5m", # interval |
| 817 | # "o": "44000", # open price |
| 818 | # "c": "50000", # close price |
| 819 | # "h": "52000", # highest price |
| 820 | # "l": "36000", # lowest price |
| 821 | # "q": "34.2", # qty(quantity) |
| 822 | # "v": "230000" # volume |
| 823 | # } |
| 824 | # } |
| 825 | # |
| 826 | # contract |
| 827 | # |
| 828 | # { |
| 829 | # "topic": "kline", |
| 830 | # "event": "kline@btc_usdt,5m", |
| 831 | # "data": { |
| 832 | # "s": "btc_index", # trading pair |
| 833 | # "o": "49000", # opening price |
| 834 | # "c": "50000", # closing price |
| 835 | # "h": "0.1", # highest price |
| 836 | # "l": "0.1", # lowest price |
| 837 | # "a": "0.1", # volume |
| 838 | # "v": "0.1", # turnover |
| 839 | # "ch": "0.21", # quote change |
| 840 | # "t": 123124124 # timestamp |
| 841 | # } |
| 842 | # } |
| 843 | # |
| 844 | data = self.safe_dict(message, 'data', {}) |
| 845 | marketId = self.safe_string(data, 's') |
| 846 | if marketId is not None: |
| 847 | timeframe = self.safe_string(data, 'i') |
| 848 | tradeType = 'spot' if ('q' in data) else 'contract' |
| 849 | market = self.safe_market(marketId, None, None, tradeType) |
| 850 | symbol = market['symbol'] |
| 851 | parsed = self.parse_ohlcv(data, market) |
| 852 | self.ohlcvs[symbol] = self.safe_dict(self.ohlcvs, symbol, {}) |
| 853 | stored = self.safe_value(self.ohlcvs[symbol], timeframe) |
| 854 | if stored is None: |
| 855 | limit = self.safe_integer(self.options, 'OHLCVLimit', 1000) |
| 856 | stored = ArrayCacheByTimestamp(limit) |
| 857 | self.ohlcvs[symbol][timeframe] = stored |
| 858 | stored.append(parsed) |
| 859 | event = self.safe_string(message, 'event') |
| 860 | messageHash = event + '::' + tradeType |
| 861 | client.resolve(stored, messageHash) |
| 862 | return message |
| 863 |
nothing calls this directly
no test coverage detected