ccxt 4.4.57__py2.py3-none-any.whl → 4.4.59__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 (310) hide show
  1. ccxt/__init__.py +1 -3
  2. ccxt/abstract/xt.py +1 -0
  3. ccxt/ace.py +2 -2
  4. ccxt/alpaca.py +4 -4
  5. ccxt/ascendex.py +5 -3
  6. ccxt/async_support/__init__.py +1 -3
  7. ccxt/async_support/ace.py +2 -2
  8. ccxt/async_support/alpaca.py +4 -4
  9. ccxt/async_support/ascendex.py +5 -3
  10. ccxt/async_support/base/exchange.py +1 -1
  11. ccxt/async_support/bequant.py +2 -1
  12. ccxt/async_support/bigone.py +5 -5
  13. ccxt/async_support/binance.py +22 -6
  14. ccxt/async_support/binancecoinm.py +2 -1
  15. ccxt/async_support/binanceus.py +2 -1
  16. ccxt/async_support/binanceusdm.py +2 -1
  17. ccxt/async_support/bingx.py +3 -3
  18. ccxt/async_support/bit2c.py +9 -9
  19. ccxt/async_support/bitbank.py +2 -2
  20. ccxt/async_support/bitbns.py +2 -2
  21. ccxt/async_support/bitcoincom.py +2 -1
  22. ccxt/async_support/bitfinex.py +2 -2
  23. ccxt/async_support/bitfinex1.py +2 -2
  24. ccxt/async_support/bitflyer.py +2 -2
  25. ccxt/async_support/bitget.py +8 -3
  26. ccxt/async_support/bithumb.py +2 -2
  27. ccxt/async_support/bitmart.py +150 -89
  28. ccxt/async_support/bitmex.py +2 -2
  29. ccxt/async_support/bitopro.py +2 -2
  30. ccxt/async_support/bitpanda.py +2 -1
  31. ccxt/async_support/bitrue.py +3 -3
  32. ccxt/async_support/bitso.py +2 -2
  33. ccxt/async_support/bitstamp.py +2 -2
  34. ccxt/async_support/bitteam.py +2 -2
  35. ccxt/async_support/bitvavo.py +3 -3
  36. ccxt/async_support/bl3p.py +2 -2
  37. ccxt/async_support/blockchaincom.py +2 -2
  38. ccxt/async_support/blofin.py +3 -4
  39. ccxt/async_support/btcalpha.py +2 -2
  40. ccxt/async_support/btcbox.py +2 -2
  41. ccxt/async_support/btcmarkets.py +3 -3
  42. ccxt/async_support/btcturk.py +2 -2
  43. ccxt/async_support/bybit.py +17 -6
  44. ccxt/async_support/cex.py +3 -3
  45. ccxt/async_support/coinbase.py +12 -5
  46. ccxt/async_support/coinbaseadvanced.py +2 -1
  47. ccxt/async_support/coinbaseexchange.py +3 -3
  48. ccxt/async_support/coinbaseinternational.py +3 -4
  49. ccxt/async_support/coincatch.py +3 -3
  50. ccxt/async_support/coincheck.py +2 -2
  51. ccxt/async_support/coinex.py +3 -3
  52. ccxt/async_support/coinlist.py +3 -3
  53. ccxt/async_support/coinmate.py +2 -2
  54. ccxt/async_support/coinmetro.py +2 -2
  55. ccxt/async_support/coinone.py +2 -2
  56. ccxt/async_support/coinsph.py +3 -3
  57. ccxt/async_support/coinspot.py +2 -2
  58. ccxt/async_support/cryptocom.py +2 -2
  59. ccxt/async_support/currencycom.py +3 -3
  60. ccxt/async_support/defx.py +3 -3
  61. ccxt/async_support/delta.py +3 -3
  62. ccxt/async_support/deribit.py +3 -3
  63. ccxt/async_support/digifinex.py +3 -3
  64. ccxt/async_support/ellipx.py +1 -1
  65. ccxt/async_support/exmo.py +2 -2
  66. ccxt/async_support/fmfwio.py +2 -1
  67. ccxt/async_support/gate.py +3 -3
  68. ccxt/async_support/gateio.py +2 -1
  69. ccxt/async_support/gemini.py +2 -2
  70. ccxt/async_support/hashkey.py +2 -2
  71. ccxt/async_support/hitbtc.py +3 -3
  72. ccxt/async_support/hollaex.py +2 -2
  73. ccxt/async_support/htx.py +3 -3
  74. ccxt/async_support/huobi.py +2 -1
  75. ccxt/async_support/huobijp.py +3 -3
  76. ccxt/async_support/hyperliquid.py +91 -6
  77. ccxt/async_support/idex.py +3 -3
  78. ccxt/async_support/independentreserve.py +2 -2
  79. ccxt/async_support/indodax.py +3 -3
  80. ccxt/async_support/kraken.py +3 -3
  81. ccxt/async_support/krakenfutures.py +2 -2
  82. ccxt/async_support/kucoin.py +3 -3
  83. ccxt/async_support/kucoinfutures.py +3 -3
  84. ccxt/async_support/kuna.py +3 -3
  85. ccxt/async_support/latoken.py +3 -3
  86. ccxt/async_support/lbank.py +3 -3
  87. ccxt/async_support/luno.py +2 -2
  88. ccxt/async_support/mercado.py +2 -2
  89. ccxt/async_support/mexc.py +3 -3
  90. ccxt/async_support/myokx.py +2 -1
  91. ccxt/async_support/ndax.py +2 -2
  92. ccxt/async_support/novadax.py +3 -3
  93. ccxt/async_support/oceanex.py +3 -3
  94. ccxt/async_support/okcoin.py +3 -3
  95. ccxt/async_support/okx.py +3 -4
  96. ccxt/async_support/onetrading.py +3 -3
  97. ccxt/async_support/oxfun.py +2 -2
  98. ccxt/async_support/p2b.py +2 -2
  99. ccxt/async_support/paradex.py +3 -3
  100. ccxt/async_support/paymium.py +2 -2
  101. ccxt/async_support/phemex.py +2 -2
  102. ccxt/async_support/poloniex.py +3 -3
  103. ccxt/async_support/poloniexfutures.py +3 -3
  104. ccxt/async_support/probit.py +3 -3
  105. ccxt/async_support/timex.py +15 -5
  106. ccxt/async_support/tokocrypto.py +3 -3
  107. ccxt/async_support/tradeogre.py +2 -2
  108. ccxt/async_support/upbit.py +2 -2
  109. ccxt/async_support/vertex.py +5 -5
  110. ccxt/async_support/wavesexchange.py +2 -3
  111. ccxt/async_support/whitebit.py +5 -4
  112. ccxt/async_support/woo.py +3 -4
  113. ccxt/async_support/woofipro.py +3 -4
  114. ccxt/async_support/xt.py +57 -4
  115. ccxt/async_support/yobit.py +2 -2
  116. ccxt/async_support/zaif.py +2 -2
  117. ccxt/async_support/zonda.py +2 -2
  118. ccxt/base/exchange.py +5 -4
  119. ccxt/bequant.py +2 -1
  120. ccxt/bigone.py +5 -5
  121. ccxt/binance.py +22 -6
  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 +8 -3
  134. ccxt/bithumb.py +2 -2
  135. ccxt/bitmart.py +150 -89
  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 +3 -4
  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 +17 -6
  152. ccxt/cex.py +3 -3
  153. ccxt/coinbase.py +12 -5
  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 +2 -2
  181. ccxt/htx.py +3 -3
  182. ccxt/huobi.py +2 -1
  183. ccxt/huobijp.py +3 -3
  184. ccxt/hyperliquid.py +91 -6
  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 +2 -2
  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 +6 -4
  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 +5 -3
  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 +2 -2
  288. ccxt/probit.py +3 -3
  289. ccxt/test/tests_init.py +2 -2
  290. ccxt/timex.py +15 -5
  291. ccxt/tokocrypto.py +3 -3
  292. ccxt/tradeogre.py +2 -2
  293. ccxt/upbit.py +2 -2
  294. ccxt/vertex.py +5 -5
  295. ccxt/wavesexchange.py +2 -3
  296. ccxt/whitebit.py +5 -4
  297. ccxt/woo.py +3 -4
  298. ccxt/woofipro.py +3 -4
  299. ccxt/xt.py +57 -4
  300. ccxt/yobit.py +2 -2
  301. ccxt/zaif.py +2 -2
  302. ccxt/zonda.py +2 -2
  303. {ccxt-4.4.57.dist-info → ccxt-4.4.59.dist-info}/METADATA +30 -33
  304. {ccxt-4.4.57.dist-info → ccxt-4.4.59.dist-info}/RECORD +307 -310
  305. ccxt/abstract/wazirx.py +0 -30
  306. ccxt/async_support/wazirx.py +0 -1336
  307. ccxt/wazirx.py +0 -1336
  308. {ccxt-4.4.57.dist-info → ccxt-4.4.59.dist-info}/LICENSE.txt +0 -0
  309. {ccxt-4.4.57.dist-info → ccxt-4.4.59.dist-info}/WHEEL +0 -0
  310. {ccxt-4.4.57.dist-info → ccxt-4.4.59.dist-info}/top_level.txt +0 -0
