ccxt 4.2.93__py2.py3-none-any.whl → 4.2.95__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 (190) hide show
  1. ccxt/__init__.py +2 -2
  2. ccxt/abstract/binance.py +1 -0
  3. ccxt/abstract/binancecoinm.py +1 -0
  4. ccxt/abstract/binanceus.py +1 -0
  5. ccxt/abstract/binanceusdm.py +1 -0
  6. ccxt/abstract/bitstamp.py +6 -0
  7. ccxt/ace.py +1 -1
  8. ccxt/ascendex.py +1 -1
  9. ccxt/async_support/__init__.py +2 -2
  10. ccxt/async_support/ace.py +1 -1
  11. ccxt/async_support/ascendex.py +1 -1
  12. ccxt/async_support/base/exchange.py +7 -1
  13. ccxt/async_support/bigone.py +1 -1
  14. ccxt/async_support/binance.py +63 -5
  15. ccxt/async_support/bingx.py +1 -1
  16. ccxt/async_support/bit2c.py +1 -1
  17. ccxt/async_support/bitbank.py +1 -1
  18. ccxt/async_support/bitfinex.py +1 -1
  19. ccxt/async_support/bitfinex2.py +1 -1
  20. ccxt/async_support/bitget.py +136 -2
  21. ccxt/async_support/bithumb.py +1 -1
  22. ccxt/async_support/bitmart.py +1 -1
  23. ccxt/async_support/bitmex.py +1 -1
  24. ccxt/async_support/bitopro.py +1 -1
  25. ccxt/async_support/bitrue.py +1 -1
  26. ccxt/async_support/bitso.py +1 -1
  27. ccxt/async_support/bitstamp.py +7 -1
  28. ccxt/async_support/bitteam.py +1 -1
  29. ccxt/async_support/bitvavo.py +1 -1
  30. ccxt/async_support/blockchaincom.py +1 -1
  31. ccxt/async_support/blofin.py +1 -1
  32. ccxt/async_support/btcalpha.py +1 -1
  33. ccxt/async_support/btcbox.py +1 -1
  34. ccxt/async_support/bybit.py +2 -2
  35. ccxt/async_support/cex.py +1 -1
  36. ccxt/async_support/coinbase.py +1 -1
  37. ccxt/async_support/coinbaseinternational.py +1 -1
  38. ccxt/async_support/coinbasepro.py +1 -1
  39. ccxt/async_support/coincheck.py +1 -1
  40. ccxt/async_support/coinex.py +62 -56
  41. ccxt/async_support/coinlist.py +1 -1
  42. ccxt/async_support/coinmate.py +1 -1
  43. ccxt/async_support/coinsph.py +1 -1
  44. ccxt/async_support/cryptocom.py +1 -1
  45. ccxt/async_support/currencycom.py +1 -1
  46. ccxt/async_support/delta.py +1 -1
  47. ccxt/async_support/deribit.py +1 -1
  48. ccxt/async_support/digifinex.py +1 -1
  49. ccxt/async_support/exmo.py +1 -1
  50. ccxt/async_support/gate.py +1 -1
  51. ccxt/async_support/gemini.py +3 -2
  52. ccxt/async_support/hitbtc.py +1 -1
  53. ccxt/async_support/hollaex.py +1 -1
  54. ccxt/async_support/htx.py +117 -116
  55. ccxt/async_support/huobijp.py +1 -1
  56. ccxt/async_support/idex.py +1 -1
  57. ccxt/async_support/indodax.py +1 -1
  58. ccxt/async_support/kraken.py +1 -1
  59. ccxt/async_support/krakenfutures.py +2 -2
  60. ccxt/async_support/kucoin.py +1 -1
  61. ccxt/async_support/kucoinfutures.py +1 -1
  62. ccxt/async_support/latoken.py +1 -1
  63. ccxt/async_support/lbank.py +1 -1
  64. ccxt/async_support/mexc.py +1 -1
  65. ccxt/async_support/ndax.py +1 -1
  66. ccxt/async_support/novadax.py +1 -1
  67. ccxt/async_support/oceanex.py +1 -1
  68. ccxt/async_support/okcoin.py +1 -1
  69. ccxt/async_support/okx.py +191 -43
  70. ccxt/async_support/onetrading.py +1 -1
  71. ccxt/async_support/p2b.py +1 -1
  72. ccxt/async_support/phemex.py +1 -1
  73. ccxt/async_support/poloniex.py +1 -1
  74. ccxt/async_support/poloniexfutures.py +1 -1
  75. ccxt/async_support/probit.py +1 -1
  76. ccxt/async_support/timex.py +1 -1
  77. ccxt/async_support/tokocrypto.py +1 -1
  78. ccxt/async_support/tradeogre.py +1 -1
  79. ccxt/async_support/upbit.py +2 -2
  80. ccxt/async_support/wavesexchange.py +1 -1
  81. ccxt/async_support/whitebit.py +1 -1
  82. ccxt/async_support/woo.py +136 -2
  83. ccxt/async_support/yobit.py +1 -1
  84. ccxt/async_support/zonda.py +1 -1
  85. ccxt/base/errors.py +7 -7
  86. ccxt/base/exchange.py +18 -1
  87. ccxt/base/types.py +13 -0
  88. ccxt/bigone.py +1 -1
  89. ccxt/binance.py +63 -5
  90. ccxt/bingx.py +1 -1
  91. ccxt/bit2c.py +1 -1
  92. ccxt/bitbank.py +1 -1
  93. ccxt/bitfinex.py +1 -1
  94. ccxt/bitfinex2.py +1 -1
  95. ccxt/bitget.py +136 -2
  96. ccxt/bithumb.py +1 -1
  97. ccxt/bitmart.py +1 -1
  98. ccxt/bitmex.py +1 -1
  99. ccxt/bitopro.py +1 -1
  100. ccxt/bitrue.py +1 -1
  101. ccxt/bitso.py +1 -1
  102. ccxt/bitstamp.py +7 -1
  103. ccxt/bitteam.py +1 -1
  104. ccxt/bitvavo.py +1 -1
  105. ccxt/blockchaincom.py +1 -1
  106. ccxt/blofin.py +1 -1
  107. ccxt/btcalpha.py +1 -1
  108. ccxt/btcbox.py +1 -1
  109. ccxt/bybit.py +2 -2
  110. ccxt/cex.py +1 -1
  111. ccxt/coinbase.py +1 -1
  112. ccxt/coinbaseinternational.py +1 -1
  113. ccxt/coinbasepro.py +1 -1
  114. ccxt/coincheck.py +1 -1
  115. ccxt/coinex.py +62 -56
  116. ccxt/coinlist.py +1 -1
  117. ccxt/coinmate.py +1 -1
  118. ccxt/coinsph.py +1 -1
  119. ccxt/cryptocom.py +1 -1
  120. ccxt/currencycom.py +1 -1
  121. ccxt/delta.py +1 -1
  122. ccxt/deribit.py +1 -1
  123. ccxt/digifinex.py +1 -1
  124. ccxt/exmo.py +1 -1
  125. ccxt/gate.py +1 -1
  126. ccxt/gemini.py +3 -2
  127. ccxt/hitbtc.py +1 -1
  128. ccxt/hollaex.py +1 -1
  129. ccxt/htx.py +117 -116
  130. ccxt/huobijp.py +1 -1
  131. ccxt/idex.py +1 -1
  132. ccxt/indodax.py +1 -1
  133. ccxt/kraken.py +1 -1
  134. ccxt/krakenfutures.py +2 -2
  135. ccxt/kucoin.py +1 -1
  136. ccxt/kucoinfutures.py +1 -1
  137. ccxt/latoken.py +1 -1
  138. ccxt/lbank.py +1 -1
  139. ccxt/mexc.py +1 -1
  140. ccxt/ndax.py +1 -1
  141. ccxt/novadax.py +1 -1
  142. ccxt/oceanex.py +1 -1
  143. ccxt/okcoin.py +1 -1
  144. ccxt/okx.py +191 -43
  145. ccxt/onetrading.py +1 -1
  146. ccxt/p2b.py +1 -1
  147. ccxt/phemex.py +1 -1
  148. ccxt/poloniex.py +1 -1
  149. ccxt/poloniexfutures.py +1 -1
  150. ccxt/pro/__init__.py +1 -1
  151. ccxt/pro/ascendex.py +1 -1
  152. ccxt/pro/bitfinex2.py +1 -1
  153. ccxt/pro/bitget.py +1 -1
  154. ccxt/pro/bitmart.py +1 -1
  155. ccxt/pro/bitmex.py +1 -1
  156. ccxt/pro/bitstamp.py +1 -1
  157. ccxt/pro/bitvavo.py +1 -1
  158. ccxt/pro/blockchaincom.py +1 -1
  159. ccxt/pro/bybit.py +1 -1
  160. ccxt/pro/coinbase.py +12 -0
  161. ccxt/pro/coinbaseinternational.py +1 -1
  162. ccxt/pro/coinbasepro.py +1 -1
  163. ccxt/pro/coinex.py +1 -1
  164. ccxt/pro/cryptocom.py +1 -1
  165. ccxt/pro/gate.py +1 -1
  166. ccxt/pro/hitbtc.py +1 -1
  167. ccxt/pro/hollaex.py +1 -1
  168. ccxt/pro/htx.py +1 -1
  169. ccxt/pro/kraken.py +97 -19
  170. ccxt/pro/krakenfutures.py +105 -40
  171. ccxt/pro/kucoin.py +25 -16
  172. ccxt/pro/okcoin.py +1 -1
  173. ccxt/pro/okx.py +1 -1
  174. ccxt/pro/poloniex.py +1 -1
  175. ccxt/pro/poloniexfutures.py +1 -1
  176. ccxt/pro/whitebit.py +1 -1
  177. ccxt/probit.py +1 -1
  178. ccxt/timex.py +1 -1
  179. ccxt/tokocrypto.py +1 -1
  180. ccxt/tradeogre.py +1 -1
  181. ccxt/upbit.py +2 -2
  182. ccxt/wavesexchange.py +1 -1
  183. ccxt/whitebit.py +1 -1
  184. ccxt/woo.py +136 -2
  185. ccxt/yobit.py +1 -1
  186. ccxt/zonda.py +1 -1
  187. {ccxt-4.2.93.dist-info → ccxt-4.2.95.dist-info}/METADATA +4 -4
  188. {ccxt-4.2.93.dist-info → ccxt-4.2.95.dist-info}/RECORD +190 -190
  189. {ccxt-4.2.93.dist-info → ccxt-4.2.95.dist-info}/WHEEL +0 -0
  190. {ccxt-4.2.93.dist-info → ccxt-4.2.95.dist-info}/top_level.txt +0 -0
