kucoin-api 0.0.74__py3-none-any.whl → 0.0.76__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.
kucoin/ccxt/__init__.py CHANGED
@@ -26,7 +26,7 @@ sys.modules['ccxt'] = ccxt_module
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
29
- __version__ = '4.4.91'
29
+ __version__ = '4.4.93'
30
30
 
31
31
  # ----------------------------------------------------------------------------
32
32
 
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
11
- __version__ = '4.4.91'
11
+ __version__ = '4.4.93'
12
12
 
13
13
  # -----------------------------------------------------------------------------
14
14
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.91'
5
+ __version__ = '4.4.93'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1573,6 +1573,9 @@ class Exchange(BaseExchange):
1573
1573
  async def fetch_greeks(self, symbol: str, params={}):
1574
1574
  raise NotSupported(self.id + ' fetchGreeks() is not supported yet')
1575
1575
 
1576
+ async def fetch_all_greeks(self, symbols: Strings = None, params={}):
1577
+ raise NotSupported(self.id + ' fetchAllGreeks() is not supported yet')
1578
+
1576
1579
  async def fetch_option_chain(self, code: str, params={}):
1577
1580
  raise NotSupported(self.id + ' fetchOptionChain() is not supported yet')
1578
1581
 
@@ -134,9 +134,12 @@ class Client(object):
134
134
  error = NetworkError(str(exception))
135
135
  if self.verbose:
136
136
  self.log(iso8601(milliseconds()), 'receive_loop', 'Exception', error)
137
- self.reset(error)
137
+ self.reject(error)
138
138
 
139
139
  task.add_done_callback(after_interrupt)
140
+ else:
141
+ # connection got terminated after the connection was made and before the receive loop ran
142
+ self.on_close(1006)
140
143
 
141
144
  async def open(self, session, backoff_delay=0):
142
145
  # exponential backoff for consequent connections if necessary
@@ -1397,35 +1397,31 @@ class kucoin(Exchange, ImplicitAPI):
1397
1397
  # }
1398
1398
  #
1399
1399
  currenciesData = self.safe_list(response, 'data', [])
1400
+ brokenCurrencies = self.safe_list(self.options, 'brokenCurrencies', ['00', 'OPEN_ERROR', 'HUF', 'BDT'])
1401
+ otherFiats = self.safe_list(self.options, 'fiats', ['KWD', 'IRR', 'PKR'])
1400
1402
  result: dict = {}
1401
1403
  for i in range(0, len(currenciesData)):
1402
1404
  entry = currenciesData[i]
1403
1405
  id = self.safe_string(entry, 'currency')
1404
- name = self.safe_string(entry, 'fullName')
1406
+ if self.in_array(id, brokenCurrencies):
1407
+ continue # skip buggy entries: https://t.me/KuCoin_API/217798
1405
1408
  code = self.safe_currency_code(id)
1406
1409
  networks: dict = {}
1407
1410
  chains = self.safe_list(entry, 'chains', [])
1408
- rawPrecision = self.safe_string(entry, 'precision')
1409
- precision = self.parse_number(self.parse_precision(rawPrecision))
1410
1411
  chainsLength = len(chains)
1411
- if not chainsLength:
1412
- # one buggy coin, which doesn't contain info https://t.me/KuCoin_API/173118
1413
- continue
1414
1412
  for j in range(0, chainsLength):
1415
1413
  chain = chains[j]
1416
1414
  chainId = self.safe_string(chain, 'chainId')
1417
1415
  networkCode = self.network_id_to_code(chainId, code)
