ccxt 4.2.69__py2.py3-none-any.whl → 4.2.70__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.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

ccxt/__init__.py CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.2.69'
25
+ __version__ = '4.2.70'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.69'
7
+ __version__ = '4.2.70'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.2.69'
5
+ __version__ = '4.2.70'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.gate import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Balances, Currency, Greeks, Int, Market, Order, TransferEntry, OrderBook, OrderRequest, OrderSide, OrderType, FundingHistory, Str, Strings, Ticker, Tickers, Trade, Transaction
10
+ from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, Leverages, Market, Order, TransferEntry, OrderBook, OrderRequest, OrderSide, OrderType, FundingHistory, Str, Strings, Ticker, Tickers, Trade, Transaction
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import PermissionDenied
@@ -134,7 +134,8 @@ class gate(Exchange, ImplicitAPI):
134
134
  'fetchIsolatedBorrowRate': False,
135
135
  'fetchIsolatedBorrowRates': False,
136
136
  'fetchLedger': True,
137
- 'fetchLeverage': False,
137
+ 'fetchLeverage': True,
138
+ 'fetchLeverages': True,
138
139
  'fetchLeverageTiers': True,
139
140
  'fetchLiquidations': True,
140
141
  'fetchMarginMode': False,
@@ -6517,6 +6518,166 @@ class gate(Exchange, ImplicitAPI):
6517
6518
  side = '' # side is not used but needs to be present, otherwise crashes in php
6518
6519
  return await self.create_order(symbol, 'market', side, 0, None, params)
6519
6520
 