ccxt/bitget.py CHANGED
@@ -7,9 +7,10 @@ from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.bitget import ImplicitAPI
8
8
  import hashlib
9
9
  import json
10
- from ccxt.base.types import Balances, Currencies, Currency, FundingHistory, Int, Liquidation, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
10
+ from ccxt.base.types import Balances, Conversion, Currencies, Currency, FundingHistory, Int, Liquidation, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
+ from ccxt.base.errors import AuthenticationError
13
14
  from ccxt.base.errors import PermissionDenied
14
15
  from ccxt.base.errors import AccountSuspended
15
16
  from ccxt.base.errors import ArgumentsRequired
@@ -27,7 +28,6 @@ from ccxt.base.errors import ExchangeNotAvailable
27
28
  from ccxt.base.errors import OnMaintenance
28
29
  from ccxt.base.errors import InvalidNonce
29
30
  from ccxt.base.errors import RequestTimeout
30
- from ccxt.base.errors import AuthenticationError
31
31
  from ccxt.base.decimal_to_precision import TICK_SIZE
32
32
  from ccxt.base.precise import Precise
33
33
 
@@ -84,6 +84,8 @@ class bitget(Exchange, ImplicitAPI):
84
84
  'fetchCanceledAndClosedOrders': True,
85
85
  'fetchCanceledOrders': True,
