ccxt 4.1.94__py2.py3-none-any.whl → 4.1.95__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__ = '4.1.94'
25
+ __version__ = '4.1.95'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.94'
7
+ __version__ = '4.1.95'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.1.94'
5
+ __version__ = '4.1.95'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -4695,31 +4695,36 @@ class bitget(Exchange, ImplicitAPI):
4695
4695
  :param str [params.isPlan]: *swap only* 'plan' for stop orders and 'profit_loss' for tp/sl orders, default is 'plan'
4696
4696
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
4697
4697
  """
4698
- if symbol is None:
4699
- raise ArgumentsRequired(self.id + ' fetchOpenOrders() requires a symbol argument')
4700
4698
  await self.load_markets()
4701
4699
  sandboxMode = self.safe_value(self.options, 'sandboxMode', False)
4702
4700
  market = None
4703
- if sandboxMode:
4704
- sandboxSymbol = self.convert_symbol_for_sandbox(symbol)
4705
- market = self.market(sandboxSymbol)
4706
- else:
4707
- market = self.market(symbol)
4701
+ type = None
4702
+ request = {}
4708
4703
  marginMode = None
4709
4704
  marginMode, params = self.handle_margin_mode_and_params('fetchOpenOrders', params)
4705
+ if symbol is not None:
4706
+ if sandboxMode:
4707
+ sandboxSymbol = self.convert_symbol_for_sandbox(symbol)
4708
+ market = self.market(sandboxSymbol)
4709
+ else:
4710
+ market = self.market(symbol)
4711
+ request['symbol'] = market['id']
4712
+ defaultType = self.safe_string_2(self.options, 'fetchOpenOrders', 'defaultType', 'spot')
4713
+ marketType = market['type'] if ('type' in market) else defaultType
4714
+ type = self.safe_string(params, 'type', marketType)
4715
+ else:
4716
+ defaultType = self.safe_string_2(self.options, 'fetchOpenOrders', 'defaultType', 'spot')
4717
+ type = self.safe_string(params, 'type', defaultType)
4710
4718
  paginate = False
4711
4719
  paginate, params = self.handle_option_and_params(params, 'fetchOpenOrders', 'paginate')
4712
4720
  if paginate:
4713
4721
  cursorReceived = None
4714
- if market['spot']:
4722
+ if type == 'spot':
4715
4723
  if marginMode is not None:
4716
4724
  cursorReceived = 'minId'
4717
4725
  else:
4718
4726
  cursorReceived = 'endId'
4719
4727
  return await self.fetch_paginated_call_cursor('fetchOpenOrders', symbol, since, limit, params, cursorReceived, 'idLessThan')
4720
- request = {
4721
- 'symbol': market['id'],
4722
- }
4723
4728
  response = None
4724
4729
  stop = self.safe_value_2(params, 'stop', 'trigger')
4725
4730
  params = self.omit(params, ['stop', 'trigger'])
@@ -4728,35 +4733,37 @@ class bitget(Exchange, ImplicitAPI):
4728
4733
  request['startTime'] = since
4729
4734
  if limit is not None:
4730
4735
  request['limit'] = limit
4731
- if (market['swap']) or (market['future']) or (marginMode is not None):
4736
+ if (type == 'swap') or (type == 'future') or (marginMode is not None):
4732
4737
  clientOrderId = self.safe_string_2(params, 'clientOid', 'clientOrderId')
4733
4738
  params = self.omit(params, 'clientOrderId')
4734
4739
  if clientOrderId is not None:
4735
4740
  request['clientOid'] = clientOrderId
4736
- if market['spot']:
4741
+ query = None
4742
+ query = self.omit(params, ['type'])
4743
+ if type == 'spot':
4737
4744
  if marginMode is not None:
4738
4745
  if since is None:
4739
4746
  since = self.milliseconds() - 7776000000
4740
4747
  request['startTime'] = since
4741
4748
  if marginMode == 'isolated':
4742
- response = await self.privateMarginGetV2MarginIsolatedOpenOrders(self.extend(request, params))
4749
+ response = await self.privateMarginGetV2MarginIsolatedOpenOrders(self.extend(request, query))
4743
4750
  elif marginMode == 'cross':
4744
- response = await self.privateMarginGetV2MarginCrossedOpenOrders(self.extend(request, params))
4751
+ response = await self.privateMarginGetV2MarginCrossedOpenOrders(self.extend(request, query))
4745
4752
  else:
4746
4753
  if stop:
4747
- response = await self.privateSpotGetV2SpotTradeCurrentPlanOrder(self.extend(request, params))
4754
+ response = await self.privateSpotGetV2SpotTradeCurrentPlanOrder(self.extend(request, query))
4748
4755
  else:
4749
- response = await self.privateSpotGetV2SpotTradeUnfilledOrders(self.extend(request, params))
4756
+ response = await self.privateSpotGetV2SpotTradeUnfilledOrders(self.extend(request, query))
4750
4757
  else:
4751
4758
  productType = None
4752
- productType, params = self.handle_product_type_and_params(market, params)
4759
+ productType, query = self.handle_product_type_and_params(market, query)
4753
4760
  request['productType'] = productType
4754
4761
  if stop:
4755
- planType = self.safe_string(params, 'planType', 'normal_plan')
4762
+ planType = self.safe_string(query, 'planType', 'normal_plan')
4756
4763
  request['planType'] = planType
4757
- response = await self.privateMixGetV2MixOrderOrdersPlanPending(self.extend(request, params))
4764
+ response = await self.privateMixGetV2MixOrderOrdersPlanPending(self.extend(request, query))
4758
4765
  else:
4759
- response = await self.privateMixGetV2MixOrderOrdersPending(self.extend(request, params))
4766
+ response = await self.privateMixGetV2MixOrderOrdersPending(self.extend(request, query))
4760
4767
  #
4761
4768
  # spot
4762
4769
  #
@@ -4933,7 +4940,7 @@ class bitget(Exchange, ImplicitAPI):
4933
4940
  # }
4934
4941
  #
4935
4942
  data = self.safe_value(response, 'data')
4936
- if market['spot']:
4943
+ if type == 'spot':
4937
4944
  if (marginMode is not None) or stop:
4938
4945
  resultList = self.safe_value(data, 'orderList', [])
4939
4946
  return self.parse_orders(resultList, market, since, limit)
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.94'
7
+ __version__ = '4.1.95'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
ccxt/bitget.py CHANGED
@@ -4694,31 +4694,36 @@ class bitget(Exchange, ImplicitAPI):
4694
4694
  :param str [params.isPlan]: *swap only* 'plan' for stop orders and 'profit_loss' for tp/sl orders, default is 'plan'
4695
4695
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
4696
4696
  """
