ccxt 4.3.29__py2.py3-none-any.whl → 4.3.31__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/binance.py +2 -0
  3. ccxt/abstract/binancecoinm.py +2 -0
  4. ccxt/abstract/binanceus.py +2 -0
  5. ccxt/abstract/binanceusdm.py +2 -0
  6. ccxt/ace.py +14 -14
  7. ccxt/alpaca.py +16 -16
  8. ccxt/ascendex.py +46 -46
  9. ccxt/async_support/__init__.py +1 -1
  10. ccxt/async_support/ace.py +14 -14
  11. ccxt/async_support/alpaca.py +16 -16
  12. ccxt/async_support/ascendex.py +46 -46
  13. ccxt/async_support/base/exchange.py +23 -23
  14. ccxt/async_support/base/ws/aiohttp_client.py +1 -0
  15. ccxt/async_support/base/ws/future.py +27 -29
  16. ccxt/async_support/bigone.py +32 -32
  17. ccxt/async_support/binance.py +105 -96
  18. ccxt/async_support/bingx.py +22 -22
  19. ccxt/async_support/bit2c.py +13 -13
  20. ccxt/async_support/bitbank.py +19 -19
  21. ccxt/async_support/bitbns.py +17 -17
  22. ccxt/async_support/bitfinex.py +24 -24
  23. ccxt/async_support/bitfinex2.py +142 -109
  24. ccxt/async_support/bitflyer.py +23 -23
  25. ccxt/async_support/bitget.py +76 -76
  26. ccxt/async_support/bithumb.py +20 -20
  27. ccxt/async_support/bitmart.py +55 -55
  28. ccxt/async_support/bitmex.py +41 -41
  29. ccxt/async_support/bitopro.py +30 -30
  30. ccxt/async_support/bitrue.py +37 -37
  31. ccxt/async_support/bitso.py +30 -30
  32. ccxt/async_support/bitstamp.py +31 -31
  33. ccxt/async_support/bitteam.py +26 -26
  34. ccxt/async_support/bitvavo.py +27 -27
  35. ccxt/async_support/bl3p.py +8 -8
  36. ccxt/async_support/blockchaincom.py +24 -24
  37. ccxt/async_support/blofin.py +37 -37
  38. ccxt/async_support/btcalpha.py +19 -19
  39. ccxt/async_support/btcbox.py +11 -11
  40. ccxt/async_support/btcmarkets.py +22 -22
  41. ccxt/async_support/btcturk.py +13 -13
  42. ccxt/async_support/bybit.py +96 -96
  43. ccxt/async_support/cex.py +21 -21
  44. ccxt/async_support/coinbase.py +53 -53
  45. ccxt/async_support/coinbaseexchange.py +29 -29
  46. ccxt/async_support/coinbaseinternational.py +32 -32
  47. ccxt/async_support/coincheck.py +14 -14
  48. ccxt/async_support/coinex.py +424 -448
  49. ccxt/async_support/coinlist.py +35 -35
  50. ccxt/async_support/coinmate.py +22 -22
  51. ccxt/async_support/coinmetro.py +22 -22
  52. ccxt/async_support/coinone.py +18 -18
  53. ccxt/async_support/coinsph.py +32 -32
  54. ccxt/async_support/coinspot.py +8 -8
  55. ccxt/async_support/cryptocom.py +43 -43
  56. ccxt/async_support/currencycom.py +33 -33
  57. ccxt/async_support/delta.py +35 -35
  58. ccxt/async_support/deribit.py +54 -54
  59. ccxt/async_support/digifinex.py +56 -56
  60. ccxt/async_support/exmo.py +34 -34
  61. ccxt/async_support/gate.py +60 -60
  62. ccxt/async_support/gemini.py +24 -24
  63. ccxt/async_support/hitbtc.py +51 -51
  64. ccxt/async_support/hollaex.py +29 -29
  65. ccxt/async_support/htx.py +73 -73
  66. ccxt/async_support/huobijp.py +30 -30
  67. ccxt/async_support/hyperliquid.py +58 -58
  68. ccxt/async_support/idex.py +33 -33
  69. ccxt/async_support/independentreserve.py +12 -12
  70. ccxt/async_support/indodax.py +21 -21
  71. ccxt/async_support/kraken.py +46 -51
  72. ccxt/async_support/krakenfutures.py +29 -29
  73. ccxt/async_support/kucoin.py +51 -51
  74. ccxt/async_support/kucoinfutures.py +33 -33
  75. ccxt/async_support/kuna.py +27 -27
  76. ccxt/async_support/latoken.py +27 -27
  77. ccxt/async_support/lbank.py +35 -35
  78. ccxt/async_support/luno.py +19 -19
  79. ccxt/async_support/lykke.py +20 -20
  80. ccxt/async_support/mercado.py +17 -17
  81. ccxt/async_support/mexc.py +64 -64
  82. ccxt/async_support/ndax.py +38 -38
  83. ccxt/async_support/novadax.py +26 -26
  84. ccxt/async_support/oceanex.py +21 -21
  85. ccxt/async_support/okcoin.py +35 -35
  86. ccxt/async_support/okx.py +85 -85
  87. ccxt/async_support/onetrading.py +32 -32
  88. ccxt/async_support/p2b.py +14 -14
  89. ccxt/async_support/paymium.py +12 -12
  90. ccxt/async_support/phemex.py +50 -50
  91. ccxt/async_support/poloniex.py +35 -35
  92. ccxt/async_support/poloniexfutures.py +25 -21
  93. ccxt/async_support/probit.py +30 -30
  94. ccxt/async_support/timex.py +22 -22
  95. ccxt/async_support/tokocrypto.py +26 -26
  96. ccxt/async_support/tradeogre.py +12 -12
  97. ccxt/async_support/upbit.py +28 -28
  98. ccxt/async_support/wavesexchange.py +33 -33
  99. ccxt/async_support/wazirx.py +21 -21
  100. ccxt/async_support/whitebit.py +80 -40
  101. ccxt/async_support/woo.py +51 -51
  102. ccxt/async_support/woofipro.py +46 -46
  103. ccxt/async_support/yobit.py +20 -20
  104. ccxt/async_support/zaif.py +12 -12
  105. ccxt/async_support/zonda.py +22 -22
  106. ccxt/base/exchange.py +39 -35
  107. ccxt/base/types.py +13 -0
  108. ccxt/bigone.py +32 -32
  109. ccxt/binance.py +105 -96
  110. ccxt/bingx.py +22 -22
  111. ccxt/bit2c.py +13 -13
  112. ccxt/bitbank.py +19 -19
  113. ccxt/bitbns.py +17 -17
  114. ccxt/bitfinex.py +24 -24
  115. ccxt/bitfinex2.py +142 -109
  116. ccxt/bitflyer.py +23 -23
  117. ccxt/bitget.py +76 -76
  118. ccxt/bithumb.py +20 -20
  119. ccxt/bitmart.py +55 -55
  120. ccxt/bitmex.py +41 -41
  121. ccxt/bitopro.py +30 -30
  122. ccxt/bitrue.py +37 -37
  123. ccxt/bitso.py +30 -30
  124. ccxt/bitstamp.py +31 -31
  125. ccxt/bitteam.py +26 -26
  126. ccxt/bitvavo.py +27 -27
  127. ccxt/bl3p.py +8 -8
  128. ccxt/blockchaincom.py +24 -24
  129. ccxt/blofin.py +37 -37
  130. ccxt/btcalpha.py +19 -19
  131. ccxt/btcbox.py +11 -11
  132. ccxt/btcmarkets.py +22 -22
  133. ccxt/btcturk.py +13 -13
  134. ccxt/bybit.py +96 -96
  135. ccxt/cex.py +21 -21
  136. ccxt/coinbase.py +53 -53
  137. ccxt/coinbaseexchange.py +29 -29
  138. ccxt/coinbaseinternational.py +32 -32
  139. ccxt/coincheck.py +14 -14
  140. ccxt/coinex.py +424 -448
  141. ccxt/coinlist.py +35 -35
  142. ccxt/coinmate.py +22 -22
  143. ccxt/coinmetro.py +22 -22
  144. ccxt/coinone.py +18 -18
  145. ccxt/coinsph.py +32 -32
  146. ccxt/coinspot.py +8 -8
  147. ccxt/cryptocom.py +43 -43
  148. ccxt/currencycom.py +33 -33
  149. ccxt/delta.py +35 -35
  150. ccxt/deribit.py +54 -54
  151. ccxt/digifinex.py +56 -56
  152. ccxt/exmo.py +34 -34
  153. ccxt/gate.py +60 -60
  154. ccxt/gemini.py +24 -24
  155. ccxt/hitbtc.py +51 -51
  156. ccxt/hollaex.py +29 -29
  157. ccxt/htx.py +73 -73
  158. ccxt/huobijp.py +30 -30
  159. ccxt/hyperliquid.py +58 -58
  160. ccxt/idex.py +33 -33
  161. ccxt/independentreserve.py +12 -12
  162. ccxt/indodax.py +21 -21
  163. ccxt/kraken.py +46 -51
  164. ccxt/krakenfutures.py +29 -29
  165. ccxt/kucoin.py +51 -51
  166. ccxt/kucoinfutures.py +33 -33
  167. ccxt/kuna.py +27 -27
  168. ccxt/latoken.py +27 -27
  169. ccxt/lbank.py +35 -35
  170. ccxt/luno.py +19 -19
  171. ccxt/lykke.py +20 -20
  172. ccxt/mercado.py +17 -17
  173. ccxt/mexc.py +64 -64
  174. ccxt/ndax.py +38 -38
  175. ccxt/novadax.py +26 -26
  176. ccxt/oceanex.py +21 -21
  177. ccxt/okcoin.py +35 -35
  178. ccxt/okx.py +85 -85
  179. ccxt/onetrading.py +32 -32
  180. ccxt/p2b.py +14 -14
  181. ccxt/paymium.py +12 -12
  182. ccxt/phemex.py +50 -50
  183. ccxt/poloniex.py +35 -35
  184. ccxt/poloniexfutures.py +25 -21
  185. ccxt/pro/__init__.py +1 -1
  186. ccxt/pro/alpaca.py +8 -8
  187. ccxt/pro/ascendex.py +4 -4
  188. ccxt/pro/binance.py +56 -56
  189. ccxt/pro/bingx.py +5 -5
  190. ccxt/pro/bitfinex.py +6 -6
  191. ccxt/pro/bitfinex2.py +10 -10
  192. ccxt/pro/bitget.py +17 -17
  193. ccxt/pro/bithumb.py +6 -6
  194. ccxt/pro/bitmart.py +8 -8
  195. ccxt/pro/bitmex.py +16 -16
  196. ccxt/pro/bitopro.py +4 -4
  197. ccxt/pro/bitrue.py +8 -8
  198. ccxt/pro/bitstamp.py +5 -5
  199. ccxt/pro/bitvavo.py +14 -14
  200. ccxt/pro/blockchaincom.py +7 -7
  201. ccxt/pro/bybit.py +12 -12
  202. ccxt/pro/cex.py +19 -19
  203. ccxt/pro/coinbase.py +2 -2
  204. ccxt/pro/coinbaseexchange.py +10 -10
  205. ccxt/pro/coinbaseinternational.py +4 -4
  206. ccxt/pro/coincheck.py +2 -2
  207. ccxt/pro/coinex.py +15 -15
  208. ccxt/pro/coinone.py +4 -4
  209. ccxt/pro/cryptocom.py +11 -11
  210. ccxt/pro/currencycom.py +4 -4
  211. ccxt/pro/deribit.py +9 -9
  212. ccxt/pro/exmo.py +9 -9
  213. ccxt/pro/gate.py +12 -12
  214. ccxt/pro/gemini.py +11 -11
  215. ccxt/pro/hitbtc.py +13 -13
  216. ccxt/pro/hollaex.py +6 -6
  217. ccxt/pro/htx.py +15 -15
  218. ccxt/pro/huobijp.py +16 -16
  219. ccxt/pro/hyperliquid.py +9 -9
  220. ccxt/pro/idex.py +12 -12
  221. ccxt/pro/independentreserve.py +2 -2
  222. ccxt/pro/kraken.py +14 -14
  223. ccxt/pro/krakenfutures.py +12 -12
  224. ccxt/pro/kucoin.py +12 -12
  225. ccxt/pro/kucoinfutures.py +16 -16
  226. ccxt/pro/lbank.py +12 -12
  227. ccxt/pro/luno.py +4 -4
  228. ccxt/pro/mexc.py +14 -14
  229. ccxt/pro/ndax.py +12 -12
  230. ccxt/pro/okcoin.py +6 -6
  231. ccxt/pro/okx.py +30 -30
  232. ccxt/pro/onetrading.py +13 -13
  233. ccxt/pro/p2b.py +2 -2
  234. ccxt/pro/phemex.py +9 -9
  235. ccxt/pro/poloniex.py +9 -9
  236. ccxt/pro/poloniexfutures.py +10 -10
  237. ccxt/pro/probit.py +8 -8
  238. ccxt/pro/upbit.py +1 -1
  239. ccxt/pro/wazirx.py +10 -10
  240. ccxt/pro/whitebit.py +8 -8
  241. ccxt/pro/woo.py +14 -14
  242. ccxt/pro/woofipro.py +14 -14
  243. ccxt/probit.py +30 -30
  244. ccxt/test/base/test_shared_methods.py +1 -0
  245. ccxt/timex.py +22 -22
  246. ccxt/tokocrypto.py +26 -26
  247. ccxt/tradeogre.py +12 -12
  248. ccxt/upbit.py +28 -28
  249. ccxt/wavesexchange.py +33 -33
  250. ccxt/wazirx.py +21 -21
  251. ccxt/whitebit.py +80 -40
  252. ccxt/woo.py +51 -51
  253. ccxt/woofipro.py +46 -46
  254. ccxt/yobit.py +20 -20
  255. ccxt/zaif.py +12 -12
  256. ccxt/zonda.py +22 -22
  257. {ccxt-4.3.29.dist-info → ccxt-4.3.31.dist-info}/METADATA +4 -4
  258. {ccxt-4.3.29.dist-info → ccxt-4.3.31.dist-info}/RECORD +260 -260
  259. {ccxt-4.3.29.dist-info → ccxt-4.3.31.dist-info}/WHEEL +0 -0
  260. {ccxt-4.3.29.dist-info → ccxt-4.3.31.dist-info}/top_level.txt +0 -0
