coinex-api 0.0.78__py3-none-any.whl → 0.0.80__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.
coinex/ccxt/__init__.py CHANGED
@@ -26,7 +26,7 @@ sys.modules['ccxt'] = ccxt_module
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
29
- __version__ = '4.4.97'
29
+ __version__ = '4.4.99'
30
30
 
31
31
  # ----------------------------------------------------------------------------
32
32
 
@@ -59,6 +59,7 @@ from ccxt.base.errors import NoChange # noqa: F4
59
59
  from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
60
60
  from ccxt.base.errors import MarketClosed # noqa: F401
61
61
  from ccxt.base.errors import ManualInteractionNeeded # noqa: F401
62
+ from ccxt.base.errors import RestrictedLocation # noqa: F401
62
63
  from ccxt.base.errors import InsufficientFunds # noqa: F401
63
64
  from ccxt.base.errors import InvalidAddress # noqa: F401
64
65
  from ccxt.base.errors import AddressPending # noqa: F401
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
11
- __version__ = '4.4.97'
11
+ __version__ = '4.4.99'
12
12
 
13
13
  # -----------------------------------------------------------------------------
14
14
 
@@ -38,6 +38,7 @@ from ccxt.base.errors import NoChange # noqa: F4
38
38
  from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
39
39
  from ccxt.base.errors import MarketClosed # noqa: F401
40
40
  from ccxt.base.errors import ManualInteractionNeeded # noqa: F401
41
+ from ccxt.base.errors import RestrictedLocation # noqa: F401
41
42
  from ccxt.base.errors import InsufficientFunds # noqa: F401
42
43
  from ccxt.base.errors import InvalidAddress # noqa: F401
43
44
  from ccxt.base.errors import AddressPending # noqa: F401
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.97'
5
+ __version__ = '4.4.99'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -87,7 +87,7 @@ class coinex(Exchange, ImplicitAPI):
87
87
  'fetchDepositAddressesByNetwork': False,
88
88
  'fetchDeposits': True,
89
89
  'fetchDepositWithdrawFee': True,
90
- 'fetchDepositWithdrawFees': False,
90
+ 'fetchDepositWithdrawFees': True,
91
91
  'fetchFundingHistory': True,
92
92
  'fetchFundingInterval': True,
93
93
  'fetchFundingIntervals': False,
@@ -740,6 +740,7 @@ class coinex(Exchange, ImplicitAPI):
740
740
  for j in range(0, len(chains)):
741
741
  chain = chains[j]
742
742
  networkId = self.safe_string(chain, 'chain')
743
+ networkCode = self.network_id_to_code(networkId, code)
743
744
  if networkId is None:
744
745
  continue
745
746
  precisionString = self.parse_precision(self.safe_string(chain, 'withdrawal_precision'))
@@ -750,7 +751,7 @@ class coinex(Exchange, ImplicitAPI):
750
751
  canWithdrawChain = self.safe_bool(chain, 'withdraw_enabled')
751
752
  network: dict = {
752
753
  'id': networkId,
753
- 'network': networkId,
754
+ 'network': networkCode,
754
755
  'name': None,
755
756
  'active': canDepositChain and canWithdrawChain,
756
757
  'deposit': canDepositChain,
@@ -773,7 +774,7 @@ class coinex(Exchange, ImplicitAPI):
773
774
  },
774
775
  'info': chain,
775
776
  }