1418
- chainWithdrawEnabled = self.safe_bool(chain, 'isWithdrawEnabled', False)
1419
- chainDepositEnabled = self.safe_bool(chain, 'isDepositEnabled', False)
1420
1416
  networks[networkCode] = {
1421
1417
  'info': chain,
1422
1418
  'id': chainId,
1423
1419
  'name': self.safe_string(chain, 'chainName'),
1424
1420
  'code': networkCode,
1425
- 'active': chainWithdrawEnabled and chainDepositEnabled,
1421
+ 'active': None,
1426
1422
  'fee': self.safe_number(chain, 'withdrawalMinFee'),
1427
- 'deposit': chainDepositEnabled,
1428
- 'withdraw': chainWithdrawEnabled,
1423
+ 'deposit': self.safe_bool(chain, 'isDepositEnabled'),
1424
+ 'withdraw': self.safe_bool(chain, 'isWithdrawEnabled'),
1429
1425
  'precision': self.parse_number(self.parse_precision(self.safe_string(chain, 'withdrawPrecision'))),
1430
1426
  'limits': {
1431
1427
  'withdraw': {
@@ -1439,10 +1435,12 @@ class kucoin(Exchange, ImplicitAPI):
1439
1435
  },
1440
1436
  }
1441
1437
  # kucoin has determined 'fiat' currencies with below logic
1442
- isFiat = (rawPrecision == '2') and (chainsLength == 0)
1438
+ rawPrecision = self.safe_string(entry, 'precision')
1439
+ precision = self.parse_number(self.parse_precision(rawPrecision))
1440
+ isFiat = self.in_array(id, otherFiats) or ((rawPrecision == '2') and (chainsLength == 0))
1443
1441
  result[code] = self.safe_currency_structure({
1444
1442
  'id': id,
1445
- 'name': name,
1443
+ 'name': self.safe_string(entry, 'fullName'),
1446
1444
  'code': code,
1447
1445
  'type': 'fiat' if isFiat else 'crypto',
1448
1446
  'precision': precision,
@@ -2628,7 +2626,7 @@ class kucoin(Exchange, ImplicitAPI):
2628
2626
  """
2629
2627
  await self.load_markets()
2630
2628
  request: dict = {}
2631
- trigger = self.safe_bool(params, 'stop', False)
2629
+ trigger = self.safe_bool_2(params, 'trigger', 'stop', False)
2632
2630
  hf = None
2633
2631
  hf, params = self.handle_hf_and_params(params)
2634
2632
  params = self.omit(params, 'stop')
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.91'
7
+ __version__ = '4.4.93'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -1515,6 +1515,12 @@ class Exchange(object):
1515
1515
  parts = re.sub(r'0+$', '', str).split('.')
1516
1516
  return len(parts[1]) if len(parts) > 1 else 0
1517
1517
 
1518
+ def map_to_safe_map(self, dictionary):
1519
+ return dictionary # wrapper for go
1520
+
1521
+ def safe_map_to_map(self, dictionary):
1522
+ return dictionary # wrapper for go
1523
+
1518
1524
  def load_markets(self, reload=False, params={}):
1519
1525
  """
1520
1526
  Loads and prepares the markets for trading.
@@ -3222,14 +3228,14 @@ class Exchange(object):
3222
3228
  else:
3223
3229
  market['subType'] = None
3224
3230
  values.append(market)
3225
- self.markets = self.index_by(values, 'symbol')
3231
+ self.markets = self.map_to_safe_map(self.index_by(values, 'symbol'))
3226
3232
  marketsSortedBySymbol = self.keysort(self.markets)
3227
3233
  marketsSortedById = self.keysort(self.markets_by_id)
3228
3234
  self.symbols = list(marketsSortedBySymbol.keys())
3229
3235
  self.ids = list(marketsSortedById.keys())
3230
3236
  if currencies is not None:
3231
3237
  # currencies is always None when called in constructor but not when called from loadMarkets
3232
- self.currencies = self.deep_extend(self.currencies, currencies)
3238
+ self.currencies = self.map_to_safe_map(self.deep_extend(self.currencies, currencies))
3233
3239
  else:
3234
3240
  baseCurrencies = []
3235
3241
  quoteCurrencies = []
@@ -3255,8 +3261,8 @@ class Exchange(object):
3255
3261
  quoteCurrencies.append(currency)
3256
3262
  baseCurrencies = self.sort_by(baseCurrencies, 'code', False, '')
3257
3263
  quoteCurrencies = self.sort_by(quoteCurrencies, 'code', False, '')
3258
- self.baseCurrencies = self.index_by(baseCurrencies, 'code')
3259
- self.quoteCurrencies = self.index_by(quoteCurrencies, 'code')
3264
+ self.baseCurrencies = self.map_to_safe_map(self.index_by(baseCurrencies, 'code'))
3265
+ self.quoteCurrencies = self.map_to_safe_map(self.index_by(quoteCurrencies, 'code'))
3260
3266
  allCurrencies = self.array_concat(baseCurrencies, quoteCurrencies)
3261
3267
  groupedCurrencies = self.group_by(allCurrencies, 'code')
3262
3268
  codes = list(groupedCurrencies.keys())
@@ -3273,7 +3279,7 @@ class Exchange(object):
3273
3279
  highestPrecisionCurrency = currentCurrency if (currentCurrency['precision'] > highestPrecisionCurrency['precision']) else highestPrecisionCurrency
3274
3280
  resultingCurrencies.append(highestPrecisionCurrency)
3275
3281
  sortedCurrencies = self.sort_by(resultingCurrencies, 'code')
3276
- self.currencies = self.deep_extend(self.currencies, self.index_by(sortedCurrencies, 'code'))
3282
+ self.currencies = self.map_to_safe_map(self.deep_extend(self.currencies, self.index_by(sortedCurrencies, 'code')))
3277
3283
  self.currencies_by_id = self.index_by_safe(self.currencies, 'id')
3278
3284
  currenciesSortedByCode = self.keysort(self.currencies)
3279
3285
  self.codes = list(currenciesSortedByCode.keys())
@@ -4223,7 +4229,7 @@ class Exchange(object):
4223
4229
  return self.filter_by_since_limit(sorted, since, limit, 0, tail)
4224
4230
 
4225
4231
  def parse_leverage_tiers(self, response: Any, symbols: List[str] = None, marketIdKey=None):
4226
- # marketIdKey should only be None when response is a dictionary
4232
+ # marketIdKey should only be None when response is a dictionary.
4227
4233
  symbols = self.market_symbols(symbols)
4228
4234
  tiers = {}
4229
4235
  symbolsLength = 0
@@ -5444,6 +5450,9 @@ class Exchange(object):
5444
5450
  def fetch_greeks(self, symbol: str, params={}):
5445
5451
  raise NotSupported(self.id + ' fetchGreeks() is not supported yet')
5446
5452
 
5453
+ def fetch_all_greeks(self, symbols: Strings = None, params={}):
5454
+ raise NotSupported(self.id + ' fetchAllGreeks() is not supported yet')
5455
+
5447
5456
  def fetch_option_chain(self, code: str, params={}):
5448
5457
  raise NotSupported(self.id + ' fetchOptionChain() is not supported yet')
5449
5458
 
@@ -5697,10 +5706,16 @@ class Exchange(object):
5697
5706
  precisionNumber = int(precision)
5698
5707
  if precisionNumber == 0:
5699
5708
  return '1'
5700
- parsedPrecision = '0.'
5701
- for i in range(0, precisionNumber - 1):
5702
- parsedPrecision = parsedPrecision + '0'
5703
- return parsedPrecision + '1'
5709
+ if precisionNumber > 0:
5710
+ parsedPrecision = '0.'
5711
+ for i in range(0, precisionNumber - 1):
5712
+ parsedPrecision = parsedPrecision + '0'
5713
+ return parsedPrecision + '1'
5714
+ else:
5715
+ parsedPrecision = '1'
5716
+ for i in range(0, precisionNumber * -1 - 1):
5717
+ parsedPrecision = parsedPrecision + '0'
5718
+ return parsedPrecision + '0'
5704
5719
 
5705
5720
  def integer_precision_to_amount(self, precision: Str):
5706
5721
  """
@@ -6676,6 +6691,27 @@ class Exchange(object):
6676
6691
  def parse_greeks(self, greeks: dict, market: Market = None):
6677
6692
  raise NotSupported(self.id + ' parseGreeks() is not supported yet')
6678
6693
 
6694
+ def parse_all_greeks(self, greeks, symbols: Strings = None, params={}):
6695
+ #
6696
+ # the value of greeks is either a dict or a list
6697
+ #
6698
+ results = []
6699
+ if isinstance(greeks, list):
6700
+ for i in range(0, len(greeks)):
6701
+ parsedTicker = self.parse_greeks(greeks[i])
6702
+ greek = self.extend(parsedTicker, params)
6703
+ results.append(greek)
6704
+ else:
6705
+ marketIds = list(greeks.keys())
6706
+ for i in range(0, len(marketIds)):
6707
+ marketId = marketIds[i]
6708
+ market = self.safe_market(marketId)
6709
+ parsed = self.parse_greeks(greeks[marketId], market)
6710
+ greek = self.extend(parsed, params)
6711
+ results.append(greek)
6712
+ symbols = self.market_symbols(symbols)
6713
+ return self.filter_by_array(results, 'symbol', symbols)
6714
+
6679
6715
  def parse_option(self, chain: dict, currency: Currency = None, market: Market = None):
6680
6716
  raise NotSupported(self.id + ' parseOption() is not supported yet')
6681
6717
 
@@ -6792,7 +6828,7 @@ class Exchange(object):
6792
6828
  return reconstructedDate
6793
6829
 
6794
6830
  def convert_market_id_expire_date(self, date: str):
6795
- # parse 03JAN24 to 240103
6831
+ # parse 03JAN24 to 240103.
6796
6832
  monthMappping = {
6797
6833
  'JAN': '01',
6798
6834
  'FEB': '02',
@@ -6877,14 +6913,27 @@ class Exchange(object):
6877
6913
  """
6878
6914
  raise NotSupported(self.id + ' fetchTransfers() is not supported yet')
6879
6915
 
6880
- def clean_unsubscription(self, client, subHash: str, unsubHash: str):
6916
+ def clean_unsubscription(self, client, subHash: str, unsubHash: str, subHashIsPrefix=False):
6881
6917
  if unsubHash in client.subscriptions:
6882
6918
  del client.subscriptions[unsubHash]
6883
- if subHash in client.subscriptions:
6884
- del client.subscriptions[subHash]
6885
- if subHash in client.futures:
6886
- error = UnsubscribeError(self.id + ' ' + subHash)
6887
- client.reject(error, subHash)
6919
+ if not subHashIsPrefix:
6920
+ if subHash in client.subscriptions:
6921
+ del client.subscriptions[subHash]
6922
+ if subHash in client.futures:
6923
+ error = UnsubscribeError(self.id + ' ' + subHash)
6924
+ client.reject(error, subHash)
6925
+ else:
6926
+ clientSubscriptions = list(client.subscriptions.keys())
6927
+ for i in range(0, len(clientSubscriptions)):
6928
+ sub = clientSubscriptions[i]
6929
+ if sub.startswith(subHash):
6930
+ del client.subscriptions[sub]
6931
+ clientFutures = list(client.futures.keys())
6932
+ for i in range(0, len(clientFutures)):
6933
+ future = clientFutures[i]
6934
+ if future.startswith(subHash):
6935
+ error = UnsubscribeError(self.id + ' ' + future)
6936
+ client.reject(error, future)
6888
6937
  client.resolve(True, unsubHash)
6889
6938
 
6890
6939
  def clean_cache(self, subscription: dict):
@@ -6914,19 +6963,9 @@ class Exchange(object):
6914
6963
  del self.tickers[symbol]
6915
6964
  else:
6916
6965
  if topic == 'myTrades' and (self.myTrades is not None):
6917
- # don't reset self.myTrades directly here
6918
- # because in c# we need to use a different object(thread-safe dict)
6919
- keys = list(self.myTrades.keys())
6920
- for i in range(0, len(keys)):
6921
- key = keys[i]
6922
- if key in self.myTrades:
6923
- del self.myTrades[key]
6966
+ self.myTrades = None
6924
6967
  elif topic == 'orders' and (self.orders is not None):
6925
- orderSymbols = list(self.orders.keys())
6926
- for i in range(0, len(orderSymbols)):
6927
- orderSymbol = orderSymbols[i]
6928
- if orderSymbol in self.orders:
6929
- del self.orders[orderSymbol]
6968
+ self.orders = None
6930
6969
  elif topic == 'ticker' and (self.tickers is not None):
6931
6970
  tickerSymbols = list(self.tickers.keys())
6932
6971
  for i in range(0, len(tickerSymbols)):
kucoin/ccxt/base/types.py CHANGED
@@ -606,3 +606,4 @@ class ConstructorArgs(TypedDict, total=False):
606
606
  hostname: str
607
607
  urls: Dict[str, Any]
608
608
  headers: Dict[str, Any]
609
+ session: Any
kucoin/ccxt/kucoin.py CHANGED
@@ -1396,35 +1396,31 @@ class kucoin(Exchange, ImplicitAPI):
1396
1396
  # }
1397
1397
  #
1398
1398
  currenciesData = self.safe_list(response, 'data', [])
1399
+ brokenCurrencies = self.safe_list(self.options, 'brokenCurrencies', ['00', 'OPEN_ERROR', 'HUF', 'BDT'])
1400
+ otherFiats = self.safe_list(self.options, 'fiats', ['KWD', 'IRR', 'PKR'])
1399
1401
  result: dict = {}
1400
1402
  for i in range(0, len(currenciesData)):
1401
1403
  entry = currenciesData[i]
1402
1404
  id = self.safe_string(entry, 'currency')
1403
- name = self.safe_string(entry, 'fullName')
1405
+ if self.in_array(id, brokenCurrencies):
1406
+ continue # skip buggy entries: https://t.me/KuCoin_API/217798
1404
1407
  code = self.safe_currency_code(id)
1405
1408
  networks: dict = {}
1406
1409
  chains = self.safe_list(entry, 'chains', [])
1407
- rawPrecision = self.safe_string(entry, 'precision')
1408
- precision = self.parse_number(self.parse_precision(rawPrecision))
1409
1410
  chainsLength = len(chains)
1410
- if not chainsLength:
1411
- # one buggy coin, which doesn't contain info https://t.me/KuCoin_API/173118
1412
- continue
1413
1411
  for j in range(0, chainsLength):
1414
1412
  chain = chains[j]
1415
1413
  chainId = self.safe_string(chain, 'chainId')
1416
1414
  networkCode = self.network_id_to_code(chainId, code)
1417
- chainWithdrawEnabled = self.safe_bool(chain, 'isWithdrawEnabled', False)
1418
- chainDepositEnabled = self.safe_bool(chain, 'isDepositEnabled', False)
1419
1415
  networks[networkCode] = {
1420
1416
  'info': chain,
1421
1417
  'id': chainId,
1422
1418
  'name': self.safe_string(chain, 'chainName'),
1423
1419
  'code': networkCode,
1424
- 'active': chainWithdrawEnabled and chainDepositEnabled,
1420
+ 'active': None,
1425
1421
  'fee': self.safe_number(chain, 'withdrawalMinFee'),
1426
- 'deposit': chainDepositEnabled,
1427
- 'withdraw': chainWithdrawEnabled,
1422
+ 'deposit': self.safe_bool(chain, 'isDepositEnabled'),
1423
+ 'withdraw': self.safe_bool(chain, 'isWithdrawEnabled'),
1428
1424
  'precision': self.parse_number(self.parse_precision(self.safe_string(chain, 'withdrawPrecision'))),
1429
1425
  'limits': {
1430
1426
  'withdraw': {
@@ -1438,10 +1434,12 @@ class kucoin(Exchange, ImplicitAPI):
1438
1434
  },
1439
1435
  }
1440
1436
  # kucoin has determined 'fiat' currencies with below logic
1441
- isFiat = (rawPrecision == '2') and (chainsLength == 0)
1437
+ rawPrecision = self.safe_string(entry, 'precision')
1438
+ precision = self.parse_number(self.parse_precision(rawPrecision))
1439
+ isFiat = self.in_array(id, otherFiats) or ((rawPrecision == '2') and (chainsLength == 0))
1442
1440
  result[code] = self.safe_currency_structure({
1443
1441
  'id': id,
1444
- 'name': name,
1442
+ 'name': self.safe_string(entry, 'fullName'),
1445
1443
  'code': code,
1446
1444
  'type': 'fiat' if isFiat else 'crypto',
1447
1445
  'precision': precision,
@@ -2627,7 +2625,7 @@ class kucoin(Exchange, ImplicitAPI):
2627
2625
  """
2628
2626
  self.load_markets()
2629
2627
  request: dict = {}
2630
- trigger = self.safe_bool(params, 'stop', False)
2628
+ trigger = self.safe_bool_2(params, 'trigger', 'stop', False)
2631
2629
  hf = None
2632
2630
  hf, params = self.handle_hf_and_params(params)
2633
2631
  params = self.omit(params, 'stop')
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
11
- __version__ = '4.4.91'
11
+ __version__ = '4.4.93'
12
12
 
13
13
  # ----------------------------------------------------------------------------
14
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kucoin-api
3
- Version: 0.0.74
3
+ Version: 0.0.76
4
4
  Summary: kucoin crypto exchange api client
5
5
  Project-URL: Homepage, https://github.com/ccxt/ccxt
6
6
  Project-URL: Issues, https://github.com/ccxt/ccxt
@@ -1,15 +1,15 @@
1
1
  kucoin/__init__.py,sha256=J1NNMLktlkCZKV82j8CFTVES3O3TCVk3so0ROi4E52o,246
2
- kucoin/ccxt/__init__.py,sha256=b920LYZChyow6IrbJ_-ImAMivx4QoF_rjWIInJJamRM,6048
3
- kucoin/ccxt/kucoin.py,sha256=OycntB0gK0mI4ZfDDMmHip8n2S-AxgKX2jG9XjFeJ5A,232381
2
+ kucoin/ccxt/__init__.py,sha256=OhpR6lO7DmkrdpShW_5JwKgPg70kJ1m-wZ_CyABR6f0,6048
3
+ kucoin/ccxt/kucoin.py,sha256=K21dkk9MqfRi3PmJuyJ0J7FxwQYrppVtCG0EMEUj-WY,232408
4
4
  kucoin/ccxt/abstract/kucoin.py,sha256=kVrVEXiigc36arfbSS8lDUMnG7uFdKgUKHIhVb0Am_8,28626
5
- kucoin/ccxt/async_support/__init__.py,sha256=x4-cQWeMwMNv2KydIiFDreibmVjAOjRxwl15EkCzAnY,4781
6
- kucoin/ccxt/async_support/kucoin.py,sha256=kUz1hYpOU364piOa-psqtxTm11f6KlXS0HErk9_J-xk,233531
5
+ kucoin/ccxt/async_support/__init__.py,sha256=pe-hAUBYdzmG83VknkhbP4ogzGHiZopdjBQpGolTiPM,4781
6
+ kucoin/ccxt/async_support/kucoin.py,sha256=7yF38unXPmQ7YYd0qpgcUOw5rFwzexP9p1anSAhQlak,233558
7
7
  kucoin/ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
8
- kucoin/ccxt/async_support/base/exchange.py,sha256=RBB3v5Eqi6U0twVnaocSBCk0MD87meBQdYIz_mGCRUs,119286
8
+ kucoin/ccxt/async_support/base/exchange.py,sha256=WRCIHpPMqJ4UpcL4x534QQWA1Bo4RFS1xJitRjKFViw,119440
9
9
  kucoin/ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
10
10
  kucoin/ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
11
11
  kucoin/ccxt/async_support/base/ws/cache.py,sha256=xf2VOtfUwloxSlIQ39M1RGZHWQzyS9IGhB5NX6cDcAc,8370
12
- kucoin/ccxt/async_support/base/ws/client.py,sha256=3H6NnHk7GIC6wqJ49eshuvy5MnT3ma4cnAPSWKNy6S8,13475
12
+ kucoin/ccxt/async_support/base/ws/client.py,sha256=ekIN5HNgeQgMG3tLZMsE889Aoxs960DLwQnwkTGhdi8,13624
13
13
  kucoin/ccxt/async_support/base/ws/functions.py,sha256=qwvEnjtINWL5ZU-dbbeIunjyBxzFqbGWHfVhxqAcKug,1499
14
14
  kucoin/ccxt/async_support/base/ws/future.py,sha256=9yFyxqT7cl-7ZFM6LM4b6UPXyO2FGIbAhs5uoJ3-Smo,1271
15
15
  kucoin/ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6VxhEs8x-Kbj-NI,2894
@@ -17,10 +17,10 @@ kucoin/ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9pr
17
17
  kucoin/ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
18
18
  kucoin/ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
19
19
  kucoin/ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
20
- kucoin/ccxt/base/exchange.py,sha256=wjO_dKXa2T3CqHP7jZtL7grD_tifCcNn_wew8PNCotc,328697
20
+ kucoin/ccxt/base/exchange.py,sha256=64LNTmAxXu8gUG6n4pwCNjTmVZmV0otj7ceWXRB3G6o,330373
21
21
  kucoin/ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
22
- kucoin/ccxt/base/types.py,sha256=IbLO7Ni-plO36xlOdJQFqujSJBq0q9qll009ShZ0M_U,11468
23
- kucoin/ccxt/pro/__init__.py,sha256=irN4ahXgQyjsCYIUTEaIOI6HwR6hGh0wVzkpp7ugVLE,4095
22
+ kucoin/ccxt/base/types.py,sha256=vMQfFDVntED4YHrRJt0Q98YaM7OtGhK-DkbkqXFTYHc,11485
23
+ kucoin/ccxt/pro/__init__.py,sha256=N8LQHT7CLXa4Lybh3AwcCrGnyDOhSLTv2g7DaA1xLGA,4095
24
24
  kucoin/ccxt/pro/kucoin.py,sha256=598XsFeIFOOAOlY2fuEenBT-pPFjoOKiqPP8lP7dzD4,60794
25
25
  kucoin/ccxt/static_dependencies/README.md,sha256=3TCvhhn09_Cqf9BDDpao1V7EfKHDpQ6k9oWRsLFixpU,18
26
26
  kucoin/ccxt/static_dependencies/__init__.py,sha256=tzFje8cloqmiIE6kola3EaYC0SnD1izWnri69hzHsSw,168
@@ -281,6 +281,6 @@ kucoin/ccxt/static_dependencies/toolz/curried/exceptions.py,sha256=gKFOHDIayAWnX
281
281
  kucoin/ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4werSUmJEtSHNY9NSzhseNM9s,525
282
282
  kucoin/ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
283
283
  kucoin/ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
284
- kucoin_api-0.0.74.dist-info/METADATA,sha256=-5WVJWV6bbPCapcfi2un5b6dlbmw1sXbclzdYc_69P0,18571
285
- kucoin_api-0.0.74.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
286
- kucoin_api-0.0.74.dist-info/RECORD,,
284
+ kucoin_api-0.0.76.dist-info/METADATA,sha256=vKqt574zFpZnAK1BaCaY2G7AcQ0hLwyHErMs2jVryeM,18571
285
+ kucoin_api-0.0.76.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
286
+ kucoin_api-0.0.76.dist-info/RECORD,,