ccxt 4.3.17__py2.py3-none-any.whl → 4.3.19__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 (195) hide show
  1. ccxt/__init__.py +3 -1
  2. ccxt/abstract/bybit.py +1 -0
  3. ccxt/abstract/okx.py +1 -0
  4. ccxt/abstract/woofipro.py +119 -0
  5. ccxt/ace.py +1 -1
  6. ccxt/ascendex.py +7 -8
  7. ccxt/async_support/__init__.py +3 -1
  8. ccxt/async_support/ace.py +1 -1
  9. ccxt/async_support/ascendex.py +7 -8
  10. ccxt/async_support/base/exchange.py +23 -2
  11. ccxt/async_support/bigone.py +4 -4
  12. ccxt/async_support/binance.py +34 -17
  13. ccxt/async_support/bingx.py +4 -4
  14. ccxt/async_support/bit2c.py +1 -1
  15. ccxt/async_support/bitbank.py +1 -1
  16. ccxt/async_support/bitbns.py +1 -1
  17. ccxt/async_support/bitfinex.py +28 -4
  18. ccxt/async_support/bitfinex2.py +62 -54
  19. ccxt/async_support/bitflyer.py +1 -1
  20. ccxt/async_support/bitget.py +8 -11
  21. ccxt/async_support/bithumb.py +1 -1
  22. ccxt/async_support/bitmart.py +8 -8
  23. ccxt/async_support/bitmex.py +2 -2
  24. ccxt/async_support/bitopro.py +1 -1
  25. ccxt/async_support/bitrue.py +3 -3
  26. ccxt/async_support/bitso.py +1 -1
  27. ccxt/async_support/bitstamp.py +3 -5
  28. ccxt/async_support/bitteam.py +1 -1
  29. ccxt/async_support/bitvavo.py +1 -1
  30. ccxt/async_support/bl3p.py +1 -1
  31. ccxt/async_support/blockchaincom.py +1 -1
  32. ccxt/async_support/blofin.py +3 -3
  33. ccxt/async_support/btcalpha.py +1 -1
  34. ccxt/async_support/btcbox.py +1 -1
  35. ccxt/async_support/btcmarkets.py +1 -1
  36. ccxt/async_support/btcturk.py +1 -1
  37. ccxt/async_support/bybit.py +9 -8
  38. ccxt/async_support/cex.py +1 -1
  39. ccxt/async_support/coinbase.py +2 -2
  40. ccxt/async_support/coinbasepro.py +1 -1
  41. ccxt/async_support/coincheck.py +1 -1
  42. ccxt/async_support/coinex.py +320 -520
  43. ccxt/async_support/coinlist.py +6 -7
  44. ccxt/async_support/coinmate.py +1 -1
  45. ccxt/async_support/coinmetro.py +1 -1
  46. ccxt/async_support/coinone.py +1 -1
  47. ccxt/async_support/coinsph.py +1 -1
  48. ccxt/async_support/coinspot.py +1 -1
  49. ccxt/async_support/cryptocom.py +1 -1
  50. ccxt/async_support/currencycom.py +2 -2
  51. ccxt/async_support/delta.py +4 -4
  52. ccxt/async_support/deribit.py +8 -8
  53. ccxt/async_support/digifinex.py +5 -5
  54. ccxt/async_support/exmo.py +1 -1
  55. ccxt/async_support/gate.py +5 -5
  56. ccxt/async_support/gemini.py +1 -1
  57. ccxt/async_support/hitbtc.py +3 -3
  58. ccxt/async_support/hollaex.py +4 -4
  59. ccxt/async_support/htx.py +4 -4
  60. ccxt/async_support/huobijp.py +1 -1
  61. ccxt/async_support/idex.py +1 -1
  62. ccxt/async_support/independentreserve.py +1 -1
  63. ccxt/async_support/indodax.py +2 -2
  64. ccxt/async_support/kraken.py +2 -2
  65. ccxt/async_support/krakenfutures.py +3 -3
  66. ccxt/async_support/kucoin.py +3 -3
  67. ccxt/async_support/kucoinfutures.py +3 -3
  68. ccxt/async_support/kuna.py +1 -1
  69. ccxt/async_support/latoken.py +6 -6
  70. ccxt/async_support/lbank.py +1 -1
  71. ccxt/async_support/luno.py +1 -1
  72. ccxt/async_support/lykke.py +1 -1
  73. ccxt/async_support/mercado.py +1 -1
  74. ccxt/async_support/mexc.py +7 -7
  75. ccxt/async_support/ndax.py +1 -1
  76. ccxt/async_support/novadax.py +3 -4
  77. ccxt/async_support/okcoin.py +3 -3
  78. ccxt/async_support/okx.py +27 -10
  79. ccxt/async_support/onetrading.py +1 -1
  80. ccxt/async_support/paymium.py +3 -3
  81. ccxt/async_support/phemex.py +5 -5
  82. ccxt/async_support/poloniex.py +3 -4
  83. ccxt/async_support/poloniexfutures.py +1 -1
  84. ccxt/async_support/probit.py +1 -1
  85. ccxt/async_support/timex.py +1 -1
  86. ccxt/async_support/tokocrypto.py +1 -1
  87. ccxt/async_support/upbit.py +1 -1
  88. ccxt/async_support/wavesexchange.py +3 -3
  89. ccxt/async_support/wazirx.py +1 -1
  90. ccxt/async_support/whitebit.py +2 -2
  91. ccxt/async_support/woo.py +25 -10
  92. ccxt/async_support/woofipro.py +2524 -0
  93. ccxt/async_support/yobit.py +1 -1
  94. ccxt/async_support/zaif.py +1 -1
  95. ccxt/async_support/zonda.py +3 -3
  96. ccxt/base/exchange.py +63 -17
  97. ccxt/base/types.py +20 -0
  98. ccxt/bigone.py +4 -4
  99. ccxt/binance.py +34 -17
  100. ccxt/bingx.py +4 -4
  101. ccxt/bit2c.py +1 -1
  102. ccxt/bitbank.py +1 -1
  103. ccxt/bitbns.py +1 -1
  104. ccxt/bitfinex.py +28 -4
  105. ccxt/bitfinex2.py +62 -54
  106. ccxt/bitflyer.py +1 -1
  107. ccxt/bitget.py +8 -11
  108. ccxt/bithumb.py +1 -1
  109. ccxt/bitmart.py +8 -8
  110. ccxt/bitmex.py +2 -2
  111. ccxt/bitopro.py +1 -1
  112. ccxt/bitrue.py +3 -3
  113. ccxt/bitso.py +1 -1
  114. ccxt/bitstamp.py +3 -5
  115. ccxt/bitteam.py +1 -1
  116. ccxt/bitvavo.py +1 -1
  117. ccxt/bl3p.py +1 -1
  118. ccxt/blockchaincom.py +1 -1
  119. ccxt/blofin.py +3 -3
  120. ccxt/btcalpha.py +1 -1
  121. ccxt/btcbox.py +1 -1
  122. ccxt/btcmarkets.py +1 -1
  123. ccxt/btcturk.py +1 -1
  124. ccxt/bybit.py +9 -8
  125. ccxt/cex.py +1 -1
  126. ccxt/coinbase.py +2 -2
  127. ccxt/coinbasepro.py +1 -1
  128. ccxt/coincheck.py +1 -1
  129. ccxt/coinex.py +320 -520
  130. ccxt/coinlist.py +6 -7
  131. ccxt/coinmate.py +1 -1
  132. ccxt/coinmetro.py +1 -1
  133. ccxt/coinone.py +1 -1
  134. ccxt/coinsph.py +1 -1
  135. ccxt/coinspot.py +1 -1
  136. ccxt/cryptocom.py +1 -1
  137. ccxt/currencycom.py +2 -2
  138. ccxt/delta.py +4 -4
  139. ccxt/deribit.py +8 -8
  140. ccxt/digifinex.py +5 -5
  141. ccxt/exmo.py +1 -1
  142. ccxt/gate.py +5 -5
  143. ccxt/gemini.py +1 -1
  144. ccxt/hitbtc.py +3 -3
  145. ccxt/hollaex.py +4 -4
  146. ccxt/htx.py +4 -4
  147. ccxt/huobijp.py +1 -1
  148. ccxt/idex.py +1 -1
  149. ccxt/independentreserve.py +1 -1
  150. ccxt/indodax.py +2 -2
  151. ccxt/kraken.py +2 -2
  152. ccxt/krakenfutures.py +3 -3
  153. ccxt/kucoin.py +3 -3
  154. ccxt/kucoinfutures.py +3 -3
  155. ccxt/kuna.py +1 -1
  156. ccxt/latoken.py +6 -6
  157. ccxt/lbank.py +1 -1
  158. ccxt/luno.py +1 -1
  159. ccxt/lykke.py +1 -1
  160. ccxt/mercado.py +1 -1
  161. ccxt/mexc.py +7 -7
  162. ccxt/ndax.py +1 -1
  163. ccxt/novadax.py +3 -4
  164. ccxt/okcoin.py +3 -3
  165. ccxt/okx.py +27 -10
  166. ccxt/onetrading.py +1 -1
  167. ccxt/paymium.py +3 -3
  168. ccxt/phemex.py +5 -5
  169. ccxt/poloniex.py +3 -4
  170. ccxt/poloniexfutures.py +1 -1
  171. ccxt/pro/__init__.py +3 -1
  172. ccxt/pro/bitget.py +127 -190
  173. ccxt/pro/bitvavo.py +1 -1
  174. ccxt/pro/bybit.py +4 -3
  175. ccxt/pro/coinbaseinternational.py +11 -4
  176. ccxt/pro/okx.py +79 -1
  177. ccxt/pro/woofipro.py +1183 -0
  178. ccxt/probit.py +1 -1
  179. ccxt/test/test_async.py +31 -1
  180. ccxt/test/test_sync.py +31 -1
  181. ccxt/timex.py +1 -1
  182. ccxt/tokocrypto.py +1 -1
  183. ccxt/upbit.py +1 -1
  184. ccxt/wavesexchange.py +3 -3
  185. ccxt/wazirx.py +1 -1
  186. ccxt/whitebit.py +2 -2
  187. ccxt/woo.py +25 -10
  188. ccxt/woofipro.py +2524 -0
  189. ccxt/yobit.py +1 -1
  190. ccxt/zaif.py +1 -1
  191. ccxt/zonda.py +3 -3
  192. {ccxt-4.3.17.dist-info → ccxt-4.3.19.dist-info}/METADATA +8 -6
  193. {ccxt-4.3.17.dist-info → ccxt-4.3.19.dist-info}/RECORD +195 -191
  194. {ccxt-4.3.17.dist-info → ccxt-4.3.19.dist-info}/WHEEL +0 -0
  195. {ccxt-4.3.17.dist-info → ccxt-4.3.19.dist-info}/top_level.txt +0 -0
