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
@@ -349,7 +349,7 @@ class gemini(Exchange, ImplicitAPI):
349
349
  # ]
350
350
  # }
351
351
  #
352
- result = {}
352
+ result: dict = {}
353
353
  self.options['tradingPairs'] = self.safe_list(data, 'tradingPairs')
354
354
  currenciesArray = self.safe_value(data, 'currencies', [])
355
355
  for i in range(0, len(currenciesArray)):
@@ -358,7 +358,7 @@ class gemini(Exchange, ImplicitAPI):
358
358
  code = self.safe_currency_code(id)
359
359
  type = 'fiat' if self.safe_string(currency, 7) else 'crypto'
360
360
  precision = self.parse_number(self.parse_precision(self.safe_string(currency, 5)))
361
- networks = {}
361
+ networks: dict = {}
362
362
  networkId = self.safe_string(currency, 9)
363
363
  networkCode = None
364
364
  if networkId is not None:
@@ -519,7 +519,7 @@ class gemini(Exchange, ImplicitAPI):
519
519
  return result
520
520
 
521
521
  def parse_market_active(self, status):
522
- statuses = {
522
+ statuses: dict = {
523
523
  'open': True,
524
524
  'closed': False,
525
525
  'cancel_only': True,
@@ -539,7 +539,7 @@ class gemini(Exchange, ImplicitAPI):
539
539
  result = []
540
540
  for i in range(0, len(fetchUsdtMarkets)):
541
541
  marketId = fetchUsdtMarkets[i]
542
- request = {
542
+ request: dict = {
543
543
  'symbol': marketId,
544
544
  }
545
545
  # don't use Promise.all here, for some reason the exchange can't handle it and crashes
@@ -567,7 +567,7 @@ class gemini(Exchange, ImplicitAPI):
567
567
  promises = []
568
568
  for i in range(0, len(marketIds)):
569
569
  marketId = marketIds[i]
570
- request = {
570
+ request: dict = {
571
571
  'symbol': marketId,
572
572
  }
573
573
  promises.append(self.publicGetV1SymbolsDetailsSymbol(self.extend(request, params)))
@@ -760,7 +760,7 @@ class gemini(Exchange, ImplicitAPI):
760
760
  """
761
761
  await self.load_markets()
762
762
  market = self.market(symbol)
763
- request = {
763
+ request: dict = {
764
764
  'symbol': market['id'],
765
765
  }
766
766
  if limit is not None:
@@ -772,7 +772,7 @@ class gemini(Exchange, ImplicitAPI):
772
772
  async def fetch_ticker_v1(self, symbol: str, params={}):
773
773
  await self.load_markets()
774
774
  market = self.market(symbol)
775
- request = {
775
+ request: dict = {
776
776
  'symbol': market['id'],
777
777
  }
778
778
  response = await self.publicGetV1PubtickerSymbol(self.extend(request, params))
@@ -793,7 +793,7 @@ class gemini(Exchange, ImplicitAPI):
793
793
  async def fetch_ticker_v2(self, symbol: str, params={}):
794
794
  await self.load_markets()
795
795
  market = self.market(symbol)
796
- request = {
796
+ request: dict = {
797
797
  'symbol': market['id'],
798
798
  }
799
799
  response = await self.publicGetV2TickerSymbol(self.extend(request, params))
@@ -958,7 +958,7 @@ class gemini(Exchange, ImplicitAPI):
958
958
  #
959
959
  return self.parse_tickers(response, symbols)
960
960
 
961
- def parse_trade(self, trade, market: Market = None) -> Trade:
961
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
962
962
  #
963
963
  # public fetchTrades
964
964
  #
@@ -1033,7 +1033,7 @@ class gemini(Exchange, ImplicitAPI):
1033
1033
  """
1034
1034
  await self.load_markets()
1035
1035
  market = self.market(symbol)
1036
- request = {
1036
+ request: dict = {
1037
1037
  'symbol': market['id'],
1038
1038
  }
1039
1039
  if limit is not None:
@@ -1057,7 +1057,7 @@ class gemini(Exchange, ImplicitAPI):
1057
1057
  return self.parse_trades(response, market, since, limit)
1058
1058
 
1059
1059
  def parse_balance(self, response) -> Balances:
1060
- result = {'info': response}
1060
+ result: dict = {'info': response}
1061
1061
  for i in range(0, len(response)):
1062
1062
  balance = response[i]
1063
1063
  currencyId = self.safe_string(balance, 'currency')
@@ -1111,7 +1111,7 @@ class gemini(Exchange, ImplicitAPI):
1111
1111
  takerString = Precise.string_div(takerBps, '10000')
1112
1112
  maker = self.parse_number(makerString)
1113
1113
  taker = self.parse_number(takerString)
1114
- result = {}
1114
+ result: dict = {}
1115
1115
  for i in range(0, len(self.symbols)):
1116
1116
  symbol = self.symbols[i]
1117
1117
  result[symbol] = {
@@ -1135,7 +1135,7 @@ class gemini(Exchange, ImplicitAPI):
1135
1135
  response = await self.privatePostV1Balances(params)
1136
1136
  return self.parse_balance(response)
1137
1137
 
1138
- def parse_order(self, order, market: Market = None) -> Order:
1138
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1139
1139
  #
1140
1140
  # createOrder(private)
1141
1141
  #
@@ -1304,7 +1304,7 @@ class gemini(Exchange, ImplicitAPI):
1304
1304
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1305
1305
  """
1306
1306
  await self.load_markets()
1307
- request = {
1307
+ request: dict = {
1308
1308
  'order_id': id,
1309
1309
  }
1310
1310
  response = await self.privatePostV1OrderStatus(self.extend(request, params))
@@ -1397,7 +1397,7 @@ class gemini(Exchange, ImplicitAPI):
1397
1397
  market = self.market(symbol)
1398
1398
  amountString = self.amount_to_precision(symbol, amount)
1399
1399
  priceString = self.price_to_precision(symbol, price)
1400
- request = {
1400
+ request: dict = {
1401
1401
  'client_order_id': clientOrderId,
1402
1402
  'symbol': market['id'],
1403
1403
  'amount': amountString,
@@ -1470,7 +1470,7 @@ class gemini(Exchange, ImplicitAPI):
1470
1470
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1471
1471
  """
1472
1472
  await self.load_markets()
1473
- request = {
1473
+ request: dict = {
1474
1474
  'order_id': id,
1475
1475
  }
1476
1476
  response = await self.privatePostV1OrderCancel(self.extend(request, params))
@@ -1514,7 +1514,7 @@ class gemini(Exchange, ImplicitAPI):
1514
1514
  raise ArgumentsRequired(self.id + ' fetchMyTrades() requires a symbol argument')
1515
1515
  await self.load_markets()
1516
1516
  market = self.market(symbol)
1517
- request = {
1517
+ request: dict = {
1518
1518
  'symbol': market['id'],
1519
1519
  }
1520
1520
  if limit is not None:
@@ -1539,7 +1539,7 @@ class gemini(Exchange, ImplicitAPI):
1539
1539
  self.check_address(address)
1540
1540
  await self.load_markets()
1541
1541
  currency = self.currency(code)
1542
- request = {
1542
+ request: dict = {
1543
1543
  'currency': currency['id'],
1544
1544
  'amount': amount,
1545
1545
  'address': address,
@@ -1590,7 +1590,7 @@ class gemini(Exchange, ImplicitAPI):
1590
1590
  :returns dict: a list of `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
1591
1591
  """
1592
1592
  await self.load_markets()
1593
- request = {}
1593
+ request: dict = {}
1594
1594
  if limit is not None:
1595
1595
  request['limit_transfers'] = limit
1596
1596
  if since is not None:
@@ -1598,7 +1598,7 @@ class gemini(Exchange, ImplicitAPI):
1598
1598
  response = await self.privatePostV1Transfers(self.extend(request, params))
1599
1599
  return self.parse_transactions(response)
1600
1600
 
1601
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1601
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1602
1602
  #
1603
1603
  # withdraw
1604
1604
  #
@@ -1655,7 +1655,7 @@ class gemini(Exchange, ImplicitAPI):
1655
1655
  }
1656
1656
 
1657
1657
  def parse_transaction_status(self, status):
1658
- statuses = {
1658
+ statuses: dict = {
1659
1659
  'Advanced': 'ok',
1660
1660
  'Complete': 'ok',
1661
1661
  }
@@ -1712,7 +1712,7 @@ class gemini(Exchange, ImplicitAPI):
1712
1712
  if networkCode is None:
1713
1713
  raise ArgumentsRequired(self.id + ' fetchDepositAddresses() requires a network parameter')
1714
1714
  networkId = self.network_code_to_id(networkCode)
1715
- request = {
1715
+ request: dict = {
1716
1716
  'network': networkId,
1717
1717
  }
1718
1718
  response = await self.privatePostV1AddressesNetwork(self.extend(request, params))
@@ -1783,7 +1783,7 @@ class gemini(Exchange, ImplicitAPI):
1783
1783
  """
1784
1784
  await self.load_markets()
1785
1785
  currency = self.currency(code)
1786
- request = {
1786
+ request: dict = {
1787
1787
  'currency': currency['id'],
1788
1788
  }
1789
1789
  response = await self.privatePostV1DepositCurrencyNewAddress(self.extend(request, params))
@@ -1810,7 +1810,7 @@ class gemini(Exchange, ImplicitAPI):
1810
1810
  await self.load_markets()
1811
1811
  market = self.market(symbol)
1812
1812
  timeframeId = self.safe_string(self.timeframes, timeframe, timeframe)
1813
- request = {
1813
+ request: dict = {
1814
1814
  'timeframe': timeframeId,
1815
1815
  'symbol': market['id'],
1816
1816
  }
@@ -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
  await 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
  await 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
  await self.load_markets()
1046
1046
  market = self.market(symbol)
1047
- request = {
1047
+ request: dict = {
1048
1048
  'symbol': market['id'],
1049
1049
  }
1050
1050
  response = await self.publicGetPublicTickerSymbol(self.extend(request, params))
@@ -1073,7 +1073,7 @@ class hitbtc(Exchange, ImplicitAPI):
1073
1073
  """
1074
1074
  await 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
  await 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
  await 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
  async def fetch_transactions_helper(self, types, code, since, limit, params):
1331
1331
  await 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
  await 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 = await 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
  await 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
  await 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 await 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
  await 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
  await 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
  await 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
  await 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
  async def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
2094
2094
  await 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
  await 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
  await 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 await 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
  await 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
  await 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 = await 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 = await 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
  await 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
  }