86
86
  'fetchClosedOrders': True,
87
+ 'fetchConvertCurrencies': True,
88
+ 'fetchConvertQuote': True,
87
89
  'fetchCrossBorrowRate': True,
88
90
  'fetchCrossBorrowRates': False,
89
91
  'fetchCurrencies': True,
@@ -7852,6 +7854,138 @@ class bitget(Exchange, ImplicitAPI):
7852
7854
  'marginMode': marginType,
7853
7855
  }
7854
7856
 
7857
+ def fetch_convert_quote(self, fromCode: str, toCode: str, amount: Num = None, params={}) -> Conversion:
7858
+ """
7859
+ fetch a quote for converting from one currency to another
7860
+ :see: https://www.bitget.com/api-doc/common/convert/Get-Quoted-Price
7861
+ :param str fromCode: the currency that you want to sell and convert from
7862
+ :param str toCode: the currency that you want to buy and convert into
7863
+ :param float [amount]: how much you want to trade in units of the from currency
7864
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7865
+ :returns dict: a `conversion structure <https://docs.ccxt.com/#/?id=conversion-structure>`
7866
+ """
7867
+ self.load_markets()
7868
+ request = {
7869
+ 'fromCoin': fromCode.upper(),
7870
+ 'toCoin': toCode.upper(),
7871
+ 'fromCoinSize': self.number_to_string(amount),
7872
+ }
7873
+ response = self.privateConvertGetV2ConvertQuotedPrice(self.extend(request, params))
7874
+ #
7875
+ # {
7876
+ # "code": "00000",
7877
+ # "msg": "success",
7878
+ # "requestTime": 1712121940158,
7879
+ # "data": {
7880
+ # "fromCoin": "USDT",
7881
+ # "fromCoinSize": "5",
7882
+ # "cnvtPrice": "0.9993007892377704",
7883
+ # "toCoin": "USDC",
7884
+ # "toCoinSize": "4.99650394",
7885
+ # "traceId": "1159288930228187140",
7886
+ # "fee": "0"
7887
+ # }
7888
+ # }
7889
+ #
7890
+ data = self.safe_dict(response, 'data', {})
7891
+ fromCurrencyId = self.safe_string(data, 'fromCoin', fromCode)
7892
+ fromCurrency = self.currency(fromCurrencyId)
7893
+ toCurrencyId = self.safe_string(data, 'toCoin', toCode)
7894
+ toCurrency = self.currency(toCurrencyId)
7895
+ return self.parse_conversion(data, fromCurrency, toCurrency)
7896
+
7897
+ def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
7898
+ #
7899
+ # fetchConvertQuote
7900
+ #
7901
+ # {
7902
+ # "fromCoin": "USDT",
7903
+ # "fromCoinSize": "5",
7904
+ # "cnvtPrice": "0.9993007892377704",
7905
+ # "toCoin": "USDC",
7906
+ # "toCoinSize": "4.99650394",
7907
+ # "traceId": "1159288930228187140",
7908
+ # "fee": "0"
7909
+ # }
7910
+ #
7911
+ timestamp = self.safe_integer(conversion, 'ts')
7912
+ fromCoin = self.safe_string(conversion, 'fromCoin')
7913
+ fromCode = self.safe_currency_code(fromCoin, fromCurrency)
7914
+ to = self.safe_string(conversion, 'toCoin')
7915
+ toCode = self.safe_currency_code(to, toCurrency)
7916
+ return {
7917
+ 'info': conversion,
7918
+ 'timestamp': timestamp,
7919
+ 'datetime': self.iso8601(timestamp),
7920
+ 'id': self.safe_string(conversion, 'traceId'),
7921
+ 'fromCurrency': fromCode,
7922
+ 'fromAmount': self.safe_number(conversion, 'fromCoinSize'),
7923
+ 'toCurrency': toCode,
7924
+ 'toAmount': self.safe_number(conversion, 'toCoinSize'),
7925
+ 'price': self.safe_number(conversion, 'cnvtPrice'),
7926
+ 'fee': self.safe_number(conversion, 'fee'),
7927
+ }
7928
+
7929
+ def fetch_convert_currencies(self, params={}) -> Currencies:
7930
+ """
7931
+ fetches all available currencies that can be converted
7932
+ :see: https://www.bitget.com/api-doc/common/convert/Get-Convert-Currencies
7933
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7934
+ :returns dict: an associative dictionary of currencies
7935
+ """
7936
+ self.load_markets()
7937
+ response = self.privateConvertGetV2ConvertCurrencies(params)
7938
+ #
7939
+ # {
7940
+ # "code": "00000",
7941
+ # "msg": "success",
7942
+ # "requestTime": 1712121755897,
7943
+ # "data": [
7944
+ # {
7945
+ # "coin": "BTC",
7946
+ # "available": "0.00009850",
7947
+ # "maxAmount": "0.756266",
7948
+ # "minAmount": "0.00001"
7949
+ # },
7950
+ # ]
7951
+ # }
7952
+ #
7953
+ result = {}
7954
+ data = self.safe_list(response, 'data', [])
7955
+ for i in range(0, len(data)):
7956
+ entry = data[i]
7957
+ id = self.safe_string(entry, 'coin')
7958
+ code = self.safe_currency_code(id)
7959
+ result[code] = {
7960
+ 'info': entry,
7961
+ 'id': id,
7962
+ 'code': code,
7963
+ 'networks': None,
7964
+ 'type': None,
7965
+ 'name': None,
7966
+ 'active': None,
7967
+ 'deposit': None,
7968
+ 'withdraw': self.safe_number(entry, 'available'),
7969
+ 'fee': None,
7970
+ 'precision': None,
7971
+ 'limits': {
7972
+ 'amount': {
7973
+ 'min': self.safe_number(entry, 'minAmount'),
7974
+ 'max': self.safe_number(entry, 'maxAmount'),
7975
+ },
7976
+ 'withdraw': {
7977
+ 'min': None,
7978
+ 'max': None,
7979
+ },
7980
+ 'deposit': {
7981
+ 'min': None,
7982
+ 'max': None,
7983
+ },
7984
+ },
7985
+ 'created': None,
7986
+ }
7987
+ return result
7988
+
7855
7989
  def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