ccxt/coinlist.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.coinlist import ImplicitAPI
8
8
  import hashlib
9
9
  import math
10
- from ccxt.base.types import Account, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
10
+ from ccxt.base.types import Account, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry, TransferEntries
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -567,7 +567,7 @@ class coinlist(Exchange, ImplicitAPI):
567
567
  #
568
568
  return self.parse_ticker(ticker, market)
569
569
 
570
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
570
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
571
571
  #
572
572
  # {
573
573
  # "type":"spot",
@@ -1652,10 +1652,9 @@ class coinlist(Exchange, ImplicitAPI):
1652
1652
  """
1653
1653
  self.load_markets()
1654
1654
  currency = self.currency(code)
1655
- amount = self.currency_to_precision(code, amount)
1656
1655
  request = {
1657
1656
  'asset': currency['id'],
1658
- 'amount': amount,
1657
+ 'amount': self.currency_to_precision(code, amount),
1659
1658
  }
1660
1659
  accountsByType = self.safe_value(self.options, 'accountsByType', {})
1661
1660
  fromAcc = self.safe_string(accountsByType, fromAccount, fromAccount)
@@ -1686,7 +1685,7 @@ class coinlist(Exchange, ImplicitAPI):
1686
1685
  transfer = self.parse_transfer(response, currency)
1687
1686
  return transfer
1688
1687
 
1689
- def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
1688
+ def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
1690
1689
  """
