ccxt 4.3.30__py2.py3-none-any.whl → 4.3.31__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 (258) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/binance.py +2 -0
  3. ccxt/abstract/binancecoinm.py +2 -0
  4. ccxt/abstract/binanceus.py +2 -0
  5. ccxt/abstract/binanceusdm.py +2 -0
  6. ccxt/ace.py +14 -14
  7. ccxt/alpaca.py +16 -16
  8. ccxt/ascendex.py +46 -46
  9. ccxt/async_support/__init__.py +1 -1
  10. ccxt/async_support/ace.py +14 -14
  11. ccxt/async_support/alpaca.py +16 -16
  12. ccxt/async_support/ascendex.py +46 -46
  13. ccxt/async_support/base/exchange.py +23 -23
  14. ccxt/async_support/bigone.py +32 -32
  15. ccxt/async_support/binance.py +105 -96
  16. ccxt/async_support/bingx.py +21 -21
  17. ccxt/async_support/bit2c.py +13 -13
  18. ccxt/async_support/bitbank.py +19 -19
  19. ccxt/async_support/bitbns.py +17 -17
  20. ccxt/async_support/bitfinex.py +24 -24
  21. ccxt/async_support/bitfinex2.py +142 -109
  22. ccxt/async_support/bitflyer.py +23 -23
  23. ccxt/async_support/bitget.py +76 -76
  24. ccxt/async_support/bithumb.py +20 -20
  25. ccxt/async_support/bitmart.py +55 -55
  26. ccxt/async_support/bitmex.py +41 -41
  27. ccxt/async_support/bitopro.py +30 -30
  28. ccxt/async_support/bitrue.py +37 -37
  29. ccxt/async_support/bitso.py +30 -30
  30. ccxt/async_support/bitstamp.py +31 -31
  31. ccxt/async_support/bitteam.py +26 -26
  32. ccxt/async_support/bitvavo.py +27 -27
  33. ccxt/async_support/bl3p.py +8 -8
  34. ccxt/async_support/blockchaincom.py +24 -24
  35. ccxt/async_support/blofin.py +37 -37
  36. ccxt/async_support/btcalpha.py +19 -19
  37. ccxt/async_support/btcbox.py +11 -11
  38. ccxt/async_support/btcmarkets.py +22 -22
  39. ccxt/async_support/btcturk.py +13 -13
  40. ccxt/async_support/bybit.py +96 -96
  41. ccxt/async_support/cex.py +21 -21
  42. ccxt/async_support/coinbase.py +53 -53
  43. ccxt/async_support/coinbaseexchange.py +29 -29
  44. ccxt/async_support/coinbaseinternational.py +32 -32
  45. ccxt/async_support/coincheck.py +14 -14
  46. ccxt/async_support/coinex.py +168 -139
  47. ccxt/async_support/coinlist.py +35 -35
  48. ccxt/async_support/coinmate.py +22 -22
  49. ccxt/async_support/coinmetro.py +22 -22
  50. ccxt/async_support/coinone.py +18 -18
  51. ccxt/async_support/coinsph.py +32 -32
  52. ccxt/async_support/coinspot.py +8 -8
  53. ccxt/async_support/cryptocom.py +43 -43
  54. ccxt/async_support/currencycom.py +33 -33
  55. ccxt/async_support/delta.py +35 -35
  56. ccxt/async_support/deribit.py +54 -54
  57. ccxt/async_support/digifinex.py +56 -56
  58. ccxt/async_support/exmo.py +34 -34
  59. ccxt/async_support/gate.py +60 -60
  60. ccxt/async_support/gemini.py +24 -24
  61. ccxt/async_support/hitbtc.py +51 -51
  62. ccxt/async_support/hollaex.py +29 -29
  63. ccxt/async_support/htx.py +73 -73
  64. ccxt/async_support/huobijp.py +30 -30
  65. ccxt/async_support/hyperliquid.py +58 -58
  66. ccxt/async_support/idex.py +33 -33
  67. ccxt/async_support/independentreserve.py +12 -12
  68. ccxt/async_support/indodax.py +21 -21
  69. ccxt/async_support/kraken.py +46 -51
  70. ccxt/async_support/krakenfutures.py +29 -29
  71. ccxt/async_support/kucoin.py +51 -51
  72. ccxt/async_support/kucoinfutures.py +33 -33
  73. ccxt/async_support/kuna.py +27 -27
  74. ccxt/async_support/latoken.py +27 -27
  75. ccxt/async_support/lbank.py +35 -35
  76. ccxt/async_support/luno.py +19 -19
  77. ccxt/async_support/lykke.py +20 -20
  78. ccxt/async_support/mercado.py +17 -17
  79. ccxt/async_support/mexc.py +64 -64
  80. ccxt/async_support/ndax.py +38 -38
  81. ccxt/async_support/novadax.py +26 -26
  82. ccxt/async_support/oceanex.py +21 -21
  83. ccxt/async_support/okcoin.py +35 -35
  84. ccxt/async_support/okx.py +85 -85
  85. ccxt/async_support/onetrading.py +32 -32
  86. ccxt/async_support/p2b.py +14 -14
  87. ccxt/async_support/paymium.py +12 -12
  88. ccxt/async_support/phemex.py +50 -50
  89. ccxt/async_support/poloniex.py +35 -35
  90. ccxt/async_support/poloniexfutures.py +25 -21
  91. ccxt/async_support/probit.py +30 -30
  92. ccxt/async_support/timex.py +22 -22
  93. ccxt/async_support/tokocrypto.py +26 -26
  94. ccxt/async_support/tradeogre.py +12 -12
  95. ccxt/async_support/upbit.py +28 -28
  96. ccxt/async_support/wavesexchange.py +33 -33
  97. ccxt/async_support/wazirx.py +21 -21
  98. ccxt/async_support/whitebit.py +37 -37
  99. ccxt/async_support/woo.py +51 -51
  100. ccxt/async_support/woofipro.py +46 -46
  101. ccxt/async_support/yobit.py +20 -20
  102. ccxt/async_support/zaif.py +12 -12
  103. ccxt/async_support/zonda.py +22 -22
  104. ccxt/base/exchange.py +35 -35
  105. ccxt/base/types.py +13 -0
  106. ccxt/bigone.py +32 -32
  107. ccxt/binance.py +105 -96
  108. ccxt/bingx.py +21 -21
  109. ccxt/bit2c.py +13 -13
  110. ccxt/bitbank.py +19 -19
  111. ccxt/bitbns.py +17 -17
  112. ccxt/bitfinex.py +24 -24
  113. ccxt/bitfinex2.py +142 -109
  114. ccxt/bitflyer.py +23 -23
  115. ccxt/bitget.py +76 -76
  116. ccxt/bithumb.py +20 -20
  117. ccxt/bitmart.py +55 -55
  118. ccxt/bitmex.py +41 -41
  119. ccxt/bitopro.py +30 -30
  120. ccxt/bitrue.py +37 -37
  121. ccxt/bitso.py +30 -30
  122. ccxt/bitstamp.py +31 -31
  123. ccxt/bitteam.py +26 -26
  124. ccxt/bitvavo.py +27 -27
  125. ccxt/bl3p.py +8 -8
  126. ccxt/blockchaincom.py +24 -24
  127. ccxt/blofin.py +37 -37
  128. ccxt/btcalpha.py +19 -19
  129. ccxt/btcbox.py +11 -11
  130. ccxt/btcmarkets.py +22 -22
  131. ccxt/btcturk.py +13 -13
  132. ccxt/bybit.py +96 -96
  133. ccxt/cex.py +21 -21
  134. ccxt/coinbase.py +53 -53
  135. ccxt/coinbaseexchange.py +29 -29
  136. ccxt/coinbaseinternational.py +32 -32
  137. ccxt/coincheck.py +14 -14
  138. ccxt/coinex.py +168 -139
  139. ccxt/coinlist.py +35 -35
  140. ccxt/coinmate.py +22 -22
  141. ccxt/coinmetro.py +22 -22
  142. ccxt/coinone.py +18 -18
  143. ccxt/coinsph.py +32 -32
  144. ccxt/coinspot.py +8 -8
  145. ccxt/cryptocom.py +43 -43
  146. ccxt/currencycom.py +33 -33
  147. ccxt/delta.py +35 -35
  148. ccxt/deribit.py +54 -54
  149. ccxt/digifinex.py +56 -56
  150. ccxt/exmo.py +34 -34
  151. ccxt/gate.py +60 -60
  152. ccxt/gemini.py +24 -24
  153. ccxt/hitbtc.py +51 -51
  154. ccxt/hollaex.py +29 -29
  155. ccxt/htx.py +73 -73
  156. ccxt/huobijp.py +30 -30
  157. ccxt/hyperliquid.py +58 -58
  158. ccxt/idex.py +33 -33
  159. ccxt/independentreserve.py +12 -12
  160. ccxt/indodax.py +21 -21
  161. ccxt/kraken.py +46 -51
  162. ccxt/krakenfutures.py +29 -29
  163. ccxt/kucoin.py +51 -51
  164. ccxt/kucoinfutures.py +33 -33
  165. ccxt/kuna.py +27 -27
  166. ccxt/latoken.py +27 -27
  167. ccxt/lbank.py +35 -35
  168. ccxt/luno.py +19 -19
  169. ccxt/lykke.py +20 -20
  170. ccxt/mercado.py +17 -17
  171. ccxt/mexc.py +64 -64
  172. ccxt/ndax.py +38 -38
  173. ccxt/novadax.py +26 -26
  174. ccxt/oceanex.py +21 -21
  175. ccxt/okcoin.py +35 -35
  176. ccxt/okx.py +85 -85
  177. ccxt/onetrading.py +32 -32
  178. ccxt/p2b.py +14 -14
  179. ccxt/paymium.py +12 -12
  180. ccxt/phemex.py +50 -50
  181. ccxt/poloniex.py +35 -35
  182. ccxt/poloniexfutures.py +25 -21
  183. ccxt/pro/__init__.py +1 -1
  184. ccxt/pro/alpaca.py +8 -8
  185. ccxt/pro/ascendex.py +4 -4
  186. ccxt/pro/binance.py +56 -56
  187. ccxt/pro/bingx.py +5 -5
  188. ccxt/pro/bitfinex.py +6 -6
  189. ccxt/pro/bitfinex2.py +10 -10
  190. ccxt/pro/bitget.py +17 -17
  191. ccxt/pro/bithumb.py +6 -6
  192. ccxt/pro/bitmart.py +8 -8
  193. ccxt/pro/bitmex.py +16 -16
  194. ccxt/pro/bitopro.py +4 -4
  195. ccxt/pro/bitrue.py +8 -8
  196. ccxt/pro/bitstamp.py +5 -5
  197. ccxt/pro/bitvavo.py +14 -14
  198. ccxt/pro/blockchaincom.py +7 -7
  199. ccxt/pro/bybit.py +12 -12
  200. ccxt/pro/cex.py +19 -19
  201. ccxt/pro/coinbase.py +2 -2
  202. ccxt/pro/coinbaseexchange.py +10 -10
  203. ccxt/pro/coinbaseinternational.py +4 -4
  204. ccxt/pro/coincheck.py +2 -2
  205. ccxt/pro/coinex.py +15 -15
  206. ccxt/pro/coinone.py +4 -4
  207. ccxt/pro/cryptocom.py +11 -11
  208. ccxt/pro/currencycom.py +4 -4
  209. ccxt/pro/deribit.py +9 -9
  210. ccxt/pro/exmo.py +9 -9
  211. ccxt/pro/gate.py +12 -12
  212. ccxt/pro/gemini.py +11 -11
  213. ccxt/pro/hitbtc.py +13 -13
  214. ccxt/pro/hollaex.py +6 -6
  215. ccxt/pro/htx.py +15 -15
  216. ccxt/pro/huobijp.py +16 -16
  217. ccxt/pro/hyperliquid.py +9 -9
  218. ccxt/pro/idex.py +12 -12
  219. ccxt/pro/independentreserve.py +2 -2
  220. ccxt/pro/kraken.py +14 -14
  221. ccxt/pro/krakenfutures.py +12 -12
  222. ccxt/pro/kucoin.py +12 -12
  223. ccxt/pro/kucoinfutures.py +16 -16
  224. ccxt/pro/lbank.py +12 -12
  225. ccxt/pro/luno.py +4 -4
  226. ccxt/pro/mexc.py +14 -14
  227. ccxt/pro/ndax.py +12 -12
  228. ccxt/pro/okcoin.py +6 -6
  229. ccxt/pro/okx.py +30 -30
  230. ccxt/pro/onetrading.py +13 -13
  231. ccxt/pro/p2b.py +2 -2
  232. ccxt/pro/phemex.py +9 -9
  233. ccxt/pro/poloniex.py +9 -9
  234. ccxt/pro/poloniexfutures.py +10 -10
  235. ccxt/pro/probit.py +8 -8
  236. ccxt/pro/upbit.py +1 -1
  237. ccxt/pro/wazirx.py +10 -10
  238. ccxt/pro/whitebit.py +8 -8
  239. ccxt/pro/woo.py +14 -14
  240. ccxt/pro/woofipro.py +14 -14
  241. ccxt/probit.py +30 -30
  242. ccxt/test/base/test_shared_methods.py +1 -0
  243. ccxt/timex.py +22 -22
  244. ccxt/tokocrypto.py +26 -26
  245. ccxt/tradeogre.py +12 -12
  246. ccxt/upbit.py +28 -28
  247. ccxt/wavesexchange.py +33 -33
  248. ccxt/wazirx.py +21 -21
  249. ccxt/whitebit.py +37 -37
  250. ccxt/woo.py +51 -51
  251. ccxt/woofipro.py +46 -46
  252. ccxt/yobit.py +20 -20
  253. ccxt/zaif.py +12 -12
  254. ccxt/zonda.py +22 -22
  255. {ccxt-4.3.30.dist-info → ccxt-4.3.31.dist-info}/METADATA +4 -4
  256. {ccxt-4.3.30.dist-info → ccxt-4.3.31.dist-info}/RECORD +258 -258
  257. {ccxt-4.3.30.dist-info → ccxt-4.3.31.dist-info}/WHEEL +0 -0
  258. {ccxt-4.3.30.dist-info → ccxt-4.3.31.dist-info}/top_level.txt +0 -0
