ccxt 4.3.29__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 (260) 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/base/ws/aiohttp_client.py +1 -0
  15. ccxt/async_support/base/ws/future.py +27 -29
  16. ccxt/async_support/bigone.py +32 -32
  17. ccxt/async_support/binance.py +105 -96
  18. ccxt/async_support/bingx.py +22 -22
  19. ccxt/async_support/bit2c.py +13 -13
  20. ccxt/async_support/bitbank.py +19 -19
  21. ccxt/async_support/bitbns.py +17 -17
  22. ccxt/async_support/bitfinex.py +24 -24
  23. ccxt/async_support/bitfinex2.py +142 -109
  24. ccxt/async_support/bitflyer.py +23 -23
  25. ccxt/async_support/bitget.py +76 -76
  26. ccxt/async_support/bithumb.py +20 -20
  27. ccxt/async_support/bitmart.py +55 -55
  28. ccxt/async_support/bitmex.py +41 -41
  29. ccxt/async_support/bitopro.py +30 -30
  30. ccxt/async_support/bitrue.py +37 -37
  31. ccxt/async_support/bitso.py +30 -30
  32. ccxt/async_support/bitstamp.py +31 -31
  33. ccxt/async_support/bitteam.py +26 -26
  34. ccxt/async_support/bitvavo.py +27 -27
  35. ccxt/async_support/bl3p.py +8 -8
  36. ccxt/async_support/blockchaincom.py +24 -24
  37. ccxt/async_support/blofin.py +37 -37
  38. ccxt/async_support/btcalpha.py +19 -19
  39. ccxt/async_support/btcbox.py +11 -11
  40. ccxt/async_support/btcmarkets.py +22 -22
  41. ccxt/async_support/btcturk.py +13 -13
  42. ccxt/async_support/bybit.py +96 -96
  43. ccxt/async_support/cex.py +21 -21
  44. ccxt/async_support/coinbase.py +53 -53
  45. ccxt/async_support/coinbaseexchange.py +29 -29
  46. ccxt/async_support/coinbaseinternational.py +32 -32
  47. ccxt/async_support/coincheck.py +14 -14
  48. ccxt/async_support/coinex.py +424 -448
  49. ccxt/async_support/coinlist.py +35 -35
  50. ccxt/async_support/coinmate.py +22 -22
  51. ccxt/async_support/coinmetro.py +22 -22
  52. ccxt/async_support/coinone.py +18 -18
  53. ccxt/async_support/coinsph.py +32 -32
  54. ccxt/async_support/coinspot.py +8 -8
  55. ccxt/async_support/cryptocom.py +43 -43
  56. ccxt/async_support/currencycom.py +33 -33
  57. ccxt/async_support/delta.py +35 -35
  58. ccxt/async_support/deribit.py +54 -54
  59. ccxt/async_support/digifinex.py +56 -56
  60. ccxt/async_support/exmo.py +34 -34
  61. ccxt/async_support/gate.py +60 -60
  62. ccxt/async_support/gemini.py +24 -24
  63. ccxt/async_support/hitbtc.py +51 -51
  64. ccxt/async_support/hollaex.py +29 -29
  65. ccxt/async_support/htx.py +73 -73
  66. ccxt/async_support/huobijp.py +30 -30
  67. ccxt/async_support/hyperliquid.py +58 -58
  68. ccxt/async_support/idex.py +33 -33
  69. ccxt/async_support/independentreserve.py +12 -12
  70. ccxt/async_support/indodax.py +21 -21
  71. ccxt/async_support/kraken.py +46 -51
  72. ccxt/async_support/krakenfutures.py +29 -29
  73. ccxt/async_support/kucoin.py +51 -51
  74. ccxt/async_support/kucoinfutures.py +33 -33
  75. ccxt/async_support/kuna.py +27 -27
  76. ccxt/async_support/latoken.py +27 -27
  77. ccxt/async_support/lbank.py +35 -35
  78. ccxt/async_support/luno.py +19 -19
  79. ccxt/async_support/lykke.py +20 -20
  80. ccxt/async_support/mercado.py +17 -17
  81. ccxt/async_support/mexc.py +64 -64
  82. ccxt/async_support/ndax.py +38 -38
  83. ccxt/async_support/novadax.py +26 -26
  84. ccxt/async_support/oceanex.py +21 -21
  85. ccxt/async_support/okcoin.py +35 -35
  86. ccxt/async_support/okx.py +85 -85
  87. ccxt/async_support/onetrading.py +32 -32
  88. ccxt/async_support/p2b.py +14 -14
  89. ccxt/async_support/paymium.py +12 -12
  90. ccxt/async_support/phemex.py +50 -50
  91. ccxt/async_support/poloniex.py +35 -35
  92. ccxt/async_support/poloniexfutures.py +25 -21
  93. ccxt/async_support/probit.py +30 -30
  94. ccxt/async_support/timex.py +22 -22
  95. ccxt/async_support/tokocrypto.py +26 -26
  96. ccxt/async_support/tradeogre.py +12 -12
  97. ccxt/async_support/upbit.py +28 -28
  98. ccxt/async_support/wavesexchange.py +33 -33
  99. ccxt/async_support/wazirx.py +21 -21
  100. ccxt/async_support/whitebit.py +80 -40
  101. ccxt/async_support/woo.py +51 -51
  102. ccxt/async_support/woofipro.py +46 -46
  103. ccxt/async_support/yobit.py +20 -20
  104. ccxt/async_support/zaif.py +12 -12
  105. ccxt/async_support/zonda.py +22 -22
  106. ccxt/base/exchange.py +39 -35
  107. ccxt/base/types.py +13 -0
  108. ccxt/bigone.py +32 -32
  109. ccxt/binance.py +105 -96
  110. ccxt/bingx.py +22 -22
  111. ccxt/bit2c.py +13 -13
  112. ccxt/bitbank.py +19 -19
  113. ccxt/bitbns.py +17 -17
  114. ccxt/bitfinex.py +24 -24
  115. ccxt/bitfinex2.py +142 -109
  116. ccxt/bitflyer.py +23 -23
  117. ccxt/bitget.py +76 -76
  118. ccxt/bithumb.py +20 -20
  119. ccxt/bitmart.py +55 -55
  120. ccxt/bitmex.py +41 -41
  121. ccxt/bitopro.py +30 -30
  122. ccxt/bitrue.py +37 -37
  123. ccxt/bitso.py +30 -30
  124. ccxt/bitstamp.py +31 -31
  125. ccxt/bitteam.py +26 -26
  126. ccxt/bitvavo.py +27 -27
  127. ccxt/bl3p.py +8 -8
  128. ccxt/blockchaincom.py +24 -24
  129. ccxt/blofin.py +37 -37
  130. ccxt/btcalpha.py +19 -19
  131. ccxt/btcbox.py +11 -11
  132. ccxt/btcmarkets.py +22 -22
  133. ccxt/btcturk.py +13 -13
  134. ccxt/bybit.py +96 -96
  135. ccxt/cex.py +21 -21
  136. ccxt/coinbase.py +53 -53
  137. ccxt/coinbaseexchange.py +29 -29
  138. ccxt/coinbaseinternational.py +32 -32
  139. ccxt/coincheck.py +14 -14
  140. ccxt/coinex.py +424 -448
  141. ccxt/coinlist.py +35 -35
  142. ccxt/coinmate.py +22 -22
  143. ccxt/coinmetro.py +22 -22
  144. ccxt/coinone.py +18 -18
  145. ccxt/coinsph.py +32 -32
  146. ccxt/coinspot.py +8 -8
  147. ccxt/cryptocom.py +43 -43
  148. ccxt/currencycom.py +33 -33
  149. ccxt/delta.py +35 -35
  150. ccxt/deribit.py +54 -54
  151. ccxt/digifinex.py +56 -56
  152. ccxt/exmo.py +34 -34
  153. ccxt/gate.py +60 -60
  154. ccxt/gemini.py +24 -24
  155. ccxt/hitbtc.py +51 -51
  156. ccxt/hollaex.py +29 -29
  157. ccxt/htx.py +73 -73
  158. ccxt/huobijp.py +30 -30
  159. ccxt/hyperliquid.py +58 -58
  160. ccxt/idex.py +33 -33
  161. ccxt/independentreserve.py +12 -12
  162. ccxt/indodax.py +21 -21
  163. ccxt/kraken.py +46 -51
  164. ccxt/krakenfutures.py +29 -29
  165. ccxt/kucoin.py +51 -51
  166. ccxt/kucoinfutures.py +33 -33
  167. ccxt/kuna.py +27 -27
  168. ccxt/latoken.py +27 -27
  169. ccxt/lbank.py +35 -35
  170. ccxt/luno.py +19 -19
  171. ccxt/lykke.py +20 -20
  172. ccxt/mercado.py +17 -17
  173. ccxt/mexc.py +64 -64
  174. ccxt/ndax.py +38 -38
  175. ccxt/novadax.py +26 -26
  176. ccxt/oceanex.py +21 -21
  177. ccxt/okcoin.py +35 -35
  178. ccxt/okx.py +85 -85
  179. ccxt/onetrading.py +32 -32
  180. ccxt/p2b.py +14 -14
  181. ccxt/paymium.py +12 -12
  182. ccxt/phemex.py +50 -50
  183. ccxt/poloniex.py +35 -35
  184. ccxt/poloniexfutures.py +25 -21
  185. ccxt/pro/__init__.py +1 -1
  186. ccxt/pro/alpaca.py +8 -8
  187. ccxt/pro/ascendex.py +4 -4
  188. ccxt/pro/binance.py +56 -56
  189. ccxt/pro/bingx.py +5 -5
  190. ccxt/pro/bitfinex.py +6 -6
  191. ccxt/pro/bitfinex2.py +10 -10
  192. ccxt/pro/bitget.py +17 -17
  193. ccxt/pro/bithumb.py +6 -6
  194. ccxt/pro/bitmart.py +8 -8
  195. ccxt/pro/bitmex.py +16 -16
  196. ccxt/pro/bitopro.py +4 -4
  197. ccxt/pro/bitrue.py +8 -8
  198. ccxt/pro/bitstamp.py +5 -5
  199. ccxt/pro/bitvavo.py +14 -14
  200. ccxt/pro/blockchaincom.py +7 -7
  201. ccxt/pro/bybit.py +12 -12
  202. ccxt/pro/cex.py +19 -19
  203. ccxt/pro/coinbase.py +2 -2
  204. ccxt/pro/coinbaseexchange.py +10 -10
  205. ccxt/pro/coinbaseinternational.py +4 -4
  206. ccxt/pro/coincheck.py +2 -2
  207. ccxt/pro/coinex.py +15 -15
  208. ccxt/pro/coinone.py +4 -4
  209. ccxt/pro/cryptocom.py +11 -11
  210. ccxt/pro/currencycom.py +4 -4
  211. ccxt/pro/deribit.py +9 -9
  212. ccxt/pro/exmo.py +9 -9
  213. ccxt/pro/gate.py +12 -12
  214. ccxt/pro/gemini.py +11 -11
  215. ccxt/pro/hitbtc.py +13 -13
  216. ccxt/pro/hollaex.py +6 -6
  217. ccxt/pro/htx.py +15 -15
  218. ccxt/pro/huobijp.py +16 -16
  219. ccxt/pro/hyperliquid.py +9 -9
  220. ccxt/pro/idex.py +12 -12
  221. ccxt/pro/independentreserve.py +2 -2
  222. ccxt/pro/kraken.py +14 -14
  223. ccxt/pro/krakenfutures.py +12 -12
  224. ccxt/pro/kucoin.py +12 -12
  225. ccxt/pro/kucoinfutures.py +16 -16
  226. ccxt/pro/lbank.py +12 -12
  227. ccxt/pro/luno.py +4 -4
  228. ccxt/pro/mexc.py +14 -14
  229. ccxt/pro/ndax.py +12 -12
  230. ccxt/pro/okcoin.py +6 -6
  231. ccxt/pro/okx.py +30 -30
  232. ccxt/pro/onetrading.py +13 -13
  233. ccxt/pro/p2b.py +2 -2
  234. ccxt/pro/phemex.py +9 -9
  235. ccxt/pro/poloniex.py +9 -9
  236. ccxt/pro/poloniexfutures.py +10 -10
  237. ccxt/pro/probit.py +8 -8
  238. ccxt/pro/upbit.py +1 -1
  239. ccxt/pro/wazirx.py +10 -10
  240. ccxt/pro/whitebit.py +8 -8
  241. ccxt/pro/woo.py +14 -14
  242. ccxt/pro/woofipro.py +14 -14
  243. ccxt/probit.py +30 -30
  244. ccxt/test/base/test_shared_methods.py +1 -0
  245. ccxt/timex.py +22 -22
  246. ccxt/tokocrypto.py +26 -26
  247. ccxt/tradeogre.py +12 -12
  248. ccxt/upbit.py +28 -28
  249. ccxt/wavesexchange.py +33 -33
  250. ccxt/wazirx.py +21 -21
  251. ccxt/whitebit.py +80 -40
  252. ccxt/woo.py +51 -51
  253. ccxt/woofipro.py +46 -46
  254. ccxt/yobit.py +20 -20
  255. ccxt/zaif.py +12 -12
  256. ccxt/zonda.py +22 -22
  257. {ccxt-4.3.29.dist-info → ccxt-4.3.31.dist-info}/METADATA +4 -4
  258. {ccxt-4.3.29.dist-info → ccxt-4.3.31.dist-info}/RECORD +260 -260
  259. {ccxt-4.3.29.dist-info → ccxt-4.3.31.dist-info}/WHEEL +0 -0
  260. {ccxt-4.3.29.dist-info → ccxt-4.3.31.dist-info}/top_level.txt +0 -0