1691
1690
  fetch a history of internal transfers between CoinList.co and CoinList Pro. It does not return external deposits or withdrawals
1692
1691
  :see: https://trade-docs.coinlist.co/?javascript--nodejs#list-transfers
@@ -1736,7 +1735,7 @@ class coinlist(Exchange, ImplicitAPI):
1736
1735
  transfers = self.safe_list(response, 'transfers', [])
1737
1736
  return self.parse_transfers(transfers, currency, since, limit)
1738
1737
 
1739
- def parse_transfer(self, transfer, currency: Currency = None):
1738
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
1740
1739
  #
1741
1740
  # fetchTransfers
1742
1741
  # {
@@ -1791,7 +1790,7 @@ class coinlist(Exchange, ImplicitAPI):
1791
1790
  'status': self.parse_transfer_status(status),
1792
1791
  }
1793
1792
 
1794
- def parse_transfer_status(self, status):
1793
+ def parse_transfer_status(self, status: Str) -> Str:
1795
1794
  statuses = {
1796
1795
  'confirmed': 'ok',
1797
1796
  }
ccxt/coinmate.py CHANGED
@@ -440,7 +440,7 @@ class coinmate(Exchange, ImplicitAPI):
440
440
  result[market['symbol']] = ticker
441
441
  return self.filter_by_array_tickers(result, 'symbol', symbols)
442
442
 
443
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
443
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
444
444
  #
445
445
  # {
446
446
  # "last": "0.001337",
ccxt/coinmetro.py CHANGED
@@ -856,7 +856,7 @@ class coinmetro(Exchange, ImplicitAPI):
856
856
  latestPrices = self.safe_list(response, 'latestPrices', [])
857
857
  return self.parse_tickers(latestPrices, symbols)
858
858
 
859
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
859
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
860
860
  #
861
861
  # {
