ccxt 4.3.70__py2.py3-none-any.whl → 4.3.71__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.
Files changed (141) hide show
  1. ccxt/__init__.py +3 -1
  2. ccxt/abstract/paradex.py +40 -0
  3. ccxt/async_support/__init__.py +3 -1
  4. ccxt/async_support/base/exchange.py +1 -1
  5. ccxt/async_support/paradex.py +1966 -0
  6. ccxt/async_support/woo.py +4 -2
  7. ccxt/base/exchange.py +58 -1
  8. ccxt/paradex.py +1966 -0
  9. ccxt/pro/__init__.py +3 -1
  10. ccxt/pro/bequant.py +4 -0
  11. ccxt/pro/paradex.py +340 -0
  12. ccxt/static_dependencies/__init__.py +1 -1
  13. ccxt/static_dependencies/lark/__init__.py +38 -0
  14. ccxt/static_dependencies/lark/__pyinstaller/__init__.py +6 -0
  15. ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py +14 -0
  16. ccxt/static_dependencies/lark/ast_utils.py +59 -0
  17. ccxt/static_dependencies/lark/common.py +86 -0
  18. ccxt/static_dependencies/lark/exceptions.py +292 -0
  19. ccxt/static_dependencies/lark/grammar.py +130 -0
  20. ccxt/static_dependencies/lark/grammars/__init__.py +0 -0
  21. ccxt/static_dependencies/lark/indenter.py +143 -0
  22. ccxt/static_dependencies/lark/lark.py +658 -0
  23. ccxt/static_dependencies/lark/lexer.py +678 -0
  24. ccxt/static_dependencies/lark/load_grammar.py +1428 -0
  25. ccxt/static_dependencies/lark/parse_tree_builder.py +391 -0
  26. ccxt/static_dependencies/lark/parser_frontends.py +257 -0
  27. ccxt/static_dependencies/lark/parsers/__init__.py +0 -0
  28. ccxt/static_dependencies/lark/parsers/cyk.py +340 -0
  29. ccxt/static_dependencies/lark/parsers/earley.py +314 -0
  30. ccxt/static_dependencies/lark/parsers/earley_common.py +42 -0
  31. ccxt/static_dependencies/lark/parsers/earley_forest.py +801 -0
  32. ccxt/static_dependencies/lark/parsers/grammar_analysis.py +203 -0
  33. ccxt/static_dependencies/lark/parsers/lalr_analysis.py +332 -0
  34. ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py +158 -0
  35. ccxt/static_dependencies/lark/parsers/lalr_parser.py +122 -0
  36. ccxt/static_dependencies/lark/parsers/lalr_parser_state.py +110 -0
  37. ccxt/static_dependencies/lark/parsers/xearley.py +165 -0
  38. ccxt/static_dependencies/lark/py.typed +0 -0
  39. ccxt/static_dependencies/lark/reconstruct.py +107 -0
  40. ccxt/static_dependencies/lark/tools/__init__.py +70 -0
  41. ccxt/static_dependencies/lark/tools/nearley.py +202 -0
  42. ccxt/static_dependencies/lark/tools/serialize.py +32 -0
  43. ccxt/static_dependencies/lark/tools/standalone.py +196 -0
  44. ccxt/static_dependencies/lark/tree.py +267 -0
  45. ccxt/static_dependencies/lark/tree_matcher.py +186 -0
  46. ccxt/static_dependencies/lark/tree_templates.py +180 -0
  47. ccxt/static_dependencies/lark/utils.py +343 -0
  48. ccxt/static_dependencies/lark/visitors.py +596 -0
  49. ccxt/static_dependencies/marshmallow/__init__.py +81 -0
  50. ccxt/static_dependencies/marshmallow/base.py +65 -0
  51. ccxt/static_dependencies/marshmallow/class_registry.py +94 -0
  52. ccxt/static_dependencies/marshmallow/decorators.py +231 -0
  53. ccxt/static_dependencies/marshmallow/error_store.py +60 -0
  54. ccxt/static_dependencies/marshmallow/exceptions.py +71 -0
  55. ccxt/static_dependencies/marshmallow/fields.py +2114 -0
  56. ccxt/static_dependencies/marshmallow/orderedset.py +89 -0
  57. ccxt/static_dependencies/marshmallow/py.typed +0 -0
  58. ccxt/static_dependencies/marshmallow/schema.py +1228 -0
  59. ccxt/static_dependencies/marshmallow/types.py +12 -0
  60. ccxt/static_dependencies/marshmallow/utils.py +378 -0
  61. ccxt/static_dependencies/marshmallow/validate.py +678 -0
  62. ccxt/static_dependencies/marshmallow/warnings.py +2 -0
  63. ccxt/static_dependencies/marshmallow_dataclass/__init__.py +1047 -0
  64. ccxt/static_dependencies/marshmallow_dataclass/collection_field.py +51 -0
  65. ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py +45 -0
  66. ccxt/static_dependencies/marshmallow_dataclass/mypy.py +71 -0
  67. ccxt/static_dependencies/marshmallow_dataclass/py.typed +0 -0
  68. ccxt/static_dependencies/marshmallow_dataclass/typing.py +14 -0
  69. ccxt/static_dependencies/marshmallow_dataclass/union_field.py +82 -0
  70. ccxt/static_dependencies/marshmallow_oneofschema/__init__.py +1 -0
  71. ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py +193 -0
  72. ccxt/static_dependencies/marshmallow_oneofschema/py.typed +0 -0
  73. ccxt/static_dependencies/starknet/__init__.py +0 -0
  74. ccxt/static_dependencies/starknet/cairo/__init__.py +0 -0
  75. ccxt/static_dependencies/starknet/cairo/data_types.py +123 -0
  76. ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py +0 -0
  77. ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py +77 -0
  78. ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py +46 -0
  79. ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py +138 -0
  80. ccxt/static_dependencies/starknet/cairo/felt.py +64 -0
  81. ccxt/static_dependencies/starknet/cairo/type_parser.py +121 -0
  82. ccxt/static_dependencies/starknet/cairo/v1/__init__.py +0 -0
  83. ccxt/static_dependencies/starknet/cairo/v1/type_parser.py +59 -0
  84. ccxt/static_dependencies/starknet/cairo/v2/__init__.py +0 -0
  85. ccxt/static_dependencies/starknet/cairo/v2/type_parser.py +77 -0
  86. ccxt/static_dependencies/starknet/ccxt_utils.py +7 -0
  87. ccxt/static_dependencies/starknet/common.py +15 -0
  88. ccxt/static_dependencies/starknet/constants.py +39 -0
  89. ccxt/static_dependencies/starknet/hash/__init__.py +0 -0
  90. ccxt/static_dependencies/starknet/hash/address.py +79 -0
  91. ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py +111 -0
  92. ccxt/static_dependencies/starknet/hash/selector.py +16 -0
  93. ccxt/static_dependencies/starknet/hash/storage.py +12 -0
  94. ccxt/static_dependencies/starknet/hash/utils.py +78 -0
  95. ccxt/static_dependencies/starknet/serialization/__init__.py +24 -0
  96. ccxt/static_dependencies/starknet/serialization/_calldata_reader.py +40 -0
  97. ccxt/static_dependencies/starknet/serialization/_context.py +142 -0
  98. ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py +10 -0
  99. ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py +82 -0
  100. ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py +43 -0
  101. ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py +37 -0
  102. ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py +66 -0
  103. ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py +71 -0
  104. ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py +71 -0
  105. ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py +50 -0
  106. ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py +58 -0
  107. ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py +43 -0
  108. ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py +40 -0
  109. ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py +72 -0
  110. ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py +36 -0
  111. ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py +36 -0
  112. ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py +76 -0
  113. ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py +100 -0
  114. ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py +32 -0
  115. ccxt/static_dependencies/starknet/serialization/errors.py +10 -0
  116. ccxt/static_dependencies/starknet/serialization/factory.py +229 -0
  117. ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py +110 -0
  118. ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py +59 -0
  119. ccxt/static_dependencies/starknet/utils/__init__.py +0 -0
  120. ccxt/static_dependencies/starknet/utils/constructor_args_translator.py +86 -0
  121. ccxt/static_dependencies/starknet/utils/iterable.py +13 -0
  122. ccxt/static_dependencies/starknet/utils/schema.py +13 -0
  123. ccxt/static_dependencies/starknet/utils/typed_data.py +182 -0
  124. ccxt/static_dependencies/sympy/__init__.py +0 -0
  125. ccxt/static_dependencies/sympy/external/__init__.py +0 -0
  126. ccxt/static_dependencies/sympy/external/gmpy.py +345 -0
  127. ccxt/static_dependencies/sympy/external/importtools.py +187 -0
  128. ccxt/static_dependencies/sympy/external/ntheory.py +637 -0
  129. ccxt/static_dependencies/sympy/external/pythonmpq.py +341 -0
  130. ccxt/static_dependencies/typing_extensions/__init__.py +0 -0
  131. ccxt/static_dependencies/typing_extensions/typing_extensions.py +3839 -0
  132. ccxt/static_dependencies/typing_inspect/__init__.py +0 -0
  133. ccxt/static_dependencies/typing_inspect/typing_inspect.py +851 -0
  134. ccxt/test/tests_async.py +43 -1
  135. ccxt/test/tests_sync.py +43 -1
  136. ccxt/woo.py +4 -2
  137. {ccxt-4.3.70.dist-info → ccxt-4.3.71.dist-info}/METADATA +7 -6
  138. {ccxt-4.3.70.dist-info → ccxt-4.3.71.dist-info}/RECORD +141 -16
  139. {ccxt-4.3.70.dist-info → ccxt-4.3.71.dist-info}/LICENSE.txt +0 -0
  140. {ccxt-4.3.70.dist-info → ccxt-4.3.71.dist-info}/WHEEL +0 -0
  141. {ccxt-4.3.70.dist-info → ccxt-4.3.71.dist-info}/top_level.txt +0 -0
