ccxt-ir 4.6.1__py2.py3-none-any.whl → 4.9.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}
ccxt/xt.py CHANGED
@@ -1609,7 +1609,7 @@ class xt(Exchange, ImplicitAPI):
1609
1609
  elif market['inverse']:
1610
1610
  response = self.publicInverseGetFutureMarketV1PublicQAggTicker(self.extend(request, params))
1611
1611
  else:
1612
- response = self.publicSpotGetTicker24h(self.extend(request, params))
1612
+ response = self.publicSpotGetTicker(self.extend(request, params))
1613
1613
  #
1614
1614
  # spot
1615
1615
  #
@@ -1861,7 +1861,7 @@ class xt(Exchange, ImplicitAPI):
1861
1861
  'change': self.safe_number(ticker, 'cv'),
1862
1862
  'percentage': self.parse_number(percentage),
1863
1863
  'average': None,
1864
- 'baseVolume': None,
1864
+ 'baseVolume': self.safe_number_2(ticker, 'a', 'q'),
1865
1865
  'quoteVolume': self.safe_number_2(ticker, 'a', 'v'),
1866
1866
  'info': ticker,
1867
1867
  }, market)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ccxt-ir
3
- Version: 4.6.1
3
+ Version: 4.9.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-133-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-136-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,13 +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.6.1/dist/ccxt.browser.min.js
308
- * unpkg: https://unpkg.com/ccxt@4.6.1/dist/ccxt.browser.min.js
307
+ <<<<<<< HEAD
308
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.9.0/dist/ccxt.browser.min.js
309
+ * unpkg: https://unpkg.com/ccxt@4.9.0/dist/ccxt.browser.min.js
310
+ =======
311
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.9.0/dist/ccxt.browser.min.js
312
+ * unpkg: https://unpkg.com/ccxt@4.9.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.6.1/dist/ccxt.browser.min.js"></script>
318
+ <<<<<<< HEAD
319
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.9.0/dist/ccxt.browser.min.js"></script>
320
+ =======
321
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.9.0/dist/ccxt.browser.min.js"></script>
322
+ >>>>>>> master
314
323
  console.log (ccxt.exchanges) // print all available exchanges