4697
- if symbol is None:
4698
- raise ArgumentsRequired(self.id + ' fetchOpenOrders() requires a symbol argument')
4699
4697
  self.load_markets()
4700
4698
  sandboxMode = self.safe_value(self.options, 'sandboxMode', False)
4701
4699
  market = None
4702
- if sandboxMode:
4703
- sandboxSymbol = self.convert_symbol_for_sandbox(symbol)
4704
- market = self.market(sandboxSymbol)
4705
- else:
4706
- market = self.market(symbol)
4700
+ type = None
4701
+ request = {}
4707
4702
  marginMode = None
4708
4703
  marginMode, params = self.handle_margin_mode_and_params('fetchOpenOrders', params)
4704
+ if symbol is not None:
4705
+ if sandboxMode:
4706
+ sandboxSymbol = self.convert_symbol_for_sandbox(symbol)
4707
+ market = self.market(sandboxSymbol)
4708
+ else:
4709
+ market = self.market(symbol)
4710
+ request['symbol'] = market['id']
4711
+ defaultType = self.safe_string_2(self.options, 'fetchOpenOrders', 'defaultType', 'spot')
4712
+ marketType = market['type'] if ('type' in market) else defaultType
4713
+ type = self.safe_string(params, 'type', marketType)
4714
+ else:
4715
+ defaultType = self.safe_string_2(self.options, 'fetchOpenOrders', 'defaultType', 'spot')
4716
+ type = self.safe_string(params, 'type', defaultType)
4709
4717
  paginate = False
4710
4718
  paginate, params = self.handle_option_and_params(params, 'fetchOpenOrders', 'paginate')
4711
4719
  if paginate:
4712
4720
  cursorReceived = None
4713
- if market['spot']:
4721
+ if type == 'spot':
4714
4722
  if marginMode is not None:
4715
4723
  cursorReceived = 'minId'
4716
4724
  else:
4717
4725
  cursorReceived = 'endId'
4718
4726
  return self.fetch_paginated_call_cursor('fetchOpenOrders', symbol, since, limit, params, cursorReceived, 'idLessThan')
4719
- request = {
4720
- 'symbol': market['id'],
4721
- }
4722
4727
  response = None