6521
+ async def fetch_leverage(self, symbol: str, params={}) -> Leverage:
6522
+ """
6523
+ fetch the set leverage for a market
6524
+ :see: https://www.gate.io/docs/developers/apiv4/en/#get-unified-account-information
6525
+ :see: https://www.gate.io/docs/developers/apiv4/en/#get-detail-of-lending-market
6526
+ :see: https://www.gate.io/docs/developers/apiv4/en/#query-one-single-margin-currency-pair-deprecated
6527
+ :param str symbol: unified market symbol
6528
+ :param dict [params]: extra parameters specific to the exchange API endpoint
6529
+ :param boolean [params.unified]: default False, set to True for fetching the unified accounts leverage
6530
+ :returns dict: a `leverage structure <https://docs.ccxt.com/#/?id=leverage-structure>`
6531
+ """
6532
+ await self.load_markets()
6533
+ market = None
6534
+ if symbol is not None:
6535
+ # unified account does not require a symbol
6536
+ market = self.market(symbol)
6537
+ request = {}
6538
+ response = None
6539
+ isUnified = self.safe_bool(params, 'unified')
6540
+ params = self.omit(params, 'unified')
6541
+ if market['spot']:
6542
+ request['currency_pair'] = market['id']
6543
+ if isUnified:
6544
+ response = await self.publicMarginGetUniCurrencyPairsCurrencyPair(self.extend(request, params))
6545
+ #
6546
+ # {
6547
+ # "currency_pair": "BTC_USDT",
6548
+ # "base_min_borrow_amount": "0.0001",
6549
+ # "quote_min_borrow_amount": "1",
6550
+ # "leverage": "10"
6551
+ # }
6552
+ #
6553
+ else:
6554
+ response = await self.publicMarginGetCurrencyPairsCurrencyPair(self.extend(request, params))
6555
+ #
6556
+ # {
6557
+ # "id": "BTC_USDT",
6558
+ # "base": "BTC",
6559
+ # "quote": "USDT",
6560
+ # "leverage": 10,
6561
+ # "min_base_amount": "0.0001",
6562
+ # "min_quote_amount": "1",
6563
+ # "max_quote_amount": "40000000",
6564
+ # "status": 1
6565
+ # }
6566
+ #
6567
+ elif isUnified:
6568
+ response = await self.privateUnifiedGetAccounts(self.extend(request, params))
6569
+ #
6570
+ # {
6571
+ # "user_id": 10001,
6572
+ # "locked": False,
6573
+ # "balances": {
6574
+ # "ETH": {
6575
+ # "available": "0",
6576
+ # "freeze": "0",
6577
+ # "borrowed": "0.075393666654",
6578
+ # "negative_liab": "0",
6579
+ # "futures_pos_liab": "0",
6580
+ # "equity": "1016.1",
6581
+ # "total_freeze": "0",
6582
+ # "total_liab": "0"
6583
+ # },
6584
+ # "POINT": {
6585
+ # "available": "9999999999.017023138734",
6586
+ # "freeze": "0",
6587
+ # "borrowed": "0",
6588
+ # "negative_liab": "0",
6589
+ # "futures_pos_liab": "0",
6590
+ # "equity": "12016.1",
6591
+ # "total_freeze": "0",
6592
+ # "total_liab": "0"
6593
+ # },
6594
+ # "USDT": {
6595
+ # "available": "0.00000062023",
6596
+ # "freeze": "0",
6597
+ # "borrowed": "0",
6598
+ # "negative_liab": "0",
6599
+ # "futures_pos_liab": "0",
6600
+ # "equity": "16.1",
6601
+ # "total_freeze": "0",
6602
+ # "total_liab": "0"
6603
+ # }
6604
+ # },
6605
+ # "total": "230.94621713",
6606
+ # "borrowed": "161.66395521",
6607
+ # "total_initial_margin": "1025.0524665088",
6608
+ # "total_margin_balance": "3382495.944473949183",
6609
+ # "total_maintenance_margin": "205.01049330176",
6610
+ # "total_initial_margin_rate": "3299.827135672679",
6611
+ # "total_maintenance_margin_rate": "16499.135678363399",
6612
+ # "total_available_margin": "3381470.892007440383",
6613
+ # "unified_account_total": "3381470.892007440383",
6614
+ # "unified_account_total_liab": "0",
6615
+ # "unified_account_total_equity": "100016.1",
6616
+ # "leverage": "2"
6617
+ # }
6618
+ #
6619
+ else:
6620
+ raise NotSupported(self.id + ' fetchLeverage() does not support ' + market['type'] + ' markets')
6621
+ return self.parse_leverage(response, market)
6622
+
6623
+ async def fetch_leverages(self, symbols: List[str] = None, params={}) -> Leverages:
6624
+ """
6625
+ fetch the set leverage for all leverage markets, only spot margin is supported on gate
6626
+ :see: https://www.gate.io/docs/developers/apiv4/en/#list-lending-markets
6627
+ :see: https://www.gate.io/docs/developers/apiv4/en/#list-all-supported-currency-pairs-supported-in-margin-trading-deprecated
6628
+ :param str[] symbols: a list of unified market symbols
6629
+ :param dict [params]: extra parameters specific to the exchange API endpoint
6630
+ :param boolean [params.unified]: default False, set to True for fetching unified account leverages
6631
+ :returns dict: a list of `leverage structures <https://docs.ccxt.com/#/?id=leverage-structure>`
6632
+ """
6633
+ await self.load_markets()
6634
+ symbols = self.market_symbols(symbols)
6635
+ response = None
6636
+ isUnified = self.safe_bool(params, 'unified')
6637
+ params = self.omit(params, 'unified')
6638
+ marketIdRequest = 'id'
6639
+ if isUnified:
6640
+ marketIdRequest = 'currency_pair'
6641
+ response = await self.publicMarginGetUniCurrencyPairs(params)
6642
+ #
6643
+ # [
6644
+ # {
6645
+ # "currency_pair": "1INCH_USDT",
6646
+ # "base_min_borrow_amount": "8",
6647
+ # "quote_min_borrow_amount": "1",
6648
+ # "leverage": "3"
6649
+ # },
6650
+ # ]
6651
+ #
6652
+ else:
6653
+ response = await self.publicMarginGetCurrencyPairs(params)
6654
+ #
6655
+ # [
6656
+ # {
6657
+ # "id": "1CAT_USDT",
6658
+ # "base": "1CAT",
6659
+ # "quote": "USDT",
6660
+ # "leverage": 3,
6661
+ # "min_base_amount": "71",
6662
+ # "min_quote_amount": "1",
6663
+ # "max_quote_amount": "10000",
6664
+ # "status": 1
6665
+ # },
6666
+ # ]
6667
+ #
6668
+ return self.parse_leverages(response, symbols, marketIdRequest, 'spot')
6669
+
6670
+ def parse_leverage(self, leverage, market=None) -> Leverage:
6671
+ marketId = self.safe_string_2(leverage, 'currency_pair', 'id')
6672
+ leverageValue = self.safe_integer(leverage, 'leverage')
6673
+ return {
6674
+ 'info': leverage,
6675
+ 'symbol': self.safe_symbol(marketId, market, '_', 'spot'),
6676
+ 'marginMode': None,
6677
+ 'longLeverage': leverageValue,
6678
+ 'shortLeverage': leverageValue,
6679
+ }
6680
+
6520
6681
  def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
