ccxt-ir 4.5.1__py2.py3-none-any.whl → 4.7.0__py2.py3-none-any.whl

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.
ccxt/toobit.py ADDED
@@ -0,0 +1,367 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ # PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ # https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+
6
+ from ccxt.base.exchange import Exchange
7
+ from ccxt.abstract.toobit import ImplicitAPI
8
+ from ccxt.base.types import Any, Int, Market, Strings, Ticker, Tickers
9
+ from typing import List
10
+
11
+
12
+ class toobit(Exchange, ImplicitAPI):
13
+
14
+ def describe(self) -> Any:
15
+ return self.deep_extend(super(toobit, self).describe(), {
16
+ 'id': 'toobit',
17
+ 'name': 'Toobit',
18
+ 'countries': ['KY'], # Cayman Islands
19
+ 'rateLimit': 1000,
20
+ 'version': '1',
21
+ 'certified': False,
22
+ 'pro': False,
23
+ 'has': {
24
+ 'CORS': None,
25
+ 'spot': True,
26
+ 'margin': False,
27
+ 'swap': True,
28
+ 'future': False,
29
+ 'option': False,
30
+ 'addMargin': False,
31
+ 'cancelAllOrders': False,
32
+ 'cancelOrder': False,
33
+ 'cancelOrders': False,
34
+ 'createDepositAddress': False,
35
+ 'createOrder': False,
36
+ 'createStopLimitOrder': False,
37
+ 'createStopMarketOrder': False,
38
+ 'createStopOrder': False,
39
+ 'editOrder': False,
40
+ 'fetchBalance': False,
41
+ 'fetchBorrowInterest': False,
42
+ 'fetchBorrowRateHistories': False,
43
+ 'fetchBorrowRateHistory': False,
44
+ 'fetchClosedOrders': False,
45
+ 'fetchCrossBorrowRate': False,
46
+ 'fetchCrossBorrowRates': False,
47
+ 'fetchCurrencies': False,
48
+ 'fetchDepositAddress': False,
49
+ 'fetchDeposits': False,
50
+ 'fetchFundingHistory': False,
51
+ 'fetchFundingRate': False,
52
+ 'fetchFundingRateHistory': False,
53
+ 'fetchFundingRates': False,
54
+ 'fetchIndexOHLCV': False,
55
+ 'fetchIsolatedBorrowRate': False,
56
+ 'fetchIsolatedBorrowRates': False,
57
+ 'fetchL2OrderBook': False,
58
+ 'fetchLedger': False,
59
+ 'fetchLedgerEntry': False,
60
+ 'fetchLeverageTiers': False,
61
+ 'fetchMarkets': True,
62
+ 'fetchMarkOHLCV': False,
63
+ 'fetchMyTrades': False,
64
+ 'fetchOHLCV': True,
65
+ 'fetchOpenInterestHistory': False,
66
+ 'fetchOpenOrders': False,
67
+ 'fetchOrder': False,
68
+ 'fetchOrderBook': True,
69
+ 'fetchOrders': False,
70
+ 'fetchOrderTrades': 'emulated',
71
+ 'fetchPositions': False,
72
+ 'fetchPremiumIndexOHLCV': False,
73
+ 'fetchTicker': True,
74
+ 'fetchTickers': True,
75
+ 'fetchTime': False,
76
+ 'fetchTrades': False,
77
+ 'fetchTradingFee': False,
78
+ 'fetchTradingFees': False,
79
+ 'fetchWithdrawals': False,
80
+ 'setLeverage': False,
81
+ 'setMarginMode': False,
82
+ 'transfer': False,
83
+ 'withdraw': False,
84
+ },
85
+ 'comment': 'This comment is optional',
86
+ 'urls': {
87
+ 'logo': 'https://toobit-docs.github.io/apidocs/spot/v1/en/images/logo.svg',
88
+ 'api': {
89
+ 'public': 'https://api.toobit.com',
90
+ },
91
+ 'www': 'https://www.toobit.com/',
92
+ 'doc': [
93
+ 'https://toobit-docs.github.io/apidocs/spot/v1/en/#change-log',
94
+ ],
95
+ },
96
+ 'timeframes': {
97
+ '1m': '1m',
98
+ '3m': '3m',
99
+ '5m': '5m',
100
+ '15m': '15m',
101
+ '30m': '30m',
102
+ '1h': '1h',
103
+ '2h': '2h',
104
+ '4h': '4h',
105
+ '6h': '6h',
106
+ '12h': '12h',
107
+ '1d': '1d',
108
+ '1w': '1w',
109
+ '1M': '1M',
110
+ },
111
+ 'api': {
112
+ 'public': {
113
+ 'get': {
114
+ 'quote/v1/ticker/24hr': 1,
115
+ 'quote/v1/klines': 1,
116
+ },
117
+ },
118
+ },
119
+ 'fees': {
120
+ 'trading': {
121
+ 'tierBased': False,
122
+ 'percentage': True,
123
+ 'maker': self.parse_number('0.001'),
124
+ 'taker': self.parse_number('0.001'),
125
+ },
126
+ },
127
+ })
128
+
129
+ def fetch_markets(self, params={}) -> List[Market]:
130
+ """
131
+ retrieves data on all markets for toobit
132
+ https://apidocs.toobit.io/#tickers
133
+ :param dict [params]: extra parameters specific to the exchange API endpoint
134
+ :returns dict[]: an array of objects representing market data
135
+ """
136
+ response = self.publicGetQuoteV1Ticker24hr()
137
+ result = []
138
+ for i in range(0, len(response)):
139
+ volume = self.safe_float(response[i], 'v')
140
+ symbol = self.safe_value(response[i], 's')
141
+ if volume == 0 or symbol == 'TESTA1S3TESTX8Z9':
142
+ continue
143
+ market = self.parse_market(response[i])
144
+ result.append(market)
145
+ return result
146
+
147
+ def parse_market(self, market) -> Market:
148
+ # {
149
+ # t: 1757164008834,
150
+ # s: "BTCUSDT",
151
+ # c: "110895.06",
152
+ # h: "113310.01",
153
+ # l: "110219.01",
154
+ # o: "112951.99",
155
+ # v: "3893.406649",
156
+ # qv: "433374169.27969515",
157
+ # pc: "-2056.93",
158
+ # pcp: "-0.0182"
159
+ # }
160
+ symbol = self.safe_value(market, 's')
161
+ baseId = symbol
162
+ quoteId = None
163
+ if symbol.endswith('USDT'):
164
+ baseId = symbol[0:-4]
165
+ quoteId = 'USDT'
166
+ elif symbol.endswith('USDC'):
167
+ baseId = symbol[0:-4]
168
+ quoteId = 'USDC'
169
+ id = symbol
170
+ base = self.safe_currency_code(baseId)
171
+ quote = self.safe_currency_code(quoteId)
172
+ baseId = baseId.lower()
173
+ quoteId = quoteId.lower()
174
+ return {
175
+ 'id': id,
176
+ 'symbol': base + '/' + quote,
177
+ 'base': base,
178
+ 'quote': quote,
179
+ 'settle': None,
180
+ 'baseId': baseId,
181
+ 'quoteId': quoteId,
182
+ 'settleId': None,
183
+ 'type': 'spot',
184
+ 'spot': True,
185
+ 'margin': False,
186
+ 'swap': False,
187
+ 'future': False,
188
+ 'option': False,
189
+ 'active': True,
190
+ 'contract': False,
191
+ 'linear': None,
192
+ 'inverse': None,
193
+ 'contractSize': None,
194
+ 'expiry': None,
195
+ 'expiryDatetime': None,
196
+ 'strike': None,
197
+ 'optionType': None,
198
+ 'precision': {
199
+ 'amount': None,
200
+ 'price': None,
201
+ },
202
+ 'limits': {
203
+ 'leverage': {
204
+ 'min': None,
205
+ 'max': None,
206
+ },
207
+ 'amount': {
208
+ 'min': None,
209
+ 'max': None,
210
+ },
211
+ 'price': {
212
+ 'min': None,
213
+ 'max': None,
214
+ },
215
+ 'cost': {
216
+ 'min': None,
217
+ 'max': None,
218
+ },
219
+ },
220
+ 'created': None,
221
+ 'info': market,
222
+ }
223
+
224
+ def fetch_tickers(self, symbols: Strings = None, params={}) -> Tickers:
225
+ """
226
+ fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
227
+ https://apidocs.toobit.io/#tickers
228
+ :param str[]|None symbols: unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
229
+ :param dict [params]: extra parameters specific to the exchange API endpoint
230
+ :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
231
+ """
232
+ self.load_markets()
233
+ if symbols is not None:
234
+ symbols = self.market_symbols(symbols)
235
+ response = self.publicGetQuoteV1Ticker24hr()
236
+ result = {}
237
+ for i in range(0, len(response)):
238
+ volume = self.safe_float(response[i], 'v')
239
+ if volume == 0:
240
+ continue
241
+ ticker = self.parse_ticker(response[i])
242
+ symbol = ticker['symbol']
243
+ result[symbol] = ticker
244
+ return self.filter_by_array_tickers(result, 'symbol', symbols)
245
+
246
+ def fetch_ticker(self, symbol: str, params={}) -> Ticker:
247
+ """
248
+ fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
249
+ https://apidocs.toobit.io/#ticker
250
+ :param str symbol: unified symbol of the market to fetch the ticker for
251
+ :param dict [params]: extra parameters specific to the exchange API endpoint
252
+ :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
253
+ """
254
+ self.load_markets()
255
+ market = self.market(symbol)
256
+ request = {
257
+ 'symbol': market['id'],
258
+ }
259
+ response = self.publicGetQuoteV1Ticker24hr(request)
260
+ ticker = self.parse_ticker(response[0])
261
+ return ticker
262
+
263
+ def parse_ticker(self, ticker, market: Market = None) -> Ticker:
264
+ # {
265
+ # t: 1757164008834,
266
+ # s: "BTCUSDT",
267
+ # c: "110895.06",
268
+ # h: "113310.01",
269
+ # l: "110219.01",
270
+ # o: "112951.99",
271
+ # v: "3893.406649",
272
+ # qv: "433374169.27969515",
273
+ # pc: "-2056.93",
274
+ # pcp: "-0.0182"
275
+ # }
276
+ marketType = 'spot'
277
+ symbol = self.safe_value(ticker, 's')
278
+ marketId = symbol
279
+ symbol = self.safe_symbol(marketId, market, None, marketType)
280
+ high = self.safe_float(ticker, 'h')
281
+ low = self.safe_float(ticker, 'l')
282
+ open = self.safe_float(ticker, 'o')
283
+ close = self.safe_float(ticker, 'c')
284
+ last = self.safe_float(ticker, 'c')
285
+ change = self.safe_float(ticker, 'pcp')
286
+ priceChange = self.safe_float(ticker, 'pc')
287
+ baseVolume = self.safe_float(ticker, 'v')
288
+ quoteVolume = self.safe_float(ticker, 'qv')
289
+ datetime = self.safe_string(ticker, 't')
290
+ bid = self.safe_float(ticker, 'b', 0)
291
+ ask = self.safe_float(ticker, 'a', 0)
292
+ return self.safe_ticker({
293
+ 'symbol': symbol,
294
+ 'timestamp': datetime,
295
+ 'datetime': self.parse8601(datetime),
296
+ 'high': high,
297
+ 'low': low,
298
+ 'bid': bid,
299
+ 'bidVolume': None,
300
+ 'ask': ask,
301
+ 'askVolume': None,
302
+ 'vwap': None,
303
+ 'open': open,
304
+ 'close': close,
305
+ 'last': last,
306
+ 'previousClose': None,
307
+ 'change': priceChange,
308
+ 'percentage': change,
309
+ 'average': None,
310
+ 'baseVolume': baseVolume,
311
+ 'quoteVolume': quoteVolume,
312
+ 'info': ticker,
313
+ }, market)
314
+
315
+ def fetch_ohlcv(self, symbol: str, timeframe='1h', since: Int = None, limit: Int = None, params={}) -> List[list]:
316
+ """
317
+ fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
318
+ https://apidocs.toobit.io/#chart
319
+ :param str symbol: unified symbol of the market to fetch OHLCV data for
320
+ :param str timeframe: the length of time each candle represents
321
+ :param int [since]: timestamp in ms of the earliest candle to fetch
322
+ :param int [limit]: the maximum amount of candles to fetch
323
+ :param dict [params]: extra parameters specific to the exchange API endpoint
324
+ :returns int[][]: A list of candles ordered, open, high, low, close, volume
325
+ """
326
+ self.load_markets()
327
+ market = self.market(symbol)
328
+ endTime = Date.now()
329
+ request = {
330
+ 'symbol': market['id'],
331
+ 'from': (endTime - (24 * 60 * 60 * 1000)),
332
+ 'to': endTime,
333
+ 'interval': self.safe_string(self.timeframes, timeframe, timeframe),
334
+ }
335
+ if since is not None:
336
+ request['from'] = since
337
+ if timeframe is not None:
338
+ request['interval'] = self.safe_string(self.timeframes, timeframe, timeframe)
339
+ response = self.publicGetQuoteV1Klines(request)
340
+ ohlcvs = []
341
+ for i in range(0, len(response)):
342
+ candle = response[i]
343
+ ts = self.safe_timestamp(candle, 0)
344
+ open = self.safe_float(candle, 1)
345
+ high = self.safe_float(candle, 2)
346
+ low = self.safe_float(candle, 3)
347
+ close = self.safe_float(candle, 4)
348
+ volume = self.safe_float(candle, 5)
349
+ ohlcvs.append([
350
+ ts,
351
+ open,
352
+ high,
353
+ low,
354
+ close,
355
+ volume,
356
+ ])
357
+ return self.parse_ohlcvs(ohlcvs, market, timeframe, since, limit)
358
+
359
+ def sign(self, path, api='public', method='GET', params={}, headers=None, body=None):
360
+ query = self.omit(params, self.extract_params(path))
361
+ url = self.urls['api']['public'] + '/' + path
362
+ if path == 'quote/v1/ticker/24hr':
363
+ url = url + '?' + self.urlencode(query)
364
+ if path == 'quote/v1/klines':
365
+ url = url + '?' + self.urlencode(query)
366
+ headers = {'Content-Type': 'application/json'}
367
+ return {'url': url, 'method': method, 'body': body, 'headers': headers}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ccxt-ir
3
- Version: 4.5.1
3
+ Version: 4.7.0
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -62,7 +62,7 @@ Dynamic: summary
62
62
 
