ccxt 4.4.58__py2.py3-none-any.whl → 4.4.60__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 (311) hide show
  1. ccxt/__init__.py +1 -3
  2. ccxt/ace.py +2 -2
  3. ccxt/alpaca.py +12 -7
  4. ccxt/ascendex.py +3 -3
  5. ccxt/async_support/__init__.py +1 -3
  6. ccxt/async_support/ace.py +2 -2
  7. ccxt/async_support/alpaca.py +12 -7
  8. ccxt/async_support/ascendex.py +3 -3
  9. ccxt/async_support/base/exchange.py +4 -1
  10. ccxt/async_support/bequant.py +2 -1
  11. ccxt/async_support/bigone.py +5 -5
  12. ccxt/async_support/binance.py +84 -4
  13. ccxt/async_support/binancecoinm.py +2 -1
  14. ccxt/async_support/binanceus.py +2 -1
  15. ccxt/async_support/binanceusdm.py +2 -1
  16. ccxt/async_support/bingx.py +3 -3
  17. ccxt/async_support/bit2c.py +9 -9
  18. ccxt/async_support/bitbank.py +2 -2
  19. ccxt/async_support/bitbns.py +2 -2
  20. ccxt/async_support/bitcoincom.py +2 -1
  21. ccxt/async_support/bitfinex.py +2 -2
  22. ccxt/async_support/bitfinex1.py +2 -2
  23. ccxt/async_support/bitflyer.py +2 -2
  24. ccxt/async_support/bitget.py +6 -5
  25. ccxt/async_support/bithumb.py +2 -2
  26. ccxt/async_support/bitmart.py +137 -86
  27. ccxt/async_support/bitmex.py +2 -2
  28. ccxt/async_support/bitopro.py +2 -2
  29. ccxt/async_support/bitpanda.py +2 -1
  30. ccxt/async_support/bitrue.py +3 -3
  31. ccxt/async_support/bitso.py +2 -2
  32. ccxt/async_support/bitstamp.py +2 -2
  33. ccxt/async_support/bitteam.py +2 -2
  34. ccxt/async_support/bitvavo.py +3 -3
  35. ccxt/async_support/bl3p.py +2 -2
  36. ccxt/async_support/blockchaincom.py +2 -2
  37. ccxt/async_support/blofin.py +2 -2
  38. ccxt/async_support/btcalpha.py +2 -2
  39. ccxt/async_support/btcbox.py +2 -2
  40. ccxt/async_support/btcmarkets.py +3 -3
  41. ccxt/async_support/btcturk.py +2 -2
  42. ccxt/async_support/bybit.py +9 -6
  43. ccxt/async_support/cex.py +3 -3
  44. ccxt/async_support/coinbase.py +4 -4
  45. ccxt/async_support/coinbaseadvanced.py +2 -1
  46. ccxt/async_support/coinbaseexchange.py +3 -3
  47. ccxt/async_support/coinbaseinternational.py +3 -4
  48. ccxt/async_support/coincatch.py +3 -3
  49. ccxt/async_support/coincheck.py +2 -2
  50. ccxt/async_support/coinex.py +3 -3
  51. ccxt/async_support/coinlist.py +3 -3
  52. ccxt/async_support/coinmate.py +2 -2
  53. ccxt/async_support/coinmetro.py +2 -2
  54. ccxt/async_support/coinone.py +2 -2
  55. ccxt/async_support/coinsph.py +3 -3
  56. ccxt/async_support/coinspot.py +2 -2
  57. ccxt/async_support/cryptocom.py +2 -2
  58. ccxt/async_support/currencycom.py +3 -3
  59. ccxt/async_support/defx.py +3 -3
  60. ccxt/async_support/delta.py +3 -3
  61. ccxt/async_support/deribit.py +3 -3
  62. ccxt/async_support/digifinex.py +3 -3
  63. ccxt/async_support/ellipx.py +1 -1
  64. ccxt/async_support/exmo.py +2 -2
  65. ccxt/async_support/fmfwio.py +2 -1
  66. ccxt/async_support/gate.py +3 -3
  67. ccxt/async_support/gateio.py +2 -1
  68. ccxt/async_support/gemini.py +2 -2
  69. ccxt/async_support/hashkey.py +2 -2
  70. ccxt/async_support/hitbtc.py +3 -3
  71. ccxt/async_support/hollaex.py +3 -3
  72. ccxt/async_support/htx.py +3 -3
  73. ccxt/async_support/huobi.py +2 -1
  74. ccxt/async_support/huobijp.py +3 -3
  75. ccxt/async_support/hyperliquid.py +83 -3
  76. ccxt/async_support/idex.py +3 -3
  77. ccxt/async_support/independentreserve.py +2 -2
  78. ccxt/async_support/indodax.py +3 -3
  79. ccxt/async_support/kraken.py +3 -3
  80. ccxt/async_support/krakenfutures.py +2 -2
  81. ccxt/async_support/kucoin.py +3 -3
  82. ccxt/async_support/kucoinfutures.py +3 -3
  83. ccxt/async_support/kuna.py +3 -3
  84. ccxt/async_support/latoken.py +3 -3
  85. ccxt/async_support/lbank.py +3 -3
  86. ccxt/async_support/luno.py +2 -2
  87. ccxt/async_support/mercado.py +2 -2
  88. ccxt/async_support/mexc.py +3 -3
  89. ccxt/async_support/myokx.py +2 -1
  90. ccxt/async_support/ndax.py +2 -2
  91. ccxt/async_support/novadax.py +3 -3
  92. ccxt/async_support/oceanex.py +3 -3
  93. ccxt/async_support/okcoin.py +3 -3
  94. ccxt/async_support/okx.py +3 -4
  95. ccxt/async_support/onetrading.py +3 -3
  96. ccxt/async_support/oxfun.py +3 -3
  97. ccxt/async_support/p2b.py +2 -2
  98. ccxt/async_support/paradex.py +3 -3
  99. ccxt/async_support/paymium.py +2 -2
  100. ccxt/async_support/phemex.py +2 -2
  101. ccxt/async_support/poloniex.py +3 -3
  102. ccxt/async_support/poloniexfutures.py +3 -3
  103. ccxt/async_support/probit.py +3 -3
  104. ccxt/async_support/timex.py +3 -3
  105. ccxt/async_support/tokocrypto.py +3 -3
  106. ccxt/async_support/tradeogre.py +2 -2
  107. ccxt/async_support/upbit.py +2 -2
  108. ccxt/async_support/vertex.py +4 -4
  109. ccxt/async_support/wavesexchange.py +2 -3
  110. ccxt/async_support/whitebit.py +3 -3
  111. ccxt/async_support/woo.py +3 -4
  112. ccxt/async_support/woofipro.py +3 -4
  113. ccxt/async_support/xt.py +15 -3
  114. ccxt/async_support/yobit.py +2 -2
  115. ccxt/async_support/zaif.py +2 -2
  116. ccxt/async_support/zonda.py +2 -2
  117. ccxt/base/errors.py +6 -0
  118. ccxt/base/exchange.py +8 -3
  119. ccxt/bequant.py +2 -1
  120. ccxt/bigone.py +5 -5
  121. ccxt/binance.py +84 -4
  122. ccxt/binancecoinm.py +2 -1
  123. ccxt/binanceus.py +2 -1
  124. ccxt/binanceusdm.py +2 -1
  125. ccxt/bingx.py +3 -3
  126. ccxt/bit2c.py +9 -9
  127. ccxt/bitbank.py +2 -2
  128. ccxt/bitbns.py +2 -2
  129. ccxt/bitcoincom.py +2 -1
  130. ccxt/bitfinex.py +2 -2
  131. ccxt/bitfinex1.py +2 -2
  132. ccxt/bitflyer.py +2 -2
  133. ccxt/bitget.py +6 -5
  134. ccxt/bithumb.py +2 -2
  135. ccxt/bitmart.py +137 -86
  136. ccxt/bitmex.py +2 -2
  137. ccxt/bitopro.py +2 -2
  138. ccxt/bitpanda.py +2 -1
  139. ccxt/bitrue.py +3 -3
  140. ccxt/bitso.py +2 -2
  141. ccxt/bitstamp.py +2 -2
  142. ccxt/bitteam.py +2 -2
  143. ccxt/bitvavo.py +3 -3
  144. ccxt/bl3p.py +2 -2
  145. ccxt/blockchaincom.py +2 -2
  146. ccxt/blofin.py +2 -2
  147. ccxt/btcalpha.py +2 -2
  148. ccxt/btcbox.py +2 -2
  149. ccxt/btcmarkets.py +3 -3
  150. ccxt/btcturk.py +2 -2
  151. ccxt/bybit.py +9 -6
  152. ccxt/cex.py +3 -3
  153. ccxt/coinbase.py +4 -4
  154. ccxt/coinbaseadvanced.py +2 -1
  155. ccxt/coinbaseexchange.py +3 -3
  156. ccxt/coinbaseinternational.py +3 -4
  157. ccxt/coincatch.py +3 -3
  158. ccxt/coincheck.py +2 -2
  159. ccxt/coinex.py +3 -3
  160. ccxt/coinlist.py +3 -3
  161. ccxt/coinmate.py +2 -2
  162. ccxt/coinmetro.py +2 -2
  163. ccxt/coinone.py +2 -2
  164. ccxt/coinsph.py +3 -3
  165. ccxt/coinspot.py +2 -2
  166. ccxt/cryptocom.py +2 -2
  167. ccxt/currencycom.py +3 -3
  168. ccxt/defx.py +3 -3
  169. ccxt/delta.py +3 -3
  170. ccxt/deribit.py +3 -3
  171. ccxt/digifinex.py +3 -3
  172. ccxt/ellipx.py +1 -1
  173. ccxt/exmo.py +2 -2
  174. ccxt/fmfwio.py +2 -1
  175. ccxt/gate.py +3 -3
  176. ccxt/gateio.py +2 -1
  177. ccxt/gemini.py +2 -2
  178. ccxt/hashkey.py +2 -2
  179. ccxt/hitbtc.py +3 -3
  180. ccxt/hollaex.py +3 -3
  181. ccxt/htx.py +3 -3
  182. ccxt/huobi.py +2 -1
  183. ccxt/huobijp.py +3 -3
  184. ccxt/hyperliquid.py +83 -3
  185. ccxt/idex.py +3 -3
  186. ccxt/independentreserve.py +2 -2
  187. ccxt/indodax.py +3 -3
  188. ccxt/kraken.py +3 -3
  189. ccxt/krakenfutures.py +2 -2
  190. ccxt/kucoin.py +3 -3
  191. ccxt/kucoinfutures.py +3 -3
  192. ccxt/kuna.py +3 -3
  193. ccxt/latoken.py +3 -3
  194. ccxt/lbank.py +3 -3
  195. ccxt/luno.py +2 -2
  196. ccxt/mercado.py +2 -2
  197. ccxt/mexc.py +3 -3
  198. ccxt/myokx.py +2 -1
  199. ccxt/ndax.py +2 -2
  200. ccxt/novadax.py +3 -3
  201. ccxt/oceanex.py +3 -3
  202. ccxt/okcoin.py +3 -3
  203. ccxt/okx.py +3 -4
  204. ccxt/onetrading.py +3 -3
  205. ccxt/oxfun.py +3 -3
  206. ccxt/p2b.py +2 -2
  207. ccxt/paradex.py +3 -3
  208. ccxt/paymium.py +2 -2
  209. ccxt/phemex.py +2 -2
  210. ccxt/poloniex.py +3 -3
  211. ccxt/poloniexfutures.py +3 -3
  212. ccxt/pro/__init__.py +1 -3
  213. ccxt/pro/alpaca.py +2 -2
  214. ccxt/pro/ascendex.py +2 -2
  215. ccxt/pro/bequant.py +2 -1
  216. ccxt/pro/binance.py +2 -3
  217. ccxt/pro/binancecoinm.py +2 -1
  218. ccxt/pro/binanceus.py +3 -2
  219. ccxt/pro/binanceusdm.py +2 -1
  220. ccxt/pro/bingx.py +2 -2
  221. ccxt/pro/bitcoincom.py +2 -1
  222. ccxt/pro/bitfinex.py +2 -2
  223. ccxt/pro/bitfinex1.py +2 -2
  224. ccxt/pro/bitget.py +2 -3
  225. ccxt/pro/bithumb.py +2 -2
  226. ccxt/pro/bitmart.py +2 -2
  227. ccxt/pro/bitmex.py +2 -2
  228. ccxt/pro/bitopro.py +2 -2
  229. ccxt/pro/bitpanda.py +2 -1
  230. ccxt/pro/bitrue.py +2 -2
  231. ccxt/pro/bitstamp.py +2 -2
  232. ccxt/pro/bitvavo.py +2 -2
  233. ccxt/pro/blockchaincom.py +2 -2
  234. ccxt/pro/blofin.py +1 -1
  235. ccxt/pro/bybit.py +2 -3
  236. ccxt/pro/cex.py +2 -2
  237. ccxt/pro/coinbase.py +2 -2
  238. ccxt/pro/coinbaseadvanced.py +2 -1
  239. ccxt/pro/coinbaseexchange.py +2 -2
  240. ccxt/pro/coinbaseinternational.py +2 -2
  241. ccxt/pro/coincatch.py +2 -3
  242. ccxt/pro/coincheck.py +2 -2
  243. ccxt/pro/coinex.py +2 -2
  244. ccxt/pro/coinone.py +2 -2
  245. ccxt/pro/cryptocom.py +2 -3
  246. ccxt/pro/currencycom.py +2 -2
  247. ccxt/pro/defx.py +2 -3
  248. ccxt/pro/deribit.py +2 -2
  249. ccxt/pro/exmo.py +2 -2
  250. ccxt/pro/gate.py +2 -3
  251. ccxt/pro/gateio.py +2 -1
  252. ccxt/pro/gemini.py +2 -2
  253. ccxt/pro/hashkey.py +2 -2
  254. ccxt/pro/hitbtc.py +2 -2
  255. ccxt/pro/hollaex.py +2 -2
  256. ccxt/pro/htx.py +2 -2
  257. ccxt/pro/huobi.py +2 -1
  258. ccxt/pro/huobijp.py +2 -2
  259. ccxt/pro/hyperliquid.py +2 -3
  260. ccxt/pro/idex.py +2 -2
  261. ccxt/pro/independentreserve.py +2 -2
  262. ccxt/pro/kraken.py +2 -2
  263. ccxt/pro/krakenfutures.py +2 -2
  264. ccxt/pro/kucoin.py +2 -3
  265. ccxt/pro/kucoinfutures.py +2 -3
  266. ccxt/pro/lbank.py +2 -2
  267. ccxt/pro/luno.py +2 -2
  268. ccxt/pro/mexc.py +2 -2
  269. ccxt/pro/myokx.py +2 -1
  270. ccxt/pro/ndax.py +2 -2
  271. ccxt/pro/okcoin.py +2 -2
  272. ccxt/pro/okx.py +2 -3
  273. ccxt/pro/onetrading.py +2 -2
  274. ccxt/pro/oxfun.py +2 -2
  275. ccxt/pro/p2b.py +2 -2
  276. ccxt/pro/paradex.py +2 -2
  277. ccxt/pro/phemex.py +2 -2
  278. ccxt/pro/poloniex.py +2 -2
  279. ccxt/pro/poloniexfutures.py +2 -2
  280. ccxt/pro/probit.py +2 -2
  281. ccxt/pro/upbit.py +2 -2
  282. ccxt/pro/vertex.py +2 -2
  283. ccxt/pro/wazirx.py +2 -2
  284. ccxt/pro/whitebit.py +2 -2
  285. ccxt/pro/woo.py +2 -2
  286. ccxt/pro/woofipro.py +2 -2
  287. ccxt/pro/xt.py +110 -4
  288. ccxt/probit.py +3 -3
  289. ccxt/test/tests_async.py +11 -0
  290. ccxt/test/tests_sync.py +11 -0
  291. ccxt/timex.py +3 -3
  292. ccxt/tokocrypto.py +3 -3
  293. ccxt/tradeogre.py +2 -2
  294. ccxt/upbit.py +2 -2
  295. ccxt/vertex.py +4 -4
  296. ccxt/wavesexchange.py +2 -3
  297. ccxt/whitebit.py +3 -3
  298. ccxt/woo.py +3 -4
  299. ccxt/woofipro.py +3 -4
  300. ccxt/xt.py +15 -3
  301. ccxt/yobit.py +2 -2
  302. ccxt/zaif.py +2 -2
  303. ccxt/zonda.py +2 -2
  304. {ccxt-4.4.58.dist-info → ccxt-4.4.60.dist-info}/METADATA +30 -33
  305. {ccxt-4.4.58.dist-info → ccxt-4.4.60.dist-info}/RECORD +308 -311
  306. ccxt/abstract/wazirx.py +0 -30
  307. ccxt/async_support/wazirx.py +0 -1336
  308. ccxt/wazirx.py +0 -1336
  309. {ccxt-4.4.58.dist-info → ccxt-4.4.60.dist-info}/LICENSE.txt +0 -0
  310. {ccxt-4.4.58.dist-info → ccxt-4.4.60.dist-info}/WHEEL +0 -0
  311. {ccxt-4.4.58.dist-info → ccxt-4.4.60.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.whitebit import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, BorrowInterest, Bool, Currencies, Currency, DepositAddress, Int, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Any, Balances, BorrowInterest, Bool, Currencies, Currency, DepositAddress, Int, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -26,7 +26,7 @@ from ccxt.base.precise import Precise
26
26
 
27
27
  class whitebit(Exchange, ImplicitAPI):
28
28
 
29
- def describe(self):
29
+ def describe(self) -> Any:
30
30
  return self.deep_extend(super(whitebit, self).describe(), {
31
31
  'id': 'whitebit',
32
32
  'name': 'WhiteBit',
@@ -1291,7 +1291,7 @@ class whitebit(Exchange, ImplicitAPI):
1291
1291
  'info': response,
1292
1292
  }
1293
1293
 
1294
- async def fetch_time(self, params={}):
1294
+ async def fetch_time(self, params={}) -> Int:
1295
1295
  """
1296
1296
  fetches the current integer timestamp in milliseconds from the exchange server
1297
1297
 
ccxt/async_support/woo.py CHANGED
@@ -6,9 +6,8 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.woo import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Bool, Conversion, Currencies, Currency, DepositAddress, Int, LedgerEntry, Leverage, MarginModification, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Any, Balances, Bool, Conversion, Currencies, Currency, DepositAddress, Int, LedgerEntry, Leverage, MarginModification, Market, MarketType, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
- from typing import Any
12
11
  from ccxt.base.errors import ExchangeError
13
12
  from ccxt.base.errors import AuthenticationError
14
13
  from ccxt.base.errors import ArgumentsRequired
@@ -24,7 +23,7 @@ from ccxt.base.precise import Precise
24
23
 
25
24
  class woo(Exchange, ImplicitAPI):
26
25
 
27
- def describe(self):
26
+ def describe(self) -> Any:
28
27
  return self.deep_extend(super(woo, self).describe(), {
29
28
  'id': 'woo',
30
29
  'name': 'WOO X',
@@ -484,7 +483,7 @@ class woo(Exchange, ImplicitAPI):
484
483
  'info': response,
485
484
  }
486
485
 
487
- async def fetch_time(self, params={}):
486
+ async def fetch_time(self, params={}) -> Int:
488
487
  """
489
488
  fetches the current integer timestamp in milliseconds from the exchange server
490
489
 
@@ -5,9 +5,8 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.woofipro import ImplicitAPI
8
- from ccxt.base.types import Balances, Currencies, Currency, Int, LedgerEntry, Leverage, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, FundingRate, FundingRates, Trade, TradingFees, Transaction
8
+ from ccxt.base.types import Any, Balances, Currencies, Currency, Int, LedgerEntry, Leverage, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, FundingRate, FundingRates, Trade, TradingFees, Transaction
9
9
  from typing import List
10
- from typing import Any
11
10
  from ccxt.base.errors import ExchangeError
12
11
  from ccxt.base.errors import AuthenticationError
13
12
  from ccxt.base.errors import ArgumentsRequired
@@ -23,7 +22,7 @@ from ccxt.base.precise import Precise
23
22
 
24
23
  class woofipro(Exchange, ImplicitAPI):
25
24
 
26
- def describe(self):
25
+ def describe(self) -> Any:
27
26
  return self.deep_extend(super(woofipro, self).describe(), {
28
27
  'id': 'woofipro',
29
28
  'name': 'WOOFI PRO',
@@ -471,7 +470,7 @@ class woofipro(Exchange, ImplicitAPI):
471
470
  'info': response,
472
471
  }
473
472
 
474
- async def fetch_time(self, params={}):
473
+ async def fetch_time(self, params={}) -> Int:
475
474
  """
476
475
  fetches the current integer timestamp in milliseconds from the exchange server
477
476
 
ccxt/async_support/xt.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.xt import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Currencies, Currency, DepositAddress, Int, LedgerEntry, LeverageTier, LeverageTiers, MarginModification, Market, Num, Order, OrderSide, OrderType, Str, Tickers, FundingRate, Transaction, TransferEntry
10
+ from ccxt.base.types import Any, Currencies, Currency, DepositAddress, Int, LedgerEntry, LeverageTier, LeverageTiers, MarginModification, Market, Num, Order, OrderSide, OrderType, Str, Tickers, FundingRate, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -28,7 +28,7 @@ from ccxt.base.precise import Precise
28
28
 
29
29
  class xt(Exchange, ImplicitAPI):
30
30
 
31
- def describe(self):
31
+ def describe(self) -> Any:
32
32
  return self.deep_extend(super(xt, self).describe(), {
33
33
  'id': 'xt',
34
34
  'name': 'XT',
@@ -813,7 +813,7 @@ class xt(Exchange, ImplicitAPI):
813
813
  def nonce(self):
814
814
  return self.milliseconds() - self.options['timeDifference']
815
815
 
816
- async def fetch_time(self, params={}):
816
+ async def fetch_time(self, params={}) -> Int:
817
817
  """
818
818
  fetches the current integer timestamp in milliseconds from the xt server
819
819
 
@@ -1394,9 +1394,15 @@ class xt(Exchange, ImplicitAPI):
1394
1394
  :param int [since]: timestamp in ms of the earliest candle to fetch
1395
1395
  :param int [limit]: the maximum amount of candles to fetch
1396
1396
  :param dict params: extra parameters specific to the xt api endpoint
1397
+ :param int [params.until]: timestamp in ms of the latest candle to fetch
1398
+ :param boolean [params.paginate]: default False, when True will automatically paginate by calling self endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
1397
1399
  :returns int[][]: A list of candles ordered, open, high, low, close, volume
1398
1400
  """
1399
1401
  await self.load_markets()
1402
+ paginate = False
1403
+ paginate, params = self.handle_option_and_params(params, 'fetchOHLCV', 'paginate', False)
1404
+ if paginate:
1405
+ return await self.fetch_paginated_call_deterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 1000)
1400
1406
  market = self.market(symbol)
1401
1407
  request = {
1402
1408
  'symbol': market['id'],
@@ -1406,6 +1412,12 @@ class xt(Exchange, ImplicitAPI):
1406
1412
  request['startTime'] = since
1407
1413
  if limit is not None:
1408
1414
  request['limit'] = limit
1415
+ else:
1416
+ request['limit'] = 1000
1417
+ until = self.safe_integer(params, 'until')
1418
+ params = self.omit(params, ['until'])
1419
+ if until is not None:
1420
+ request['endTime'] = until
1409
1421
  response = None
1410
1422
  if market['linear']:
1411
1423
  response = await self.publicLinearGetFutureMarketV1PublicQKline(self.extend(request, params))
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.yobit import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Balances, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, OrderBooks, Trade, TradingFees, Transaction
10
+ from ccxt.base.types import Any, Balances, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, OrderBooks, Trade, TradingFees, Transaction
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -25,7 +25,7 @@ from ccxt.base.precise import Precise
25
25
 
26
26
  class yobit(Exchange, ImplicitAPI):
27
27
 
28
- def describe(self):
28
+ def describe(self) -> Any:
29
29
  return self.deep_extend(super(yobit, self).describe(), {
30
30
  'id': 'yobit',
31
31
  'name': 'YoBit',
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.zaif import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction
9
+ from ccxt.base.types import Any, Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import BadRequest
@@ -16,7 +16,7 @@ from ccxt.base.precise import Precise
16
16
 
17
17
  class zaif(Exchange, ImplicitAPI):
18
18
 
19
- def describe(self):
19
+ def describe(self) -> Any:
20
20
  return self.deep_extend(super(zaif, self).describe(), {
21
21
  'id': 'zaif',
22
22
  'name': 'Zaif',
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.zonda import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, LedgerEntry, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -27,7 +27,7 @@ from ccxt.base.precise import Precise
27
27
 
28
28
  class zonda(Exchange, ImplicitAPI):
29
29
 
30
- def describe(self):
30
+ def describe(self) -> Any:
31
31
  return self.deep_extend(super(zonda, self).describe(), {
32
32
  'id': 'zonda',
33
33
  'name': 'Zonda',
ccxt/base/errors.py CHANGED
@@ -1,3 +1,9 @@
1
+ # ----------------------------------------------------------------------------
2
+
3
+ # PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
+ # https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
+ # EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
+
1
7
  error_hierarchy = {
2
8
  'BaseError': {
3
9
  'ExchangeError': {
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.58'
7
+ __version__ = '4.4.60'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -1791,7 +1791,7 @@ class Exchange(object):
1791
1791
 
1792
1792
  # METHODS BELOW THIS LINE ARE TRANSPILED FROM JAVASCRIPT TO PYTHON AND PHP
1793
1793
 
1794
- def describe(self):
1794
+ def describe(self) -> Any:
1795
1795
  return {
1796
1796
  'id': None,
1797
1797
  'name': None,
@@ -1871,6 +1871,7 @@ class Exchange(object):
1871
1871
  'createTriggerOrderWs': None,
1872
1872
  'deposit': None,
1873
1873
  'editOrder': 'emulated',
1874
+ 'editOrders': None,
1874
1875
  'editOrderWs': None,
1875
1876
  'fetchAccounts': None,
1876
1877
  'fetchBalance': True,
@@ -5178,6 +5179,9 @@ class Exchange(object):
5178
5179
  def create_orders(self, orders: List[OrderRequest], params={}):
5179
5180
  raise NotSupported(self.id + ' createOrders() is not supported yet')
5180
5181
 
5182
+ def edit_orders(self, orders: List[OrderRequest], params={}):
5183
+ raise NotSupported(self.id + ' editOrders() is not supported yet')
5184
+
5181
5185
  def create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
5182
5186
  raise NotSupported(self.id + ' createOrderWs() is not supported yet')
5183
5187
 
@@ -6118,7 +6122,8 @@ class Exchange(object):
6118
6122
  parsed = self.parse_income(entry, market)
6119
6123
  result.append(parsed)
6120
6124
  sorted = self.sort_by(result, 'timestamp')
6121
- return self.filter_by_since_limit(sorted, since, limit)
6125
+ symbol = self.safe_string(market, 'symbol')
6126
+ return self.filter_by_symbol_since_limit(sorted, symbol, since, limit)
6122
6127
 
6123
6128
  def get_market_from_symbols(self, symbols: Strings = None):
6124
6129
  if symbols is None:
ccxt/bequant.py CHANGED
@@ -5,11 +5,12 @@
5
5
 
6
6
  from ccxt.hitbtc import hitbtc
7
7
  from ccxt.abstract.bequant import ImplicitAPI
8
+ from ccxt.base.types import Any
8
9
 
9
10
 
10
11
  class bequant(hitbtc, ImplicitAPI):
11
12
 
12
- def describe(self):
13
+ def describe(self) -> Any:
13
14
  return self.deep_extend(super(bequant, self).describe(), {
14
15
  'id': 'bequant',
15
16
  'name': 'Bequant',
ccxt/bigone.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bigone import ImplicitAPI
8
- from ccxt.base.types import Balances, Bool, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
8
+ from ccxt.base.types import Any, Balances, Bool, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import AuthenticationError
@@ -23,7 +23,7 @@ from ccxt.base.precise import Precise
23
23
 
24
24
  class bigone(Exchange, ImplicitAPI):
25
25
 
26
- def describe(self):
26
+ def describe(self) -> Any:
27
27
  return self.deep_extend(super(bigone, self).describe(), {
28
28
  'id': 'bigone',
29
29
  'name': 'BigONE',
@@ -964,7 +964,7 @@ class bigone(Exchange, ImplicitAPI):
964
964
  tickers = self.parse_tickers(data, symbols)
965
965
  return self.filter_by_array_tickers(tickers, 'symbol', symbols)
966
966
 
967
- def fetch_time(self, params={}):
967
+ def fetch_time(self, params={}) -> Int:
968
968
  """
969
969
  fetches the current integer timestamp in milliseconds from the exchange server
970
970
 
@@ -1162,8 +1162,8 @@ class bigone(Exchange, ImplicitAPI):
1162
1162
  'cost': None,
1163
1163
  'info': trade,
1164
1164
  }
1165
- makerCurrencyCode = None
1166
- takerCurrencyCode = None
1165
+ makerCurrencyCode: str
1166
+ takerCurrencyCode: str
1167
1167
  if takerOrMaker is not None:
1168
1168
  if side == 'buy':
1169
1169
  if takerOrMaker == 'maker':
ccxt/binance.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.binance import ImplicitAPI
8
8
  import hashlib
9
9
  import json
10
- from ccxt.base.types import Balances, BorrowInterest, Conversion, CrossBorrowRate, Currencies, Currency, DepositAddress, Greeks, Int, IsolatedBorrowRate, IsolatedBorrowRates, LedgerEntry, Leverage, Leverages, LeverageTier, LeverageTiers, LongShortRatio, MarginMode, MarginModes, MarginModification, Market, Num, Option, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFeeInterface, TradingFees, Transaction, MarketInterface, TransferEntry
10
+ from ccxt.base.types import Any, Balances, BorrowInterest, Conversion, CrossBorrowRate, Currencies, Currency, DepositAddress, Greeks, Int, IsolatedBorrowRate, IsolatedBorrowRates, LedgerEntry, Leverage, Leverages, LeverageTier, LeverageTiers, LongShortRatio, MarginMode, MarginModes, MarginModification, Market, Num, Option, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFeeInterface, TradingFees, Transaction, MarketInterface, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -39,7 +39,7 @@ from ccxt.base.precise import Precise
39
39
 
40
40
  class binance(Exchange, ImplicitAPI):
41
41
 
42
- def describe(self):
42
+ def describe(self) -> Any:
43
43
  return self.deep_extend(super(binance, self).describe(), {
44
44
  'id': 'binance',
45
45
  'name': 'Binance',
@@ -85,6 +85,7 @@ class binance(Exchange, ImplicitAPI):
85
85
  'createTrailingPercentOrder': True,
86
86
  'createTriggerOrder': True,
87
87
  'editOrder': True,
88
+ 'editOrders': True,
88
89
  'fetchAccounts': None,
89
90
  'fetchBalance': True,
90
91
  'fetchBidsAsks': True,
@@ -2938,7 +2939,7 @@ class binance(Exchange, ImplicitAPI):
2938
2939
  def nonce(self):
2939
2940
  return self.milliseconds() - self.options['timeDifference']
2940
2941
 
2941
- def fetch_time(self, params={}):
2942
+ def fetch_time(self, params={}) -> Int:
2942
2943
  """
2943
2944
  fetches the current integer timestamp in milliseconds from the exchange server
2944
2945
 
@@ -5392,6 +5393,85 @@ class binance(Exchange, ImplicitAPI):
5392
5393
  else:
5393
5394
  return self.edit_contract_order(id, symbol, type, side, amount, price, params)
5394
5395
 
5396
+ def edit_orders(self, orders: List[OrderRequest], params={}):
5397
+ """
5398
+ edit a list of trade orders
5399
+
5400
+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Multiple-Orders
5401
+ https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Modify-Multiple-Orders
5402
+
5403
+ :param Array orders: list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
5404
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5405
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
5406
+ """
5407
+ self.load_markets()
5408
+ ordersRequests = []
5409
+ orderSymbols = []
5410
+ for i in range(0, len(orders)):
5411
+ rawOrder = orders[i]
5412
+ marketId = self.safe_string(rawOrder, 'symbol')
5413
+ orderSymbols.append(marketId)
5414
+ id = self.safe_string(rawOrder, 'id')
5415
+ type = self.safe_string(rawOrder, 'type')
5416
+ side = self.safe_string(rawOrder, 'side')
5417
+ amount = self.safe_value(rawOrder, 'amount')
5418
+ price = self.safe_value(rawOrder, 'price')
5419
+ orderParams = self.safe_dict(rawOrder, 'params', {})
5420
+ isPortfolioMargin = None
5421
+ isPortfolioMargin, orderParams = self.handle_option_and_params_2(orderParams, 'editOrders', 'papi', 'portfolioMargin', False)
5422
+ if isPortfolioMargin:
5423
+ raise NotSupported(self.id + ' editOrders() does not support portfolio margin orders')
5424
+ orderRequest = self.edit_contract_order_request(id, marketId, type, side, amount, price, orderParams)
5425
+ ordersRequests.append(orderRequest)
5426
+ orderSymbols = self.market_symbols(orderSymbols, None, False, True, True)
5427
+ market = self.market(orderSymbols[0])
5428
+ if market['spot'] or market['option']:
5429
+ raise NotSupported(self.id + ' editOrders() does not support ' + market['type'] + ' orders')
5430
+ response = None
5431
+ request: dict = {
5432
+ 'batchOrders': ordersRequests,
5433
+ }
5434
+ request = self.extend(request, params)
5435
+ if market['linear']:
5436
+ response = self.fapiPrivatePutBatchOrders(request)
5437
+ elif market['inverse']:
5438
+ response = self.dapiPrivatePutBatchOrders(request)
5439
+ #
5440
+ # [
5441
+ # {
5442
+ # "code": -4005,
5443
+ # "msg": "Quantity greater than max quantity."
5444
+ # },
5445
+ # {
5446
+ # "orderId": 650640530,
5447
+ # "symbol": "LTCUSDT",
5448
+ # "status": "NEW",
5449
+ # "clientOrderId": "x-xcKtGhcu32184eb13585491289bbaf",
5450
+ # "price": "54.00",
5451
+ # "avgPrice": "0.00",
5452
+ # "origQty": "0.100",
5453
+ # "executedQty": "0.000",
5454
+ # "cumQty": "0.000",
5455
+ # "cumQuote": "0.00000",
5456
+ # "timeInForce": "GTC",
5457
+ # "type": "LIMIT",
5458
+ # "reduceOnly": False,
5459
+ # "closePosition": False,
5460
+ # "side": "BUY",
5461
+ # "positionSide": "BOTH",
5462
+ # "stopPrice": "0.00",
5463
+ # "workingType": "CONTRACT_PRICE",
5464
+ # "priceProtect": False,
5465
+ # "origType": "LIMIT",
5466
+ # "priceMatch": "NONE",
5467
+ # "selfTradePreventionMode": "NONE",
5468
+ # "goodTillDate": 0,
5469
+ # "updateTime": 1698073926929
5470
+ # }
5471
+ # ]
5472
+ #
5473
+ return self.parse_orders(response)
5474
+
5395
5475
  def parse_order_status(self, status: Str):
5396
5476
  statuses: dict = {
5397
5477
  'NEW': 'open',
@@ -11242,7 +11322,7 @@ class binance(Exchange, ImplicitAPI):
11242
11322
  params['newClientOrderId'] = brokerId + self.uuid22()
11243
11323
  query = None
11244
11324
  # handle batchOrders
11245
- if (path == 'batchOrders') and (method == 'POST'):
11325
+ if (path == 'batchOrders') and ((method == 'POST') or (method == 'PUT')):
11246
11326
  batchOrders = self.safe_value(params, 'batchOrders')
11247
11327
  queryBatch = (self.json(batchOrders))
11248
11328
  params['batchOrders'] = queryBatch
ccxt/binancecoinm.py CHANGED
@@ -5,11 +5,12 @@
5
5
 
6
6
  from ccxt.binance import binance
7
7
  from ccxt.abstract.binancecoinm import ImplicitAPI
8
+ from ccxt.base.types import Any
8
9
 
9
10
 
10
11
  class binancecoinm(binance, ImplicitAPI):
11
12
 
12
- def describe(self):
13
+ def describe(self) -> Any:
13
14
  return self.deep_extend(super(binancecoinm, self).describe(), {
14
15
  'id': 'binancecoinm',
15
16
  'name': 'Binance COIN-M',
ccxt/binanceus.py CHANGED
@@ -5,11 +5,12 @@
5
5
 
6
6
  from ccxt.binance import binance
7
7
  from ccxt.abstract.binanceus import ImplicitAPI
8
+ from ccxt.base.types import Any
8
9
 
9
10
 
10
11
  class binanceus(binance, ImplicitAPI):
11
12
 
12
- def describe(self):
13
+ def describe(self) -> Any:
13
14
  return self.deep_extend(super(binanceus, self).describe(), {
14
15
  'id': 'binanceus',
15
16
  'name': 'Binance US',
ccxt/binanceusdm.py CHANGED
@@ -5,12 +5,13 @@
5
5
 
6
6
  from ccxt.binance import binance
7
7
  from ccxt.abstract.binanceusdm import ImplicitAPI
8
+ from ccxt.base.types import Any
8
9
  from ccxt.base.errors import InvalidOrder
9
10
 
10
11
 
11
12
  class binanceusdm(binance, ImplicitAPI):
12
13
 
13
- def describe(self):
14
+ def describe(self) -> Any:
14
15
  return self.deep_extend(super(binanceusdm, self).describe(), {
15
16
  'id': 'binanceusdm',
16
17
  'name': 'Binance USDⓈ-M',
ccxt/bingx.py CHANGED
@@ -7,7 +7,7 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bingx import ImplicitAPI
8
8
  import hashlib
9
9
  import numbers
10
- from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFeeInterface, Transaction, TransferEntry
10
+ from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFeeInterface, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -28,7 +28,7 @@ from ccxt.base.precise import Precise
28
28
 
29
29
  class bingx(Exchange, ImplicitAPI):
30
30
 
31
- def describe(self):
31
+ def describe(self) -> Any:
32
32
  return self.deep_extend(super(bingx, self).describe(), {
33
33
  'id': 'bingx',
34
34
  'name': 'BingX',
@@ -680,7 +680,7 @@ class bingx(Exchange, ImplicitAPI):
680
680
  },
681
681
  })
682
682
 
683
- def fetch_time(self, params={}):
683
+ def fetch_time(self, params={}) -> Int:
684
684
  """
685
685
  fetches the current integer timestamp in milliseconds from the bingx server
686
686
 
ccxt/bit2c.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bit2c import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees
9
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -21,7 +21,7 @@ from ccxt.base.precise import Precise
21
21
 
22
22
  class bit2c(Exchange, ImplicitAPI):
23
23
 
24
- def describe(self):
24
+ def describe(self) -> Any:
25
25
  return self.deep_extend(super(bit2c, self).describe(), {
26
26
  'id': 'bit2c',
27
27
  'name': 'Bit2C',
@@ -630,7 +630,7 @@ class bit2c(Exchange, ImplicitAPI):
630
630
  # 0 = New
631
631
  # 1 = Open
632
632
  # 5 = Completed
633
- status = None
633
+ status: str
634
634
  if isNewOrder:
635
635
  tempStatus = self.safe_integer(orderUnified, 'status_type')
636
636
  if tempStatus == 0 or tempStatus == 1:
@@ -795,13 +795,13 @@ class bit2c(Exchange, ImplicitAPI):
795
795
  # "isMaker": True,
796
796
  # }
797
797
  #
798
- timestamp = None
799
- id = None
798
+ timestamp: Int
799
+ id: Str
800
800
  price = None
801
801
  amount = None
802
802
  orderId = None
803
803
  fee = None
804
- side = None
804
+ side: str
805
805
  makerOrTaker = None
806
806
  reference = self.safe_string(trade, 'reference')
807
807
  if reference is not None:
@@ -817,10 +817,10 @@ class bit2c(Exchange, ImplicitAPI):
817
817
  isMaker = self.safe_value(trade, 'isMaker')
818
818
  makerOrTaker = 'maker' if isMaker else 'taker'
819
819
  orderId = reference_parts[2] if isMaker else reference_parts[1]
820
- side = self.safe_integer(trade, 'action')
821
- if side == 0:
820
+ action = self.safe_integer(trade, 'action')
821
+ if action == 0:
822
822
  side = 'buy'
823
- elif side == 1:
823
+ else:
824
824
  side = 'sell'
825
825
  feeCost = self.safe_string(trade, 'feeAmount')
826
826
  if feeCost is not None:
ccxt/bitbank.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bitbank import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees, Transaction
9
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -20,7 +20,7 @@ from ccxt.base.decimal_to_precision import TICK_SIZE
20
20
 
21
21
  class bitbank(Exchange, ImplicitAPI):
22
22
 
23
- def describe(self):
23
+ def describe(self) -> Any:
24
24
  return self.deep_extend(super(bitbank, self).describe(), {
25
25
  'id': 'bitbank',
26
26
  'name': 'bitbank',
ccxt/bitbns.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bitbns import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import ArgumentsRequired
@@ -20,7 +20,7 @@ from ccxt.base.precise import Precise
20
20
 
21
21
  class bitbns(Exchange, ImplicitAPI):
22
22
 
23
- def describe(self):
23
+ def describe(self) -> Any:
24
24
  return self.deep_extend(super(bitbns, self).describe(), {
25
25
  'id': 'bitbns',
26
26
  'name': 'Bitbns',
ccxt/bitcoincom.py CHANGED
@@ -5,11 +5,12 @@
5
5
 
6
6
  from ccxt.fmfwio import fmfwio
7
7
  from ccxt.abstract.bitcoincom import ImplicitAPI
8
+ from ccxt.base.types import Any
8
9
 
9
10
 
10
11
  class bitcoincom(fmfwio, ImplicitAPI):
11
12
 
12
- def describe(self):
13
+ def describe(self) -> Any:
13
14
  return self.deep_extend(super(bitcoincom, self).describe(), {
14
15
  'id': 'bitcoincom',
15
16
  'name': 'Bitcoin.com',
ccxt/bitfinex.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bitfinex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currencies, Currency, DepositAddress, Int, LedgerEntry, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Any, Balances, Currencies, Currency, DepositAddress, Int, LedgerEntry, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -31,7 +31,7 @@ from ccxt.base.precise import Precise
31
31
 
32
32
  class bitfinex(Exchange, ImplicitAPI):
33
33
 
34
- def describe(self):
34
+ def describe(self) -> Any:
35
35
  return self.deep_extend(super(bitfinex, self).describe(), {
36
36
  'id': 'bitfinex',
37
37
  'name': 'Bitfinex',
ccxt/bitfinex1.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bitfinex1 import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -29,7 +29,7 @@ from ccxt.base.precise import Precise
29
29
 
30
30
  class bitfinex1(Exchange, ImplicitAPI):
31
31
 
32
- def describe(self):
32
+ def describe(self) -> Any:
33
33
  return self.deep_extend(super(bitfinex1, self).describe(), {
34
34
  'id': 'bitfinex1',
35
35
  'name': 'Bitfinex',