@@ -8,7 +8,7 @@ from ccxt.abstract.bitget import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
10
  import json
11
- from ccxt.base.types import Balances, Conversion, CrossBorrowRate, Currencies, Currency, FundingHistory, Int, IsolatedBorrowRate, Leverage, Liquidation, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry, TransferEntries
11
+ from ccxt.base.types import Balances, Conversion, CrossBorrowRate, Currencies, Currency, FundingHistory, Int, IsolatedBorrowRate, Leverage, LeverageTier, Liquidation, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry, TransferEntries
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
14
  from ccxt.base.errors import AuthenticationError
@@ -1863,14 +1863,14 @@ class bitget(Exchange, ImplicitAPI):
1863
1863
  # "requestTime": "1700120731773"
1864
1864
  # }
1865
1865
  #
1866
- result = {}
1866
+ result: dict = {}
1867
1867
  data = self.safe_value(response, 'data', [])
1868
1868
  for i in range(0, len(data)):
1869
1869
  entry = data[i]
1870
1870
  id = self.safe_string(entry, 'coin') # we don't use 'coinId' has no use. it is 'coin' field that needs to be used in currency related endpoints(deposit, withdraw, etc..)
1871
1871
  code = self.safe_currency_code(id)
1872
1872
  chains = self.safe_value(entry, 'chains', [])
