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
ccxt/coinbaseexchange.py CHANGED
@@ -279,7 +279,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
279
279
  # }
280
280
  # ]
281
281
  #
282
- result = {}
282
+ result: dict = {}
283
283
  for i in range(0, len(response)):
284
284
  currency = response[i]
285
285
  id = self.safe_string(currency, 'id')
@@ -482,7 +482,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
482
482
  }
483
483
 
484
484
  def parse_balance(self, response) -> Balances:
485
- result = {'info': response}
485
+ result: dict = {'info': response}
486
486
  for i in range(0, len(response)):
487
487
  balance = response[i]
488
488
  currencyId = self.safe_string(balance, 'currency')
@@ -518,7 +518,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
518
518
  # level 1 - only the best bid and ask
519
519
  # level 2 - top 50 bids and asks(aggregated)
520
520
  # level 3 - full order book(non aggregated)
521
- request = {
521
+ request: dict = {
522
522
  'id': self.market_id(symbol),
523
523
  'level': 2, # 1 best bidask, 2 aggregated, 3 full
524
524
  }
@@ -631,7 +631,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
631
631
  """
632
632
  self.load_markets()
633
633
  symbols = self.market_symbols(symbols)
634
- request = {}
634
+ request: dict = {}
635
635
  response = self.publicGetProductsSparkLines(self.extend(request, params))
636
636
  #
637
637
  # {
@@ -653,7 +653,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
653
653
  # ]
654
654
  # }
655
655
  #
656
- result = {}
656
+ result: dict = {}
657
657
  marketIds = list(response.keys())
658
658
  delimiter = '-'
659
659
  for i in range(0, len(marketIds)):
@@ -675,7 +675,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
675
675
  """
676
676
  self.load_markets()
677
677
  market = self.market(symbol)
678
- request = {
678
+ request: dict = {
679
679
  'id': market['id'],
680
680
  }
681
681
  # publicGetProductsIdTicker or publicGetProductsIdStats
@@ -705,7 +705,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
705
705
  #
706
706
  return self.parse_ticker(response, market)
707
707
 
708
- def parse_trade(self, trade, market: Market = None) -> Trade:
708
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
709
709
  #
710
710
  # {
711
711
  # "type": "match",
@@ -794,7 +794,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
794
794
  return self.fetch_paginated_call_dynamic('fetchMyTrades', symbol, since, limit, params, 100)
795
795
  self.load_markets()
796
796
  market = self.market(symbol)
797
- request = {
797
+ request: dict = {
798
798
  'product_id': market['id'],
799
799
  }
800
800
  if limit is not None:
@@ -820,7 +820,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
820
820
  """
821
821
  self.load_markets()
822
822
  market = self.market(symbol)
823
- request = {
823
+ request: dict = {
824
824
  'id': market['id'], # fixes issue #2
825
825
  }
826
826
  if limit is not None:
@@ -857,7 +857,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
857
857
  #
858
858
  maker = self.safe_number(response, 'maker_fee_rate')
859
859
  taker = self.safe_number(response, 'taker_fee_rate')
860
- result = {}
860
+ result: dict = {}
861
861
  for i in range(0, len(self.symbols)):
862
862
  symbol = self.symbols[i]
863
863
  result[symbol] = {
@@ -910,7 +910,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
910
910
  return self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 300)
911
911
  market = self.market(symbol)
912
912
  parsedTimeframe = self.safe_integer(self.timeframes, timeframe)
913
- request = {
913
+ request: dict = {
914
914
  'id': market['id'],
915
915
  }
916
916
  if parsedTimeframe is not None:
@@ -959,8 +959,8 @@ class coinbaseexchange(Exchange, ImplicitAPI):
959
959
  #
960
960
  return self.safe_timestamp(response, 'epoch')
961
961
 
962
- def parse_order_status(self, status):
963
- statuses = {
962
+ def parse_order_status(self, status: Str):
963
+ statuses: dict = {
964
964
  'pending': 'open',
965
965
  'active': 'open',
966
966
  'open': 'open',
@@ -970,7 +970,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
970
970
  }
971
971
  return self.safe_string(statuses, status, status)
972
972
 
973
- def parse_order(self, order, market: Market = None) -> Order:
973
+ def parse_order(self, order: dict, market: Market = None) -> Order:
974
974
  #
975
975
  # createOrder
976
976
  #
@@ -1052,7 +1052,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1052
1052
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1053
1053
  """
1054
1054
  self.load_markets()
1055
- request = {}
1055
+ request: dict = {}
1056
1056
  clientOrderId = self.safe_string_2(params, 'clientOrderId', 'client_oid')
1057
1057
  method = None
1058
1058
  if clientOrderId is None:
@@ -1079,7 +1079,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1079
1079
  market = None
1080
1080
  if symbol is not None:
1081
1081
  market = self.market(symbol)
1082
- request = {
1082
+ request: dict = {
1083
1083
  'order_id': id,
1084
1084
  }
1085
1085
  response = self.privateGetFills(self.extend(request, params))
@@ -1096,7 +1096,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1096
1096
  :param int [params.until]: the latest time in ms to fetch open orders for
1097
1097
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1098
1098
  """
1099
- request = {
1099
+ request: dict = {
1100
1100
  'status': 'all',
1101
1101
  }
1102
1102
  return self.fetch_open_orders(symbol, since, limit, self.extend(request, params))
@@ -1118,7 +1118,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1118
1118
  paginate, params = self.handle_option_and_params(params, 'fetchOpenOrders', 'paginate')
1119
1119
  if paginate:
1120
1120
  return self.fetch_paginated_call_dynamic('fetchOpenOrders', symbol, since, limit, params, 100)
1121
- request = {}
1121
+ request: dict = {}
1122
1122
  market = None
1123
1123
  if symbol is not None:
1124
1124
  market = self.market(symbol)
@@ -1145,7 +1145,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1145
1145
  :param int [params.until]: the latest time in ms to fetch open orders for
1146
1146
  :returns Order[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1147
1147
  """
1148
- request = {
1148
+ request: dict = {
1149
1149
  'status': 'done',
1150
1150
  }
1151
1151
  return self.fetch_open_orders(symbol, since, limit, self.extend(request, params))
@@ -1164,7 +1164,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1164
1164
  """
1165
1165
  self.load_markets()
1166
1166
  market = self.market(symbol)
1167
- request = {
1167
+ request: dict = {
1168
1168
  # common params --------------------------------------------------
1169
1169
  # 'client_oid': clientOrderId,
1170
1170
  'type': type,
@@ -1243,7 +1243,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1243
1243
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1244
1244
  """
1245
1245
  self.load_markets()
1246
- request = {
1246
+ request: dict = {
1247
1247
  # 'product_id': market['id'], # the request will be more performant if you include it
1248
1248
  }
1249
1249
  clientOrderId = self.safe_string_2(params, 'clientOrderId', 'client_oid')
@@ -1270,7 +1270,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1270
1270
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
1271
1271
  """
1272
1272
  self.load_markets()
1273
- request = {}
1273
+ request: dict = {}
1274
1274
  market = None
1275
1275
  if symbol is not None:
1276
1276
  market = self.market(symbol)
@@ -1296,7 +1296,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1296
1296
  self.check_address(address)
1297
1297
  self.load_markets()
1298
1298
  currency = self.currency(code)
1299
- request = {
1299
+ request: dict = {
1300
1300
  'currency': currency['id'],
1301
1301
  'amount': amount,
1302
1302
  }
@@ -1316,7 +1316,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1316
1316
  return self.parse_transaction(response, currency)
1317
1317
 
1318
1318
  def parse_ledger_entry_type(self, type):
1319
- types = {
1319
+ types: dict = {
1320
1320
  'transfer': 'transfer', # Funds moved between portfolios
1321
1321
  'match': 'trade', # Funds moved result of a trade
1322
1322
  'fee': 'fee', # Fee result of a trade
@@ -1325,7 +1325,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1325
1325
  }
1326
1326
  return self.safe_string(types, type, type)
1327
1327
 
1328
- def parse_ledger_entry(self, item, currency: Currency = None):
1328
+ def parse_ledger_entry(self, item: dict, currency: Currency = None):
1329
1329
  # {
1330
1330
  # "id": "12087495079",
1331
1331
  # "amount": "-0.0100000000000000",
@@ -1416,7 +1416,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1416
1416
  account = self.safe_value(accountsByCurrencyCode, code)
1417
1417
  if account is None:
1418
1418
  raise ExchangeError(self.id + ' fetchLedger() could not find account id for ' + code)
1419
- request = {
1419
+ request: dict = {
1420
1420
  'id': account['id'],
1421
1421
  # 'start_date': self.iso8601(since),
1422
1422
  # 'end_date': self.iso8601(self.milliseconds()),
@@ -1462,7 +1462,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1462
1462
  if account is None:
1463
1463
  raise ExchangeError(self.id + ' fetchDepositsWithdrawals() could not find account id for ' + code)
1464
1464
  id = account['id']
1465
- request = {}
1465
+ request: dict = {}
1466
1466
  if id is not None:
1467
1467
  request['id'] = id
1468
1468
  if limit is not None:
@@ -1574,7 +1574,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1574
1574
  else:
1575
1575
  return 'pending'
1576
1576
 
1577
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
1577
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
1578
1578
  #
1579
1579
  # privateGetTransfers
1580
1580
  #
@@ -1671,7 +1671,7 @@ class coinbaseexchange(Exchange, ImplicitAPI):
1671
1671
  if account is None:
1672
1672
  # eslint-disable-next-line quotes
1673
1673
  raise InvalidAddress(self.id + " createDepositAddress() could not find currency code " + code + " with id = " + currencyId + " in self.options['coinbaseAccountsByCurrencyId']")
1674
- request = {
1674
+ request: dict = {
1675
1675
  'id': account['id'],
1676
1676
  }
1677
1677
  response = self.privatePostCoinbaseAccountsIdAddresses(self.extend(request, params))
@@ -373,7 +373,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
373
373
  return self.fetch_paginated_call_incremental('fetchFundingRateHistory', symbol, since, limit, params, pageKey, maxEntriesPerRequest)
374
374
  market = self.market(symbol)
375
375
  page = self.safe_integer(params, pageKey, 1) - 1
376
- request = {
376
+ request: dict = {
377
377
  'instrument': market['id'],
378
378
  'result_offset': self.safe_integer_2(params, 'offset', 'result_offset', page * maxEntriesPerRequest),
379
379
  }
@@ -449,7 +449,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
449
449
  method, params = self.handle_option_and_params(params, 'createDepositAddress', 'method', 'v1PrivatePostTransfersAddress')
450
450
  portfolio = None
451
451
  portfolio, params = self.handle_portfolio_and_params('createDepositAddress', params)
452
- request = {
452
+ request: dict = {
453
453
  'portfolio': portfolio,
454
454
  }
455
455
  if method == 'v1PrivatePostTransfersAddress':
@@ -495,7 +495,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
495
495
  networks = self.safe_dict(currency, 'networks')
496
496
  if networks is not None:
497
497
  return
498
- request = {
498
+ request: dict = {
499
499
  'asset': currency['id'],
500
500
  }
501
501
  rawNetworks = self.v1PublicGetAssetsAssetNetworks(request)
@@ -505,7 +505,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
505
505
  # "asset_id" = self.parse_networks(rawNetworks)
506
506
 
507
507
  def parse_networks(self, networks, params={}):
508
- result = {}
508
+ result: dict = {}
509
509
  for i in range(0, len(networks)):
510
510
  network = self.extend(self.parse_network(networks[i]), params)
511
511
  result[network['network']] = network
@@ -565,7 +565,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
565
565
  portfolio, params = self.handle_portfolio_and_params('setMargin', params)
566
566
  if symbol is not None:
567
567
  raise BadRequest(self.id + ' setMargin() only allows setting margin to full portfolio')
568
- request = {
568
+ request: dict = {
569
569
  'portfolio': portfolio,
570
570
  'margin_override': amount,
571
571
  }
@@ -595,7 +595,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
595
595
  if paginate:
596
596
  return self.fetch_paginated_call_incremental('fetchDepositsWithdrawals', code, since, limit, params, pageKey, maxEntriesPerRequest)
597
597
  page = self.safe_integer(params, pageKey, 1) - 1
598
- request = {
598
+ request: dict = {
599
599
  'result_offset': self.safe_integer_2(params, 'offset', 'result_offset', page * maxEntriesPerRequest),
600
600
  }
601
601
  if since is not None:
@@ -653,7 +653,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
653
653
  symbol = self.symbol(symbol)
654
654
  portfolio = None
655
655
  portfolio, params = self.handle_portfolio_and_params('fetchPosition', params)
656
- request = {
656
+ request: dict = {
657
657
  'portfolio': portfolio,
658
658
  'instrument': self.market_id(symbol),
659
659
  }
@@ -675,7 +675,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
675
675
  #
676
676
  return self.parse_position(position)
677
677
 
678
- def parse_position(self, position, market: Market = None):
678
+ def parse_position(self, position: dict, market: Market = None):
679
679
  #
680
680
  # {
681
681
  # "symbol":"BTC-PERP",
@@ -736,7 +736,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
736
736
  self.load_markets()
737
737
  portfolio = None
738
738
  portfolio, params = self.handle_portfolio_and_params('fetchPositions', params)
739
- request = {
739
+ request: dict = {
740
740
  'portfolio': portfolio,
741
741
  }
742
742
  response = self.v1PrivateGetPortfoliosPortfolioPositions(self.extend(request, params))
@@ -801,7 +801,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
801
801
  return self.fetch_deposits_withdrawals(code, since, limit, params)
802
802
 
803
803
  def parse_transaction_status(self, status):
804
- statuses = {
804
+ statuses: dict = {
805
805
  'PROCESSED': 'ok',
806
806
  'NEW': 'pending',
807
807
  'STARTED': 'pending',
@@ -809,7 +809,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
809
809
  }
810
810
  return self.safe_string(statuses, status, status)
811
811
 
812
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
812
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
813
813
  #
814
814
  # {
815
815
  # "idem":"8e471d77-4208-45a8-9e5b-f3bd8a2c1fc3"
@@ -844,7 +844,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
844
844
  },
845
845
  }
846
846
 
847
- def parse_trade(self, trade, market: Market = None) -> Trade:
847
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
848
848
  #
849
849
  # {
850
850
  # "portfolio_id":"1wp37qsc-1-0",
@@ -1090,13 +1090,13 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1090
1090
  # ...
1091
1091
  # ]
1092
1092
  #
1093
- result = {}
1093
+ result: dict = {}
1094
1094
  for i in range(0, len(currencies)):
1095
1095
  currency = self.parse_currency(currencies[i])
1096
1096
  result[currency['code']] = currency
1097
1097
  return result
1098
1098
 
1099
- def parse_currency(self, currency):
1099
+ def parse_currency(self, currency: dict):
1100
1100
  #
1101
1101
  # {
1102
1102
  # "asset_id":"1",
@@ -1136,7 +1136,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1136
1136
  self.load_markets()
1137
1137
  symbols = self.market_symbols(symbols)
1138
1138
  instruments = self.v1PublicGetInstruments(params)
1139
- tickers = {}
1139
+ tickers: dict = {}
1140
1140
  for i in range(0, len(instruments)):
1141
1141
  instrument = instruments[i]
1142
1142
  marketId = self.safe_string(instrument, 'symbol')
@@ -1155,7 +1155,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1155
1155
  """
1156
1156
  self.load_markets()
1157
1157
  market = self.market(symbol)
1158
- request = {
1158
+ request: dict = {
1159
1159
  'instrument': self.market_id(symbol),
1160
1160
  }
1161
1161
  ticker = self.v1PublicGetInstrumentsInstrumentQuote(self.extend(request, params))
@@ -1214,7 +1214,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1214
1214
  self.load_markets()
1215
1215
  portfolio = None
1216
1216
  portfolio, params = self.handle_portfolio_and_params('fetchBalance', params)
1217
- request = {
1217
+ request: dict = {
1218
1218
  'portfolio': portfolio,
1219
1219
  }
1220
1220
  balances = self.v1PrivateGetPortfoliosPortfolioBalances(self.extend(request, params))
@@ -1253,7 +1253,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1253
1253
  # "loan_collateral_requirement":"0.0"
1254
1254
  # }
1255
1255
  #
1256
- result = {
1256
+ result: dict = {
1257
1257
  'info': response,
1258
1258
  }
1259
1259
  for i in range(0, len(response)):
@@ -1279,7 +1279,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1279
1279
  """
1280
1280
  self.load_markets()
1281
1281
  currency = self.currency(code)
1282
- request = {
1282
+ request: dict = {
1283
1283
  'asset': currency['id'],
1284
1284
  'ammount': amount,
1285
1285
  'from': fromAccount,
@@ -1325,7 +1325,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1325
1325
  clientOrderIdprefix = self.safe_string(self.options, 'brokerId', 'nfqkvdjp')
1326
1326
  clientOrderId = clientOrderIdprefix + '-' + self.uuid()
1327
1327
  clientOrderId = clientOrderId[0:17]
1328
- request = {
1328
+ request: dict = {
1329
1329
  'client_order_id': clientOrderId,
1330
1330
  'side': side.upper(),
1331
1331
  'instrument': market['id'],
@@ -1385,7 +1385,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1385
1385
  #
1386
1386
  return self.parse_order(response, market)
1387
1387
 
1388
- def parse_order(self, order, market: Market = None) -> Order:
1388
+ def parse_order(self, order: dict, market: Market = None) -> Order:
1389
1389
  #
1390
1390
  # {
1391
1391
  # "order_id":"1x96skvg-1-0",
@@ -1442,8 +1442,8 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1442
1442
  'trades': None,
1443
1443
  }, market)
1444
1444
 
1445
- def parse_order_status(self, status):
1446
- statuses = {
1445
+ def parse_order_status(self, status: Str):
1446
+ statuses: dict = {
1447
1447
  'NEW': 'open',
1448
1448
  'PARTIAL_FILLED': 'open',
1449
1449
  'FILLED': 'closed',
@@ -1457,10 +1457,10 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1457
1457
  }
1458
1458
  return self.safe_string(statuses, status, status)
1459
1459
 
1460
- def parse_order_type(self, type):
1460
+ def parse_order_type(self, type: Str):
1461
1461
  if type == 'UNKNOWN_ORDER_TYPE':
1462
1462
  return None
1463
- types = {
1463
+ types: dict = {
1464
1464
  'MARKET': 'market',
1465
1465
  'LIMIT': 'limit',
1466
1466
  'STOP': 'limit',
@@ -1480,7 +1480,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1480
1480
  self.load_markets()
1481
1481
  portfolio = None
1482
1482
  portfolio, params = self.handle_portfolio_and_params('cancelOrder', params)
1483
- request = {
1483
+ request: dict = {
1484
1484
  'portfolio': portfolio,
1485
1485
  'id': id,
1486
1486
  }
@@ -1523,7 +1523,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1523
1523
  self.load_markets()
1524
1524
  portfolio = None
1525
1525
  portfolio, params = self.handle_portfolio_and_params('cancelAllOrders', params)
1526
- request = {
1526
+ request: dict = {
1527
1527
  'portfolio': portfolio,
1528
1528
  }
1529
1529
  market = None
@@ -1549,7 +1549,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1549
1549
  """
1550
1550
  self.load_markets()
1551
1551
  market = self.market(symbol)
1552
- request = {
1552
+ request: dict = {
1553
1553
  'id': id,
1554
1554
  }
1555
1555
  portfolio = None
@@ -1585,7 +1585,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1585
1585
  market = self.market(symbol)
1586
1586
  portfolio = None
1587
1587
  portfolio, params = self.handle_portfolio_and_params('fetchOrder', params)
1588
- request = {
1588
+ request: dict = {
1589
1589
  'id': id,
1590
1590
  'portfolio': portfolio,
1591
1591
  }
@@ -1641,7 +1641,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1641
1641
  if paginate:
1642
1642
  return self.fetch_paginated_call_incremental('fetchOpenOrders', symbol, since, limit, params, pageKey, maxEntriesPerRequest)
1643
1643
  page = self.safe_integer(params, pageKey, 1) - 1
1644
- request = {
1644
+ request: dict = {
1645
1645
  'portfolio': portfolio,
1646
1646
  'result_offset': self.safe_integer_2(params, 'offset', 'result_offset', page * maxEntriesPerRequest),
1647
1647
  }
@@ -1717,7 +1717,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1717
1717
  if symbol is not None:
1718
1718
  market = self.market(symbol)
1719
1719
  page = self.safe_integer(params, pageKey, 1) - 1
1720
- request = {
1720
+ request: dict = {
1721
1721
  'result_offset': self.safe_integer_2(params, 'offset', 'result_offset', page * maxEntriesPerRequest),
1722
1722
  }
1723
1723
  if limit is not None:
@@ -1799,7 +1799,7 @@ class coinbaseinternational(Exchange, ImplicitAPI):
1799
1799
  method, params = self.handle_option_and_params(params, 'withdraw', 'method', 'v1PrivatePostTransfersWithdraw')
1800
1800
  networkId = None
1801
1801
  networkId, params = self.handle_network_id_and_params(code, 'withdraw', params)
1802
- request = {
1802
+ request: dict = {
1803
1803
  'portfolio': portfolio,
1804
1804
  'type': 'send',
1805
1805
  'asset': currency['id'],
ccxt/coincheck.py CHANGED
@@ -175,7 +175,7 @@ class coincheck(Exchange, ImplicitAPI):
175
175
  })
176
176
 
177
177
  def parse_balance(self, response) -> Balances:
178
- result = {'info': response}
178
+ result: dict = {'info': response}
179
179
  codes = list(self.currencies.keys())
180
180
  for i in range(0, len(codes)):
181
181
  code = codes[i]
@@ -223,7 +223,7 @@ class coincheck(Exchange, ImplicitAPI):
223
223
  result.append(self.extend(parsedOrders[i], {'status': 'open'}))
224
224
  return result
225
225
 
226
- def parse_order(self, order, market: Market = None) -> Order:
226
+ def parse_order(self, order: dict, market: Market = None) -> Order:
227
227
  #
228
228
  # fetchOpenOrders
229
229
  #
@@ -283,7 +283,7 @@ class coincheck(Exchange, ImplicitAPI):
283
283
  """
284
284
  self.load_markets()
285
285
  market = self.market(symbol)
286
- request = {
286
+ request: dict = {
287
287
  'pair': market['id'],
288
288
  }
289
289
  response = self.publicGetOrderBooks(self.extend(request, params))
@@ -339,7 +339,7 @@ class coincheck(Exchange, ImplicitAPI):
339
339
  raise BadSymbol(self.id + ' fetchTicker() supports BTC/JPY only')
340
340
  self.load_markets()
341
341
  market = self.market(symbol)
342
- request = {
342
+ request: dict = {
343
343
  'pair': market['id'],
344
344
  }
345
345
  ticker = self.publicGetTicker(self.extend(request, params))
@@ -356,7 +356,7 @@ class coincheck(Exchange, ImplicitAPI):
356
356
  #
357
357
  return self.parse_ticker(ticker, market)
358
358
 
359
- def parse_trade(self, trade, market: Market = None) -> Trade:
359
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
360
360
  #
361
361
  # fetchTrades(public)
362
362
  #
@@ -446,7 +446,7 @@ class coincheck(Exchange, ImplicitAPI):
446
446
  """
447
447
  self.load_markets()
448
448
  market = self.market(symbol)
449
- request = {}
449
+ request: dict = {}
450
450
  if limit is not None:
451
451
  request['limit'] = limit
452
452
  response = self.privateGetExchangeOrdersTransactionsPagination(self.extend(request, params))
@@ -487,7 +487,7 @@ class coincheck(Exchange, ImplicitAPI):
487
487
  """
488
488
  self.load_markets()
489
489
  market = self.market(symbol)
490
- request = {
490
+ request: dict = {
491
491
  'pair': market['id'],
492
492
  }
493
493
  if limit is not None:
@@ -535,7 +535,7 @@ class coincheck(Exchange, ImplicitAPI):
535
535
  # }
536
536
  #
537
537
  fees = self.safe_value(response, 'exchange_fees', {})
538
- result = {}
538
+ result: dict = {}
539
539
  for i in range(0, len(self.symbols)):
540
540
  symbol = self.symbols[i]
541
541
  market = self.market(symbol)
@@ -564,7 +564,7 @@ class coincheck(Exchange, ImplicitAPI):
564
564
  """
565
565
  self.load_markets()
566
566
  market = self.market(symbol)
567
- request = {
567
+ request: dict = {
568
568
  'pair': market['id'],
569
569
  }
570
570
  if type == 'market':
@@ -592,7 +592,7 @@ class coincheck(Exchange, ImplicitAPI):
592
592
  :param dict [params]: extra parameters specific to the exchange API endpoint
593
593
  :returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
594
594
  """
595
- request = {
595
+ request: dict = {
596
596
  'id': id,
597
597
  }
598
598
  return self.privateDeleteExchangeOrdersId(self.extend(request, params))
@@ -609,7 +609,7 @@ class coincheck(Exchange, ImplicitAPI):
609
609
  """
610
610
  self.load_markets()
611
611
  currency = None
612
- request = {}
612
+ request: dict = {}
613
613
  if code is not None:
614
614
  currency = self.currency(code)
615
615
  request['currency'] = currency['id']
@@ -656,7 +656,7 @@ class coincheck(Exchange, ImplicitAPI):
656
656
  currency = None
657
657
  if code is not None:
658
658
  currency = self.currency(code)
659
- request = {}
659
+ request: dict = {}
660
660
  if limit is not None:
661
661
  request['limit'] = limit
662
662
  response = self.privateGetWithdraws(self.extend(request, params))
@@ -685,7 +685,7 @@ class coincheck(Exchange, ImplicitAPI):
685
685
  return self.parse_transactions(data, currency, since, limit, {'type': 'withdrawal'})
686
686
 
687
687
  def parse_transaction_status(self, status):
688
- statuses = {
688
+ statuses: dict = {
689
689
  # withdrawals
690
690
  'pending': 'pending',
691
691
  'processing': 'pending',
@@ -697,7 +697,7 @@ class coincheck(Exchange, ImplicitAPI):
697
697
  }
698
698
  return self.safe_string(statuses, status, status)
699
699
 
700
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
700
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
701
701
  #
702
702
  # fetchDeposits
703
703
  #