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.
- ccxt/__init__.py +2 -2
- ccxt/abstract/binance.py +1 -0
- ccxt/abstract/binancecoinm.py +1 -0
- ccxt/abstract/binanceus.py +1 -0
- ccxt/abstract/binanceusdm.py +1 -0
- ccxt/abstract/bitstamp.py +6 -0
- ccxt/ace.py +1 -1
- ccxt/ascendex.py +1 -1
- ccxt/async_support/__init__.py +2 -2
- ccxt/async_support/ace.py +1 -1
- ccxt/async_support/ascendex.py +1 -1
- ccxt/async_support/base/exchange.py +7 -1
- ccxt/async_support/bigone.py +1 -1
- ccxt/async_support/binance.py +63 -5
- ccxt/async_support/bingx.py +1 -1
- ccxt/async_support/bit2c.py +1 -1
- ccxt/async_support/bitbank.py +1 -1
- ccxt/async_support/bitfinex.py +1 -1
- ccxt/async_support/bitfinex2.py +1 -1
- ccxt/async_support/bitget.py +136 -2
- ccxt/async_support/bithumb.py +1 -1
- ccxt/async_support/bitmart.py +1 -1
- ccxt/async_support/bitmex.py +1 -1
- ccxt/async_support/bitopro.py +1 -1
- ccxt/async_support/bitrue.py +1 -1
- ccxt/async_support/bitso.py +1 -1
- ccxt/async_support/bitstamp.py +7 -1
- ccxt/async_support/bitteam.py +1 -1
- ccxt/async_support/bitvavo.py +1 -1
- ccxt/async_support/blockchaincom.py +1 -1
- ccxt/async_support/blofin.py +1 -1
- ccxt/async_support/btcalpha.py +1 -1
- ccxt/async_support/btcbox.py +1 -1
- ccxt/async_support/bybit.py +2 -2
- ccxt/async_support/cex.py +1 -1
- ccxt/async_support/coinbase.py +1 -1
- ccxt/async_support/coinbaseinternational.py +1 -1
- ccxt/async_support/coinbasepro.py +1 -1
- ccxt/async_support/coincheck.py +1 -1
- ccxt/async_support/coinex.py +62 -56
- ccxt/async_support/coinlist.py +1 -1
- ccxt/async_support/coinmate.py +1 -1
- ccxt/async_support/coinsph.py +1 -1
- ccxt/async_support/cryptocom.py +1 -1
- ccxt/async_support/currencycom.py +1 -1
- ccxt/async_support/delta.py +1 -1
- ccxt/async_support/deribit.py +1 -1
- ccxt/async_support/digifinex.py +1 -1
- ccxt/async_support/exmo.py +1 -1
- ccxt/async_support/gate.py +1 -1
- ccxt/async_support/gemini.py +3 -2
- ccxt/async_support/hitbtc.py +1 -1
- ccxt/async_support/hollaex.py +1 -1
- ccxt/async_support/htx.py +117 -116
- ccxt/async_support/huobijp.py +1 -1
- ccxt/async_support/idex.py +1 -1
- ccxt/async_support/indodax.py +1 -1
- ccxt/async_support/kraken.py +1 -1
- ccxt/async_support/krakenfutures.py +2 -2
- ccxt/async_support/kucoin.py +1 -1
- ccxt/async_support/kucoinfutures.py +1 -1
- ccxt/async_support/latoken.py +1 -1
- ccxt/async_support/lbank.py +1 -1
- ccxt/async_support/mexc.py +1 -1
- ccxt/async_support/ndax.py +1 -1
- ccxt/async_support/novadax.py +1 -1
- ccxt/async_support/oceanex.py +1 -1
- ccxt/async_support/okcoin.py +1 -1
- ccxt/async_support/okx.py +191 -43
- ccxt/async_support/onetrading.py +1 -1
- ccxt/async_support/p2b.py +1 -1
- ccxt/async_support/phemex.py +1 -1
- ccxt/async_support/poloniex.py +1 -1
- ccxt/async_support/poloniexfutures.py +1 -1
- ccxt/async_support/probit.py +1 -1
- ccxt/async_support/timex.py +1 -1
- ccxt/async_support/tokocrypto.py +1 -1
- ccxt/async_support/tradeogre.py +1 -1
- ccxt/async_support/upbit.py +2 -2
- ccxt/async_support/wavesexchange.py +1 -1
- ccxt/async_support/whitebit.py +1 -1
- ccxt/async_support/woo.py +136 -2
- ccxt/async_support/yobit.py +1 -1
- ccxt/async_support/zonda.py +1 -1
- ccxt/base/errors.py +7 -7
- ccxt/base/exchange.py +18 -1
- ccxt/base/types.py +13 -0
- ccxt/bigone.py +1 -1
- ccxt/binance.py +63 -5
- ccxt/bingx.py +1 -1
- ccxt/bit2c.py +1 -1
- ccxt/bitbank.py +1 -1
- ccxt/bitfinex.py +1 -1
- ccxt/bitfinex2.py +1 -1
- ccxt/bitget.py +136 -2
- ccxt/bithumb.py +1 -1
- ccxt/bitmart.py +1 -1
- ccxt/bitmex.py +1 -1
- ccxt/bitopro.py +1 -1
- ccxt/bitrue.py +1 -1
- ccxt/bitso.py +1 -1
- ccxt/bitstamp.py +7 -1
- ccxt/bitteam.py +1 -1
- ccxt/bitvavo.py +1 -1
- ccxt/blockchaincom.py +1 -1
- ccxt/blofin.py +1 -1
- ccxt/btcalpha.py +1 -1
- ccxt/btcbox.py +1 -1
- ccxt/bybit.py +2 -2
- ccxt/cex.py +1 -1
- ccxt/coinbase.py +1 -1
- ccxt/coinbaseinternational.py +1 -1
- ccxt/coinbasepro.py +1 -1
- ccxt/coincheck.py +1 -1
- ccxt/coinex.py +62 -56
- ccxt/coinlist.py +1 -1
- ccxt/coinmate.py +1 -1
- ccxt/coinsph.py +1 -1
- ccxt/cryptocom.py +1 -1
- ccxt/currencycom.py +1 -1
- ccxt/delta.py +1 -1
- ccxt/deribit.py +1 -1
- ccxt/digifinex.py +1 -1
- ccxt/exmo.py +1 -1
- ccxt/gate.py +1 -1
- ccxt/gemini.py +3 -2
- ccxt/hitbtc.py +1 -1
- ccxt/hollaex.py +1 -1
- ccxt/htx.py +117 -116
- ccxt/huobijp.py +1 -1
- ccxt/idex.py +1 -1
- ccxt/indodax.py +1 -1
- ccxt/kraken.py +1 -1
- ccxt/krakenfutures.py +2 -2
- ccxt/kucoin.py +1 -1
- ccxt/kucoinfutures.py +1 -1
- ccxt/latoken.py +1 -1
- ccxt/lbank.py +1 -1
- ccxt/mexc.py +1 -1
- ccxt/ndax.py +1 -1
- ccxt/novadax.py +1 -1
- ccxt/oceanex.py +1 -1
- ccxt/okcoin.py +1 -1
- ccxt/okx.py +191 -43
- ccxt/onetrading.py +1 -1
- ccxt/p2b.py +1 -1
- ccxt/phemex.py +1 -1
- ccxt/poloniex.py +1 -1
- ccxt/poloniexfutures.py +1 -1
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/ascendex.py +1 -1
- ccxt/pro/bitfinex2.py +1 -1
- ccxt/pro/bitget.py +1 -1
- ccxt/pro/bitmart.py +1 -1
- ccxt/pro/bitmex.py +1 -1
- ccxt/pro/bitstamp.py +1 -1
- ccxt/pro/bitvavo.py +1 -1
- ccxt/pro/blockchaincom.py +1 -1
- ccxt/pro/bybit.py +1 -1
- ccxt/pro/coinbase.py +12 -0
- ccxt/pro/coinbaseinternational.py +1 -1
- ccxt/pro/coinbasepro.py +1 -1
- ccxt/pro/coinex.py +1 -1
- ccxt/pro/cryptocom.py +1 -1
- ccxt/pro/gate.py +1 -1
- ccxt/pro/hitbtc.py +1 -1
- ccxt/pro/hollaex.py +1 -1
- ccxt/pro/htx.py +1 -1
- ccxt/pro/kraken.py +97 -19
- ccxt/pro/krakenfutures.py +105 -40
- ccxt/pro/kucoin.py +25 -16
- ccxt/pro/okcoin.py +1 -1
- ccxt/pro/okx.py +1 -1
- ccxt/pro/poloniex.py +1 -1
- ccxt/pro/poloniexfutures.py +1 -1
- ccxt/pro/whitebit.py +1 -1
- ccxt/probit.py +1 -1
- ccxt/timex.py +1 -1
- ccxt/tokocrypto.py +1 -1
- ccxt/tradeogre.py +1 -1
- ccxt/upbit.py +2 -2
- ccxt/wavesexchange.py +1 -1
- ccxt/whitebit.py +1 -1
- ccxt/woo.py +136 -2
- ccxt/yobit.py +1 -1
- ccxt/zonda.py +1 -1
- {ccxt-4.2.93.dist-info → ccxt-4.2.95.dist-info}/METADATA +4 -4
- {ccxt-4.2.93.dist-info → ccxt-4.2.95.dist-info}/RECORD +190 -190
- {ccxt-4.2.93.dist-info → ccxt-4.2.95.dist-info}/WHEEL +0 -0
- {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
|
|
ccxt/coinbaseinternational.py
CHANGED
@@ -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://
|
1079
|
-
:see: https://
|
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':
|
1091
|
-
'
|
1092
|
-
'
|
1090
|
+
'market': market['id'],
|
1091
|
+
'limit': limit,
|
1092
|
+
'interval': '0',
|
1093
1093
|
}
|
1094
1094
|
response = None
|
1095
1095
|
if market['swap']:
|
1096
|
-
response = self.
|
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.
|
1099
|
-
|
1100
|
-
|
1101
|
-
|
1102
|
-
|
1103
|
-
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1124
|
-
|
1125
|
-
|
1126
|
-
|
1127
|
-
|
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
|
|