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
ccxt/latoken.py CHANGED
@@ -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
  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
  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
  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
  def fetch_public_trading_fee(self, symbol: str, params={}):
838
838
  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
  def fetch_private_trading_fee(self, symbol: str, params={}):
863
863
  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
  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
  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
  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
  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
  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
  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
  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
  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',
ccxt/lbank.py CHANGED
@@ -439,7 +439,7 @@ class lbank(Exchange, ImplicitAPI):
439
439
  return result
440
440
 
441
441
  def fetch_swap_markets(self, params={}):
442
- request = {
442
+ request: dict = {
443
443
  'productGroup': 'SwapU',
444
444
  }
445
445
  response = self.contractPublicGetCfdOpenApiV1PubInstrument(self.extend(request, params))
@@ -607,7 +607,7 @@ class lbank(Exchange, ImplicitAPI):
607
607
  if market['swap']:
608
608
  responseForSwap = self.fetch_tickers([market['symbol']], params)
609
609
  return self.safe_value(responseForSwap, market['symbol'])
610
- request = {
610
+ request: dict = {
611
611
  'symbol': market['id'],
612
612
  }
613
613
  response = self.spotPublicGetTicker24hr(self.extend(request, params))
@@ -652,7 +652,7 @@ class lbank(Exchange, ImplicitAPI):
652
652
  symbolsLength = len(symbols)
653
653
  if symbolsLength > 0:
654
654
  market = self.market(symbols[0])
655
- request = {}
655
+ request: dict = {}
656
656
  type = None
657
657
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
658
658
  response = None
@@ -724,7 +724,7 @@ class lbank(Exchange, ImplicitAPI):
724
724
  market = self.market(symbol)
725
725
  if limit is None:
726
726
  limit = 60
727
- request = {
727
+ request: dict = {
728
728
  'symbol': market['id'],
729
729
  }
730
730
  type = None
@@ -790,7 +790,7 @@ class lbank(Exchange, ImplicitAPI):
790
790
  return self.parse_order_book(orderbook, market['symbol'], timestamp, 'bids', 'asks', 'price', 'volume')
791
791
  return self.parse_order_book(orderbook, market['symbol'], timestamp)
792
792
 
793
- def parse_trade(self, trade, market: Market = None) -> Trade:
793
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
794
794
  #
795
795
  # fetchTrades(old) spotPublicGetTrades
796
796
  #
@@ -896,7 +896,7 @@ class lbank(Exchange, ImplicitAPI):
896
896
  """
897
897
  self.load_markets()
898
898
  market = self.market(symbol)
899
- request = {
899
+ request: dict = {
900
900
  'symbol': market['id'],
901
901
  }
902
902
  if since is not None:
@@ -974,7 +974,7 @@ class lbank(Exchange, ImplicitAPI):
974
974
  if since is None:
975
975
  duration = self.parse_timeframe(timeframe)
976
976
  since = self.milliseconds() - duration * 1000 * limit
977
- request = {
977
+ request: dict = {
978
978
  'symbol': market['id'],
979
979
  'type': self.safe_string(self.timeframes, timeframe, timeframe),
980
980
  'time': self.parse_to_int(since / 1000),
@@ -1084,7 +1084,7 @@ class lbank(Exchange, ImplicitAPI):
1084
1084
  # ]
1085
1085
  #
1086
1086
  timestamp = self.safe_integer(response, 'ts')
1087
- result = {
1087
+ result: dict = {
1088
1088
  'info': response,
1089
1089
  'timestamp': timestamp,
1090
1090
  'datetime': self.iso8601(timestamp),
@@ -1182,7 +1182,7 @@ class lbank(Exchange, ImplicitAPI):
1182
1182
  #
1183
1183
  return self.parse_balance(response)
1184
1184
 
1185
- def parse_trading_fee(self, fee, market: Market = None) -> TradingFeeInterface:
1185
+ def parse_trading_fee(self, fee: dict, market: Market = None) -> TradingFeeInterface:
1186
1186
  #
1187
1187
  # {
1188
1188
  # "symbol":"skt_usdt",
@@ -1221,10 +1221,10 @@ class lbank(Exchange, ImplicitAPI):
1221
1221
  :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
1222
1222
  """
1223
1223
  self.load_markets()
1224
- request = {}
1224
+ request: dict = {}
1225
1225
  response = self.spotPrivatePostSupplementCustomerTradeFee(self.extend(request, params))
1226
1226
  fees = self.safe_value(response, 'data', [])
1227
- result = {}
1227
+ result: dict = {}
1228
1228
  for i in range(0, len(fees)):
1229
1229
  fee = self.parse_trading_fee(fees[i])
1230
1230
  symbol = fee['symbol']
@@ -1267,7 +1267,7 @@ class lbank(Exchange, ImplicitAPI):
1267
1267
  postOnly = self.safe_bool(params, 'postOnly', False)
1268
1268
  timeInForce = self.safe_string_upper(params, 'timeInForce')
1269
1269
  params = self.omit(params, ['custom_id', 'clientOrderId', 'timeInForce', 'postOnly'])
1270
- request = {
1270
+ request: dict = {
1271
1271
  'symbol': market['id'],
1272
1272
  }
1273
1273
  ioc = (timeInForce == 'IOC')
@@ -1338,8 +1338,8 @@ class lbank(Exchange, ImplicitAPI):
1338
1338
  'info': result,
1339
1339
  }, market)
1340
1340
 
1341
- def parse_order_status(self, status):
1342
- statuses = {
1341
+ def parse_order_status(self, status: Str):
1342
+ statuses: dict = {
1343
1343
  '-1': 'canceled', # canceled
1344
1344
  '0': 'open', # not traded
1345
1345
  '1': 'open', # partial deal
@@ -1349,7 +1349,7 @@ class lbank(Exchange, ImplicitAPI):
1349
1349
  }
1350
1350
  return self.safe_string(statuses, status, status)
1351
1351
 
1352
- def parse_order(self, order, market: Market = None) -> Order:
1352
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1353
1353
  #
1354
1354
  # fetchOrderSupplement(private)
1355
1355
  #
@@ -1492,7 +1492,7 @@ class lbank(Exchange, ImplicitAPI):
1492
1492
  raise ArgumentsRequired(self.id + ' fetchOrder() requires a symbol argument')
1493
1493
  self.load_markets()
1494
1494
  market = self.market(symbol)
1495
- request = {
1495
+ request: dict = {
1496
1496
  'symbol': market['id'],
1497
1497
  'orderId': id,
1498
1498
  }
@@ -1527,7 +1527,7 @@ class lbank(Exchange, ImplicitAPI):
1527
1527
  raise ArgumentsRequired(self.id + ' fetchOrder() requires a symbol argument')
1528
1528
  self.load_markets()
1529
1529
  market = self.market(symbol)
1530
- request = {
1530
+ request: dict = {
1531
1531
  'symbol': market['id'],
1532
1532
  'order_id': id,
1533
1533
  }
@@ -1581,7 +1581,7 @@ class lbank(Exchange, ImplicitAPI):
1581
1581
  market = self.market(symbol)
1582
1582
  since = self.safe_value(params, 'start_date', since)
1583
1583
  params = self.omit(params, 'start_date')
1584
- request = {
1584
+ request: dict = {
1585
1585
  'symbol': market['id'],
1586
1586
  # 'start_date' Start time yyyy-mm-dd, the maximum is today, the default is yesterday
1587
1587
  # 'end_date' Finish time yyyy-mm-dd, the maximum is today, the default is today
@@ -1637,7 +1637,7 @@ class lbank(Exchange, ImplicitAPI):
1637
1637
  market = self.market(symbol)
1638
1638
  if limit is None:
1639
1639
  limit = 100
1640
- request = {
1640
+ request: dict = {
1641
1641
  'symbol': market['id'],
1642
1642
  'current_page': 1,
1643
1643
  'page_length': limit,
@@ -1691,7 +1691,7 @@ class lbank(Exchange, ImplicitAPI):
1691
1691
  market = self.market(symbol)
1692
1692
  if limit is None:
1693
1693
  limit = 100
1694
- request = {
1694
+ request: dict = {
1695
1695
  'symbol': market['id'],
1696
1696
  'current_page': 1,
1697
1697
  'page_length': limit,
@@ -1743,7 +1743,7 @@ class lbank(Exchange, ImplicitAPI):
1743
1743
  clientOrderId = self.safe_string_2(params, 'origClientOrderId', 'clientOrderId')
1744
1744
  params = self.omit(params, ['origClientOrderId', 'clientOrderId'])
1745
1745
  market = self.market(symbol)
1746
- request = {
1746
+ request: dict = {
1747
1747
  'symbol': market['id'],
1748
1748
  'orderId': id,
1749
1749
  }
@@ -1778,7 +1778,7 @@ class lbank(Exchange, ImplicitAPI):
1778
1778
  raise ArgumentsRequired(self.id + ' cancelAllOrders() requires a symbol argument')
1779
1779
  self.load_markets()
1780
1780
  market = self.market(symbol)
1781
- request = {
1781
+ request: dict = {
1782
1782
  'symbol': market['id'],
1783
1783
  }
1784
1784
  response = self.spotPrivatePostSupplementCancelOrderBySymbol(self.extend(request, params))
@@ -1834,7 +1834,7 @@ class lbank(Exchange, ImplicitAPI):
1834
1834
  def fetch_deposit_address_default(self, code: str, params={}):
1835
1835
  self.load_markets()
1836
1836
  currency = self.currency(code)
1837
- request = {
1837
+ request: dict = {
1838
1838
  'assetCode': currency['id'],
1839
1839
  }
1840
1840
  network = self.get_network_code_for_currency(code, params)
@@ -1873,7 +1873,7 @@ class lbank(Exchange, ImplicitAPI):
1873
1873
  # returns the address for whatever the default network is...
1874
1874
  self.load_markets()
1875
1875
  currency = self.currency(code)
1876
- request = {
1876
+ request: dict = {
1877
1877
  'coin': currency['id'],
1878
1878
  }
1879
1879
  networks = self.safe_value(self.options, 'networks')
@@ -1927,7 +1927,7 @@ class lbank(Exchange, ImplicitAPI):
1927
1927
  # 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().
1928
1928
  self.check_required_argument('withdraw', fee, 'fee')
1929
1929
  currency = self.currency(code)
1930
- request = {
1930
+ request: dict = {
1931
1931
  'address': address,
1932
1932
  'coin': currency['id'],
1933
1933
  'amount': amount,
@@ -1966,7 +1966,7 @@ class lbank(Exchange, ImplicitAPI):
1966
1966
  }
1967
1967
 
1968
1968
  def parse_transaction_status(self, status, type):
1969
- statuses = {
1969
+ statuses: dict = {
1970
1970
  'deposit': {
1971
1971
  '1': 'pending',
1972
1972
  '2': 'ok',
@@ -1983,7 +1983,7 @@ class lbank(Exchange, ImplicitAPI):
1983
1983
  }
1984
1984
  return self.safe_string(self.safe_value(statuses, type, {}), status, status)
1985
1985
 
1986
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1986
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1987
1987
  #
1988
1988
  # fetchDeposits(private)
1989
1989
  #
@@ -2076,7 +2076,7 @@ class lbank(Exchange, ImplicitAPI):
2076
2076
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
2077
2077
  """
2078
2078
  self.load_markets()
2079
- request = {
2079
+ request: dict = {
2080
2080
  # 'status': Recharge status: ("1","Applying"),("2","Recharge successful"),("3","Recharge failed"),("4","Already Cancel"),("5", "Transfer")
2081
2081
  # 'endTime': end time, timestamp in milliseconds, default now
2082
2082
  }
@@ -2125,7 +2125,7 @@ class lbank(Exchange, ImplicitAPI):
2125
2125
  :returns dict[]: a list of `transaction structures <https://docs.ccxt.com/#/?id=transaction-structure>`
2126
2126
  """
2127
2127
  self.load_markets()
2128
- request = {
2128
+ request: dict = {
2129
2129
  # 'status': Recharge status: ("1","Applying"),("2","Recharge successful"),("3","Recharge failed"),("4","Already Cancel"),("5", "Transfer")
2130
2130
  # 'endTime': end time, timestamp in milliseconds, default now
2131
2131
  # 'withdrawOrderId': Custom withdrawal id
@@ -2167,7 +2167,7 @@ class lbank(Exchange, ImplicitAPI):
2167
2167
  withdraws = self.safe_list(data, 'withdraws', [])
2168
2168
  return self.parse_transactions(withdraws, currency, since, limit)
2169
2169
 
2170
- def fetch_transaction_fees(self, codes: List[str] = None, params={}):
2170
+ def fetch_transaction_fees(self, codes: Strings = None, params={}):
2171
2171
  """
2172
2172
  * @deprecated
2173
2173
  please use fetchDepositWithdrawFees instead
@@ -2228,7 +2228,7 @@ class lbank(Exchange, ImplicitAPI):
2228
2228
  # }
2229
2229
  #
2230
2230
  result = self.safe_value(response, 'data', [])
2231
- withdrawFees = {}
2231
+ withdrawFees: dict = {}
2232
2232
  for i in range(0, len(result)):
2233
2233
  entry = result[i]
2234
2234
  currencyId = self.safe_string(entry, 'coin')
@@ -2254,7 +2254,7 @@ class lbank(Exchange, ImplicitAPI):
2254
2254
  self.load_markets()
2255
2255
  code = self.safe_string_2(params, 'coin', 'assetCode')
2256
2256
  params = self.omit(params, ['coin', 'assetCode'])
2257
- request = {}
2257
+ request: dict = {}
2258
2258
  if code is not None:
2259
2259
  currency = self.currency(code)
2260
2260
  request['assetCode'] = currency['id']
@@ -2281,7 +2281,7 @@ class lbank(Exchange, ImplicitAPI):
2281
2281
  # }
2282
2282
  #
2283
2283
  result = self.safe_value(response, 'data', [])
2284
- withdrawFees = {}
2284
+ withdrawFees: dict = {}
2285
2285
  for i in range(0, len(result)):
2286
2286
  item = result[i]
2287
2287
  canWithdraw = self.safe_value(item, 'canWithDraw')
@@ -2369,7 +2369,7 @@ class lbank(Exchange, ImplicitAPI):
2369
2369
  # extremely incomplete response
2370
2370
  # vast majority fees None
2371
2371
  self.load_markets()
2372
- request = {}
2372
+ request: dict = {}
2373
2373
  response = self.spotPublicGetWithdrawConfigs(self.extend(request, params))
2374
2374
  #
2375
2375
  # {
@@ -2412,7 +2412,7 @@ class lbank(Exchange, ImplicitAPI):
2412
2412
  # ...
2413
2413
  # ]
2414
2414
  #
2415
- result = {}
2415
+ result: dict = {}
2416
2416
  for i in range(0, len(response)):
2417
2417
  fee = response[i]
2418
2418
  canWithdraw = self.safe_value(fee, 'canWithDraw')
ccxt/luno.py CHANGED
@@ -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
  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
  self.load_markets()
457
- request = {
457
+ request: dict = {
458
458
  'id': id,
459
459
  }
460
460
  response = self.privateGetOrdersId(self.extend(request, params))
@@ -462,7 +462,7 @@ class luno(Exchange, ImplicitAPI):
462
462
 
463
463
  def fetch_orders_by_state(self, state=None, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
464
464
  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 = 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
  self.load_markets()
580
580
  market = self.market(symbol)
581
- request = {
581
+ request: dict = {
582
582
  'pair': market['id'],
583
583
  }
584
584
  response = 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
  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
  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
  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
  self.load_markets()
829
829
  market = self.market(symbol)
830
- request = {
830
+ request: dict = {
831
831
  'pair': market['id'],
832
832
  }
833
833
  response = self.privateGetFeeInfo(self.extend(request, params))
@@ -862,7 +862,7 @@ class luno(Exchange, ImplicitAPI):
862
862
  """
863
863
  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
  self.load_markets()
897
- request = {
897
+ request: dict = {
898
898
  'order_id': id,
899
899
  }
900
900
  return 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',