6521
6682
  if response is None:
6522
6683
  return None
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.69'
7
+ __version__ = '4.2.70'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
ccxt/gate.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.gate import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Greeks, Int, Market, Order, TransferEntry, OrderBook, OrderRequest, OrderSide, OrderType, FundingHistory, Str, Strings, Ticker, Tickers, Trade, Transaction
9
+ from ccxt.base.types import Balances, Currency, Greeks, Int, Leverage, Leverages, Market, Order, TransferEntry, OrderBook, OrderRequest, OrderSide, OrderType, FundingHistory, Str, Strings, Ticker, Tickers, Trade, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import PermissionDenied
@@ -133,7 +133,8 @@ class gate(Exchange, ImplicitAPI):
133
133
  'fetchIsolatedBorrowRate': False,
134
134
  'fetchIsolatedBorrowRates': False,
135
135
  'fetchLedger': True,
136
- 'fetchLeverage': False,
136
+ 'fetchLeverage': True,
137
+ 'fetchLeverages': True,
137
138
  'fetchLeverageTiers': True,
138
139
  'fetchLiquidations': True,
139
140
  'fetchMarginMode': False,
@@ -6516,6 +6517,166 @@ class gate(Exchange, ImplicitAPI):
6516
6517
  side = '' # side is not used but needs to be present, otherwise crashes in php
6517
6518
  return self.create_order(symbol, 'market', side, 0, None, params)
6518
6519
 