4723
4728
  stop = self.safe_value_2(params, 'stop', 'trigger')
4724
4729
  params = self.omit(params, ['stop', 'trigger'])
@@ -4727,35 +4732,37 @@ class bitget(Exchange, ImplicitAPI):
4727
4732
  request['startTime'] = since
4728
4733
  if limit is not None:
4729
4734
  request['limit'] = limit
4730
- if (market['swap']) or (market['future']) or (marginMode is not None):
4735
+ if (type == 'swap') or (type == 'future') or (marginMode is not None):
4731
4736
  clientOrderId = self.safe_string_2(params, 'clientOid', 'clientOrderId')
4732
4737
  params = self.omit(params, 'clientOrderId')
4733
4738
  if clientOrderId is not None:
4734
4739
  request['clientOid'] = clientOrderId
4735
- if market['spot']:
4740
+ query = None
4741
+ query = self.omit(params, ['type'])
4742
+ if type == 'spot':
4736
4743
  if marginMode is not None:
4737
4744
  if since is None:
4738
4745
  since = self.milliseconds() - 7776000000
4739
4746
  request['startTime'] = since
4740
4747
  if marginMode == 'isolated':
4741
- response = self.privateMarginGetV2MarginIsolatedOpenOrders(self.extend(request, params))
4748
+ response = self.privateMarginGetV2MarginIsolatedOpenOrders(self.extend(request, query))
4742
4749
  elif marginMode == 'cross':
4743
- response = self.privateMarginGetV2MarginCrossedOpenOrders(self.extend(request, params))
4750
+ response = self.privateMarginGetV2MarginCrossedOpenOrders(self.extend(request, query))
4744
4751
  else:
4745
4752
  if stop:
4746
- response = self.privateSpotGetV2SpotTradeCurrentPlanOrder(self.extend(request, params))
4753
+ response = self.privateSpotGetV2SpotTradeCurrentPlanOrder(self.extend(request, query))
4747
4754
  else:
4748
- response = self.privateSpotGetV2SpotTradeUnfilledOrders(self.extend(request, params))
4755
+ response = self.privateSpotGetV2SpotTradeUnfilledOrders(self.extend(request, query))
4749
4756
  else:
4750
4757
  productType = None
4751
- productType, params = self.handle_product_type_and_params(market, params)
4758
+ productType, query = self.handle_product_type_and_params(market, query)
4752
4759
  request['productType'] = productType
4753
4760
  if stop:
4754
- planType = self.safe_string(params, 'planType', 'normal_plan')
4761
+ planType = self.safe_string(query, 'planType', 'normal_plan')
4755
4762
  request['planType'] = planType
4756
- response = self.privateMixGetV2MixOrderOrdersPlanPending(self.extend(request, params))
4763
+ response = self.privateMixGetV2MixOrderOrdersPlanPending(self.extend(request, query))
4757
4764
  else:
4758
- response = self.privateMixGetV2MixOrderOrdersPending(self.extend(request, params))
4765
+ response = self.privateMixGetV2MixOrderOrdersPending(self.extend(request, query))
4759
4766
  #
4760
4767
  # spot
4761
4768
  #
@@ -4932,7 +4939,7 @@ class bitget(Exchange, ImplicitAPI):
4932
4939
  # }
4933
4940
  #
4934
4941
  data = self.safe_value(response, 'data')
4935
- if market['spot']:
4942
+ if type == 'spot':
4936
4943
  if (marginMode is not None) or stop:
4937
4944
  resultList = self.safe_value(data, 'orderList', [])
4938
4945
  return self.parse_orders(resultList, market, since, limit)
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.1.94'
7
+ __version__ = '4.1.95'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.1.94
3
+ Version: 4.1.95
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
@@ -257,13 +257,13 @@ console.log(version, Object.keys(exchanges));
257
257
 
258
258
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
259
259
 
260
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.94/dist/ccxt.browser.js
261
- * unpkg: https://unpkg.com/ccxt@4.1.94/dist/ccxt.browser.js
260
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.1.95/dist/ccxt.browser.js
261
+ * unpkg: https://unpkg.com/ccxt@4.1.95/dist/ccxt.browser.js
262
262
 
263
263
  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.
264
264
 
265
265
  ```HTML
266
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.94/dist/ccxt.browser.js"></script>
266
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.1.95/dist/ccxt.browser.js"></script>
267
267
  ```
268
268
 