7856
7990
  if not response:
7857
7991
  return None # fallback to default error handler
ccxt/bithumb.py CHANGED
@@ -9,13 +9,13 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currency, Int, Market, MarketInterface, 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
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import PermissionDenied
13
14
  from ccxt.base.errors import ArgumentsRequired
14
15
  from ccxt.base.errors import BadRequest
15
16
  from ccxt.base.errors import InvalidAddress
16
17
  from ccxt.base.errors import InvalidOrder
17
18
  from ccxt.base.errors import ExchangeNotAvailable
18
- from ccxt.base.errors import AuthenticationError
19
19
  from ccxt.base.decimal_to_precision import TRUNCATE
20
20
  from ccxt.base.decimal_to_precision import DECIMAL_PLACES
21
21
  from ccxt.base.decimal_to_precision import SIGNIFICANT_DIGITS
ccxt/bitmart.py CHANGED
@@ -9,6 +9,7 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import PermissionDenied
13
14
  from ccxt.base.errors import AccountSuspended
14
15
  from ccxt.base.errors import ArgumentsRequired
@@ -24,7 +25,6 @@ from ccxt.base.errors import RateLimitExceeded
24
25
  from ccxt.base.errors import ExchangeNotAvailable
25
26
  from ccxt.base.errors import OnMaintenance
26
27
  from ccxt.base.errors import InvalidNonce
27
- from ccxt.base.errors import AuthenticationError
28
28
  from ccxt.base.decimal_to_precision import TRUNCATE
29
29
  from ccxt.base.decimal_to_precision import TICK_SIZE
30
30
  from ccxt.base.precise import Precise
ccxt/bitmex.py CHANGED
@@ -9,6 +9,7 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currencies, Currency, Int, Leverage, Leverages, Market, MarketType, 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
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import PermissionDenied
13
14
  from ccxt.base.errors import ArgumentsRequired