6520
+ def fetch_leverage(self, symbol: str, params={}) -> Leverage:
6521
+ """
6522
+ fetch the set leverage for a market
6523
+ :see: https://www.gate.io/docs/developers/apiv4/en/#get-unified-account-information
6524
+ :see: https://www.gate.io/docs/developers/apiv4/en/#get-detail-of-lending-market
6525
+ :see: https://www.gate.io/docs/developers/apiv4/en/#query-one-single-margin-currency-pair-deprecated
6526
+ :param str symbol: unified market symbol
6527
+ :param dict [params]: extra parameters specific to the exchange API endpoint
6528
+ :param boolean [params.unified]: default False, set to True for fetching the unified accounts leverage
6529
+ :returns dict: a `leverage structure <https://docs.ccxt.com/#/?id=leverage-structure>`
6530
+ """
6531
+ self.load_markets()
6532
+ market = None
6533
+ if symbol is not None:
6534
+ # unified account does not require a symbol
6535
+ market = self.market(symbol)
6536
+ request = {}
6537
+ response = None
6538
+ isUnified = self.safe_bool(params, 'unified')
6539
+ params = self.omit(params, 'unified')
6540
+ if market['spot']:
6541
+ request['currency_pair'] = market['id']
6542
+ if isUnified:
6543
+ response = self.publicMarginGetUniCurrencyPairsCurrencyPair(self.extend(request, params))
6544
+ #
6545
+ # {
6546
+ # "currency_pair": "BTC_USDT",
6547
+ # "base_min_borrow_amount": "0.0001",
6548
+ # "quote_min_borrow_amount": "1",
6549
+ # "leverage": "10"
6550
+ # }
6551
+ #
6552
+ else:
6553
+ response = self.publicMarginGetCurrencyPairsCurrencyPair(self.extend(request, params))
6554
+ #
6555
+ # {
6556
+ # "id": "BTC_USDT",
6557
+ # "base": "BTC",
6558
+ # "quote": "USDT",
6559
+ # "leverage": 10,
6560
+ # "min_base_amount": "0.0001",
6561
+ # "min_quote_amount": "1",
6562
+ # "max_quote_amount": "40000000",
6563
+ # "status": 1
6564
+ # }
6565
+ #
6566
+ elif isUnified:
6567
+ response = self.privateUnifiedGetAccounts(self.extend(request, params))
6568
+ #
6569
+ # {
6570
+ # "user_id": 10001,
6571
+ # "locked": False,
6572
+ # "balances": {
6573
+ # "ETH": {
6574
+ # "available": "0",
6575
+ # "freeze": "0",
6576
+ # "borrowed": "0.075393666654",
6577
+ # "negative_liab": "0",
6578
+ # "futures_pos_liab": "0",
6579
+ # "equity": "1016.1",
6580
+ # "total_freeze": "0",
6581
+ # "total_liab": "0"
6582
+ # },
6583
+ # "POINT": {
6584
+ # "available": "9999999999.017023138734",
6585
+ # "freeze": "0",
6586
+ # "borrowed": "0",
6587
+ # "negative_liab": "0",
6588
+ # "futures_pos_liab": "0",
6589
+ # "equity": "12016.1",
6590
+ # "total_freeze": "0",
6591
+ # "total_liab": "0"
6592
+ # },
6593
+ # "USDT": {
6594
+ # "available": "0.00000062023",
6595
+ # "freeze": "0",
6596
+ # "borrowed": "0",
6597
+ # "negative_liab": "0",
6598
+ # "futures_pos_liab": "0",
6599
+ # "equity": "16.1",
6600
+ # "total_freeze": "0",
6601
+ # "total_liab": "0"
6602
+ # }
6603
+ # },
6604
+ # "total": "230.94621713",
6605
+ # "borrowed": "161.66395521",
6606
+ # "total_initial_margin": "1025.0524665088",
6607
+ # "total_margin_balance": "3382495.944473949183",
6608
+ # "total_maintenance_margin": "205.01049330176",
6609
+ # "total_initial_margin_rate": "3299.827135672679",
6610
+ # "total_maintenance_margin_rate": "16499.135678363399",
6611
+ # "total_available_margin": "3381470.892007440383",
6612
+ # "unified_account_total": "3381470.892007440383",
6613
+ # "unified_account_total_liab": "0",
6614
+ # "unified_account_total_equity": "100016.1",
6615
+ # "leverage": "2"
6616
+ # }
6617
+ #
6618
+ else:
6619
+ raise NotSupported(self.id + ' fetchLeverage() does not support ' + market['type'] + ' markets')
6620
+ return self.parse_leverage(response, market)
6621
+
6622
+ def fetch_leverages(self, symbols: List[str] = None, params={}) -> Leverages:
6623
+ """
6624
+ fetch the set leverage for all leverage markets, only spot margin is supported on gate
6625
+ :see: https://www.gate.io/docs/developers/apiv4/en/#list-lending-markets
6626
+ :see: https://www.gate.io/docs/developers/apiv4/en/#list-all-supported-currency-pairs-supported-in-margin-trading-deprecated
6627
+ :param str[] symbols: a list of unified market symbols
6628
+ :param dict [params]: extra parameters specific to the exchange API endpoint
6629
+ :param boolean [params.unified]: default False, set to True for fetching unified account leverages
6630
+ :returns dict: a list of `leverage structures <https://docs.ccxt.com/#/?id=leverage-structure>`
6631
+ """
6632
+ self.load_markets()
6633
+ symbols = self.market_symbols(symbols)
6634
+ response = None
6635
+ isUnified = self.safe_bool(params, 'unified')
6636
+ params = self.omit(params, 'unified')
6637
+ marketIdRequest = 'id'
6638
+ if isUnified:
6639
+ marketIdRequest = 'currency_pair'
6640
+ response = self.publicMarginGetUniCurrencyPairs(params)
6641
+ #
6642
+ # [
6643
+ # {
6644
+ # "currency_pair": "1INCH_USDT",
6645
+ # "base_min_borrow_amount": "8",
6646
+ # "quote_min_borrow_amount": "1",
6647
+ # "leverage": "3"
6648
+ # },
6649
+ # ]
6650
+ #
6651
+ else:
6652
+ response = self.publicMarginGetCurrencyPairs(params)
6653
+ #
6654
+ # [
6655
+ # {
6656
+ # "id": "1CAT_USDT",
6657
+ # "base": "1CAT",
6658
+ # "quote": "USDT",
6659
+ # "leverage": 3,
6660
+ # "min_base_amount": "71",
6661
+ # "min_quote_amount": "1",
6662
+ # "max_quote_amount": "10000",
6663
+ # "status": 1
6664
+ # },
6665
+ # ]
6666
+ #
6667
+ return self.parse_leverages(response, symbols, marketIdRequest, 'spot')
6668
+
6669
+ def parse_leverage(self, leverage, market=None) -> Leverage:
6670
+ marketId = self.safe_string_2(leverage, 'currency_pair', 'id')
6671
+ leverageValue = self.safe_integer(leverage, 'leverage')
6672
+ return {
6673
+ 'info': leverage,
6674
+ 'symbol': self.safe_symbol(marketId, market, '_', 'spot'),
6675
+ 'marginMode': None,
6676
+ 'longLeverage': leverageValue,
6677
+ 'shortLeverage': leverageValue,
6678
+ }
6679
+
6519
6680
  def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
