ccxt 4.4.82__py2.py3-none-any.whl → 4.4.85__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 +1 -5
- ccxt/abstract/blofin.py +8 -0
- ccxt/abstract/btcbox.py +1 -0
- ccxt/apex.py +2 -1
- ccxt/async_support/__init__.py +1 -5
- ccxt/async_support/apex.py +2 -1
- ccxt/async_support/base/exchange.py +26 -3
- ccxt/async_support/base/ws/cache.py +6 -1
- ccxt/async_support/bitget.py +1 -2
- ccxt/async_support/bitrue.py +14 -32
- ccxt/async_support/bitso.py +33 -0
- ccxt/async_support/bitstamp.py +33 -0
- ccxt/async_support/blofin.py +145 -14
- ccxt/async_support/btcbox.py +25 -5
- ccxt/async_support/bybit.py +16 -37
- ccxt/async_support/cex.py +2 -4
- ccxt/async_support/coinbase.py +56 -42
- ccxt/async_support/coinbaseexchange.py +141 -32
- ccxt/async_support/coincatch.py +14 -67
- ccxt/async_support/coinex.py +28 -29
- ccxt/async_support/coinlist.py +17 -16
- ccxt/async_support/coinmetro.py +20 -11
- ccxt/async_support/coinone.py +8 -10
- ccxt/async_support/coinsph.py +124 -2
- ccxt/async_support/cryptocom.py +109 -2
- ccxt/async_support/cryptomus.py +42 -80
- ccxt/async_support/delta.py +75 -36
- ccxt/async_support/derive.py +46 -10
- ccxt/async_support/ellipx.py +175 -77
- ccxt/async_support/gate.py +1 -1
- ccxt/async_support/gemini.py +3 -4
- ccxt/async_support/hitbtc.py +56 -65
- ccxt/async_support/hyperliquid.py +2 -2
- ccxt/async_support/kraken.py +27 -23
- ccxt/async_support/kucoinfutures.py +5 -0
- ccxt/async_support/lbank.py +1 -1
- ccxt/async_support/paradex.py +120 -4
- ccxt/base/exchange.py +21 -2
- ccxt/base/types.py +3 -0
- ccxt/bitget.py +1 -2
- ccxt/bitrue.py +14 -32
- ccxt/bitso.py +33 -0
- ccxt/bitstamp.py +33 -0
- ccxt/blofin.py +145 -14
- ccxt/btcbox.py +24 -5
- ccxt/bybit.py +16 -37
- ccxt/cex.py +2 -4
- ccxt/coinbase.py +56 -42
- ccxt/coinbaseexchange.py +141 -32
- ccxt/coincatch.py +14 -67
- ccxt/coinex.py +28 -29
- ccxt/coinlist.py +17 -16
- ccxt/coinmetro.py +20 -11
- ccxt/coinone.py +8 -10
- ccxt/coinsph.py +124 -2
- ccxt/cryptocom.py +109 -2
- ccxt/cryptomus.py +42 -80
- ccxt/delta.py +75 -36
- ccxt/derive.py +46 -10
- ccxt/ellipx.py +175 -77
- ccxt/gate.py +1 -1
- ccxt/gemini.py +3 -4
- ccxt/hitbtc.py +56 -65
- ccxt/hyperliquid.py +2 -2
- ccxt/kraken.py +27 -23
- ccxt/kucoinfutures.py +5 -0
- ccxt/lbank.py +1 -1
- ccxt/paradex.py +120 -4
- ccxt/pro/__init__.py +69 -3
- ccxt/pro/binance.py +31 -33
- ccxt/pro/bithumb.py +5 -3
- ccxt/pro/kraken.py +249 -79
- ccxt/pro/mexc.py +252 -7
- ccxt/pro/poloniex.py +6 -2
- {ccxt-4.4.82.dist-info → ccxt-4.4.85.dist-info}/METADATA +7 -9
- {ccxt-4.4.82.dist-info → ccxt-4.4.85.dist-info}/RECORD +79 -87
- ccxt/abstract/bl3p.py +0 -19
- ccxt/abstract/idex.py +0 -26
- ccxt/async_support/base/ws/fast_client.py +0 -97
- ccxt/async_support/bl3p.py +0 -543
- ccxt/async_support/idex.py +0 -1889
- ccxt/bl3p.py +0 -543
- ccxt/idex.py +0 -1889
- ccxt/pro/idex.py +0 -687
- {ccxt-4.4.82.dist-info → ccxt-4.4.85.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.82.dist-info → ccxt-4.4.85.dist-info}/WHEEL +0 -0
- {ccxt-4.4.82.dist-info → ccxt-4.4.85.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
# ----------------------------------------------------------------------------
|
24
24
|
|
25
|
-
__version__ = '4.4.
|
25
|
+
__version__ = '4.4.85'
|
26
26
|
|
27
27
|
# ----------------------------------------------------------------------------
|
28
28
|
|
@@ -108,7 +108,6 @@ from ccxt.bitso import bitso # noqa: F4
|
|
108
108
|
from ccxt.bitstamp import bitstamp # noqa: F401
|
109
109
|
from ccxt.bitteam import bitteam # noqa: F401
|
110
110
|
from ccxt.bitvavo import bitvavo # noqa: F401
|
111
|
-
from ccxt.bl3p import bl3p # noqa: F401
|
112
111
|
from ccxt.blockchaincom import blockchaincom # noqa: F401
|
113
112
|
from ccxt.blofin import blofin # noqa: F401
|
114
113
|
from ccxt.btcalpha import btcalpha # noqa: F401
|
@@ -150,7 +149,6 @@ from ccxt.htx import htx # noqa: F4
|
|
150
149
|
from ccxt.huobi import huobi # noqa: F401
|
151
150
|
from ccxt.huobijp import huobijp # noqa: F401
|
152
151
|
from ccxt.hyperliquid import hyperliquid # noqa: F401
|
153
|
-
from ccxt.idex import idex # noqa: F401
|
154
152
|
from ccxt.independentreserve import independentreserve # noqa: F401
|
155
153
|
from ccxt.indodax import indodax # noqa: F401
|
156
154
|
from ccxt.kraken import kraken # noqa: F401
|
@@ -217,7 +215,6 @@ exchanges = [
|
|
217
215
|
'bitstamp',
|
218
216
|
'bitteam',
|
219
217
|
'bitvavo',
|
220
|
-
'bl3p',
|
221
218
|
'blockchaincom',
|
222
219
|
'blofin',
|
223
220
|
'btcalpha',
|
@@ -259,7 +256,6 @@ exchanges = [
|
|
259
256
|
'huobi',
|
260
257
|
'huobijp',
|
261
258
|
'hyperliquid',
|
262
|
-
'idex',
|
263
259
|
'independentreserve',
|
264
260
|
'indodax',
|
265
261
|
'kraken',
|
ccxt/abstract/blofin.py
CHANGED
@@ -20,10 +20,14 @@ class ImplicitAPI:
|
|
20
20
|
private_get_account_positions = privateGetAccountPositions = Entry('account/positions', 'private', 'GET', {'cost': 1})
|
21
21
|
private_get_account_leverage_info = privateGetAccountLeverageInfo = Entry('account/leverage-info', 'private', 'GET', {'cost': 1})
|
22
22
|
private_get_account_margin_mode = privateGetAccountMarginMode = Entry('account/margin-mode', 'private', 'GET', {'cost': 1})
|
23
|
+
private_get_account_position_mode = privateGetAccountPositionMode = Entry('account/position-mode', 'private', 'GET', {'cost': 1})
|
23
24
|
private_get_account_batch_leverage_info = privateGetAccountBatchLeverageInfo = Entry('account/batch-leverage-info', 'private', 'GET', {'cost': 1})
|
24
25
|
private_get_trade_orders_tpsl_pending = privateGetTradeOrdersTpslPending = Entry('trade/orders-tpsl-pending', 'private', 'GET', {'cost': 1})
|
26
|
+
private_get_trade_orders_algo_pending = privateGetTradeOrdersAlgoPending = Entry('trade/orders-algo-pending', 'private', 'GET', {'cost': 1})
|
25
27
|
private_get_trade_orders_history = privateGetTradeOrdersHistory = Entry('trade/orders-history', 'private', 'GET', {'cost': 1})
|
26
28
|
private_get_trade_orders_tpsl_history = privateGetTradeOrdersTpslHistory = Entry('trade/orders-tpsl-history', 'private', 'GET', {'cost': 1})
|
29
|
+
private_get_trade_orders_algo_history = privateGetTradeOrdersAlgoHistory = Entry('trade/orders-algo-history', 'private', 'GET', {'cost': 1})
|
30
|
+
private_get_trade_order_price_range = privateGetTradeOrderPriceRange = Entry('trade/order/price-range', 'private', 'GET', {'cost': 1})
|
27
31
|
private_get_user_query_apikey = privateGetUserQueryApikey = Entry('user/query-apikey', 'private', 'GET', {'cost': 1})
|
28
32
|
private_get_affiliate_basic = privateGetAffiliateBasic = Entry('affiliate/basic', 'private', 'GET', {'cost': 1})
|
29
33
|
private_get_copytrading_instruments = privateGetCopytradingInstruments = Entry('copytrading/instruments', 'private', 'GET', {'cost': 1})
|
@@ -38,8 +42,12 @@ class ImplicitAPI:
|
|
38
42
|
private_get_copytrading_trade_position_history_by_order = privateGetCopytradingTradePositionHistoryByOrder = Entry('copytrading/trade/position-history-by-order', 'private', 'GET', {'cost': 1})
|
39
43
|
private_get_copytrading_trade_orders_history = privateGetCopytradingTradeOrdersHistory = Entry('copytrading/trade/orders-history', 'private', 'GET', {'cost': 1})
|
40
44
|
private_get_copytrading_trade_pending_tpsl_by_order = privateGetCopytradingTradePendingTpslByOrder = Entry('copytrading/trade/pending-tpsl-by-order', 'private', 'GET', {'cost': 1})
|
45
|
+
private_post_account_set_margin_mode = privatePostAccountSetMarginMode = Entry('account/set-margin-mode', 'private', 'POST', {'cost': 1})
|
46
|
+
private_post_account_set_position_mode = privatePostAccountSetPositionMode = Entry('account/set-position-mode', 'private', 'POST', {'cost': 1})
|
41
47
|
private_post_trade_order = privatePostTradeOrder = Entry('trade/order', 'private', 'POST', {'cost': 1})
|
48
|
+
private_post_trade_order_algo = privatePostTradeOrderAlgo = Entry('trade/order-algo', 'private', 'POST', {'cost': 1})
|
42
49
|
private_post_trade_cancel_order = privatePostTradeCancelOrder = Entry('trade/cancel-order', 'private', 'POST', {'cost': 1})
|
50
|
+
private_post_trade_cancel_algo = privatePostTradeCancelAlgo = Entry('trade/cancel-algo', 'private', 'POST', {'cost': 1})
|
43
51
|
private_post_account_set_leverage = privatePostAccountSetLeverage = Entry('account/set-leverage', 'private', 'POST', {'cost': 1})
|
44
52
|
private_post_trade_batch_orders = privatePostTradeBatchOrders = Entry('trade/batch-orders', 'private', 'POST', {'cost': 1})
|
45
53
|
private_post_trade_order_tpsl = privatePostTradeOrderTpsl = Entry('trade/order-tpsl', 'private', 'POST', {'cost': 1})
|
ccxt/abstract/btcbox.py
CHANGED
@@ -12,3 +12,4 @@ class ImplicitAPI:
|
|
12
12
|
private_post_trade_list = privatePostTradeList = Entry('trade_list', 'private', 'POST', {})
|
13
13
|
private_post_trade_view = privatePostTradeView = Entry('trade_view', 'private', 'POST', {})
|
14
14
|
private_post_wallet = privatePostWallet = Entry('wallet', 'private', 'POST', {})
|
15
|
+
webapi_get_ajax_coin_coininfo = webApiGetAjaxCoinCoinInfo = Entry('ajax/coin/coinInfo', 'webApi', 'GET', {})
|
ccxt/apex.py
CHANGED
@@ -1077,9 +1077,10 @@ class apex(Exchange, ImplicitAPI):
|
|
1077
1077
|
for i in range(0, len(resultList)):
|
1078
1078
|
entry = resultList[i]
|
1079
1079
|
timestamp = self.safe_integer(entry, 'fundingTimestamp')
|
1080
|
+
marketId = self.safe_string(entry, 'symbol')
|
1080
1081
|
rates.append({
|
1081
1082
|
'info': entry,
|
1082
|
-
'symbol': self.
|
1083
|
+
'symbol': self.safe_symbol(marketId, market),
|
1083
1084
|
'fundingRate': self.safe_number(entry, 'rate'),
|
1084
1085
|
'timestamp': timestamp,
|
1085
1086
|
'datetime': self.iso8601(timestamp),
|
ccxt/async_support/__init__.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.4.
|
7
|
+
__version__ = '4.4.85'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -88,7 +88,6 @@ from ccxt.async_support.bitso import bitso
|
|
88
88
|
from ccxt.async_support.bitstamp import bitstamp # noqa: F401
|
89
89
|
from ccxt.async_support.bitteam import bitteam # noqa: F401
|
90
90
|
from ccxt.async_support.bitvavo import bitvavo # noqa: F401
|
91
|
-
from ccxt.async_support.bl3p import bl3p # noqa: F401
|
92
91
|
from ccxt.async_support.blockchaincom import blockchaincom # noqa: F401
|
93
92
|
from ccxt.async_support.blofin import blofin # noqa: F401
|
94
93
|
from ccxt.async_support.btcalpha import btcalpha # noqa: F401
|
@@ -130,7 +129,6 @@ from ccxt.async_support.htx import htx
|
|
130
129
|
from ccxt.async_support.huobi import huobi # noqa: F401
|
131
130
|
from ccxt.async_support.huobijp import huobijp # noqa: F401
|
132
131
|
from ccxt.async_support.hyperliquid import hyperliquid # noqa: F401
|
133
|
-
from ccxt.async_support.idex import idex # noqa: F401
|
134
132
|
from ccxt.async_support.independentreserve import independentreserve # noqa: F401
|
135
133
|
from ccxt.async_support.indodax import indodax # noqa: F401
|
136
134
|
from ccxt.async_support.kraken import kraken # noqa: F401
|
@@ -197,7 +195,6 @@ exchanges = [
|
|
197
195
|
'bitstamp',
|
198
196
|
'bitteam',
|
199
197
|
'bitvavo',
|
200
|
-
'bl3p',
|
201
198
|
'blockchaincom',
|
202
199
|
'blofin',
|
203
200
|
'btcalpha',
|
@@ -239,7 +236,6 @@ exchanges = [
|
|
239
236
|
'huobi',
|
240
237
|
'huobijp',
|
241
238
|
'hyperliquid',
|
242
|
-
'idex',
|
243
239
|
'independentreserve',
|
244
240
|
'indodax',
|
245
241
|
'kraken',
|
ccxt/async_support/apex.py
CHANGED
@@ -1077,9 +1077,10 @@ class apex(Exchange, ImplicitAPI):
|
|
1077
1077
|
for i in range(0, len(resultList)):
|
1078
1078
|
entry = resultList[i]
|
1079
1079
|
timestamp = self.safe_integer(entry, 'fundingTimestamp')
|
1080
|
+
marketId = self.safe_string(entry, 'symbol')
|
1080
1081
|
rates.append({
|
1081
1082
|
'info': entry,
|
1082
|
-
'symbol': self.
|
1083
|
+
'symbol': self.safe_symbol(marketId, market),
|
1083
1084
|
'fundingRate': self.safe_number(entry, 'rate'),
|
1084
1085
|
'timestamp': timestamp,
|
1085
1086
|
'datetime': self.iso8601(timestamp),
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.4.
|
5
|
+
__version__ = '4.4.85'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -34,7 +34,7 @@ from ccxt.base.exchange import Exchange as BaseExchange, ArgumentsRequired
|
|
34
34
|
# -----------------------------------------------------------------------------
|
35
35
|
|
36
36
|
from ccxt.async_support.base.ws.functions import inflate, inflate64, gunzip
|
37
|
-
from ccxt.async_support.base.ws.
|
37
|
+
from ccxt.async_support.base.ws.aiohttp_client import AiohttpClient
|
38
38
|
from ccxt.async_support.base.ws.future import Future
|
39
39
|
from ccxt.async_support.base.ws.order_book import OrderBook, IndexedOrderBook, CountedOrderBook
|
40
40
|
|
@@ -279,7 +279,28 @@ class Exchange(BaseExchange):
|
|
279
279
|
markets = await self.fetch_markets(params)
|
280
280
|
return self.set_markets(markets, currencies)
|
281
281
|
|
282
|
+
|
282
283
|
async def load_markets(self, reload=False, params={}):
|
284
|
+
"""
|
285
|
+
Loads and prepares the markets for trading.
|
286
|
+
|
287
|
+
Args:
|
288
|
+
reload (bool): If True, the markets will be reloaded from the exchange.
|
289
|
+
params (dict): Additional exchange-specific parameters for the request.
|
290
|
+
|
291
|
+
Returns:
|
292
|
+
dict: A dictionary of markets.
|
293
|
+
|
294
|
+
Raises:
|
295
|
+
Exception: If the markets cannot be loaded or prepared.
|
296
|
+
|
297
|
+
Notes:
|
298
|
+
This method is asynchronous.
|
299
|
+
It ensures that the markets are only loaded once, even if called multiple times.
|
300
|
+
If the markets are already loaded and `reload` is False or not provided, it returns the existing markets.
|
301
|
+
If a reload is in progress, it waits for completion before returning.
|
302
|
+
If an error occurs during loading or preparation, an exception is raised.
|
303
|
+
"""
|
283
304
|
if (reload and not self.reloading_markets) or not self.markets_loading:
|
284
305
|
self.reloading_markets = True
|
285
306
|
coroutine = self.load_markets_helper(reload, params)
|
@@ -387,7 +408,9 @@ class Exchange(BaseExchange):
|
|
387
408
|
'throttle': Throttler(self.tokenBucket, self.asyncio_loop),
|
388
409
|
'asyncio_loop': self.asyncio_loop,
|
389
410
|
}, ws_options)
|
390
|
-
|
411
|
+
# we use aiohttp instead of fastClient now because of this
|
412
|
+
# https://github.com/ccxt/ccxt/pull/25995
|
413
|
+
self.clients[url] = AiohttpClient(url, on_message, on_error, on_close, on_connected, options)
|
391
414
|
self.clients[url].proxy = self.get_ws_proxy()
|
392
415
|
return self.clients[url]
|
393
416
|
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import collections
|
2
|
+
import logging
|
2
3
|
|
4
|
+
logger = logging.getLogger(__name__)
|
3
5
|
|
4
6
|
class Delegate:
|
5
7
|
def __init__(self, name, delegated):
|
@@ -151,7 +153,10 @@ class ArrayCacheBySymbolById(ArrayCache):
|
|
151
153
|
if len(self._deque) == self._deque.maxlen:
|
152
154
|
delete_item = self._deque.popleft()
|
153
155
|
self._index.popleft()
|
154
|
-
|
156
|
+
try:
|
157
|
+
del self.hashmap[delete_item['symbol']][delete_item['id']]
|
158
|
+
except Exception as e:
|
159
|
+
logger.error(f"Error deleting item from hashmap: {delete_item}. Error:{e}")
|
155
160
|
self._deque.append(item)
|
156
161
|
self._index.append(item['id'])
|
157
162
|
if self._clear_all_updates:
|
ccxt/async_support/bitget.py
CHANGED
@@ -2072,8 +2072,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
2072
2072
|
chain = chains[j]
|
2073
2073
|
networkId = self.safe_string(chain, 'chain')
|
2074
2074
|
network = self.network_id_to_code(networkId, code)
|
2075
|
-
|
2076
|
-
network = network.upper()
|
2075
|
+
network = network.upper()
|
2077
2076
|
networks[network] = {
|
2078
2077
|
'info': chain,
|
2079
2078
|
'id': networkId,
|
ccxt/async_support/bitrue.py
CHANGED
@@ -783,66 +783,48 @@ class bitrue(Exchange, ImplicitAPI):
|
|
783
783
|
id = self.safe_string(currency, 'coin')
|
784
784
|
name = self.safe_string(currency, 'coinFulName')
|
785
785
|
code = self.safe_currency_code(id)
|
786
|
-
deposit = None
|
787
|
-
withdraw = None
|
788
|
-
minWithdrawString = None
|
789
|
-
maxWithdrawString = None
|
790
|
-
minWithdrawFeeString = None
|
791
786
|
networkDetails = self.safe_list(currency, 'chainDetail', [])
|
792
787
|
networks: dict = {}
|
793
788
|
for j in range(0, len(networkDetails)):
|
794
789
|
entry = networkDetails[j]
|
795
790
|
networkId = self.safe_string(entry, 'chain')
|
796
791
|
network = self.network_id_to_code(networkId, code)
|
797
|
-
enableDeposit = self.safe_bool(entry, 'enableDeposit')
|
798
|
-
deposit = enableDeposit if (enableDeposit) else deposit
|
799
|
-
enableWithdraw = self.safe_bool(entry, 'enableWithdraw')
|
800
|
-
withdraw = enableWithdraw if (enableWithdraw) else withdraw
|
801
|
-
networkWithdrawFeeString = self.safe_string(entry, 'withdrawFee')
|
802
|
-
if networkWithdrawFeeString is not None:
|
803
|
-
minWithdrawFeeString = networkWithdrawFeeString if (minWithdrawFeeString is None) else Precise.string_min(networkWithdrawFeeString, minWithdrawFeeString)
|
804
|
-
networkMinWithdrawString = self.safe_string(entry, 'minWithdraw')
|
805
|
-
if networkMinWithdrawString is not None:
|
806
|
-
minWithdrawString = networkMinWithdrawString if (minWithdrawString is None) else Precise.string_min(networkMinWithdrawString, minWithdrawString)
|
807
|
-
networkMaxWithdrawString = self.safe_string(entry, 'maxWithdraw')
|
808
|
-
if networkMaxWithdrawString is not None:
|
809
|
-
maxWithdrawString = networkMaxWithdrawString if (maxWithdrawString is None) else Precise.string_max(networkMaxWithdrawString, maxWithdrawString)
|
810
792
|
networks[network] = {
|
811
793
|
'info': entry,
|
812
794
|
'id': networkId,
|
813
795
|
'network': network,
|
814
|
-
'deposit': enableDeposit,
|
815
|
-
'withdraw': enableWithdraw,
|
816
|
-
'active':
|
817
|
-
'fee': self.
|
796
|
+
'deposit': self.safe_bool(entry, 'enableDeposit'),
|
797
|
+
'withdraw': self.safe_bool(entry, 'enableWithdraw'),
|
798
|
+
'active': None,
|
799
|
+
'fee': self.safe_number(entry, 'withdrawFee'),
|
818
800
|
'precision': None,
|
819
801
|
'limits': {
|
820
802
|
'withdraw': {
|
821
|
-
'min': self.
|
822
|
-
'max': self.
|
803
|
+
'min': self.safe_number(entry, 'minWithdraw'),
|
804
|
+
'max': self.safe_number(entry, 'maxWithdraw'),
|
823
805
|
},
|
824
806
|
},
|
825
807
|
}
|
826
|
-
result[code] = {
|
808
|
+
result[code] = self.safe_currency_structure({
|
827
809
|
'id': id,
|
828
810
|
'name': name,
|
829
811
|
'code': code,
|
830
812
|
'precision': None,
|
831
813
|
'info': currency,
|
832
|
-
'active':
|
833
|
-
'deposit':
|
834
|
-
'withdraw':
|
814
|
+
'active': None,
|
815
|
+
'deposit': None,
|
816
|
+
'withdraw': None,
|
835
817
|
'networks': networks,
|
836
|
-
'fee':
|
818
|
+
'fee': None,
|
837
819
|
'fees': None,
|
838
820
|
'type': 'crypto',
|
839
821
|
'limits': {
|
840
822
|
'withdraw': {
|
841
|
-
'min':
|
842
|
-
'max':
|
823
|
+
'min': None,
|
824
|
+
'max': None,
|
843
825
|
},
|
844
826
|
},
|
845
|
-
}
|
827
|
+
})
|
846
828
|
return result
|
847
829
|
|
848
830
|
async def fetch_markets(self, params={}) -> List[Market]:
|
ccxt/async_support/bitso.py
CHANGED
@@ -36,6 +36,9 @@ class bitso(Exchange, ImplicitAPI):
|
|
36
36
|
'future': False,
|
37
37
|
'option': False,
|
38
38
|
'addMargin': False,
|
39
|
+
'borrowCrossMargin': False,
|
40
|
+
'borrowIsolatedMargin': False,
|
41
|
+
'borrowMargin': False,
|
39
42
|
'cancelAllOrders': True,
|
40
43
|
'cancelOrder': True,
|
41
44
|
'cancelOrders': True,
|
@@ -43,11 +46,17 @@ class bitso(Exchange, ImplicitAPI):
|
|
43
46
|
'closePosition': False,
|
44
47
|
'createDepositAddress': False,
|
45
48
|
'createOrder': True,
|
49
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
50
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
46
51
|
'createReduceOnlyOrder': False,
|
47
52
|
'fetchAccounts': False,
|
48
53
|
'fetchBalance': True,
|
54
|
+
'fetchBorrowInterest': False,
|
55
|
+
'fetchBorrowRate': False,
|
49
56
|
'fetchBorrowRateHistories': False,
|
50
57
|
'fetchBorrowRateHistory': False,
|
58
|
+
'fetchBorrowRates': False,
|
59
|
+
'fetchBorrowRatesPerSymbol': False,
|
51
60
|
'fetchCrossBorrowRate': False,
|
52
61
|
'fetchCrossBorrowRates': False,
|
53
62
|
'fetchDeposit': True,
|
@@ -59,21 +68,40 @@ class bitso(Exchange, ImplicitAPI):
|
|
59
68
|
'fetchDepositWithdrawFee': 'emulated',
|
60
69
|
'fetchDepositWithdrawFees': True,
|
61
70
|
'fetchFundingHistory': False,
|
71
|
+
'fetchFundingInterval': False,
|
72
|
+
'fetchFundingIntervals': False,
|
62
73
|
'fetchFundingRate': False,
|
63
74
|
'fetchFundingRateHistory': False,
|
64
75
|
'fetchFundingRates': False,
|
76
|
+
'fetchGreeks': False,
|
65
77
|
'fetchIndexOHLCV': False,
|
66
78
|
'fetchIsolatedBorrowRate': False,
|
67
79
|
'fetchIsolatedBorrowRates': False,
|
80
|
+
'fetchIsolatedPositions': False,
|
68
81
|
'fetchLedger': True,
|
69
82
|
'fetchLeverage': False,
|
83
|
+
'fetchLeverages': False,
|
84
|
+
'fetchLeverageTiers': False,
|
85
|
+
'fetchLiquidations': False,
|
86
|
+
'fetchLongShortRatio': False,
|
87
|
+
'fetchLongShortRatioHistory': False,
|
88
|
+
'fetchMarginAdjustmentHistory': False,
|
70
89
|
'fetchMarginMode': False,
|
90
|
+
'fetchMarginModes': False,
|
91
|
+
'fetchMarketLeverageTiers': False,
|
71
92
|
'fetchMarkets': True,
|
72
93
|
'fetchMarkOHLCV': False,
|
94
|
+
'fetchMarkPrices': False,
|
95
|
+
'fetchMyLiquidations': False,
|
96
|
+
'fetchMySettlementHistory': False,
|
73
97
|
'fetchMyTrades': True,
|
74
98
|
'fetchOHLCV': True,
|
99
|
+
'fetchOpenInterest': False,
|
75
100
|
'fetchOpenInterestHistory': False,
|
101
|
+
'fetchOpenInterests': False,
|
76
102
|
'fetchOpenOrders': True,
|
103
|
+
'fetchOption': False,
|
104
|
+
'fetchOptionChain': False,
|
77
105
|
'fetchOrder': True,
|
78
106
|
'fetchOrderBook': True,
|
79
107
|
'fetchOrderTrades': True,
|
@@ -85,6 +113,7 @@ class bitso(Exchange, ImplicitAPI):
|
|
85
113
|
'fetchPositionsHistory': False,
|
86
114
|
'fetchPositionsRisk': False,
|
87
115
|
'fetchPremiumIndexOHLCV': False,
|
116
|
+
'fetchSettlementHistory': False,
|
88
117
|
'fetchTicker': True,
|
89
118
|
'fetchTickers': False,
|
90
119
|
'fetchTime': False,
|
@@ -96,8 +125,12 @@ class bitso(Exchange, ImplicitAPI):
|
|
96
125
|
'fetchTransactions': False,
|
97
126
|
'fetchTransfer': False,
|
98
127
|
'fetchTransfers': False,
|
128
|
+
'fetchVolatilityHistory': False,
|
99
129
|
'reduceMargin': False,
|
130
|
+
'repayCrossMargin': False,
|
131
|
+
'repayIsolatedMargin': False,
|
100
132
|
'setLeverage': False,
|
133
|
+
'setMargin': False,
|
101
134
|
'setMarginMode': False,
|
102
135
|
'setPositionMode': False,
|
103
136
|
'transfer': False,
|
ccxt/async_support/bitstamp.py
CHANGED
@@ -44,18 +44,27 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
44
44
|
'future': False,
|
45
45
|
'option': False,
|
46
46
|
'addMargin': False,
|
47
|
+
'borrowCrossMargin': False,
|
48
|
+
'borrowIsolatedMargin': False,
|
49
|
+
'borrowMargin': False,
|
47
50
|
'cancelAllOrders': True,
|
48
51
|
'cancelOrder': True,
|
49
52
|
'closeAllPositions': False,
|
50
53
|
'closePosition': False,
|
51
54
|
'createOrder': True,
|
55
|
+
'createOrderWithTakeProfitAndStopLoss': False,
|
56
|
+
'createOrderWithTakeProfitAndStopLossWs': False,
|
52
57
|
'createReduceOnlyOrder': False,
|
53
58
|
'createStopLimitOrder': False,
|
54
59
|
'createStopMarketOrder': False,
|
55
60
|
'createStopOrder': False,
|
56
61
|
'fetchBalance': True,
|
62
|
+
'fetchBorrowInterest': False,
|
63
|
+
'fetchBorrowRate': False,
|
57
64
|
'fetchBorrowRateHistories': False,
|
58
65
|
'fetchBorrowRateHistory': False,
|
66
|
+
'fetchBorrowRates': False,
|
67
|
+
'fetchBorrowRatesPerSymbol': False,
|
59
68
|
'fetchCrossBorrowRate': False,
|
60
69
|
'fetchCrossBorrowRates': False,
|
61
70
|
'fetchCurrencies': True,
|
@@ -66,21 +75,40 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
66
75
|
'fetchDepositWithdrawFee': 'emulated',
|
67
76
|
'fetchDepositWithdrawFees': True,
|
68
77
|
'fetchFundingHistory': False,
|
78
|
+
'fetchFundingInterval': False,
|
79
|
+
'fetchFundingIntervals': False,
|
69
80
|
'fetchFundingRate': False,
|
70
81
|
'fetchFundingRateHistory': False,
|
71
82
|
'fetchFundingRates': False,
|
83
|
+
'fetchGreeks': False,
|
72
84
|
'fetchIndexOHLCV': False,
|
73
85
|
'fetchIsolatedBorrowRate': False,
|
74
86
|
'fetchIsolatedBorrowRates': False,
|
87
|
+
'fetchIsolatedPositions': False,
|
75
88
|
'fetchLedger': True,
|
76
89
|
'fetchLeverage': False,
|
90
|
+
'fetchLeverages': False,
|
91
|
+
'fetchLeverageTiers': False,
|
92
|
+
'fetchLiquidations': False,
|
93
|
+
'fetchLongShortRatio': False,
|
94
|
+
'fetchLongShortRatioHistory': False,
|
95
|
+
'fetchMarginAdjustmentHistory': False,
|
77
96
|
'fetchMarginMode': False,
|
97
|
+
'fetchMarginModes': False,
|
98
|
+
'fetchMarketLeverageTiers': False,
|
78
99
|
'fetchMarkets': True,
|
79
100
|
'fetchMarkOHLCV': False,
|
101
|
+
'fetchMarkPrices': False,
|
102
|
+
'fetchMyLiquidations': False,
|
103
|
+
'fetchMySettlementHistory': False,
|
80
104
|
'fetchMyTrades': True,
|
81
105
|
'fetchOHLCV': True,
|
106
|
+
'fetchOpenInterest': False,
|
82
107
|
'fetchOpenInterestHistory': False,
|
108
|
+
'fetchOpenInterests': False,
|
83
109
|
'fetchOpenOrders': True,
|
110
|
+
'fetchOption': False,
|
111
|
+
'fetchOptionChain': False,
|
84
112
|
'fetchOrder': True,
|
85
113
|
'fetchOrderBook': True,
|
86
114
|
'fetchPosition': False,
|
@@ -91,6 +119,7 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
91
119
|
'fetchPositionsHistory': False,
|
92
120
|
'fetchPositionsRisk': False,
|
93
121
|
'fetchPremiumIndexOHLCV': False,
|
122
|
+
'fetchSettlementHistory': False,
|
94
123
|
'fetchTicker': True,
|
95
124
|
'fetchTickers': True,
|
96
125
|
'fetchTrades': True,
|
@@ -98,9 +127,13 @@ class bitstamp(Exchange, ImplicitAPI):
|
|
98
127
|
'fetchTradingFees': True,
|
99
128
|
'fetchTransactionFees': True,
|
100
129
|
'fetchTransactions': 'emulated',
|
130
|
+
'fetchVolatilityHistory': False,
|
101
131
|
'fetchWithdrawals': True,
|
102
132
|
'reduceMargin': False,
|
133
|
+
'repayCrossMargin': False,
|
134
|
+
'repayIsolatedMargin': False,
|
103
135
|
'setLeverage': False,
|
136
|
+
'setMargin': False,
|
104
137
|
'setMarginMode': False,
|
105
138
|
'setPositionMode': False,
|
106
139
|
'transfer': True,
|