14
15
  from ccxt.base.errors import BadRequest
@@ -18,7 +19,6 @@ from ccxt.base.errors import InvalidOrder
18
19
  from ccxt.base.errors import OrderNotFound
19
20
  from ccxt.base.errors import DDoSProtection
20
21
  from ccxt.base.errors import ExchangeNotAvailable
21
- from ccxt.base.errors import AuthenticationError
22
22
  from ccxt.base.decimal_to_precision import TICK_SIZE
23
23
  from ccxt.base.precise import Precise
24
24
 
ccxt/bitopro.py CHANGED
@@ -10,11 +10,11 @@ import math
10
10
  from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
+ from ccxt.base.errors import AuthenticationError
13
14
  from ccxt.base.errors import ArgumentsRequired
14
15
  from ccxt.base.errors import BadRequest
15
16
  from ccxt.base.errors import InsufficientFunds
16
17
  from ccxt.base.errors import InvalidOrder
17
- from ccxt.base.errors import AuthenticationError
18
18
  from ccxt.base.decimal_to_precision import TICK_SIZE
19
19
  from ccxt.base.precise import Precise
20
20
 
ccxt/bitrue.py CHANGED
@@ -10,6 +10,7 @@ import json
10
10
  from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
+ from ccxt.base.errors import AuthenticationError
13
14
  from ccxt.base.errors import PermissionDenied
14
15
  from ccxt.base.errors import AccountSuspended
15
16
  from ccxt.base.errors import ArgumentsRequired
@@ -25,7 +26,6 @@ from ccxt.base.errors import RateLimitExceeded
25
26
  from ccxt.base.errors import ExchangeNotAvailable
26
27
  from ccxt.base.errors import OnMaintenance
27
28
  from ccxt.base.errors import InvalidNonce
28
- from ccxt.base.errors import AuthenticationError
29
29
  from ccxt.base.decimal_to_precision import TRUNCATE
30
30
  from ccxt.base.decimal_to_precision import TICK_SIZE
31
31
  from ccxt.base.precise import Precise
ccxt/bitso.py CHANGED
@@ -9,12 +9,12 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Trade, TradingFees, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import ArgumentsRequired
13
14
  from ccxt.base.errors import BadRequest
14
15
  from ccxt.base.errors import OrderNotFound
15
16
  from ccxt.base.errors import NotSupported
16
17
  from ccxt.base.errors import InvalidNonce
17
- from ccxt.base.errors import AuthenticationError
18
18
  from ccxt.base.decimal_to_precision import TICK_SIZE
19
19
  from ccxt.base.precise import Precise
20
20
 
ccxt/bitstamp.py CHANGED
@@ -9,6 +9,7 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import PermissionDenied
13
14
  from ccxt.base.errors import BadRequest
14
15
  from ccxt.base.errors import InsufficientFunds
@@ -19,7 +20,6 @@ from ccxt.base.errors import NotSupported
19
20
  from ccxt.base.errors import ExchangeNotAvailable
20
21
  from ccxt.base.errors import OnMaintenance
21
22
  from ccxt.base.errors import InvalidNonce
22
- from ccxt.base.errors import AuthenticationError
23
23
  from ccxt.base.decimal_to_precision import TICK_SIZE
24
24
  from ccxt.base.precise import Precise
25
25
 
@@ -370,6 +370,12 @@ class bitstamp(Exchange, ImplicitAPI):
370
370
  'blur_address/': 1,
371
371
  'vext_withdrawal/': 1,
372
372
  'vext_address/': 1,
373
+ 'cspr_withdrawal/': 1,
374
+ 'cspr_address/': 1,
375
+ 'vchf_withdrawal/': 1,
376
+ 'vchf_address/': 1,
377
+ 'veur_withdrawal/': 1,
378
+ 'veur_address/': 1,
373
379
  },
374
380
  },
375
381
  },
ccxt/bitteam.py CHANGED
@@ -8,13 +8,13 @@ from ccxt.abstract.bitteam import ImplicitAPI
8
8
  from ccxt.base.types import Balances, Currencies, Currency, 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
+ from ccxt.base.errors import AuthenticationError
11
12
  from ccxt.base.errors import ArgumentsRequired
12
13
  from ccxt.base.errors import BadRequest
13
14
  from ccxt.base.errors import BadSymbol
14
15
  from ccxt.base.errors import InsufficientFunds
15
16
  from ccxt.base.errors import OrderNotFound
16
17
  from ccxt.base.errors import ExchangeNotAvailable
17
- from ccxt.base.errors import AuthenticationError
18
18
  from ccxt.base.decimal_to_precision import DECIMAL_PLACES
19
19
  from ccxt.base.precise import Precise
20
20
 
ccxt/bitvavo.py CHANGED
@@ -9,6 +9,7 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import PermissionDenied
13
14
  from ccxt.base.errors import AccountSuspended
14
15
  from ccxt.base.errors import ArgumentsRequired