6520
6681
  if response is None:
6521
6682
  return None
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.2.69'
7
+ __version__ = '4.2.70'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.2.69
3
+ Version: 4.2.70
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
@@ -259,13 +259,13 @@ console.log(version, Object.keys(exchanges));
259
259
 
260
260
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
261
261
 
262
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.69/dist/ccxt.browser.js
263
- * unpkg: https://unpkg.com/ccxt@4.2.69/dist/ccxt.browser.js
262
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.70/dist/ccxt.browser.js
263
+ * unpkg: https://unpkg.com/ccxt@4.2.70/dist/ccxt.browser.js
264
264
 
265
265
  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.
266
266
 
267
267
  ```HTML
268
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.69/dist/ccxt.browser.js"></script>
268
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.70/dist/ccxt.browser.js"></script>
269
269
  ```
270
270
 
271
271
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=BYC1VevXnUcFy16vC2ljoFDjBI2oYe2_P7dosyKFT4g,15444
1
+ ccxt/__init__.py,sha256=89YwQFbCDd1PjQiEeZnRYdhCO3VZf3WdzD_Da_Nyqqo,15444
2
2
  ccxt/ace.py,sha256=pIA1Ipres_-IcaIF1hiSewvx3gLNH_19ZPykd4OO5zc,41406
3
3
  ccxt/alpaca.py,sha256=EN4OdS7Z3hU5FUgrtd-PP3E1b3jplP-cGViamkAWUaM,46889
4
4
  ccxt/ascendex.py,sha256=uJvx7lkPbZmHDOcFw11vKqKWUkn9pbRz2OkfpvUMHKs,144175
@@ -55,7 +55,7 @@ ccxt/digifinex.py,sha256=V2nJqSNoiUsiNYRz9GLk8ItUJ2dAlD1WAF9Ei4Rzsls,169285
55
55
  ccxt/exmo.py,sha256=luqEu6-URZ6ML7k8bv0Q9s3vuZZVBnn4xRHXkbq2od4,114223
56
56
  ccxt/flowbtc.py,sha256=YPvm6tbsHJJUQBspFcHuVPQfVmiWzwnVvfzRqBdQX6U,1169
57
57
  ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
58
- ccxt/gate.py,sha256=u-GUUGm7xi-r9gko1y6tkIHvQYpz4IpfMIG1jextD14,298248
58
+ ccxt/gate.py,sha256=Mu8wEwF6qcZ6pMlXlgL6d62bCgmhXJKFhzY6A2vitCs,305722
59
59
  ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
60
60
  ccxt/gemini.py,sha256=429JniVQb7bdfa_K639YEyA_ygXVmm0C0M_bgnoVt28,79370
61
61
  ccxt/hitbtc.py,sha256=QBh-lVgbLz96a2dLhkk5hRBFEPMStcfUUKgy6UR0hS0,151458
@@ -203,7 +203,7 @@ ccxt/abstract/woo.py,sha256=E-QXVJKVI4EOW72NX6wv99px9EyitWtd9KWvXUc9Tyo,10216
203
203
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
204
204
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
205
205
  ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
206
- ccxt/async_support/__init__.py,sha256=dr1Mi7VE_Fw4dRppp3Dcos7qwS4RiH6HoYQ0dOa7-bY,15177
206
+ ccxt/async_support/__init__.py,sha256=2gVkf0OxGPATF1BserS1H3CS5W4tM5qbxRYuEBxhcyU,15177
207
207
  ccxt/async_support/ace.py,sha256=LjNrCLc5OA9CTZ-SCNkBBeSUa144U1ayh6lSw_6GVgI,41630
208
208
  ccxt/async_support/alpaca.py,sha256=tGinjTamFx1lvVoHyB3crGlKF97gUPOtG9Dy8kPMqhQ,47101
209
209
  ccxt/async_support/ascendex.py,sha256=KKPnXkJPf3fC8JvOEwtsW1On8jNHAJ59_n072dvxAO8,144915
@@ -260,7 +260,7 @@ ccxt/async_support/digifinex.py,sha256=UfloaYAZEZtD03f7ME35GfCD5P-DKFYtPJiwqW_53
260
260
  ccxt/async_support/exmo.py,sha256=IEvbMNo9iFQnmaAD8w0xXBkXfK5jfKaVhoUUExsT-40,114855