1873
- networks = {}
1873
+ networks: dict = {}
1874
1874
  deposit = False
1875
1875
  withdraw = False
1876
1876
  minWithdrawString = None
@@ -1945,7 +1945,7 @@ class bitget(Exchange, ImplicitAPI):
1945
1945
  }
1946
1946
  return result
1947
1947
 
1948
- async def fetch_market_leverage_tiers(self, symbol: str, params={}):
1948
+ async def fetch_market_leverage_tiers(self, symbol: str, params={}) -> List[LeverageTier]:
1949
1949
  """
1950
1950
  retrieve information on the maximum leverage, and maintenance margin for trades of varying trade sizes for a single market
1951
1951
  :see: https://www.bitget.com/api-doc/contract/position/Get-Query-Position-Lever
@@ -1966,7 +1966,7 @@ class bitget(Exchange, ImplicitAPI):
1966
1966
  market = self.market(sandboxSymbol)
1967
1967
  else:
1968
1968
  market = self.market(symbol)
1969
- request = {}
1969
+ request: dict = {}
1970
1970
  response = None
1971
1971
  marginMode = None
1972
1972
  marginMode, params = self.handle_margin_mode_and_params('fetchMarketLeverageTiers', params, 'isolated')
@@ -2049,7 +2049,7 @@ class bitget(Exchange, ImplicitAPI):
2049
2049
  result = self.safe_value(response, 'data', [])
2050
2050
  return self.parse_market_leverage_tiers(result, market)
2051
2051
 
2052
- def parse_market_leverage_tiers(self, info, market: Market = None):
2052
+ def parse_market_leverage_tiers(self, info, market: Market = None) -> List[LeverageTier]:
2053
2053
  #
2054
2054
  # swap and future
2055
2055
  #
@@ -2131,7 +2131,7 @@ class bitget(Exchange, ImplicitAPI):
2131
2131
  currency = self.currency(code)
2132
2132
  if since is None:
2133
2133
  since = self.milliseconds() - 7776000000 # 90 days
2134
- request = {
2134
+ request: dict = {
2135
2135
  'coin': currency['id'],
2136
2136
  'startTime': since,
2137
2137
  'endTime': self.milliseconds(),
@@ -2186,7 +2186,7 @@ class bitget(Exchange, ImplicitAPI):
2186
2186
  await self.load_markets()
2187
2187
  currency = self.currency(code)
2188
2188
  networkId = self.network_code_to_id(chain)
2189
- request = {
2189
+ request: dict = {
2190
2190
  'coin': currency['id'],
2191
2191
  'address': address,
2192
2192
  'chain': networkId,
@@ -2208,7 +2208,7 @@ class bitget(Exchange, ImplicitAPI):
2208
2208
  # }
2209
2209
  #
2210
2210
  data = self.safe_value(response, 'data', {})
2211
- result = {
2211
+ result: dict = {
2212
2212
  'id': self.safe_string(data, 'orderId'),
2213
2213
  'info': response,
2214
2214
  'txid': None,
@@ -2265,7 +2265,7 @@ class bitget(Exchange, ImplicitAPI):
2265
2265
  currency = self.currency(code)
2266
2266
  if since is None:
2267
2267
  since = self.milliseconds() - 7776000000 # 90 days
2268
- request = {
2268
+ request: dict = {
2269
2269
  'coin': currency['id'],
2270
2270
  'startTime': since,
2271
2271
  'endTime': self.milliseconds(),
@@ -2303,7 +2303,7 @@ class bitget(Exchange, ImplicitAPI):
2303
2303
  rawTransactions = self.safe_list(response, 'data', [])
2304
2304
  return self.parse_transactions(rawTransactions, currency, since, limit)
2305
2305
 
2306
- def parse_transaction(self, transaction, currency: Currency = None) -> Transaction:
2306
+ def parse_transaction(self, transaction: dict, currency: Currency = None) -> Transaction:
2307
2307
  #
2308
2308
  # fetchDeposits
2309
2309
  #
@@ -2379,7 +2379,7 @@ class bitget(Exchange, ImplicitAPI):
2379
2379
  }
2380
2380
 
2381
2381
  def parse_transaction_status(self, status):
2382
- statuses = {
2382
+ statuses: dict = {
2383
2383
  'success': 'ok',
2384
2384
  'Pending': 'pending',
2385
2385
  'pending_review': 'pending',
@@ -2403,7 +2403,7 @@ class bitget(Exchange, ImplicitAPI):
2403
2403
  if networkCode is not None:
2404
2404
  networkId = self.network_code_to_id(networkCode, code)
2405
2405
  currency = self.currency(code)
2406
- request = {
2406
+ request: dict = {
2407
2407
  'coin': currency['id'],
2408
2408
  }
2409
2409
  if networkId is not None:
@@ -2468,7 +2468,7 @@ class bitget(Exchange, ImplicitAPI):
2468
2468
  market = self.market(sandboxSymbol)
2469
2469
  else:
2470
2470
  market = self.market(symbol)
2471
- request = {
2471
+ request: dict = {
2472
2472
  'symbol': market['id'],
2473
2473
  }
2474
2474
  if limit is not None:
@@ -2622,7 +2622,7 @@ class bitget(Exchange, ImplicitAPI):
2622
2622
  market = self.market(sandboxSymbol)
2623
2623
  else:
2624
2624
  market = self.market(symbol)
2625
- request = {
2625
+ request: dict = {
2626
2626
  'symbol': market['id'],
2627
2627
  }
2628
2628
  response = None
@@ -2721,7 +2721,7 @@ class bitget(Exchange, ImplicitAPI):
2721
2721
  else:
2722
2722
  market = self.market(symbol)
2723
2723
  response = None
2724
- request = {}
2724
+ request: dict = {}
2725
2725
  type = None
2726
2726
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
2727
2727
  # Calls like `.fetch_tickers(None, {subType:'inverse'})` should be supported for self exchange, so
@@ -2796,7 +2796,7 @@ class bitget(Exchange, ImplicitAPI):
2796
2796
  data = self.safe_list(response, 'data', [])
2797
2797
  return self.parse_tickers(data, symbols)
2798
2798
 
2799
- def parse_trade(self, trade, market: Market = None) -> Trade:
2799
+ def parse_trade(self, trade: dict, market: Market = None) -> Trade:
2800
2800
  #
2801
2801
  # spot, swap and future: fetchTrades
2802
2802
  #
@@ -2940,7 +2940,7 @@ class bitget(Exchange, ImplicitAPI):
2940
2940
  market = self.market(sandboxSymbol)
2941
2941
  else:
2942
2942
  market = self.market(symbol)
2943
- request = {
2943
+ request: dict = {
2944
2944
  'symbol': market['id'],
2945
2945
  }
2946
2946
  if limit is not None:
@@ -3028,7 +3028,7 @@ class bitget(Exchange, ImplicitAPI):
3028
3028
  """