315
324
  ```
316
325
 
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=87Bh7lrw7oeBAP98EzDhVTNQZmueSTmQvmpPZzMxjYI,19018
1
+ ccxt/__init__.py,sha256=QcX33K5ZLVGcLqV0jBidpfc5ABLYnmTOLo_4ed-Tq2U,19308
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,7 +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=bxaTqISvkEVl5wFpooHRaZfAbxyvqfUgmfH-SEyPRk0,13828
16
+ ccxt/bit24.py,sha256=xl0kxCw1otDuMKfm6pPbHYCz_liSf1GpQaZqfXzW-wg,13769
17
17
  ccxt/bit2c.py,sha256=Yyxj7tK5kRxRJPIvsQwboWi6HwPfUOAMDr1uTrEfhyQ,41190
18
18
  ccxt/bitbank.py,sha256=K1rsciFMTmfEjDdab97E9IIxfIcMSHoa9YGIepqj2pY,47781
19
19
  ccxt/bitbns.py,sha256=5GqPAa7MEbUA2BcDzlus-GGW2rjUliqeWTg4P5gm0us,50931
@@ -32,6 +32,7 @@ ccxt/bitso.py,sha256=chJcbGZw210_PbGFo68JjngN5BpHO5B9POlQHFV_PXs,75701
32
32
  ccxt/bitstamp.py,sha256=XPwRl8x9oFKdxYOxdTnm3vGH-5dWkVdyW4hI-Jq4rvw,97405
33
33
  ccxt/bitteam.py,sha256=Jv3wdSztOGKULkV1uZydBJxwQ3I0_M8kI6CDB_gtH9Y,106752
34
34
  ccxt/bittrade.py,sha256=vazz9sdfSGS8s0lH0_QVFKS9mj20PAa7nOAfWsonKow,92974
35
+ ccxt/bitunix.py,sha256=hctItPqGfSiTZsHYgZVGXb7GhizKzzKcIgK1Xw6uex4,11451
35
36
  ccxt/bitvavo.py,sha256=kX5o4_w5LGbU71mbUzF30coWJHSoZp_gqN1aWYbool0,97531
36
37
  ccxt/blockchaincom.py,sha256=_1A2kxt4QHJ5IUJKwCM8sTjz7ZKqUiM0SM73kOl3l0Q,51724
37
38
  ccxt/blofin.py,sha256=3Lb0htgOAPkkR8kY9qT3gNzG4CK-sLEFZRD5H3rW9-E,113612
@@ -63,7 +64,7 @@ ccxt/digifinex.py,sha256=qmYcsm1XTAltKQeywgR0xnnbVVdTVg5Dyu9QHbFiG1I,174815
63
64
  ccxt/ellipx.py,sha256=fith62iZEIpyx0drFdQfLFxADGsum6M-NJAFrYU8b54,85916
64
65
  ccxt/eterex.py,sha256=rbKwogBAVBZh7owkNkaY5xur6Y4foab940ezbpFE6uA,10665
65
66
  ccxt/excoino.py,sha256=UzRwsJnYDSq6RqbWLme0WkRdmlWDOBDWYrRpa6YyUs8,15836
66
- ccxt/exir.py,sha256=_HmnyiWzmNTR6AN0JMFdhMJpoPYd2qZ5QH3swNICZV0,14807
67
+ ccxt/exir.py,sha256=NIp5EDp0g7Hix_gUwzpM1yW67tQ0KR2dDPdp_j1A0No,14758
67
68
  ccxt/exmo.py,sha256=rnpx2B__KkLF1TCWj_XDEsVnNbtOgJvmF6Kg1AOAS3Q,121802
68
69
  ccxt/exnovin.py,sha256=JVPKmxEHOLmGj2eeCpkKYLPLERHwu3jRbUT1PcAchMo,13035
69
70
  ccxt/farhadexchange.py,sha256=Gn6Q_3lb0KjpUGTFHuRtrrYEJOVG78N6JQmBsF6LYbo,9883
@@ -83,6 +84,7 @@ ccxt/hyperliquid.py,sha256=nRrjedrxNgEuUIuH4Ml7qM9JKw9rPUjmsbylSImCw_I,160952
83
84
  ccxt/independentreserve.py,sha256=qK_Xd8oSwQ8VTKqDTSUZoxZ8rfKwd2CrfDC9JdBi6uc,44814
84
85
  ccxt/indodax.py,sha256=4UtmYm2bExkrmfpnUv-6RSEN8EAyhVWBvdDZCoLILkQ,59303
85
86
  ccxt/jibitex.py,sha256=CH3Gb4aXfzBsfUYqKdpQVrohq9o-11AMRWZVXaZkzFk,15785
87
+ ccxt/kcex.py,sha256=WLavduoKatuE1OyodQE85MBr08vMGf9-yINg738KNeY,11957
86
88
  ccxt/kraken.py,sha256=wE8GI7g9xx3Gx785M8_W5pn3-wxSDMvxMlb9qQlPkPc,148530
87
89
  ccxt/krakenfutures.py,sha256=91NTUvEalzJe6HxX_2JK7MP4oPFmMgEp_QJDJ71n-aA,122915
88
90
  ccxt/kucoin.py,sha256=B0lAhQ5v49yhDJyD117FiLBJOX0XKhL2C9zz9YrrIUU,232486
@@ -118,6 +120,7 @@ ccxt/tabdeal.py,sha256=OWR4aV5Ek3cgIk3zjXy1l04hdbLxJZxd-3icm6prAvA,14358
118
120
  ccxt/tetherland.py,sha256=W5RTlW37Kgt6rhgWT4x3Gdn_PIRDjuOhhI9k5HVmTvo,13884
119
121
  ccxt/timex.py,sha256=MiLB4GyIpEOHweaQuzIrBJyuevw3jsVvitsaK7iQ6RE,76698
120
122
  ccxt/tokocrypto.py,sha256=-q95F-FvV-dgatuZzfJNnojtNxuyyyzmTpHLyOpu8Vw,126328
123
+ ccxt/toobit.py,sha256=hFs4roZGL7KfxtFNfcHgkrZVBli7llmm_ksseK1p9ds,13737
121
124
  ccxt/tradeogre.py,sha256=Q8CSHf8QGzb37jMFhaBmc_IZ1zga0eRXFVbjhmJnyFY,33712
122
125
  ccxt/twox.py,sha256=V1PDZqRWEyV5wuclQHtfvhlJzSF7pyHns9q2JRoJaBM,12064
123
126
  ccxt/ubitex.py,sha256=Z9ThriWhEmlZwBgb7WmtIFUC_EfTa17GTyj_0SNumZA,16466
@@ -128,7 +131,7 @@ ccxt/wavesexchange.py,sha256=y9eMzsVN0QK7fPTVnkKwsOyv5D9amgTCLyQiRTqSGgw,120115
128
131
  ccxt/whitebit.py,sha256=3ZA8_EuMFj45gqBXhSWsa0gZhxO2Cd430JDEYr2sNgc,151956
129
132
  ccxt/woo.py,sha256=69DGLHgIV_xk5ZguuOjR6JRUi4p17dSn9ykhUeqZeL8,180520
130
133
  ccxt/woofipro.py,sha256=BlhYlBwfdIjv8hE0CC5nxObF2X6BU6e61nLXEu3wzXY,125453
131
- ccxt/xt.py,sha256=AXWbKkFd7sKLyW1mpPzKHEUnpbuNhrLuD-WAqc1topA,216394
134
+ ccxt/xt.py,sha256=15dJ6XgcNEuPHppwV5du3RgYfst5lK0DA14_E1S4c5s,216423
132
135
  ccxt/yobit.py,sha256=Mh5NsoZ3csITuRdEScjGqeowlKsUtodUNVjL89BW2m4,57757
133
136
  ccxt/zaif.py,sha256=Bn21zden5qjksTPBKIEPKlDEN9yuWP76JifhA3fnFBU,31182
134
137
  ccxt/zonda.py,sha256=h8GzoJfu-Md_ZjrT0s75UAeQ5ce-uwDT0WEap8GIKjE,85013
@@ -166,6 +169,7 @@ ccxt/abstract/bitso.py,sha256=aWtuVoQ3CLMBTukWz3L3-gagyhIeEcEf4G5J48Hz_3k,4025
166
169
  ccxt/abstract/bitstamp.py,sha256=YcFXFGm3RrCTF-Hi3x3v2wFt3BaH2PYslUVIoZOmcWE,29877
167
170
  ccxt/abstract/bitteam.py,sha256=k7txfUy717X9pi_XhXuCkpa7fR0Ul7kQYw7mC4REzuI,3478
168
171
  ccxt/abstract/bittrade.py,sha256=12RtB9kVykpBYwQ5JjYa4LK2Fg7MeynJAuOy67F7TP4,14331
172
+ ccxt/abstract/bitunix.py,sha256=1OETXOeuun0F5gsHfytl4-0QChur1ZfyHPykICEOaNc,361
169
173
  ccxt/abstract/bitvavo.py,sha256=bPoB0TAmdey7t_O7GBrZpaS9MtwjySWsO1ctqqIuLTw,2357
170
174
  ccxt/abstract/blockchaincom.py,sha256=f4bFO3bWjk9ojqGolkzuau06f1CksUAJdLvSc4diA7c,2638
171
175
  ccxt/abstract/blofin.py,sha256=HSNIiR_tGKzYlJ-sOtTyXBmvuN9QdhZ8T0ej1lixVMk,9261
@@ -217,6 +221,7 @@ ccxt/abstract/hyperliquid.py,sha256=YPz-oqjy-ZkDW9chuMZM8pGIUs_5qeP3nQ-d_TSbCyw,
217
221
  ccxt/abstract/independentreserve.py,sha256=GBa5JX6Wv9rdh2B3a0L4pHCqF6jMLQMcLSOQvAxzq1k,4975
218
222
  ccxt/abstract/indodax.py,sha256=E16v8W6Ac9kmV9hFEqf_kwV6VQmK74lc1LEUEkuDpYg,2488
219
223
  ccxt/abstract/jibitex.py,sha256=iOktSTvFEp3-kNUeZNIfEY0BPPB9bRlOS2sk7WuI4DM,454
224
+ ccxt/abstract/kcex.py,sha256=ms_exDB-TZhRgb1qLMD1dZo7Yv6rMq-LOtDzPrc01cI,579
220
225
  ccxt/abstract/kraken.py,sha256=glI0xp23zwl3KVtmfRPS6yoMlD86IhihUPi6LjFzM6I,5989
221
226
  ccxt/abstract/krakenfutures.py,sha256=pu81cKhQgBkQd8F9-Ly3b7xQD-qQ8WLi8EUMfmAUJcM,4080
222
227
  ccxt/abstract/kucoin.py,sha256=kVrVEXiigc36arfbSS8lDUMnG7uFdKgUKHIhVb0Am_8,28626
@@ -252,6 +257,7 @@ ccxt/abstract/tabdeal.py,sha256=9wPBn90yiZrWpS9lWHAbE-mvOj4rdn_0ImYwPaRN5js,418
252
257
  ccxt/abstract/tetherland.py,sha256=oeq5VUYhHg8h9IaD7bDQlTCgZfHY80WAYnO-F-esl18,174
253
258
  ccxt/abstract/timex.py,sha256=9b0CDsyjm8XrYZmhUMB1dTHUmyE9YrsZTCZrz1UTt6E,5875
254
259
  ccxt/abstract/tokocrypto.py,sha256=OF5UW4ch_Lf3-avOPgd4AD4CVrOUDUfUpSMCmxhNHlk,4094
260
+ ccxt/abstract/toobit.py,sha256=7Qeqn5TJ8GKY5Jug5ynKwktqhBSZYhc07Ht6qJcPU4Q,295
255
261
  ccxt/abstract/tradeogre.py,sha256=bDouHP2c50F6Ins5EU2-3Jw10PsIG2KK3bcKv8y7678,1676
256
262
  ccxt/abstract/twox.py,sha256=RHI1yDeSsDxNgV3YX82DZCg1p36V-6fDOcmTXaMZK6w,166
257
263
  ccxt/abstract/ubitex.py,sha256=3bN3gGo86vcA1MPvlJTOcSkf8Ql-q0gbvXJCqhB_a-Q,416
@@ -266,7 +272,7 @@ ccxt/abstract/xt.py,sha256=n3eX1cItL_J0j8prOViV-C_tRwIFv_GO8JTvZZw8jv8,27837
266
272
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
267
273
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
268
274
  ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
269
- ccxt/async_support/__init__.py,sha256=eWXWajm2NseaJunUbh-YtPM4ZyK1eyDoVMBgpFpceAo,19071
275
+ ccxt/async_support/__init__.py,sha256=MkqLGWe3daJOuh48jeZW-qOJxzXJlENLQ0biI0hjoK4,19391
270
276
  ccxt/async_support/abantether.py,sha256=uLWn1i6gE8dtZr9BXmXfyT0Y-MzYYZU1DDeXGjFngAM,12064
271
277
  ccxt/async_support/afratether.py,sha256=JC9ro3QrE8vE4YUm51xqwciSQhHfTPb98Mw1r6cJyvg,10869
272
278
  ccxt/async_support/alpaca.py,sha256=oFpSnAjX-faRgTN4d5rwHa08WRaCkwiAbHGZ7JBe6Ww,81140
@@ -281,7 +287,7 @@ ccxt/async_support/binancecoinm.py,sha256=GS5wgqgwna0HcRW6f6hHjzPq5wYHAn_OArdNan
281
287
  ccxt/async_support/binanceus.py,sha256=T9ab3Y4N822a_0agKM1mAkbOX3ChmSq_ymAsY2ZmxlI,9564
282
288
  ccxt/async_support/binanceusdm.py,sha256=sdx3CYlOma49ss3XxRnZZpqkhwUa0cAz_tfP_64LOwU,2739
283
289
  ccxt/async_support/bingx.py,sha256=gFXYiuHiNfh6BEghlr6MhmoI-1wTMGrEUSgvBIhE7CU,279832
284
- ccxt/async_support/bit24.py,sha256=R-2uCYMia4fsg0T1ewNtQQfsD9dYGnkfLLKtnmp_5xc,13884
290
+ ccxt/async_support/bit24.py,sha256=qsUKq4EXY06KGc8qiJnQPGNMA0dMfcPLoIAX99K6oXU,13825
285
291
  ccxt/async_support/bit2c.py,sha256=CYx7PSZNdg3JyN08DTYRtLYPxsz8gOoYxpgN02h1LjI,41402
286
292
  ccxt/async_support/bitbank.py,sha256=UHXNZ9GG4v-3-GHVxoFSYfNaLHSkPptfRlC0MiDBGcc,48041
287
293
  ccxt/async_support/bitbns.py,sha256=L6wAlhQu7ydl8R1kph7_K6QvnMAKuvjWQd_4w7d_uzY,51185
@@ -300,6 +306,7 @@ ccxt/async_support/bitso.py,sha256=MhVpnWKbEVeSpeINmk0XeJVzywuXFCNNp9glz5iSer8,7
300
306
  ccxt/async_support/bitstamp.py,sha256=4DumFv-Z0pMNAtuNbigk49EGQe7JLFxhqG-4DOBbxqA,97905
301
307
  ccxt/async_support/bitteam.py,sha256=2k4h8RT_YzDO6TXB803udxI_-AGZ75IBUFLVmXb_HOM,107084
302
308
  ccxt/async_support/bittrade.py,sha256=Tx9aiV8fSN8UbDE1hBqzfHY1DYceUTT-DKkYyu_0-PI,93474
309
+ ccxt/async_support/bitunix.py,sha256=G2PbVeLE4UTqag3DqNIUL8QgvtPPWHmgOz0mPci8hLc,11507
303
310
  ccxt/async_support/bitvavo.py,sha256=L4oAFMb_URyPwA1zTcamDjX0P5rJAhNBH7AcojP5wtc,97965
304
311
  ccxt/async_support/blockchaincom.py,sha256=Z6pq5V7-0q_xfOVdR2MmBShsxtuGh3v6mNY0jdQqGfY,52116
305
312
  ccxt/async_support/blofin.py,sha256=I7-521zgBd6Wpfk4myCvqkjo5AydA49TdXb2h6fCNB4,114274
@@ -331,7 +338,7 @@ ccxt/async_support/digifinex.py,sha256=8_STpgUHR4WFBYFgUJD7TJbH8ZOMOiqY5UZvklO2Y
331
338
  ccxt/async_support/ellipx.py,sha256=RTBLSiZGXRWtcvhvACTvhjYxudyvJx5QNfVJqqosqdQ,86224
332
339
  ccxt/async_support/eterex.py,sha256=Xs0IJgDVvJ5Es9y8gnisi9HqePYerx8zCg1h3_Y6kqM,10727
333
340
  ccxt/async_support/excoino.py,sha256=DniOpS8pwmG2e6AZVr23W6GaH9vx5k0gujjDLK70BBs,15928
334
- ccxt/async_support/exir.py,sha256=wl5IO6ZFwCYVwgcdalTMJ9di-JXZF4rxx0tbEHbj53k,14905
341
+ ccxt/async_support/exir.py,sha256=GaftMPPxGxvStLgVo0F0G3lrSKKm2VeRE6teQTB3B9Q,14856
335
342
  ccxt/async_support/exmo.py,sha256=D0WSU6GB1Pi2zcjR5zq-WGia6JubKAL__i_nZM38eKA,122525
336
343
  ccxt/async_support/exnovin.py,sha256=bKBK1SBer2hPf_p_qImAvV4JI9S64LD4eYEH_h0Sg-M,13109
337
344
  ccxt/async_support/farhadexchange.py,sha256=0B8UNuNthwDgiyFUdZPAF_e7kpuTD9Benz7FEr8pszk,9939
@@ -351,6 +358,7 @@ ccxt/async_support/hyperliquid.py,sha256=WwsqsDY-95I8cTzVRcZaqV-JSXoau-XsHAYfOP9
351
358
  ccxt/async_support/independentreserve.py,sha256=jNDXX5VAsUKDfKRYb_qtqT4UJNimsO1mWbCDxL1lU1s,45112
352
359
  ccxt/async_support/indodax.py,sha256=gDiNbkssepp2ARs16EroBSG7DTgCHXa1GgnB3NNSd6o,59611
353
360
  ccxt/async_support/jibitex.py,sha256=6g3MdbPusjRr7AOoIq4lUHD9GfGHpJy0ZQ-rjTu4GW4,15883
361
+ ccxt/async_support/kcex.py,sha256=IR0ikKaBQ4PlV6N4vhOAJTnStpdIVp6Zh-_pgcl9ohA,12019
354
362
  ccxt/async_support/kraken.py,sha256=YcByHZKnph2cKKFRHbd24b6r1AR57qdeFMZdcyEviAg,149212
355
363
  ccxt/async_support/krakenfutures.py,sha256=D0IYSDLPm3hMOy_KMrAqcZLNyoJ89Ur5zJmL597mXc8,123403
356
364
  ccxt/async_support/kucoin.py,sha256=1g5zjnf_ad1TiIpaRfc86m6ieBTvrp9V_UcUv3oIHHE,233636
@@ -386,6 +394,7 @@ ccxt/async_support/tabdeal.py,sha256=_kDTQeB8pQSZKYOiBc0IoZBuIsOkwvhhhTNN8m4A0G8
386
394
  ccxt/async_support/tetherland.py,sha256=k3zpZ7j6sFJm0Rb8f5tRVz46yG8Zyc5mHwKBm2cUYfE,13940
387
395
  ccxt/async_support/timex.py,sha256=SMMswaincdUzCI8waSpCnCEMPG5zEWe6UtcE4KteJaI,77060
388
396
  ccxt/async_support/tokocrypto.py,sha256=noI2aWGN2rH71WDomTl2GeysjsNbuMbLNHKMTNvJYOs,126690
397
+ ccxt/async_support/toobit.py,sha256=hDiHHwk_7zV0yH70zuzVnQb11fPVpafBuurU5ir5aO4,13817
389
398
  ccxt/async_support/tradeogre.py,sha256=gTmxvLXyRX8Ye8OTIrpKLso9QltZ4ZOrwxHklHrvhv8,33954
390
399
  ccxt/async_support/twox.py,sha256=FEYBvRZxl-mtN3RgN_s4GzlMG1f71nNH3KRqh1s2ioU,12120
391
400
  ccxt/async_support/ubitex.py,sha256=lpLvSKKOftf7FjGRfIcJkY1sCWprmJQB-SvEvJIv_FY,16564
@@ -396,12 +405,12 @@ ccxt/async_support/wavesexchange.py,sha256=R6ZdfHGjPZCDZS6ZSgoMPDRT3NM6tYoqObF6G
396
405
  ccxt/async_support/whitebit.py,sha256=p6BqQ9JA_KqeO0YqXmEcXpnJhzqSJn2-r6vK2qDezE8,152780
397
406
  ccxt/async_support/woo.py,sha256=NudNZNy3mQBphfcLIoQQb0IdOCBY6MeAsD18ZLOTCr4,181549
398
407
  ccxt/async_support/woofipro.py,sha256=QQjxGUdGOOnQoC7VjqmBcUg9vnW50FNCcnxXubyxFcE,126201
399
- ccxt/async_support/xt.py,sha256=R6CcuYgwaUrDG2VAyAoFeXPt0vfgCAByCvCM5nVfUss,217626
408
+ ccxt/async_support/xt.py,sha256=G8dHvb_b27wOnDgMX71SFc2DaNOzAh-uyQWH7-lKfqQ,217655
400
409
  ccxt/async_support/yobit.py,sha256=FBI7ajvxprTYUqX8zosd7-LntDft8vIEjRTHng5ry8Y,58085
401
410
  ccxt/async_support/zaif.py,sha256=mh0PETLMTJV509zhT7jukddg6S7YhvwhCT7zqxC6YLA,31364
402
411
  ccxt/async_support/zonda.py,sha256=7hmHotE5JBd8034d1ZbX3oIeWIpQFrQb8aK-dP3Btx0,85327
403
412
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
404
- ccxt/async_support/base/exchange.py,sha256=bk1-QHvh69e3X7a32Nm0fwzrh8yqRVHNqZPM7U6H53Q,121268
413
+ ccxt/async_support/base/exchange.py,sha256=xuhTYFsBfNsNTRDZ2tl_tksjpVXBGpiEi5sNZK7YSYY,121268
405
414
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
406
415
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
407
416
  ccxt/async_support/base/ws/cache.py,sha256=xf2VOtfUwloxSlIQ39M1RGZHWQzyS9IGhB5NX6cDcAc,8370
@@ -413,10 +422,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
413
422
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
414
423
  ccxt/base/decimal_to_precision.py,sha256=3XI30u9YudHbTA438397u5rkdlXa3atxwZEfUus3C4k,6803
415
424
  ccxt/base/errors.py,sha256=OGhWNvNtRlJOzFx-n1x3ZjTnaPpfWH0Vc0xACS-MeDw,5012
416
- ccxt/base/exchange.py,sha256=N4RVR7YUqQaVuQatzRhVzAs47ht7cCDXmuQ-ZBcypYc,334337
425
+ ccxt/base/exchange.py,sha256=cDWt1D0AO43LkUhSvXZDJNKoUq-C1O1ApMhTNlqghUs,334337
417
426
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
418
427
  ccxt/base/types.py,sha256=Gvbogh9i7pPH7Z18xesYeDPribqqwq8uKpOv-YODFBs,11505
419
- ccxt/pro/__init__.py,sha256=NVYtukYyHyKghPC0sfRNH8RFMdYSlGoZhPpHWpVYm6U,11463
428
+ ccxt/pro/__init__.py,sha256=Ps66VsmDtcD9yC-pBmql5AcwoSegClnkyhNYWB2nBrs,11463
420
429
  ccxt/pro/alpaca.py,sha256=REAEZxdv2pY8xjxBGCBca3nPKpIdleVqr-IVpuVmADg,27637
421
430
  ccxt/pro/apex.py,sha256=FLBaLN2FESIh9gqHPVwf0IkkIHpxGHHUcFwgBGBEkrA,42018
422
431
  ccxt/pro/ascendex.py,sha256=P0DnIMIA-BIGxyoEQBLGtjH-whRhkPbhe8gU2s5V238,37526
@@ -739,8 +748,8 @@ ccxt/test/tests_async.py,sha256=D5ZDYYW635E2LFEhJt7HfIjbFVCQl3WSBEFnR-QEQzM,9549
739
748
  ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
740
749
  ccxt/test/tests_init.py,sha256=qM0-Gb0h0p6CANWTkyYZI7wl-iYOcrPur7aj_OKh7m0,1212
741
750
  ccxt/test/tests_sync.py,sha256=Rr72cGmoKqbUIIEJJAGh2_QhBc4rIZlBxVtGCQVd4BE,94440
742
- ccxt_ir-4.6.1.dist-info/licenses/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
743
- ccxt_ir-4.6.1.dist-info/METADATA,sha256=Se-khhDWMTbw9EPJCjpg_AC1kWMutH_9EjWf9O4QWLE,138930
744
- ccxt_ir-4.6.1.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
745
- ccxt_ir-4.6.1.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
746
- ccxt_ir-4.6.1.dist-info/RECORD,,
751
+ ccxt_ir-4.9.0.dist-info/licenses/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
752
+ ccxt_ir-4.9.0.dist-info/METADATA,sha256=XTDJY5uPw4yGvpgOY0wC2CHCfoBLEJROqfFl__tNoPw,139254
753
+ ccxt_ir-4.9.0.dist-info/WHEEL,sha256=JNWh1Fm1UdwIQV075glCn4MVuCRs0sotJIq-J6rbxCU,109
754
+ ccxt_ir-4.9.0.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
755
+ ccxt_ir-4.9.0.dist-info/RECORD,,