ccxt/test/tests_async.py CHANGED
@@ -1052,7 +1052,7 @@ class testMainClass(baseMainTestClass):
1052
1052
  # -----------------------------------------------------------------------------
1053
1053
  # --- Init of brokerId tests functions-----------------------------------------
1054
1054
  # -----------------------------------------------------------------------------
1055
- promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex()]
1055
+ promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex()]
1056
1056
  await asyncio.gather(*promises)
1057
1057
  success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
1058
1058
  dump('[INFO]' + success_message)
@@ -1458,3 +1458,45 @@ class testMainClass(baseMainTestClass):
1458
1458
  if not self.is_synchronous:
1459
1459
  await close(exchange)
1460
1460
  return True
1461
+
1462
+ async def test_paradex(self):
1463
+ exchange = self.init_offline_exchange('paradex')
1464
+ exchange.walletAddress = '0xc751489d24a33172541ea451bc253d7a9e98c781'
1465
+ exchange.privateKey = 'c33b1eb4b53108bf52e10f636d8c1236c04c33a712357ba3543ab45f48a5cb0b'
1466
+ exchange.options['authToken'] = 'token'
1467
+ exchange.options['systemConfig'] = {
1468
+ 'starknet_gateway_url': 'https://potc-testnet-sepolia.starknet.io',
1469
+ 'starknet_fullnode_rpc_url': 'https://pathfinder.api.testnet.paradex.trade/rpc/v0_7',
1470
+ 'starknet_chain_id': 'PRIVATE_SN_POTC_SEPOLIA',
1471
+ 'block_explorer_url': 'https://voyager.testnet.paradex.trade/',
1472
+ 'paraclear_address': '0x286003f7c7bfc3f94e8f0af48b48302e7aee2fb13c23b141479ba00832ef2c6',
1473
+ 'paraclear_decimals': 8,
1474
+ 'paraclear_account_proxy_hash': '0x3530cc4759d78042f1b543bf797f5f3d647cde0388c33734cf91b7f7b9314a9',
1475
+ 'paraclear_account_hash': '0x41cb0280ebadaa75f996d8d92c6f265f6d040bb3ba442e5f86a554f1765244e',
1476
+ 'oracle_address': '0x2c6a867917ef858d6b193a0ff9e62b46d0dc760366920d631715d58baeaca1f',
1477
+ 'bridged_tokens': [{
1478
+ 'name': 'TEST USDC',
1479
+ 'symbol': 'USDC',
1480
+ 'decimals': 6,
1481
+ 'l1_token_address': '0x29A873159D5e14AcBd63913D4A7E2df04570c666',
1482
+ 'l1_bridge_address': '0x8586e05adc0C35aa11609023d4Ae6075Cb813b4C',
1483
+ 'l2_token_address': '0x6f373b346561036d98ea10fb3e60d2f459c872b1933b50b21fe6ef4fda3b75e',
1484
+ 'l2_bridge_address': '0x46e9237f5408b5f899e72125dd69bd55485a287aaf24663d3ebe00d237fc7ef',
1485
+ }],
1486
+ 'l1_core_contract_address': '0x582CC5d9b509391232cd544cDF9da036e55833Af',
1487
+ 'l1_operator_address': '0x11bACdFbBcd3Febe5e8CEAa75E0Ef6444d9B45FB',
1488
+ 'l1_chain_id': '11155111',
1489
+ 'liquidation_fee': '0.2',
1490
+ }
1491
+ req_headers = None
1492
+ id = 'CCXT'
1493
+ assert exchange.options['broker'] == id, 'paradex - id: ' + id + ' not in options'
1494
+ await exchange.load_markets()
1495
+ try:
1496
+ await exchange.create_order('BTC/USD:USDC', 'limit', 'buy', 1, 20000)
1497
+ except Exception as e:
1498
+ req_headers = exchange.last_request_headers
1499
+ assert req_headers['PARADEX-PARTNER'] == id, 'paradex - id: ' + id + ' not in headers'
1500
+ if not self.is_synchronous:
1501
+ await close(exchange)
1502
+ return True
ccxt/test/tests_sync.py CHANGED
@@ -1049,7 +1049,7 @@ class testMainClass(baseMainTestClass):
1049
1049
  # -----------------------------------------------------------------------------
1050
1050
  # --- Init of brokerId tests functions-----------------------------------------
1051
1051
  # -----------------------------------------------------------------------------
1052
- promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex()]
1052
+ promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex()]
1053
1053
  (promises)
1054
1054
  success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
1055
1055
  dump('[INFO]' + success_message)
@@ -1455,3 +1455,45 @@ class testMainClass(baseMainTestClass):
1455
1455
  if not self.is_synchronous:
1456
1456
  close(exchange)
1457
1457
  return True
