ccxt 4.3.30__py2.py3-none-any.whl → 4.3.32__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/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 +208 -175
  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 +48 -36
  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 +208 -175
  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 +20 -20
  201. ccxt/pro/coinbase.py +32 -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/test/test_async.py +1 -1
  244. ccxt/test/test_sync.py +1 -1
  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 +37 -37
  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.30.dist-info → ccxt-4.3.32.dist-info}/METADATA +4 -4
  258. {ccxt-4.3.30.dist-info → ccxt-4.3.32.dist-info}/RECORD +260 -260
  259. {ccxt-4.3.30.dist-info → ccxt-4.3.32.dist-info}/WHEEL +0 -0
  260. {ccxt-4.3.30.dist-info → ccxt-4.3.32.dist-info}/top_level.txt +0 -0
@@ -446,7 +446,7 @@ class latoken(Exchange, ImplicitAPI):
446
446
  # },
447
447
  # ]
448
448
  #
449
- result = {}
449
+ result: dict = {}
450
450
  for i in range(0, len(response)):
451
451
  currency = response[i]
452
452
  id = self.safe_string(currency, 'id')
@@ -519,7 +519,7 @@ class latoken(Exchange, ImplicitAPI):
519
519
  # }
520
520
  # ]
521
521
  #
522
- result = {
522
+ result: dict = {
523
523
  'info': response,
524
524
  'timestamp': None,
525
525
  'datetime': None,
@@ -560,7 +560,7 @@ class latoken(Exchange, ImplicitAPI):
560
560
  """
561
561
  await self.load_markets()
562
562
  market = self.market(symbol)
563
- request = {
563
+ request: dict = {
564
564
  'currency': market['baseId'],
565
565
  'quote': market['quoteId'],
566
566
  }
@@ -642,7 +642,7 @@ class latoken(Exchange, ImplicitAPI):
642
642
  """
643
643
  await self.load_markets()
644
644
  market = self.market(symbol)
645
- request = {
645
+ request: dict = {
646
646
  'base': market['baseId'],
647
647
  'quote': market['quoteId'],
648
648
  }
@@ -703,7 +703,7 @@ class latoken(Exchange, ImplicitAPI):
703
703
  #
704
704
  return self.parse_tickers(response, symbols)
705
705
 
706
- def parse_trade(self, trade, market: Market = None) -> Trade:
706
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
707
707
  #
708
708
  # fetchTrades(public)
709
709
  #
@@ -796,7 +796,7 @@ class latoken(Exchange, ImplicitAPI):
796
796
  """
797
797
  await self.load_markets()
798
798
  market = self.market(symbol)
799
- request = {
799
+ request: dict = {
800
800
  'currency': market['baseId'],
801
801
  'quote': market['quoteId'],
802
802
  # 'from': str(since), # milliseconds
@@ -837,7 +837,7 @@ class latoken(Exchange, ImplicitAPI):
837
837
  async def fetch_public_trading_fee(self, symbol: str, params={}):
838
838
  await self.load_markets()
839
839
  market = self.market(symbol)
840
- request = {
840
+ request: dict = {
841
841
  'currency': market['baseId'],
842
842
  'quote': market['quoteId'],
843
843
  }
@@ -862,7 +862,7 @@ class latoken(Exchange, ImplicitAPI):
862
862
  async def fetch_private_trading_fee(self, symbol: str, params={}):
863
863
  await self.load_markets()
864
864
  market = self.market(symbol)
865
- request = {
865
+ request: dict = {
866
866
  'currency': market['baseId'],
867
867
  'quote': market['quoteId'],
868
868
  }
@@ -896,7 +896,7 @@ class latoken(Exchange, ImplicitAPI):
896
896
  :returns Trade[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
897
897
  """
898
898
  await self.load_markets()
899
- request = {
899
+ request: dict = {
900
900
  # 'currency': market['baseId'],
901
901
  # 'quote': market['quoteId'],
902
902
  # 'from': self.milliseconds(),
@@ -933,8 +933,8 @@ class latoken(Exchange, ImplicitAPI):
933
933
  #
934
934
  return self.parse_trades(response, market, since, limit)
935
935
 
936
- def parse_order_status(self, status):
937
- statuses = {
936
+ def parse_order_status(self, status: Str):
937
+ statuses: dict = {
938
938
  'ORDER_STATUS_PLACED': 'open',
939
939
  'ORDER_STATUS_CLOSED': 'closed',
940
940
  'ORDER_STATUS_CANCELLED': 'canceled',
@@ -942,21 +942,21 @@ class latoken(Exchange, ImplicitAPI):
942
942
  return self.safe_string(statuses, status, status)
943
943
 
944
944
  def parse_order_type(self, status):
945
- statuses = {
945
+ statuses: dict = {
946
946
  'ORDER_TYPE_MARKET': 'market',
947
947
  'ORDER_TYPE_LIMIT': 'limit',
948
948
  }
949
949
  return self.safe_string(statuses, status, status)
950
950
 
951
- def parse_time_in_force(self, timeInForce):
952
- timeInForces = {
951
+ def parse_time_in_force(self, timeInForce: Str):
952
+ timeInForces: dict = {
953
953
  'ORDER_CONDITION_GOOD_TILL_CANCELLED': 'GTC',
954
954
  'ORDER_CONDITION_IMMEDIATE_OR_CANCEL': 'IOC',
955
955
  'ORDER_CONDITION_FILL_OR_KILL': 'FOK',
956
956
  }
957
957
  return self.safe_string(timeInForces, timeInForce, timeInForce)
958
958
 
959
- def parse_order(self, order, market: Market = None) -> Order:
959
+ def parse_order(self, order: dict, market: Market = None) -> Order:
960
960
  #
961
961
  # createOrder
962
962
  #
@@ -1077,7 +1077,7 @@ class latoken(Exchange, ImplicitAPI):
1077
1077
  params = self.omit(params, 'stop')
1078
1078
  # privateGetAuthOrderActive doesn't work even though its listed at https://api.latoken.com/doc/v2/#tag/Order/operation/getMyActiveOrders
1079
1079
  market = self.market(symbol)
1080
- request = {
1080
+ request: dict = {
1081
1081
  'currency': market['baseId'],
1082
1082
  'quote': market['quoteId'],
1083
1083
  }
@@ -1124,7 +1124,7 @@ class latoken(Exchange, ImplicitAPI):
1124
1124
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1125
1125
  """
1126
1126
  await self.load_markets()
1127
- request = {
1127
+ request: dict = {
1128
1128
  # 'currency': market['baseId'],
1129
1129
  # 'quote': market['quoteId'],
1130
1130
  # 'from': self.milliseconds(),
@@ -1184,7 +1184,7 @@ class latoken(Exchange, ImplicitAPI):
1184
1184
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1185
1185
  """
1186
1186
  await self.load_markets()
1187
- request = {
1187
+ request: dict = {
1188
1188
  'id': id,
1189
1189
  }
1190
1190
  isTrigger = self.safe_value_2(params, 'trigger', 'stop')
@@ -1237,7 +1237,7 @@ class latoken(Exchange, ImplicitAPI):
1237
1237
  await self.load_markets()
1238
1238
  market = self.market(symbol)
1239
1239
  uppercaseType = type.upper()
1240
- request = {
1240
+ request: dict = {
1241
1241
  'baseCurrency': market['baseId'],
1242
1242
  'quoteCurrency': market['quoteId'],
1243
1243
  'side': side.upper(), # "BUY", "BID", "SELL", "ASK"
@@ -1285,7 +1285,7 @@ class latoken(Exchange, ImplicitAPI):
1285
1285
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1286
1286
  """
1287
1287
  await self.load_markets()
1288
- request = {
1288
+ request: dict = {
1289
1289
  'id': id,
1290
1290
  }
1291
1291
  isTrigger = self.safe_value_2(params, 'trigger', 'stop')
@@ -1317,7 +1317,7 @@ class latoken(Exchange, ImplicitAPI):
1317
1317
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1318
1318
  """
1319
1319
  await self.load_markets()
1320
- request = {
1320
+ request: dict = {
1321
1321
  # 'currency': market['baseId'],
1322
1322
  # 'quote': market['quoteId'],
1323
1323
  }
@@ -1358,7 +1358,7 @@ class latoken(Exchange, ImplicitAPI):
1358
1358
  :returns dict: a list of `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
1359
1359
  """
1360
1360
  await self.load_markets()
1361
- request = {
1361
+ request: dict = {
1362
1362
  # 'page': '1',
1363
1363
  # 'size': 100,
1364
1364
  }
@@ -1395,7 +1395,7 @@ class latoken(Exchange, ImplicitAPI):
1395
1395
  content = self.safe_list(response, 'content', [])
1396
1396
  return self.parse_transactions(content, currency, since, limit)
1397
1397
 
1398
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1398
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1399
1399
  #
1400
1400
  # {
1401
1401
  # "id":"fbf7d0d1-2629-4ad8-9def-7a1dba423362",
@@ -1458,7 +1458,7 @@ class latoken(Exchange, ImplicitAPI):
1458
1458
  }
1459
1459
 
1460
1460
  def parse_transaction_status(self, status):
1461
- statuses = {
1461
+ statuses: dict = {
1462
1462
  'TRANSACTION_STATUS_CONFIRMED': 'ok',
1463
1463
  'TRANSACTION_STATUS_EXECUTED': 'ok',
1464
1464
  'TRANSACTION_STATUS_CANCELLED': 'canceled',
@@ -1466,7 +1466,7 @@ class latoken(Exchange, ImplicitAPI):
1466
1466
  return self.safe_string(statuses, status, status)
1467
1467
 
1468
1468
  def parse_transaction_type(self, type):
1469
- types = {
1469
+ types: dict = {
1470
1470
  'TRANSACTION_TYPE_DEPOSIT': 'deposit',
1471
1471
  'TRANSACTION_TYPE_WITHDRAWAL': 'withdrawal',
1472
1472
  }
@@ -1534,7 +1534,7 @@ class latoken(Exchange, ImplicitAPI):
1534
1534
  """
1535
1535
  await self.load_markets()
1536
1536
  currency = self.currency(code)
1537
- request = {
1537
+ request: dict = {
1538
1538
  'currency': currency['id'],
1539
1539
  'recipient': toAccount,
1540
1540
  'value': self.currency_to_precision(code, amount),
@@ -1609,7 +1609,7 @@ class latoken(Exchange, ImplicitAPI):
1609
1609
  }
1610
1610
 
1611
1611
  def parse_transfer_status(self, status: Str) -> Str:
1612
- statuses = {
1612
+ statuses: dict = {
1613
1613
  'TRANSFER_STATUS_COMPLETED': 'ok',
1614
1614
  'TRANSFER_STATUS_PENDING': 'pending',
1615
1615
  'TRANSFER_STATUS_REJECTED': 'failed',
@@ -440,7 +440,7 @@ class lbank(Exchange, ImplicitAPI):
440
440
  return result
441
441
 
442
442
  async def fetch_swap_markets(self, params={}):
443
- request = {
443
+ request: dict = {
444
444
  'productGroup': 'SwapU',
445
445
  }
446
446
  response = await self.contractPublicGetCfdOpenApiV1PubInstrument(self.extend(request, params))
@@ -608,7 +608,7 @@ class lbank(Exchange, ImplicitAPI):
608
608
  if market['swap']:
609
609
  responseForSwap = await self.fetch_tickers([market['symbol']], params)
610
610
  return self.safe_value(responseForSwap, market['symbol'])
611
- request = {
611
+ request: dict = {
612
612
  'symbol': market['id'],
613
613
  }
614
614
  response = await self.spotPublicGetTicker24hr(self.extend(request, params))
@@ -653,7 +653,7 @@ class lbank(Exchange, ImplicitAPI):
653
653
  symbolsLength = len(symbols)
654
654
  if symbolsLength > 0:
655
655
  market = self.market(symbols[0])
656
- request = {}
656
+ request: dict = {}
657
657
  type = None
658
658
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
659
659
  response = None
@@ -725,7 +725,7 @@ class lbank(Exchange, ImplicitAPI):
725
725
  market = self.market(symbol)
726
726
  if limit is None:
727
727
  limit = 60
728
- request = {
728
+ request: dict = {
729
729
  'symbol': market['id'],
730
730
  }
731
731
  type = None
@@ -791,7 +791,7 @@ class lbank(Exchange, ImplicitAPI):
791
791
  return self.parse_order_book(orderbook, market['symbol'], timestamp, 'bids', 'asks', 'price', 'volume')
792
792
  return self.parse_order_book(orderbook, market['symbol'], timestamp)
793
793
 
794
- def parse_trade(self, trade, market: Market = None) -> Trade:
794
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
795
795
  #
796
796
  # fetchTrades(old) spotPublicGetTrades
797
797
  #
@@ -897,7 +897,7 @@ class lbank(Exchange, ImplicitAPI):
897
897
  """
898
898
  await self.load_markets()
899
899
  market = self.market(symbol)
900
- request = {
900
+ request: dict = {
901
901
  'symbol': market['id'],
902
902
  }
903
903
  if since is not None:
@@ -975,7 +975,7 @@ class lbank(Exchange, ImplicitAPI):
975
975
  if since is None:
976
976
  duration = self.parse_timeframe(timeframe)
977
977
  since = self.milliseconds() - duration * 1000 * limit
978
- request = {
978
+ request: dict = {
979
979
  'symbol': market['id'],
980
980
  'type': self.safe_string(self.timeframes, timeframe, timeframe),
981
981
  'time': self.parse_to_int(since / 1000),
@@ -1085,7 +1085,7 @@ class lbank(Exchange, ImplicitAPI):
1085
1085
  # ]
1086
1086
  #
1087
1087
  timestamp = self.safe_integer(response, 'ts')
1088
- result = {
1088
+ result: dict = {
1089
1089
  'info': response,
1090
1090
  'timestamp': timestamp,
1091
1091
  'datetime': self.iso8601(timestamp),
@@ -1183,7 +1183,7 @@ class lbank(Exchange, ImplicitAPI):
1183
1183
  #
1184
1184
  return self.parse_balance(response)
1185
1185
 
1186
- def parse_trading_fee(self, fee, market: Market = None) -> TradingFeeInterface:
1186
+ def parse_trading_fee(self, fee: dict, market: Market = None) -> TradingFeeInterface:
1187
1187
  #
1188
1188
  # {
1189
1189
  # "symbol":"skt_usdt",
@@ -1222,10 +1222,10 @@ class lbank(Exchange, ImplicitAPI):
1222
1222
  :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
1223
1223
  """
1224
1224
  await self.load_markets()
1225
- request = {}
1225
+ request: dict = {}
1226
1226
  response = await self.spotPrivatePostSupplementCustomerTradeFee(self.extend(request, params))
1227
1227
  fees = self.safe_value(response, 'data', [])
1228
- result = {}
1228
+ result: dict = {}
1229
1229
  for i in range(0, len(fees)):
1230
1230
  fee = self.parse_trading_fee(fees[i])
1231
1231
  symbol = fee['symbol']
@@ -1268,7 +1268,7 @@ class lbank(Exchange, ImplicitAPI):
1268
1268
  postOnly = self.safe_bool(params, 'postOnly', False)
1269
1269
  timeInForce = self.safe_string_upper(params, 'timeInForce')
1270
1270
  params = self.omit(params, ['custom_id', 'clientOrderId', 'timeInForce', 'postOnly'])
1271
- request = {
1271
+ request: dict = {
1272
1272
  'symbol': market['id'],
1273
1273
  }
1274
1274
  ioc = (timeInForce == 'IOC')
@@ -1339,8 +1339,8 @@ class lbank(Exchange, ImplicitAPI):
1339
1339
  'info': result,
1340
1340
  }, market)
1341
1341
 
1342
- def parse_order_status(self, status):
1343
- statuses = {
1342
+ def parse_order_status(self, status: Str):
1343
+ statuses: dict = {
1344
1344
  '-1': 'canceled', # canceled
1345
1345
  '0': 'open', # not traded
1346
1346
  '1': 'open', # partial deal
@@ -1350,7 +1350,7 @@ class lbank(Exchange, ImplicitAPI):
1350
1350
  }
1351
1351
  return self.safe_string(statuses, status, status)
1352
1352
 
1353
- def parse_order(self, order, market: Market = None) -> Order:
1353
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1354
1354
  #
1355
1355
  # fetchOrderSupplement(private)
1356
1356
  #
@@ -1493,7 +1493,7 @@ class lbank(Exchange, ImplicitAPI):
1493
1493
  raise ArgumentsRequired(self.id + ' fetchOrder() requires a symbol argument')
1494
1494
  await self.load_markets()
1495
1495
  market = self.market(symbol)
1496
- request = {
1496
+ request: dict = {
1497
1497
  'symbol': market['id'],
1498
1498
  'orderId': id,
1499
1499
  }
@@ -1528,7 +1528,7 @@ class lbank(Exchange, ImplicitAPI):
1528
1528
  raise ArgumentsRequired(self.id + ' fetchOrder() requires a symbol argument')
1529
1529
  await self.load_markets()
1530
1530
  market = self.market(symbol)
1531
- request = {
1531
+ request: dict = {
1532
1532
  'symbol': market['id'],
1533
1533
  'order_id': id,
1534
1534
  }
@@ -1582,7 +1582,7 @@ class lbank(Exchange, ImplicitAPI):
1582
1582
  market = self.market(symbol)
1583
1583
  since = self.safe_value(params, 'start_date', since)
1584
1584
  params = self.omit(params, 'start_date')
1585
- request = {
1585
+ request: dict = {
1586
1586
  'symbol': market['id'],
1587
1587
  # 'start_date' Start time yyyy-mm-dd, the maximum is today, the default is yesterday
1588
1588
  # 'end_date' Finish time yyyy-mm-dd, the maximum is today, the default is today
@@ -1638,7 +1638,7 @@ class lbank(Exchange, ImplicitAPI):
1638
1638
  market = self.market(symbol)
1639
1639
  if limit is None:
1640
1640
  limit = 100
1641
- request = {
1641
+ request: dict = {
1642
1642
  'symbol': market['id'],
1643
1643
  'current_page': 1,
1644
1644
  'page_length': limit,
@@ -1692,7 +1692,7 @@ class lbank(Exchange, ImplicitAPI):
1692
1692
  market = self.market(symbol)
1693
1693
  if limit is None:
1694
1694
  limit = 100
1695
- request = {
1695
+ request: dict = {
1696
1696
  'symbol': market['id'],
1697
1697
  'current_page': 1,
1698
1698
  'page_length': limit,
@@ -1744,7 +1744,7 @@ class lbank(Exchange, ImplicitAPI):
1744
1744
  clientOrderId = self.safe_string_2(params, 'origClientOrderId', 'clientOrderId')
1745
1745
  params = self.omit(params, ['origClientOrderId', 'clientOrderId'])
1746
1746
  market = self.market(symbol)
1747
- request = {
1747
+ request: dict = {
1748
1748
  'symbol': market['id'],
1749
1749
  'orderId': id,
1750
1750
  }
@@ -1779,7 +1779,7 @@ class lbank(Exchange, ImplicitAPI):
1779
1779
  raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
1780
1780
  await self.load_markets()
1781
1781
  market = self.market(symbol)
1782
- request = {
1782
+ request: dict = {
1783
1783
  'symbol': market['id'],
1784
1784
  }
1785
1785
  response = await self.spotPrivatePostSupplementCancelOrderBySymbol(self.extend(request, params))
@@ -1835,7 +1835,7 @@ class lbank(Exchange, ImplicitAPI):
1835
1835
  async def fetch_deposit_address_default(self, code: str, params={}):
1836
1836
  await self.load_markets()
1837
1837
  currency = self.currency(code)
1838
- request = {
1838
+ request: dict = {
1839
1839
  'assetCode': currency['id'],
1840
1840
  }
1841
1841
  network = self.get_network_code_for_currency(code, params)
@@ -1874,7 +1874,7 @@ class lbank(Exchange, ImplicitAPI):
1874
1874
  # returns the address for whatever the default network is...
1875
1875
  await self.load_markets()
1876
1876
  currency = self.currency(code)
1877
- request = {
1877
+ request: dict = {
1878
1878
  'coin': currency['id'],
1879
1879
  }
1880
1880
  networks = self.safe_value(self.options, 'networks')
@@ -1928,7 +1928,7 @@ class lbank(Exchange, ImplicitAPI):
1928
1928
  # The relevant coin network fee can be found by calling fetchDepositWithdrawFees(), note: if no network param is supplied then the default network will be used, self can also be found in fetchDepositWithdrawFees().
1929
1929
  self.check_required_argument('withdraw', fee, 'fee')
1930
1930
  currency = self.currency(code)
1931
- request = {
1931
+ request: dict = {
1932
1932
  'address': address,
1933
1933
  'coin': currency['id'],
1934
1934
  'amount': amount,
@@ -1967,7 +1967,7 @@ class lbank(Exchange, ImplicitAPI):
1967
1967
  }
1968
1968
 
1969
1969
  def parse_transaction_status(self, status, type):
1970
- statuses = {
1970
+ statuses: dict = {
1971
1971
  'deposit': {
1972
1972
  '1': 'pending',
1973
1973
  '2': 'ok',
@@ -1984,7 +1984,7 @@ class lbank(Exchange, ImplicitAPI):
1984
1984
  }
1985
1985
  return self.safe_string(self.safe_value(statuses, type, {}), status, status)
1986
1986
 
1987
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1987
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1988
1988
  #
1989
1989
  # fetchDeposits(private)
1990
1990
  #
@@ -2077,7 +2077,7 @@ class lbank(Exchange, ImplicitAPI):
2077
2077
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
2078
2078
  """
2079
2079
  await self.load_markets()
2080
- request = {
2080
+ request: dict = {
2081
2081
  # 'status': Recharge status: ("1","Applying"),("2","Recharge successful"),("3","Recharge failed"),("4","Already Cancel"),("5", "Transfer")
2082
2082
  # 'endTime': end time, timestamp in milliseconds, default now
2083
2083
  }
@@ -2126,7 +2126,7 @@ class lbank(Exchange, ImplicitAPI):
2126
2126
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
2127
2127
  """
2128
2128
  await self.load_markets()
2129
- request = {
2129
+ request: dict = {
2130
2130
  # 'status': Recharge status: ("1","Applying"),("2","Recharge successful"),("3","Recharge failed"),("4","Already Cancel"),("5", "Transfer")
2131
2131
  # 'endTime': end time, timestamp in milliseconds, default now
2132
2132
  # 'withdrawOrderId': Custom withdrawal id
@@ -2168,7 +2168,7 @@ class lbank(Exchange, ImplicitAPI):
2168
2168
  withdraws = self.safe_list(data, 'withdraws', [])
2169
2169
  return self.parse_transactions(withdraws, currency, since, limit)
2170
2170
 
2171
- async def fetch_transaction_fees(self, codes: List[str] = None, params={}):
2171
+ async def fetch_transaction_fees(self, codes: Strings = None, params={}):
2172
2172
  """
2173
2173
  * @deprecated
2174
2174
  please use fetchDepositWithdrawFees instead
@@ -2229,7 +2229,7 @@ class lbank(Exchange, ImplicitAPI):
2229
2229
  # }
2230
2230
  #
2231
2231
  result = self.safe_value(response, 'data', [])
2232
- withdrawFees = {}
2232
+ withdrawFees: dict = {}
2233
2233
  for i in range(0, len(result)):
2234
2234
  entry = result[i]
2235
2235
  currencyId = self.safe_string(entry, 'coin')
@@ -2255,7 +2255,7 @@ class lbank(Exchange, ImplicitAPI):
2255
2255
  await self.load_markets()
2256
2256
  code = self.safe_string_2(params, 'coin', 'assetCode')
2257
2257
  params = self.omit(params, ['coin', 'assetCode'])
2258
- request = {}
2258
+ request: dict = {}
2259
2259
  if code is not None:
2260
2260
  currency = self.currency(code)
2261
2261
  request['assetCode'] = currency['id']
@@ -2282,7 +2282,7 @@ class lbank(Exchange, ImplicitAPI):
2282
2282
  # }
2283
2283
  #
2284
2284
  result = self.safe_value(response, 'data', [])
2285
- withdrawFees = {}
2285
+ withdrawFees: dict = {}
2286
2286
  for i in range(0, len(result)):
2287
2287
  item = result[i]
2288
2288
  canWithdraw = self.safe_value(item, 'canWithDraw')
@@ -2370,7 +2370,7 @@ class lbank(Exchange, ImplicitAPI):
2370
2370
  # extremely incomplete response
2371
2371
  # vast majority fees None
2372
2372
  await self.load_markets()
2373
- request = {}
2373
+ request: dict = {}
2374
2374
  response = await self.spotPublicGetWithdrawConfigs(self.extend(request, params))
2375
2375
  #
2376
2376
  # {
@@ -2413,7 +2413,7 @@ class lbank(Exchange, ImplicitAPI):
2413
2413
  # ...
2414
2414
  # ]
2415
2415
  #
2416
- result = {}
2416
+ result: dict = {}
2417
2417
  for i in range(0, len(response)):
2418
2418
  fee = response[i]
2419
2419
  canWithdraw = self.safe_value(fee, 'canWithDraw')
@@ -298,7 +298,7 @@ class luno(Exchange, ImplicitAPI):
298
298
 
299
299
  def parse_balance(self, response) -> Balances:
300
300
  wallets = self.safe_value(response, 'balance', [])
301
- result = {
301
+ result: dict = {
302
302
  'info': response,
303
303
  'timestamp': None,
304
304
  'datetime': None,
@@ -355,7 +355,7 @@ class luno(Exchange, ImplicitAPI):
355
355
  """
356
356
  await self.load_markets()
357
357
  market = self.market(symbol)
358
- request = {
358
+ request: dict = {
359
359
  'pair': market['id'],
360
360
  }
361
361
  response = None
@@ -366,14 +366,14 @@ class luno(Exchange, ImplicitAPI):
366
366
  timestamp = self.safe_integer(response, 'timestamp')
367
367
  return self.parse_order_book(response, market['symbol'], timestamp, 'bids', 'asks', 'price', 'volume')
368
368
 
369
- def parse_order_status(self, status):
370
- statuses = {
369
+ def parse_order_status(self, status: Str):
370
+ statuses: dict = {
371
371
  # todo add other statuses
372
372
  'PENDING': 'open',
373
373
  }
374
374
  return self.safe_string(statuses, status, status)
375
375
 
376
- def parse_order(self, order, market: Market = None) -> Order:
376
+ def parse_order(self, order: dict, market: Market = None) -> Order:
377
377
  #
378
378
  # {
379
379
  # "base": "string",
@@ -454,7 +454,7 @@ class luno(Exchange, ImplicitAPI):
454
454
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
455
455
  """
456
456
  await self.load_markets()
457
- request = {
457
+ request: dict = {
458
458
  'id': id,
459
459
  }
460
460
  response = await self.privateGetOrdersId(self.extend(request, params))
@@ -462,7 +462,7 @@ class luno(Exchange, ImplicitAPI):
462
462
 
463
463
  async def fetch_orders_by_state(self, state=None, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
464
464
  await self.load_markets()
465
- request = {}
465
+ request: dict = {}
466
466
  market = None
467
467
  if state is not None:
468
468
  request['state'] = state
@@ -559,7 +559,7 @@ class luno(Exchange, ImplicitAPI):
559
559
  response = await self.publicGetTickers(params)
560
560
  tickers = self.index_by(response['tickers'], 'pair')
561
561
  ids = list(tickers.keys())
562
- result = {}
562
+ result: dict = {}
563
563
  for i in range(0, len(ids)):
564
564
  id = ids[i]
565
565
  market = self.safe_market(id)
@@ -578,7 +578,7 @@ class luno(Exchange, ImplicitAPI):
578
578
  """
579
579
  await self.load_markets()
580
580
  market = self.market(symbol)
581
- request = {
581
+ request: dict = {
582
582
  'pair': market['id'],
583
583
  }
584
584
  response = await self.publicGetTicker(self.extend(request, params))
@@ -593,7 +593,7 @@ class luno(Exchange, ImplicitAPI):
593
593
  # }
594
594
  return self.parse_ticker(response, market)
595
595
 
596
- def parse_trade(self, trade, market: Market = None) -> Trade:
596
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
597
597
  #
598
598
  # fetchTrades(public)
599
599
  #
@@ -689,7 +689,7 @@ class luno(Exchange, ImplicitAPI):
689
689
  """
690
690
  await self.load_markets()
691
691
  market = self.market(symbol)
692
- request = {
692
+ request: dict = {
693
693
  'pair': market['id'],
694
694
  }
695
695
  if since is not None:
@@ -724,7 +724,7 @@ class luno(Exchange, ImplicitAPI):
724
724
  """
725
725
  await self.load_markets()
726
726
  market = self.market(symbol)
727
- request = {
727
+ request: dict = {
728
728
  'duration': self.safe_value(self.timeframes, timeframe, timeframe),
729
729
  'pair': market['id'],
730
730
  }
@@ -785,7 +785,7 @@ class luno(Exchange, ImplicitAPI):
785
785
  raise ArgumentsRequired(self.id + ' fetchMyTrades() requires a symbol argument')
786
786
  await self.load_markets()
787
787
  market = self.market(symbol)
788
- request = {
788
+ request: dict = {
789
789
  'pair': market['id'],
790
790
  }
791
791
  if since is not None:
@@ -827,7 +827,7 @@ class luno(Exchange, ImplicitAPI):
827
827
  """
828
828
  await self.load_markets()
829
829
  market = self.market(symbol)
830
- request = {
830
+ request: dict = {
831
831
  'pair': market['id'],
832
832
  }
833
833
  response = await self.privateGetFeeInfo(self.extend(request, params))
@@ -862,7 +862,7 @@ class luno(Exchange, ImplicitAPI):
862
862
  """
863
863
  await self.load_markets()
864
864
  market = self.market(symbol)
865
- request = {
865
+ request: dict = {
866
866
  'pair': market['id'],
867
867
  }
868
868
  response = None
@@ -894,7 +894,7 @@ class luno(Exchange, ImplicitAPI):
894
894
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
895
895
  """
896
896
  await self.load_markets()
897
- request = {
897
+ request: dict = {
898
898
  'order_id': id,
899
899
  }
900
900
  return await self.privatePostStoporder(self.extend(request, params))
@@ -906,7 +906,7 @@ class luno(Exchange, ImplicitAPI):
906
906
  if limit is None:
907
907
  limit = 1
908
908
  since = None
909
- request = {
909
+ request: dict = {
910
910
  'min_row': entry,
911
911
  'max_row': self.sum(entry, limit),
912
912
  }
@@ -949,7 +949,7 @@ class luno(Exchange, ImplicitAPI):
949
949
  max_row = min_row + limit
950
950
  if max_row - min_row > 1000:
951
951
  raise ExchangeError(self.id + " fetchLedger() requires the params 'max_row' - 'min_row' <= 1000")
952
- request = {
952
+ request: dict = {
953
953
  'id': id,
954
954
  'min_row': min_row,
955
955
  'max_row': max_row,
@@ -960,7 +960,7 @@ class luno(Exchange, ImplicitAPI):
960
960
 
961
961
  def parse_ledger_comment(self, comment):
962
962
  words = comment.split(' ')
963
- types = {
963
+ types: dict = {
964
964
  'Withdrawal': 'fee',
965
965
  'Trading': 'fee',
966
966
  'Payment': 'transaction',