ccxt 4.3.22__py2.py3-none-any.whl → 4.3.24__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/kucoin.py CHANGED
@@ -4489,6 +4489,7 @@ class kucoin(Exchange, ImplicitAPI):
4489
4489
  partnerSignature = self.hmac(self.encode(partnerPayload), self.encode(partnerSecret), hashlib.sha256, 'base64')
4490
4490
  headers['KC-API-PARTNER-SIGN'] = partnerSignature
4491
4491
  headers['KC-API-PARTNER'] = partnerId
4492
+ headers['KC-API-PARTNER-VERIFY'] = 'true'
4492
4493
  if isBroker:
4493
4494
  brokerName = self.safe_string(partner, 'name')
4494
4495
  if brokerName is not None:
ccxt/phemex.py CHANGED
@@ -3638,7 +3638,8 @@ class phemex(Exchange, ImplicitAPI):
3638
3638
  raise BadRequest(self.id + ' fetchFundingHistory() limit argument cannot exceed 200')
3639
3639
  request['limit'] = limit
3640
3640
  response = None
3641
- if market['settle'] == 'USDT':
3641
+ isUsdt = market['settle'] == 'USDT'
3642
+ if isUsdt:
3642
3643
  response = self.privateGetApiDataGFuturesFundingFees(self.extend(request, params))
3643
3644
  else:
3644
3645
  response = self.privateGetApiDataFuturesFundingFees(self.extend(request, params))
@@ -3651,13 +3652,13 @@ class phemex(Exchange, ImplicitAPI):
3651
3652
  # {
3652
3653
  # "symbol": "BTCUSD",
3653
3654
  # "currency": "BTC",
3654
- # "execQty": 18,
3655
+ # "execQty": 18, # "execQty" regular, but "execQtyRq" in hedge
3655
3656
  # "side": "Buy",
3656
- # "execPriceEp": 360086455,
3657
- # "execValueEv": 49987,
3658
- # "fundingRateEr": 10000,
3659
- # "feeRateEr": 10000,
3660
- # "execFeeEv": 5,
3657
+ # "execPriceEp": 360086455, # "execPriceEp" regular, but "execPriceRp" in hedge
3658
+ # "execValueEv": 49987, # "execValueEv" regular, but "execValueRv" in hedge
3659
+ # "fundingRateEr": 10000, # "fundingRateEr" regular, but "fundingRateRr" in hedge
3660
+ # "feeRateEr": 10000, # "feeRateEr" regular, but "feeRateRr" in hedge
3661
+ # "execFeeEv": 5, # "execFeeEv" regular, but "execFeeRv" in hedge
3661
3662
  # "createTime": 1651881600000
3662
3663
  # }
3663
3664
  # ]
@@ -3670,17 +3671,31 @@ class phemex(Exchange, ImplicitAPI):
3670
3671
  for i in range(0, len(rows)):
3671
3672
  entry = rows[i]
3672
3673
  timestamp = self.safe_integer(entry, 'createTime')
3674
+ execFee = self.safe_string_2(entry, 'execFeeEv', 'execFeeRv')
3675
+ currencyCode = self.safe_currency_code(self.safe_string(entry, 'currency'))
3673
3676
  result.append({
3674
3677
  'info': entry,
3675
3678
  'symbol': self.safe_string(entry, 'symbol'),
3676
- 'code': self.safe_currency_code(self.safe_string(entry, 'currency')),
3679
+ 'code': currencyCode,
3677
3680
  'timestamp': timestamp,
3678
3681
  'datetime': self.iso8601(timestamp),
3679
3682
  'id': None,
3680
- 'amount': self.from_ev(self.safe_string(entry, 'execFeeEv'), market),
3683
+ 'amount': self.parse_funding_fee_to_precision(execFee, market, currencyCode),
3681
3684
  })
3682
3685
  return result
3683
3686
 
3687
+ def parse_funding_fee_to_precision(self, value, market: Market = None, currencyCode: Str = None):
3688
+ if value is None or currencyCode is None:
3689
+ return value
3690
+ # it was confirmed by phemex support, that USDT contracts use direct amounts in funding fees, while USD & INVERSE needs 'valueScale'
3691
+ isUsdt = market['settle'] == 'USDT'
3692
+ if not isUsdt:
3693
+ currency = self.safe_currency(currencyCode)
3694
+ scale = self.safe_string(currency['info'], 'valueScale')
3695
+ tickPrecision = self.parse_precision(scale)
3696
+ value = Precise.string_mul(value, tickPrecision)
3697
+ return value
3698
+
3684
3699
  def fetch_funding_rate(self, symbol: str, params={}):
