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
@@ -371,7 +371,7 @@ class coinlist(Exchange, ImplicitAPI):
371
371
  # }
372
372
  #
373
373
  currencies = self.safe_value(response, 'assets', [])
374
- result = {}
374
+ result: dict = {}
375
375
  for i in range(0, len(currencies)):
376
376
  currency = currencies[i]
377
377
  id = self.safe_string(currency, 'asset')
@@ -505,7 +505,7 @@ class coinlist(Exchange, ImplicitAPI):
505
505
  :returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/#/?id=ticker-structure>`
506
506
  """
507
507
  await self.load_markets()
508
- request = {}
508
+ request: dict = {}
509
509
  tickers = await self.publicGetV1SymbolsSummary(self.extend(request, params))
510
510
  #
511
511
  # {
@@ -541,7 +541,7 @@ class coinlist(Exchange, ImplicitAPI):
541
541
  """
542
542
  await self.load_markets()
543
543
  market = self.market(symbol)
544
- request = {
544
+ request: dict = {
545
545
  'symbol': market['id'],
546
546
  }
547
547
  ticker = await self.publicGetV1SymbolsSymbolSummary(self.extend(request, params))
@@ -631,7 +631,7 @@ class coinlist(Exchange, ImplicitAPI):
631
631
  """
632
632
  await self.load_markets()
633
633
  market = self.market(symbol)
634
- request = {
634
+ request: dict = {
635
635
  'symbol': market['id'],
636
636
  }
637
637
  response = await self.publicGetV1SymbolsSymbolBook(self.extend(request, params))
@@ -672,7 +672,7 @@ class coinlist(Exchange, ImplicitAPI):
672
672
  await self.load_markets()
673
673
  market = self.market(symbol)
674
674
  granularity = self.safe_string(self.timeframes, timeframe)
675
- request = {
675
+ request: dict = {
676
676
  'symbol': market['id'],
677
677
  'granularity': granularity,
678
678
  }
@@ -749,7 +749,7 @@ class coinlist(Exchange, ImplicitAPI):
749
749
  """
750
750
  await self.load_markets()
751
751
  market = self.market(symbol)
752
- request = {
752
+ request: dict = {
753
753
  'symbol': market['id'],
754
754
  }
755
755
  if since is not None:
@@ -788,7 +788,7 @@ class coinlist(Exchange, ImplicitAPI):
788
788
  auctions = self.safe_list(response, 'auctions', [])
789
789
  return self.parse_trades(auctions, market, since, limit)
790
790
 
791
- def parse_trade(self, trade, market: Market = None) -> Trade:
791
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
792
792
  #
793
793
  # fetchTrades
794
794
  # {
@@ -926,7 +926,7 @@ class coinlist(Exchange, ImplicitAPI):
926
926
  # }
927
927
  #
928
928
  fees = self.safe_value(response, 'fees_by_symbols', {})
929
- result = {}
929
+ result: dict = {}
930
930
  groupsOfSymbols = list(fees.keys())
931
931
  for i in range(0, len(groupsOfSymbols)):
932
932
  group = groupsOfSymbols[i]
@@ -939,7 +939,7 @@ class coinlist(Exchange, ImplicitAPI):
939
939
  id = ids[j]
940
940
  market = self.safe_market(id)
941
941
  symbol = market['symbol']
942
- info = {}
942
+ info: dict = {}
943
943
  info[group] = feeTiers
944
944
  result[symbol] = {
945
945
  'info': info,
@@ -1096,7 +1096,7 @@ class coinlist(Exchange, ImplicitAPI):
1096
1096
  # "net_liquidation_value_usd": "string"
1097
1097
  # }
1098
1098
  #
1099
- result = {
1099
+ result: dict = {
1100
1100
  'info': response,
1101
1101
  'timestamp': None,
1102
1102
  'datetime': None,
@@ -1125,7 +1125,7 @@ class coinlist(Exchange, ImplicitAPI):
1125
1125
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
1126
1126
  """
1127
1127
  await self.load_markets()
1128
- request = {}
1128
+ request: dict = {}
1129
1129
  market = None
1130
1130
  if symbol is not None:
1131
1131
  market = self.market(symbol)
@@ -1181,7 +1181,7 @@ class coinlist(Exchange, ImplicitAPI):
1181
1181
  :param dict [params]: extra parameters specific to the exchange API endpoint
1182
1182
  :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
1183
1183
  """
1184
- request = {
1184
+ request: dict = {
1185
1185
  'order_id': id,
1186
1186
  }
1187
1187
  return await self.fetch_my_trades(symbol, since, limit, self.extend(request, params))
@@ -1202,7 +1202,7 @@ class coinlist(Exchange, ImplicitAPI):
1202
1202
  status = self.safe_string(params, 'status')
1203
1203
  if status is None:
1204
1204
  status = ['accepted', 'done', 'canceled', 'rejected', 'pending']
1205
- request = {
1205
+ request: dict = {
1206
1206
  'status': status,
1207
1207
  }
1208
1208
  market = None
@@ -1257,7 +1257,7 @@ class coinlist(Exchange, ImplicitAPI):
1257
1257
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1258
1258
  """
1259
1259
  await self.load_markets()
1260
- request = {
1260
+ request: dict = {
1261
1261
  'order_id': id,
1262
1262
  }
1263
1263
  response = await self.privateGetV1OrdersOrderId(self.extend(request, params))
@@ -1299,7 +1299,7 @@ class coinlist(Exchange, ImplicitAPI):
1299
1299
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1300
1300
  """
1301
1301
  await self.load_markets()
1302
- request = {
1302
+ request: dict = {
1303
1303
  'status': 'accepted',
1304
1304
  }
1305
1305
  return self.fetch_orders(symbol, since, limit, self.extend(request, params))
@@ -1316,7 +1316,7 @@ class coinlist(Exchange, ImplicitAPI):
1316
1316
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1317
1317
  """
1318
1318
  await self.load_markets()
1319
- request = {
1319
+ request: dict = {
1320
1320
  'status': 'done',
1321
1321
  }
1322
1322
  return self.fetch_orders(symbol, since, limit, self.extend(request, params))
@@ -1333,7 +1333,7 @@ class coinlist(Exchange, ImplicitAPI):
1333
1333
  :returns dict: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1334
1334
  """
1335
1335
  await self.load_markets()
1336
- request = {
1336
+ request: dict = {
1337
1337
  'status': 'canceled',
1338
1338
  }
1339
1339
  return self.fetch_orders(symbol, since, limit, self.extend(request, params))
@@ -1348,7 +1348,7 @@ class coinlist(Exchange, ImplicitAPI):
1348
1348
  """
1349
1349
  await self.load_markets()
1350
1350
  market = None
1351
- request = {}
1351
+ request: dict = {}
1352
1352
  if symbol is not None:
1353
1353
  market = self.market(symbol)
1354
1354
  request['symbol'] = market['id']
@@ -1372,7 +1372,7 @@ class coinlist(Exchange, ImplicitAPI):
1372
1372
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1373
1373
  """
1374
1374
  await self.load_markets()
1375
- request = {
1375
+ request: dict = {
1376
1376
  'order_id': id,
1377
1377
  }
1378
1378
  response = await self.privateDeleteV1OrdersOrderId(self.extend(request, params))
@@ -1416,7 +1416,7 @@ class coinlist(Exchange, ImplicitAPI):
1416
1416
  """
1417
1417
  await self.load_markets()
1418
1418
  market = self.market(symbol)
1419
- request = {
1419
+ request: dict = {
1420
1420
  'symbol': market['id'],
1421
1421
  'type': type,
1422
1422
  'side': side,
@@ -1481,7 +1481,7 @@ class coinlist(Exchange, ImplicitAPI):
1481
1481
  if amount is None:
1482
1482
  raise ArgumentsRequired(self.id + ' editOrder() requires an amount argument')
1483
1483
  market = self.market(symbol)
1484
- request = {
1484
+ request: dict = {
1485
1485
  'order_id': id,
1486
1486
  'type': type,
1487
1487
  'side': side,
@@ -1492,7 +1492,7 @@ class coinlist(Exchange, ImplicitAPI):
1492
1492
  response = await self.privatePatchV1OrdersOrderId(self.extend(request, params))
1493
1493
  return self.parse_order(response, market)
1494
1494
 
1495
- def parse_order(self, order, market: Market = None) -> Order:
1495
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1496
1496
  #
1497
1497
  # fetchOrder
1498
1498
  # {
@@ -1616,8 +1616,8 @@ class coinlist(Exchange, ImplicitAPI):
1616
1616
  'postOnly': postOnly,
1617
1617
  }, market)
1618
1618
 
1619
- def parse_order_status(self, status):
1620
- statuses = {
1619
+ def parse_order_status(self, status: Str):
1620
+ statuses: dict = {
1621
1621
  'pending': 'open',
1622
1622
  'accepted': 'open',
1623
1623
  'rejected': 'rejected',
@@ -1627,7 +1627,7 @@ class coinlist(Exchange, ImplicitAPI):
1627
1627
  return self.safe_string(statuses, status, status)
1628
1628
 
1629
1629
  def parse_order_type(self, status):
1630
- statuses = {
1630
+ statuses: dict = {
1631
1631
  'market': 'market',
1632
1632
  'limit': 'limit',
1633
1633
  'stop_market': 'market',
@@ -1652,7 +1652,7 @@ class coinlist(Exchange, ImplicitAPI):
1652
1652
  """
1653
1653
  await self.load_markets()
1654
1654
  currency = self.currency(code)
1655
- request = {
1655
+ request: dict = {
1656
1656
  'asset': currency['id'],
1657
1657
  'amount': self.currency_to_precision(code, amount),
1658
1658
  }
@@ -1700,7 +1700,7 @@ class coinlist(Exchange, ImplicitAPI):
1700
1700
  currency = None
1701
1701
  if code is not None:
1702
1702
  currency = self.currency(code)
1703
- request = {}
1703
+ request: dict = {}
1704
1704
  if since is not None:
1705
1705
  request['start_time'] = self.iso8601(since)
1706
1706
  if limit is not None:
@@ -1791,7 +1791,7 @@ class coinlist(Exchange, ImplicitAPI):
1791
1791
  }
1792
1792
 
1793
1793
  def parse_transfer_status(self, status: Str) -> Str:
1794
- statuses = {
1794
+ statuses: dict = {
1795
1795
  'confirmed': 'ok',
1796
1796
  }
1797
1797
  return self.safe_string(statuses, status, status)
@@ -1813,7 +1813,7 @@ class coinlist(Exchange, ImplicitAPI):
1813
1813
  raise ArgumentsRequired(self.id + ' fetchDepositsWithdrawals() requires a traderId argument in the params')
1814
1814
  await self.load_markets()
1815
1815
  currency = self.currency(code)
1816
- request = {
1816
+ request: dict = {
1817
1817
  'asset': currency['id'],
1818
1818
  'trader_id': traderId,
1819
1819
  }
@@ -1881,7 +1881,7 @@ class coinlist(Exchange, ImplicitAPI):
1881
1881
  """
1882
1882
  await self.load_markets()
1883
1883
  currency = self.currency(code)
1884
- request = {
1884
+ request: dict = {
1885
1885
  'asset': currency['id'],
1886
1886
  'amount': self.currency_to_precision(code, amount),
1887
1887
  'destination_address': address,
@@ -1895,7 +1895,7 @@ class coinlist(Exchange, ImplicitAPI):
1895
1895
  data = self.safe_dict(response, 'data', {})
1896
1896
  return self.parse_transaction(data, currency)
1897
1897
 
1898
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1898
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1899
1899
  # withdraw
1900
1900
  #
1901
1901
  # {
@@ -1955,7 +1955,7 @@ class coinlist(Exchange, ImplicitAPI):
1955
1955
  }
1956
1956
 
1957
1957
  def parse_transaction_type(self, type):
1958
- types = {
1958
+ types: dict = {
1959
1959
  'CRYPTO_DEPOSIT': 'deposit',
1960
1960
  'CRYPTO_WITHDRAWAL': 'withdrawal',
1961
1961
  'PRO_TRANSFER': 'transfer',
@@ -1977,7 +1977,7 @@ class coinlist(Exchange, ImplicitAPI):
1977
1977
  if traderId is None:
1978
1978
  raise ArgumentsRequired(self.id + ' fetchLedger() requires a traderId argument in the params')
1979
1979
  await self.load_markets()
1980
- request = {
1980
+ request: dict = {
1981
1981
  'trader_id': traderId,
1982
1982
  }
1983
1983
  currency = None
@@ -2061,7 +2061,7 @@ class coinlist(Exchange, ImplicitAPI):
2061
2061
  ledger = self.safe_value(response, 'transactions', [])
2062
2062
  return self.parse_ledger(ledger, currency, since, limit)
2063
2063
 
2064
- def parse_ledger_entry(self, item, currency: Currency = None):
2064
+ def parse_ledger_entry(self, item: dict, currency: Currency = None):
2065
2065
  #
2066
2066
  # deposit transaction from wallet(funding) to pro(trading)
2067
2067
  # {
@@ -2165,7 +2165,7 @@ class coinlist(Exchange, ImplicitAPI):
2165
2165
  }
2166
2166
 
2167
2167
  def parse_ledger_entry_type(self, type):
2168
- types = {
2168
+ types: dict = {
2169
2169
  'atomic token swap': 'trade',
2170
2170
  'fee': 'fee',
2171
2171
  'deposit': 'transfer',
@@ -323,7 +323,7 @@ class coinmate(Exchange, ImplicitAPI):
323
323
 
324
324
  def parse_balance(self, response) -> Balances:
325
325
  balances = self.safe_value(response, 'data', {})
326
- result = {'info': response}
326
+ result: dict = {'info': response}
327
327
  currencyIds = list(balances.keys())
328
328
  for i in range(0, len(currencyIds)):
329
329
  currencyId = currencyIds[i]
@@ -358,7 +358,7 @@ class coinmate(Exchange, ImplicitAPI):
358
358
  """
359
359
  await self.load_markets()
360
360
  market = self.market(symbol)
361
- request = {
361
+ request: dict = {
362
362
  'currencyPair': market['id'],
363
363
  'groupByPriceLimit': 'False',
364
364
  }
@@ -377,7 +377,7 @@ class coinmate(Exchange, ImplicitAPI):
377
377
  """
378
378
  await self.load_markets()
379
379
  market = self.market(symbol)
380
- request = {
380
+ request: dict = {
381
381
  'currencyPair': market['id'],
382
382
  }
383
383
  response = await self.publicGetTicker(self.extend(request, params))
@@ -433,7 +433,7 @@ class coinmate(Exchange, ImplicitAPI):
433
433
  #
434
434
  data = self.safe_value(response, 'data', {})
435
435
  keys = list(data.keys())
436
- result = {}
436
+ result: dict = {}
437
437
  for i in range(0, len(keys)):
438
438
  market = self.market(keys[i])
439
439
  ticker = self.parse_ticker(self.safe_value(data, keys[i]), market)
@@ -490,7 +490,7 @@ class coinmate(Exchange, ImplicitAPI):
490
490
  :returns dict: a list of `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
491
491
  """
492
492
  await self.load_markets()
493
- request = {
493
+ request: dict = {
494
494
  'limit': 1000,
495
495
  }
496
496
  if limit is not None:
@@ -505,7 +505,7 @@ class coinmate(Exchange, ImplicitAPI):
505
505
  return self.parse_transactions(items, None, since, limit)
506
506
 
507
507
  def parse_transaction_status(self, status):
508
- statuses = {
508
+ statuses: dict = {
509
509
  'COMPLETED': 'ok',
510
510
  'WAITING': 'pending',
511
511
  'SENT': 'pending',
@@ -516,7 +516,7 @@ class coinmate(Exchange, ImplicitAPI):
516
516
  }
517
517
  return self.safe_string(statuses, status, status)
518
518
 
519
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
519
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
520
520
  #
521
521
  # deposits
522
522
  #
@@ -613,7 +613,7 @@ class coinmate(Exchange, ImplicitAPI):
613
613
  if method is None:
614
614
  allowedCurrencies = list(methods.keys())
615
615
  raise ExchangeError(self.id + ' withdraw() only allows withdrawing the following currencies: ' + ', '.join(allowedCurrencies))
616
- request = {
616
+ request: dict = {
617
617
  'amount': self.currency_to_precision(code, amount),
618
618
  'address': address,
619
619
  }
@@ -654,7 +654,7 @@ class coinmate(Exchange, ImplicitAPI):
654
654
  await self.load_markets()
655
655
  if limit is None:
656
656
  limit = 1000
657
- request = {
657
+ request: dict = {
658
658
  'limit': limit,
659
659
  }
660
660
  if symbol is not None:
@@ -666,7 +666,7 @@ class coinmate(Exchange, ImplicitAPI):
666
666
  data = self.safe_list(response, 'data', [])
667
667
  return self.parse_trades(data, None, since, limit)
668
668
 
669
- def parse_trade(self, trade, market: Market = None) -> Trade:
669
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
670
670
  #
671
671
  # fetchMyTrades(private)
672
672
  #
@@ -740,7 +740,7 @@ class coinmate(Exchange, ImplicitAPI):
740
740
  """
741
741
  await self.load_markets()
742
742
  market = self.market(symbol)
743
- request = {
743
+ request: dict = {
744
744
  'currencyPair': market['id'],
745
745
  'minutesIntoHistory': 10,
746
746
  }
@@ -774,7 +774,7 @@ class coinmate(Exchange, ImplicitAPI):
774
774
  """
775
775
  await self.load_markets()
776
776
  market = self.market(symbol)
777
- request = {
777
+ request: dict = {
778
778
  'currencyPair': market['id'],
779
779
  }
780
780
  response = await self.privatePostTraderFees(self.extend(request, params))
@@ -810,7 +810,7 @@ class coinmate(Exchange, ImplicitAPI):
810
810
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
811
811
  """
812
812
  response = await self.privatePostOpenOrders(self.extend({}, params))
813
- extension = {'status': 'open'}
813
+ extension: dict = {'status': 'open'}
814
814
  return self.parse_orders(response['data'], None, since, limit, extension)
815
815
 
816
816
  async def fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
@@ -827,7 +827,7 @@ class coinmate(Exchange, ImplicitAPI):
827
827
  raise ArgumentsRequired(self.id + ' fetchOrders() requires a symbol argument')
828
828
  await self.load_markets()
829
829
  market = self.market(symbol)
830
- request = {
830
+ request: dict = {
831
831
  'currencyPair': market['id'],
832
832
  }
833
833
  # offset param that appears in other parts of the API doesn't appear to be supported here
@@ -836,8 +836,8 @@ class coinmate(Exchange, ImplicitAPI):
836
836
  response = await self.privatePostOrderHistory(self.extend(request, params))
837
837
  return self.parse_orders(response['data'], market, since, limit)
838
838
 
839
- def parse_order_status(self, status):
840
- statuses = {
839
+ def parse_order_status(self, status: Str):
840
+ statuses: dict = {
841
841
  'FILLED': 'closed',
842
842
  'CANCELLED': 'canceled',
843
843
  'PARTIALLY_FILLED': 'open',
@@ -845,14 +845,14 @@ class coinmate(Exchange, ImplicitAPI):
845
845
  }
846
846
  return self.safe_string(statuses, status, status)
847
847
 
848
- def parse_order_type(self, type):
849
- types = {
848
+ def parse_order_type(self, type: Str):
849
+ types: dict = {
850
850
  'LIMIT': 'limit',
851
851
  'MARKET': 'market',
852
852
  }
853
853
  return self.safe_string(types, type, type)
854
854
 
855
- def parse_order(self, order, market: Market = None) -> Order:
855
+ def parse_order(self, order: dict, market: Market = None) -> Order:
856
856
  #
857
857
  # limit sell
858
858
  #
@@ -951,7 +951,7 @@ class coinmate(Exchange, ImplicitAPI):
951
951
  await self.load_markets()
952
952
  method = 'privatePost' + self.capitalize(side)
953
953
  market = self.market(symbol)
954
- request = {
954
+ request: dict = {
955
955
  'currencyPair': market['id'],
956
956
  }
957
957
  if type == 'market':
@@ -981,7 +981,7 @@ class coinmate(Exchange, ImplicitAPI):
981
981
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
982
982
  """
983
983
  await self.load_markets()
984
- request = {
984
+ request: dict = {
985
985
  'orderId': id,
986
986
  }
987
987
  market = None
@@ -1001,7 +1001,7 @@ class coinmate(Exchange, ImplicitAPI):
1001
1001
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1002
1002
  """
1003
1003
  # {"error":false,"errorMessage":null,"data":{"success":true,"remainingAmount":0.01}}
1004
- request = {'orderId': id}
1004
+ request: dict = {'orderId': id}
1005
1005
  response = await self.privatePostCancelOrderWithInfo(self.extend(request, params))
1006
1006
  return {
1007
1007
  'info': response,
@@ -308,7 +308,7 @@ class coinmetro(Exchange, ImplicitAPI):
308
308
  # ...
309
309
  # ]
310
310
  #
311
- result = {}
311
+ result: dict = {}
312
312
  for i in range(0, len(response)):
313
313
  currency = response[i]
314
314
  id = self.safe_string(currency, 'symbol')
@@ -455,7 +455,7 @@ class coinmetro(Exchange, ImplicitAPI):
455
455
  baseId = restId
456
456
  quoteId = currencyId
457
457
  break
458
- result = {
458
+ result: dict = {
459
459
  'baseId': baseId,
460
460
  'quoteId': quoteId,
461
461
  }
@@ -468,7 +468,7 @@ class coinmetro(Exchange, ImplicitAPI):
468
468
  limits = self.safe_value(currency, 'limits', {})
469
469
  amountLimits = self.safe_value(limits, 'amount', {})
470
470
  minLimit = self.safe_number(amountLimits, 'min')
471
- result = {
471
+ result: dict = {
472
472
  'precision': precision,
473
473
  'minLimit': minLimit,
474
474
  }
@@ -488,7 +488,7 @@ class coinmetro(Exchange, ImplicitAPI):
488
488
  """
489
489
  await self.load_markets()
490
490
  market = self.market(symbol)
491
- request = {
491
+ request: dict = {
492
492
  'pair': market['id'],
493
493
  'timeframe': self.safe_string(self.timeframes, timeframe, timeframe),
494
494
  }
@@ -559,7 +559,7 @@ class coinmetro(Exchange, ImplicitAPI):
559
559
  """
560
560
  await self.load_markets()
561
561
  market = self.market(symbol)
562
- request = {
562
+ request: dict = {
563
563
  'pair': market['id'],
564
564
  }
565
565
  if since is not None:
@@ -613,7 +613,7 @@ class coinmetro(Exchange, ImplicitAPI):
613
613
  market = None
614
614
  if symbol is not None:
615
615
  market = self.market(symbol)
616
- request = {}
616
+ request: dict = {}
617
617
  if since is not None:
618
618
  request['since'] = since
619
619
  else:
@@ -636,7 +636,7 @@ class coinmetro(Exchange, ImplicitAPI):
636
636
  #
637
637
  return self.parse_trades(response, market, since, limit)
638
638
 
639
- def parse_trade(self, trade, market: Market = None) -> Trade:
639
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
640
640
  #
641
641
  # fetchTrades
642
642
  # {
@@ -715,7 +715,7 @@ class coinmetro(Exchange, ImplicitAPI):
715
715
  """
716
716
  await self.load_markets()
717
717
  market = self.market(symbol)
718
- request = {
718
+ request: dict = {
719
719
  'pair': market['id'],
720
720
  }
721
721
  response = await self.publicGetExchangeBookPair(self.extend(request, params))
@@ -749,7 +749,7 @@ class coinmetro(Exchange, ImplicitAPI):
749
749
  book = self.safe_value(response, 'book', {})
750
750
  rawBids = self.safe_value(book, 'bid', {})
751
751
  rawAsks = self.safe_value(book, 'ask', {})
752
- rawOrderbook = {
752
+ rawOrderbook: dict = {
753
753
  'bids': rawBids,
754
754
  'asks': rawAsks,
755
755
  }
@@ -827,7 +827,7 @@ class coinmetro(Exchange, ImplicitAPI):
827
827
  #
828
828
  latestPrices = self.safe_value(response, 'latestPrices', [])
829
829
  twentyFourHInfos = self.safe_value(response, '24hInfo', [])
830
- tickersObject = {}
830
+ tickersObject: dict = {}
831
831
  # merging info from two lists into one
832
832
  for i in range(0, len(latestPrices)):
833
833
  latestPrice = latestPrices[i]
@@ -944,7 +944,7 @@ class coinmetro(Exchange, ImplicitAPI):
944
944
  # ...
945
945
  # ]
946
946
  #
947
- result = {
947
+ result: dict = {
948
948
  'info': balances,
949
949
  }
950
950
  for i in range(0, len(balances)):
@@ -969,7 +969,7 @@ class coinmetro(Exchange, ImplicitAPI):
969
969
  :returns dict: a `ledger structure <https://docs.ccxt.com/#/?id=ledger-structure>`
970
970
  """
971
971
  await self.load_markets()
972
- request = {}
972
+ request: dict = {}
973
973
  if since is not None:
974
974
  request['since'] = since
975
975
  else:
@@ -1079,7 +1079,7 @@ class coinmetro(Exchange, ImplicitAPI):
1079
1079
  ledger.append(rawLedgerEntry)
1080
1080
  return self.parse_ledger(ledger, currency, since, limit)
1081
1081
 
1082
- def parse_ledger_entry(self, item, currency: Currency = None):
1082
+ def parse_ledger_entry(self, item: dict, currency: Currency = None):
1083
1083
  datetime = self.safe_string(item, 'timestamp')
1084
1084
  currencyId = self.safe_string(item, 'currencyId')
1085
1085
  item = self.omit(item, 'currencyId')
@@ -1134,7 +1134,7 @@ class coinmetro(Exchange, ImplicitAPI):
1134
1134
  return [type, referenceId]
1135
1135
 
1136
1136
  def parse_ledger_entry_type(self, type):
1137
- types = {
1137
+ types: dict = {
1138
1138
  'Deposit': 'transaction',
1139
1139
  'Withdraw': 'transaction',
1140
1140
  'Order': 'trade',
@@ -1164,7 +1164,7 @@ class coinmetro(Exchange, ImplicitAPI):
1164
1164
  """
1165
1165
  await self.load_markets()
1166
1166
  market = self.market(symbol)
1167
- request = {
1167
+ request: dict = {
1168
1168
  }
1169
1169
  request['orderType'] = type
1170
1170
  precisedAmount = None
@@ -1249,7 +1249,7 @@ class coinmetro(Exchange, ImplicitAPI):
1249
1249
  return request
1250
1250
 
1251
1251
  def encode_order_time_in_force(self, timeInForce):
1252
- timeInForceTypes = {
1252
+ timeInForceTypes: dict = {
1253
1253
  'GTC': 1,
1254
1254
  'IOC': 2,
1255
1255
  'GTD': 3,
@@ -1269,7 +1269,7 @@ class coinmetro(Exchange, ImplicitAPI):
1269
1269
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1270
1270
  """
1271
1271
  await self.load_markets()
1272
- request = {
1272
+ request: dict = {
1273
1273
  'orderID': id,
1274
1274
  }
1275
1275
  marginMode = None
@@ -1317,7 +1317,7 @@ class coinmetro(Exchange, ImplicitAPI):
1317
1317
  orderId = self.safe_string(params, 'orderId')
1318
1318
  if orderId is None:
1319
1319
  raise ArgumentsRequired(self.id + ' closePosition() requires a orderId parameter')
1320
- request = {
1320
+ request: dict = {
1321
1321
  'orderID': orderId,
1322
1322
  }
1323
1323
  response = await self.privatePostExchangeOrdersCloseOrderID(self.extend(request, params))
@@ -1387,7 +1387,7 @@ class coinmetro(Exchange, ImplicitAPI):
1387
1387
  market = None
1388
1388
  if symbol is not None:
1389
1389
  market = self.market(symbol)
1390
- request = {}
1390
+ request: dict = {}
1391
1391
  if since is not None:
1392
1392
  request['since'] = since
1393
1393
  response = await self.privateGetExchangeOrdersHistorySince(self.extend(request, params))
@@ -1403,7 +1403,7 @@ class coinmetro(Exchange, ImplicitAPI):
1403
1403
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1404
1404
  """
1405
1405
  await self.load_markets()
1406
- request = {
1406
+ request: dict = {
1407
1407
  'orderID': id,
1408
1408
  }
1409
1409
  response = await self.privateGetExchangeOrdersStatusOrderID(self.extend(request, params))
@@ -1444,7 +1444,7 @@ class coinmetro(Exchange, ImplicitAPI):
1444
1444
  #
1445
1445
  return self.parse_order(response)
1446
1446
 
1447
- def parse_order(self, order, market: Market = None) -> Order:
1447
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1448
1448
  #
1449
1449
  # createOrder market
1450
1450
  # {
@@ -1735,7 +1735,7 @@ class coinmetro(Exchange, ImplicitAPI):
1735
1735
  await self.load_markets()
1736
1736
  currency = self.currency(code)
1737
1737
  currencyId = currency['id']
1738
- request = {}
1738
+ request: dict = {}
1739
1739
  request[currencyId] = self.currency_to_precision(code, amount)
1740
1740
  response = await self.privatePutUsersMarginCollateral(self.extend(request, params))
1741
1741
  #