@@ -21,7 +22,6 @@ from ccxt.base.errors import OrderNotFound
21
22
  from ccxt.base.errors import RateLimitExceeded
22
23
  from ccxt.base.errors import ExchangeNotAvailable
23
24
  from ccxt.base.errors import OnMaintenance
24
- from ccxt.base.errors import AuthenticationError
25
25
  from ccxt.base.decimal_to_precision import ROUND
26
26
  from ccxt.base.decimal_to_precision import TRUNCATE
27
27
  from ccxt.base.decimal_to_precision import DECIMAL_PLACES
ccxt/blockchaincom.py CHANGED
@@ -8,10 +8,10 @@ from ccxt.abstract.blockchaincom import ImplicitAPI
8
8
  from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
+ from ccxt.base.errors import AuthenticationError
11
12
  from ccxt.base.errors import ArgumentsRequired
12
13
  from ccxt.base.errors import InsufficientFunds
13
14
  from ccxt.base.errors import OrderNotFound
14
- from ccxt.base.errors import AuthenticationError
15
15
  from ccxt.base.decimal_to_precision import TICK_SIZE
16
16
  from ccxt.base.precise import Precise
17
17
 
ccxt/blofin.py CHANGED
@@ -9,13 +9,13 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currency, Int, Leverage, Leverages, MarginMode, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import ArgumentsRequired
13
14
  from ccxt.base.errors import BadRequest
14
15
  from ccxt.base.errors import InsufficientFunds
15
16
  from ccxt.base.errors import InvalidOrder
16
17
  from ccxt.base.errors import RateLimitExceeded
17
18
  from ccxt.base.errors import ExchangeNotAvailable
18
- from ccxt.base.errors import AuthenticationError
19
19
  from ccxt.base.decimal_to_precision import TICK_SIZE
20
20
  from ccxt.base.precise import Precise
21
21
 
ccxt/btcalpha.py CHANGED
@@ -9,10 +9,10 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currency, IndexType, 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
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import InsufficientFunds
13
14
  from ccxt.base.errors import InvalidOrder
14
15
  from ccxt.base.errors import DDoSProtection
15
- from ccxt.base.errors import AuthenticationError
16
16
  from ccxt.base.decimal_to_precision import TICK_SIZE
17
17
  from ccxt.base.precise import Precise
18
18
 
ccxt/btcbox.py CHANGED
@@ -10,13 +10,13 @@ import json
10
10
  from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
+ from ccxt.base.errors import AuthenticationError
13
14
  from ccxt.base.errors import PermissionDenied
14
15
  from ccxt.base.errors import InsufficientFunds
15
16
  from ccxt.base.errors import InvalidOrder
16
17
  from ccxt.base.errors import OrderNotFound
17
18
  from ccxt.base.errors import DDoSProtection
18
19
  from ccxt.base.errors import InvalidNonce
19
- from ccxt.base.errors import AuthenticationError
20
20
  from ccxt.base.decimal_to_precision import TICK_SIZE
21
21
  from ccxt.base.precise import Precise
22
22
 
ccxt/bybit.py CHANGED
@@ -9,9 +9,11 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currencies, Currency, Greeks, Int, Leverage, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import PermissionDenied
13
14
  from ccxt.base.errors import ArgumentsRequired
14
15
  from ccxt.base.errors import BadRequest
16
+ from ccxt.base.errors import NoChange
15
17
  from ccxt.base.errors import MarginModeAlreadySet
16
18
  from ccxt.base.errors import InsufficientFunds
17
19
  from ccxt.base.errors import InvalidOrder
@@ -20,8 +22,6 @@ from ccxt.base.errors import NotSupported
20
22
  from ccxt.base.errors import RateLimitExceeded
21
23
  from ccxt.base.errors import InvalidNonce
22
24
  from ccxt.base.errors import RequestTimeout
23
- from ccxt.base.errors import AuthenticationError
24
- from ccxt.base.errors import NoChange
25
25
  from ccxt.base.decimal_to_precision import TICK_SIZE
26
26
  from ccxt.base.precise import Precise
27
27
 
ccxt/cex.py CHANGED
@@ -10,6 +10,7 @@ import json
10
10
  from ccxt.base.types import Balances, Currencies, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees
11
11
  from typing import List
12
12
  from ccxt.base.errors import ExchangeError
13
+ from ccxt.base.errors import AuthenticationError
13
14
  from ccxt.base.errors import ArgumentsRequired
14
15
  from ccxt.base.errors import BadSymbol
15
16
  from ccxt.base.errors import NullResponse
@@ -19,7 +20,6 @@ from ccxt.base.errors import OrderNotFound
19
20
  from ccxt.base.errors import DDoSProtection
20
21
  from ccxt.base.errors import RateLimitExceeded
21
22
  from ccxt.base.errors import InvalidNonce
22
- from ccxt.base.errors import AuthenticationError
23
23
  from ccxt.base.decimal_to_precision import TICK_SIZE
24
24
  from ccxt.base.precise import Precise
25
25
 