261
261
  ccxt/async_support/flowbtc.py,sha256=bCnvtcNnPxxaxqVjI1GGXKhIpz_1r4GIFWqqPokvCR0,1183
262
262
  ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
263
- ccxt/async_support/gate.py,sha256=gASr5lMchWfrGe4BdMCGOLcyTA3ZbPNz_dW00Gq38A8,299812
263
+ ccxt/async_support/gate.py,sha256=9UKTx2tk_aWdsG0lnJo1Bu-o_Nx4CXpEaBm8l-3THVM,307340
264
264
  ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
265
265
  ccxt/async_support/gemini.py,sha256=dURO4kqXhaMEkic1hWLH3EfnOi-toUwOraTeyLbW0x0,79883
266
266
  ccxt/async_support/hitbtc.py,sha256=BVbu1fMazVNQjbf0E202Uf-TY65npbfm5dYAK9DcftA,152504
@@ -307,7 +307,7 @@ ccxt/async_support/yobit.py,sha256=JKwcd4_sPc7sFWTI5eICzbHcVMOxUrghlFTPmfWYgUQ,5
307
307
  ccxt/async_support/zaif.py,sha256=A4lhLoQNHt8EWeCH067sQrSiziNZ9nJU_-ZyVE59Xgo,28116
308
308
  ccxt/async_support/zonda.py,sha256=GqTR3gmRA9dcC2dCpSUVK-k19b_DiNGpIRfmmvfchiM,80763
309
309
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
310
- ccxt/async_support/base/exchange.py,sha256=VFBqJEsS5oHqf81MDmFBCe0eSGefmqWphHxeECeStDU,90820
310
+ ccxt/async_support/base/exchange.py,sha256=_V154lbrbbhfyHj70Z8rpSvUU0GoNemRvldY5lOkcww,90820
311
311
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
312
312
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
313
313
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=Ed1765emEde2Hj8Ys6f5EjS54ZI1wQ0qIhd04eB7yhU,5751
@@ -321,10 +321,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIu
321
321
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
322
322
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
323
323
  ccxt/base/errors.py,sha256=JBn3zTrtru7tLgyEi6MzKAUwiZe0fltQLYoJcsdP-AA,4099
324
- ccxt/base/exchange.py,sha256=E940QKIL94QT_tsbiCE5jvS9vHgezckfm7LhcmTuISc,246873
324
+ ccxt/base/exchange.py,sha256=lrSMFCdcJjBJa-OO-SHL7Xgvcaw7x-pnPOKrzlwEd5M,246873
325
325
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
326
326
  ccxt/base/types.py,sha256=Bc5lH1L29xvaQDl4uSx7_3w_gZTyhcUrBh-SSyKXzRI,6126
327
- ccxt/pro/__init__.py,sha256=BPfdnC_jhUPb8EG1Viir_L0n6fI2GS97hqw4j_cCJ0E,6675
327
+ ccxt/pro/__init__.py,sha256=Faw7ylC-O6fPAWKDtDy18BHOOmbpBIALDKOnJewwDO4,6675
328
328
  ccxt/pro/alpaca.py,sha256=ABL5GvXMmcSC7LaYRtUqS3tgsLpCBf1IChgC5f2aA2E,27161
329
329
  ccxt/pro/ascendex.py,sha256=Tjpk9KPF4YPKsdgq-Cabs3nx1Zkrnd7srdjqHYeghLs,35413
330
330
  ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
@@ -520,7 +520,7 @@ ccxt/test/base/test_ticker.py,sha256=cmYHv5ZtbAq27y4LGDcGzaro-qkSNJWme5rLHOEdA4U
520
520
  ccxt/test/base/test_trade.py,sha256=lhT9nxiSr0AEvKbdGXL9qJOkz1EiKEmA0TDfdCbubg8,2295
521
521
  ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
522
522
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
523
- ccxt-4.2.69.dist-info/METADATA,sha256=gTifcNbtlDW_5QPVf_0EwIOVCfSX6WoFE2P4KKETM5k,107754
524
- ccxt-4.2.69.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
525
- ccxt-4.2.69.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
526
- ccxt-4.2.69.dist-info/RECORD,,
523
+ ccxt-4.2.70.dist-info/METADATA,sha256=IS5bW7u2YQGGOuzWOs0YBXvhDRamvzRXzZL-aT9Uo-o,107754
524
+ ccxt-4.2.70.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
525
+ ccxt-4.2.70.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
526
+ ccxt-4.2.70.dist-info/RECORD,,
File without changes