ccxt 3.1.34__py2.py3-none-any.whl → 3.1.35__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/__init__.py CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '3.1.34'
25
+ __version__ = '3.1.35'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
ccxt/abstract/binance.py CHANGED
@@ -264,6 +264,8 @@ class ImplicitAPI:
264
264
  sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
265
265
  sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
266
266
  sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
267
+ sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 0.6667})
268
+ sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 0.6667})
267
269
  sapi_put_userdatastream = sapiPutUserDataStream = Entry('userDataStream', 'sapi', 'PUT', {'cost': 0.1})
268
270
  sapi_put_userdatastream_isolated = sapiPutUserDataStreamIsolated = Entry('userDataStream/isolated', 'sapi', 'PUT', {'cost': 0.1})
269
271
  sapi_delete_margin_openorders = sapiDeleteMarginOpenOrders = Entry('margin/openOrders', 'sapi', 'DELETE', {'cost': 0.1})
@@ -264,6 +264,8 @@ class ImplicitAPI:
264
264
  sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
265
265
  sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
266
266
  sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
267
+ sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 0.6667})
268
+ sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 0.6667})
267
269
  sapi_put_userdatastream = sapiPutUserDataStream = Entry('userDataStream', 'sapi', 'PUT', {'cost': 0.1})
268
270
  sapi_put_userdatastream_isolated = sapiPutUserDataStreamIsolated = Entry('userDataStream/isolated', 'sapi', 'PUT', {'cost': 0.1})
269
271
  sapi_delete_margin_openorders = sapiDeleteMarginOpenOrders = Entry('margin/openOrders', 'sapi', 'DELETE', {'cost': 0.1})
@@ -264,6 +264,8 @@ class ImplicitAPI:
264
264
  sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
265
265
  sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
266
266
  sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
267
+ sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 0.6667})
268
+ sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 0.6667})
267
269
  sapi_put_userdatastream = sapiPutUserDataStream = Entry('userDataStream', 'sapi', 'PUT', {'cost': 0.1})
268
270
  sapi_put_userdatastream_isolated = sapiPutUserDataStreamIsolated = Entry('userDataStream/isolated', 'sapi', 'PUT', {'cost': 0.1})
269
271
  sapi_delete_margin_openorders = sapiDeleteMarginOpenOrders = Entry('margin/openOrders', 'sapi', 'DELETE', {'cost': 0.1})
@@ -264,6 +264,8 @@ class ImplicitAPI:
264
264
  sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
265
265
  sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
266
266
  sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
267
+ sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 0.6667})
268
+ sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 0.6667})
267
269
  sapi_put_userdatastream = sapiPutUserDataStream = Entry('userDataStream', 'sapi', 'PUT', {'cost': 0.1})
268
270
  sapi_put_userdatastream_isolated = sapiPutUserDataStreamIsolated = Entry('userDataStream/isolated', 'sapi', 'PUT', {'cost': 0.1})
269
271
  sapi_delete_margin_openorders = sapiDeleteMarginOpenOrders = Entry('margin/openOrders', 'sapi', 'DELETE', {'cost': 0.1})
ccxt/abstract/bitbank.py CHANGED
@@ -3,6 +3,8 @@ from ccxt.base.types import Entry
3
3
 
4
4
  class ImplicitAPI:
5
5
  public_get_pair_ticker = publicGetPairTicker = Entry('{pair}/ticker', 'public', 'GET', {})
6
+ public_get_tickers = publicGetTickers = Entry('tickers', 'public', 'GET', {})
7
+ public_get_tickers_jpy = publicGetTickersJpy = Entry('tickers_jpy', 'public', 'GET', {})
6
8
  public_get_pair_depth = publicGetPairDepth = Entry('{pair}/depth', 'public', 'GET', {})
7
9
  public_get_pair_transactions = publicGetPairTransactions = Entry('{pair}/transactions', 'public', 'GET', {})
8
10
  public_get_pair_transactions_yyyymmdd = publicGetPairTransactionsYyyymmdd = Entry('{pair}/transactions/{yyyymmdd}', 'public', 'GET', {})
@@ -11,7 +13,11 @@ class ImplicitAPI:
11
13
  private_get_user_spot_order = privateGetUserSpotOrder = Entry('user/spot/order', 'private', 'GET', {})