3685
3700
  """
3686
3701
  fetch the current funding rate
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.22'
7
+ __version__ = '4.3.24'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -36,8 +36,8 @@ from ccxt.pro.blockchaincom import blockchaincom # noqa
36
36
  from ccxt.pro.bybit import bybit # noqa: F401
37
37
  from ccxt.pro.cex import cex # noqa: F401
38
38
  from ccxt.pro.coinbase import coinbase # noqa: F401
39
+ from ccxt.pro.coinbaseexchange import coinbaseexchange # noqa: F401
39
40
  from ccxt.pro.coinbaseinternational import coinbaseinternational # noqa: F401
40
- from ccxt.pro.coinbasepro import coinbasepro # noqa: F401
41
41
  from ccxt.pro.coincheck import coincheck # noqa: F401
42
42
  from ccxt.pro.coinex import coinex # noqa: F401
43
43
  from ccxt.pro.coinone import coinone # noqa: F401
@@ -103,8 +103,8 @@ exchanges = [
103
103
  'bybit',
104
104
  'cex',
105
105
  'coinbase',
106
+ 'coinbaseexchange',
106
107
  'coinbaseinternational',
107
- 'coinbasepro',
108
108
  'coincheck',
109
109
  'coinex',
110
110
  'coinone',
ccxt/pro/bitget.py CHANGED
@@ -1060,7 +1060,7 @@ class bitget(ccxt.async_support.bitget):
1060
1060
  # "executePrice": "35123", # self is limit price
1061
1061
  # "triggerType": "fill_price",
1062
1062
  # "planType": "amount",
1063
- # #### in case order had fill: ####
1063
+ # #### in case order had a partial fill: ####
1064
1064
  # fillPrice: '35123',
1065
1065
  # tradeId: '1171775539946528779',
1066
1066
  # baseVolume: '7', # field present in market order
@@ -1177,13 +1177,19 @@ class bitget(ccxt.async_support.bitget):
1177
1177
  totalAmount = None
1178
1178
  filledAmount = None
1179
1179
  cost = None
1180
+ remaining = None
1181
+ totalFilled = self.safe_string(order, 'accBaseVolume')
1180
1182
  if isSpot:
1181
1183
  if isMargin:
1182
1184
  filledAmount = self.omit_zero(self.safe_string(order, 'fillTotalAmount'))
1183
1185
  totalAmount = self.omit_zero(self.safe_string(order, 'baseSize')) # for margin trading
1184
1186
  cost = self.safe_string(order, 'quoteSize')
1185
1187
  else:
1186
- filledAmount = self.omit_zero(self.safe_string_2(order, 'accBaseVolume', 'baseVolume'))
1188
+ partialFillAmount = self.safe_string(order, 'baseVolume')
1189
+ if partialFillAmount is not None:
1190
+ filledAmount = partialFillAmount
1191
+ else:
1192
+ filledAmount = totalFilled
1187
1193
  if isMarketOrder:
1188
1194
  if isBuy:
1189
1195
  totalAmount = accBaseVolume
@@ -1199,6 +1205,7 @@ class bitget(ccxt.async_support.bitget):
1199
1205
  filledAmount = self.safe_string(order, 'baseVolume')
1200
1206
  totalAmount = self.safe_string(order, 'size')
1201
1207
  cost = self.safe_string(order, 'fillNotionalUsd')
1208
+ remaining = self.omit_zero(Precise.string_sub(totalAmount, totalFilled))
1202
1209
  return self.safe_order({
1203
1210
  'info': order,
1204
1211
  'symbol': symbol,
@@ -1217,7 +1224,7 @@ class bitget(ccxt.async_support.bitget):
1217
1224
  'cost': cost,
1218
1225
  'average': avgPrice,
1219
1226
  'filled': filledAmount,
1220
- 'remaining': None,
1227
+ 'remaining': remaining,
1221
1228
  'status': self.parse_ws_order_status(rawStatus),
1222
1229
  'fee': feeObject,
1223
1230
  'trades': None,
@@ -16,10 +16,10 @@ from ccxt.base.errors import BadRequest
16
16
  from ccxt.base.errors import BadSymbol
17
17
 
18
18
 
19
- class coinbasepro(ccxt.async_support.coinbasepro):
19
+ class coinbaseexchange(ccxt.async_support.coinbaseexchange):
20
20
 
21
21
  def describe(self):
22
- return self.deep_extend(super(coinbasepro, self).describe(), {
22
+ return self.deep_extend(super(coinbaseexchange, self).describe(), {
23
23
  'has': {
24
24
  'ws': True,
25
25
  'watchOHLCV': False, # missing on the exchange side
@@ -38,7 +38,7 @@ class coinbasepro(ccxt.async_support.coinbasepro):
38
38
  },
39
39
  'urls': {
40
40
  'api': {
41
- 'ws': 'wss://ws-feed.pro.coinbase.com',
41
+ 'ws': 'wss://ws-feed.exchange.coinbase.com',
42
42
  },
43
43
  'test': {
44
44
  'ws': 'wss://ws-feed-public.sandbox.exchange.coinbase.com',
@@ -437,7 +437,7 @@ class coinbasepro(ccxt.async_support.coinbasepro):
437
437
  # "side": "buy",
438
438
  # "order_type": "limit"
439
439
  # }
440
- parsed = super(coinbasepro, self).parse_trade(trade)
440
+ parsed = super(coinbaseexchange, self).parse_trade(trade)
441
441
  feeRate = None
442
442
  isMaker = False
443
443
  if 'maker_fee_rate' in trade:
@@ -727,7 +727,7 @@ class coinbasepro(ccxt.async_support.coinbasepro):
727
727
  #
728
728
  type = self.safe_string(ticker, 'type')
729
729
  if type is None:
730
- return super(coinbasepro, self).parse_ticker(ticker, market)
730
+ return super(coinbaseexchange, self).parse_ticker(ticker, market)
731
731
  marketId = self.safe_string(ticker, 'product_id')
732
732
  symbol = self.safe_symbol(marketId, market, '-')
733
733
  timestamp = self.parse8601(self.safe_string(ticker, 'time'))
@@ -809,29 +809,33 @@ class poloniexfutures(ccxt.async_support.poloniexfutures):
809
809
  def handle_delta(self, orderbook, delta):
810
810
  #
811
811
  # {
812
- # "sequence": 18, # Sequence number which is used to judge the continuity of pushed messages
813
- # "change": "5000.0,sell,83" # Price, side, quantity
814
- # "timestamp": 1551770400000
815
- # }
812
+ # sequence: 123677914,
813
+ # lastSequence: 123677913,
814
+ # change: '80.36,buy,4924',
815
+ # changes: ['80.19,buy,0',"80.15,buy,10794"],
816
+ # timestamp: 1715643483528
817
+ # },
816
818
  #
817
819
  sequence = self.safe_integer(delta, 'sequence')
820
+ lastSequence = self.safe_integer(delta, 'lastSequence')
818
821
  nonce = self.safe_integer(orderbook, 'nonce')
819
- if nonce != sequence - 1:
820
- checksum = self.safe_bool(self.options, 'checksum', True)
821
- if checksum:
822
- # todo: client.reject from handleOrderBookMessage properly
823
- raise InvalidNonce(self.id + ' watchOrderBook received an out-of-order nonce')
824
- change = self.safe_string(delta, 'change')
825
- splitChange = change.split(',')
826
- price = self.safe_number(splitChange, 0)
827
- side = self.safe_string(splitChange, 1)
828
- size = self.safe_number(splitChange, 2)
822
+ if nonce > sequence:
823
+ return
824
+ if nonce != lastSequence:
825
+ raise InvalidNonce(self.id + ' watchOrderBook received an out-of-order nonce')
826
+ changes = self.safe_list(delta, 'changes')
827
+ for i in range(0, len(changes)):
828
+ change = changes[i]
829
+ splitChange = change.split(',')
830
+ price = self.safe_number(splitChange, 0)
831
+ side = self.safe_string(splitChange, 1)
832
+ size = self.safe_number(splitChange, 2)
833
+ orderBookSide = orderbook['bids'] if (side == 'buy') else orderbook['asks']
834
+ orderBookSide.store(price, size)
829
835
  timestamp = self.safe_integer(delta, 'timestamp')
830
836
  orderbook['timestamp'] = timestamp
831
837
  orderbook['datetime'] = self.iso8601(timestamp)
832
838
  orderbook['nonce'] = sequence
833
- orderBookSide = orderbook['bids'] if (side == 'buy') else orderbook['asks']
834
- orderBookSide.store(price, size)
835
839
 
836
840
  def handle_balance(self, client: Client, message):
837
841
  #
ccxt/probit.py CHANGED
@@ -220,41 +220,22 @@ class probit(Exchange, ImplicitAPI):
220
220
  },
221
221
  },
222
222
  'commonCurrencies': {
223
- 'AUTO': 'Cube',
224
- 'AZU': 'Azultec',
225
- 'BCC': 'BCC',
226
- 'BDP': 'BidiPass',
227
- 'BIRD': 'Birdchain',
228
- 'BTCBEAR': 'BEAR',
229
- 'BTCBULL': 'BULL',
223
+ 'BB': 'Baby Bali',
230
224
  'CBC': 'CryptoBharatCoin',
231
- 'CHE': 'Chellit',
232
- 'CLR': 'Color Platform',
233
225
  'CTK': 'Cryptyk',
234
226
  'CTT': 'Castweet',
235
- 'DIP': 'Dipper',
236
227
  'DKT': 'DAKOTA',
237
228
  'EGC': 'EcoG9coin',
238
229
  'EPS': 'Epanus', # conflict with EPS Ellipsis https://github.com/ccxt/ccxt/issues/8909
239
230
  'FX': 'Fanzy',
240
- 'GDT': 'Gorilla Diamond',
241
231
  'GM': 'GM Holding',
242
232
  'GOGOL': 'GOL',
243
233
  'GOL': 'Goldofir',
244
- 'GRB': 'Global Reward Bank',
245
- 'HBC': 'Hybrid Bank Cash',
246
234
  'HUSL': 'The Hustle App',
247
235
  'LAND': 'Landbox',
248
- 'LBK': 'Legal Block',
249
- 'ORC': 'Oracle System',
250
- 'PXP': 'PIXSHOP COIN',
251
- 'PYE': 'CreamPYE',
252
- 'ROOK': 'Reckoon',
253
- 'SOC': 'Soda Coin',
254
236
  'SST': 'SocialSwap',
255
237
  'TCT': 'Top Coin Token',
256
238
  'TOR': 'Torex',
257
- 'TPAY': 'Tetra Pay',
258
239
  'UNI': 'UNICORN Token',
259
240
  'UNISWAP': 'UNI',
260
241
  },
ccxt/whitebit.py CHANGED
@@ -245,6 +245,15 @@ class whitebit(Exchange, ImplicitAPI):
245
245
  'convert/estimate',
246
246
  'convert/confirm',
247
247
  'convert/history',
248
+ 'sub-account/create',
249
+ 'sub-account/delete',
250
+ 'sub-account/edit',
251
+ 'sub-account/list',
252
+ 'sub-account/transfer',
253
+ 'sub-account/block',
254
+ 'sub-account/unblock',
255
+ 'sub-account/balances',
256
+ 'sub-account/transfer/history',
248
257
  ],
249
258
  },
250
259
  },
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.22
3
+ Version: 4.3.24
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
@@ -49,7 +49,7 @@ Requires-Dist: mypy ==1.6.1 ; extra == 'type'
49
49
 
50
50
  # CCXT – CryptoCurrency eXchange Trading Library
51
51
 
52
- [![Build Status](https://travis-ci.com/ccxt/ccxt.svg?branch=master)](https://travis-ci.com/ccxt/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) [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/ccxt) [![Supported Exchanges](https://img.shields.io/badge/exchanges-104-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Twitter Follow](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://twitter.com/ccxt_official)
52
+ [![Build Status](https://travis-ci.com/ccxt/ccxt.svg?branch=master)](https://travis-ci.com/ccxt/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) [![NPM Downloads](https://img.shields.io/npm/dy/ccxt.svg)](https://www.npmjs.com/package/ccxt) [![Discord](https://img.shields.io/discord/690203284119617602?logo=discord&logoColor=white)](https://discord.gg/ccxt) [![Supported Exchanges](https://img.shields.io/badge/exchanges-105-blue.svg)](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [![Twitter Follow](https://img.shields.io/twitter/follow/ccxt_official.svg?style=social&label=CCXT)](https://twitter.com/ccxt_official)
53
53
 
54
54
  A JavaScript / Python / PHP / C# library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
55
55
 
@@ -145,8 +145,8 @@ The CCXT library currently supports the following 98 cryptocurrency exchange mar
145
145
  | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/register?affiliate_id=35953) | bybit | [Bybit](https://www.bybit.com/register?affiliate_id=35953) | [![API Version 5](https://img.shields.io/badge/5-lightgray)](https://bybit-exchange.github.io/docs/inverse/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
146
146
  | [![cex](https://user-images.githubusercontent.com/1294454/27766442-8ddc33b0-5ed8-11e7-8b98-f786aef0f3c9.jpg)](https://cex.io/r/0/up105393824/0/) | cex | [CEX.IO](https://cex.io/r/0/up105393824/0/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://cex.io/cex-api) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
147
147
  | [![coinbase](https://user-images.githubusercontent.com/1294454/40811661-b6eceae2-653a-11e8-829e-10bfadb078cf.jpg)](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | coinbase | [Coinbase Advanced](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://developers.coinbase.com/api/v2) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
148
+ | [![coinbaseexchange](https://github.com/ccxt/ccxt/assets/43336371/34a65553-88aa-4a38-a714-064bd228b97e)](https://coinbase.com/) | coinbaseexchange | [Coinbase Exchange](https://coinbase.com/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://docs.cloud.coinbase.com/exchange/docs/) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
148
149
  | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://international.coinbase.com) | coinbaseinternational | [Coinbase International](https://international.coinbase.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbase.com/intx/docs) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
149
- | [![coinbasepro](https://user-images.githubusercontent.com/1294454/41764625-63b7ffde-760a-11e8-996d-a6328fa9347a.jpg)](https://pro.coinbase.com/) | coinbasepro | [Coinbase Pro(Deprecated)](https://pro.coinbase.com/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://docs.pro.coinbase.com) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
150
150
  | [![coincheck](https://user-images.githubusercontent.com/51840849/87182088-1d6d6380-c2ec-11ea-9c64-8ab9f9b289f5.jpg)](https://coincheck.com) | coincheck | [coincheck](https://coincheck.com) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://coincheck.com/documents/exchange/api) | | |
151
151
  | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.coinex.com/api/v2) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
152
152
  | [![coinlist](https://github-production-user-asset-6210df.s3.amazonaws.com/1294454/281108917-eff2ae1d-ce8a-4b2a-950d-8678b12da965.jpg)](https://coinlist.co) | coinlist | [Coinlist](https://coinlist.co) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://trade-docs.coinlist.co) | | |
@@ -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@4.3.22/dist/ccxt.browser.js
268
- * unpkg: https://unpkg.com/ccxt@4.3.22/dist/ccxt.browser.js
267
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.24/dist/ccxt.browser.js
268
+ * unpkg: https://unpkg.com/ccxt@4.3.24/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@4.3.22/dist/ccxt.browser.js"></script>
273
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.24/dist/ccxt.browser.js"></script>
274
274
  ```
275
275
 
276
276
  Creates a global `ccxt` object:
@@ -1,10 +1,10 @@
1
- ccxt/__init__.py,sha256=M4A2Cqt4oS1NFyEcRHnzWX7tN9APstM4kHYSQ4Ge7Ig,15838
1
+ ccxt/__init__.py,sha256=B1EFn-tKO_K29PcG0QEnfrDIY1jVqOL-3lliEvXsWx0,15950
2
2
  ccxt/ace.py,sha256=IAbVQ73OhU5xdTLO6dtedqa3bSuZ63Me55Se1zotYUY,41656
3
3
  ccxt/alpaca.py,sha256=NadHil-XkNFteqE7GwzIhKCCRjQ7m0xBQBCUlKxS6Sc,47215
4
4
  ccxt/ascendex.py,sha256=UjGRc4PgSi9ZNFl8greVZZZMTQxjEQRF8yF5SSUqeJM,151471
5
5
  ccxt/bequant.py,sha256=RBiAmaTbL35DgiV3Hl6uchLUd78V0z1T9riTlNsrpdc,1174
6
6
  ccxt/bigone.py,sha256=XyWou4LP3aF9QoA8tro4DfAmDNDwcIRp_L3J7pTNICc,92209
7
- ccxt/binance.py,sha256=97LXsFCutZkA5ZVscLOU8oJS1DLfCemEJ9Mb3ZQ-5PU,617552
7
+ ccxt/binance.py,sha256=IojU3Tkcp9qPaaoYYcbpnZ2Mu8SmA6mS-R7KMOghJus,617548
8
8
  ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
9
9
  ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
10
10
  ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
@@ -23,7 +23,7 @@ ccxt/bitmart.py,sha256=kM0SaiFm7LMGSSh-9iHSyexet0t7C9gLnKFfyORscEU,199137
23
23
  ccxt/bitmex.py,sha256=PxRDGNFOToB2fFulw0Z3XEklLhFmKF_rRfx8LpDtgoo,126584
24
24
  ccxt/bitopro.py,sha256=Ph0uhgzUJzNKji_bIs9SxbY72U7Fu-6QWr2i6WMKB7M,68522
25
25
  ccxt/bitpanda.py,sha256=aiwPkx9lKbVzt4ggoYdq_mIbMGtg5ZtGl2yRHO5xyz8,471
26
- ccxt/bitrue.py,sha256=zxBvmkbP1EwfpptdAsMonEig-79p8q5hu_I3iEebQyo,136220
26
+ ccxt/bitrue.py,sha256=IyMHMGfGwOwhi2WOy5-cPe7_GITVB22tS4JeVXClxGY,136392
27
27
  ccxt/bitso.py,sha256=ni6NTPVeUN8JODxvXR7oCG0TIc3JwEq8D-grCNpnFM8,70885
28
28
  ccxt/bitstamp.py,sha256=5_Y1RbEMxzX0H8Y9IJ3cEOyemkI_QpyUKFSW23IEp0Y,92235
29
29
  ccxt/bitteam.py,sha256=pInXxLqE5yOXly9JLKOsRx92l6SA4clnMm1oYEOzuEw,102026
@@ -37,11 +37,12 @@ ccxt/btcmarkets.py,sha256=hz5nGYJUku1EjoCFGlq3Wfas-H9nInG4gKYw6kPyU74,51484
37
37
  ccxt/btcturk.py,sha256=9RFC0mCWjW_jW8Hgz5cuwb1gaeLf469FOXae4p_KQJM,36657
38
38
  ccxt/bybit.py,sha256=OCRuZpug2qrIFy97l_7xSAxRa0y8Vua1lamHxSo6IwE,412519
39
39
  ccxt/cex.py,sha256=_EDbKQQiIKS5UVztu1wrQq-WQPJxa3GnLelfOkd6O2k,69930
40
- ccxt/coinbase.py,sha256=xZUHwSI_MTXGGzIlH1xFzD_G-Pcl4kaoX0BCcdhZjaQ,211999
40
+ ccxt/coinbase.py,sha256=IQu7NvSQ80m5cUlfkbHhywTdwO2n7YRXeuToXbGlYG0,212311
41
+ ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
42
+ ccxt/coinbaseexchange.py,sha256=FeSNMY_lAzYAs3X9QmDCMSHScdyUW-nLv78AoMIPK78,78704
41
43
  ccxt/coinbaseinternational.py,sha256=wieWUwsLsBYAgNpvnnrKseqAE7aOw__apSP6MQK9u9E,87240
42
- ccxt/coinbasepro.py,sha256=SFMlNzdnl_vbE_KqnopNmj-u8As_g2D9qFmrpicNsZw,78671
43
44
  ccxt/coincheck.py,sha256=jg8KHt_XUMPlbG1BYUiSHu9-DDBWdnQwV15P9IzKqbY,35664
44
- ccxt/coinex.py,sha256=tQJLIaUSjzYfQimyfkdz0mmQ3IhrdylTx3esKi9R1Rw,258783
45
+ ccxt/coinex.py,sha256=zce54mXGtgS1bqSrt-3IRSZdFHRtflIoqIX8dl2SaXc,259870
45
46
  ccxt/coinlist.py,sha256=EU4jtqWALdcLG5X3m2q4xPbQ3-h5-H63Eeb_R3wW-5s,103140
46
47
  ccxt/coinmate.py,sha256=EsXu0mcAkVFwg2VOg47qr6g95a3bDPN2I9AuFQxgkQg,45946
47
48
  ccxt/coinmetro.py,sha256=tZjLAz5XufybO3BU3QGXMrLzinoY4UBhn0JIyXivnys,80700
@@ -70,7 +71,7 @@ ccxt/independentreserve.py,sha256=iobtHiT8KlD1-mDJeoZCzPEPteSZz512mxgnrTnsECo,32
70
71
  ccxt/indodax.py,sha256=ulvlP7-xpQWXrBfvRn-GWMoOXr_4MBBMrkTDDgM4fbQ,51921
71
72
  ccxt/kraken.py,sha256=YKMTpaILyYw5kLQkKMH9pl9nB0ek_5NSE0ew5-cUOVQ,125472
72
73
  ccxt/krakenfutures.py,sha256=S1WRrAtZ_tibYH50N0yb4y4pe12g3yNruLaH0ZWuWw4,116835
73
- ccxt/kucoin.py,sha256=c3O5pkS_ABKhvgGg5oTzxAVGDbO8uZy7gEeEAyl81ZQ,217738
74
+ ccxt/kucoin.py,sha256=0YqwMhzxBt_cmOgZj_JPJ5tOF7QrFJXzyvBrheJiuT4,217796
74
75
  ccxt/kucoinfutures.py,sha256=x5m2yqC5ZEIaKCBmM8alKJ7tk2r9nzpMC-PcpfadnRo,124327
75
76
  ccxt/kuna.py,sha256=Q1FuK9RvZmEYN87G3bHsVhcUcclMApuFVDNv5njyaRU,95991
76
77
  ccxt/latoken.py,sha256=pMuCXETni8Ihgl4OSUNk5Ovt4D6bV61zctM45nn8cCs,79197
@@ -87,17 +88,17 @@ ccxt/okx.py,sha256=C-RC8I5teheFdZ54ny3hC9zmjcYRmkpClrQQ1kgQ07s,377057
87
88
  ccxt/onetrading.py,sha256=MdzNJW9ViYhpx4S5cmoVu9SCX1nD3oZYfVfnPkhhfwE,88113
88
89
  ccxt/p2b.py,sha256=FYxL36KwtaLIIQ793frJEtqtHyzm39hNK0mJEzAAH0U,54213
89
90
  ccxt/paymium.py,sha256=kuMPTXyqU98kMpKeiSMicD51bSwprXHU0WrgLlAsxGY,24244
90
- ccxt/phemex.py,sha256=oz-G8LbnP8op7NZgt5sC-NMdZmJfM3n1l6QQE6gawus,220593
91
+ ccxt/phemex.py,sha256=l2Ebx9I5uH7lX1yHnG6rtt27ndK2jMCJQWpExG9o_RQ,221696
91
92
  ccxt/poloniex.py,sha256=WfJ93JWxt5BiIidD2aiC09GSZI-EFhwdeBbJYZ47v1E,101991
92
93
  ccxt/poloniexfutures.py,sha256=3bxdkVWbe_T6r4IvekvM6x-Hd7cSng5SDaDjgPZSk8k,77799
93
- ccxt/probit.py,sha256=0WNy6ZsZq9qz7tt_V_h8lxOgvM5-PwNSJSDb3G4RUZ0,76379
94
+ ccxt/probit.py,sha256=x6Y3MeRLwRZE02l7zxHbIucwU6pqYciWc05QXdZgxg8,75678
94
95
  ccxt/timex.py,sha256=f5N0SLGZCgufN55N9v4T_ifzpzIpoSbg_51BpWusR8g,71287
95
96
  ccxt/tokocrypto.py,sha256=NjMayIAu4elZ6dGAdWIWeslVCA4hxiiVrF3QxMkw-w8,123013
96
97
  ccxt/tradeogre.py,sha256=jsJtJ9sAb-mmQO71kchwxbgkmFxMDSuzmuW0gtdFTnw,23900
97
98
  ccxt/upbit.py,sha256=7XwfWbQYZg6W15pmi2FuDJQqzY0Tz-MsUTKTeqy2GEI,81611
98
99
  ccxt/wavesexchange.py,sha256=WMRiWLR7EHrRLfR2sRa-M1NbtErbX2s0AucB47Bv9t4,113603
99
100
  ccxt/wazirx.py,sha256=9j_cOXN3PgWD_6hXB0xu0aWfplqC_UT2hs5OBcbZLvU,51342
100
- ccxt/whitebit.py,sha256=wXj3xvfQOnog5inoQk4mASNJawWGJW6EKamAuanKqfU,114402
101
+ ccxt/whitebit.py,sha256=0nGyJjoziS8dXTC6Dtclm_V4r5W8XaHs1IVNRqn6yuA,114862
101
102
  ccxt/woo.py,sha256=83_uWV8A6Thp6v8gD71UNAvSCrX--eV4BRkHdcyhpc4,139464
102
103
  ccxt/woofipro.py,sha256=cGeDhYnQ6sqRipaQaDLBFK6tPzSrqWPYY2MUB5pTSus,114867
103
104
  ccxt/yobit.py,sha256=bWzXMK2Q9DdPr8EmhPzaq5rqkHOt0lqRwEsDQgCj5BY,53222
@@ -143,8 +144,9 @@ ccxt/abstract/btcturk.py,sha256=duM-QrB9MvGpopOtxkfbeYlY49bgvXQLiosRVmnQYFw,1777
143
144
  ccxt/abstract/bybit.py,sha256=eqKWi3rALneYXIgP62lKZDq_mRAGYNawisGPPLqQ1vk,48923
144
145
  ccxt/abstract/cex.py,sha256=Q0NJeDuJ4Kn_mtokYqBenhXWvLIiMSVTqbgbfcLGgv4,3311
145
146
  ccxt/abstract/coinbase.py,sha256=GFXDh_Bf65Gsx_DmgOrRG2jpM3IdITE3Agqz_LZTJfo,15507
147
+ ccxt/abstract/coinbaseadvanced.py,sha256=GFXDh_Bf65Gsx_DmgOrRG2jpM3IdITE3Agqz_LZTJfo,15507
148
+ ccxt/abstract/coinbaseexchange.py,sha256=eQMtsIw94xJqQO_xXmrrHdc_YFmhVZNW4OXCWv4Nx1w,7162
146
149
  ccxt/abstract/coinbaseinternational.py,sha256=wf1fF31fQ1TAVSk1X4ju6LYQc7tHI1lN5nxRnhnzsbk,4770
147
- ccxt/abstract/coinbasepro.py,sha256=eQMtsIw94xJqQO_xXmrrHdc_YFmhVZNW4OXCWv4Nx1w,7162
148
150
  ccxt/abstract/coincheck.py,sha256=3IIVmryXmzxXqi6IleUmfDZIUMOn_L_4G9Iw8BuEEGo,3417
149
151
  ccxt/abstract/coinex.py,sha256=xPxsdMIhrtHfZO7w5cW-1RpR12H20u1tTPNFaNaeXOU,34678
150
152
  ccxt/abstract/coinlist.py,sha256=t4Xc9xyWNHgHAz7nyplj8PmgrX4knA3cnk2uEJCvkQk,6538
@@ -202,19 +204,19 @@ ccxt/abstract/tradeogre.py,sha256=sIdA_22RHztwsIeznysBPtvta5V_mQwUXeYK6OyUJqQ,13
202
204
  ccxt/abstract/upbit.py,sha256=fPIEwrzoNk01aQbxhuRveTFHHKGBfAweOn4Uv8Ru0UM,3576
203
205
  ccxt/abstract/wavesexchange.py,sha256=8LIgZiPixoaUFPKGSWJpjI1BYXVqeQh9NLcjfXciZMc,19631
204
206
  ccxt/abstract/wazirx.py,sha256=UfQvsyKwf4kImpkPlxdnoWDq0iUT5t1kSa2iDr_XkDw,2782
205
- ccxt/abstract/whitebit.py,sha256=FP5zn3RvbaRcJ2LLgeaTKra2L6aaq9Bj6gZ79VMzAwE,10977
207
+ ccxt/abstract/whitebit.py,sha256=V38LGKYq3LYYVw4Cwr-eJjhzTBOtrklCbLTAID4tths,12194
206
208
  ccxt/abstract/woo.py,sha256=yH0aXeyohXdyS3jZrztapwRmzNWk7JGpbrrf7pX_LKU,10368
207
209
  ccxt/abstract/woofipro.py,sha256=El50vWGAV-4QPIDhgSnd4egfvk246NB6vTC-8h722vs,16016
208
210
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
209
211
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
210
212
  ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
211
- ccxt/async_support/__init__.py,sha256=d2w0vWwfOJx4NTDsVwCnNvPReHr9CLXP9_dBtV9VaI4,15601
213
+ ccxt/async_support/__init__.py,sha256=t_VwyA3nEUTkoaRHt7HUyUv8NmHmqiIHEChunLqt2Dg,15723
212
214
  ccxt/async_support/ace.py,sha256=xVxaTocpMapAIl4ApPApw69Rd-RDuU0_vleJnVt_qhI,41880
213
215
  ccxt/async_support/alpaca.py,sha256=rjD8PdQr1B5e9hvaoTQBKVtWwHLs04e6_-gooXl4eEE,47427
214
216
  ccxt/async_support/ascendex.py,sha256=w4GaR3Xm9fkIAdXostTsu0Pnw9VkRrT6ar57gU9HSHw,152259
215
217
  ccxt/async_support/bequant.py,sha256=1hTwHovo1bW1XTIc8ZKjvJ-Xg6LfmpGdzT7TepykaVM,1188
216
218
  ccxt/async_support/bigone.py,sha256=_uNS1hUzXNxkVJ227FHU1N0BeojYws-Fs0qNXpm4T_w,92663
217
- ccxt/async_support/binance.py,sha256=rzAp7cFuu-inpl7D6qvjByl9StcZZc1XiTiXlUFkHJU,620262
219
+ ccxt/async_support/binance.py,sha256=sgPD5mSPMpsM2Gwp-Y-s3wyUGcgYtafJxJhTxwdQ8Fs,620258
218
220
  ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
219
221
  ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
220
222
  ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
@@ -233,7 +235,7 @@ ccxt/async_support/bitmart.py,sha256=wKlX--oFHZI8rWzdrR8jeYvg4dWfuARfSZ67yO9JgFc
233
235
  ccxt/async_support/bitmex.py,sha256=tnw76bg38oOvz-luU-c7K4A75MwSsfwJs9VrzRW5OHs,127162
234
236
  ccxt/async_support/bitopro.py,sha256=kIorVevTcOvIqfsCn0z-QXscJjIDcG3qq9_WzC6C_ks,68926
235
237
  ccxt/async_support/bitpanda.py,sha256=2k3URBWrpnh2xHa7JiYenI7_4MW5UeOPGzetlmRkR4U,485
236
- ccxt/async_support/bitrue.py,sha256=xJ3EQ_4Rgm428X4z1FyI0g9qK3Uzq8fcrEvhSubttV8,136878
238
+ ccxt/async_support/bitrue.py,sha256=WEmcqhfxpON6EoBNXvlslfID2NTyk5vRgvwQU9lt1QU,137050
237
239
  ccxt/async_support/bitso.py,sha256=z0X3fCd9sQF5YSUJIr9d9dNyLhLgl7XsU5F7DvzgO4E,71271
238
240
  ccxt/async_support/bitstamp.py,sha256=_hHTPEPF51z7HJ3Z8s037k6b0YZwdbe1nATfepEtDLc,92735
239
241
  ccxt/async_support/bitteam.py,sha256=V-Ofv3bjLcEgikZX_XNF9D941uJ9MLPla0656Q2mrUk,102358
@@ -247,11 +249,12 @@ ccxt/async_support/btcmarkets.py,sha256=vQQN9ITp68EYWjY8UiXFNDvL9gXUhNIZjlfZ3i7P
247
249
  ccxt/async_support/btcturk.py,sha256=EMrvQcRRGtO9Hu3StUvalUiaTgueI7UM86IYS0Dgj6I,36875
248
250
  ccxt/async_support/bybit.py,sha256=4wjZKMH6UthYB1qIeA0gAcoaHk71fEnQii8xPIM3-VI,414323
249
251
  ccxt/async_support/cex.py,sha256=MMVgApSlmqtfnEJHdsL4WXd7_5uFri-F0QjSWOsyoEU,70280
250
- ccxt/async_support/coinbase.py,sha256=vxeIN4tbnXWt6ihGSRhdwVmKtwmyI67Rk-nwoTGFUD0,213105
252
+ ccxt/async_support/coinbase.py,sha256=7I2rxiBGKwnC6aZ2DMajH5FEarhesMGRWK-Xhn3kL8g,213417
253
+ ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNAznUJPhdQs,552
254
+ ccxt/async_support/coinbaseexchange.py,sha256=3wEfbKBAVn9JkOfukopSRPhM8unRA6BQLqvm5c2VLBE,79210
251
255
  ccxt/async_support/coinbaseinternational.py,sha256=fuU-h5UpO_nVs1j8KA7oGsQlP0kQefuPycZrc8ph6OQ,87794
252
- ccxt/async_support/coinbasepro.py,sha256=GnzjqgXso5wqAVZbkMcMjcpQ1BJ7um3BtBbhrM_X0rI,79177
253
256
  ccxt/async_support/coincheck.py,sha256=ThRQX8E3NZrGc9Z__UIb7p0AtHgnq_DBhe9GzE9SlaQ,35870
254
- ccxt/async_support/coinex.py,sha256=NIGxG0CxJ1wtBGIis8ZLkxFSVABWZHkP67zDrqCBGSE,260077
257
+ ccxt/async_support/coinex.py,sha256=g_RcySMlUqdpONcOnzJgTOt3JpvMkhGVCYu2OfiHdks,261152
255
258
  ccxt/async_support/coinlist.py,sha256=MKLhRyaw0DHkpRfR-Vj9NS0SwCpYUx8nOxZJ26swIMY,103628
256
259
  ccxt/async_support/coinmate.py,sha256=lc8p0aQXu-oSf2whiqvm0QoBhDVx9wf50CcFeucdXcY,46212
257
260
  ccxt/async_support/coinmetro.py,sha256=NLqNdcJ_zXcNqaxqkrloL9PqnogbQ6OzA5e_Gl4ACtk,81020
@@ -280,7 +283,7 @@ ccxt/async_support/independentreserve.py,sha256=8UTpFWJtrfZTeMhRfNK8mGiOu0-p-JCb
280
283
  ccxt/async_support/indodax.py,sha256=Duu0r6PCzPlQLNqj2v2smCh6xE65S9LpP7wwQWa5ygM,52229
281
284
  ccxt/async_support/kraken.py,sha256=_yQEd3_OjqQBDdElH-XTPkLVe6P2tCVt0kl2BjlVnKU,126074
282
285
  ccxt/async_support/krakenfutures.py,sha256=LwIy5nZe5urJ7Yrb5_KSKtk0giBBUnQl20KlgGKXwLg,117323
283
- ccxt/async_support/kucoin.py,sha256=4QcHj101RfCQHCPai8WHg7_ZQUf_ik4Y-FqbTwFdrO0,218810
286
+ ccxt/async_support/kucoin.py,sha256=-7kAVv2ghUIBXL6QLWmuZUsgCdq2wW6cHGSFMFGDyMA,218868
284
287
  ccxt/async_support/kucoinfutures.py,sha256=3gdO1HK5avmyseAXEEiufyNifvJAUpW75mUQNYhlmzQ,124965
285
288
  ccxt/async_support/kuna.py,sha256=jcgPCS4_wHsWbBni6yuj6iMa641AYsiZr8ZBNGoxCe8,96407
286
289
  ccxt/async_support/latoken.py,sha256=eseLp2evP-Ux0BSkOTlq2CXSnHVjAWDqY26OrKMgXTQ,79673
@@ -297,24 +300,24 @@ ccxt/async_support/okx.py,sha256=smCT2Harj61L4dxsra9SFA70IJydH4EbOgSbjCabevg,378
297
300
  ccxt/async_support/onetrading.py,sha256=Px7iH4HjaGmAVMNjLwZdD8RJwspUleMdABCGQvmoNbA,88565
298
301
  ccxt/async_support/p2b.py,sha256=KrNc3sLbHQCxbgShyqWytuQVaQfKa42Q6_HcUYNUaKI,54455
299
302
  ccxt/async_support/paymium.py,sha256=_YfQn6Xwy0k9VMVOqmDGCfI8FhN_WKmyE7Eo9jR5u9I,24432
300
- ccxt/async_support/phemex.py,sha256=GsBiRkNc72_j8pjzxjXI9V0RCQC8Yy7tZ2ypSqKCbUc,221405
303
+ ccxt/async_support/phemex.py,sha256=vKKPTW-ONIn3OKm3p0tT1QK07a28-aFv6kFhGqPKyUw,222508
301
304
  ccxt/async_support/poloniex.py,sha256=tGl5AoEd2P0K0Af6twI2uwcNV81WDe2PCN4VAPkb3nQ,102539
302
305
  ccxt/async_support/poloniexfutures.py,sha256=VL4oNy3YJXw-UsiixEsU7wzw4JTpICXu6GdFdpcAKrw,78185
303
- ccxt/async_support/probit.py,sha256=oRpeioq1soJtild3vH6QE7ufX1RLfyQUBCsmyQW-j3w,76771
306
+ ccxt/async_support/probit.py,sha256=xoDPbTB7_gntlKacTzFXFezCIIJpzoWP7CUaiIvu6co,76070
304
307
  ccxt/async_support/timex.py,sha256=WBhhqjSBXuS3wvdoFptoq08b0vDN5Vw0bFg_kxHDKrE,71649
305
308
  ccxt/async_support/tokocrypto.py,sha256=nOZ0QNsy4Eh2chpJyQGMx-BThYTwwFoH5dekecqkaSk,123375
306
309
  ccxt/async_support/tradeogre.py,sha256=WJdVRPnjE_Q3LdhISdrKjmiNkV0f4-gazWusEZy4PjI,24094
307
310
  ccxt/async_support/upbit.py,sha256=q5R3QAUVIqE94dWZ7iC6CESJdz1DCbq71h1Mg-FEA9s,82093
308
311
  ccxt/async_support/wavesexchange.py,sha256=PZaC_yiqWrlc-yVse5xJ4AnNX8sYxKamTzmemBVAkAQ,114153
309
312
  ccxt/async_support/wazirx.py,sha256=XndOKu5ViBlyzwHbONKUwxw7Zr3AQ_XLieSGo6HCMW0,51644
310
- ccxt/async_support/whitebit.py,sha256=mJQT0twLKUs4rW6AAhwqv0Mx1r3OtxtAEe2gh5V6SLQ,115022
313
+ ccxt/async_support/whitebit.py,sha256=Pd6UoxgajJAVR_iVUsJ1pZGJDrDVPztankFVRXSV4Ao,115482
311
314
  ccxt/async_support/woo.py,sha256=D9lQhsx3sSeDGic1ToxqCx3eJkdNS_UA7IucvQXg__0,140354
312
315
  ccxt/async_support/woofipro.py,sha256=PQsLD8Kz_TkPTBdQTFlOVHZmTPnpitFLLS73Ezt1CpY,115547
313
316
  ccxt/async_support/yobit.py,sha256=kvMIVVjf8XxE7cKt51iHtqH7zgmFKc5ZVhk1dKDtlxE,53506
314
317
  ccxt/async_support/zaif.py,sha256=lzrmIYPlNJquYkK-fq9DjqS8EfiAtofXnPcTMf3XOMM,28161
315
318
  ccxt/async_support/zonda.py,sha256=bS_Oq8FVjbLxnxFVVg-_5ZlNS0CH9QxSUVKL91IR9rc,80912
316
319
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
317
- ccxt/async_support/base/exchange.py,sha256=zRA1jhYuRj3hJKrYd-lktrn6kpczkGEPFt4F8cBsMrI,108636
320
+ ccxt/async_support/base/exchange.py,sha256=IYH0t15nRLoVoENRTCmxOy8ClaroISPnRV0RVIvDyH0,108717
318
321
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
319
322
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
320
323
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=Ed1765emEde2Hj8Ys6f5EjS54ZI1wQ0qIhd04eB7yhU,5751
@@ -328,10 +331,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIu
328
331
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
329
332
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
330
333
  ccxt/base/errors.py,sha256=FGdyULeNCNcl52gA_CNhe2dZmat9GJGkTdlIyDXAF_A,4213
331
- ccxt/base/exchange.py,sha256=_nSr69S9bP_CSZzyzxcid4CAX84qlHW4QsHvTEhl1GY,278172
334
+ ccxt/base/exchange.py,sha256=aKmetWxqjo5la1OpqiQnmh6dkTiopP5U_HBg2IVaCTI,278253
332
335
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
333
336
  ccxt/base/types.py,sha256=3hBdiD2EO7W-pwmBrDeDYMEdFGcnT0QqQZa3l8ywTVM,9027
334
- ccxt/pro/__init__.py,sha256=yel7b2yG0qyDXvCO1G2Ducfj64vBqmID_13VrSwlsSI,7102
337
+ ccxt/pro/__init__.py,sha256=sVg8AyzgbmwugQlnDh4ZA6H-NzqxchL4yuWNT9cx4aI,7107
335
338
  ccxt/pro/alpaca.py,sha256=7ePyWli0949ti5UheIn553xmnFpedrNc2W5CKauSZio,27167
336
339
  ccxt/pro/ascendex.py,sha256=fCM3EujSfJvtvffqI56UAstTtwjXFIocwukm15cF8rE,35432
337
340
  ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
@@ -343,7 +346,7 @@ ccxt/pro/bingx.py,sha256=DX-_TEWhTSi__zP865UUM0DqnEO9VO6KHysLiVr2JpE,42110
343
346
  ccxt/pro/bitcoincom.py,sha256=zAX6hiz4hS6Un8dSGp88rpnvItxQHfNmsfF0IZ2xIVA,1181
344
347
  ccxt/pro/bitfinex.py,sha256=VdvMikgWO7htYSAEKmGkDBYISWCJon1bnkv3JkV4nv0,24826
345
348
  ccxt/pro/bitfinex2.py,sha256=9_N-a4eyiOndD1_1qRDEH7_02U75K1dH7qOYu8M5xUg,42834
346
- ccxt/pro/bitget.py,sha256=NZyGOE9qDvSG1fzILmBiiTddvdF2G545S2B6Gh7mhkc,72217
349
+ ccxt/pro/bitget.py,sha256=6_z3512667AfuT18xZ8TYVad6_8wjbYh5mLIVZ4jJQw,72543
347
350
  ccxt/pro/bithumb.py,sha256=xMFS5eOYLAdqePz2Tcwu76qG_k7XbgnUjW9hKDehBjA,16799
348
351
  ccxt/pro/bitmart.py,sha256=Jyp-MyCUlvLDcMgz4Y8Dbjm8FJkjc79iLCBLgjYJHwc,62382
349
352
  ccxt/pro/bitmex.py,sha256=EJ_M666RDhhKal8umRKTbYZHCqHrrkRbWnOCzSEe3kI,68956
@@ -356,8 +359,8 @@ ccxt/pro/blockchaincom.py,sha256=Uv1ijvxvFGrqFPH6iifCk5AgQYTDsXUa5n0ktpusVjM,295
356
359
  ccxt/pro/bybit.py,sha256=FWN3ixxNYBIlHBkfD5wg5kaJ_lxLppvTDySvCvyOebI,85098
357
360
  ccxt/pro/cex.py,sha256=psU0k-icE931Z_wpkr16IdSZ2iDUwLnqJz3KUmQ5Xls,58380
358
361
  ccxt/pro/coinbase.py,sha256=j1iI52eNa-qya7Q7BZCpd1SAJQZc4LEGu25DIu0LMwo,29324
362
+ ccxt/pro/coinbaseexchange.py,sha256=vhW-SIPSaSidXkQk1WDAU1-0Vj1S9kRJl6U-5CnyPcQ,38975
359
363
  ccxt/pro/coinbaseinternational.py,sha256=4LMDA9RJhwT2T55kyryGCJBrdRgh_XBVYlJjXGS_AMc,25794
360
- ccxt/pro/coinbasepro.py,sha256=94ZXmg-Ez5tSiUYP98nu-gWvuXb-Dk4WHMVsXOR8AK0,38945
361
364
  ccxt/pro/coincheck.py,sha256=MKAPHJeVifQaCKPla-7RY86TIWyDGe4nvjRhNmi617w,7789
362
365
  ccxt/pro/coinex.py,sha256=LVgahnm6laz2e0oQP4C8ki3mLcx5Eh-uz989BFquozM,45042
363
366
  ccxt/pro/coinone.py,sha256=d0s11hTNFVFZiBD3jWWu6iRseyVsHR6dO-njqqZ2WyU,15652
@@ -390,7 +393,7 @@ ccxt/pro/onetrading.py,sha256=9-WTi6ZNjsG7TJ6CA6pGpnm_6Jg2gg21ny4GZypjr6s,54634
390
393
  ccxt/pro/p2b.py,sha256=lO8mTtBCOU1yHQnmOQAI3USn67tsZd4nTGHDqFd4qEE,17877
391
394
  ccxt/pro/phemex.py,sha256=lD4r2KQdpkgeXGors3jtEMxoaxpEF0tl6MYXZ99GSYg,61032
392
395
  ccxt/pro/poloniex.py,sha256=uEi3hlt7rLPSIN05r6wrFgaghXoIm4l7Ynu8ChMTpX0,51235
393
- ccxt/pro/poloniexfutures.py,sha256=8qEEqKc7_zMgv-iz0KffE8RnYBqmiyNCiDcmuyqM0Xs,41652
396
+ ccxt/pro/poloniexfutures.py,sha256=4nbswuY72fmDM5eiHhPu3y_xVHQ0M5Am3pUFuo-Vsm4,41659
394
397
  ccxt/pro/probit.py,sha256=RLTnROQUmX31XQ3ymIZkiDkop3eiSVK70Yw81yDcde4,22822
395
398
  ccxt/pro/upbit.py,sha256=CSqwaNCxECo9FI7aq_7ege0c8IjWEmsoPZL06Kw9KDo,9654
396
399
  ccxt/pro/wazirx.py,sha256=icMUhtixMs5UvVOtqJLSJYMJ9hdNixipmT8bGs6Im7s,30043
@@ -531,7 +534,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
531
534
  ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
532
535
  ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
533
536
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
534
- ccxt-4.3.22.dist-info/METADATA,sha256=yR1OdMeoCar2UcRV99DGbcB20iIp6gYg2WkpHoLFPng,112795
535
- ccxt-4.3.22.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
536
- ccxt-4.3.22.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
537
- ccxt-4.3.22.dist-info/RECORD,,
537
+ ccxt-4.3.24.dist-info/METADATA,sha256=bv863nPYUVx5JlZGAu--tTGwa4QRxDiJZm-TEQqWsW0,112795
538
+ ccxt-4.3.24.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
539
+ ccxt-4.3.24.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
540
+ ccxt-4.3.24.dist-info/RECORD,,
File without changes
File without changes