ccxt/__init__.py CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.4.57'
25
+ __version__ = '4.4.59'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -186,7 +186,6 @@ from ccxt.tradeogre import tradeogre # noqa: F4
186
186
  from ccxt.upbit import upbit # noqa: F401
187
187
  from ccxt.vertex import vertex # noqa: F401
188
188
  from ccxt.wavesexchange import wavesexchange # noqa: F401
189
- from ccxt.wazirx import wazirx # noqa: F401
190
189
  from ccxt.whitebit import whitebit # noqa: F401
191
190
  from ccxt.woo import woo # noqa: F401
192
191
  from ccxt.woofipro import woofipro # noqa: F401
@@ -299,7 +298,6 @@ exchanges = [
299
298
  'upbit',
300
299
  'vertex',
301
300
  'wavesexchange',
302
- 'wazirx',
303
301
  'whitebit',
304
302
  'woo',
305
303
  'woofipro',
ccxt/abstract/xt.py CHANGED
@@ -109,6 +109,7 @@ class ImplicitAPI:
109
109
  private_linear_post_future_user_v1_position_margin = privateLinearPostFutureUserV1PositionMargin = Entry('future/user/v1/position/margin', ['private', 'linear'], 'POST', {'cost': 1})
110
110
  private_linear_post_future_user_v1_user_collection_add = privateLinearPostFutureUserV1UserCollectionAdd = Entry('future/user/v1/user/collection/add', ['private', 'linear'], 'POST', {'cost': 1})
111
111
  private_linear_post_future_user_v1_user_collection_cancel = privateLinearPostFutureUserV1UserCollectionCancel = Entry('future/user/v1/user/collection/cancel', ['private', 'linear'], 'POST', {'cost': 1})
112
+ private_linear_post_future_user_v1_position_change_type = privateLinearPostFutureUserV1PositionChangeType = Entry('future/user/v1/position/change-type', ['private', 'linear'], 'POST', {'cost': 1})
112
113
  private_inverse_get_future_trade_v1_entrust_plan_detail = privateInverseGetFutureTradeV1EntrustPlanDetail = Entry('future/trade/v1/entrust/plan-detail', ['private', 'inverse'], 'GET', {'cost': 1})
113
114
  private_inverse_get_future_trade_v1_entrust_plan_list = privateInverseGetFutureTradeV1EntrustPlanList = Entry('future/trade/v1/entrust/plan-list', ['private', 'inverse'], 'GET', {'cost': 1})
114
115
  private_inverse_get_future_trade_v1_entrust_plan_list_history = privateInverseGetFutureTradeV1EntrustPlanListHistory = Entry('future/trade/v1/entrust/plan-list-history', ['private', 'inverse'], 'GET', {'cost': 1})
ccxt/ace.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.ace import ImplicitAPI
8
- from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
9
9
  from typing import List
10
10
  from ccxt.base.errors import AuthenticationError
11
11
  from ccxt.base.errors import ArgumentsRequired
@@ -18,7 +18,7 @@ from ccxt.base.precise import Precise
18
18
 
19
19
  class ace(Exchange, ImplicitAPI):
20
20
 
21
- def describe(self):
21
+ def describe(self) -> Any:
22
22
  return self.deep_extend(super(ace, self).describe(), {
23
23
  'id': 'ace',
24
24
  'name': 'ACE',
ccxt/alpaca.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.alpaca import ImplicitAPI
8
- from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
8
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import PermissionDenied
@@ -22,7 +22,7 @@ from ccxt.base.precise import Precise
22
22
 
23
23
  class alpaca(Exchange, ImplicitAPI):
24
24
 
25
- def describe(self):
25
+ def describe(self) -> Any:
26
26
  return self.deep_extend(super(alpaca, self).describe(), {
27
27
  'id': 'alpaca',
28
28
  'name': 'Alpaca',
@@ -378,7 +378,7 @@ class alpaca(Exchange, ImplicitAPI):
378
378
  },
379
379
  })
380
380
 
381
- def fetch_time(self, params={}):
381
+ def fetch_time(self, params={}) -> Int:
382
382
  """
383
383
  fetches the current integer timestamp in milliseconds from the exchange server
384
384
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -991,7 +991,7 @@ class alpaca(Exchange, ImplicitAPI):
991
991
  }
992
992
  triggerPrice = self.safe_string_n(params, ['triggerPrice', 'stop_price'])
993
993
  if triggerPrice is not None:
994
- newType = None
994
+ newType: str
995
995
  if type.find('limit') >= 0:
996
996
  newType = 'stop_limit'
997
997
  else:
ccxt/ascendex.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.ascendex import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Currencies, Currency, DepositAddress, Int, Leverage, Leverages, LeverageTier, LeverageTiers, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, Any, Balances, Currencies, Currency, DepositAddress, Int, Leverage, Leverages, LeverageTier, LeverageTiers, MarginMode, MarginModes, 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
@@ -24,7 +24,7 @@ from ccxt.base.precise import Precise
24
24
 
25
25
  class ascendex(Exchange, ImplicitAPI):
26
26
 
27
- def describe(self):
27
+ def describe(self) -> Any:
28
28
  return self.deep_extend(super(ascendex, self).describe(), {
29
29
  'id': 'ascendex',
30
30
  'name': 'AscendEX',
@@ -365,6 +365,7 @@ class ascendex(Exchange, ImplicitAPI):
365
365
  'untilDays': 100000,
366
366
  'trigger': False,
367
367
  'trailing': False,
368
+ 'symbolRequired': False,
368
369
  },
369
370
  },
370
371
  'forDerivatives': {
@@ -388,6 +389,7 @@ class ascendex(Exchange, ImplicitAPI):
388
389
  'untilDays': None,
389
390
  'trigger': False,
390
391
  'trailing': False,
392
+ 'symbolRequired': False,
391
393
  },
392
394
  },
393
395
  'swap': {
@@ -781,7 +783,7 @@ class ascendex(Exchange, ImplicitAPI):
781
783
  })
782
784
  return result
783
785
 
784
- def fetch_time(self, params={}):
786
+ def fetch_time(self, params={}) -> Int:
785
787
  """
786
788
  fetches the current integer timestamp in milliseconds from the ascendex server
787
789
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.57'
7
+ __version__ = '4.4.59'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -166,7 +166,6 @@ from ccxt.async_support.tradeogre import tradeogre
166
166
  from ccxt.async_support.upbit import upbit # noqa: F401
167
167
  from ccxt.async_support.vertex import vertex # noqa: F401
168
168
  from ccxt.async_support.wavesexchange import wavesexchange # noqa: F401
169
- from ccxt.async_support.wazirx import wazirx # noqa: F401
170
169
  from ccxt.async_support.whitebit import whitebit # noqa: F401
171
170
  from ccxt.async_support.woo import woo # noqa: F401
172
171
  from ccxt.async_support.woofipro import woofipro # noqa: F401
@@ -279,7 +278,6 @@ exchanges = [
279
278
  'upbit',
280
279
  'vertex',
281
280
  'wavesexchange',
282
- 'wazirx',
283
281
  'whitebit',
284
282
  'woo',
285
283
  'woofipro',
ccxt/async_support/ace.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.ace import ImplicitAPI
8
- from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Any, Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
9
9
  from typing import List
10
10
  from ccxt.base.errors import AuthenticationError
11
11
  from ccxt.base.errors import ArgumentsRequired
@@ -18,7 +18,7 @@ from ccxt.base.precise import Precise
18
18
 
19
19
  class ace(Exchange, ImplicitAPI):
20
20
 
21
- def describe(self):
21
+ def describe(self) -> Any:
22
22
  return self.deep_extend(super(ace, self).describe(), {
23
23
  'id': 'ace',
24
24
  'name': 'ACE',
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.alpaca import ImplicitAPI
8
- from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
8
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
11
  from ccxt.base.errors import PermissionDenied
@@ -22,7 +22,7 @@ from ccxt.base.precise import Precise
22
22
 
23
23
  class alpaca(Exchange, ImplicitAPI):
24
24
 
25
- def describe(self):
25
+ def describe(self) -> Any:
26
26
  return self.deep_extend(super(alpaca, self).describe(), {
27
27
  'id': 'alpaca',
28
28
  'name': 'Alpaca',
@@ -378,7 +378,7 @@ class alpaca(Exchange, ImplicitAPI):
378
378
  },
379
379
  })
380
380
 
381
- async def fetch_time(self, params={}):
381
+ async def fetch_time(self, params={}) -> Int:
382
382
  """
383
383
  fetches the current integer timestamp in milliseconds from the exchange server
384
384
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -991,7 +991,7 @@ class alpaca(Exchange, ImplicitAPI):
991
991
  }
992
992
  triggerPrice = self.safe_string_n(params, ['triggerPrice', 'stop_price'])
993
993
  if triggerPrice is not None:
994
- newType = None
994
+ newType: str
995
995
  if type.find('limit') >= 0:
996
996
  newType = 'stop_limit'
997
997
  else:
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.ascendex import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Account, Balances, Currencies, Currency, DepositAddress, Int, Leverage, Leverages, LeverageTier, LeverageTiers, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
10
+ from ccxt.base.types import Account, Any, Balances, Currencies, Currency, DepositAddress, Int, Leverage, Leverages, LeverageTier, LeverageTiers, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade, TradingFees, Transaction, TransferEntry
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 ascendex(Exchange, ImplicitAPI):
27
27
 
28
- def describe(self):
28
+ def describe(self) -> Any:
29
29
  return self.deep_extend(super(ascendex, self).describe(), {
30
30
  'id': 'ascendex',
31
31
  'name': 'AscendEX',
@@ -366,6 +366,7 @@ class ascendex(Exchange, ImplicitAPI):
366
366
  'untilDays': 100000,
367
367
  'trigger': False,
368
368
  'trailing': False,
369
+ 'symbolRequired': False,
369
370
  },
370
371
  },
371
372
  'forDerivatives': {
@@ -389,6 +390,7 @@ class ascendex(Exchange, ImplicitAPI):
389
390
  'untilDays': None,
390
391
  'trigger': False,
391
392
  'trailing': False,
393
+ 'symbolRequired': False,
392
394
  },
393
395
  },
394
396
  'swap': {
@@ -782,7 +784,7 @@ class ascendex(Exchange, ImplicitAPI):
782
784
  })
783
785
  return result
784
786
 
785
- async def fetch_time(self, params={}):
787
+ async def fetch_time(self, params={}) -> Int:
786
788
  """
787
789
  fetches the current integer timestamp in milliseconds from the ascendex server
788
790
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.57'
5
+ __version__ = '4.4.59'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -5,11 +5,12 @@
5
5
 
6
6
  from ccxt.async_support.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',
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.bigone import ImplicitAPI
8
8
  import asyncio
9
- from ccxt.base.types import Balances, Bool, Currencies, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
9
+ 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
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -24,7 +24,7 @@ from ccxt.base.precise import Precise
24
24
 
25
25
  class bigone(Exchange, ImplicitAPI):
26
26
 
27
- def describe(self):
27
+ def describe(self) -> Any:
28
28
  return self.deep_extend(super(bigone, self).describe(), {
29
29
  'id': 'bigone',
30
30
  'name': 'BigONE',
@@ -965,7 +965,7 @@ class bigone(Exchange, ImplicitAPI):
965
965
  tickers = self.parse_tickers(data, symbols)
966
966
  return self.filter_by_array_tickers(tickers, 'symbol', symbols)
967
967
 
968
- async def fetch_time(self, params={}):
968
+ async def fetch_time(self, params={}) -> Int:
969
969
  """
970
970
  fetches the current integer timestamp in milliseconds from the exchange server
971
971
 
@@ -1163,8 +1163,8 @@ class bigone(Exchange, ImplicitAPI):
1163
1163
  'cost': None,
1164
1164
  'info': trade,
1165
1165
  }
1166
- makerCurrencyCode = None
1167
- takerCurrencyCode = None
1166
+ makerCurrencyCode: str
1167
+ takerCurrencyCode: str
1168
1168
  if takerOrMaker is not None:
1169
1169
  if side == 'buy':
1170
1170
  if takerOrMaker == 'maker':
@@ -8,7 +8,7 @@ from ccxt.abstract.binance import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
10
  import json
11
- 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
11
+ 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
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
14
  from ccxt.base.errors import AuthenticationError
@@ -40,7 +40,7 @@ from ccxt.base.precise import Precise
40
40
 
41
41
  class binance(Exchange, ImplicitAPI):
42
42
 
43
- def describe(self):
43
+ def describe(self) -> Any:
44
44
  return self.deep_extend(super(binance, self).describe(), {
45
45
  'id': 'binance',
46
46
  'name': 'Binance',
@@ -1585,6 +1585,7 @@ class binance(Exchange, ImplicitAPI):
1585
1585
  'legalMoneyCurrenciesById': {
1586
1586
  'BUSD': 'USD',
1587
1587
  },
1588
+ 'defaultWithdrawPrecision': 0.00000001,
1588
1589
  },
1589
1590
  'features': {
1590
1591
  'spot': {
@@ -1635,6 +1636,7 @@ class binance(Exchange, ImplicitAPI):
1635
1636
  'limit': None,
1636
1637
  'trigger': False,
1637
1638
  'trailing': False,
1639
+ 'symbolRequired': False,
1638
1640
  },
1639
1641
  'fetchOrders': {
1640
1642
  'marginMode': True,
@@ -2937,7 +2939,7 @@ class binance(Exchange, ImplicitAPI):
2937
2939
  def nonce(self):
2938
2940
  return self.milliseconds() - self.options['timeDifference']
2939
2941
 
2940
- async def fetch_time(self, params={}):
2942
+ async def fetch_time(self, params={}) -> Int:
2941
2943
  """
2942
2944
  fetches the current integer timestamp in milliseconds from the exchange server
2943
2945
 
@@ -3097,6 +3099,7 @@ class binance(Exchange, ImplicitAPI):
3097
3099
  id = self.safe_string(entry, 'coin')
3098
3100
  name = self.safe_string(entry, 'name')
3099
3101
  code = self.safe_currency_code(id)
3102
+ isFiat = self.safe_bool(entry, 'isLegalMoney')
3100
3103
  minPrecision = None
3101
3104
  isWithdrawEnabled = True
3102
3105
  isDepositEnabled = True
@@ -3108,6 +3111,7 @@ class binance(Exchange, ImplicitAPI):
3108
3111
  networkItem = networkList[j]
3109
3112
  network = self.safe_string(networkItem, 'network')
3110
3113
  networkCode = self.network_id_to_code(network)
3114
+ isETF = (network == 'ETF') # e.g. BTCUP, ETHDOWN
3111
3115
  # name = self.safe_string(networkItem, 'name')
3112
3116
  withdrawFee = self.safe_number(networkItem, 'withdrawFee')
3113
3117
  depositEnable = self.safe_bool(networkItem, 'depositEnable')
@@ -3118,11 +3122,22 @@ class binance(Exchange, ImplicitAPI):
3118
3122
  isDefault = self.safe_bool(networkItem, 'isDefault')
3119
3123
  if isDefault or (fee is None):
3120
3124
  fee = withdrawFee
3125
+ # todo: default networks in "setMarkets" overload
3126
+ # if isDefault:
3127
+ # self.options['defaultNetworkCodesForCurrencies'][code] = networkCode
3128
+ # }
3121
3129
  precisionTick = self.safe_string(networkItem, 'withdrawIntegerMultiple')
3122
- # avoid zero values, which are mostly from fiat or leveraged tokens : https://github.com/ccxt/ccxt/pull/14902#issuecomment-1271636731
3123
- # so, when there is zero instead of i.e. 0.001, then we skip those cases, because we don't know the precision - it might be because of network is suspended or other reasons
3130
+ withdrawPrecision = precisionTick
3131
+ # avoid zero values, which are mostly from fiat or leveraged tokens or some abandoned coins : https://github.com/ccxt/ccxt/pull/14902#issuecomment-1271636731
3124
3132
  if not Precise.string_eq(precisionTick, '0'):
3125
3133
  minPrecision = precisionTick if (minPrecision is None) else Precise.string_min(minPrecision, precisionTick)
3134
+ else:
3135
+ if not isFiat and not isETF:
3136
+ # non-fiat and non-ETF currency, there are many cases when precision is set to zero(probably bug, we've reported to binance already)
3137
+ # in such cases, we can set default precision of 8(which is in UI for such coins)
3138
+ withdrawPrecision = self.omit_zero(self.safe_string(networkItem, 'withdrawInternalMin'))
3139
+ if withdrawPrecision is None:
3140
+ withdrawPrecision = self.safe_string(self.options, 'defaultWithdrawPrecision')
3126
3141
  networks[networkCode] = {
3127
3142
  'info': networkItem,
3128
3143
  'id': network,
@@ -3131,7 +3146,7 @@ class binance(Exchange, ImplicitAPI):
3131
3146
  'deposit': depositEnable,
3132
3147
  'withdraw': withdrawEnable,
3133
3148
  'fee': withdrawFee,
3134
- 'precision': self.parse_number(precisionTick),
3149
+ 'precision': self.parse_number(withdrawPrecision),
3135
3150
  'limits': {
3136
3151
  'withdraw': {
3137
3152
  'min': self.safe_number(networkItem, 'withdrawMin'),
@@ -3160,6 +3175,7 @@ class binance(Exchange, ImplicitAPI):
3160
3175
  'id': id,
3161
3176
  'name': name,
3162
3177
  'code': code,
3178
+ 'type': 'fiat' if isFiat else 'crypto',
3163
3179
  'precision': self.parse_number(minPrecision),
3164
3180
  'info': entry,
3165
3181
  'active': active,
@@ -5,11 +5,12 @@
5
5
 
6
6
  from ccxt.async_support.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',
@@ -5,11 +5,12 @@
5
5
 
6
6
  from ccxt.async_support.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',
@@ -5,12 +5,13 @@
5
5
 
6
6
  from ccxt.async_support.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',
@@ -8,7 +8,7 @@ from ccxt.abstract.bingx import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
10
  import numbers
11
- 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
11
+ 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
12
12
  from typing import List
13
13
  from ccxt.base.errors import ExchangeError
14
14
  from ccxt.base.errors import AuthenticationError
@@ -29,7 +29,7 @@ from ccxt.base.precise import Precise
29
29
 
30
30
  class bingx(Exchange, ImplicitAPI):
31
31
 
32
- def describe(self):
32
+ def describe(self) -> Any:
33
33
  return self.deep_extend(super(bingx, self).describe(), {
34
34
  'id': 'bingx',
35
35
  'name': 'BingX',
@@ -681,7 +681,7 @@ class bingx(Exchange, ImplicitAPI):
681
681
  },
682
682
  })
683
683
 
684
- async def fetch_time(self, params={}):
684
+ async def fetch_time(self, params={}) -> Int:
685
685
  """
686
686
  fetches the current integer timestamp in milliseconds from the bingx server
687
687
 
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.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:
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.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',
@@ -6,7 +6,7 @@
6
6
  from ccxt.async_support.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',
@@ -5,11 +5,12 @@
5
5
 
6
6
  from ccxt.async_support.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',
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.bitfinex import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- 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
10
+ 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
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -32,7 +32,7 @@ from ccxt.base.precise import Precise
32
32
 
33
33
  class bitfinex(Exchange, ImplicitAPI):
34
34
 
35
- def describe(self):
35
+ def describe(self) -> Any:
36
36
  return self.deep_extend(super(bitfinex, self).describe(), {
37
37
  'id': 'bitfinex',
38
38
  'name': 'Bitfinex',
@@ -7,7 +7,7 @@ from ccxt.async_support.base.exchange import Exchange
7
7
  from ccxt.abstract.bitfinex1 import ImplicitAPI
8
8
  import asyncio
9
9
  import hashlib
10
- from ccxt.base.types import Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
10
+ from ccxt.base.types import Any, Balances, Currency, DepositAddress, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
13
  from ccxt.base.errors import AuthenticationError
@@ -30,7 +30,7 @@ from ccxt.base.precise import Precise
30
30
 
31
31
  class bitfinex1(Exchange, ImplicitAPI):
32
32
 
33
- def describe(self):
33
+ def describe(self) -> Any:
34
34
  return self.deep_extend(super(bitfinex1, self).describe(), {
35
35
  'id': 'bitfinex1',
36
36
  'name': 'Bitfinex',