1458
+
1459
+ def test_paradex(self):
1460
+ exchange = self.init_offline_exchange('paradex')
1461
+ exchange.walletAddress = '0xc751489d24a33172541ea451bc253d7a9e98c781'
1462
+ exchange.privateKey = 'c33b1eb4b53108bf52e10f636d8c1236c04c33a712357ba3543ab45f48a5cb0b'
1463
+ exchange.options['authToken'] = 'token'
1464
+ exchange.options['systemConfig'] = {
1465
+ 'starknet_gateway_url': 'https://potc-testnet-sepolia.starknet.io',
1466
+ 'starknet_fullnode_rpc_url': 'https://pathfinder.api.testnet.paradex.trade/rpc/v0_7',
1467
+ 'starknet_chain_id': 'PRIVATE_SN_POTC_SEPOLIA',
1468
+ 'block_explorer_url': 'https://voyager.testnet.paradex.trade/',
1469
+ 'paraclear_address': '0x286003f7c7bfc3f94e8f0af48b48302e7aee2fb13c23b141479ba00832ef2c6',
1470
+ 'paraclear_decimals': 8,
1471
+ 'paraclear_account_proxy_hash': '0x3530cc4759d78042f1b543bf797f5f3d647cde0388c33734cf91b7f7b9314a9',
1472
+ 'paraclear_account_hash': '0x41cb0280ebadaa75f996d8d92c6f265f6d040bb3ba442e5f86a554f1765244e',
1473
+ 'oracle_address': '0x2c6a867917ef858d6b193a0ff9e62b46d0dc760366920d631715d58baeaca1f',
1474
+ 'bridged_tokens': [{
1475
+ 'name': 'TEST USDC',
1476
+ 'symbol': 'USDC',
1477
+ 'decimals': 6,
1478
+ 'l1_token_address': '0x29A873159D5e14AcBd63913D4A7E2df04570c666',
1479
+ 'l1_bridge_address': '0x8586e05adc0C35aa11609023d4Ae6075Cb813b4C',
1480
+ 'l2_token_address': '0x6f373b346561036d98ea10fb3e60d2f459c872b1933b50b21fe6ef4fda3b75e',
1481
+ 'l2_bridge_address': '0x46e9237f5408b5f899e72125dd69bd55485a287aaf24663d3ebe00d237fc7ef',
1482
+ }],
1483
+ 'l1_core_contract_address': '0x582CC5d9b509391232cd544cDF9da036e55833Af',
1484
+ 'l1_operator_address': '0x11bACdFbBcd3Febe5e8CEAa75E0Ef6444d9B45FB',
1485
+ 'l1_chain_id': '11155111',
1486
+ 'liquidation_fee': '0.2',
1487
+ }
1488
+ req_headers = None
1489
+ id = 'CCXT'
1490
+ assert exchange.options['broker'] == id, 'paradex - id: ' + id + ' not in options'
1491
+ exchange.load_markets()
1492
+ try:
1493
+ exchange.create_order('BTC/USD:USDC', 'limit', 'buy', 1, 20000)
1494
+ except Exception as e:
1495
+ req_headers = exchange.last_request_headers
1496
+ assert req_headers['PARADEX-PARTNER'] == id, 'paradex - id: ' + id + ' not in headers'
1497
+ if not self.is_synchronous:
1498
+ close(exchange)
1499
+ return True
ccxt/woo.py CHANGED
@@ -2464,11 +2464,13 @@ class woo(Exchange, ImplicitAPI):
2464
2464
  #
2465
2465
  marketId = self.safe_string(income, 'symbol')
2466
2466
  symbol = self.safe_symbol(marketId, market)
2467
- amount = self.safe_number(income, 'funding_fee')
2467
+ amount = self.safe_string(income, 'funding_fee')
2468
2468
  code = self.safe_currency_code('USD')
2469
2469
  id = self.safe_string(income, 'id')
2470
2470
  timestamp = self.safe_timestamp(income, 'updated_time')
2471
2471
  rate = self.safe_number(income, 'funding_rate')
2472
+ paymentType = self.safe_string(income, 'payment_type')
2473
+ amount = Precise.string_neg(amount) if (paymentType == 'Pay') else amount
2472
2474
  return {
2473
2475
  'info': income,
2474
2476
  'symbol': symbol,
@@ -2476,7 +2478,7 @@ class woo(Exchange, ImplicitAPI):
2476
2478
  'timestamp': timestamp,
2477
2479
  'datetime': self.iso8601(timestamp),
2478
2480
  'id': id,
2479
- 'amount': amount,
2481
+ 'amount': self.parse_number(amount),
2480
2482
  'rate': rate,
2481
2483
  }
2482
2484
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.70
3
+ Version: 4.3.71
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
@@ -50,7 +50,7 @@ Requires-Dist: mypy (==1.6.1) ; extra == 'type'
50
50
 
51
51
  # CCXT – CryptoCurrency eXchange Trading Library
52
52
 