862
862
  # "pair": "PERPUSD",
ccxt/coinone.py CHANGED
@@ -561,7 +561,7 @@ class coinone(Exchange, ImplicitAPI):
561
561
  ticker = self.safe_dict(data, 0, {})
562
562
  return self.parse_ticker(ticker, market)
563
563
 
564
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
564
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
565
565
  #
566
566
  # {
567
567
  # "quote_currency": "krw",
ccxt/coinsph.py CHANGED
@@ -674,7 +674,7 @@ class coinsph(Exchange, ImplicitAPI):
674
674
  ticker = self.publicGetOpenapiQuoteV1Ticker24hr(self.extend(request, params))
675
675
  return self.parse_ticker(ticker, market)
676
676
 
677
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
677
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
678
678
  #
679
679
  # publicGetOpenapiQuoteV1Ticker24hr
680
680
  # {
ccxt/coinspot.py CHANGED
@@ -216,7 +216,7 @@ class coinspot(Exchange, ImplicitAPI):
216
216
  orderbook = self.privatePostOrders(self.extend(request, params))
217
217
  return self.parse_order_book(orderbook, market['symbol'], None, 'buyorders', 'sellorders', 'rate', 'amount')
218
218
 
219
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
219
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
220
220
  #
221
221
  # {
222
222
  # "btc":{
ccxt/cryptocom.py CHANGED
@@ -1759,7 +1759,7 @@ class cryptocom(Exchange, ImplicitAPI):
1759
1759
  withdrawalList = self.safe_list(data, 'withdrawal_list', [])
1760
1760
  return self.parse_transactions(withdrawalList, currency, since, limit)
1761
1761
 
1762
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
1762
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1763
1763
  #
1764
1764
  # fetchTicker
1765
1765
  #
ccxt/currencycom.py CHANGED
@@ -780,7 +780,7 @@ class currencycom(Exchange, ImplicitAPI):
780
780
  orderbook['nonce'] = self.safe_integer(response, 'lastUpdateId')
781
781
  return orderbook
782
782
 
783
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
783
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
784
784
  #
785
785
  # fetchTicker
786
786
  #
@@ -1737,7 +1737,7 @@ class currencycom(Exchange, ImplicitAPI):
1737
1737
  #
1738
1738
  return self.parse_leverage(response, market)
1739
1739
 
1740
- def parse_leverage(self, leverage, market=None) -> Leverage:
1740
+ def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
1741
1741
  leverageValue = self.safe_integer(leverage, 'value')
1742
1742
  return {
1743
1743
  'info': leverage,
ccxt/delta.py CHANGED
@@ -805,7 +805,7 @@ class delta(Exchange, ImplicitAPI):
805
805
  })
806
806
  return result
807
807
 
808
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
808
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
809
809
  #
810
810
  # spot: fetchTicker, fetchTickers
811
811
  #
@@ -2739,7 +2739,7 @@ class delta(Exchange, ImplicitAPI):
2739
2739
  result = self.safe_dict(response, 'result', {})
2740
2740
  return self.parse_leverage(result, market)
2741
2741
 
2742
- def parse_leverage(self, leverage, market=None) -> Leverage:
2742
+ def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
2743
2743
  marketId = self.safe_string(leverage, 'index_symbol')
2744
2744
  leverageValue = self.safe_integer(leverage, 'leverage')
2745
2745
  return {
@@ -3002,7 +3002,7 @@ class delta(Exchange, ImplicitAPI):
3002
3002
  result = self.safe_dict(response, 'result', {})
3003
3003
  return self.parse_greeks(result, market)
3004
3004
 
3005
- def parse_greeks(self, greeks, market: Market = None):
3005
+ def parse_greeks(self, greeks: dict, market: Market = None) -> Greeks:
3006
3006
  #
3007
3007
  # {
3008
3008
  # "close": 6793.0,
@@ -3258,7 +3258,7 @@ class delta(Exchange, ImplicitAPI):
3258
3258
  result = self.safe_dict(response, 'result', {})
3259
3259
  return self.parse_option(result, None, market)
3260
3260
 
3261
- def parse_option(self, chain, currency: Currency = None, market: Market = None):
3261
+ def parse_option(self, chain: dict, currency: Currency = None, market: Market = None) -> Option:
3262
3262
  #
3263
3263
  # {
3264
3264
  # "close": 6793.0,
ccxt/deribit.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.deribit import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Currencies, Currency, Greeks, Int, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Balances, Currencies, Currency, Greeks, Int, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry, TransferEntries
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -1061,7 +1061,7 @@ class deribit(Exchange, ImplicitAPI):
1061
1061
  'info': response,
1062
1062
  }
1063
1063
 
1064
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
1064
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1065
1065
  #
1066
1066
  # fetchTicker /public/ticker