ccxt/gemini.py CHANGED
@@ -348,7 +348,7 @@ class gemini(Exchange, ImplicitAPI):
348
348
  # ]
349
349
  # }
350
350
  #
351
- result = {}
351
+ result: dict = {}
352
352
  self.options['tradingPairs'] = self.safe_list(data, 'tradingPairs')
353
353
  currenciesArray = self.safe_value(data, 'currencies', [])
354
354
  for i in range(0, len(currenciesArray)):
@@ -357,7 +357,7 @@ class gemini(Exchange, ImplicitAPI):
357
357
  code = self.safe_currency_code(id)
358
358
  type = 'fiat' if self.safe_string(currency, 7) else 'crypto'
359
359
  precision = self.parse_number(self.parse_precision(self.safe_string(currency, 5)))
360
- networks = {}
360
+ networks: dict = {}
361
361
  networkId = self.safe_string(currency, 9)
362
362
  networkCode = None
363
363
  if networkId is not None:
@@ -518,7 +518,7 @@ class gemini(Exchange, ImplicitAPI):
518
518
  return result
519
519
 
520
520
  def parse_market_active(self, status):
521
- statuses = {
521
+ statuses: dict = {
522
522
  'open': True,
523
523
  'closed': False,
524
524
  'cancel_only': True,
@@ -538,7 +538,7 @@ class gemini(Exchange, ImplicitAPI):
538
538
  result = []
539
539
  for i in range(0, len(fetchUsdtMarkets)):
540
540
  marketId = fetchUsdtMarkets[i]
541
- request = {
541
+ request: dict = {
542
542
  'symbol': marketId,
543
543
  }
544
544
  # don't use Promise.all here, for some reason the exchange can't handle it and crashes
@@ -566,7 +566,7 @@ class gemini(Exchange, ImplicitAPI):
566
566
  promises = []
567
567
  for i in range(0, len(marketIds)):
568
568
  marketId = marketIds[i]
569
- request = {
569
+ request: dict = {
570
570
  'symbol': marketId,
571
571
  }
572
572
  promises.append(self.publicGetV1SymbolsDetailsSymbol(self.extend(request, params)))
@@ -759,7 +759,7 @@ class gemini(Exchange, ImplicitAPI):
759
759
  """
760
760
  self.load_markets()
761
761
  market = self.market(symbol)
762
- request = {
762
+ request: dict = {
763
763
  'symbol': market['id'],
764
764
  }
765
765
  if limit is not None:
@@ -771,7 +771,7 @@ class gemini(Exchange, ImplicitAPI):
771
771
  def fetch_ticker_v1(self, symbol: str, params={}):
772
772
  self.load_markets()
773
773
  market = self.market(symbol)
774
- request = {
774
+ request: dict = {
775
775
  'symbol': market['id'],
776
776
  }
777
777
  response = self.publicGetV1PubtickerSymbol(self.extend(request, params))
@@ -792,7 +792,7 @@ class gemini(Exchange, ImplicitAPI):
792
792
  def fetch_ticker_v2(self, symbol: str, params={}):
793
793
  self.load_markets()
794
794
  market = self.market(symbol)
795
- request = {
795
+ request: dict = {
796
796
  'symbol': market['id'],
797
797
  }
798
798
  response = self.publicGetV2TickerSymbol(self.extend(request, params))
@@ -957,7 +957,7 @@ class gemini(Exchange, ImplicitAPI):
957
957
  #
958
958
  return self.parse_tickers(response, symbols)
959
959
 
960
- def parse_trade(self, trade, market: Market = None) -> Trade:
960
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
961
961
  #
962
962
  # public fetchTrades
963
963
  #
@@ -1032,7 +1032,7 @@ class gemini(Exchange, ImplicitAPI):
1032
1032
  """
1033
1033
  self.load_markets()
1034
1034
  market = self.market(symbol)
1035
- request = {
1035
+ request: dict = {
1036
1036
  'symbol': market['id'],
1037
1037
  }
1038
1038
  if limit is not None:
@@ -1056,7 +1056,7 @@ class gemini(Exchange, ImplicitAPI):
1056
1056
  return self.parse_trades(response, market, since, limit)
1057
1057
 
1058
1058
  def parse_balance(self, response) -> Balances:
1059
- result = {'info': response}
1059
+ result: dict = {'info': response}
1060
1060
  for i in range(0, len(response)):
1061
1061
  balance = response[i]
1062
1062
  currencyId = self.safe_string(balance, 'currency')
@@ -1110,7 +1110,7 @@ class gemini(Exchange, ImplicitAPI):
1110
1110
  takerString = Precise.string_div(takerBps, '10000')
1111
1111
  maker = self.parse_number(makerString)
1112
1112
  taker = self.parse_number(takerString)
1113
- result = {}
1113
+ result: dict = {}
1114
1114
  for i in range(0, len(self.symbols)):
1115
1115
  symbol = self.symbols[i]
1116
1116
  result[symbol] = {
@@ -1134,7 +1134,7 @@ class gemini(Exchange, ImplicitAPI):
1134
1134
  response = self.privatePostV1Balances(params)
1135
1135
  return self.parse_balance(response)
1136
1136
 
1137
- def parse_order(self, order, market: Market = None) -> Order:
1137
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1138
1138
  #
1139
1139
  # createOrder(private)
1140
1140
  #
@@ -1303,7 +1303,7 @@ class gemini(Exchange, ImplicitAPI):
1303
1303
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1304
1304
  """
1305
1305
  self.load_markets()
1306
- request = {
1306
+ request: dict = {
1307
1307
  'order_id': id,
1308
1308
  }
1309
1309
  response = self.privatePostV1OrderStatus(self.extend(request, params))
@@ -1396,7 +1396,7 @@ class gemini(Exchange, ImplicitAPI):
1396
1396
  market = self.market(symbol)
1397
1397
  amountString = self.amount_to_precision(symbol, amount)
1398
1398
  priceString = self.price_to_precision(symbol, price)
1399
- request = {
1399
+ request: dict = {
1400
1400
  'client_order_id': clientOrderId,
1401
1401
  'symbol': market['id'],
1402
1402
  'amount': amountString,
@@ -1469,7 +1469,7 @@ class gemini(Exchange, ImplicitAPI):
1469
1469
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1470
1470
  """
1471
1471
  self.load_markets()
1472
- request = {
1472
+ request: dict = {
1473
1473
  'order_id': id,
1474
1474
  }
1475
1475
  response = self.privatePostV1OrderCancel(self.extend(request, params))
@@ -1513,7 +1513,7 @@ class gemini(Exchange, ImplicitAPI):
1513
1513
  raise ArgumentsRequired(self.id + ' fetchMyTrades() requires a symbol argument')
1514
1514
  self.load_markets()
1515
1515
  market = self.market(symbol)
1516
- request = {
1516
+ request: dict = {
1517
1517
  'symbol': market['id'],
1518
1518
  }
1519
1519
  if limit is not None:
@@ -1538,7 +1538,7 @@ class gemini(Exchange, ImplicitAPI):
1538
1538
  self.check_address(address)
1539
1539
  self.load_markets()
1540
1540
  currency = self.currency(code)
1541
- request = {
1541
+ request: dict = {
1542
1542
  'currency': currency['id'],
1543
1543
  'amount': amount,
1544
1544
  'address': address,
@@ -1589,7 +1589,7 @@ class gemini(Exchange, ImplicitAPI):
1589
1589
  :returns dict: a list of `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
1590
1590
  """
1591
1591
  self.load_markets()
1592
- request = {}
1592
+ request: dict = {}
1593
1593
  if limit is not None:
1594
1594
  request['limit_transfers'] = limit
1595
1595
  if since is not None:
@@ -1597,7 +1597,7 @@ class gemini(Exchange, ImplicitAPI):
1597
1597
  response = self.privatePostV1Transfers(self.extend(request, params))
1598
1598
  return self.parse_transactions(response)
1599
1599
 
1600
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1600
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1601
1601
  #
1602
1602
  # withdraw
1603
1603
  #
@@ -1654,7 +1654,7 @@ class gemini(Exchange, ImplicitAPI):
1654
1654
  }
1655
1655
 
1656
1656
  def parse_transaction_status(self, status):
1657
- statuses = {
1657
+ statuses: dict = {
1658
1658
  'Advanced': 'ok',
1659
1659
  'Complete': 'ok',
1660
1660
  }
@@ -1711,7 +1711,7 @@ class gemini(Exchange, ImplicitAPI):
1711
1711
  if networkCode is None:
1712
1712
  raise ArgumentsRequired(self.id + ' fetchDepositAddresses() requires a network parameter')
1713
1713
  networkId = self.network_code_to_id(networkCode)
1714
- request = {
1714
+ request: dict = {
1715
1715
  'network': networkId,
1716
1716
  }
1717
1717
  response = self.privatePostV1AddressesNetwork(self.extend(request, params))
@@ -1782,7 +1782,7 @@ class gemini(Exchange, ImplicitAPI):
1782
1782
  """
1783
1783
  self.load_markets()
1784
1784
  currency = self.currency(code)
1785
- request = {
1785
+ request: dict = {
1786
1786
  'currency': currency['id'],
1787
1787
  }
1788
1788
  response = self.privatePostV1DepositCurrencyNewAddress(self.extend(request, params))
@@ -1809,7 +1809,7 @@ class gemini(Exchange, ImplicitAPI):
1809
1809
  self.load_markets()
1810
1810
  market = self.market(symbol)
1811
1811
  timeframeId = self.safe_string(self.timeframes, timeframe, timeframe)
1812
- request = {
1812
+ request: dict = {
1813
1813
  'timeframe': timeframeId,
1814
1814
  'symbol': market['id'],
1815
1815
  }
ccxt/hitbtc.py CHANGED
@@ -837,7 +837,7 @@ class hitbtc(Exchange, ImplicitAPI):
837
837
  # }
838
838
  # }
839
839
  #
840
- result = {}
840
+ result: dict = {}
841
841
  currencies = list(response.keys())
842
842
  for i in range(0, len(currencies)):
843
843
  currencyId = currencies[i]
@@ -850,7 +850,7 @@ class hitbtc(Exchange, ImplicitAPI):
850
850
  transferEnabled = self.safe_bool(entry, 'transfer_enabled', False)
851
851
  active = payinEnabled and payoutEnabled and transferEnabled
852
852
  rawNetworks = self.safe_value(entry, 'networks', [])
853
- networks = {}
853
+ networks: dict = {}
854
854
  fee = None
855
855
  depositEnabled = None
856
856
  withdrawEnabled = None
@@ -925,7 +925,7 @@ class hitbtc(Exchange, ImplicitAPI):
925
925
  """
926
926
  self.load_markets()
927
927
  currency = self.currency(code)
928
- request = {
928
+ request: dict = {
929
929
  'currency': currency['id'],
930
930
  }
931
931
  network = self.safe_string_upper(params, 'network')
@@ -958,7 +958,7 @@ class hitbtc(Exchange, ImplicitAPI):
958
958
  """
959
959
  self.load_markets()
960
960
  currency = self.currency(code)
961
- request = {
961
+ request: dict = {
962
962
  'currency': currency['id'],
963
963
  }
964
964
  network = self.safe_string_upper(params, 'network')
@@ -987,7 +987,7 @@ class hitbtc(Exchange, ImplicitAPI):
987
987
  }
988
988
 
989
989
  def parse_balance(self, response) -> Balances:
990
- result = {'info': response}
990
+ result: dict = {'info': response}
991
991
  for i in range(0, len(response)):
992
992
  entry = response[i]
993
993
  currencyId = self.safe_string(entry, 'currency')
@@ -1044,7 +1044,7 @@ class hitbtc(Exchange, ImplicitAPI):
1044
1044
  """
1045
1045
  self.load_markets()
1046
1046
  market = self.market(symbol)
1047
- request = {
1047
+ request: dict = {
1048
1048
  'symbol': market['id'],
1049
1049
  }
1050
1050
  response = self.publicGetPublicTickerSymbol(self.extend(request, params))
@@ -1073,7 +1073,7 @@ class hitbtc(Exchange, ImplicitAPI):
1073
1073
  """
1074
1074
  self.load_markets()
1075
1075
  symbols = self.market_symbols(symbols)
1076
- request = {}
1076
+ request: dict = {}
1077
1077
  if symbols is not None:
1078
1078
  marketIds = self.market_ids(symbols)
1079
1079
  delimited = ','.join(marketIds)
@@ -1094,7 +1094,7 @@ class hitbtc(Exchange, ImplicitAPI):
1094
1094
  # }
1095
1095
  # }
1096
1096
  #
1097
- result = {}
1097
+ result: dict = {}
1098
1098
  keys = list(response.keys())
1099
1099
  for i in range(0, len(keys)):
1100
1100
  marketId = keys[i]
@@ -1159,7 +1159,7 @@ class hitbtc(Exchange, ImplicitAPI):
1159
1159
  """
1160
1160
  self.load_markets()
1161
1161
  market = None
1162
- request = {}
1162
+ request: dict = {}
1163
1163
  if limit is not None:
1164
1164
  request['limit'] = min(limit, 1000)
1165
1165
  if since is not None:
@@ -1199,7 +1199,7 @@ class hitbtc(Exchange, ImplicitAPI):
1199
1199
  """
1200
1200
  self.load_markets()
1201
1201
  market = None
1202
- request = {}
1202
+ request: dict = {}
1203
1203
  if symbol is not None:
1204
1204
  market = self.market(symbol)
1205
1205
  request['symbol'] = market['id']
@@ -1226,7 +1226,7 @@ class hitbtc(Exchange, ImplicitAPI):
1226
1226
  raise NotSupported(self.id + ' fetchMyTrades() not support self market type')
1227
1227
  return self.parse_trades(response, market, since, limit)
1228
1228
 
1229
- def parse_trade(self, trade, market: Market = None) -> Trade:
1229
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
1230
1230
  #
1231
1231
  # createOrder(market)
1232
1232
  #
@@ -1329,7 +1329,7 @@ class hitbtc(Exchange, ImplicitAPI):
1329
1329
 
1330
1330
  def fetch_transactions_helper(self, types, code, since, limit, params):
1331
1331
  self.load_markets()
1332
- request = {
1332
+ request: dict = {
1333
1333
  'types': types,
1334
1334
  }
1335
1335
  currency = None
@@ -1368,7 +1368,7 @@ class hitbtc(Exchange, ImplicitAPI):
1368
1368
  return self.parse_transactions(response, currency, since, limit, params)
1369
1369
 
1370
1370
  def parse_transaction_status(self, status):
1371
- statuses = {
1371
+ statuses: dict = {
1372
1372
  'PENDING': 'pending',
1373
1373
  'FAILED': 'failed',
1374
1374
  'SUCCESS': 'ok',
@@ -1376,13 +1376,13 @@ class hitbtc(Exchange, ImplicitAPI):
1376
1376
  return self.safe_string(statuses, status, status)
1377
1377
 
1378
1378
  def parse_transaction_type(self, type):
1379
- types = {
1379
+ types: dict = {
1380
1380
  'DEPOSIT': 'deposit',
1381
1381
  'WITHDRAW': 'withdrawal',
1382
1382
  }
1383
1383
  return self.safe_string(types, type, type)
1384
1384
 
1385
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1385
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1386
1386
  #
1387
1387
  # transaction
1388
1388
  #
@@ -1512,14 +1512,14 @@ class hitbtc(Exchange, ImplicitAPI):
1512
1512
  :returns dict: a dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbol
1513
1513
  """
1514
1514
  self.load_markets()
1515
- request = {}
1515
+ request: dict = {}
1516
1516
  if symbols is not None:
1517
1517
  marketIdsInner = self.market_ids(symbols)
1518
1518
  request['symbols'] = ','.join(marketIdsInner)
1519
1519
  if limit is not None:
1520
1520
  request['depth'] = limit
1521
1521
  response = self.publicGetPublicOrderbook(self.extend(request, params))
1522
- result = {}
1522
+ result: dict = {}
1523
1523
  marketIds = list(response.keys())
1524
1524
  for i in range(0, len(marketIds)):
1525
1525
  marketId = marketIds[i]
@@ -1540,7 +1540,7 @@ class hitbtc(Exchange, ImplicitAPI):
1540
1540
  """
1541
1541
  self.load_markets()
1542
1542
  market = self.market(symbol)
1543
- request = {
1543
+ request: dict = {
1544
1544
  'symbol': market['id'],
1545
1545
  }
1546
1546
  if limit is not None:
@@ -1549,7 +1549,7 @@ class hitbtc(Exchange, ImplicitAPI):
1549
1549
  timestamp = self.parse8601(self.safe_string(response, 'timestamp'))
1550
1550
  return self.parse_order_book(response, symbol, timestamp, 'bid', 'ask')
1551
1551
 
1552
- def parse_trading_fee(self, fee, market: Market = None) -> TradingFeeInterface:
1552
+ def parse_trading_fee(self, fee: dict, market: Market = None) -> TradingFeeInterface:
1553
1553
  #
1554
1554
  # {
1555
1555
  # "symbol":"ARVUSDT", # returned from fetchTradingFees only
@@ -1581,7 +1581,7 @@ class hitbtc(Exchange, ImplicitAPI):
1581
1581
  """
1582
1582
  self.load_markets()
1583
1583
  market = self.market(symbol)
1584
- request = {
1584
+ request: dict = {
1585
1585
  'symbol': market['id'],
1586
1586
  }
1587
1587
  response = None
@@ -1625,7 +1625,7 @@ class hitbtc(Exchange, ImplicitAPI):
1625
1625
  # }
1626
1626
  # ]
1627
1627
  #
1628
- result = {}
1628
+ result: dict = {}
1629
1629
  for i in range(0, len(response)):
1630
1630
  fee = self.parse_trading_fee(response[i])
1631
1631
  symbol = fee['symbol']
@@ -1654,7 +1654,7 @@ class hitbtc(Exchange, ImplicitAPI):
1654
1654
  if paginate:
1655
1655
  return self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 1000)
1656
1656
  market = self.market(symbol)
1657
- request = {
1657
+ request: dict = {
1658
1658
  'symbol': market['id'],
1659
1659
  'period': self.safe_string(self.timeframes, timeframe, timeframe),
1660
1660
  }
@@ -1752,7 +1752,7 @@ class hitbtc(Exchange, ImplicitAPI):
1752
1752
  """
1753
1753
  self.load_markets()
1754
1754
  market = None
1755
- request = {}
1755
+ request: dict = {}
1756
1756
  if symbol is not None:
1757
1757
  market = self.market(symbol)
1758
1758
  request['symbol'] = market['id']
@@ -1796,7 +1796,7 @@ class hitbtc(Exchange, ImplicitAPI):
1796
1796
  market = None
1797
1797
  if symbol is not None:
1798
1798
  market = self.market(symbol)
1799
- request = {
1799
+ request: dict = {
1800
1800
  'client_order_id': id,
1801
1801
  }
1802
1802
  marketType = None
@@ -1857,7 +1857,7 @@ class hitbtc(Exchange, ImplicitAPI):
1857
1857
  market = None
1858
1858
  if symbol is not None:
1859
1859
  market = self.market(symbol)
1860
- request = {
1860
+ request: dict = {
1861
1861
  'order_id': id, # exchange assigned order id to the client order id
1862
1862
  }
1863
1863
  marketType = None
@@ -1933,7 +1933,7 @@ class hitbtc(Exchange, ImplicitAPI):
1933
1933
  """
1934
1934
  self.load_markets()
1935
1935
  market = None
1936
- request = {}
1936
+ request: dict = {}
1937
1937
  if symbol is not None:
1938
1938
  market = self.market(symbol)
1939
1939
  request['symbol'] = market['id']
@@ -1992,7 +1992,7 @@ class hitbtc(Exchange, ImplicitAPI):
1992
1992
  market = None
1993
1993
  if symbol is not None:
1994
1994
  market = self.market(symbol)
1995
- request = {
1995
+ request: dict = {
1996
1996
  'client_order_id': id,
1997
1997
  }
1998
1998
  marketType = None
@@ -2028,7 +2028,7 @@ class hitbtc(Exchange, ImplicitAPI):
2028
2028
  """
2029
2029
  self.load_markets()
2030
2030
  market = None
2031
- request = {}
2031
+ request: dict = {}
2032
2032
  if symbol is not None:
2033
2033
  market = self.market(symbol)
2034
2034
  request['symbol'] = market['id']
@@ -2066,7 +2066,7 @@ class hitbtc(Exchange, ImplicitAPI):
2066
2066
  """
2067
2067
  self.load_markets()
2068
2068
  market = None
2069
- request = {
2069
+ request: dict = {
2070
2070
  'client_order_id': id,
2071
2071
  }
2072
2072
  if symbol is not None:
@@ -2093,7 +2093,7 @@ class hitbtc(Exchange, ImplicitAPI):
2093
2093
  def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
2094
2094
  self.load_markets()
2095
2095
  market = None
2096
- request = {
2096
+ request: dict = {
2097
2097
  'client_order_id': id,
2098
2098
  'quantity': self.amount_to_precision(symbol, amount),
2099
2099
  }
@@ -2164,7 +2164,7 @@ class hitbtc(Exchange, ImplicitAPI):
2164
2164
  timeInForce = self.safe_string(params, 'timeInForce')
2165
2165
  triggerPrice = self.safe_number_n(params, ['triggerPrice', 'stopPrice', 'stop_price'])
2166
2166
  isPostOnly = self.is_post_only(type == 'market', None, params)
2167
- request = {
2167
+ request: dict = {
2168
2168
  'type': type,
2169
2169
  'side': side,
2170
2170
  'quantity': self.amount_to_precision(market['symbol'], amount),
@@ -2214,8 +2214,8 @@ class hitbtc(Exchange, ImplicitAPI):
2214
2214
  request['margin_mode'] = marginMode
2215
2215
  return [request, params]
2216
2216
 
2217
- def parse_order_status(self, status):
2218
- statuses = {
2217
+ def parse_order_status(self, status: Str):
2218
+ statuses: dict = {
2219
2219
  'new': 'open',
2220
2220
  'suspended': 'open',
2221
2221
  'partiallyFilled': 'open',
@@ -2225,7 +2225,7 @@ class hitbtc(Exchange, ImplicitAPI):
2225
2225
  }
2226
2226
  return self.safe_string(statuses, status, status)
2227
2227
 
2228
- def parse_order(self, order, market: Market = None) -> Order:
2228
+ def parse_order(self, order: dict, market: Market = None) -> Order:
2229
2229
  #
2230
2230
  # limit
2231
2231
  # {
@@ -2404,7 +2404,7 @@ class hitbtc(Exchange, ImplicitAPI):
2404
2404
  config = self.safe_list(response, 'config', [])
2405
2405
  return self.parse_margin_modes(config, symbols, 'symbol')
2406
2406
 
2407
- def parse_margin_mode(self, marginMode, market=None) -> MarginMode:
2407
+ def parse_margin_mode(self, marginMode: dict, market=None) -> MarginMode:
2408
2408
  marketId = self.safe_string(marginMode, 'symbol')
2409
2409
  return {
2410
2410
  'info': marginMode,
@@ -2434,7 +2434,7 @@ class hitbtc(Exchange, ImplicitAPI):
2434
2434
  toId = self.safe_string(accountsByType, toAccount, toAccount)
2435
2435
  if fromId == toId:
2436
2436
  raise BadRequest(self.id + ' transfer() fromAccount and toAccount arguments cannot be the same account')
2437
- request = {
2437
+ request: dict = {
2438
2438
  'currency': currency['id'],
2439
2439
  'amount': requestAmount,
2440
2440
  'source': fromId,
@@ -2482,7 +2482,7 @@ class hitbtc(Exchange, ImplicitAPI):
2482
2482
  if (fromNetwork is None) or (toNetwork is None):
2483
2483
  keys = list(networks.keys())
2484
2484
  raise ArgumentsRequired(self.id + ' convertCurrencyNetwork() requires a fromNetwork parameter and a toNetwork parameter, supported networks are ' + ', '.join(keys))
2485
- request = {
2485
+ request: dict = {
2486
2486
  'from_currency': fromNetwork,
2487
2487
  'to_currency': toNetwork,
2488
2488
  'amount': self.currency_to_precision(code, amount),
@@ -2508,7 +2508,7 @@ class hitbtc(Exchange, ImplicitAPI):
2508
2508
  self.load_markets()
2509
2509
  self.check_address(address)
2510
2510
  currency = self.currency(code)
2511
- request = {
2511
+ request: dict = {
2512
2512
  'currency': currency['id'],
2513
2513
  'amount': amount,
2514
2514
  'address': address,
@@ -2544,7 +2544,7 @@ class hitbtc(Exchange, ImplicitAPI):
2544
2544
  """
2545
2545
  self.load_markets()
2546
2546
  market = None
2547
- request = {}
2547
+ request: dict = {}
2548
2548
  if symbols is not None:
2549
2549
  symbols = self.market_symbols(symbols)
2550
2550
  market = self.market(symbols[0])
@@ -2573,7 +2573,7 @@ class hitbtc(Exchange, ImplicitAPI):
2573
2573
  # }
2574
2574
  #
2575
2575
  marketIds = list(response.keys())
2576
- fundingRates = {}
2576
+ fundingRates: dict = {}
2577
2577
  for i in range(0, len(marketIds)):
2578
2578
  marketId = self.safe_string(marketIds, i)
2579
2579
  rawFundingRate = self.safe_value(response, marketId)
@@ -2601,7 +2601,7 @@ class hitbtc(Exchange, ImplicitAPI):
2601
2601
  if paginate:
2602
2602
  return self.fetch_paginated_call_deterministic('fetchFundingRateHistory', symbol, since, limit, '8h', params, 1000)
2603
2603
  market = None
2604
- request = {
2604
+ request: dict = {
2605
2605
  # all arguments are optional
2606
2606
  # 'symbols': Comma separated list of symbol codes,
2607
2607
  # 'sort': 'DESC' or 'ASC'
@@ -2668,7 +2668,7 @@ class hitbtc(Exchange, ImplicitAPI):
2668
2668
  :returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
2669
2669
  """
2670
2670
  self.load_markets()
2671
- request = {}
2671
+ request: dict = {}
2672
2672
  marketType = None
2673
2673
  marginMode = None
2674
2674
  marketType, params = self.handle_market_type_and_params('fetchPositions', None, params)
@@ -2736,7 +2736,7 @@ class hitbtc(Exchange, ImplicitAPI):
2736
2736
  """
2737
2737
  self.load_markets()
2738
2738
  market = self.market(symbol)
2739
- request = {
2739
+ request: dict = {
2740
2740
  'symbol': market['id'],
2741
2741
  }
2742
2742
  marketType = None
@@ -2788,7 +2788,7 @@ class hitbtc(Exchange, ImplicitAPI):
2788
2788
  #
2789
2789
  return self.parse_position(response, market)
2790
2790
 
2791
- def parse_position(self, position, market: Market = None):
2791
+ def parse_position(self, position: dict, market: Market = None):
2792
2792
  #
2793
2793
  # [
2794
2794
  # {
@@ -2911,7 +2911,7 @@ class hitbtc(Exchange, ImplicitAPI):
2911
2911
  market = self.market(symbol)
2912
2912
  if not market['swap']:
2913
2913
  raise BadSymbol(self.id + ' fetchOpenInterest() supports swap contracts only')
2914
- request = {
2914
+ request: dict = {
2915
2915
  'symbol': market['id'],
2916
2916
  }
2917
2917
  response = self.publicGetPublicFuturesInfoSymbol(self.extend(request, params))
@@ -2944,7 +2944,7 @@ class hitbtc(Exchange, ImplicitAPI):
2944
2944
  market = self.market(symbol)
2945
2945
  if not market['swap']:
2946
2946
  raise BadSymbol(self.id + ' fetchFundingRate() supports swap contracts only')
2947
- request = {
2947
+ request: dict = {
2948
2948
  'symbol': market['id'],
2949
2949
  }
2950
2950
  response = self.publicGetPublicFuturesInfoSymbol(self.extend(request, params))
@@ -3015,7 +3015,7 @@ class hitbtc(Exchange, ImplicitAPI):
3015
3015
  amount = self.amount_to_precision(symbol, stringAmount)
3016
3016
  else:
3017
3017
  amount = '0'
3018
- request = {
3018
+ request: dict = {
3019
3019
  'symbol': market['id'], # swap and margin
3020
3020
  'margin_balance': amount, # swap and margin
3021
3021
  # "leverage": "10", # swap only required
@@ -3137,7 +3137,7 @@ class hitbtc(Exchange, ImplicitAPI):
3137
3137
  """
3138
3138
  self.load_markets()
3139
3139
  market = self.market(symbol)
3140
- request = {
3140
+ request: dict = {
3141
3141
  'symbol': market['id'],
3142
3142
  }
3143
3143
  marginMode = None
@@ -3219,7 +3219,7 @@ class hitbtc(Exchange, ImplicitAPI):
3219
3219
  raise BadSymbol(self.id + ' setLeverage() supports swap contracts only')
3220
3220
  if (leverage < 1) or (leverage > maxLeverage):
3221
3221
  raise BadRequest(self.id + ' setLeverage() leverage should be between 1 and ' + str(maxLeverage) + ' for ' + symbol)
3222
- request = {
3222
+ request: dict = {
3223
3223
  'symbol': market['id'],
3224
3224
  'leverage': str(leverage),
3225
3225
  'margin_balance': self.amount_to_precision(symbol, amount),
@@ -3296,7 +3296,7 @@ class hitbtc(Exchange, ImplicitAPI):
3296
3296
  networkCode = self.network_id_to_code(networkId)
3297
3297
  withdrawFee = self.safe_number(networkEntry, 'payout_fee')
3298
3298
  isDefault = self.safe_value(networkEntry, 'default')
3299
- withdrawResult = {
3299
+ withdrawResult: dict = {
3300
3300
  'fee': withdrawFee,
3301
3301
  'percentage': False if (withdrawFee is not None) else None,
3302
3302
  }
@@ -3324,7 +3324,7 @@ class hitbtc(Exchange, ImplicitAPI):
3324
3324
  marginMode = None
3325
3325
  marginMode, params = self.handle_margin_mode_and_params('closePosition', params, 'cross')
3326
3326
  market = self.market(symbol)
3327
- request = {
3327
+ request: dict = {
3328
3328
  'symbol': market['id'],
3329
3329
  'margin_mode': marginMode,
3330
3330
  }