269
269
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=eoXqhNAOJvHUAoJsEd-rO1LrEf0R_hQD0kF0wk_VKGw,14879
1
+ ccxt/__init__.py,sha256=pg6rShtkuKVu8MLr3YP775zCunjqGO6DELCDgfQk2LA,14879
2
2
  ccxt/ace.py,sha256=bB8RjymWAEI2MYEHMW70GwbIowmOMN9r4RY1tlj4gjY,41348
3
3
  ccxt/alpaca.py,sha256=95D1m218p28MXCHzibPZ2XpfpkVw7qsS9niLGpXR_z4,46029
4
4
  ccxt/ascendex.py,sha256=ds46YV2dVeADiYUgp3SUHNcSwRbH_rFlOpSPJgFSKRc,143331
@@ -18,7 +18,7 @@ ccxt/bitfinex.py,sha256=jZaKtVwezPEjvRmPI1P2hvBKLmHzz3BysCiXJjprfyw,69725
18
18
  ccxt/bitfinex2.py,sha256=6fxd__vHHZ0CjXWLrg2JShLkoT8Szdm3ueT-rYX_ZRE,128904
19
19
  ccxt/bitflyer.py,sha256=q-lKdcT9mZ6jdswP4AGIj_6yhKxcCXyePueTd_nrmAk,40105
20
20
  ccxt/bitforex.py,sha256=nqYgHhub2u2I2S7U91MvPZGip8tGl6NEsyQgyHUvEG4,33773
21
- ccxt/bitget.py,sha256=zvR9jkrFrgUSYGtsEtqETq3tMRAtrS5_68_wi_5pQUk,389867
21
+ ccxt/bitget.py,sha256=cNzslPKo3tPcLrldZl3xXzSYJsoyh2wKueAhn6eyF7c,390296
22
22
  ccxt/bithumb.py,sha256=mji93l7rEBQVhoJKxHQnEIMtMvk7wkIRrfN7o0hxYPI,43325
23
23
  ccxt/bitmart.py,sha256=1bPOwvk-bsUcDmItWQAzVO34J8qPjJEgUDF-5fuV2sY,185678
24
24
  ccxt/bitmex.py,sha256=_f9mAzgVTEo5FYRFmO0N57mVE9Jj4HKYdU3Qq19oj5Y,119758
@@ -195,7 +195,7 @@ ccxt/abstract/woo.py,sha256=xilL7EbvUmJ_zBb_r1Q7cTi4bHsBQN2mFu0TGu7WHG0,8890
195
195
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
196
196
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
197
197
  ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
198
- ccxt/async_support/__init__.py,sha256=O0FyjlTctJ7lcEAj6wutQdbE1PqkiuGa6nOI-kQkpQk,14572
198
+ ccxt/async_support/__init__.py,sha256=nLvkenrZRCKk2-EddA4ZlG1JS1Z7tShkfUrG7iWvjIE,14572
199
199
  ccxt/async_support/ace.py,sha256=5fHmmLyH7G-Dh0RvvHYmO7X6kmuMlanS4LmD_RqX8-s,41572
200
200
  ccxt/async_support/alpaca.py,sha256=PBZqBViTt3fAzlIABvszvXBQJzjC8ub4vKTcaKVRtZQ,46241
201
201
  ccxt/async_support/ascendex.py,sha256=SP6sXuN3V2A8hwTCxvBqxMdZ-5VwOVDDtnrX2q_i2Pk,144071
@@ -215,7 +215,7 @@ ccxt/async_support/bitfinex.py,sha256=PNzSR9cYWQRIsTG4uz6tcYg0jrH0nqH2N7WDtbVUEX
215
215
  ccxt/async_support/bitfinex2.py,sha256=A1krXmnYd8UsQwPYgqzU_lYYxx8mjHbFih61_i6EeAI,129464
216
216
  ccxt/async_support/bitflyer.py,sha256=mmoPJEr2nBxfthieD8rLH7gxo0Wn5c_FkRm4DD5_1Ns,40413
217
217
  ccxt/async_support/bitforex.py,sha256=JNuA3x41Sss39FW4WzzV4sIQkThtOIatcOm9cXabE_k,33997
218
- ccxt/async_support/bitget.py,sha256=toyFgKSYJABu8U0Oub-JqtVAtVLmUJsxGr397oApAjA,391353
218
+ ccxt/async_support/bitget.py,sha256=zIEKftWhCDdI5V9xeeKYKjB-FOG_dDq4lmosTI8NwHw,391782
219
219
  ccxt/async_support/bithumb.py,sha256=6Ml9aysmbCwFHKaFvLnkSZRlvIu9Xfyowix3fIr65xE,43555