1067
1067
  #
@@ -2604,7 +2604,7 @@ class deribit(Exchange, ImplicitAPI):
2604
2604
  })
2605
2605
  return result
2606
2606
 
2607
- def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
2607
+ def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
2608
2608
  """
2609
2609
  fetch a history of internal transfers made on an account
2610
2610
  :see: https://docs.deribit.com/#private-get_transfers
@@ -2710,7 +2710,7 @@ class deribit(Exchange, ImplicitAPI):
2710
2710
  result = self.safe_dict(response, 'result', {})
2711
2711
  return self.parse_transfer(result, currency)
2712
2712
 
2713
- def parse_transfer(self, transfer, currency: Currency = None):
2713
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
2714
2714
  #
2715
2715
  # {
2716
2716
  # "updated_timestamp": 1550232862350,
@@ -2734,14 +2734,14 @@ class deribit(Exchange, ImplicitAPI):
2734
2734
  'id': self.safe_string(transfer, 'id'),
2735
2735
  'status': self.parse_transfer_status(status),
2736
2736
  'amount': self.safe_number(transfer, 'amount'),
2737
- 'code': self.safe_currency_code(currencyId, currency),
2737
+ 'currency': self.safe_currency_code(currencyId, currency),
2738
2738
  'fromAccount': direction != account if 'payment' else None,
2739
2739
  'toAccount': direction == account if 'payment' else None,
2740
2740
  'timestamp': timestamp,
2741
2741
  'datetime': self.iso8601(timestamp),
2742
2742
  }
2743
2743
 
2744
- def parse_transfer_status(self, status):
2744
+ def parse_transfer_status(self, status: Str) -> Str:
2745
2745
  statuses = {
2746
2746
  'prepared': 'pending',
2747
2747
  'confirmed': 'ok',
@@ -3172,7 +3172,7 @@ class deribit(Exchange, ImplicitAPI):
3172
3172
  result = self.safe_value(response, 'result', {})
3173
3173
  return self.parse_greeks(result, market)
3174
3174
 
3175
- def parse_greeks(self, greeks, market: Market = None):
3175
+ def parse_greeks(self, greeks: dict, market: Market = None) -> Greeks:
3176
3176
  #
3177
3177
  # {
3178
3178
  # "estimated_delivery_price": 36552.72,
@@ -3338,7 +3338,7 @@ class deribit(Exchange, ImplicitAPI):
3338
3338
  result = self.safe_list(response, 'result', [])
3339
3339
  return self.parse_option_chain(result, 'base_currency', 'instrument_name')
3340
3340
 
3341
- def parse_option(self, chain, currency: Currency = None, market: Market = None):
3341
+ def parse_option(self, chain: dict, currency: Currency = None, market: Market = None) -> Option:
3342
3342
  #
3343
3343
  # {
3344
3344
  # "mid_price": 0.04025,
ccxt/digifinex.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.digifinex import ImplicitAPI
8
8
  import hashlib
9
9
  import json
10
- from ccxt.base.types import Balances, CrossBorrowRate, CrossBorrowRates, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
10
+ from ccxt.base.types import Balances, CrossBorrowRate, CrossBorrowRates, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry, TransferEntries
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -1094,7 +1094,7 @@ class digifinex(Exchange, ImplicitAPI):
1094
1094
  result = self.extend({'date': date}, firstTicker)
1095
1095
  return self.parse_ticker(result, market)
1096
1096
 
1097
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
1097
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1098
1098
  #
1099
1099
  # spot: fetchTicker, fetchTickers
1100
1100
  #
@@ -2679,13 +2679,13 @@ class digifinex(Exchange, ImplicitAPI):
2679
2679
  'fee': fee,
2680
2680
  }
2681
2681
 
2682
- def parse_transfer_status(self, status):
2682
+ def parse_transfer_status(self, status: Str) -> Str:
2683
2683
  statuses = {
2684
2684
  '0': 'ok',
2685
2685
  }
2686
2686
  return self.safe_string(statuses, status, status)
2687
2687
 
2688
- def parse_transfer(self, transfer, currency: Currency = None):
2688
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
2689
2689
  #
2690
2690
  # transfer
2691
2691
  #
@@ -3438,7 +3438,7 @@ class digifinex(Exchange, ImplicitAPI):
3438
3438
  # }
3439
3439
  #
3440
3440
 
3441
- def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
3441
+ def fetch_transfers(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> TransferEntries:
3442
3442
  """
3443
3443
  fetch the transfer history, only transfers between spot and swap accounts are supported
3444
3444
  :see: https://docs.digifinex.com/en-ww/swap/v2/rest.html#transferrecord
ccxt/exmo.py CHANGED
@@ -1010,7 +1010,7 @@ class exmo(Exchange, ImplicitAPI):
1010
1010
  result[symbol] = self.parse_order_book(response[marketId], symbol, None, 'bid', 'ask')