53
- [![Build Status](https://img.shields.io/travis/com/ccxt/ccxt)](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-108-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
+ [![Build Status](https://img.shields.io/travis/com/ccxt/ccxt)](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-109-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)
54
54
 
55
55
  A JavaScript / Python / PHP / C# library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
56
56
 
@@ -107,7 +107,7 @@ Current feature list:
107
107
 
108
108
  ## Supported Cryptocurrency Exchanges
109
109
 
110
- The CCXT library currently supports the following 101 cryptocurrency exchange markets and trading APIs:
110
+ The CCXT library currently supports the following 102 cryptocurrency exchange markets and trading APIs:
111
111
 
112
112
  | logo | id | name | ver | type | certified | pro |
113
113
  |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|-------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
@@ -193,6 +193,7 @@ The CCXT library currently supports the following 101 cryptocurrency exchange ma
193
193
  | [![onetrading](https://github.com/ccxt/ccxt/assets/43336371/bdbc26fd-02f2-4ca7-9f1e-17333690bb1c)](https://onetrading.com/) | onetrading | [One Trading](https://onetrading.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.onetrading.com) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
194
194
  | [![oxfun](https://github.com/ccxt/ccxt/assets/43336371/6a196124-c1ee-4fae-8573-962071b61a85)](https://ox.fun/register?shareAccountId=5ZUD4a7G) | oxfun | [OXFUN](https://ox.fun/register?shareAccountId=5ZUD4a7G) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://docs.ox.fun/) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
195
195
  | [![p2b](https://github.com/ccxt/ccxt/assets/43336371/8da13a80-1f0a-49be-bb90-ff8b25164755)](https://p2pb2b.com?referral=ee784c53) | p2b | [p2b](https://p2pb2b.com?referral=ee784c53) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
196
+ | [![paradex](https://github.com/user-attachments/assets/5dadc09a-74ba-466a-a8f2-3f55c7e4654a)](https://app.paradex.trade/r/ccxt24) | paradex | [Paradex](https://app.paradex.trade/r/ccxt24) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.api.testnet.paradex.trade/) | dex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
196
197
  | [![paymium](https://user-images.githubusercontent.com/51840849/87153930-f0f02200-c2c0-11ea-9c0a-40337375ae89.jpg)](https://www.paymium.com/page/sign-up?referral=eDAzPoRQFMvaAB8sf-qj) | paymium | [Paymium](https://www.paymium.com/page/sign-up?referral=eDAzPoRQFMvaAB8sf-qj) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://github.com/Paymium/api-documentation) | cex | | |
197
198
  | [![phemex](https://user-images.githubusercontent.com/1294454/85225056-221eb600-b3d7-11ea-930d-564d2690e3f6.jpg)](https://phemex.com/register?referralCode=EDNVJ) | phemex | [Phemex](https://phemex.com/register?referralCode=EDNVJ) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://github.com/phemex/phemex-api-docs) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
198
199
  | [![poloniex](https://user-images.githubusercontent.com/1294454/27766817-e9456312-5ee6-11e7-9b3c-b628ca5626a5.jpg)](https://poloniex.com/signup?c=UBFZJRPJ) | poloniex | [Poloniex](https://poloniex.com/signup?c=UBFZJRPJ) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://api-docs.poloniex.com/spot/) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
@@ -269,13 +270,13 @@ console.log(version, Object.keys(exchanges));
269
270
 
270
271
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
271
272
 
272
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.70/dist/ccxt.browser.min.js
273
- * unpkg: https://unpkg.com/ccxt@4.3.70/dist/ccxt.browser.min.js
273
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.71/dist/ccxt.browser.min.js
274
+ * unpkg: https://unpkg.com/ccxt@4.3.71/dist/ccxt.browser.min.js
274
275
 
275
276
  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.
276
277
 
277
278
  ```HTML
278
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.70/dist/ccxt.browser.min.js"></script>
279
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.71/dist/ccxt.browser.min.js"></script>
279
280
  ```
280
281
 
281
282
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=Adbdsq1-Qah3PwJmFgbDBkLFdPd3GQAapdpr9fpcSzY,16319
1
+ ccxt/__init__.py,sha256=e4PC4eOX-Av9yTaI9-93Smbl2reEkYvx59Uj_pxLvqA,16417
2
2
  ccxt/ace.py,sha256=5DwQ9rmdDCRh-l-65Mi2Ei_o1GqR0xqWZiiU7Lz-LvM,42379
3
3
  ccxt/alpaca.py,sha256=HQuhQZSFGRlT-BaCUSEZmxpzYp6tll2zn63qn3gTmoU,47470
4
4
  ccxt/ascendex.py,sha256=4aEwibO_me6khr66z8JFqDBxe2gtFOWIFBE7ulBEJPs,151933
@@ -88,6 +88,7 @@ ccxt/okx.py,sha256=JUayotui7OLoH43y4s8Lq2EcLQtF-ig3pixwxThUiDU,379391
88
88
  ccxt/onetrading.py,sha256=qKVLKVuvCSYuSf64CFROnyqkhKhMhTEG9orEYy34x38,88339
89
89
  ccxt/oxfun.py,sha256=2d8Tr3c5SC2okb7mEWi3Y1lq9UC-enln54ydtDClCnY,124657
90
90
  ccxt/p2b.py,sha256=V_P8GTdb6SkeaVptVtc-LbjwUKUinfYFtO4nzmKG0N0,54333
91
+ ccxt/paradex.py,sha256=rKIxXhd2Ddz_pYWb9PJ3NRI9XrOFkqmS4vTrWfQ2I8c,85602
91
92
  ccxt/paymium.py,sha256=Xz-H66MQWQcQ1KJbciSMeremCD9kl2up_-IQUvBt22Y,24419
92
93
  ccxt/phemex.py,sha256=Xi0Cb6Zfe2_tZ0GZ_Iam_m2NEJ7fIDjHpOYc1vJ-VQk,223106
93
94
  ccxt/poloniex.py,sha256=Pqmr-FAeN5phqDZi1eIIGfc43Djey8cTHI0FCNTG-yw,102253
@@ -101,7 +102,7 @@ ccxt/vertex.py,sha256=lHM2VbZCIYS4EeJ7Y9KoZcEepF7Cue7YITItyNXLiqk,121703
101
102
  ccxt/wavesexchange.py,sha256=8KrV-euIdDeARQ-h-T-nTlFJ9hk6TLuwGl8U7Xr_Lgk,114825
102
103
  ccxt/wazirx.py,sha256=LVHNdononi8FrZpT0pYiJoS-NrNi7_uIZ6Qbu8dJRPc,52405
103
104
  ccxt/whitebit.py,sha256=ZkM8nGbqqiX6Aon-CwXileEE_9dhK3kVrJOSk1SBw7E,118768
104
- ccxt/woo.py,sha256=R5Pwvg1X6ryIvNhNN4__dAxzilcl-QMadyBqaFwylqY,152864
105
+ ccxt/woo.py,sha256=V-EJ6EJC039dmJ-WFkltyP9l3wquxfVtmXaaoYH8Dbg,153028
105
106
  ccxt/woofipro.py,sha256=JQdGizBIOXPmCHnKZsH71CfzCum1_mNCpFymV-JaX-U,115350
106
107
  ccxt/xt.py,sha256=esWHEOeI7Kbm53GsZB-7Ds34yvyoJjanL_MIBvADuIE,202646
107
108
  ccxt/yobit.py,sha256=CX5ktS3-oYItrbdsW9lJqwz4IqTKKqS30djofSkGInc,53379
@@ -197,6 +198,7 @@ ccxt/abstract/okx.py,sha256=wc6HcjsIZNH9fn5xDt-u1kW2VXO16GiWsUyTRjsdvSo,48438
197
198
  ccxt/abstract/onetrading.py,sha256=TtJq4d44lrutV8wcK0lX4v0EfQ72ly6fxR-zB7-FSuI,3859
198
199
  ccxt/abstract/oxfun.py,sha256=bv4FJPe1H5ouMT_gRHVQtvV0MrMZhc3US-DMwnDM4Js,3457
199
200
  ccxt/abstract/p2b.py,sha256=XwaH1hLIi2T6RHltUwFj28Y5fbo6dc0jbjI01sVeOJw,2054
201
+ ccxt/abstract/paradex.py,sha256=lXVNsg7UbJ1tU82Sl8gM49CYPP6ccHV04s4cUbOnSt0,4089
200
202
  ccxt/abstract/paymium.py,sha256=Bol6PEkHg_47betqBnL4aQQ4IhIp4owID_12VfDqn0E,2843
201
203
  ccxt/abstract/phemex.py,sha256=kzAIkrs2gVUYoggXpwypT-IbYAlqRRyXfGIMk3XrwLs,15203
202
204
  ccxt/abstract/poloniex.py,sha256=dtTdTobCR2mMhCKJRqSxa1bjl9T94QiF0y31RoaqR_Y,8073
@@ -216,7 +218,7 @@ ccxt/abstract/xt.py,sha256=JkWvsic3L2O968BCr9H5Wd5NIbRE9aTT2A-9WbAtl0c,27146
216
218
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
217
219
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
218
220
  ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
219
- ccxt/async_support/__init__.py,sha256=hYyuBvuBxNI0gwJkmcAT5Lhcq5BpA8BPExmP3UxeuoE,16122
221
+ ccxt/async_support/__init__.py,sha256=vfsJ714-z2D-fiSzzty7l4d4bLwedAdMXQQ3_vHOqhQ,16230
220
222
  ccxt/async_support/ace.py,sha256=GxXMtM5Como1NVqXhOqJntxhLO1w9pNe1yYbQP_4ylQ,42603
221
223
  ccxt/async_support/alpaca.py,sha256=495vDvdF1IWlsh9QhUnMtkMuINdD0EzeFGlUVqCf8TE,47682
222
224
  ccxt/async_support/ascendex.py,sha256=LK259BdUqU0_STGRH6DmTgaR-7lXqFpZHFVACf2um5c,152721
@@ -306,6 +308,7 @@ ccxt/async_support/okx.py,sha256=u8mwZUCq20ar-HN2XU8OpcRQXSuG0Ic0n80PyLpLoqc,380
306
308
  ccxt/async_support/onetrading.py,sha256=IPsjvlMMOz72uTbfMVo3BSkP0_7vQZ7DYwHFUQeH7vY,88791
307
309
  ccxt/async_support/oxfun.py,sha256=_Pv8E4yIKS10iPOpPuCFQgBuqGDzxuwvxROdJjwrYvc,125201
308
310
  ccxt/async_support/p2b.py,sha256=aU_69L8hyfZEQ_yFJb6UoR_l0EbaeCTRgNvdDtk4QPs,54575
311
+ ccxt/async_support/paradex.py,sha256=g-OioV_fNjv5sEVADstDiT80Zz-I2WzwRXdaVTMCTGA,86210
309
312
  ccxt/async_support/paymium.py,sha256=GIAgyOjR11o1pfq8om4Pwr68jMkLoEwEz7sB8lIDMI0,24607
310
313
  ccxt/async_support/phemex.py,sha256=Xfa8kxrN6mEr6BGLNDnquGhMq0sk42qJ7P5Ckmb-0BE,223924
311
314
  ccxt/async_support/poloniex.py,sha256=m5zaJRKARuSmk05lKbaSlPOlcj4s9KsA5BX4aEmil8I,102801
@@ -319,14 +322,14 @@ ccxt/async_support/vertex.py,sha256=6eOWWpuDaGHhSMkOb1CR7ZhlnaMVNWVLoIKOK_W4mT4,
319
322
  ccxt/async_support/wavesexchange.py,sha256=kdF7Nm5a34mtgIj2HWTLuV3plt4K3EBKMpLENIxtoMk,115375
320
323
  ccxt/async_support/wazirx.py,sha256=bnUpw9be3o4l2Hxm3jcfNXn5bMyZlgqoG8BGPusuIzs,52707
321
324
  ccxt/async_support/whitebit.py,sha256=JpY0YJHVmvg0OOqRAXRfRV_KuscYglWQ1YVt3DkHrsg,119418
322
- ccxt/async_support/woo.py,sha256=8W8kYEq7mgeqvoVSvpB465pTD-GqZZZIK_F5gdx3X9k,153832
325
+ ccxt/async_support/woo.py,sha256=nQ3vgoUSuwTnwDuARt1CFn6471NsIFOMHOqq-CErDrQ,153996
323
326
  ccxt/async_support/woofipro.py,sha256=xXfZj56dOmUZ67z7tsRiHL-XVtFlst-UXRPh6qRvrE0,116030
324
327
  ccxt/async_support/xt.py,sha256=9k__X07qzgB_NwSplLfJL4_4eKtHslL8Qlfv6xBwZKU,203800
325
328
  ccxt/async_support/yobit.py,sha256=rndL_bMH17YAFCGX__ZPid-Rym1sKoikKO2At7Mbe2Y,53663
326
329
  ccxt/async_support/zaif.py,sha256=-ZTr8M2JaIRCL90VrbCDXBMAsZwbiwsFChSQ2rWODuQ,29044
327
330
  ccxt/async_support/zonda.py,sha256=jncr6Wg12S72CTpu6mCKCse1pm1f8oefVQurQSrFvP0,81733
328
331
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
329
- ccxt/async_support/base/exchange.py,sha256=3Amj-Roe3kd0hizWy3-_loJnhuVFpXYpKasRvCrfUA8,110793
332
+ ccxt/async_support/base/exchange.py,sha256=XHTDNsr6GpYZ_29n9oEiplqnKTAolctdDMOdmdPEJZY,110793
330
333
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
331
334
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
332
335
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
@@ -340,13 +343,13 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
340
343
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
341
344
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
342
345
  ccxt/base/errors.py,sha256=tosnf1tDaBn4YMCbWVNWyDYzqft-ImVtyjqJb6q83Y4,4369
343
- ccxt/base/exchange.py,sha256=rCCYlX8lWT_buAkB8CPHgS2I2Yn1bvx7urXie6ZFU2g,292014
346
+ ccxt/base/exchange.py,sha256=dXVqoMR6qIC-87jC6R3BOH-Q_ZOQIszlKJkv4tDj3Wk,294200
344
347
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
345
348
  ccxt/base/types.py,sha256=TaP_RElKjGEZWuzyp4o4u2YhREyTG3rUeVT6gDffY9A,9613
346
- ccxt/pro/__init__.py,sha256=DC4Yo-5hy7SPRTkevmyKvSXFT0-EkNYLz5XXusT9-tY,7506
349
+ ccxt/pro/__init__.py,sha256=lGy0B2iiHzkKSm_rK5CgBtuInE1leX10fDwLJs_-070,7608
347
350
  ccxt/pro/alpaca.py,sha256=TGfyNTaYawHIUWDzoVKXitCPMWO1wKn9VcgmdWMex58,27212
348
351
  ccxt/pro/ascendex.py,sha256=181FIeztchLqGmgecRJEN8F8xEM45D5aMKhC-5nuNfU,35467
349
- ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
352
+ ccxt/pro/bequant.py,sha256=33OEUWBi4D9-2w8CmkwN3aF1qS-AlLqX3pxrWwNbXPY,1552
350
353
  ccxt/pro/binance.py,sha256=z_aMvr8ZEn-VoVFammArKALyqnJ7krHooJeGrtY8-0I,172891
351
354
  ccxt/pro/binancecoinm.py,sha256=LlgF4rXHHrsQMaklhTEzSiE6U9V25AjHHg_DRat7Mf0,1036
352
355
  ccxt/pro/binanceus.py,sha256=_IXpS_wyH0nEtsLR7cJLtrUlsNQoG0MSUVo3PV0RDDc,1946
@@ -402,6 +405,7 @@ ccxt/pro/okx.py,sha256=Fw1vYXvik0E1l_IQ1ATymUtvxk5jXEMV-isVMbXQXQI,84823
402
405
  ccxt/pro/onetrading.py,sha256=Qlr6LRRqO8te7QyTIhCk5nXJnupH8MtRWhQnH3Zc9yE,54769
403
406
  ccxt/pro/oxfun.py,sha256=gcmnoD0pzEDVIaiHyuU2ABoQBrxi0CTP62H2xZD0T7g,43943
404
407
  ccxt/pro/p2b.py,sha256=qulHrptdJ48MtOQ0bOZH3h_An8Ybu14cU6cJrySV5KQ,17897
408
+ ccxt/pro/paradex.py,sha256=jdvEKAOloQzUv1vuOOyM2D4rBJcWUxLih7ISl1AmQrs,14231
405
409
  ccxt/pro/phemex.py,sha256=iwdftOXQIiP_Ns7PHD-5vlL74H5vtPUWOQ1zh7fyuD8,61069
406
410
  ccxt/pro/poloniex.py,sha256=e81Vkvg2oRW51nXECf6lF7Cjj5CbHv7Np2QSy6z0h3k,52108
407
411
  ccxt/pro/poloniexfutures.py,sha256=Iy8Q_Z8I3rUtNcZoxwVzMK2C1qLIiHjFXdZd_rr3Sww,41972
@@ -413,7 +417,7 @@ ccxt/pro/whitebit.py,sha256=lpIDFgmVXtL77680Rz9hVTEXd3M6TsizhlFb0ruKfEM,35073
413
417
  ccxt/pro/woo.py,sha256=CDyMuCLTVl5DBOUCQX_2LFAd7bain7fgLQnnSAza9Pw,43827
414
418
  ccxt/pro/woofipro.py,sha256=pwVXMDrl3zFZrEJJkk9_PEil9uTTtrV9TEvbCRFaNUM,49050
415
419
  ccxt/pro/xt.py,sha256=USN0l6AOLiKgT9Sfz0QX93yFXv-hnU2VEV_mzkSFuyQ,48369
416
- ccxt/static_dependencies/__init__.py,sha256=GpOAh5lJ5Kyk1K1lWf9DzDZeZ-prHXXK38dVpW5GPfc,84
420
+ ccxt/static_dependencies/__init__.py,sha256=tzFje8cloqmiIE6kola3EaYC0SnD1izWnri69hzHsSw,168
417
421
  ccxt/static_dependencies/ecdsa/__init__.py,sha256=Xaj0G79BLtBt2YZcOOMV8qOlQZ7fIJznNiHhiEEZfQA,594
418
422
  ccxt/static_dependencies/ecdsa/_version.py,sha256=eMIr0XQiX8_th_x4iAd0JFcYKLowY9dYz33-vKVFIPI,18461
419
423
  ccxt/static_dependencies/ecdsa/curves.py,sha256=3CN80_QIv25zyF_5RY7_TZAgJd5EHsMUyfbevtxjnx4,1886
@@ -488,6 +492,66 @@ ccxt/static_dependencies/ethereum/utils/typing/__init__.py,sha256=84PxIxCvEHtBb-
488
492
  ccxt/static_dependencies/ethereum/utils/typing/misc.py,sha256=WzYhHSbZiX0Em5UPLcqSMJPa67rlgLDygoKeGPylKMg,189
489
493
  ccxt/static_dependencies/keccak/__init__.py,sha256=mfcrTChnMXsr-JmfN2VbzscTRt9XA2RRGchfHRMYncU,45
490
494
  ccxt/static_dependencies/keccak/keccak.py,sha256=RblmQEQkGpMhug0EU3hyE0kBjs1NDfGQqbwrBK7ZycY,6934
495
+ ccxt/static_dependencies/lark/__init__.py,sha256=OBNUDBJFIaedTvqNDIu_phXkybswNvtjI4UbxYMqz1c,744
496
+ ccxt/static_dependencies/lark/ast_utils.py,sha256=jwn44ocNQhZGbfcFsEZnwi_gGvPbNgzjQ-0RuEtwDzI,2117
497
+ ccxt/static_dependencies/lark/common.py,sha256=M9-CFAUP3--OkftyyWjke-Kc1-pQMczT1MluHCFwdy4,3008
498
+ ccxt/static_dependencies/lark/exceptions.py,sha256=g76ygMPfSMl6ukKqFAZVpR2EAJTOOdyfJ_ALXc_MCR8,10939
499
+ ccxt/static_dependencies/lark/grammar.py,sha256=DR17QSLSKCRhMOqx2UQh4n-Ywu4CD-wjdQxtuM8OHkY,3665
500
+ ccxt/static_dependencies/lark/indenter.py,sha256=L5uNDYUMNrk4ZTWKmW0Tu-H-3GGErLOHygMC32N_twE,4221
501
+ ccxt/static_dependencies/lark/lark.py,sha256=_IHWmTxt43kfd9eYVtwx58zEWWSFAq9_gKH7Oeu5PZs,28184
502
+ ccxt/static_dependencies/lark/lexer.py,sha256=OwgQPCpQ-vUi-2aeZztsydd4DLkEgCbZeucvEPvHFi4,24037
503
+ ccxt/static_dependencies/lark/load_grammar.py,sha256=WYZDxyO6omhA8NKyMjSckfAMwVKuIMF3liiYXE_-kHo,53946
504
+ ccxt/static_dependencies/lark/parse_tree_builder.py,sha256=jT_3gCEkBGZoTXAWSnhMn1kRuJILWB-E7XkUciYNHI4,14412
505
+ ccxt/static_dependencies/lark/parser_frontends.py,sha256=mxMXxux2hkfTfE859wuVp4-Fr1no6YVEUt8toDjEdPQ,10165
506
+ ccxt/static_dependencies/lark/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
507
+ ccxt/static_dependencies/lark/reconstruct.py,sha256=s7CevBXchUG_fe2otdAITxIaSXCEIiSjy4Sbh5QC0hs,3763
508
+ ccxt/static_dependencies/lark/tree.py,sha256=aWWHMazid8bbJanhmCjK9XK2jRFJ6N6WmlwXJGTsz28,8522
509
+ ccxt/static_dependencies/lark/tree_matcher.py,sha256=jHdZJggn405SXmPpGf9U9HLrrsfP4eNNZaj267UTB00,6003
510
+ ccxt/static_dependencies/lark/tree_templates.py,sha256=u9rgvQ9X3sDweRkhtteF9nPzCYpQPKvxQowkvU5rOcY,5959
511
+ ccxt/static_dependencies/lark/utils.py,sha256=jZrLWb-f1OPZoV2e-3W4uxDm7h1AlaERaDrqSdbt7k4,11176
512
+ ccxt/static_dependencies/lark/visitors.py,sha256=VJ3T1m8p78MwXJotpOAvn06mYEqKyuIlhsAF51U-a3w,21422
513
+ ccxt/static_dependencies/lark/__pyinstaller/__init__.py,sha256=_PpFm44f_mwHlCpvYgv9ZgubLfNDc3PlePVir4sxRfI,182
514
+ ccxt/static_dependencies/lark/__pyinstaller/hook-lark.py,sha256=5aFHiZWVHPRdHT8qnb4kW4JSOql5GusHodHR25_q9sU,599
515
+ ccxt/static_dependencies/lark/grammars/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
516
+ ccxt/static_dependencies/lark/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
517
+ ccxt/static_dependencies/lark/parsers/cyk.py,sha256=c3GLk3kq23Xwb8MqUOjvivwP488KJY6NUWgxqeR5980,12192
518
+ ccxt/static_dependencies/lark/parsers/earley.py,sha256=mkmHWGtrY_96gxL12jH994lrbcFDy0DZz79Zl7pTXlI,14883
519
+ ccxt/static_dependencies/lark/parsers/earley_common.py,sha256=e2e6NrNucw-WMiNV8HqQ_TpGx6P7v_S8f5aEcF0Tkqo,1620
520
+ ccxt/static_dependencies/lark/parsers/earley_forest.py,sha256=dlcAPQAaGEqcc5rRr0lqmIUhU1qfVG5ORxPPzjbZ0TI,31313
521
+ ccxt/static_dependencies/lark/parsers/grammar_analysis.py,sha256=WoxuPu53lXJAGmdyldfaRy4yKJ9LRPl90VBYczyaVZA,7106
522
+ ccxt/static_dependencies/lark/parsers/lalr_analysis.py,sha256=DGHFk2tIluIyeFEVFfsMRU77DVbd598IJnUUOXO04yo,12207
523
+ ccxt/static_dependencies/lark/parsers/lalr_interactive_parser.py,sha256=i_m5s6CK-7JjSqEAa7z_MB-ZjeU5mK1bF6fM7Rs5jIQ,5751
524
+ ccxt/static_dependencies/lark/parsers/lalr_parser.py,sha256=LJE-1Dn062fQapFLGFykQUpd5SnyDcO_DJOScGUlOqk,4583
525
+ ccxt/static_dependencies/lark/parsers/lalr_parser_state.py,sha256=2nj36F3URvRgI1nxF712euvusYPz4nh5PQZDCVL_RQ4,3790
526
+ ccxt/static_dependencies/lark/parsers/xearley.py,sha256=DboXMNtuN0G-SXrrDm5zgUDUekz85h0Rih2PRvcf1LM,7825
527
+ ccxt/static_dependencies/lark/tools/__init__.py,sha256=FeKYmVUjXSt-vlQm2ktyWkcxaOCTOkZnHD_kOUWjUuA,2469
528
+ ccxt/static_dependencies/lark/tools/nearley.py,sha256=QaLYdW6mYQdDq8JKMisV3lvPqzF0wPgu8q8BtsSA33g,6265
529
+ ccxt/static_dependencies/lark/tools/serialize.py,sha256=nwt46LNxkDm0T_Uh9k2wS4fcfgvZQ2dy4-YC_aKhTQk,965
530
+ ccxt/static_dependencies/lark/tools/standalone.py,sha256=6eXDqBuzZSpE5BGZm_Fh6X5yRhAPYxNVyl2aUU3ABzA,5627
531
+ ccxt/static_dependencies/marshmallow/__init__.py,sha256=QYC9_DYxA7la56yUxAdLZm6CymFWVxZjPmmG5-ZnMag,2365
532
+ ccxt/static_dependencies/marshmallow/base.py,sha256=jZ68DZxxSCvRg2GTcxQcf2JjTxqEn-xFNrBEMK3CinU,1346
533
+ ccxt/static_dependencies/marshmallow/class_registry.py,sha256=Ir_n2nNhuDz4EXkVCmdITvlMem5XwrrVJs_Il76-w_g,2790
534
+ ccxt/static_dependencies/marshmallow/decorators.py,sha256=84tMGdn7P-aT9J5KdAfCefxEF9WElgtFaMSVwMMQIpo,8290
535
+ ccxt/static_dependencies/marshmallow/error_store.py,sha256=Y1dJggsZ7t5E1hikM4FRSfGzLDWjNCxDQV2bgkx4Bw8,2212
536
+ ccxt/static_dependencies/marshmallow/exceptions.py,sha256=DuARdOcirCdJxmlp16V97hQKAXOokvdW12jXtYOlGyk,2326
537
+ ccxt/static_dependencies/marshmallow/fields.py,sha256=pHY5bqRVo0-_aaX-E54phTmO2onIONhnY8ebHutjga8,72898
538
+ ccxt/static_dependencies/marshmallow/orderedset.py,sha256=C2aAG6w1faIL1phinbAltbe3AUAnF5MN6n7fzESNDhI,2922
539
+ ccxt/static_dependencies/marshmallow/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
540
+ ccxt/static_dependencies/marshmallow/schema.py,sha256=Uh7iikJdreSnTudAJWYyToXI_a0rH5DQhO24PMA5Qc4,48832
541
+ ccxt/static_dependencies/marshmallow/types.py,sha256=eHMwQR8-ICX2RHf_i6bgjnhzdanbpBqXuzXuP6jHcNI,332
542
+ ccxt/static_dependencies/marshmallow/utils.py,sha256=9IEYfO17evHhcJ8tMqUx768J2udNphrSqg_LY3quWuQ,11853
543
+ ccxt/static_dependencies/marshmallow/validate.py,sha256=icPw5qS-gz-IL-sNhFPJJ-ZD84QfpmySslmbOt4K2Ys,23826
544
+ ccxt/static_dependencies/marshmallow/warnings.py,sha256=vHQu7AluuWqLhvlw5noXtWWbya13zDXY6JMaVSUzmDs,65
545
+ ccxt/static_dependencies/marshmallow_dataclass/__init__.py,sha256=9vbR9DeSggTFJC3a7PzZ0o93BWSEIhTgXK0Mxw4DDZM,36024
546
+ ccxt/static_dependencies/marshmallow_dataclass/collection_field.py,sha256=Nc1y1jThnhYDIBuPQZqpVatAVAIk3-KAFoNO9Arz_eE,1640
547
+ ccxt/static_dependencies/marshmallow_dataclass/lazy_class_attribute.py,sha256=2fEF6NSdNYDAegxXkT0D2hjysRKlEXFSIH7eP0nurVE,1070
548
+ ccxt/static_dependencies/marshmallow_dataclass/mypy.py,sha256=Ek5j_gS0I83Oly6xpxWrR4obCDDDSHmjXhywsQlb2wQ,2034
549
+ ccxt/static_dependencies/marshmallow_dataclass/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
550
+ ccxt/static_dependencies/marshmallow_dataclass/typing.py,sha256=OqcSrGTwMWr4_Ct3hCHW9dWNiWpa1ViGsUgFOqSfvz4,269
551
+ ccxt/static_dependencies/marshmallow_dataclass/union_field.py,sha256=zi2-4NThvY---6gXBWyL_zUK3e7MVl5dY-ffY2vZPvc,2914
552
+ ccxt/static_dependencies/marshmallow_oneofschema/__init__.py,sha256=KQjXt0W26CH8CvBBTA0YFEMsIHwR9_oMfBGppTnoTlI,47
553
+ ccxt/static_dependencies/marshmallow_oneofschema/one_of_schema.py,sha256=DXIK8-Py-EtnniDpGvwqjTbz9x3PrkgpHcqykvfEo0A,6714
554
+ ccxt/static_dependencies/marshmallow_oneofschema/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
491
555
  ccxt/static_dependencies/msgpack/__init__.py,sha256=tMxCiw7hJRLJN3JgUmPXOo64qMaUAbKTCf44CvE2tg8,1077
492
556
  ccxt/static_dependencies/msgpack/exceptions.py,sha256=dCTWei8dpkrMsQDcjQk74ATl9HsIBH0ybt8zOPNqMYc,1081
493
557
  ccxt/static_dependencies/msgpack/ext.py,sha256=fKp00BqDLjUtZnPd70Llr138zk8JsCuSpJkkZ5S4dt8,5629
@@ -498,6 +562,63 @@ ccxt/static_dependencies/parsimonious/expressions.py,sha256=FTSpmx3YxAI6nd1dpYhi
498
562
  ccxt/static_dependencies/parsimonious/grammar.py,sha256=e5o_w98SjGURDz22JrfDwv3d-R-wu3eo9A8LIkX3zmI,19190
499
563
  ccxt/static_dependencies/parsimonious/nodes.py,sha256=DhgjH6pjOWFPcwOEEoz29Cz2rkom08zHmAj7_L1miTE,13084
500
564
  ccxt/static_dependencies/parsimonious/utils.py,sha256=2eyApbqJ9zZ5FAmhW8bl47s2tlYc6IqvJpzacSK3kWs,1087
565
+ ccxt/static_dependencies/starknet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
566
+ ccxt/static_dependencies/starknet/ccxt_utils.py,sha256=aOn9TXn178WMUEvmJQKzgg-fgBnjm_oFnKGJ0JyRCJ0,340
567
+ ccxt/static_dependencies/starknet/common.py,sha256=Vkzq8r2S-xhECatpXz5xT7N9a5dfneOW0zYO3sTsIuM,457
568
+ ccxt/static_dependencies/starknet/constants.py,sha256=Zzf0aE0NoVIaNF7Nr-NRVq0Zc5mzsp0c-grVvpPQ5s4,1281
569
+ ccxt/static_dependencies/starknet/cairo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
570
+ ccxt/static_dependencies/starknet/cairo/data_types.py,sha256=xy70JGn-sFXFPGb7JUCpvk-DOkaGi0X86sJ-Eq0evnY,2174
571
+ ccxt/static_dependencies/starknet/cairo/felt.py,sha256=3dCoWOqib-BVBiRM3AEZ1pqa1v-oO_7U-SoaEKaxYfA,1708
572
+ ccxt/static_dependencies/starknet/cairo/type_parser.py,sha256=sjqf2WuyRqfVvBzfEgbU8aWnWFmVMfZQfIGIqbeQfro,4407
573
+ ccxt/static_dependencies/starknet/cairo/deprecated_parse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
574
+ ccxt/static_dependencies/starknet/cairo/deprecated_parse/cairo_types.py,sha256=YVrvqKyqctoz172Ta85ubkmy_7v6U8TiOf9J1zQf0lk,1434
575
+ ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser.py,sha256=VixjKG0zYyjR6NaWIIC2qzunvkzxmnX-MvU2MLmKirU,1280
576
+ ccxt/static_dependencies/starknet/cairo/deprecated_parse/parser_transformer.py,sha256=uyIqwCktMsdF3zenns0_o0oHgKkvYn-7gXoKYZ6cos8,3883
577
+ ccxt/static_dependencies/starknet/cairo/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
578
+ ccxt/static_dependencies/starknet/cairo/v1/type_parser.py,sha256=fwUVELVmfU8yMCy2wOFFRmkiNl8p_MWI51Y-FKGkies,2082
579
+ ccxt/static_dependencies/starknet/cairo/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
580
+ ccxt/static_dependencies/starknet/cairo/v2/type_parser.py,sha256=Ljty_JU5oEoh2Pzhv3otVNbncK5lgUMMkNJdzhkIRGM,2506
581
+ ccxt/static_dependencies/starknet/hash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
582
+ ccxt/static_dependencies/starknet/hash/address.py,sha256=Ajdub47ZFQ5nspbsuRIPlVC9EDzW-DzkDnPyhhkv18I,2259
583
+ ccxt/static_dependencies/starknet/hash/compiled_class_hash_objects.py,sha256=w-TbuJvHBlXUdBXsxf5A7uWuoW1xW490qFHVI_w7hX4,3349
584
+ ccxt/static_dependencies/starknet/hash/selector.py,sha256=y7PRHGePeCGkuzDZKlcR6JJ-PTgpfKVPW4Gl5sTvFN8,474
585
+ ccxt/static_dependencies/starknet/hash/storage.py,sha256=pQZdxL6Fac3HGR6Sfvhek-vjsT1reUhIqd2glIbySs8,402
586
+ ccxt/static_dependencies/starknet/hash/utils.py,sha256=DTFR7uFqksoOh5O4ZPHF5vzohmrA19dYrsPGSSYvhpI,2173
587
+ ccxt/static_dependencies/starknet/serialization/__init__.py,sha256=B71RdRcil04hDiY7jNxo_PFGzEenQKXwm3rJuG79ukg,655
588
+ ccxt/static_dependencies/starknet/serialization/_calldata_reader.py,sha256=aPiWzMn8cAmjC_obUbNPRqqJ6sR4yOh0SKYGH-gK6ik,1135
589
+ ccxt/static_dependencies/starknet/serialization/_context.py,sha256=LOult4jWMDYLFKR4C16R9F9F3EJFK4ZoM_wnIAQHiJA,4821
590
+ ccxt/static_dependencies/starknet/serialization/errors.py,sha256=7FzyxluiXip0KJKRaDuYWzP6NzRYY1uInrjRzoTx6tU,345
591
+ ccxt/static_dependencies/starknet/serialization/factory.py,sha256=ShhxMuUCQxx7VlpBzi-gisGlNp27cFDrFqoTqUev_IQ,7237
592
+ ccxt/static_dependencies/starknet/serialization/function_serialization_adapter.py,sha256=JWnt9opafvE4_B6MA6DxFD5BUcJaS80EgJggSi7fadA,3837
593
+ ccxt/static_dependencies/starknet/serialization/tuple_dataclass.py,sha256=MOKjgXuSBbwTpPCKf2NnkCEgUXROqffsHnx89sqKlkU,2108
594
+ ccxt/static_dependencies/starknet/serialization/data_serializers/__init__.py,sha256=-ZU3Xw6kYFY8QsScdpl17cFe4CpUDlmgVAplgs0yi68,495
595
+ ccxt/static_dependencies/starknet/serialization/data_serializers/_common.py,sha256=NBMJjkz5kO38OswqxlM97AOOcgrV0iAd5O8U8tKfLqc,2859
596
+ ccxt/static_dependencies/starknet/serialization/data_serializers/array_serializer.py,sha256=iBD6YllfBnixV_hDvR3RKrwfw6G4ZzhnRzRk-dzWsIA,1219
597
+ ccxt/static_dependencies/starknet/serialization/data_serializers/bool_serializer.py,sha256=Tte3mkdqs-149j6LNNZzRD_oxoK8DGc8IhBCC2o_g7Q,999
598
+ ccxt/static_dependencies/starknet/serialization/data_serializers/byte_array_serializer.py,sha256=gFGuLWh23Mga5Cmju1NZfJlr55ru5mvwCwbMUo7brtM,2070
599
+ ccxt/static_dependencies/starknet/serialization/data_serializers/cairo_data_serializer.py,sha256=hxjj7csmknHRb72rQ1bKXN2-wjON03cKBPFGQDcACG8,2279
600
+ ccxt/static_dependencies/starknet/serialization/data_serializers/enum_serializer.py,sha256=JPYxWx0Wrn-9pB2EI4PL4p1c948xQvSulz6qH0U3kK8,2229
601
+ ccxt/static_dependencies/starknet/serialization/data_serializers/felt_serializer.py,sha256=_7UH-M-PbYu2vPYKh5mF8E1AhSg5QK6mRHKEjFR3xn8,1548
602
+ ccxt/static_dependencies/starknet/serialization/data_serializers/named_tuple_serializer.py,sha256=yTQsyupHFM7vIjB_9H2LJzMLfjBfWZKDK-Ts3LQow6M,1809
603
+ ccxt/static_dependencies/starknet/serialization/data_serializers/option_serializer.py,sha256=-py0qFUq1OQhqlrFOF4Ryg2bZXHzts0egbZlVWR4QJg,1136
604
+ ccxt/static_dependencies/starknet/serialization/data_serializers/output_serializer.py,sha256=5oWi20A9VOgnE1AoilrsrSTWJZfgBNLw2JfQweINZhU,1151
605
+ ccxt/static_dependencies/starknet/serialization/data_serializers/payload_serializer.py,sha256=Y2JjrG6v8PUgLHN0Md39cLU70tb4agi4umj-kwkXz_M,2445
606
+ ccxt/static_dependencies/starknet/serialization/data_serializers/struct_serializer.py,sha256=b9hhMqnAhCqN8uF6-TPph035lt4oktBUkdPotXZ1mQs,941
607
+ ccxt/static_dependencies/starknet/serialization/data_serializers/tuple_serializer.py,sha256=Ble023LEceZEmLld-E7x_I_Ez5NYr3zNsGAVwMgU-N0,964
608
+ ccxt/static_dependencies/starknet/serialization/data_serializers/uint256_serializer.py,sha256=sPGeD8y6z8iA3B1M6i4tF1w2vrqv_cKKkgxOm_qKl1k,2406
609
+ ccxt/static_dependencies/starknet/serialization/data_serializers/uint_serializer.py,sha256=PV_uYvI4PyV8aVg4oNYO-uZxFlIrpKFKoyXeE39LILQ,3157
610
+ ccxt/static_dependencies/starknet/serialization/data_serializers/unit_serializer.py,sha256=h9X769Ls9Iks0HIZ5uDjuLNjcPGom73Kg3hhYzt2p-I,778
611
+ ccxt/static_dependencies/starknet/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
612
+ ccxt/static_dependencies/starknet/utils/constructor_args_translator.py,sha256=kFMRxdCJi5rlgLiwBbgyGVlByGBQxkvljiG0zMb4hDM,2537
613
+ ccxt/static_dependencies/starknet/utils/iterable.py,sha256=m-A7qOnh6W5OvWpsIbSJdVPuWYjESkiVcZEY_S3XYas,302
614
+ ccxt/static_dependencies/starknet/utils/schema.py,sha256=OKVVk_BTTxGkPy0Lv0P1kL27g9-s5ln_YIiU-VVwBH4,361
615
+ ccxt/static_dependencies/starknet/utils/typed_data.py,sha256=Ln6JBGJp8C_wNjGI_nry7h7CBX8ImTzKjNbmFtp2kSQ,5561
616
+ ccxt/static_dependencies/sympy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
617
+ ccxt/static_dependencies/sympy/external/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
618
+ ccxt/static_dependencies/sympy/external/gmpy.py,sha256=Kdh81lf0ll3mk1iur4KxSIHm88GLv-xNc3rT7i8-E2M,10283
619
+ ccxt/static_dependencies/sympy/external/importtools.py,sha256=Q7tS2cdGZ9a4NI_1sgGuoVcSDv_rIk-Av0BpFTa6EzA,7671
620
+ ccxt/static_dependencies/sympy/external/ntheory.py,sha256=dsfEjXvZpSf_cxMEiNmPPuI26eZ3KFJjvsFPEKfQonU,18051
621
+ ccxt/static_dependencies/sympy/external/pythonmpq.py,sha256=WOMTvHxYLXNp_vQ1F3jE_haeRlnGicbRlCTOp4ZNuo8,11243
501
622
  ccxt/static_dependencies/toolz/__init__.py,sha256=SlTjHMiaQULRWlN_D1MYQMAQB6d9sQB9AYlud7BsduQ,374
502
623
  ccxt/static_dependencies/toolz/_signatures.py,sha256=RI2GtVNSyYyXfn5vfXOqyHwXiblHF1L5pPjAHpbCU5I,20555
503
624
  ccxt/static_dependencies/toolz/_version.py,sha256=027biJ0ZWLRQtWxcQj8XqnvszCO3p2SEkLn49RPqRlw,18447
@@ -510,13 +631,17 @@ ccxt/static_dependencies/toolz/utils.py,sha256=JLlXt8x_JqSVevmLZPnt5bZJsdKMBJgJb
510
631
  ccxt/static_dependencies/toolz/curried/__init__.py,sha256=iOuFY4c1kixe_h8lxuWIW5Az-cXRvOWJ5xuTfFficeE,2226
511
632
  ccxt/static_dependencies/toolz/curried/exceptions.py,sha256=gKFOHDIayAWnX2uC8Z2KrUwpP-UpoqI5Tx1a859QdVY,344
512
633
  ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4werSUmJEtSHNY9NSzhseNM9s,525
634
+ ccxt/static_dependencies/typing_extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
635
+ ccxt/static_dependencies/typing_extensions/typing_extensions.py,sha256=P042Op4VQDL9iAxAsc_Zie7u6pba9V7Ej9E_RLwgVHo,141867
636
+ ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
637
+ ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
513
638
  ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
514
- ccxt/test/tests_async.py,sha256=LQbmSFTERUZrmoBTYaRxFpikuuJfYr9weV5ibxdEPkk,82236
639
+ ccxt/test/tests_async.py,sha256=nZ-ElW1q1rcRat-z81x4mPERa9az9qbBVHo_RNioMMw,84617
515
640
  ccxt/test/tests_helpers.py,sha256=GbWfSU-0E_CKLeFNinnEHYg1LOcEgNVJT3K9e2kjOeM,10011
516
641
  ccxt/test/tests_init.py,sha256=eVwwUHujX9t4rjgo4TqEeg7DDhR1Hb_e2SJN8NVGyl0,998
517
- ccxt/test/tests_sync.py,sha256=laU5k8aihJ7kwE22nQwV7Sqty8pGCR3QSsQopNrh1do,81340
518
- ccxt-4.3.70.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
519
- ccxt-4.3.70.dist-info/METADATA,sha256=tOpTIJGwxQIEV6c48Re_KK6434CBqUkqIkj2D6ZEB0M,115945
520
- ccxt-4.3.70.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
521
- ccxt-4.3.70.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
522
- ccxt-4.3.70.dist-info/RECORD,,
642
+ ccxt/test/tests_sync.py,sha256=p2u81x4O2ocpFjSz_d6HXl2QFwj5P9kZZNimIEKtbO0,83697
643
+ ccxt-4.3.71.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
644
+ ccxt-4.3.71.dist-info/METADATA,sha256=XxQVyhVLwxmdHYpBL4XbxLA0JvN5IOY_ewasrybxCqM,116642
645
+ ccxt-4.3.71.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
646
+ ccxt-4.3.71.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
647
+ ccxt-4.3.71.dist-info/RECORD,,
File without changes