220
220
  ccxt/async_support/bitmart.py,sha256=DOLAXSkZL0j2Y5RscYsXkTZJJdy_74j9LvO34HUOHq8,186586
221
221
  ccxt/async_support/bitmex.py,sha256=A3099-IhFKy7V0087jBTparLSmpBOltIwe7iPDoBN0c,120300
@@ -295,7 +295,7 @@ ccxt/async_support/yobit.py,sha256=d9bkNQqL47g7zwt4g_PnhoTQETISVwL8TfhmInvKvkU,5
295
295
  ccxt/async_support/zaif.py,sha256=DX2ydCoPGQqWfU84ZmaXSY9pbIT-75CXVMjO7CzUg_U,28094
296
296
  ccxt/async_support/zonda.py,sha256=huZYyfwcqQ6kxkxnkf7CW0nXbYWe6nTWnSJjxy5W3po,80676
297
297
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
298
- ccxt/async_support/base/exchange.py,sha256=yhHce8RjmqFWOsBvrBvpnke6XJ8t2aCdRPmAzMEzg_I,72360
298
+ ccxt/async_support/base/exchange.py,sha256=gmN3_Qdtk1Tg6JKkJwBIdjxqdwaYXcRcVKrbPmlUL8U,72360
299
299
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
300
300
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
301
301
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=_qjsl_x-rd88QmzQeGVWovMDK0XoD3f4m5GHqxZRajs,5203
@@ -309,10 +309,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIu
309
309
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
310
310
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
311
311
  ccxt/base/errors.py,sha256=1C38u76jlNGq06N_uwfw8b8FZHK8_3_90wM1rKfU_Rg,3878
312
- ccxt/base/exchange.py,sha256=Eu9ySlgNsdvPhXJVEsZP_0axOcYeAYpGJkZOBlwRpa8,216286
312
+ ccxt/base/exchange.py,sha256=2wQrHGWGepw0psZ4g8Rtl3M1wUc9mPRpoC2MVs5H5vA,216286
313
313
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
314
314
  ccxt/base/types.py,sha256=_kkShzrcaWsH-YMr1J2FttpxXQq0oAMpOGmVQWg6X1Y,5690
315
- ccxt/pro/__init__.py,sha256=vr3VfpFtk5xtha3WWark8SD0CJWEYPrahZ4Iik6x-mI,6166
315
+ ccxt/pro/__init__.py,sha256=XOJkNxt8KkkI4Madb9Jiu-mxmEoqosA40ziWidvNmhY,6166
316
316
  ccxt/pro/alpaca.py,sha256=RKNzGSV6WXuxygIzB4JrWyU7HRrKKRVxnFR--AVOedw,27105
317
317
  ccxt/pro/ascendex.py,sha256=2OX2v_774DDIlqEbAd2UWb-8hx-YfhjC0eXQhk2d_d4,34858
318
318
  ccxt/pro/bequant.py,sha256=3IeQ0vPg-eVqPiGMfX7yqH9qtXKm1ZqocQDeLwpA8EE,1093
@@ -417,7 +417,7 @@ ccxt/test/base/test_ticker.py,sha256=5J8KHgFhJLgcWyFwt3bhJ-tldMho3K7LD5yJnnUyrT4
417
417
  ccxt/test/base/test_trade.py,sha256=AN3emAdEPhdFyunap43cKqZTS1cbaShZKTjYue67jEU,2297
418
418
  ccxt/test/base/test_trading_fee.py,sha256=2_WCp3qJ2UpraQQoGFlGJYwHD-T0Bm5W7KIw4zpFvSM,1068
419
419
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
420
- ccxt-4.1.94.dist-info/METADATA,sha256=M5v0k3ZrWMUmZmghCtenPIfcrViOCt0IFl51d1LTeks,105684
421
- ccxt-4.1.94.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
422
- ccxt-4.1.94.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
423
- ccxt-4.1.94.dist-info/RECORD,,
420
+ ccxt-4.1.95.dist-info/METADATA,sha256=pEh3DP00ekG5-mERP9m9QtNAb_yYWt-JekiSp5je2_4,105684
421
+ ccxt-4.1.95.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
422
+ ccxt-4.1.95.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
423
+ ccxt-4.1.95.dist-info/RECORD,,
File without changes