1011
1011
  return result
1012
1012
 
1013
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
1013
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1014
1014
  #
1015
1015
  # {
1016
1016
  # "buy_price":"0.00002996",
ccxt/gate.py CHANGED
@@ -2382,7 +2382,7 @@ class gate(Exchange, ImplicitAPI):
2382
2382
  ticker = self.safe_value(response, 0)
2383
2383
  return self.parse_ticker(ticker, market)
2384
2384
 
2385
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
2385
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
2386
2386
  #
2387
2387
  # SPOT
2388
2388
  #
@@ -4802,7 +4802,7 @@ class gate(Exchange, ImplicitAPI):
4802
4802
  #
4803
4803
  return self.parse_transfer(response, currency)
4804
4804
 
4805
- def parse_transfer(self, transfer, currency: Currency = None):
4805
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
4806
4806
  #
4807
4807
  # {
4808
4808
  # "currency": "BTC",
@@ -6489,7 +6489,7 @@ class gate(Exchange, ImplicitAPI):
6489
6489
  return self.parse_greeks(entry, market)
6490
6490
  return None
6491
6491
 
6492
- def parse_greeks(self, greeks, market: Market = None):
6492
+ def parse_greeks(self, greeks: dict, market: Market = None) -> Greeks:
6493
6493
  #
6494
6494
  # {
6495
6495
  # "vega": "1.78992",
@@ -6702,7 +6702,7 @@ class gate(Exchange, ImplicitAPI):
6702
6702
  #
6703
6703
  return self.parse_leverages(response, symbols, marketIdRequest, 'spot')
6704
6704
 
6705
- def parse_leverage(self, leverage, market=None) -> Leverage:
6705
+ def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
6706
6706
  marketId = self.safe_string_2(leverage, 'currency_pair', 'id')
6707
6707
  leverageValue = self.safe_integer(leverage, 'leverage')
6708
6708
  return {
@@ -6829,7 +6829,7 @@ class gate(Exchange, ImplicitAPI):
6829
6829
  #
6830
6830
  return self.parse_option_chain(response, None, 'name')
6831
6831
 
6832
- def parse_option(self, chain, currency: Currency = None, market: Market = None):
6832
+ def parse_option(self, chain: dict, currency: Currency = None, market: Market = None) -> Option:
6833
6833
  #
6834
6834
  # {
6835
6835
  # "is_active": True,
ccxt/gemini.py CHANGED
@@ -841,7 +841,7 @@ class gemini(Exchange, ImplicitAPI):
841
841
  return self.fetch_ticker_v2(symbol, params)
842
842
  return self.fetch_ticker_v1_and_v2(symbol, params)
843
843
 
844
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
844
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
845
845
  #
846
846
  # fetchTickers
847
847
  #
ccxt/hitbtc.py CHANGED
@@ -1104,7 +1104,7 @@ class hitbtc(Exchange, ImplicitAPI):
1104
1104
  result[symbol] = self.parse_ticker(entry, market)
1105
1105
  return self.filter_by_array_tickers(result, 'symbol', symbols)
1106
1106
 
1107
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
1107
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1108
1108
  #
1109
1109
  # {
1110
1110
  # "ask": "62756.01",
@@ -2448,7 +2448,7 @@ class hitbtc(Exchange, ImplicitAPI):
2448
2448
  #
2449
2449
  return self.parse_transfer(response, currency)
2450
2450
 
2451
- def parse_transfer(self, transfer, currency: Currency = None):
2451
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
2452
2452
  #
2453
2453
  # transfer
2454
2454
  #
@@ -3187,7 +3187,7 @@ class hitbtc(Exchange, ImplicitAPI):
3187
3187
  #
3188
3188
  return self.parse_leverage(response, market)
3189
3189
 
3190
- def parse_leverage(self, leverage, market=None) -> Leverage:
3190
+ def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
3191
3191
  marketId = self.safe_string(leverage, 'symbol')
3192
3192
  leverageValue = self.safe_integer(leverage, 'leverage')
3193
3193
  return {
ccxt/hollaex.py CHANGED
@@ -527,19 +527,19 @@ class hollaex(Exchange, ImplicitAPI):
527
527
  #
528
528
  return self.parse_tickers(response, symbols)
529
529
 
530
- def parse_tickers(self, response, symbols: Strings = None, params={}):
530
+ def parse_tickers(self, tickers, symbols: Strings = None, params={}) -> Tickers:
531
531
  result = {}
532
- keys = list(response.keys())
532
+ keys = list(tickers.keys())
533
533
  for i in range(0, len(keys)):
534
534
  key = keys[i]
535
- ticker = response[key]
535
+ ticker = tickers[key]
536
536
  marketId = self.safe_string(ticker, 'symbol', key)
537
537
  market = self.safe_market(marketId, None, '-')
538
538
  symbol = market['symbol']
539
539
  result[symbol] = self.extend(self.parse_ticker(ticker, market), params)
540
540
  return self.filter_by_array_tickers(result, 'symbol', symbols)
541
541
 
542
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
542
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
543
543
  #
544
544
  # fetchTicker
545
545
  #
ccxt/htx.py CHANGED
@@ -1930,7 +1930,7 @@ class htx(Exchange, ImplicitAPI):
1930
1930
  self.options['futureMarketIdsForSymbols'][symbolOrMarketId] = symbolOrMarketId
1931
1931
  return symbolOrMarketId
1932
1932
 
1933
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
1933
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1934
1934
  #
1935
1935
  # fetchTicker
1936
1936
  #
@@ -3123,7 +3123,7 @@ class htx(Exchange, ImplicitAPI):
3123
3123
  }
3124
3124
  return result
3125
3125
 
3126
- def network_id_to_code(self, networkId, currencyCode=None):
3126
+ def network_id_to_code(self, networkId: Str = None, currencyCode: Str = None):
3127
3127
  # here network-id is provided pair of currency & chain(i.e. trc20usdt)
3128
3128
  keys = list(self.options['networkNamesByChainIds'].keys())
3129
3129
  keysLength = len(keys)
@@ -3132,7 +3132,7 @@ class htx(Exchange, ImplicitAPI):
3132
3132
  networkTitle = self.safe_value(self.options['networkNamesByChainIds'], networkId, networkId)
3133
3133
  return super(htx, self).network_id_to_code(networkTitle)
3134
3134
 
3135
- def network_code_to_id(self, networkCode, currencyCode=None):
3135
+ def network_code_to_id(self, networkCode: str, currencyCode: Str = None):
3136
3136
  if currencyCode is None:
3137
3137
  raise ArgumentsRequired(self.id + ' networkCodeToId() requires a currencyCode argument')
3138
3138
  keys = list(self.options['networkChainIdsByNames'].keys())
@@ -6030,7 +6030,7 @@ class htx(Exchange, ImplicitAPI):
6030
6030
  #
6031
6031
  return self.parse_transaction(response, currency)
6032
6032
 
6033
- def parse_transfer(self, transfer, currency: Currency = None):
6033
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
6034
6034
  #
6035
6035
  # transfer
6036
6036
  #
ccxt/huobijp.py CHANGED
@@ -530,7 +530,7 @@ class huobijp(Exchange, ImplicitAPI):
530
530
  })