776
- networks[networkId] = network
777
+ networks[networkCode] = network
777
778
  result[code] = self.safe_currency_structure({
778
779
  'id': currencyId,
779
780
  'code': code,
@@ -5393,6 +5394,66 @@ class coinex(Exchange, ImplicitAPI):
5393
5394
  data = self.safe_dict(response, 'data', {})
5394
5395
  return self.parse_deposit_withdraw_fee(data, currency)
5395
5396
 
5397
+ async def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
5398
+ """
5399
+ fetch the fees for deposits and withdrawals
5400
+
5401
+ https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-all-deposit-withdrawal-config
5402
+
5403
+ @param codes
5404
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5405
+ :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
5406
+ """
5407
+ await self.load_markets()
5408
+ response = await self.v2PublicGetAssetsAllDepositWithdrawConfig(params)
5409
+ #
5410
+ # {
5411
+ # "code": 0,
5412
+ # "data": [
5413
+ # {
5414
+ # "asset": {
5415
+ # "ccy": "CET",
5416
+ # "deposit_enabled": True,
5417
+ # "withdraw_enabled": True,
5418
+ # "inter_transfer_enabled": True,
5419
+ # "is_st": False
5420
+ # },
5421
+ # "chains": [
5422
+ # {
5423
+ # "chain": "CSC",
5424
+ # "min_deposit_amount": "0.8",
5425
+ # "min_withdraw_amount": "8",
5426
+ # "deposit_enabled": True,
5427
+ # "withdraw_enabled": True,
5428
+ # "deposit_delay_minutes": 0,
5429
+ # "safe_confirmations": 10,
5430
+ # "irreversible_confirmations": 20,
5431
+ # "deflation_rate": "0",
5432
+ # "withdrawal_fee": "0.026",
5433
+ # "withdrawal_precision": 8,
5434
+ # "memo": "",
5435
+ # "is_memo_required_for_deposit": False,
5436
+ # "explorer_asset_url": ""
5437
+ # },
5438
+ # ]
5439
+ # }
5440
+ # ],
5441
+ # "message": "OK"
5442
+ # }
5443
+ #
5444
+ data = self.safe_list(response, 'data', [])
5445
+ result: dict = {}
5446
+ for i in range(0, len(data)):
5447
+ item = data[i]
5448
+ asset = self.safe_dict(item, 'asset', {})
5449
+ currencyId = self.safe_string(asset, 'ccy')
5450
+ if currencyId is None:
5451
+ continue
5452
+ code = self.safe_currency_code(currencyId)
5453
+ if codes is None or self.in_array(code, codes):
5454
+ result[code] = self.parse_deposit_withdraw_fee(item)
5455
+ return result
5456
+
5396
5457
  def parse_deposit_withdraw_fee(self, fee, currency: Currency = None):
5397
5458
  #
5398
5459
  # {
@@ -33,25 +33,23 @@ NO_PADDING = 5
33
33
  PAD_WITH_ZERO = 6
34
34
 
35
35
 
36
- def decimal_to_precision(n, rounding_mode=ROUND, numPrecisionDigits=None, counting_mode=DECIMAL_PLACES, padding_mode=NO_PADDING):
37
- assert numPrecisionDigits is not None, 'numPrecisionDigits should not be None'
36
+ def decimal_to_precision(n, rounding_mode=ROUND, precision=None, counting_mode=DECIMAL_PLACES, padding_mode=NO_PADDING):
37
+ assert precision is not None, 'precision should not be None'
38
38
 
39
- if isinstance(numPrecisionDigits, str):
40
- numPrecisionDigits = float(numPrecisionDigits)
41
- assert isinstance(numPrecisionDigits, float) or isinstance(numPrecisionDigits, decimal.Decimal) or isinstance(numPrecisionDigits, numbers.Integral), 'numPrecisionDigits has an invalid number'
39
+ if isinstance(precision, str):
40
+ precision = float(precision)
41
+ assert isinstance(precision, float) or isinstance(precision, decimal.Decimal) or isinstance(precision, numbers.Integral), 'precision has an invalid number'
42
42
 
43
43
  if counting_mode == TICK_SIZE:
44
- assert numPrecisionDigits > 0, 'negative or zero numPrecisionDigits can not be used with TICK_SIZE precisionMode'
44
+ assert precision > 0, 'negative or zero precision can not be used with TICK_SIZE precisionMode'
45
45
  else:
46
- assert isinstance(numPrecisionDigits, numbers.Integral)
46
+ assert isinstance(precision, numbers.Integral)
47
47
 
48
48
  assert rounding_mode in [TRUNCATE, ROUND]
49
49
  assert counting_mode in [DECIMAL_PLACES, SIGNIFICANT_DIGITS, TICK_SIZE]
50
50
  assert padding_mode in [NO_PADDING, PAD_WITH_ZERO]
51
51
  # end of checks
52
52
 
53
- precision = numPrecisionDigits # "precision" variable name was in signature, but to make function signature similar to php/js, I had to change the argument name to "numPrecisionDigits". however, the below codes use "precision" variable name, so we have to assign that name here (you can change the usage of 'precision' variable name below everywhere, but i've refrained to do that to avoid many changes)
54
-
55
53
  context = decimal.getcontext()
56
54
 
57
55
  if counting_mode != TICK_SIZE:
@@ -1,9 +1,3 @@
1
- # ----------------------------------------------------------------------------
2
-
3
- # PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
- # https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
- # EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
-
7
1
  error_hierarchy = {
8
2
  'BaseError': {
9
3
  'ExchangeError': {
@@ -23,6 +17,7 @@ error_hierarchy = {
23
17
  },
24
18
  'MarketClosed': {},
25
19
  'ManualInteractionNeeded': {},
20
+ 'RestrictedLocation': {},
26
21
  },
27
22
  'InsufficientFunds': {},
28
23
  'InvalidAddress': {
@@ -118,6 +113,10 @@ class ManualInteractionNeeded(OperationRejected):
118
113
  pass
119
114
 
120
115
 
116
+ class RestrictedLocation(OperationRejected):
117
+ pass
118
+
119
+
121
120
  class InsufficientFunds(ExchangeError):
122
121
  pass
123
122
 
@@ -238,6 +237,7 @@ __all__ = [
238
237
  'MarginModeAlreadySet',
239
238
  'MarketClosed',
240
239
  'ManualInteractionNeeded',
240
+ 'RestrictedLocation',
241
241
  'InsufficientFunds',
242
242
  'InvalidAddress',
243
243
  'AddressPending',
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.97'
7
+ __version__ = '4.4.99'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
coinex/ccxt/coinex.py CHANGED
@@ -86,7 +86,7 @@ class coinex(Exchange, ImplicitAPI):
86
86
  'fetchDepositAddressesByNetwork': False,
87
87
  'fetchDeposits': True,
88
88
  'fetchDepositWithdrawFee': True,
89
- 'fetchDepositWithdrawFees': False,
89
+ 'fetchDepositWithdrawFees': True,
90
90
  'fetchFundingHistory': True,
91
91
  'fetchFundingInterval': True,
92
92
  'fetchFundingIntervals': False,
@@ -739,6 +739,7 @@ class coinex(Exchange, ImplicitAPI):
739
739
  for j in range(0, len(chains)):
740
740
  chain = chains[j]
741
741
  networkId = self.safe_string(chain, 'chain')
742
+ networkCode = self.network_id_to_code(networkId, code)
742
743
  if networkId is None:
743
744
  continue
744
745
  precisionString = self.parse_precision(self.safe_string(chain, 'withdrawal_precision'))
@@ -749,7 +750,7 @@ class coinex(Exchange, ImplicitAPI):
749
750
  canWithdrawChain = self.safe_bool(chain, 'withdraw_enabled')
750
751
  network: dict = {
751
752
  'id': networkId,
752
- 'network': networkId,
753
+ 'network': networkCode,
753
754
  'name': None,
754
755
  'active': canDepositChain and canWithdrawChain,
755
756
  'deposit': canDepositChain,
@@ -772,7 +773,7 @@ class coinex(Exchange, ImplicitAPI):
772
773
  },
773
774
  'info': chain,
774
775
  }
775
- networks[networkId] = network
776
+ networks[networkCode] = network
776
777
  result[code] = self.safe_currency_structure({
777
778
  'id': currencyId,
778
779
  'code': code,
@@ -5392,6 +5393,66 @@ class coinex(Exchange, ImplicitAPI):
5392
5393
  data = self.safe_dict(response, 'data', {})
5393
5394
  return self.parse_deposit_withdraw_fee(data, currency)
5394
5395
 
5396
+ def fetch_deposit_withdraw_fees(self, codes: Strings = None, params={}):
5397
+ """
5398
+ fetch the fees for deposits and withdrawals
5399
+
5400
+ https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-all-deposit-withdrawal-config
5401
+
5402
+ @param codes
5403
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5404
+ :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>`
5405
+ """
5406
+ self.load_markets()
5407
+ response = self.v2PublicGetAssetsAllDepositWithdrawConfig(params)
5408
+ #
5409
+ # {
5410
+ # "code": 0,
5411
+ # "data": [
5412
+ # {
5413
+ # "asset": {
5414
+ # "ccy": "CET",
5415
+ # "deposit_enabled": True,
5416
+ # "withdraw_enabled": True,
5417
+ # "inter_transfer_enabled": True,
5418
+ # "is_st": False
5419
+ # },
5420
+ # "chains": [
5421
+ # {
5422
+ # "chain": "CSC",
5423
+ # "min_deposit_amount": "0.8",
5424
+ # "min_withdraw_amount": "8",
5425
+ # "deposit_enabled": True,
5426
+ # "withdraw_enabled": True,
5427
+ # "deposit_delay_minutes": 0,
5428
+ # "safe_confirmations": 10,
5429
+ # "irreversible_confirmations": 20,
5430
+ # "deflation_rate": "0",
5431
+ # "withdrawal_fee": "0.026",
5432
+ # "withdrawal_precision": 8,
5433
+ # "memo": "",
5434
+ # "is_memo_required_for_deposit": False,
5435
+ # "explorer_asset_url": ""
5436
+ # },
5437
+ # ]
5438
+ # }
5439
+ # ],
5440
+ # "message": "OK"
5441
+ # }
5442
+ #
5443
+ data = self.safe_list(response, 'data', [])
5444
+ result: dict = {}
5445
+ for i in range(0, len(data)):
5446
+ item = data[i]
5447
+ asset = self.safe_dict(item, 'asset', {})
5448
+ currencyId = self.safe_string(asset, 'ccy')
5449
+ if currencyId is None:
5450
+ continue
5451
+ code = self.safe_currency_code(currencyId)
5452
+ if codes is None or self.in_array(code, codes):
5453
+ result[code] = self.parse_deposit_withdraw_fee(item)
5454
+ return result
5455
+
5395
5456
  def parse_deposit_withdraw_fee(self, fee, currency: Currency = None):
5396
5457
  #
5397
5458
  # {
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
11
- __version__ = '4.4.97'
11
+ __version__ = '4.4.99'
12
12
 
13
13
  # ----------------------------------------------------------------------------
14
14
 
@@ -31,6 +31,7 @@ from ccxt.base.errors import NoChange # noqa: F4
31
31
  from ccxt.base.errors import MarginModeAlreadySet # noqa: F401
32
32
  from ccxt.base.errors import MarketClosed # noqa: F401
33
33
  from ccxt.base.errors import ManualInteractionNeeded # noqa: F401
34
+ from ccxt.base.errors import RestrictedLocation # noqa: F401
34
35
  from ccxt.base.errors import InsufficientFunds # noqa: F401
35
36
  from ccxt.base.errors import InvalidAddress # noqa: F401
36
37
  from ccxt.base.errors import AddressPending # noqa: F401
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coinex-api
3
- Version: 0.0.78
3
+ Version: 0.0.80
4
4
  Summary: coinex crypto exchange api client
5
5
  Project-URL: Homepage, https://github.com/ccxt/ccxt
6
6
  Project-URL: Issues, https://github.com/ccxt/ccxt
@@ -138,6 +138,7 @@ You can also construct custom requests to available "implicit" endpoints
138
138
  - `fetch_currencies(self, params={})`
139
139
  - `fetch_deposit_address(self, code: str, params={})`
140
140
  - `fetch_deposit_withdraw_fee(self, code: str, params={})`
141
+ - `fetch_deposit_withdraw_fees(self, codes: Strings = None, params={})`
141
142
  - `fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={})`
142
143
  - `fetch_financial_balance(self, params={})`
143
144
  - `fetch_funding_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
@@ -1,11 +1,11 @@
1
1
  coinex/__init__.py,sha256=d633U2PpNFHvpDWLb3lItS0ObcBN0E2XgS5QkOEejI8,246
2
- coinex/ccxt/__init__.py,sha256=b2Zc3qW6S9kMN4YTBRncNmVxirkq5Fgb0qkoTgLftic,6048
3
- coinex/ccxt/coinex.py,sha256=2IWog856J1MkEwbFWGUBAtiLVycQJEDzk2ddXhEh964,267633
2
+ coinex/ccxt/__init__.py,sha256=qsNHo9C6fMaWqmo1aONrZ_wgdMOoxaiH3ilyac-15kk,6131
3
+ coinex/ccxt/coinex.py,sha256=JPh1NkYOqkoiNoJmQbDbcVLUE9okJAvdxsrLq2fGECA,270300
4
4
  coinex/ccxt/abstract/coinex.py,sha256=4TRXtWgONqkm3eSL55Y5T7Q4QxJrnOTuhP0ugsKHAWo,34856
5
- coinex/ccxt/async_support/__init__.py,sha256=SqhJve-DVMXirEqQ84mjpAFVkOGLSWpAxQoOpZ4I42M,4781
6
- coinex/ccxt/async_support/coinex.py,sha256=rKjhOk0bRSh2r-RuEf-mneByxwJVl9qHvVILtAbJuZA,268921
5
+ coinex/ccxt/async_support/__init__.py,sha256=vNWZSDX2m_CF1Ygdw24uQPc3eteJUil4PELu1WhQnc4,4864
6
+ coinex/ccxt/async_support/coinex.py,sha256=6GS6F_8Kq3VyQprxucDswZgxAvPowTQ0Cg276jpO22U,271606
7
7
  coinex/ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
8
- coinex/ccxt/async_support/base/exchange.py,sha256=dfG2PcsOXmi6SGjx29G2VVyCDI9t4qVUIUkdwrGRdio,119769
8
+ coinex/ccxt/async_support/base/exchange.py,sha256=byGHDRDag0QkyLZKSuej4Ipj_i5e-BEVEtkwVPE2ESw,119769
9
9
  coinex/ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
10
10
  coinex/ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
11
11
  coinex/ccxt/async_support/base/ws/cache.py,sha256=xf2VOtfUwloxSlIQ39M1RGZHWQzyS9IGhB5NX6cDcAc,8370
@@ -15,12 +15,12 @@ coinex/ccxt/async_support/base/ws/future.py,sha256=hjdQ42zkfju5nar0GpTLJ4zXQBtgB
15
15
  coinex/ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6VxhEs8x-Kbj-NI,2894
16
16
  coinex/ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
17
17
  coinex/ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
18
- coinex/ccxt/base/decimal_to_precision.py,sha256=XQNziSPUz4UqhIvNx0aDx6-3wSSgZBTsMX57rM7WGPM,7330
19
- coinex/ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
20
- coinex/ccxt/base/exchange.py,sha256=xR8H49JVMf7AvDdfCAc8n-UPaVO_XU6FMsHmkEAi0ps,333932
18
+ coinex/ccxt/base/decimal_to_precision.py,sha256=3XI30u9YudHbTA438397u5rkdlXa3atxwZEfUus3C4k,6803
19
+ coinex/ccxt/base/errors.py,sha256=LdTTHPmxpeFHJze93mGl7I3maqTgN0y_1mJ6coWkXmA,4734
20
+ coinex/ccxt/base/exchange.py,sha256=gQLGpgb8TTdsXUl9_GqbubUcEtJrzCdsrXeJPZS-IoA,333932
21
21
  coinex/ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
22
22
  coinex/ccxt/base/types.py,sha256=vMQfFDVntED4YHrRJt0Q98YaM7OtGhK-DkbkqXFTYHc,11485
23
- coinex/ccxt/pro/__init__.py,sha256=_xQHWEnTgJzG6MojuAu_XeL2HBApYFOjF88s522H8u0,4095
23
+ coinex/ccxt/pro/__init__.py,sha256=IyS2AMRisLgaatMI-Qyw6El-_92i7s1G5B6hXYNFrNs,4178
24
24
  coinex/ccxt/pro/coinex.py,sha256=aQ6Xa4ML0PTCgGleDJuhjqntspAREz6XxQwX9IcD6OY,56616
25
25
  coinex/ccxt/static_dependencies/README.md,sha256=3TCvhhn09_Cqf9BDDpao1V7EfKHDpQ6k9oWRsLFixpU,18
26
26
  coinex/ccxt/static_dependencies/__init__.py,sha256=tzFje8cloqmiIE6kola3EaYC0SnD1izWnri69hzHsSw,168
@@ -281,6 +281,6 @@ coinex/ccxt/static_dependencies/toolz/curried/exceptions.py,sha256=gKFOHDIayAWnX
281
281
  coinex/ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4werSUmJEtSHNY9NSzhseNM9s,525
282
282
  coinex/ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
283
283
  coinex/ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
284
- coinex_api-0.0.78.dist-info/METADATA,sha256=tGfAXM0_jy8ffiGbmETX6tTLPewI6v5bt0L1Y6PRd5s,19969
285
- coinex_api-0.0.78.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
286
- coinex_api-0.0.78.dist-info/RECORD,,
284
+ coinex_api-0.0.80.dist-info/METADATA,sha256=vARq9jn5gUwGWaOQuxMPJ3jp-4Xo6LRDTfQhZq7FsuY,20041
285
+ coinex_api-0.0.80.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
286
+ coinex_api-0.0.80.dist-info/RECORD,,