63
63
  # CCXT – CryptoCurrency eXchange Trading Library
64
64
 
65
- [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NuGet version](https://img.shields.io/nuget/v/ccxt)](https://www.nuget.org/packages/ccxt) [![GoDoc](https://pkg.go.dev/badge/github.com/ccxt/ccxt/go/v4?utm_source=godoc)](https://godoc.org/github.com/ccxt/ccxt/go/v4) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/ccxt) [![Supported Exchanges](https://img.shields.io/badge/exchanges-132-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Follow CCXT at x.com](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://x.com/ccxt_official)
65
+ [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![npm](https://img.shields.io/npm/v/ccxt.svg)](https://npmjs.com/package/ccxt) [![PyPI](https://img.shields.io/pypi/v/ccxt.svg)](https://pypi.python.org/pypi/ccxt) [![NuGet version](https://img.shields.io/nuget/v/ccxt)](https://www.nuget.org/packages/ccxt) [![GoDoc](https://pkg.go.dev/badge/github.com/ccxt/ccxt/go/v4?utm_source=godoc)](https://godoc.org/github.com/ccxt/ccxt/go/v4) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/ccxt) [![Supported Exchanges](https://img.shields.io/badge/exchanges-134-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Follow CCXT at x.com](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://x.com/ccxt_official)
66
66
 
67
67
  A `JavaScript` / `Python` / `PHP` / `C#` / `Go` library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
68
68
 
@@ -304,18 +304,22 @@ console.log(version, Object.keys(exchanges));
304
304
 
305
305
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
306
306
 
307
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.5.1/dist/ccxt.browser.min.js
308
- * unpkg: https://unpkg.com/ccxt@4.5.1/dist/ccxt.browser.min.js
307
+ <<<<<<< HEAD
308
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.7.0/dist/ccxt.browser.min.js
309
+ * unpkg: https://unpkg.com/ccxt@4.7.0/dist/ccxt.browser.min.js
310
+ =======
311
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.7.0/dist/ccxt.browser.min.js
312
+ * unpkg: https://unpkg.com/ccxt@4.7.0/dist/ccxt.browser.min.js
313
+ >>>>>>> master
309
314
 
310
315
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
311
316
 
312
317
  ```HTML
313
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.5.1/dist/ccxt.browser.min.js"></script>
314
- ```
315
-
316
- Creates a global `ccxt` object:
317
-
318
- ```JavaScript
318
+ <<<<<<< HEAD
319
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.7.0/dist/ccxt.browser.min.js"></script>
320
+ =======
321
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.7.0/dist/ccxt.browser.min.js"></script>
322
+ >>>>>>> master
319
323
  console.log (ccxt.exchanges) // print all available exchanges
320
324
  ```
321
325
 
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=ABaJ-H_2YltSlQ-KnSacbMKuJuOrT_jUUGwzY4Zu6jY,18922
1
+ ccxt/__init__.py,sha256=yVtxyPSvSaS0SlouXjUX5fs5vK0407bX6UMZlP9UOmA,19115
2
2
  ccxt/abantether.py,sha256=like8inDYyPpE3d3_93KulDhwmYwdOqZxRvoTC1-Nd0,12008
3
3
  ccxt/afratether.py,sha256=NeSpFf0zWIM5ejGgn5G9hz1-sefAv_ae7j9241WcdDk,10801
4
4
  ccxt/alpaca.py,sha256=oO0YJHxo5_1iYyGVRMbxfGyPahqzuMlE7LZ3TMYgPGo,80694
@@ -13,6 +13,7 @@ ccxt/binancecoinm.py,sha256=MCMEAmIk1WTxrda8ZuCLdMRokKTIcZioc5kC8KiWzoE,1817
13
13
  ccxt/binanceus.py,sha256=oI9FAJrJmapOdqf3mnXUULBq8tGK-VfJ2GnDYqIwXsw,9550
14
14
  ccxt/binanceusdm.py,sha256=YcuFO1VXQy7ELcN9e7tlJFKby2mOZVBqvmp924clu8U,2701
15
15
  ccxt/bingx.py,sha256=9DYikizv3bqTIVUBtNy8uOZ55mpD_Ko2pYGYTH7qAas,278454
16
+ ccxt/bit24.py,sha256=xl0kxCw1otDuMKfm6pPbHYCz_liSf1GpQaZqfXzW-wg,13769
16
17
  ccxt/bit2c.py,sha256=Yyxj7tK5kRxRJPIvsQwboWi6HwPfUOAMDr1uTrEfhyQ,41190
17
18
  ccxt/bitbank.py,sha256=K1rsciFMTmfEjDdab97E9IIxfIcMSHoa9YGIepqj2pY,47781
18
19
  ccxt/bitbns.py,sha256=5GqPAa7MEbUA2BcDzlus-GGW2rjUliqeWTg4P5gm0us,50931
@@ -62,7 +63,7 @@ ccxt/digifinex.py,sha256=qmYcsm1XTAltKQeywgR0xnnbVVdTVg5Dyu9QHbFiG1I,174815
62
63
  ccxt/ellipx.py,sha256=fith62iZEIpyx0drFdQfLFxADGsum6M-NJAFrYU8b54,85916
63
64
  ccxt/eterex.py,sha256=rbKwogBAVBZh7owkNkaY5xur6Y4foab940ezbpFE6uA,10665
64
65
  ccxt/excoino.py,sha256=UzRwsJnYDSq6RqbWLme0WkRdmlWDOBDWYrRpa6YyUs8,15836
65
- ccxt/exir.py,sha256=AKMua3UVTffQOwXPQr8OIZFcG50Oz6Mw_bVsnoQ72sQ,14705
66
+ ccxt/exir.py,sha256=NIp5EDp0g7Hix_gUwzpM1yW67tQ0KR2dDPdp_j1A0No,14758
66
67
  ccxt/exmo.py,sha256=rnpx2B__KkLF1TCWj_XDEsVnNbtOgJvmF6Kg1AOAS3Q,121802
67
68
  ccxt/exnovin.py,sha256=JVPKmxEHOLmGj2eeCpkKYLPLERHwu3jRbUT1PcAchMo,13035
68
69
  ccxt/farhadexchange.py,sha256=Gn6Q_3lb0KjpUGTFHuRtrrYEJOVG78N6JQmBsF6LYbo,9883
@@ -94,7 +95,7 @@ ccxt/mexc.py,sha256=fpvMyG4DsY62UpK_m4R_yML9ydx0uJAKy4EtNrpyvBk,259668
94
95
  ccxt/modetrade.py,sha256=NOm_GYlosUuMYTZIgKCWIrUMhtJCqbuIauK0m3H3iWM,124933
95
96
  ccxt/myokx.py,sha256=1fuUUuz5HuhSzTefnqUayu4NWVLNXzK58LPdpi0GYu4,1773
96
97
  ccxt/ndax.py,sha256=ptOVfbuHhEfpxwpdJO8aYlpjr4Ru-XOcGptlliIUf0c,114216
97
- ccxt/nobitex.py,sha256=NjRVrNMea_q77CVFk3FWAro7k5pDja1oB1_OUZ4gyKA,16624
98
+ ccxt/nobitex.py,sha256=J6gxw9zDGmboZtxFmttqp47t9w_oTZxtrcZG2WYCkdw,16955
98
99
  ccxt/novadax.py,sha256=D9JFxDqKCyv4L2le1i6P_oaYdC4H0vDN7XjedE9xy-4,69122
99
100
  ccxt/oceanex.py,sha256=YhvVgresX7nm8sFxD8Yr5pQI5IzuuRllW-JdA9RkDSM,44195
100
101
  ccxt/okcoin.py,sha256=yvSRgQhAYim1iF_INP02tVwi-oh_-GUD3jmbkXTRDKY,153947
@@ -111,12 +112,13 @@ ccxt/phemex.py,sha256=vWIh8G8Jo2mNwuYI8EpG3pzHBbd0F9-mI_lzmCm-_Sk,243174
111
112
  ccxt/poloniex.py,sha256=Ukb2tZq57T44McUdD3-J3J_uLHTTEyBaLV1o3kmU4Rw,155050
112
113
  ccxt/probit.py,sha256=Lsfz21itILHEURhx_7qs9oQcjQNOXn-JFIfIUiOBJNo,79205
113
114
  ccxt/ramzinex.py,sha256=Si0Nuhfy7fo7t3Gi9y7uVFSt_FM5nS3Uo2j2vf6gxEw,19486
114
- ccxt/sarmayex.py,sha256=LYGXB2itXd-YfIbi4b-WCw9GJgWSNVcDB1GVL8lcOPo,13404
115
+ ccxt/sarmayex.py,sha256=jTbQOwdZYlxgHKDoFRoKTngtm1asFaEihnUx7n1Q2pw,13404
115
116
  ccxt/sarrafex.py,sha256=D1fo5tCmowlDb8CtsCoHrVkmf_WjhYp-6q-pcVkDFBg,19125
116
117
  ccxt/tabdeal.py,sha256=OWR4aV5Ek3cgIk3zjXy1l04hdbLxJZxd-3icm6prAvA,14358
117
118
  ccxt/tetherland.py,sha256=W5RTlW37Kgt6rhgWT4x3Gdn_PIRDjuOhhI9k5HVmTvo,13884
118
119
  ccxt/timex.py,sha256=MiLB4GyIpEOHweaQuzIrBJyuevw3jsVvitsaK7iQ6RE,76698
119
120
  ccxt/tokocrypto.py,sha256=-q95F-FvV-dgatuZzfJNnojtNxuyyyzmTpHLyOpu8Vw,126328
121
+ ccxt/toobit.py,sha256=hFs4roZGL7KfxtFNfcHgkrZVBli7llmm_ksseK1p9ds,13737
120
122
  ccxt/tradeogre.py,sha256=Q8CSHf8QGzb37jMFhaBmc_IZ1zga0eRXFVbjhmJnyFY,33712
121
123
  ccxt/twox.py,sha256=V1PDZqRWEyV5wuclQHtfvhlJzSF7pyHns9q2JRoJaBM,12064
122
124
  ccxt/ubitex.py,sha256=Z9ThriWhEmlZwBgb7WmtIFUC_EfTa17GTyj_0SNumZA,16466
@@ -146,6 +148,7 @@ ccxt/abstract/binancecoinm.py,sha256=g13z3l0oHsoTclroBA6nLmQQu17CIJ1p-XRxa2EFomY
146
148
  ccxt/abstract/binanceus.py,sha256=uI0vMSecfZGt89lHZZ6hb1cW8Z6DpJAmoHCgrzgh46M,107204
147
149
  ccxt/abstract/binanceusdm.py,sha256=g13z3l0oHsoTclroBA6nLmQQu17CIJ1p-XRxa2EFomY,100542
148
150
  ccxt/abstract/bingx.py,sha256=C4BlHUuEW5JXQDksCNof8PjfLPMbKQ7y-bLsAxgXpo0,24982
151
+ ccxt/abstract/bit24.py,sha256=BJ3em9TJuJsGoyo3gVPxTWQoMOxgKqCLTUuF-gZB32Y,165
149
152
  ccxt/abstract/bit2c.py,sha256=np6i756kSB5dO3Nj6POLKxkWkpYcsGg-4LS8BwPrizI,2830
150
153
  ccxt/abstract/bitbank.py,sha256=7NfcFZ4u4osVPeYc9VVBuw65thDCr8qSrlzk_1P3D1U,3398
151
154
  ccxt/abstract/bitbns.py,sha256=3T3cHS7SgzGipd6F8vzPnmM0x3XNfQXEPjoInD-C1Sw,4082
@@ -250,6 +253,7 @@ ccxt/abstract/tabdeal.py,sha256=9wPBn90yiZrWpS9lWHAbE-mvOj4rdn_0ImYwPaRN5js,418
250
253
  ccxt/abstract/tetherland.py,sha256=oeq5VUYhHg8h9IaD7bDQlTCgZfHY80WAYnO-F-esl18,174
251
254
  ccxt/abstract/timex.py,sha256=9b0CDsyjm8XrYZmhUMB1dTHUmyE9YrsZTCZrz1UTt6E,5875
252
255
  ccxt/abstract/tokocrypto.py,sha256=OF5UW4ch_Lf3-avOPgd4AD4CVrOUDUfUpSMCmxhNHlk,4094
256
+ ccxt/abstract/toobit.py,sha256=7Qeqn5TJ8GKY5Jug5ynKwktqhBSZYhc07Ht6qJcPU4Q,295
253
257
  ccxt/abstract/tradeogre.py,sha256=bDouHP2c50F6Ins5EU2-3Jw10PsIG2KK3bcKv8y7678,1676
254
258
  ccxt/abstract/twox.py,sha256=RHI1yDeSsDxNgV3YX82DZCg1p36V-6fDOcmTXaMZK6w,166
255
259
  ccxt/abstract/ubitex.py,sha256=3bN3gGo86vcA1MPvlJTOcSkf8Ql-q0gbvXJCqhB_a-Q,416
@@ -264,8 +268,8 @@ ccxt/abstract/xt.py,sha256=n3eX1cItL_J0j8prOViV-C_tRwIFv_GO8JTvZZw8jv8,27837
264
268
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
265
269
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
266
270
  ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
267
- ccxt/async_support/__init__.py,sha256=AEG185f2gXQlCAzsVhhWciWukRbQjMkD7ury3YIrbvs,18965
268
- ccxt/async_support/abantether.py,sha256=q_S2Qgr9_OxoOc8UHyc6-7VjHhGuhHhXwpHxZCMN1PM,12070
271
+ ccxt/async_support/__init__.py,sha256=MQWGRDhbI9AhAbvJTV1RJcdXBXA4Vvf_jdak3NAcz_Q,19178
272
+ ccxt/async_support/abantether.py,sha256=uLWn1i6gE8dtZr9BXmXfyT0Y-MzYYZU1DDeXGjFngAM,12064
269
273
  ccxt/async_support/afratether.py,sha256=JC9ro3QrE8vE4YUm51xqwciSQhHfTPb98Mw1r6cJyvg,10869
270
274
  ccxt/async_support/alpaca.py,sha256=oFpSnAjX-faRgTN4d5rwHa08WRaCkwiAbHGZ7JBe6Ww,81140
271
275
  ccxt/async_support/apex.py,sha256=ouj8uyC4f8Ar3IowHxbrPTBp-g2ctheo5ir_YLsg-Gg,83228
@@ -279,6 +283,7 @@ ccxt/async_support/binancecoinm.py,sha256=GS5wgqgwna0HcRW6f6hHjzPq5wYHAn_OArdNan
279
283
  ccxt/async_support/binanceus.py,sha256=T9ab3Y4N822a_0agKM1mAkbOX3ChmSq_ymAsY2ZmxlI,9564
280
284
  ccxt/async_support/binanceusdm.py,sha256=sdx3CYlOma49ss3XxRnZZpqkhwUa0cAz_tfP_64LOwU,2739
281
285
  ccxt/async_support/bingx.py,sha256=gFXYiuHiNfh6BEghlr6MhmoI-1wTMGrEUSgvBIhE7CU,279832
286
+ ccxt/async_support/bit24.py,sha256=qsUKq4EXY06KGc8qiJnQPGNMA0dMfcPLoIAX99K6oXU,13825
282
287
  ccxt/async_support/bit2c.py,sha256=CYx7PSZNdg3JyN08DTYRtLYPxsz8gOoYxpgN02h1LjI,41402
283
288
  ccxt/async_support/bitbank.py,sha256=UHXNZ9GG4v-3-GHVxoFSYfNaLHSkPptfRlC0MiDBGcc,48041
284
289
  ccxt/async_support/bitbns.py,sha256=L6wAlhQu7ydl8R1kph7_K6QvnMAKuvjWQd_4w7d_uzY,51185
@@ -328,7 +333,7 @@ ccxt/async_support/digifinex.py,sha256=8_STpgUHR4WFBYFgUJD7TJbH8ZOMOiqY5UZvklO2Y
328
333
  ccxt/async_support/ellipx.py,sha256=RTBLSiZGXRWtcvhvACTvhjYxudyvJx5QNfVJqqosqdQ,86224
329
334
  ccxt/async_support/eterex.py,sha256=Xs0IJgDVvJ5Es9y8gnisi9HqePYerx8zCg1h3_Y6kqM,10727
330
335
  ccxt/async_support/excoino.py,sha256=DniOpS8pwmG2e6AZVr23W6GaH9vx5k0gujjDLK70BBs,15928
331
- ccxt/async_support/exir.py,sha256=J2-VA5fGtUyWPNu_utZv65pOJf-TSCraGP0tv820oyE,14803
336
+ ccxt/async_support/exir.py,sha256=GaftMPPxGxvStLgVo0F0G3lrSKKm2VeRE6teQTB3B9Q,14856
332
337
  ccxt/async_support/exmo.py,sha256=D0WSU6GB1Pi2zcjR5zq-WGia6JubKAL__i_nZM38eKA,122525
333
338
  ccxt/async_support/exnovin.py,sha256=bKBK1SBer2hPf_p_qImAvV4JI9S64LD4eYEH_h0Sg-M,13109
334
339
  ccxt/async_support/farhadexchange.py,sha256=0B8UNuNthwDgiyFUdZPAF_e7kpuTD9Benz7FEr8pszk,9939
@@ -360,7 +365,7 @@ ccxt/async_support/mexc.py,sha256=NONCKdVPd2VM65J4kk26iEbkMdKwt-k8TAHQa4tLY84,26
360
365
  ccxt/async_support/modetrade.py,sha256=TR2m_iMqUeMnpqHGJ2yoL79USuCbIppDRYwl7luhdEk,125649
361
366
  ccxt/async_support/myokx.py,sha256=hU24R4SOpmyjnvgZe5YSU4ELucsSZlENBox4U0P862w,1787
362
367
  ccxt/async_support/ndax.py,sha256=9Rxl5ISp9HFqQ-aovzQCJkowxzvbvVDjUTKC13_jMRs,114740
363
- ccxt/async_support/nobitex.py,sha256=ty1CKeqMoHgCwKQ0n0T8JNrY2w36dUqZfnICIpnu3Sc,16716
368
+ ccxt/async_support/nobitex.py,sha256=bC-cJSuUBPTy4rBGZHoqEcR5BGFlAyIhsacaYh6z-VI,17047
364
369
  ccxt/async_support/novadax.py,sha256=OCgHTU0fbdywjSRp_S3iUmxUVWMWQaUr4bYccYwiQ1A,69490
365
370
  ccxt/async_support/oceanex.py,sha256=_vi8sI3aucMmMPXwqqrpdfnWWHpfLYN_QaBpo2s9zvg,44533
366
371
  ccxt/async_support/okcoin.py,sha256=xK_FnaPu63ElHGgtUPxwfDmCV4Dkp3ONgGhKCFkk6wo,154471
@@ -377,12 +382,13 @@ ccxt/async_support/phemex.py,sha256=OeSEn8uXYh7Z-6eeivJEQghrBr9s__qj1_C6zS9icUw,
377
382
  ccxt/async_support/poloniex.py,sha256=uniLoCvC3e37u6mLp-20H2awAGu5XsTHVc-LHkcbX1I,155852
378
383
  ccxt/async_support/probit.py,sha256=uQOGglJZ1MWcmGwBWv3VJRluUB5HWkl80brpyElBoQc,79597
379
384
  ccxt/async_support/ramzinex.py,sha256=Abs2Uj31vh4KnAXxuRsTcj2Bjrs0MExZ4dC4PCTuX4Y,19584
380
- ccxt/async_support/sarmayex.py,sha256=Hy3ZK1E-HLslXJCYsHsPXUupkxnAhOWL8jSmmnTX-OI,13460
385
+ ccxt/async_support/sarmayex.py,sha256=WqQjSTKi9EAoaOilJEEA0BMtqoEKOzk9XoAijdD1i-E,13460
381
386
  ccxt/async_support/sarrafex.py,sha256=ZJBxRfWZ0vMgBPeneEyxlNVxXHLzeGICwxT3lAVhH-M,19223
382
387
  ccxt/async_support/tabdeal.py,sha256=_kDTQeB8pQSZKYOiBc0IoZBuIsOkwvhhhTNN8m4A0G8,14450
383
388
  ccxt/async_support/tetherland.py,sha256=k3zpZ7j6sFJm0Rb8f5tRVz46yG8Zyc5mHwKBm2cUYfE,13940
384
389
  ccxt/async_support/timex.py,sha256=SMMswaincdUzCI8waSpCnCEMPG5zEWe6UtcE4KteJaI,77060
385
390
  ccxt/async_support/tokocrypto.py,sha256=noI2aWGN2rH71WDomTl2GeysjsNbuMbLNHKMTNvJYOs,126690
391
+ ccxt/async_support/toobit.py,sha256=hDiHHwk_7zV0yH70zuzVnQb11fPVpafBuurU5ir5aO4,13817
386
392
  ccxt/async_support/tradeogre.py,sha256=gTmxvLXyRX8Ye8OTIrpKLso9QltZ4ZOrwxHklHrvhv8,33954
387
393
  ccxt/async_support/twox.py,sha256=FEYBvRZxl-mtN3RgN_s4GzlMG1f71nNH3KRqh1s2ioU,12120
388
394
  ccxt/async_support/ubitex.py,sha256=lpLvSKKOftf7FjGRfIcJkY1sCWprmJQB-SvEvJIv_FY,16564
@@ -398,7 +404,7 @@ ccxt/async_support/yobit.py,sha256=FBI7ajvxprTYUqX8zosd7-LntDft8vIEjRTHng5ry8Y,5
398
404
  ccxt/async_support/zaif.py,sha256=mh0PETLMTJV509zhT7jukddg6S7YhvwhCT7zqxC6YLA,31364
399
405
  ccxt/async_support/zonda.py,sha256=7hmHotE5JBd8034d1ZbX3oIeWIpQFrQb8aK-dP3Btx0,85327
400
406
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
401
- ccxt/async_support/base/exchange.py,sha256=F8astaio1v_0MuDn3pjKByPR6NdwB1lSvDE71auAnA8,121268
407
+ ccxt/async_support/base/exchange.py,sha256=8da6qNt4N5ZwjLyy7T5XZaiwghbexHX3lPti67Mgzis,121268
402
408
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
403
409
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
404
410
  ccxt/async_support/base/ws/cache.py,sha256=xf2VOtfUwloxSlIQ39M1RGZHWQzyS9IGhB5NX6cDcAc,8370
@@ -410,10 +416,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
410
416
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
411
417
  ccxt/base/decimal_to_precision.py,sha256=3XI30u9YudHbTA438397u5rkdlXa3atxwZEfUus3C4k,6803
412
418
  ccxt/base/errors.py,sha256=OGhWNvNtRlJOzFx-n1x3ZjTnaPpfWH0Vc0xACS-MeDw,5012
413
- ccxt/base/exchange.py,sha256=uA5L1S85RqI7H9tDUkHTeqUBX_HzGD3tMl4Y7r4y_eU,334337
419
+ ccxt/base/exchange.py,sha256=hCVro64mcaWt9mwkjXkaaOYB8lP6xiiL1e_WMP-Afog,334337
414
420
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
415
421
  ccxt/base/types.py,sha256=Gvbogh9i7pPH7Z18xesYeDPribqqwq8uKpOv-YODFBs,11505
416
- ccxt/pro/__init__.py,sha256=0odvpwqOXb19_ZZnDog8gyWZ8oce8gt0CUiFzR53cOY,11463
422
+ ccxt/pro/__init__.py,sha256=y9lSdKFSFamdzxT17RIkWpyQsokPiwGndJp0NkAw2lA,11463
417
423
  ccxt/pro/alpaca.py,sha256=REAEZxdv2pY8xjxBGCBca3nPKpIdleVqr-IVpuVmADg,27637
418
424
  ccxt/pro/apex.py,sha256=FLBaLN2FESIh9gqHPVwf0IkkIHpxGHHUcFwgBGBEkrA,42018
419
425
  ccxt/pro/ascendex.py,sha256=P0DnIMIA-BIGxyoEQBLGtjH-whRhkPbhe8gU2s5V238,37526
@@ -736,8 +742,8 @@ ccxt/test/tests_async.py,sha256=D5ZDYYW635E2LFEhJt7HfIjbFVCQl3WSBEFnR-QEQzM,9549
736
742
  ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
737
743
  ccxt/test/tests_init.py,sha256=qM0-Gb0h0p6CANWTkyYZI7wl-iYOcrPur7aj_OKh7m0,1212
738
744
  ccxt/test/tests_sync.py,sha256=Rr72cGmoKqbUIIEJJAGh2_QhBc4rIZlBxVtGCQVd4BE,94440
739
- ccxt_ir-4.5.1.dist-info/licenses/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
740
- ccxt_ir-4.5.1.dist-info/METADATA,sha256=_7oHOyQwH6g9q8Qv8DVW7-McIau6ZB0Hx3qbON6DB_A,138982
741
- ccxt_ir-4.5.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
742
- ccxt_ir-4.5.1.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
743
- ccxt_ir-4.5.1.dist-info/RECORD,,
745
+ ccxt_ir-4.7.0.dist-info/licenses/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
746
+ ccxt_ir-4.7.0.dist-info/METADATA,sha256=bv8Q5fUtCJ4edgRGK73c7jFCXfXgBgFGkoYaE1D19m0,139254
747
+ ccxt_ir-4.7.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
748
+ ccxt_ir-4.7.0.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
749
+ ccxt_ir-4.7.0.dist-info/RECORD,,