12
14
  private_get_user_spot_active_orders = privateGetUserSpotActiveOrders = Entry('user/spot/active_orders', 'private', 'GET', {})
13
15
  private_get_user_spot_trade_history = privateGetUserSpotTradeHistory = Entry('user/spot/trade_history', 'private', 'GET', {})
16
+ private_get_user_deposit_history = privateGetUserDepositHistory = Entry('user/deposit_history', 'private', 'GET', {})
14
17
  private_get_user_withdrawal_account = privateGetUserWithdrawalAccount = Entry('user/withdrawal_account', 'private', 'GET', {})
18
+ private_get_user_withdrawal_history = privateGetUserWithdrawalHistory = Entry('user/withdrawal_history', 'private', 'GET', {})
19
+ private_get_spot_status = privateGetSpotStatus = Entry('spot/status', 'private', 'GET', {})
20
+ private_get_spot_pairs = privateGetSpotPairs = Entry('spot/pairs', 'private', 'GET', {})
15
21
  private_post_user_spot_order = privatePostUserSpotOrder = Entry('user/spot/order', 'private', 'POST', {})
16
22
  private_post_user_spot_cancel_order = privatePostUserSpotCancelOrder = Entry('user/spot/cancel_order', 'private', 'POST', {})
17
23
  private_post_user_spot_cancel_orders = privatePostUserSpotCancelOrders = Entry('user/spot/cancel_orders', 'private', 'POST', {})
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '3.1.34'
7
+ __version__ = '3.1.35'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '3.1.34'
5
+ __version__ = '3.1.35'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -506,6 +506,8 @@ class binance(Exchange, ImplicitAPI):
506
506
  'loan/vip/repay': 40, # Weight(UID): 6000 => cost = 0.006667 * 6000 = 40
507
507
  'convert/getQuote': 20.001,
508
508
  'convert/acceptQuote': 3.3335,
509
+ 'portfolio/auto-collection': 0.6667, # Weight(UID): 100 => cost = 0.006667 * 100 = 0.6667
510
+ 'portfolio/bnb-transfer': 0.6667, # Weight(UID): 100 => cost = 0.006667 * 100 = 0.6667
509
511
  },
