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/__init__.py
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
# ----------------------------------------------------------------------------
|
24
24
|
|
25
|
-
__version__ = '4.2.
|
25
|
+
__version__ = '4.2.95'
|
26
26
|
|
27
27
|
# ----------------------------------------------------------------------------
|
28
28
|
|
@@ -68,6 +68,7 @@ from ccxt.base.errors import DuplicateOrderId # noqa: F4
|
|
68
68
|
from ccxt.base.errors import ContractUnavailable # noqa: F401
|
69
69
|
from ccxt.base.errors import NotSupported # noqa: F401
|
70
70
|
from ccxt.base.errors import ProxyError # noqa: F401
|
71
|
+
from ccxt.base.errors import ExchangeClosedByUser # noqa: F401
|
71
72
|
from ccxt.base.errors import OperationFailed # noqa: F401
|
72
73
|
from ccxt.base.errors import NetworkError # noqa: F401
|
73
74
|
from ccxt.base.errors import DDoSProtection # noqa: F401
|
@@ -76,7 +77,6 @@ from ccxt.base.errors import ExchangeNotAvailable # noqa: F4
|
|
76
77
|
from ccxt.base.errors import OnMaintenance # noqa: F401
|
77
78
|
from ccxt.base.errors import InvalidNonce # noqa: F401
|
78
79
|
from ccxt.base.errors import RequestTimeout # noqa: F401
|
79
|
-
from ccxt.base.errors import ExchangeClosedByUser # noqa: F401
|
80
80
|
from ccxt.base.errors import error_hierarchy # noqa: F401
|
81
81
|
|
82
82
|
from ccxt.ace import ace # noqa: F401
|
ccxt/abstract/binance.py
CHANGED
@@ -608,6 +608,7 @@ class ImplicitAPI:
|
|
608
608
|
private_get_myallocations = privateGetMyAllocations = Entry('myAllocations', 'private', 'GET', {'cost': 4})
|
609
609
|
private_get_account_commission = privateGetAccountCommission = Entry('account/commission', 'private', 'GET', {'cost': 4})
|
610
610
|
private_post_order_oco = privatePostOrderOco = Entry('order/oco', 'private', 'POST', {'cost': 0.2})
|
611
|
+
private_post_orderlist_oco = privatePostOrderListOco = Entry('orderList/oco', 'private', 'POST', {'cost': 0.2})
|
611
612
|
private_post_sor_order = privatePostSorOrder = Entry('sor/order', 'private', 'POST', {'cost': 0.2})
|
612
613
|
private_post_sor_order_test = privatePostSorOrderTest = Entry('sor/order/test', 'private', 'POST', {'cost': 0.2})
|
613
614
|
private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.2})
|
ccxt/abstract/binancecoinm.py
CHANGED
@@ -608,6 +608,7 @@ class ImplicitAPI:
|
|
608
608
|
private_get_myallocations = privateGetMyAllocations = Entry('myAllocations', 'private', 'GET', {'cost': 4})
|
609
609
|
private_get_account_commission = privateGetAccountCommission = Entry('account/commission', 'private', 'GET', {'cost': 4})
|
610
610
|
private_post_order_oco = privatePostOrderOco = Entry('order/oco', 'private', 'POST', {'cost': 0.2})
|
611
|
+
private_post_orderlist_oco = privatePostOrderListOco = Entry('orderList/oco', 'private', 'POST', {'cost': 0.2})
|
611
612
|
private_post_sor_order = privatePostSorOrder = Entry('sor/order', 'private', 'POST', {'cost': 0.2})
|
612
613
|
private_post_sor_order_test = privatePostSorOrderTest = Entry('sor/order/test', 'private', 'POST', {'cost': 0.2})
|
613
614
|
private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.2})
|
ccxt/abstract/binanceus.py
CHANGED
@@ -660,6 +660,7 @@ class ImplicitAPI:
|
|
660
660
|
private_get_myallocations = privateGetMyAllocations = Entry('myAllocations', 'private', 'GET', {'cost': 4})
|
661
661
|
private_get_account_commission = privateGetAccountCommission = Entry('account/commission', 'private', 'GET', {'cost': 4})
|
662
662
|
private_post_order_oco = privatePostOrderOco = Entry('order/oco', 'private', 'POST', {'cost': 0.2})
|
663
|
+
private_post_orderlist_oco = privatePostOrderListOco = Entry('orderList/oco', 'private', 'POST', {'cost': 0.2})
|
663
664
|
private_post_sor_order = privatePostSorOrder = Entry('sor/order', 'private', 'POST', {'cost': 0.2})
|
664
665
|
private_post_sor_order_test = privatePostSorOrderTest = Entry('sor/order/test', 'private', 'POST', {'cost': 0.2})
|
665
666
|
private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.2})
|
ccxt/abstract/binanceusdm.py
CHANGED
@@ -608,6 +608,7 @@ class ImplicitAPI:
|
|
608
608
|
private_get_myallocations = privateGetMyAllocations = Entry('myAllocations', 'private', 'GET', {'cost': 4})
|
609
609
|
private_get_account_commission = privateGetAccountCommission = Entry('account/commission', 'private', 'GET', {'cost': 4})
|
610
610
|
private_post_order_oco = privatePostOrderOco = Entry('order/oco', 'private', 'POST', {'cost': 0.2})
|
611
|
+
private_post_orderlist_oco = privatePostOrderListOco = Entry('orderList/oco', 'private', 'POST', {'cost': 0.2})
|
611
612
|
private_post_sor_order = privatePostSorOrder = Entry('sor/order', 'private', 'POST', {'cost': 0.2})
|
612
613
|
private_post_sor_order_test = privatePostSorOrderTest = Entry('sor/order/test', 'private', 'POST', {'cost': 0.2})
|
613
614
|
private_post_order = privatePostOrder = Entry('order', 'private', 'POST', {'cost': 0.2})
|
ccxt/abstract/bitstamp.py
CHANGED
@@ -234,3 +234,9 @@ class ImplicitAPI:
|
|
234
234
|
private_post_blur_address = privatePostBlurAddress = Entry('blur_address/', 'private', 'POST', {'cost': 1})
|
235
235
|
private_post_vext_withdrawal = privatePostVextWithdrawal = Entry('vext_withdrawal/', 'private', 'POST', {'cost': 1})
|
236
236
|
private_post_vext_address = privatePostVextAddress = Entry('vext_address/', 'private', 'POST', {'cost': 1})
|
237
|
+
private_post_cspr_withdrawal = privatePostCsprWithdrawal = Entry('cspr_withdrawal/', 'private', 'POST', {'cost': 1})
|
238
|
+
private_post_cspr_address = privatePostCsprAddress = Entry('cspr_address/', 'private', 'POST', {'cost': 1})
|
239
|
+
private_post_vchf_withdrawal = privatePostVchfWithdrawal = Entry('vchf_withdrawal/', 'private', 'POST', {'cost': 1})
|
240
|
+
private_post_vchf_address = privatePostVchfAddress = Entry('vchf_address/', 'private', 'POST', {'cost': 1})
|
241
|
+
private_post_veur_withdrawal = privatePostVeurWithdrawal = Entry('veur_withdrawal/', 'private', 'POST', {'cost': 1})
|
242
|
+
private_post_veur_address = privatePostVeurAddress = Entry('veur_address/', 'private', 'POST', {'cost': 1})
|
ccxt/ace.py
CHANGED
@@ -7,11 +7,11 @@ from ccxt.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.ace import ImplicitAPI
|
8
8
|
from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from typing import List
|
10
|
+
from ccxt.base.errors import AuthenticationError
|
10
11
|
from ccxt.base.errors import ArgumentsRequired
|
11
12
|
from ccxt.base.errors import BadRequest
|
12
13
|
from ccxt.base.errors import InsufficientFunds
|
13
14
|
from ccxt.base.errors import InvalidOrder
|
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/ascendex.py
CHANGED
@@ -9,6 +9,7 @@ import hashlib
|
|
9
9
|
from ccxt.base.types import Account, Balances, Currencies, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
|
+
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,7 +17,6 @@ from ccxt.base.errors import BadSymbol
|
|
16
17
|
from ccxt.base.errors import InsufficientFunds
|
17
18
|
from ccxt.base.errors import InvalidOrder
|
18
19
|
from ccxt.base.errors import NotSupported
|
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/async_support/__init__.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.2.
|
7
|
+
__version__ = '4.2.95'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -47,6 +47,7 @@ from ccxt.base.errors import DuplicateOrderId # noqa: F4
|
|
47
47
|
from ccxt.base.errors import ContractUnavailable # noqa: F401
|
48
48
|
from ccxt.base.errors import NotSupported # noqa: F401
|
49
49
|
from ccxt.base.errors import ProxyError # noqa: F401
|
50
|
+
from ccxt.base.errors import ExchangeClosedByUser # noqa: F401
|
50
51
|
from ccxt.base.errors import OperationFailed # noqa: F401
|
51
52
|
from ccxt.base.errors import NetworkError # noqa: F401
|
52
53
|
from ccxt.base.errors import DDoSProtection # noqa: F401
|
@@ -55,7 +56,6 @@ from ccxt.base.errors import ExchangeNotAvailable # noqa: F4
|
|
55
56
|
from ccxt.base.errors import OnMaintenance # noqa: F401
|
56
57
|
from ccxt.base.errors import InvalidNonce # noqa: F401
|
57
58
|
from ccxt.base.errors import RequestTimeout # noqa: F401
|
58
|
-
from ccxt.base.errors import ExchangeClosedByUser # noqa: F401
|
59
59
|
from ccxt.base.errors import error_hierarchy # noqa: F401
|
60
60
|
|
61
61
|
|
ccxt/async_support/ace.py
CHANGED
@@ -7,11 +7,11 @@ from ccxt.async_support.base.exchange import Exchange
|
|
7
7
|
from ccxt.abstract.ace import ImplicitAPI
|
8
8
|
from ccxt.base.types import Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from typing import List
|
10
|
+
from ccxt.base.errors import AuthenticationError
|
10
11
|
from ccxt.base.errors import ArgumentsRequired
|
11
12
|
from ccxt.base.errors import BadRequest
|
12
13
|
from ccxt.base.errors import InsufficientFunds
|
13
14
|
from ccxt.base.errors import InvalidOrder
|
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/async_support/ascendex.py
CHANGED
@@ -9,6 +9,7 @@ import hashlib
|
|
9
9
|
from ccxt.base.types import Account, Balances, Currencies, Currency, Int, Leverage, Leverages, MarginMode, MarginModes, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
|
+
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,7 +17,6 @@ from ccxt.base.errors import BadSymbol
|
|
16
17
|
from ccxt.base.errors import InsufficientFunds
|
17
18
|
from ccxt.base.errors import InvalidOrder
|
18
19
|
from ccxt.base.errors import NotSupported
|
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
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.2.
|
5
|
+
__version__ = '4.2.95'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -1281,6 +1281,9 @@ class Exchange(BaseExchange):
|
|
1281
1281
|
async def fetch_option(self, symbol: str, params={}):
|
1282
1282
|
raise NotSupported(self.id + ' fetchOption() is not supported yet')
|
1283
1283
|
|
1284
|
+
async def fetch_convert_quote(self, fromCode: str, toCode: str, amount: Num = None, params={}):
|
1285
|
+
raise NotSupported(self.id + ' fetchConvertQuote() is not supported yet')
|
1286
|
+
|
1284
1287
|
async def fetch_deposits_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
|
1285
1288
|
"""
|
1286
1289
|
fetch history of deposits and withdrawals
|
@@ -1421,6 +1424,9 @@ class Exchange(BaseExchange):
|
|
1421
1424
|
fees = await self.fetch_trading_fees(params)
|
1422
1425
|
return self.safe_dict(fees, symbol)
|
1423
1426
|
|
1427
|
+
async def fetch_convert_currencies(self, params={}):
|
1428
|
+
raise NotSupported(self.id + ' fetchConvertCurrencies() is not supported yet')
|
1429
|
+
|
1424
1430
|
async def fetch_funding_rate(self, symbol: str, params={}):
|
1425
1431
|
if self.has['fetchFundingRates']:
|
1426
1432
|
await self.load_markets()
|
ccxt/async_support/bigone.py
CHANGED
@@ -9,6 +9,7 @@ import asyncio
|
|
9
9
|
from ccxt.base.types import Balances, Bool, Currencies, Currency, 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
|
+
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
|
@@ -17,7 +18,6 @@ from ccxt.base.errors import InsufficientFunds
|
|
17
18
|
from ccxt.base.errors import InvalidOrder
|
18
19
|
from ccxt.base.errors import NotSupported
|
19
20
|
from ccxt.base.errors import RateLimitExceeded
|
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/async_support/binance.py
CHANGED
@@ -11,11 +11,13 @@ import json
|
|
11
11
|
from ccxt.base.types import Balances, Currencies, Currency, Greeks, Int, Leverage, Leverages, MarginMode, MarginModes, MarginModification, Market, MarketInterface, Num, Option, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
|
+
from ccxt.base.errors import AuthenticationError
|
14
15
|
from ccxt.base.errors import PermissionDenied
|
15
16
|
from ccxt.base.errors import AccountSuspended
|
16
17
|
from ccxt.base.errors import ArgumentsRequired
|
17
18
|
from ccxt.base.errors import BadRequest
|
18
19
|
from ccxt.base.errors import BadSymbol
|
20
|
+
from ccxt.base.errors import OperationRejected
|
19
21
|
from ccxt.base.errors import MarginModeAlreadySet
|
20
22
|
from ccxt.base.errors import BadResponse
|
21
23
|
from ccxt.base.errors import InsufficientFunds
|
@@ -24,14 +26,12 @@ from ccxt.base.errors import OrderNotFound
|
|
24
26
|
from ccxt.base.errors import OrderImmediatelyFillable
|
25
27
|
from ccxt.base.errors import OrderNotFillable
|
26
28
|
from ccxt.base.errors import NotSupported
|
29
|
+
from ccxt.base.errors import OperationFailed
|
27
30
|
from ccxt.base.errors import DDoSProtection
|
28
31
|
from ccxt.base.errors import RateLimitExceeded
|
29
32
|
from ccxt.base.errors import OnMaintenance
|
30
33
|
from ccxt.base.errors import InvalidNonce
|
31
34
|
from ccxt.base.errors import RequestTimeout
|
32
|
-
from ccxt.base.errors import AuthenticationError
|
33
|
-
from ccxt.base.errors import OperationRejected
|
34
|
-
from ccxt.base.errors import OperationFailed
|
35
35
|
from ccxt.base.decimal_to_precision import TRUNCATE
|
36
36
|
from ccxt.base.decimal_to_precision import DECIMAL_PLACES
|
37
37
|
from ccxt.base.precise import Precise
|
@@ -94,6 +94,8 @@ class binance(Exchange, ImplicitAPI):
|
|
94
94
|
'fetchCanceledOrders': 'emulated',
|
95
95
|
'fetchClosedOrder': False,
|
96
96
|
'fetchClosedOrders': 'emulated',
|
97
|
+
'fetchConvertCurrencies': True,
|
98
|
+
'fetchConvertQuote': False,
|
97
99
|
'fetchCrossBorrowRate': True,
|
98
100
|
'fetchCrossBorrowRates': False,
|
99
101
|
'fetchCurrencies': True,
|
@@ -993,6 +995,7 @@ class binance(Exchange, ImplicitAPI):
|
|
993
995
|
},
|
994
996
|
'post': {
|
995
997
|
'order/oco': 0.2,
|
998
|
+
'orderList/oco': 0.2,
|
996
999
|
'sor/order': 0.2,
|
997
1000
|
'sor/order/test': 0.2,
|
998
1001
|
'order': 0.2,
|
@@ -4109,10 +4112,13 @@ class binance(Exchange, ImplicitAPI):
|
|
4109
4112
|
'interval': self.safe_string(self.timeframes, timeframe, timeframe),
|
4110
4113
|
'limit': limit,
|
4111
4114
|
}
|
4115
|
+
marketId = market['id']
|
4112
4116
|
if price == 'index':
|
4113
|
-
|
4117
|
+
parts = marketId.split('_')
|
4118
|
+
pair = self.safe_string(parts, 0)
|
4119
|
+
request['pair'] = pair # Index price takes self argument instead of symbol
|
4114
4120
|
else:
|
4115
|
-
request['symbol'] =
|
4121
|
+
request['symbol'] = marketId
|
4116
4122
|
# duration = self.parse_timeframe(timeframe)
|
4117
4123
|
if since is not None:
|
4118
4124
|
request['startTime'] = since
|
@@ -11578,3 +11584,55 @@ class binance(Exchange, ImplicitAPI):
|
|
11578
11584
|
#
|
11579
11585
|
modifications = self.parse_margin_modifications(response)
|
11580
11586
|
return self.filter_by_symbol_since_limit(modifications, symbol, since, limit)
|
11587
|
+
|
11588
|
+
async def fetch_convert_currencies(self, params={}) -> Currencies:
|
11589
|
+
"""
|
11590
|
+
fetches all available currencies that can be converted
|
11591
|
+
:see: https://binance-docs.github.io/apidocs/spot/en/#query-order-quantity-precision-per-asset-user_data
|
11592
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
11593
|
+
:returns dict: an associative dictionary of currencies
|
11594
|
+
"""
|
11595
|
+
await self.load_markets()
|
11596
|
+
response = await self.sapiGetConvertAssetInfo(params)
|
11597
|
+
#
|
11598
|
+
# [
|
11599
|
+
# {
|
11600
|
+
# "asset": "BTC",
|
11601
|
+
# "fraction": 8
|
11602
|
+
# },
|
11603
|
+
# ]
|
11604
|
+
#
|
11605
|
+
result = {}
|
11606
|
+
for i in range(0, len(response)):
|
11607
|
+
entry = response[i]
|
11608
|
+
id = self.safe_string(entry, 'asset')
|
11609
|
+
code = self.safe_currency_code(id)
|
11610
|
+
result[code] = {
|
11611
|
+
'info': entry,
|
11612
|
+
'id': id,
|
11613
|
+
'code': code,
|
11614
|
+
'networks': None,
|
11615
|
+
'type': None,
|
11616
|
+
'name': None,
|
11617
|
+
'active': None,
|
11618
|
+
'deposit': None,
|
11619
|
+
'withdraw': None,
|
11620
|
+
'fee': None,
|
11621
|
+
'precision': self.safe_integer(entry, 'fraction'),
|
11622
|
+
'limits': {
|
11623
|
+
'amount': {
|
11624
|
+
'min': None,
|
11625
|
+
'max': None,
|
11626
|
+
},
|
11627
|
+
'withdraw': {
|
11628
|
+
'min': None,
|
11629
|
+
'max': None,
|
11630
|
+
},
|
11631
|
+
'deposit': {
|
11632
|
+
'min': None,
|
11633
|
+
'max': None,
|
11634
|
+
},
|
11635
|
+
},
|
11636
|
+
'created': None,
|
11637
|
+
}
|
11638
|
+
return result
|
ccxt/async_support/bingx.py
CHANGED
@@ -11,6 +11,7 @@ import numbers
|
|
11
11
|
from ccxt.base.types import Balances, Currencies, Currency, Int, Leverage, MarginMode, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
|
+
from ccxt.base.errors import AuthenticationError
|
14
15
|
from ccxt.base.errors import PermissionDenied
|
15
16
|
from ccxt.base.errors import AccountSuspended
|
16
17
|
from ccxt.base.errors import ArgumentsRequired
|
@@ -20,7 +21,6 @@ from ccxt.base.errors import InsufficientFunds
|
|
20
21
|
from ccxt.base.errors import OrderNotFound
|
21
22
|
from ccxt.base.errors import NotSupported
|
22
23
|
from ccxt.base.errors import DDoSProtection
|
23
|
-
from ccxt.base.errors import AuthenticationError
|
24
24
|
from ccxt.base.decimal_to_precision import DECIMAL_PLACES
|
25
25
|
from ccxt.base.precise import Precise
|
26
26
|
|
ccxt/async_support/bit2c.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, Ticker, Trade, TradingFees
|
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 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/async_support/bitbank.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, 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 PermissionDenied
|
13
14
|
from ccxt.base.errors import InsufficientFunds
|
14
15
|
from ccxt.base.errors import InvalidOrder
|
15
16
|
from ccxt.base.errors import OrderNotFound
|
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
|
|
20
20
|
|
ccxt/async_support/bitfinex.py
CHANGED
@@ -9,6 +9,7 @@ import hashlib
|
|
9
9
|
from ccxt.base.types import Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
|
+
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 BadSymbol
|
@@ -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 InvalidNonce
|
22
|
-
from ccxt.base.errors import AuthenticationError
|
23
23
|
from ccxt.base.decimal_to_precision import ROUND
|
24
24
|
from ccxt.base.decimal_to_precision import TRUNCATE
|
25
25
|
from ccxt.base.decimal_to_precision import DECIMAL_PLACES
|
ccxt/async_support/bitfinex2.py
CHANGED
@@ -9,6 +9,7 @@ import hashlib
|
|
9
9
|
from ccxt.base.types import Balances, Currencies, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction, TransferEntry
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
|
+
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
|
@@ -22,7 +23,6 @@ from ccxt.base.errors import RateLimitExceeded
|
|
22
23
|
from ccxt.base.errors import ExchangeNotAvailable
|
23
24
|
from ccxt.base.errors import OnMaintenance
|
24
25
|
from ccxt.base.errors import InvalidNonce
|
25
|
-
from ccxt.base.errors import AuthenticationError
|
26
26
|
from ccxt.base.decimal_to_precision import ROUND
|
27
27
|
from ccxt.base.decimal_to_precision import TRUNCATE
|
28
28
|
from ccxt.base.decimal_to_precision import DECIMAL_PLACES
|
ccxt/async_support/bitget.py
CHANGED
@@ -8,9 +8,10 @@ from ccxt.abstract.bitget import ImplicitAPI
|
|
8
8
|
import asyncio
|
9
9
|
import hashlib
|
10
10
|
import json
|
11
|
-
from ccxt.base.types import Balances, 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
|
+
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
|
12
12
|
from typing import List
|
13
13
|
from ccxt.base.errors import ExchangeError
|
14
|
+
from ccxt.base.errors import AuthenticationError
|
14
15
|
from ccxt.base.errors import PermissionDenied
|
15
16
|
from ccxt.base.errors import AccountSuspended
|
16
17
|
from ccxt.base.errors import ArgumentsRequired
|
@@ -28,7 +29,6 @@ from ccxt.base.errors import ExchangeNotAvailable
|
|
28
29
|
from ccxt.base.errors import OnMaintenance
|
29
30
|
from ccxt.base.errors import InvalidNonce
|
30
31
|
from ccxt.base.errors import RequestTimeout
|
31
|
-
from ccxt.base.errors import AuthenticationError
|
32
32
|
from ccxt.base.decimal_to_precision import TICK_SIZE
|
33
33
|
from ccxt.base.precise import Precise
|
34
34
|
|
@@ -85,6 +85,8 @@ class bitget(Exchange, ImplicitAPI):
|
|
85
85
|
'fetchCanceledAndClosedOrders': True,
|
86
86
|
'fetchCanceledOrders': True,
|
87
87
|
'fetchClosedOrders': True,
|
88
|
+
'fetchConvertCurrencies': True,
|
89
|
+
'fetchConvertQuote': True,
|
88
90
|
'fetchCrossBorrowRate': True,
|
89
91
|
'fetchCrossBorrowRates': False,
|
90
92
|
'fetchCurrencies': True,
|
@@ -7853,6 +7855,138 @@ class bitget(Exchange, ImplicitAPI):
|
|
7853
7855
|
'marginMode': marginType,
|
7854
7856
|
}
|
7855
7857
|
|
7858
|
+
async def fetch_convert_quote(self, fromCode: str, toCode: str, amount: Num = None, params={}) -> Conversion:
|
7859
|
+
"""
|
7860
|
+
fetch a quote for converting from one currency to another
|
7861
|
+
:see: https://www.bitget.com/api-doc/common/convert/Get-Quoted-Price
|
7862
|
+
:param str fromCode: the currency that you want to sell and convert from
|
7863
|
+
:param str toCode: the currency that you want to buy and convert into
|
7864
|
+
:param float [amount]: how much you want to trade in units of the from currency
|
7865
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
7866
|
+
:returns dict: a `conversion structure <https://docs.ccxt.com/#/?id=conversion-structure>`
|
7867
|
+
"""
|
7868
|
+
await self.load_markets()
|
7869
|
+
request = {
|
7870
|
+
'fromCoin': fromCode.upper(),
|
7871
|
+
'toCoin': toCode.upper(),
|
7872
|
+
'fromCoinSize': self.number_to_string(amount),
|
7873
|
+
}
|
7874
|
+
response = await self.privateConvertGetV2ConvertQuotedPrice(self.extend(request, params))
|
7875
|
+
#
|
7876
|
+
# {
|
7877
|
+
# "code": "00000",
|
7878
|
+
# "msg": "success",
|
7879
|
+
# "requestTime": 1712121940158,
|
7880
|
+
# "data": {
|
7881
|
+
# "fromCoin": "USDT",
|
7882
|
+
# "fromCoinSize": "5",
|
7883
|
+
# "cnvtPrice": "0.9993007892377704",
|
7884
|
+
# "toCoin": "USDC",
|
7885
|
+
# "toCoinSize": "4.99650394",
|
7886
|
+
# "traceId": "1159288930228187140",
|
7887
|
+
# "fee": "0"
|
7888
|
+
# }
|
7889
|
+
# }
|
7890
|
+
#
|
7891
|
+
data = self.safe_dict(response, 'data', {})
|
7892
|
+
fromCurrencyId = self.safe_string(data, 'fromCoin', fromCode)
|
7893
|
+
fromCurrency = self.currency(fromCurrencyId)
|
7894
|
+
toCurrencyId = self.safe_string(data, 'toCoin', toCode)
|
7895
|
+
toCurrency = self.currency(toCurrencyId)
|
7896
|
+
return self.parse_conversion(data, fromCurrency, toCurrency)
|
7897
|
+
|
7898
|
+
def parse_conversion(self, conversion, fromCurrency: Currency = None, toCurrency: Currency = None) -> Conversion:
|
7899
|
+
#
|
7900
|
+
# fetchConvertQuote
|
7901
|
+
#
|
7902
|
+
# {
|
7903
|
+
# "fromCoin": "USDT",
|
7904
|
+
# "fromCoinSize": "5",
|
7905
|
+
# "cnvtPrice": "0.9993007892377704",
|
7906
|
+
# "toCoin": "USDC",
|
7907
|
+
# "toCoinSize": "4.99650394",
|
7908
|
+
# "traceId": "1159288930228187140",
|
7909
|
+
# "fee": "0"
|
7910
|
+
# }
|
7911
|
+
#
|
7912
|
+
timestamp = self.safe_integer(conversion, 'ts')
|
7913
|
+
fromCoin = self.safe_string(conversion, 'fromCoin')
|
7914
|
+
fromCode = self.safe_currency_code(fromCoin, fromCurrency)
|
7915
|
+
to = self.safe_string(conversion, 'toCoin')
|
7916
|
+
toCode = self.safe_currency_code(to, toCurrency)
|
7917
|
+
return {
|
7918
|
+
'info': conversion,
|
7919
|
+
'timestamp': timestamp,
|
7920
|
+
'datetime': self.iso8601(timestamp),
|
7921
|
+
'id': self.safe_string(conversion, 'traceId'),
|
7922
|
+
'fromCurrency': fromCode,
|
7923
|
+
'fromAmount': self.safe_number(conversion, 'fromCoinSize'),
|
7924
|
+
'toCurrency': toCode,
|
7925
|
+
'toAmount': self.safe_number(conversion, 'toCoinSize'),
|
7926
|
+
'price': self.safe_number(conversion, 'cnvtPrice'),
|
7927
|
+
'fee': self.safe_number(conversion, 'fee'),
|
7928
|
+
}
|
7929
|
+
|
7930
|
+
async def fetch_convert_currencies(self, params={}) -> Currencies:
|
7931
|
+
"""
|
7932
|
+
fetches all available currencies that can be converted
|
7933
|
+
:see: https://www.bitget.com/api-doc/common/convert/Get-Convert-Currencies
|
7934
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
7935
|
+
:returns dict: an associative dictionary of currencies
|
7936
|
+
"""
|
7937
|
+
await self.load_markets()
|
7938
|
+
response = await self.privateConvertGetV2ConvertCurrencies(params)
|
7939
|
+
#
|
7940
|
+
# {
|
7941
|
+
# "code": "00000",
|
7942
|
+
# "msg": "success",
|
7943
|
+
# "requestTime": 1712121755897,
|
7944
|
+
# "data": [
|
7945
|
+
# {
|
7946
|
+
# "coin": "BTC",
|
7947
|
+
# "available": "0.00009850",
|
7948
|
+
# "maxAmount": "0.756266",
|
7949
|
+
# "minAmount": "0.00001"
|
7950
|
+
# },
|
7951
|
+
# ]
|
7952
|
+
# }
|
7953
|
+
#
|
7954
|
+
result = {}
|
7955
|
+
data = self.safe_list(response, 'data', [])
|
7956
|
+
for i in range(0, len(data)):
|
7957
|
+
entry = data[i]
|
7958
|
+
id = self.safe_string(entry, 'coin')
|
7959
|
+
code = self.safe_currency_code(id)
|
7960
|
+
result[code] = {
|
7961
|
+
'info': entry,
|
7962
|
+
'id': id,
|
7963
|
+
'code': code,
|
7964
|
+
'networks': None,
|
7965
|
+
'type': None,
|
7966
|
+
'name': None,
|
7967
|
+
'active': None,
|
7968
|
+
'deposit': None,
|
7969
|
+
'withdraw': self.safe_number(entry, 'available'),
|
7970
|
+
'fee': None,
|
7971
|
+
'precision': None,
|
7972
|
+
'limits': {
|
7973
|
+
'amount': {
|
7974
|
+
'min': self.safe_number(entry, 'minAmount'),
|
7975
|
+
'max': self.safe_number(entry, 'maxAmount'),
|
7976
|
+
},
|
7977
|
+
'withdraw': {
|
7978
|
+
'min': None,
|
7979
|
+
'max': None,
|
7980
|
+
},
|
7981
|
+
'deposit': {
|
7982
|
+
'min': None,
|
7983
|
+
'max': None,
|
7984
|
+
},
|
7985
|
+
},
|
7986
|
+
'created': None,
|
7987
|
+
}
|
7988
|
+
return result
|
7989
|
+
|
7856
7990
|
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
7857
7991
|
if not response:
|
7858
7992
|
return None # fallback to default error handler
|
ccxt/async_support/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/async_support/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/async_support/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/async_support/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
|
|