3029
3029
  await self.load_markets()
3030
3030
  market = self.market(symbol)
3031
- request = {
3031
+ request: dict = {
3032
3032
  'symbol': market['id'],
3033
3033
  }
3034
3034
  marginMode = None
@@ -3158,7 +3158,7 @@ class bitget(Exchange, ImplicitAPI):
3158
3158
  # }
3159
3159
  #
3160
3160
  data = self.safe_value(response, 'data', [])
3161
- result = {}
3161
+ result: dict = {}
3162
3162
  for i in range(0, len(data)):
3163
3163
  entry = data[i]
3164
3164
  marketId = self.safe_string(entry, 'symbol')
@@ -3238,7 +3238,7 @@ class bitget(Exchange, ImplicitAPI):
3238
3238
  timeframes = self.options['timeframes'][marketType]
3239
3239
  msInDay = 86400000
3240
3240
  duration = self.parse_timeframe(timeframe) * 1000
3241
- request = {
3241
+ request: dict = {
3242
3242
  'symbol': market['id'],
3243
3243
  'granularity': self.safe_string(timeframes, timeframe, timeframe),
3244
3244
  }
@@ -3334,7 +3334,7 @@ class bitget(Exchange, ImplicitAPI):
3334
3334
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
3335
3335
  """
3336
3336
  await self.load_markets()
3337
- request = {}
3337
+ request: dict = {}
3338
3338
  marketType = None
3339
3339
  marginMode = None
3340
3340
  response = None
@@ -3444,7 +3444,7 @@ class bitget(Exchange, ImplicitAPI):
3444
3444
  return self.parse_balance(data)
3445
3445
 
3446
3446
  def parse_balance(self, balance) -> Balances:
3447
- result = {'info': balance}
3447
+ result: dict = {'info': balance}
3448
3448
  #
3449
3449
  # spot
3450
3450
  #
@@ -3531,8 +3531,8 @@ class bitget(Exchange, ImplicitAPI):
3531
3531
  result[code] = account
3532
3532
  return self.safe_balance(result)
3533
3533
 
3534
- def parse_order_status(self, status):
3535
- statuses = {
3534
+ def parse_order_status(self, status: Str):
3535
+ statuses: dict = {
3536
3536
  'new': 'open',
3537
3537
  'init': 'open',
3538
3538
  'not_trigger': 'open',
@@ -3552,7 +3552,7 @@ class bitget(Exchange, ImplicitAPI):
3552
3552
  }
3553
3553
  return self.safe_string(statuses, status, status)
3554
3554
 
3555
- def parse_order(self, order, market: Market = None) -> Order:
3555
+ def parse_order(self, order: dict, market: Market = None) -> Order:
3556
3556
  #
3557
3557
  # createOrder, editOrder, closePosition
3558
3558
  #
@@ -4039,7 +4039,7 @@ class bitget(Exchange, ImplicitAPI):
4039
4039
  marginMode = None
4040
4040
  marketType, params = self.handle_market_type_and_params('createOrder', market, params)
4041
4041
  marginMode, params = self.handle_margin_mode_and_params('createOrder', params)
4042
- request = {
4042
+ request: dict = {
4043
4043
  'symbol': market['id'],
4044
4044
  'orderType': type,
4045
4045
  }
@@ -4246,7 +4246,7 @@ class bitget(Exchange, ImplicitAPI):
4246
4246
  market = self.market(sandboxSymbol)
4247
4247
  else:
4248
4248
  market = self.market(symbol)
4249
- request = {
4249
+ request: dict = {
4250
4250
  'symbol': market['id'],
4251
4251
  'orderList': ordersRequests,
4252
4252
  }
@@ -4334,7 +4334,7 @@ class bitget(Exchange, ImplicitAPI):
4334
4334
  market = self.market(sandboxSymbol)
4335
4335
  else:
4336
4336
  market = self.market(symbol)
4337
- request = {
4337
+ request: dict = {
4338
4338
  'orderId': id,
4339
4339
  }
4340
4340
  isMarketOrder = type == 'market'
@@ -4477,7 +4477,7 @@ class bitget(Exchange, ImplicitAPI):
4477
4477
  marginMode = None
4478
4478
  response = None
4479
4479
  marginMode, params = self.handle_margin_mode_and_params('cancelOrder', params)
4480
- request = {}
4480
+ request: dict = {}
4481
4481
  trailing = self.safe_value(params, 'trailing')
4482
4482
  stop = self.safe_value_2(params, 'stop', 'trigger')
4483
4483
  params = self.omit(params, ['stop', 'trigger', 'trailing'])
@@ -4491,7 +4491,7 @@ class bitget(Exchange, ImplicitAPI):
4491
4491
  request['productType'] = productType
4492
4492
  if stop or trailing:
4493
4493
  orderIdList = []
4494
- orderId = {
4494
+ orderId: dict = {
4495
4495
  'orderId': id,
4496
4496
  }
4497
4497
  orderIdList.append(orderId)
@@ -4599,11 +4599,11 @@ class bitget(Exchange, ImplicitAPI):
4599
4599
  orderIdList = []
4600
4600
  for i in range(0, len(ids)):
4601
4601
  individualId = ids[i]
4602
- orderId = {
4602
+ orderId: dict = {
4603
4603
  'orderId': individualId,
4604
4604
  }
4605
4605
  orderIdList.append(orderId)
4606
- request = {
4606
+ request: dict = {
4607
4607
  'symbol': market['id'],
4608
4608
  }
4609
4609
  if market['spot'] and (marginMode is None):
@@ -4673,7 +4673,7 @@ class bitget(Exchange, ImplicitAPI):
4673
4673
  market = self.market(symbol)
4674
4674
  marginMode = None
4675
4675
  marginMode, params = self.handle_margin_mode_and_params('cancelAllOrders', params)
4676
- request = {
4676
+ request: dict = {
4677
4677
  'symbol': market['id'],
4678
4678
  }
4679
4679
  stop = self.safe_bool_2(params, 'stop', 'trigger')
@@ -4687,7 +4687,7 @@ class bitget(Exchange, ImplicitAPI):
4687
4687
  response = await self.privateMarginPostMarginV1IsolatedOrderBatchCancelOrder(self.extend(request, params))
4688
4688
  else:
4689
4689
  if stop:
4690
- stopRequest = {
4690
+ stopRequest: dict = {
4691
4691
  'symbolList': [market['id']],
4692
4692
  }
4693
4693
  response = await self.privateSpotPostV2SpotTradeBatchCancelPlanOrder(self.extend(stopRequest, params))
@@ -4768,7 +4768,7 @@ class bitget(Exchange, ImplicitAPI):
4768
4768
  market = self.market(sandboxSymbol)
4769
4769
  else:
4770
4770
  market = self.market(symbol)
4771
- request = {
4771
+ request: dict = {
4772
4772
  'orderId': id,
4773
4773
  }
4774
4774
  response = None
@@ -4885,7 +4885,7 @@ class bitget(Exchange, ImplicitAPI):
4885
4885
  sandboxMode = self.safe_bool(self.options, 'sandboxMode', False)
4886
4886
  market = None
4887
4887
  type = None
4888
- request = {}
4888
+ request: dict = {}
4889
4889
  marginMode = None
4890
4890
  marginMode, params = self.handle_margin_mode_and_params('fetchOpenOrders', params)
4891
4891
  if symbol is not None:
@@ -5212,7 +5212,7 @@ class bitget(Exchange, ImplicitAPI):
5212
5212
  if symbol is not None:
5213
5213
  sandboxSymbol = self.convert_symbol_for_sandbox(symbol)
5214
5214
  symbol = sandboxSymbol
5215
- request = {}
5215
+ request: dict = {}
5216
5216
  if symbol is not None:
5217
5217
  market = self.market(symbol)
5218
5218
  request['symbol'] = market['id']
@@ -5507,7 +5507,7 @@ class bitget(Exchange, ImplicitAPI):
5507
5507
  cursorReceived = 'endId'
5508
5508
  return await self.fetch_paginated_call_cursor('fetchLedger', symbol, since, limit, params, cursorReceived, 'idLessThan')
5509
5509
  currency = None
5510
- request = {}
5510
+ request: dict = {}
5511
5511
  if code is not None:
5512
5512
  currency = self.currency(code)
5513
5513
  request['coin'] = currency['id']
@@ -5576,7 +5576,7 @@ class bitget(Exchange, ImplicitAPI):
5576
5576
  return self.parse_ledger(bills, currency, since, limit)
5577
5577
  return self.parse_ledger(data, currency, since, limit)
5578
5578
 
5579
- def parse_ledger_entry(self, item, currency: Currency = None):
5579
+ def parse_ledger_entry(self, item: dict, currency: Currency = None):
5580
5580
  #
5581
5581
  # spot
5582
5582
  #
@@ -5633,7 +5633,7 @@ class bitget(Exchange, ImplicitAPI):
5633
5633
  }
5634
5634
 
5635
5635
  def parse_ledger_type(self, type):
5636
- types = {
5636
+ types: dict = {
5637
5637
  'trans_to_cross': 'transfer',
5638
5638
  'trans_from_cross': 'transfer',
5639
5639
  'trans_to_exchange': 'transfer',
@@ -5715,7 +5715,7 @@ class bitget(Exchange, ImplicitAPI):
5715
5715
  cursorReceived = 'endId'
5716
5716
  return await self.fetch_paginated_call_cursor('fetchMyTrades', symbol, since, limit, params, cursorReceived, 'idLessThan')
5717
5717
  response = None
5718
- request = {
5718
+ request: dict = {
5719
5719
  'symbol': market['id'],
5720
5720
  }
5721
5721
  request, params = self.handle_until_option('endTime', request, params)
@@ -5864,7 +5864,7 @@ class bitget(Exchange, ImplicitAPI):
5864
5864
  market = self.market(symbol)
5865
5865
  productType = None
5866
5866
  productType, params = self.handle_product_type_and_params(market, params)
5867
- request = {
5867
+ request: dict = {
5868
5868
  'symbol': market['id'],
5869
5869
  'marginCoin': market['settleId'],
5870
5870
  'productType': productType,
@@ -5940,7 +5940,7 @@ class bitget(Exchange, ImplicitAPI):
5940
5940
  market = self.market(first)
5941
5941
  productType = None
5942
5942
  productType, params = self.handle_product_type_and_params(market, params)
5943
- request = {
5943
+ request: dict = {
5944
5944
  'productType': productType,
5945
5945
  }
5946
5946
  response = None
@@ -6041,7 +6041,7 @@ class bitget(Exchange, ImplicitAPI):
6041
6041
  symbols = self.market_symbols(symbols)
6042
6042
  return self.filter_by_array_positions(result, 'symbol', symbols, False)
6043
6043
 
6044
- def parse_position(self, position, market: Market = None):
6044
+ def parse_position(self, position: dict, market: Market = None):
6045
6045
  #
6046
6046
  # fetchPosition
6047
6047
  #
@@ -6231,7 +6231,7 @@ class bitget(Exchange, ImplicitAPI):
6231
6231
  market = self.market(symbol)
6232
6232
  productType = None
6233
6233
  productType, params = self.handle_product_type_and_params(market, params)
6234
- request = {
6234
+ request: dict = {
6235
6235
  'symbol': market['id'],
6236
6236
  'productType': productType,
6237
6237
  # 'pageSize': limit, # default 20
@@ -6291,7 +6291,7 @@ class bitget(Exchange, ImplicitAPI):
6291
6291
  raise BadSymbol(self.id + ' fetchFundingRate() supports swap contracts only')
6292
6292
  productType = None
6293
6293
  productType, params = self.handle_product_type_and_params(market, params)
6294
- request = {
6294
+ request: dict = {
6295
6295
  'symbol': market['id'],
6296
6296
  'productType': productType,
6297
6297
  }
@@ -6371,7 +6371,7 @@ class bitget(Exchange, ImplicitAPI):
6371
6371
  raise BadSymbol(self.id + ' fetchFundingHistory() supports swap contracts only')
6372
6372
  productType = None
6373
6373
  productType, params = self.handle_product_type_and_params(market, params)
6374
- request = {
6374
+ request: dict = {
6375
6375
  'symbol': market['id'],
6376
6376
  'marginCoin': market['settleId'],
6377
6377
  'businessType': 'contract_settle_fee',
@@ -6458,7 +6458,7 @@ class bitget(Exchange, ImplicitAPI):
6458
6458
  market = self.market(symbol)
6459
6459
  productType = None
6460
6460
  productType, params = self.handle_product_type_and_params(market, params)
6461
- request = {
6461
+ request: dict = {
6462
6462
  'symbol': market['id'],
6463
6463
  'marginCoin': market['settleId'],
6464
6464
  'amount': self.amount_to_precision(symbol, amount), # positive value for adding margin, negative for reducing
@@ -6554,7 +6554,7 @@ class bitget(Exchange, ImplicitAPI):
6554
6554
  market = self.market(symbol)
6555
6555
  productType = None
6556
6556
  productType, params = self.handle_product_type_and_params(market, params)
6557
- request = {
6557
+ request: dict = {
6558
6558
  'symbol': market['id'],
6559
6559
  'marginCoin': market['settleId'],
6560
6560
  'productType': productType,
@@ -6622,7 +6622,7 @@ class bitget(Exchange, ImplicitAPI):
6622
6622
  market = self.market(symbol)
6623
6623
  productType = None
6624
6624
  productType, params = self.handle_product_type_and_params(market, params)
6625
- request = {
6625
+ request: dict = {
6626
6626
  'symbol': market['id'],
6627
6627
  'marginCoin': market['settleId'],
6628
6628
  'leverage': self.number_to_string(leverage),
@@ -6673,7 +6673,7 @@ class bitget(Exchange, ImplicitAPI):
6673
6673
  market = self.market(symbol)
6674
6674
  productType = None
6675
6675
  productType, params = self.handle_product_type_and_params(market, params)
6676
- request = {
6676
+ request: dict = {
6677
6677
  'symbol': market['id'],
6678
6678
  'marginCoin': market['settleId'],
6679
6679
  'marginMode': marginMode,
@@ -6718,7 +6718,7 @@ class bitget(Exchange, ImplicitAPI):
6718
6718
  market = self.market(symbol)
6719
6719
  productType = None
6720
6720
  productType, params = self.handle_product_type_and_params(market, params)
6721
- request = {
6721
+ request: dict = {
6722
6722
  'posMode': posMode,
6723
6723
  'productType': productType,
6724
6724
  }
@@ -6755,7 +6755,7 @@ class bitget(Exchange, ImplicitAPI):
6755
6755
  raise BadRequest(self.id + ' fetchOpenInterest() supports contract markets only')
6756
6756
  productType = None
6757
6757
  productType, params = self.handle_product_type_and_params(market, params)
6758
- request = {
6758
+ request: dict = {
6759
6759
  'symbol': market['id'],
6760
6760
  'productType': productType,
6761
6761
  }
@@ -6824,7 +6824,7 @@ class bitget(Exchange, ImplicitAPI):
6824
6824
  accountsByType = self.safe_value(self.options, 'accountsByType', {})
6825
6825
  type = self.safe_string(accountsByType, fromAccount)
6826
6826
  currency = self.currency(code)
6827
- request = {
6827
+ request: dict = {
6828
6828
  'coin': currency['id'],
6829
6829
  'fromType': type,
6830
6830
  }
@@ -6876,7 +6876,7 @@ class bitget(Exchange, ImplicitAPI):
6876
6876
  accountsByType = self.safe_value(self.options, 'accountsByType', {})
6877
6877
  fromType = self.safe_string(accountsByType, fromAccount)
6878
6878
  toType = self.safe_string(accountsByType, toAccount)
6879
- request = {
6879
+ request: dict = {
6880
6880
  'fromType': fromType,
6881
6881
  'toType': toType,
6882
6882
  'amount': amount,
@@ -6950,7 +6950,7 @@ class bitget(Exchange, ImplicitAPI):
6950
6950
  }
6951
6951
 
6952
6952
  def parse_transfer_status(self, status: Str) -> Str:
6953
- statuses = {
6953
+ statuses: dict = {
6954
6954
  'successful': 'ok',
6955
6955
  }
6956
6956
  return self.safe_string(statuses, status, status)
@@ -6980,7 +6980,7 @@ class bitget(Exchange, ImplicitAPI):
6980
6980
  #
6981
6981
  chains = self.safe_value(fee, 'chains', [])
6982
6982
  chainsLength = len(chains)
6983
- result = {
6983
+ result: dict = {
6984
6984
  'info': fee,
6985
6985
  'withdraw': {
6986
6986
  'fee': None,
@@ -7059,7 +7059,7 @@ class bitget(Exchange, ImplicitAPI):
7059
7059
  """
7060
7060
  await self.load_markets()
7061
7061
  currency = self.currency(code)
7062
- request = {
7062
+ request: dict = {
7063
7063
  'coin': currency['id'],
7064
7064
  'borrowAmount': self.currency_to_precision(code, amount),
7065
7065
  }
@@ -7092,7 +7092,7 @@ class bitget(Exchange, ImplicitAPI):
7092
7092
  await self.load_markets()
7093
7093
  currency = self.currency(code)
7094
7094
  market = self.market(symbol)
7095
- request = {
7095
+ request: dict = {
7096
7096
  'coin': currency['id'],
7097
7097
  'borrowAmount': self.currency_to_precision(code, amount),
7098
7098
  'symbol': market['id'],
@@ -7127,7 +7127,7 @@ class bitget(Exchange, ImplicitAPI):
7127
7127
  await self.load_markets()
7128
7128
  currency = self.currency(code)
7129
7129
  market = self.market(symbol)
7130
- request = {
7130
+ request: dict = {
7131
7131
  'coin': currency['id'],
7132
7132
  'repayAmount': self.currency_to_precision(code, amount),
7133
7133
  'symbol': market['id'],
@@ -7161,7 +7161,7 @@ class bitget(Exchange, ImplicitAPI):
7161
7161
  """
7162
7162
  await self.load_markets()
7163
7163
  currency = self.currency(code)
7164
- request = {
7164
+ request: dict = {
7165
7165
  'coin': currency['id'],
7166
7166
  'repayAmount': self.currency_to_precision(code, amount),
7167
7167
  }
@@ -7261,7 +7261,7 @@ class bitget(Exchange, ImplicitAPI):
7261
7261
  type, params = self.handle_market_type_and_params('fetchMyLiquidations', market, params)
7262
7262
  if type != 'spot':
7263
7263
  raise NotSupported(self.id + ' fetchMyLiquidations() supports spot margin markets only')
7264
- request = {}
7264
+ request: dict = {}
7265
7265
  request, params = self.handle_until_option('endTime', request, params)
7266
7266
  if since is not None:
7267
7267
  request['startTime'] = since
@@ -7393,7 +7393,7 @@ class bitget(Exchange, ImplicitAPI):
7393
7393
  """
7394
7394
  await self.load_markets()
7395
7395
  market = self.market(symbol)
7396
- request = {
7396
+ request: dict = {
7397
7397
  'symbol': market['id'],
7398
7398
  }
7399
7399
  response = await self.privateMarginGetV2MarginIsolatedInterestRateAndLimit(self.extend(request, params))
@@ -7507,7 +7507,7 @@ class bitget(Exchange, ImplicitAPI):
7507
7507
  """
7508
7508
  await self.load_markets()
7509
7509
  currency = self.currency(code)
7510
- request = {
7510
+ request: dict = {
7511
7511
  'coin': currency['id'],
7512
7512
  }
7513
7513
  response = await self.privateMarginGetV2MarginCrossedInterestRateAndLimit(self.extend(request, params))
@@ -7595,7 +7595,7 @@ class bitget(Exchange, ImplicitAPI):
7595
7595
  market = None
7596
7596
  if symbol is not None:
7597
7597
  market = self.market(symbol)
7598
- request = {}
7598
+ request: dict = {}
7599
7599
  currency = None
7600
7600
  if code is not None:
7601
7601
  currency = self.currency(code)
@@ -7671,7 +7671,7 @@ class bitget(Exchange, ImplicitAPI):
7671
7671
  interest = self.parse_borrow_interests(rows, market)
7672
7672
  return self.filter_by_currency_since_limit(interest, code, since, limit)
7673
7673
 
7674
- def parse_borrow_interest(self, info, market: Market = None):
7674
+ def parse_borrow_interest(self, info: dict, market: Market = None):
7675
7675
  #
7676
7676
  # isolated
7677
7677
  #
@@ -7735,7 +7735,7 @@ class bitget(Exchange, ImplicitAPI):
7735
7735
  market = self.market(symbol)
7736
7736
  productType = None
7737
7737
  productType, params = self.handle_product_type_and_params(market, params)
7738
- request = {
7738
+ request: dict = {
7739
7739
  'symbol': market['id'],
7740
7740
  'productType': productType,
7741
7741
  }
@@ -7774,7 +7774,7 @@ class bitget(Exchange, ImplicitAPI):
7774
7774
  await self.load_markets()
7775
7775
  productType = None
7776
7776
  productType, params = self.handle_product_type_and_params(None, params)
7777
- request = {
7777
+ request: dict = {
7778
7778
  'productType': productType,
7779
7779
  }
7780
7780
  response = await self.privateMixPostV2MixOrderClosePositions(self.extend(request, params))
@@ -7817,7 +7817,7 @@ class bitget(Exchange, ImplicitAPI):
7817
7817
  market = self.market(symbol)
7818
7818
  productType = None
7819
7819
  productType, params = self.handle_product_type_and_params(market, params)
7820
- request = {
7820
+ request: dict = {
7821
7821
  'symbol': market['id'],
7822
7822
  'marginCoin': market['settleId'],
7823
7823
  'productType': productType,
@@ -7854,7 +7854,7 @@ class bitget(Exchange, ImplicitAPI):
7854
7854
  data = self.safe_dict(response, 'data', {})
7855
7855
  return self.parse_margin_mode(data, market)
7856
7856
 
7857
- def parse_margin_mode(self, marginMode, market=None) -> MarginMode:
7857
+ def parse_margin_mode(self, marginMode: dict, market=None) -> MarginMode:
7858
7858
  marginType = self.safe_string(marginMode, 'marginMode')
7859
7859
  marginType = 'cross' if (marginType == 'crossed') else marginType
7860
7860
  return {
@@ -7880,7 +7880,7 @@ class bitget(Exchange, ImplicitAPI):
7880
7880
  await self.load_markets()
7881
7881
  until = self.safe_integer(params, 'until')
7882
7882
  params = self.omit(params, 'until')
7883
- request = {}
7883
+ request: dict = {}
7884
7884
  if symbols is not None:
7885
7885
  symbolsLength = len(symbols)
7886
7886
  if symbolsLength > 0:
@@ -7938,7 +7938,7 @@ class bitget(Exchange, ImplicitAPI):
7938
7938
  :returns dict: a `conversion structure <https://docs.ccxt.com/#/?id=conversion-structure>`
7939
7939
  """
7940
7940
  await self.load_markets()
7941
- request = {
7941
+ request: dict = {
7942
7942
  'fromCoin': fromCode,
7943
7943
  'toCoin': toCode,
7944
7944
  'fromCoinSize': self.number_to_string(amount),
@@ -7988,7 +7988,7 @@ class bitget(Exchange, ImplicitAPI):
7988
7988
  if toAmount is None:
7989
7989
  raise ArgumentsRequired(self.id + ' createConvertTrade() requires a toAmount parameter')
7990
7990
  params = self.omit(params, ['price', 'toAmount'])
7991
- request = {
7991
+ request: dict = {
7992
7992
  'traceId': id,
7993
7993
  'fromCoin': fromCode,
7994
7994
  'toCoin': toCode,
@@ -8026,7 +8026,7 @@ class bitget(Exchange, ImplicitAPI):
8026
8026
  :returns dict[]: a list of `conversion structures <https://docs.ccxt.com/#/?id=conversion-structure>`
8027
8027
  """
8028
8028
  await self.load_markets()
8029
- request = {}
8029
+ request: dict = {}
8030
8030
  msInDay = 86400000
8031
8031
  now = self.milliseconds()
8032
8032
  if since is not None:
@@ -8146,7 +8146,7 @@ class bitget(Exchange, ImplicitAPI):
8146
8146
  # ]
8147
8147
  # }
8148
8148
  #
8149
- result = {}
8149
+ result: dict = {}
8150
8150
  data = self.safe_list(response, 'data', [])
8151
8151
  for i in range(0, len(data)):
8152
8152
  entry = data[i]