531
531
  return result
532
532
 
533
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
533
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
534
534
  #
535
535
  # fetchTicker
536
536
  #
ccxt/idex.py CHANGED
@@ -402,7 +402,7 @@ class idex(Exchange, ImplicitAPI):
402
402
  response = self.publicGetTickers(params)
403
403
  return self.parse_tickers(response, symbols)
404
404
 
405
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
405
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
406
406
  # {
407
407
  # "market": "DIL-ETH",
408
408
  # "time": 1598367493008,
@@ -265,7 +265,7 @@ class independentreserve(Exchange, ImplicitAPI):
265
265
  timestamp = self.parse8601(self.safe_string(response, 'CreatedTimestampUtc'))
266
266
  return self.parse_order_book(response, market['symbol'], timestamp, 'BuyOrders', 'SellOrders', 'Price', 'Volume')
267
267
 
268
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
268
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
269
269
  # {
270
270
  # "DayHighestPrice":43489.49,
271
271
  # "DayLowestPrice":41998.32,
ccxt/indodax.py CHANGED
@@ -407,7 +407,7 @@ class indodax(Exchange, ImplicitAPI):
407
407
  orderbook = self.publicGetApiDepthPair(self.extend(request, params))
408
408
  return self.parse_order_book(orderbook, market['symbol'], None, 'buy', 'sell')
409
409
 
410
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
410
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
411
411
  #
412
412
  # {
413
413
  # "high":"0.01951",
@@ -505,7 +505,7 @@ class indodax(Exchange, ImplicitAPI):
505
505
  # }
506
506
  #
507
507
  response = self.publicGetApiTickerAll(params)
508
- tickers = self.safe_list(response, 'tickers')
508
+ tickers = self.safe_dict(response, 'tickers', {})
509
509
  return self.parse_tickers(tickers, symbols)
510
510
 
511
511
  def parse_trade(self, trade, market: Market = None) -> Trade:
ccxt/kraken.py CHANGED
@@ -818,7 +818,7 @@ class kraken(Exchange, ImplicitAPI):
818
818
  orderbook = self.safe_value(result, wsName, orderbook)
819
819
  return self.parse_order_book(orderbook, symbol)