510
512
  'put': {
511
513
  'userDataStream': 0.1,
@@ -2930,10 +2932,14 @@ class binance(Exchange, ImplicitAPI):
2930
2932
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
2931
2933
  """
2932
2934
  await self.load_markets()
2935
+ symbols = self.market_symbols(symbols)
2933
2936
  market = self.get_market_from_symbols(symbols)
2934
- marketType, query = self.handle_market_type_and_params('fetchLastPrices', market, params)
2937
+ type = None
2938
+ subType = None
2939
+ subType, params = self.handle_sub_type_and_params('fetchLastPrices', market, params)
2940
+ type, params = self.handle_market_type_and_params('fetchLastPrices', market, params)
2935
2941
  method = None
2936
- if marketType == 'future':
2942
+ if self.is_linear(type, subType):
2937
2943
  method = 'fapiPublicGetTickerPrice'
2938
2944
  #
2939
2945
  # [
@@ -2945,7 +2951,7 @@ class binance(Exchange, ImplicitAPI):
2945
2951
  # ...
2946
2952
  # ]
2947
2953
  #
2948
- elif marketType == 'delivery':
2954
+ elif self.is_inverse(type, subType):
2949
2955
  method = 'dapiPublicGetTickerPrice'
2950
2956
  #
2951
2957
  # [
@@ -2957,7 +2963,7 @@ class binance(Exchange, ImplicitAPI):
2957
2963
  # }
2958
2964
  # ]
2959
2965
  #
2960
- elif marketType == 'spot':
2966
+ elif type == 'spot':
2961
2967
  method = 'publicGetTickerPrice'
2962
2968
  #
2963
2969
  # [
@@ -2969,8 +2975,8 @@ class binance(Exchange, ImplicitAPI):
2969
2975
  # ]
2970
2976
  #
2971
2977
  else:
2972
- raise NotSupported(self.id + ' fetchLastPrices() does not support ' + marketType + ' markets yet')
2973
- response = await getattr(self, method)(query)
2978
+ raise NotSupported(self.id + ' fetchLastPrices() does not support ' + type + ' markets yet')
2979
+ response = await getattr(self, method)(params)
2974
2980
  return self.parse_last_prices(response, symbols)
2975
2981
 
2976
2982
  def parse_last_price(self, info, market=None):
@@ -3000,10 +3006,10 @@ class binance(Exchange, ImplicitAPI):
3000
3006
  # "time": 1591257246176
3001
3007
  # }
3002
3008
  #
3003
- marketId = self.safe_string(info, 'symbol')
3004
- defaultType = self.safe_string(self.options, 'defaultType', 'spot')
3005
- market = self.safe_market(marketId, market, None, defaultType)
3006
3009
  timestamp = self.safe_integer(info, 'time')
3010
+ type = 'spot' if (timestamp is None) else 'swap'
3011
+ marketId = self.safe_string(info, 'symbol')
3012
+ market = self.safe_market(marketId, market, None, type)
3007
3013
  price = self.safe_number(info, 'price')
3008
3014
  return {
3009
3015
  'symbol': market['symbol'],
@@ -3945,25 +3951,16 @@ class binance(Exchange, ImplicitAPI):
3945
3951
  marketType = 'contract' if ('closePosition' in order) else 'spot'
3946
3952
  symbol = self.safe_symbol(marketId, market, None, marketType)
3947
3953
  filled = self.safe_string(order, 'executedQty', '0')
3948
- timestamp = None
3954
+ timestamp = self.safe_integer_n(order, ['time', 'createTime', 'workingTime', 'transactTime', 'updateTime']) # order of the keys matters here
3949
3955
  lastTradeTimestamp = None
3950
- if 'time' in order:
3951
- timestamp = self.safe_integer(order, 'time')
3952
- elif 'workingTime' in order:
3953
- lastTradeTimestamp = self.safe_integer(order, 'transactTime')
3954
- timestamp = self.safe_integer(order, 'workingTime')
3955
- elif 'transactTime' in order:
3956
- lastTradeTimestamp = self.safe_integer(order, 'transactTime')
3957
- timestamp = self.safe_integer(order, 'transactTime')
3958
- elif 'createTime' in order:
3959
- lastTradeTimestamp = self.safe_integer(order, 'updateTime')
3960
- timestamp = self.safe_integer(order, 'createTime')
3961
- elif 'updateTime' in order:
3956
+ if ('transactTime' in order) or ('updateTime' in order):
3957
+ timestampValue = self.safe_integer_2(order, 'updateTime', 'transactTime')
3962
3958
  if status == 'open':
3963
3959
  if Precise.string_gt(filled, '0'):
3964
- lastTradeTimestamp = self.safe_integer(order, 'updateTime')
3965
- else:
3966
- timestamp = self.safe_integer(order, 'updateTime')
3960
+ lastTradeTimestamp = timestampValue
3961
+ elif status == 'closed':
3962
+ lastTradeTimestamp = timestampValue
3963
+ lastUpdateTimestamp = self.safe_integer_2(order, 'transactTime', 'updateTime')
3967
3964
  average = self.safe_string(order, 'avgPrice')
3968
3965
  price = self.safe_string(order, 'price')
3969
3966
  amount = self.safe_string_2(order, 'origQty', 'quantity')
@@ -3993,6 +3990,7 @@ class binance(Exchange, ImplicitAPI):
3993
3990
  'timestamp': timestamp,
3994
3991
  'datetime': self.iso8601(timestamp),
3995
3992
  'lastTradeTimestamp': lastTradeTimestamp,
3993
+ 'lastUpdateTimestamp': lastUpdateTimestamp,
3996
3994
  'symbol': symbol,
3997
3995
  'type': type,
3998
3996
  'timeInForce': timeInForce,
@@ -106,6 +106,8 @@ class bitbank(Exchange, ImplicitAPI):
106
106
  'public': {
107
107
  'get': [
108
108
  '{pair}/ticker',
109
+ 'tickers',
110
+ 'tickers_jpy',
109
111
  '{pair}/depth',
110
112
  '{pair}/transactions',
111
113
  '{pair}/transactions/{yyyymmdd}',
@@ -118,7 +120,11 @@ class bitbank(Exchange, ImplicitAPI):
118
120
  'user/spot/order',
119
121
  'user/spot/active_orders',
120
122
  'user/spot/trade_history',
123
+ 'user/deposit_history',
121
124
  'user/withdrawal_account',
125
+ 'user/withdrawal_history',
126
+ 'spot/status',
127
+ 'spot/pairs',
122
128
  ],
123
129
  'post': [
124
130
  'user/spot/order',
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '3.1.34'
7
+ __version__ = '3.1.35'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
ccxt/binance.py CHANGED
@@ -505,6 +505,8 @@ class binance(Exchange, ImplicitAPI):
505
505
  'loan/vip/repay': 40, # Weight(UID): 6000 => cost = 0.006667 * 6000 = 40
506
506
  'convert/getQuote': 20.001,
507
507
  'convert/acceptQuote': 3.3335,
508
+ 'portfolio/auto-collection': 0.6667, # Weight(UID): 100 => cost = 0.006667 * 100 = 0.6667
509
+ 'portfolio/bnb-transfer': 0.6667, # Weight(UID): 100 => cost = 0.006667 * 100 = 0.6667
508
510
  },
509
511
  'put': {
510
512
  'userDataStream': 0.1,
@@ -2929,10 +2931,14 @@ class binance(Exchange, ImplicitAPI):
2929
2931
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
2930
2932
  """
2931
2933
  self.load_markets()
2934
+ symbols = self.market_symbols(symbols)
2932
2935
  market = self.get_market_from_symbols(symbols)
2933
- marketType, query = self.handle_market_type_and_params('fetchLastPrices', market, params)
2936
+ type = None
2937
+ subType = None
2938
+ subType, params = self.handle_sub_type_and_params('fetchLastPrices', market, params)
2939
+ type, params = self.handle_market_type_and_params('fetchLastPrices', market, params)
2934
2940
  method = None
2935
- if marketType == 'future':
2941
+ if self.is_linear(type, subType):
2936
2942
  method = 'fapiPublicGetTickerPrice'
2937
2943
  #
2938
2944
  # [
@@ -2944,7 +2950,7 @@ class binance(Exchange, ImplicitAPI):
2944
2950
  # ...
2945
2951
  # ]
2946
2952
  #
2947
- elif marketType == 'delivery':
2953
+ elif self.is_inverse(type, subType):
2948
2954
  method = 'dapiPublicGetTickerPrice'
2949
2955
  #
2950
2956
  # [
@@ -2956,7 +2962,7 @@ class binance(Exchange, ImplicitAPI):
2956
2962
  # }
2957
2963
  # ]
2958
2964
  #
2959
- elif marketType == 'spot':
2965
+ elif type == 'spot':
2960
2966
  method = 'publicGetTickerPrice'
2961
2967
  #
2962
2968
  # [
@@ -2968,8 +2974,8 @@ class binance(Exchange, ImplicitAPI):
2968
2974
  # ]
2969
2975
  #
2970
2976
  else:
2971
- raise NotSupported(self.id + ' fetchLastPrices() does not support ' + marketType + ' markets yet')
2972
- response = getattr(self, method)(query)
2977
+ raise NotSupported(self.id + ' fetchLastPrices() does not support ' + type + ' markets yet')
2978
+ response = getattr(self, method)(params)
2973
2979
  return self.parse_last_prices(response, symbols)
2974
2980
 
2975
2981
  def parse_last_price(self, info, market=None):
@@ -2999,10 +3005,10 @@ class binance(Exchange, ImplicitAPI):
2999
3005
  # "time": 1591257246176
3000
3006
  # }
3001
3007
  #
3002
- marketId = self.safe_string(info, 'symbol')
3003
- defaultType = self.safe_string(self.options, 'defaultType', 'spot')
3004
- market = self.safe_market(marketId, market, None, defaultType)
3005
3008
  timestamp = self.safe_integer(info, 'time')
3009
+ type = 'spot' if (timestamp is None) else 'swap'
3010
+ marketId = self.safe_string(info, 'symbol')
3011
+ market = self.safe_market(marketId, market, None, type)
3006
3012
  price = self.safe_number(info, 'price')
3007
3013
  return {
3008
3014
  'symbol': market['symbol'],
@@ -3944,25 +3950,16 @@ class binance(Exchange, ImplicitAPI):
3944
3950
  marketType = 'contract' if ('closePosition' in order) else 'spot'
3945
3951
  symbol = self.safe_symbol(marketId, market, None, marketType)
3946
3952
  filled = self.safe_string(order, 'executedQty', '0')
3947
- timestamp = None
3953
+ timestamp = self.safe_integer_n(order, ['time', 'createTime', 'workingTime', 'transactTime', 'updateTime']) # order of the keys matters here
3948
3954
  lastTradeTimestamp = None
3949
- if 'time' in order:
3950
- timestamp = self.safe_integer(order, 'time')
3951
- elif 'workingTime' in order:
3952
- lastTradeTimestamp = self.safe_integer(order, 'transactTime')
3953
- timestamp = self.safe_integer(order, 'workingTime')
3954
- elif 'transactTime' in order:
3955
- lastTradeTimestamp = self.safe_integer(order, 'transactTime')
3956
- timestamp = self.safe_integer(order, 'transactTime')
3957
- elif 'createTime' in order:
3958
- lastTradeTimestamp = self.safe_integer(order, 'updateTime')
3959
- timestamp = self.safe_integer(order, 'createTime')
3960
- elif 'updateTime' in order:
3955
+ if ('transactTime' in order) or ('updateTime' in order):
3956
+ timestampValue = self.safe_integer_2(order, 'updateTime', 'transactTime')
3961
3957
  if status == 'open':
3962
3958
  if Precise.string_gt(filled, '0'):
3963
- lastTradeTimestamp = self.safe_integer(order, 'updateTime')
3964
- else:
3965
- timestamp = self.safe_integer(order, 'updateTime')
3959
+ lastTradeTimestamp = timestampValue
3960
+ elif status == 'closed':
3961
+ lastTradeTimestamp = timestampValue
3962
+ lastUpdateTimestamp = self.safe_integer_2(order, 'transactTime', 'updateTime')
3966
3963
  average = self.safe_string(order, 'avgPrice')
3967
3964
  price = self.safe_string(order, 'price')
3968
3965
  amount = self.safe_string_2(order, 'origQty', 'quantity')
@@ -3992,6 +3989,7 @@ class binance(Exchange, ImplicitAPI):
3992
3989
  'timestamp': timestamp,
3993
3990
  'datetime': self.iso8601(timestamp),
3994
3991
  'lastTradeTimestamp': lastTradeTimestamp,
3992
+ 'lastUpdateTimestamp': lastUpdateTimestamp,
3995
3993
  'symbol': symbol,
3996
3994
  'type': type,
3997
3995
  'timeInForce': timeInForce,
ccxt/bitbank.py CHANGED
@@ -106,6 +106,8 @@ class bitbank(Exchange, ImplicitAPI):
106
106
  'public': {
107
107
  'get': [
108
108
  '{pair}/ticker',
109
+ 'tickers',
110
+ 'tickers_jpy',
109
111
  '{pair}/depth',
110
112
  '{pair}/transactions',
111
113
  '{pair}/transactions/{yyyymmdd}',
@@ -118,7 +120,11 @@ class bitbank(Exchange, ImplicitAPI):
118
120
  'user/spot/order',
119
121
  'user/spot/active_orders',
120
122
  'user/spot/trade_history',
123
+ 'user/deposit_history',
121
124
  'user/withdrawal_account',
125
+ 'user/withdrawal_history',
126
+ 'spot/status',
127
+ 'spot/pairs',
122
128
  ],
123
129
  'post': [
124
130
  'user/spot/order',
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '3.1.34'
7
+ __version__ = '3.1.35'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 3.1.34
3
+ Version: 3.1.35
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -264,13 +264,13 @@ console.log(version, Object.keys(exchanges));
264
264
 
265
265
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
266
266
 
267
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@3.1.34/dist/ccxt.browser.js
268
- * unpkg: https://unpkg.com/ccxt@3.1.34/dist/ccxt.browser.js
267
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@3.1.35/dist/ccxt.browser.js
268
+ * unpkg: https://unpkg.com/ccxt@3.1.35/dist/ccxt.browser.js
269
269
 
270
270
  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.
271
271
 
272
272
  ```HTML
273
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@3.1.34/dist/ccxt.browser.js"></script>
273
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@3.1.35/dist/ccxt.browser.js"></script>
274
274
  ```
275
275
 
276
276
  Creates a global `ccxt` object:
@@ -1,15 +1,15 @@
1
- ccxt/__init__.py,sha256=GBHSBHOQWARuHv2mQqL0hnC2y05oX0Kh9wXRdtJIIYw,15531
1
+ ccxt/__init__.py,sha256=QT8Oj9QbF1GT9MMT5qIONcWV5RmcpnYSzuJj7iFSAFg,15531
2
2
  ccxt/ace.py,sha256=X4xNSn-7c-K-KFZBUZXwdijv2gsSo1AjiuDV2Ay_qI8,41378
3
3
  ccxt/alpaca.py,sha256=67-UgBXEXmAGMIYlxsufpFOLDSQi-V6-ZOefTAzSNJs,33210
4
4
  ccxt/ascendex.py,sha256=Tfu6IHoc1hZGAwvEV8U5dhjTUyGOPXyp3hf-Ry6LFuU,129319
5
5
  ccxt/bequant.py,sha256=1wDyg1jmS1H9WkODiqztoLVhQog7R6n7MUZsOhIRwRU,1136
6
6
  ccxt/bigone.py,sha256=aTBf53_VVwUlqX3GreIwA3r37fdnrZyP9NbGFiCI7DU,62389
7
- ccxt/binance.py,sha256=cL8jPJj9bFwA839mOvTAHwLJG6s4Cd5itw__L2I62H0,385830
7
+ ccxt/binance.py,sha256=7v7qGg4MU1KOstKS75VUzqLL36EZgWMZ2IwODN9-Ats,385958
8
8
  ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
9
9
  ccxt/binanceus.py,sha256=RoC8nReBHXUJzRNyqMe4vhta6gLGuh1fyFkI8FOMKBE,2151
10
10
  ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
11
11
  ccxt/bit2c.py,sha256=2YVCDonSKrWPVM8jZteZ7EcFE7BmYy8cQ50Eo6OY37s,35531
12
- ccxt/bitbank.py,sha256=iO0Q9d0otr7jMS-6Vx9areSNhxLeWghTnBLY3wqZ5nU,39057
12
+ ccxt/bitbank.py,sha256=fniFSvUOyZCW25hIq5f55utcI4Ua0yU_2MEkrJFuBhg,39307
13
13
  ccxt/bitbay.py,sha256=B1-8OOhH0k-_mQ7YM7CNuSzP0-PyrtWF-Bc00iEU-CY,448
14
14
  ccxt/bitbns.py,sha256=NZiy0baRUIFs87YWblH9e_O2vcxqLXDBDa2D__Y0jkA,46022
15
15
  ccxt/bitcoincom.py,sha256=YFjeHBlk3W6Gu_yzGwg8smSUkyG6E4l4sSAMvSQMrcY,467
@@ -118,12 +118,12 @@ ccxt/abstract/alpaca.py,sha256=GKGGXKJ9WzW9V3SmOX_Jjaea_QTa04Eg5nYhQgFErGI,1861
118
118
  ccxt/abstract/ascendex.py,sha256=b85f3K0maWubEmAQIm6T5ierLHZG6c0f-uuvJ-JgLxM,11071
119
119
  ccxt/abstract/bequant.py,sha256=0T5QJsSdYh5qcydcL76kC78pip1XrMDvaKkpxkcBsfc,8376
120
120
  ccxt/abstract/bigone.py,sha256=wrsNs-x0Tv-8e3HcjMpGxQVdciL0cmHDWIJzNGVsd04,2347
121
- ccxt/abstract/binance.py,sha256=JOtbqxXwhFDoVDLPOogwJAYDMEgkJSrRw_QG5x8U9G8,69288
122
- ccxt/abstract/binancecoinm.py,sha256=JOtbqxXwhFDoVDLPOogwJAYDMEgkJSrRw_QG5x8U9G8,69288
123
- ccxt/abstract/binanceus.py,sha256=JOtbqxXwhFDoVDLPOogwJAYDMEgkJSrRw_QG5x8U9G8,69288
124
- ccxt/abstract/binanceusdm.py,sha256=JOtbqxXwhFDoVDLPOogwJAYDMEgkJSrRw_QG5x8U9G8,69288
121
+ ccxt/abstract/binance.py,sha256=4qcSltNhECBZ5o4qhmKLa_QO5hiu-yvm53kMES_Kor8,69569
122
+ ccxt/abstract/binancecoinm.py,sha256=4qcSltNhECBZ5o4qhmKLa_QO5hiu-yvm53kMES_Kor8,69569
123
+ ccxt/abstract/binanceus.py,sha256=4qcSltNhECBZ5o4qhmKLa_QO5hiu-yvm53kMES_Kor8,69569
124
+ ccxt/abstract/binanceusdm.py,sha256=4qcSltNhECBZ5o4qhmKLa_QO5hiu-yvm53kMES_Kor8,69569
125
125
  ccxt/abstract/bit2c.py,sha256=np6i756kSB5dO3Nj6POLKxkWkpYcsGg-4LS8BwPrizI,2830
126
- ccxt/abstract/bitbank.py,sha256=tvJsUdposDnZyPjTmvIIruNLzCWYx8nmJSI8E9cwzt4,1989
126
+ ccxt/abstract/bitbank.py,sha256=k5D8PoPW2N79K_24NL9yY0qkwaCgzi_VoYUlqnj2bs8,2606
127
127
  ccxt/abstract/bitbay.py,sha256=VoxuPkSq8vAvKnDvOqnByhwsIf09m7yIrs8HejFrDk4,5482
128
128
  ccxt/abstract/bitbns.py,sha256=3T3cHS7SgzGipd6F8vzPnmM0x3XNfQXEPjoInD-C1Sw,4082
129
129
  ccxt/abstract/bitcoincom.py,sha256=0T5QJsSdYh5qcydcL76kC78pip1XrMDvaKkpxkcBsfc,8376
@@ -220,18 +220,18 @@ ccxt/abstract/xt.py,sha256=xHHv2viFGK0_iPZ4gu6Wb0aOrpcKhr9zoY-BIPWh5bs,27028
220
220
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
221
221
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
222
222
  ccxt/abstract/zonda.py,sha256=VoxuPkSq8vAvKnDvOqnByhwsIf09m7yIrs8HejFrDk4,5482
223
- ccxt/async_support/__init__.py,sha256=pX88_MXHdlbGDhwrD9XR33E0BJwY2mh2-lFiEyl-odc,15324
223
+ ccxt/async_support/__init__.py,sha256=xh6V2gftF0E81vWaY9hy3CMQoh-jQQjZERCyCSX7oYY,15324
224
224
  ccxt/async_support/ace.py,sha256=cpzMJrG4paMTXdrfdHuJtSXND1NKhfKLNxaYeicMalc,41602
225
225
  ccxt/async_support/alpaca.py,sha256=0Q7bp7mUhU6lKkCNWdjgt1NR3Rz1QpfC9rAVzTutSwk,33356
226
226
  ccxt/async_support/ascendex.py,sha256=V0G5f9Gg79EjJIVpsuNuQGomoZmx9_WAKGsUjqSJs8k,129933
227
227
  ccxt/async_support/bequant.py,sha256=BbfFIcAuK3qC0huDHr44hskFTHt1SG1Pp5XSgYnaiuA,1150
228
228
  ccxt/async_support/bigone.py,sha256=-MaIFu3QdKcyNwb8sZxIbikt6M7JE_Phgxquz7ihLg4,62775
229
- ccxt/async_support/binance.py,sha256=6dIpJzUCw2cPOI9uy5ILP0JlFHaSReo5hqzF4M9irpE,387076
229
+ ccxt/async_support/binance.py,sha256=CeviOzKq3WwCvHGTszf9G69PuxRaVgGeUagz8yqi8gw,387204
230
230
  ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
231
231
  ccxt/async_support/binanceus.py,sha256=Jtyl0jtSOpdjAAAYcSUzH6YRVxe88RJ6f4_IUge5gWg,2165
232
232
  ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
233
233
  ccxt/async_support/bit2c.py,sha256=VNeZ9rjXtIsJYYhhJ4L7HWbxaMOBahr89yFqMfunJ8c,35737
234
- ccxt/async_support/bitbank.py,sha256=_9uqf2JI0eRgtPRf4_p-0Jwki8PTYFiMoyBsOdDJ-5s,39317
234
+ ccxt/async_support/bitbank.py,sha256=Osp5v6Y6-CMJoIfXi4QZdWHg0HaOgMwb6U_FPU4uLTo,39567
235
235
  ccxt/async_support/bitbay.py,sha256=ZwGnGl9LHEsxYU1iOyJB6eT9JfYID_yNxGsB3G4gKeQ,462
236
236
  ccxt/async_support/bitbns.py,sha256=5dJJdbSnLYOPqK-NHHWAWjLoQ8ddLY6k8xEKTzpP6hc,46276
237
237
  ccxt/async_support/bitcoincom.py,sha256=-9ESIcLCRhZxfOLkNXB8mIsb7NYTnNPmF5aYkkKIy5Q,481
@@ -335,7 +335,7 @@ ccxt/async_support/zaif.py,sha256=eCR5rPQU9BpP2b-X0hPtOtN2FXiKZ4URHyyZ53Di6T4,29
335
335
  ccxt/async_support/zb.py,sha256=W8HHyssjCLTugSRs80TnAwGJl85vp7nyNPOn9RLpXFk,184533
336
336
  ccxt/async_support/zonda.py,sha256=8fLlL4exIr24N0vaf07psLeqNEqhLS2cZj-_VVXsnyM,74375
337
337
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
338
- ccxt/async_support/base/exchange.py,sha256=DfbmiMMWNKdczJuGc-1H_nialjD8KegeZZqq90WcJLs,131065
338
+ ccxt/async_support/base/exchange.py,sha256=3VsIzG5vcl2ddTTNxwwkFgMkIYQhL1VtFFaV8aVwD28,131065
339
339
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
340
340
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
341
341
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=xmlZV30Vb9Kq7JCm3D5FuEmuj1zp5H4F4hrz8-Y-Ir4,4999
@@ -349,10 +349,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GH-475Ni0mLOx7mUDnz4jjzaGkh
349
349
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
350
350
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
351
351
  ccxt/base/errors.py,sha256=-LVeTNyXvu3QEgb-p-KzMpcBgzHlvFTwDzmZK7Gfc14,3401
352
- ccxt/base/exchange.py,sha256=7hcCwfbFcKOKHB0LrqtyI1RPMxwC09naGJ93hbbGGiU,170567
352
+ ccxt/base/exchange.py,sha256=sffNGME5Y5ofh207YU3Z2D9qRVczsjizA4aLJjyU7cE,170567
353
353
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
354
354
  ccxt/base/types.py,sha256=8FseQkf_LL-nXdb5LyT6RpDaU8pr3HAI9Jb9Wj_oDN0,1366
355
- ccxt/pro/__init__.py,sha256=MvN3w_BtJ4nNeOfCzLOBIpREqbUPebJSkCCLGOWrY4s,6463
355
+ ccxt/pro/__init__.py,sha256=WQxUEZ07iK1n3R6-Iaq4vfgRX-EvbB3YfYj_dcMcmqo,6463
356
356
  ccxt/pro/alpaca.py,sha256=CmaU0MJq0HiNaYvBHeDJfTa-letDiEQonRON7Q_3W_k,26686
357
357
  ccxt/pro/ascendex.py,sha256=k6rpuiPhj3ipeWRG5vwR22SS4iAzQPe1q1WxJaaucLk,34565
358
358
  ccxt/pro/bequant.py,sha256=qz8JjnpkAQY_CFiFSKGqrjjgZ2167_TBKjSJOb9NeDw,1081
@@ -462,7 +462,7 @@ ccxt/test/base/test_ticker.py,sha256=h9AV_O6s-Ax3vB3sFoN0Mz22rMOi65i9BDv0SNejH98
462
462
  ccxt/test/base/test_trade.py,sha256=bL9o3S_TGW8Nnlxu-BYkRG8NyRzKAWrU66uO5jJCM3A,2259
463
463
  ccxt/test/base/test_trading_fee.py,sha256=yRCpLHLg_ca9JQXdZB3_pIMHgHLGEfeQF95E6d1e2Bc,1125
464
464
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
465
- ccxt-3.1.34.dist-info/METADATA,sha256=lBjp4Ymoh5LADoptenCrRzwK3LGrwDarB1OvKe034Qo,110521
466
- ccxt-3.1.34.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
467
- ccxt-3.1.34.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
468
- ccxt-3.1.34.dist-info/RECORD,,
465
+ ccxt-3.1.35.dist-info/METADATA,sha256=k4EuGn83BjgX03mFhTl0x7WHZyzbw0NmGh49LsWr4DU,110521
466
+ ccxt-3.1.35.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
467
+ ccxt-3.1.35.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
468
+ ccxt-3.1.35.dist-info/RECORD,,
File without changes