ccxt/coinbase.py CHANGED
@@ -9,6 +9,7 @@ import hashlib
9
9
  from ccxt.base.types import Account, Balances, Currencies, Currency, 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
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import ArgumentsRequired
13
14
  from ccxt.base.errors import BadRequest
14
15
  from ccxt.base.errors import InvalidOrder
@@ -16,7 +17,6 @@ from ccxt.base.errors import OrderNotFound
16
17
  from ccxt.base.errors import NotSupported
17
18
  from ccxt.base.errors import RateLimitExceeded
18
19
  from ccxt.base.errors import InvalidNonce
19
- from ccxt.base.errors import AuthenticationError
20
20
  from ccxt.base.decimal_to_precision import TICK_SIZE
21
21
  from ccxt.base.precise import Precise
22
22
 
@@ -10,12 +10,12 @@ from ccxt.base.types import Balances, Currencies, Currency, Int, Market, Order,
10
10
  from typing import List
11
11
  from typing import Any
12
12
  from ccxt.base.errors import ExchangeError
13
+ from ccxt.base.errors import AuthenticationError
13
14
  from ccxt.base.errors import PermissionDenied
14
15
  from ccxt.base.errors import ArgumentsRequired
15
16
  from ccxt.base.errors import BadRequest
16
17
  from ccxt.base.errors import InvalidOrder
17
18
  from ccxt.base.errors import DuplicateOrderId
18
- from ccxt.base.errors import AuthenticationError
19
19
  from ccxt.base.decimal_to_precision import TICK_SIZE
20
20
  from ccxt.base.precise import Precise
21
21
 
ccxt/coinbasepro.py CHANGED
@@ -9,6 +9,7 @@ import hashlib
9
9
  from ccxt.base.types import Account, Balances, Currencies, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
+ from ccxt.base.errors import AuthenticationError
12
13
  from ccxt.base.errors import PermissionDenied
13
14
  from ccxt.base.errors import ArgumentsRequired
14
15
  from ccxt.base.errors import InsufficientFunds
@@ -17,7 +18,6 @@ from ccxt.base.errors import InvalidOrder
17
18
  from ccxt.base.errors import OrderNotFound
18
19
  from ccxt.base.errors import RateLimitExceeded
19
20
  from ccxt.base.errors import OnMaintenance
20
- from ccxt.base.errors import AuthenticationError
21
21
  from ccxt.base.decimal_to_precision import TICK_SIZE
22
22
  from ccxt.base.precise import Precise
23
23
 
ccxt/coincheck.py CHANGED
@@ -9,8 +9,8 @@ import hashlib
9
9
  from ccxt.base.types import Balances, Currency, 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
- from ccxt.base.errors import BadSymbol
13
12
  from ccxt.base.errors import AuthenticationError
13
+ from ccxt.base.errors import BadSymbol
14
14
  from ccxt.base.decimal_to_precision import TICK_SIZE
15
15
 
16
16
 
ccxt/coinex.py CHANGED
@@ -8,6 +8,7 @@ from ccxt.abstract.coinex import ImplicitAPI
8
8
  from ccxt.base.types import Balances, Currencies, Currency, Int, Leverage, Leverages, MarginModification, Market, Num, Order, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
9
9
  from typing import List
10
10
  from ccxt.base.errors import ExchangeError
11
+ from ccxt.base.errors import AuthenticationError
11
12
  from ccxt.base.errors import PermissionDenied
12
13
  from ccxt.base.errors import ArgumentsRequired
13
14
  from ccxt.base.errors import BadRequest
@@ -19,7 +20,6 @@ from ccxt.base.errors import NotSupported
19
20
  from ccxt.base.errors import RateLimitExceeded
20
21
  from ccxt.base.errors import ExchangeNotAvailable
21
22
  from ccxt.base.errors import RequestTimeout
22
- from ccxt.base.errors import AuthenticationError
23
23
  from ccxt.base.decimal_to_precision import TICK_SIZE
24
24
  from ccxt.base.precise import Precise
25
25
 
@@ -1075,8 +1075,8 @@ class coinex(Exchange, ImplicitAPI):
1075
1075
  def fetch_order_book(self, symbol: str, limit: Int = 20, params={}):