820
820
 
821
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
821
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
822
822
  #
823
823
  # {
824
824
  # "a":["2432.77000","1","1.000"],
@@ -2730,7 +2730,7 @@ class kraken(Exchange, ImplicitAPI):
2730
2730
  'toAccount': toAccount,
2731
2731
  })
2732
2732
 
2733
- def parse_transfer(self, transfer, currency: Currency = None):
2733
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
2734
2734
  #
2735
2735
  # transfer
2736
2736
  #
ccxt/krakenfutures.py CHANGED
@@ -541,7 +541,7 @@ class krakenfutures(Exchange, ImplicitAPI):
541
541
  tickers = self.safe_list(response, 'tickers')
542
542
  return self.parse_tickers(tickers, symbols)
543
543
 
544
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
544
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
545
545
  #
546
546
  # {
547
547
  # "tag": 'semiannual', # 'month', 'quarter', "perpetual", "semiannual",
@@ -2308,7 +2308,7 @@ class krakenfutures(Exchange, ImplicitAPI):
2308
2308
  })
2309
2309
  return tiers
2310
2310
 
2311
- def parse_transfer(self, transfer, currency: Currency = None):
2311
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
2312
2312
  #
2313
2313
  # transfer
2314
2314
  #
@@ -2480,7 +2480,7 @@ class krakenfutures(Exchange, ImplicitAPI):
2480
2480
  data = self.safe_dict(leveragePreferences, 0, {})
2481
2481
  return self.parse_leverage(data, market)
2482
2482
 
2483
- def parse_leverage(self, leverage, market=None) -> Leverage:
2483
+ def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
2484
2484
  marketId = self.safe_string(leverage, 'symbol')
2485
2485
  leverageValue = self.safe_integer(leverage, 'maxLeverage')
2486
2486
  return {
ccxt/kucoin.py CHANGED
@@ -1465,7 +1465,7 @@ class kucoin(Exchange, ImplicitAPI):
1465
1465
  params = self.omit(params, 'type')
1466
1466
  return(type == 'contract') or (type == 'future') or (type == 'futures') # * (type == 'futures') deprecated, use(type == 'future')
1467
1467
 
1468
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
1468
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
1469
1469
  #
1470
1470
  # {
1471
1471
  # "symbol": "BTC-USDT", # symbol
@@ -3624,7 +3624,7 @@ class kucoin(Exchange, ImplicitAPI):
3624
3624
  data = self.safe_dict(response, 'data')
3625
3625
  return self.parse_transfer(data, currency)
3626
3626
 
3627
- def parse_transfer(self, transfer, currency: Currency = None):
3627
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
3628
3628
  #
3629
3629
  # transfer(spot)
3630
3630
  #
@@ -3679,7 +3679,7 @@ class kucoin(Exchange, ImplicitAPI):
3679
3679
  'info': transfer,
3680
3680
  }
3681
3681
 
3682
- def parse_transfer_status(self, status):
3682
+ def parse_transfer_status(self, status: Str) -> Str:
3683
3683
  statuses = {
3684
3684
  'PROCESSING': 'pending',
3685
3685
  }
ccxt/kucoinfutures.py CHANGED
@@ -818,7 +818,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
818
818
  tickers = self.parse_tickers(data, symbols)
819
819
  return self.filter_by_array_tickers(tickers, 'symbol', symbols)
820
820
 
821
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
821
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
822
822
  #
823
823
  # {
824
824
  # "code": "200000",
@@ -2146,7 +2146,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
2146
2146
  'toAccount': 'spot',
2147
2147
  })
2148
2148
 
2149
- def parse_transfer(self, transfer, currency: Currency = None):
2149
+ def parse_transfer(self, transfer: dict, currency: Currency = None) -> TransferEntry:
2150
2150
  #
2151
2151
  # transfer
2152
2152
  #
@@ -2167,7 +2167,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
2167
2167
  'info': transfer,
2168
2168
  }
2169
2169
 
2170
- def parse_transfer_status(self, status):
2170
+ def parse_transfer_status(self, status: Str) -> Str:
2171
2171
  statuses = {
2172
2172
  'PROCESSING': 'pending',
2173
2173
  }
ccxt/kuna.py CHANGED
@@ -653,7 +653,7 @@ class kuna(Exchange, ImplicitAPI):
653
653
  data = self.safe_dict(response, 'data', {})
654
654
  return self.parse_order_book(data, market['symbol'], None, 'bids', 'asks', 0, 1)
655
655
 
656
- def parse_ticker(self, ticker, market: Market = None) -> Ticker:
656
+ def parse_ticker(self, ticker: dict, market: Market = None) -> Ticker:
657
657
  #
658
658
  # {
659
659
  # "pair": "BTC_USDT", # Traded pair