ccxt/wavesexchange.py CHANGED
@@ -735,7 +735,7 @@ class wavesexchange(Exchange, ImplicitAPI):
735
735
  payload = prefix + messageHex
736
736
  hexKey = self.binary_to_base16(self.base58_to_binary(self.secret))
737
737
  signature = self.axolotl(payload, hexKey, 'ed25519')
738
- request = {
738
+ request: dict = {
739
739
  'grant_type': 'password',
740
740
  'scope': 'general',
741
741
  'username': self.apiKey,
@@ -835,7 +835,7 @@ class wavesexchange(Exchange, ImplicitAPI):
835
835
  """
836
836
  self.load_markets()
837
837
  market = self.market(symbol)
838
- request = {
838
+ request: dict = {
839
839
  'pairs': market['id'],
840
840
  }
841
841
  response = self.publicGetPairs(self.extend(request, params))
@@ -918,7 +918,7 @@ class wavesexchange(Exchange, ImplicitAPI):
918
918
  """
919
919
  self.load_markets()
920
920
  market = self.market(symbol)
921
- request = {
921
+ request: dict = {
922
922
  'baseId': market['baseId'],
923
923
  'quoteId': market['quoteId'],
924
924
  'interval': self.safe_string(self.timeframes, timeframe, timeframe),
@@ -1063,8 +1063,8 @@ class wavesexchange(Exchange, ImplicitAPI):
1063
1063
  # ]
1064
1064
  # }
1065
1065
  #
1066
- currencies = {}
1067
- networksByCurrency = {}
1066
+ currencies: dict = {}
1067
+ networksByCurrency: dict = {}
1068
1068
  items = self.safe_value(supportedCurrencies, 'items', [])
1069
1069
  for i in range(0, len(items)):
1070
1070
  entry = items[i]
@@ -1081,7 +1081,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1081
1081
  raise ExchangeError(self.id + ' fetchDepositAddress() ' + code + ' not supported. Currency code must be one of ' + ', '.join(codes))
1082
1082
  response = None
1083
1083
  if network is None:
1084
- request = {
1084
+ request: dict = {
1085
1085
  'currency': code,
1086
1086
  }
1087
1087
  response = self.privateGetDepositAddressesCurrency(self.extend(request, params))
@@ -1091,7 +1091,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1091
1091
  supportedNetworkKeys = list(supportedNetworks.keys())
1092
1092
  raise ExchangeError(self.id + ' ' + network + ' network ' + code + ' deposit address not supported. Network must be one of ' + ', '.join(supportedNetworkKeys))
1093
1093
  if network == 'WAVES':
1094
- request = {
1094
+ request: dict = {
1095
1095
  'publicKey': self.apiKey,
1096
1096
  }
1097
1097
  responseInner = self.nodeGetAddressesPublicKeyPublicKey(self.extend(request, request))
@@ -1105,7 +1105,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1105
1105
  'info': responseInner,
1106
1106
  }
1107
1107
  else:
1108
- request = {
1108
+ request: dict = {
1109
1109
  'currency': code,
1110
1110
  'platform': network,
1111
1111
  }
@@ -1307,13 +1307,13 @@ class wavesexchange(Exchange, ImplicitAPI):
1307
1307
  raise InsufficientFunds(self.id + ' not enough funds on none of the eligible asset fees')
1308
1308
  amount = self.custom_amount_to_precision(symbol, amount)
1309
1309
  price = self.custom_price_to_precision(symbol, price)
1310
- assetPair = {
1310
+ assetPair: dict = {
1311
1311
  'amountAsset': amountAsset,
1312
1312
  'priceAsset': priceAsset,
1313
1313
  }
1314
1314
  sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
1315
1315
  chainId = 84 if (sandboxMode) else 87
1316
- body = {
1316
+ body: dict = {
1317
1317
  'senderPublicKey': self.apiKey,
1318
1318
  'matcherPublicKey': matcherPublicKey,
1319
1319
  'assetPair': assetPair,
@@ -1339,7 +1339,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1339
1339
  # },
1340
1340
  # }
1341
1341
  #
1342
- attachment = {
1342
+ attachment: dict = {
1343
1343
  'v': 1,
1344
1344
  'c': {
1345
1345
  't': 'sp',
@@ -1463,7 +1463,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1463
1463
  binary = self.binary_concat_array(byteArray)
1464
1464
  hexSecret = self.binary_to_base16(self.base58_to_binary(self.secret))
1465
1465
  signature = self.axolotl(self.binary_to_base16(binary), hexSecret, 'ed25519')
1466
- request = {
1466
+ request: dict = {
1467
1467
  'Timestamp': str(timestamp),
1468
1468
  'Signature': signature,
1469
1469
  'publicKey': self.apiKey,
@@ -1495,7 +1495,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1495
1495
  binary = self.binary_concat_array(byteArray)
1496
1496
  hexSecret = self.binary_to_base16(self.base58_to_binary(self.secret))
1497
1497
  signature = self.axolotl(self.binary_to_base16(binary), hexSecret, 'ed25519')
1498
- request = {
1498
+ request: dict = {
1499
1499
  'Accept': 'application/json',
1500
1500
  'Timestamp': str(timestamp),
1501
1501
  'Signature': signature,
@@ -1536,7 +1536,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1536
1536
  if symbol is not None:
1537
1537
  market = self.market(symbol)
1538
1538
  address = self.get_waves_address()
1539
- request = {
1539
+ request: dict = {
1540
1540
  'address': address,
1541
1541
  'activeOnly': True,
1542
1542
  }
@@ -1558,7 +1558,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1558
1558
  if symbol is not None:
1559
1559
  market = self.market(symbol)
1560
1560
  address = self.get_waves_address()
1561
- request = {
1561
+ request: dict = {
1562
1562
  'address': address,
1563
1563
  'closedOnly': True,
1564
1564
  }
@@ -1585,8 +1585,8 @@ class wavesexchange(Exchange, ImplicitAPI):
1585
1585
  # ]
1586
1586
  return self.parse_orders(response, market, since, limit)
1587
1587
 
1588
- def parse_order_status(self, status):
1589
- statuses = {
1588
+ def parse_order_status(self, status: Str):
1589
+ statuses: dict = {
1590
1590
  'Cancelled': 'canceled',
1591
1591
  'Accepted': 'open',
1592
1592
  'Filled': 'closed',
@@ -1600,7 +1600,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1600
1600
  quoteId = self.safe_string(assetPair, 'priceAsset', 'WAVES')
1601
1601
  return self.safe_currency_code(baseId) + '/' + self.safe_currency_code(quoteId)
1602
1602
 
1603
- def parse_order(self, order, market: Market = None) -> Order:
1603
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1604
1604
  #
1605
1605
  # createOrder
1606
1606
  #
@@ -1726,7 +1726,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1726
1726
  def get_waves_address(self):
1727
1727
  cachedAddreess = self.safe_string(self.options, 'wavesAddress')
1728
1728
  if cachedAddreess is None:
1729
- request = {
1729
+ request: dict = {
1730
1730
  'publicKey': self.apiKey,
1731
1731
  }
1732
1732
  response = self.nodeGetAddressesPublicKeyPublicKey(request)
@@ -1751,7 +1751,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1751
1751
  self.check_required_keys()
1752
1752
  self.load_markets()
1753
1753
  wavesAddress = self.get_waves_address()
1754
- request = {
1754
+ request: dict = {
1755
1755
  'address': wavesAddress,
1756
1756
  }
1757
1757
  totalBalance = self.nodeGetAssetsBalanceAddress(request)
@@ -1790,7 +1790,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1790
1790
  # ]
1791
1791
  # }
1792
1792
  balances = self.safe_value(totalBalance, 'balances', [])
1793
- result = {}
1793
+ result: dict = {}
1794
1794
  timestamp = None
1795
1795
  assetIds = []
1796
1796
  nonStandardBalances = []
@@ -1813,7 +1813,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1813
1813
  result[code]['total'] = self.from_precision(balance, decimals)
1814
1814
  nonStandardAssets = len(assetIds)
1815
1815
  if nonStandardAssets:
1816
- requestInner = {
1816
+ requestInner: dict = {
1817
1817
  'ids': assetIds,
1818
1818
  }
1819
1819
  response = self.publicGetAssets(requestInner)
@@ -1835,7 +1835,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1835
1835
  binary = self.binary_concat_array(byteArray)
1836
1836
  hexSecret = self.binary_to_base16(self.base58_to_binary(self.secret))
1837
1837
  signature = self.axolotl(self.binary_to_base16(binary), hexSecret, 'ed25519')
1838
- matcherRequest = {
1838
+ matcherRequest: dict = {
1839
1839
  'publicKey': self.apiKey,
1840
1840
  'signature': signature,
1841
1841
  'timestamp': str(currentTimestamp),
@@ -1853,7 +1853,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1853
1853
  result[code]['used'] = self.currency_from_precision(code, amount)
1854
1854
  else:
1855
1855
  result[code]['used'] = amount
1856
- wavesRequest = {
1856
+ wavesRequest: dict = {
1857
1857
  'address': wavesAddress,
1858
1858
  }
1859
1859
  wavesTotal = self.nodeGetAddressesBalanceAddress(wavesRequest)
@@ -1884,7 +1884,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1884
1884
  """
1885
1885
  self.load_markets()
1886
1886
  address = self.get_waves_address()
1887
- request = {
1887
+ request: dict = {
1888
1888
  'sender': address,
1889
1889
  }
1890
1890
  market = None
@@ -1973,7 +1973,7 @@ class wavesexchange(Exchange, ImplicitAPI):
1973
1973
  """
1974
1974
  self.load_markets()
1975
1975
  market = self.market(symbol)
1976
- request = {
1976
+ request: dict = {
1977
1977
  'amountAsset': market['baseId'],
1978
1978
  'priceAsset': market['quoteId'],
1979
1979
  }
@@ -2051,7 +2051,7 @@ class wavesexchange(Exchange, ImplicitAPI):
2051
2051
  #
2052
2052
  return self.parse_trades(data, market, since, limit)
2053
2053
 
2054
- def parse_trade(self, trade, market: Market = None) -> Trade:
2054
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
2055
2055
  #
2056
2056
  # {__type: "transaction",
2057
2057
  # "data":
@@ -2141,7 +2141,7 @@ class wavesexchange(Exchange, ImplicitAPI):
2141
2141
  }, market)
2142
2142
 
2143
2143
  def parse_deposit_withdraw_fees(self, response, codes: Strings = None, currencyIdKey=None) -> Any:
2144
- depositWithdrawFees = {}
2144
+ depositWithdrawFees: dict = {}
2145
2145
  codes = self.market_codes(codes)
2146
2146
  for i in range(0, len(response)):
2147
2147
  entry = response[i]
@@ -2307,7 +2307,7 @@ class wavesexchange(Exchange, ImplicitAPI):
2307
2307
  # currently only works for BTC and WAVES
2308
2308
  if code != 'WAVES':
2309
2309
  supportedCurrencies = self.privateGetWithdrawCurrencies()
2310
- currencies = {}
2310
+ currencies: dict = {}
2311
2311
  items = self.safe_value(supportedCurrencies, 'items', [])
2312
2312
  for i in range(0, len(items)):
2313
2313
  entry = items[i]
@@ -2318,7 +2318,7 @@ class wavesexchange(Exchange, ImplicitAPI):
2318
2318
  raise ExchangeError(self.id + ' withdraw() ' + code + ' not supported. Currency code must be one of ' + str(codes))
2319
2319
  self.load_markets()
2320
2320
  hexChars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f']
2321
- set = {}
2321
+ set: dict = {}
2322
2322
  for i in range(0, len(hexChars)):
2323
2323
  key = hexChars[i]
2324
2324
  set[key] = True
@@ -2336,7 +2336,7 @@ class wavesexchange(Exchange, ImplicitAPI):
2336
2336
  if code == 'WAVES' and not isErc20:
2337
2337
  proxyAddress = address
2338
2338
  else:
2339
- withdrawAddressRequest = {
2339
+ withdrawAddressRequest: dict = {
2340
2340
  'address': address,
2341
2341
  'currency': code,
2342
2342
  }
@@ -2391,7 +2391,7 @@ class wavesexchange(Exchange, ImplicitAPI):
2391
2391
  binary = self.binary_concat_array(byteArray)
2392
2392
  hexSecret = self.binary_to_base16(self.base58_to_binary(self.secret))
2393
2393
  signature = self.axolotl(self.binary_to_base16(binary), hexSecret, 'ed25519')
2394
- request = {
2394
+ request: dict = {
2395
2395
  'senderPublicKey': self.apiKey,
2396
2396
  'amount': amountInteger,
2397
2397
  'fee': fee,
@@ -2420,7 +2420,7 @@ class wavesexchange(Exchange, ImplicitAPI):
2420
2420
  #
2421
2421
  return self.parse_transaction(result, currency)
2422
2422
 
2423
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
2423
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
2424
2424
  #
2425
2425
  # withdraw
2426
2426
  #
ccxt/wazirx.py CHANGED
@@ -322,7 +322,7 @@ class wazirx(Exchange, ImplicitAPI):
322
322
  """
323
323
  self.load_markets()
324
324
  market = self.market(symbol)
325
- request = {
325
+ request: dict = {
326
326
  'symbol': market['id'],
327
327
  'interval': self.safe_string(self.timeframes, timeframe, timeframe),
328
328
  }
@@ -367,7 +367,7 @@ class wazirx(Exchange, ImplicitAPI):
367
367
  """
368
368
  self.load_markets()
369
369
  market = self.market(symbol)
370
- request = {
370
+ request: dict = {
371
371
  'symbol': market['id'],
372
372
  }
373
373
  if limit is not None:
@@ -399,7 +399,7 @@ class wazirx(Exchange, ImplicitAPI):
399
399
  """
400
400
  self.load_markets()
401
401
  market = self.market(symbol)
402
- request = {
402
+ request: dict = {
403
403
  'symbol': market['id'],
404
404
  }
405
405
  ticker = self.publicGetTicker24hr(self.extend(request, params))
@@ -447,7 +447,7 @@ class wazirx(Exchange, ImplicitAPI):
447
447
  # ...
448
448
  # ]
449
449
  #
450
- result = {}
450
+ result: dict = {}
451
451
  for i in range(0, len(tickers)):
452
452
  ticker = tickers[i]
453
453
  parsedTicker = self.parse_ticker(ticker)
@@ -467,7 +467,7 @@ class wazirx(Exchange, ImplicitAPI):
467
467
  """
468
468
  self.load_markets()
469
469
  market = self.market(symbol)
470
- request = {
470
+ request: dict = {
471
471
  'symbol': market['id'],
472
472
  }
473
473
  if limit is not None:
@@ -490,7 +490,7 @@ class wazirx(Exchange, ImplicitAPI):
490
490
  # ]
491
491
  return self.parse_trades(response, market, since, limit)
492
492
 
493
- def parse_trade(self, trade, market: Market = None) -> Trade:
493
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
494
494
  #
495
495
  # {
496
496
  # "id":322307791,
@@ -615,7 +615,7 @@ class wazirx(Exchange, ImplicitAPI):
615
615
  }, market)
616
616
 
617
617
  def parse_balance(self, response) -> Balances:
618
- result = {'info': response}
618
+ result: dict = {'info': response}
619
619
  for i in range(0, len(response)):
620
620
  balance = response[i]
621
621
  id = self.safe_string(balance, 'asset')
@@ -660,7 +660,7 @@ class wazirx(Exchange, ImplicitAPI):
660
660
  raise ArgumentsRequired(self.id + ' fetchOrders() requires a symbol argument')
661
661
  self.load_markets()
662
662
  market = self.market(symbol)
663
- request = {
663
+ request: dict = {
664
664
  'symbol': market['id'],
665
665
  }
666
666
  if since is not None:
@@ -712,7 +712,7 @@ class wazirx(Exchange, ImplicitAPI):
712
712
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
713
713
  """
714
714
  self.load_markets()
715
- request = {}
715
+ request: dict = {}
716
716
  market: Market = None
717
717
  if symbol is not None:
718
718
  market = self.market(symbol)
@@ -760,7 +760,7 @@ class wazirx(Exchange, ImplicitAPI):
760
760
  raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
761
761
  self.load_markets()
762
762
  market = self.market(symbol)
763
- request = {
763
+ request: dict = {
764
764
  'symbol': market['id'],
765
765
  }
766
766
  return self.privateDeleteOpenOrders(self.extend(request, params))
@@ -778,7 +778,7 @@ class wazirx(Exchange, ImplicitAPI):
778
778
  raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
779
779
  self.load_markets()
780
780
  market = self.market(symbol)
781
- request = {
781
+ request: dict = {
782
782
  'symbol': market['id'],
783
783
  'orderId': id,
784
784
  }
@@ -804,7 +804,7 @@ class wazirx(Exchange, ImplicitAPI):
804
804
  raise ExchangeError(self.id + ' createOrder() requires a price argument')
805
805
  self.load_markets()
806
806
  market = self.market(symbol)
807
- request = {
807
+ request: dict = {
808
808
  'symbol': market['id'],
809
809
  'side': side,
810
810
  'quantity': amount,
@@ -830,7 +830,7 @@ class wazirx(Exchange, ImplicitAPI):
830
830
  # }
831
831
  return self.parse_order(response, market)
832
832
 
833
- def parse_order(self, order, market: Market = None) -> Order:
833
+ def parse_order(self, order: dict, market: Market = None) -> Order:
834
834
  # {
835
835
  # "id":1949417813,
836
836
  # "symbol":"ltcusdt",
@@ -877,8 +877,8 @@ class wazirx(Exchange, ImplicitAPI):
877
877
  'trades': [],
878
878
  }, market)
879
879
 
880
- def parse_order_status(self, status):
881
- statuses = {
880
+ def parse_order_status(self, status: Str):
881
+ statuses: dict = {
882
882
  'wait': 'open',
883
883
  'done': 'closed',
884
884
  'cancel': 'canceled',
@@ -941,14 +941,14 @@ class wazirx(Exchange, ImplicitAPI):
941
941
  # }
942
942
  # ]
943
943
  #
944
- result = {}
944
+ result: dict = {}
945
945
  for i in range(0, len(response)):
946
946
  currency = response[i]
947
947
  currencyId = self.safe_string(currency, 'currency')
948
948
  code = self.safe_currency_code(currencyId)
949
949
  name = self.safe_string(currency, 'name')
950
950
  chains = self.safe_list(currency, 'networkList', [])
951
- networks = {}
951
+ networks: dict = {}
952
952
  minPrecision = None
953
953
  minWithdrawFeeString = None
954
954
  minWithdrawString = None
@@ -1041,7 +1041,7 @@ class wazirx(Exchange, ImplicitAPI):
1041
1041
  params = self.omit(params, 'network')
1042
1042
  if networkCode is None:
1043
1043
  raise ArgumentsRequired(self.id + ' fetchDepositAddress() requires a network parameter')
1044
- request = {
1044
+ request: dict = {
1045
1045
  'coin': currency['id'],
1046
1046
  'network': self.network_code_to_id(networkCode, code),
1047
1047
  }
@@ -1073,7 +1073,7 @@ class wazirx(Exchange, ImplicitAPI):
1073
1073
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
1074
1074
  """
1075
1075
  self.load_markets()
1076
- request = {}
1076
+ request: dict = {}
1077
1077
  currency = None
1078
1078
  if code is not None:
1079
1079
  currency = self.currency(code)
@@ -1108,7 +1108,7 @@ class wazirx(Exchange, ImplicitAPI):
1108
1108
  return self.parse_transactions(response, currency, since, limit)
1109
1109
 
1110
1110
  def parse_transaction_status(self, status):
1111
- statuses = {
1111
+ statuses: dict = {
1112
1112
  '0': 'ok',
1113
1113
  '1': 'fail',
1114
1114
  '2': 'pending',
@@ -1116,7 +1116,7 @@ class wazirx(Exchange, ImplicitAPI):
1116
1116
  }
1117
1117
  return self.safe_string(statuses, status, status)
1118
1118
 
1119
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1119
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1120
1120
  #
1121
1121
  # {
1122
1122
  # "address": "0x94df8b352de7f46f64b01d3666bf6e936e44ce60",