1076
1076
  """
1077
1077
  fetches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
1078
- :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot001_market004_market_depth
1079
- :see: https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http010_market_depth
1078
+ :see: https://docs.coinex.com/api/v2/spot/market/http/list-market-depth
1079
+ :see: https://docs.coinex.com/api/v2/futures/market/http/list-market-depth
1080
1080
  :param str symbol: unified symbol of the market to fetch the order book for
1081
1081
  :param int [limit]: the maximum amount of order book entries to return
1082
1082
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -1087,63 +1087,69 @@ class coinex(Exchange, ImplicitAPI):
1087
1087
  if limit is None:
1088
1088
  limit = 20 # default
1089
1089
  request = {
1090
- 'market': self.market_id(symbol),
1091
- 'merge': '0',
1092
- 'limit': str(limit),
1090
+ 'market': market['id'],
1091
+ 'limit': limit,
1092
+ 'interval': '0',
1093
1093
  }
1094
1094
  response = None
1095
1095
  if market['swap']:
1096
- response = self.v1PerpetualPublicGetMarketDepth(self.extend(request, params))
1096
+ response = self.v2PublicGetFuturesDepth(self.extend(request, params))
1097
+ #
1098
+ # {
1099
+ # "code": 0,
1100
+ # "data": {
1101
+ # "depth": {
1102
+ # "asks": [
1103
+ # ["70851.94", "0.2119"],
1104
+ # ["70851.95", "0.0004"],
1105
+ # ["70851.96", "0.0004"]
1106
+ # ],
1107
+ # "bids": [
1108
+ # ["70851.93", "1.0314"],
1109
+ # ["70850.93", "0.0021"],
1110
+ # ["70850.42", "0.0306"]
1111
+ # ],
1112
+ # "checksum": 2956436260,
1113
+ # "last": "70851.94",
1114
+ # "updated_at": 1712824003252
1115
+ # },
1116
+ # "is_full": True,
1117
+ # "market": "BTCUSDT"
1118
+ # },
1119
+ # "message": "OK"
1120
+ # }
1121
+ #
1097
1122
  else:
1098
- response = self.v1PublicGetMarketDepth(self.extend(request, params))
1099
- #
1100
- # Spot
1101
- #
1102
- # {
1103
- # "code": 0,
1104
- # "data": {
1105
- # "asks": [
1106
- # ["41056.33", "0.31727613"],
1107
- # ["41056.34", "1.05657294"],
1108
- # ["41056.35", "0.02346648"]
1109
- # ],
1110
- # "bids": [
1111
- # ["41050.61", "0.40618608"],
1112
- # ["41046.98", "0.13800000"],
1113
- # ["41046.56", "0.22579234"]
1114
- # ],
1115
- # "last": "41050.61",
1116
- # "time": 1650573220346
1117
- # },
1118
- # "message": "OK"
1119
- # }
1120
- #
1121
- # Swap
1122
- #
1123
- # {
1124
- # "code": 0,
1125
- # "data": {
1126
- # "asks": [
1127
- # ["40620.90", "0.0384"],
1128
- # ["40625.50", "0.0219"],
1129
- # ["40625.90", "0.3506"]
1130
- # ],
1131
- # "bids": [
1132
- # ["40620.89", "19.6861"],
1133
- # ["40620.80", "0.0012"],
1134
- # ["40619.87", "0.0365"]
1135
- # ],
1136
- # "last": "40620.89",
1137
- # "time": 1650587672406,
1138
- # "sign_price": "40619.32",
1139
- # "index_price": "40609.93"
1140
- # },
1141
- # "message": "OK"
1142
- # }
1143
- #
1144
- result = self.safe_value(response, 'data', {})
1145
- timestamp = self.safe_integer(result, 'time')
1146
- return self.parse_order_book(result, symbol, timestamp)
1123
+ response = self.v2PublicGetSpotDepth(self.extend(request, params))
1124
+ #
1125
+ # {
1126
+ # "code": 0,
1127
+ # "data": {
1128
+ # "depth": {
1129
+ # "asks": [
1130
+ # ["70875.31", "0.28670282"],
1131
+ # ["70875.32", "0.31008114"],
1132
+ # ["70875.42", "0.05876653"]
1133
+ # ],
1134
+ # "bids": [
1135
+ # ["70855.3", "0.00632222"],
1136
+ # ["70855.29", "0.36216834"],
1137
+ # ["70855.17", "0.10166802"]
1138
+ # ],
1139
+ # "checksum": 2313816665,
1140
+ # "last": "70857.19",
1141
+ # "updated_at": 1712823790987
1142
+ # },
1143
+ # "is_full": True,
1144
+ # "market": "BTCUSDT"
1145
+ # },
1146
+ # "message": "OK"
1147
+ # }
1148
+ #
1149
+ data = self.safe_dict(response, 'data', {})
1150
+ depth = self.safe_dict(data, 'depth', {})
1151
+ timestamp = self.safe_integer(depth, 'updated_at')
1152
+ return self.parse_order_book(depth, symbol, timestamp)
1147
1153
 
1148
1154
  def parse_trade(self, trade, market: Market = None) -> Trade:
1149
1155
  #
ccxt/coinlist.py CHANGED
@@ -10,6 +10,7 @@ import math
10
10
  from ccxt.base.types import Account, Balances, Currencies, Currency, 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
+ from ccxt.base.errors import AuthenticationError
13
14
  from ccxt.base.errors import PermissionDenied
14
15
  from ccxt.base.errors import ArgumentsRequired
15
16
  from ccxt.base.errors import BadRequest
@@ -20,7 +21,6 @@ from ccxt.base.errors import InvalidOrder
20
21
  from ccxt.base.errors import OrderNotFound
21
22
  from ccxt.base.errors import NotSupported
22
23
  from ccxt.base.errors import OnMaintenance
23
- from ccxt.base.errors import AuthenticationError
24
24
  from ccxt.base.decimal_to_precision import TICK_SIZE
25
25
  from ccxt.base.precise import Precise
26
26