ccxt 4.3.86__py2.py3-none-any.whl → 4.3.88__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 -1
- ccxt/abstract/kucoin.py +1 -0
- ccxt/abstract/kucoinfutures.py +1 -0
- ccxt/async_support/__init__.py +2 -1
- ccxt/async_support/base/exchange.py +3 -3
- ccxt/async_support/bingx.py +5 -1
- ccxt/async_support/coinex.py +1 -1
- ccxt/async_support/hashkey.py +1 -2
- ccxt/async_support/kraken.py +32 -5
- ccxt/async_support/kucoin.py +2 -0
- ccxt/async_support/upbit.py +1 -1
- ccxt/base/errors.py +7 -1
- ccxt/base/exchange.py +3 -3
- ccxt/bingx.py +5 -1
- ccxt/coinex.py +1 -1
- ccxt/hashkey.py +1 -2
- ccxt/kraken.py +32 -5
- ccxt/kucoin.py +2 -0
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/bitfinex.py +1 -0
- ccxt/pro/bitfinex2.py +1 -0
- ccxt/pro/bitget.py +143 -16
- ccxt/pro/bitopro.py +1 -0
- ccxt/pro/bitstamp.py +1 -0
- ccxt/pro/blockchaincom.py +1 -0
- ccxt/pro/cex.py +1 -0
- ccxt/pro/coincheck.py +1 -0
- ccxt/pro/coinone.py +1 -0
- ccxt/pro/hashkey.py +1 -0
- ccxt/pro/hitbtc.py +1 -0
- ccxt/pro/hollaex.py +1 -0
- ccxt/pro/htx.py +1 -0
- ccxt/pro/huobijp.py +1 -0
- ccxt/pro/hyperliquid.py +7 -0
- ccxt/pro/independentreserve.py +1 -0
- ccxt/pro/lbank.py +1 -0
- ccxt/pro/luno.py +1 -0
- ccxt/pro/ndax.py +5 -0
- ccxt/pro/okcoin.py +7 -0
- ccxt/pro/onetrading.py +1 -0
- ccxt/pro/p2b.py +30 -7
- ccxt/pro/paradex.py +1 -0
- ccxt/pro/poloniex.py +32 -3
- ccxt/pro/poloniexfutures.py +1 -0
- ccxt/pro/probit.py +2 -0
- ccxt/pro/upbit.py +44 -3
- ccxt/pro/vertex.py +1 -0
- ccxt/pro/wazirx.py +3 -0
- ccxt/pro/whitebit.py +9 -0
- ccxt/test/tests_async.py +18 -1
- ccxt/test/tests_sync.py +18 -1
- ccxt/upbit.py +1 -1
- {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/METADATA +7 -6
- {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/RECORD +57 -57
- {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/WHEEL +0 -0
- {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/top_level.txt +0 -0
ccxt/pro/upbit.py
CHANGED
@@ -19,6 +19,7 @@ class upbit(ccxt.async_support.upbit):
|
|
19
19
|
'watchOrderBook': True,
|
20
20
|
'watchTicker': True,
|
21
21
|
'watchTrades': True,
|
22
|
+
'watchTradesForSymbols': True,
|
22
23
|
'watchOrders': True,
|
23
24
|
'watchMyTrades': True,
|
24
25
|
'watchBalance': True,
|
@@ -79,11 +80,51 @@ class upbit(ccxt.async_support.upbit):
|
|
79
80
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
80
81
|
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
|
81
82
|
"""
|
83
|
+
return await self.watch_trades_for_symbols([symbol], since, limit, params)
|
84
|
+
|
85
|
+
async def watch_trades_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
86
|
+
"""
|
87
|
+
get the list of most recent trades for a list of symbols
|
88
|
+
:see: https://global-docs.upbit.com/reference/websocket-trade
|
89
|
+
:param str[] symbols: unified symbol of the market to fetch trades for
|
90
|
+
:param int [since]: timestamp in ms of the earliest trade to fetch
|
91
|
+
:param int [limit]: the maximum amount of trades to fetch
|
92
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
93
|
+
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
|
94
|
+
"""
|
82
95
|
await self.load_markets()
|
83
|
-
|
84
|
-
|
96
|
+
symbols = self.market_symbols(symbols, None, False, True, True)
|
97
|
+
channel = 'trade'
|
98
|
+
messageHashes = []
|
99
|
+
url = self.implode_params(self.urls['api']['ws'], {
|
100
|
+
'hostname': self.hostname,
|
101
|
+
})
|
102
|
+
if symbols is not None:
|
103
|
+
for i in range(0, len(symbols)):
|
104
|
+
market = self.market(symbols[i])
|
105
|
+
marketId = market['id']
|
106
|
+
symbol = market['symbol']
|
107
|
+
self.options[channel] = self.safe_value(self.options, channel, {})
|
108
|
+
self.options[channel][symbol] = True
|
109
|
+
messageHashes.append(channel + ':' + marketId)
|
110
|
+
optionSymbols = list(self.options[channel].keys())
|
111
|
+
marketIds = self.market_ids(optionSymbols)
|
112
|
+
request = [
|
113
|
+
{
|
114
|
+
'ticket': self.uuid(),
|
115
|
+
},
|
116
|
+
{
|
117
|
+
'type': channel,
|
118
|
+
'codes': marketIds,
|
119
|
+
# 'isOnlySnapshot': False,
|
120
|
+
# 'isOnlyRealtime': False,
|
121
|
+
},
|
122
|
+
]
|
123
|
+
trades = await self.watch_multiple(url, messageHashes, request, messageHashes)
|
85
124
|
if self.newUpdates:
|
86
|
-
|
125
|
+
first = self.safe_value(trades, 0)
|
126
|
+
tradeSymbol = self.safe_string(first, 'symbol')
|
127
|
+
limit = trades.getLimit(tradeSymbol, limit)
|
87
128
|
return self.filter_by_since_limit(trades, since, limit, 'timestamp', True)
|
88
129
|
|
89
130
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
ccxt/pro/vertex.py
CHANGED
ccxt/pro/wazirx.py
CHANGED
@@ -22,6 +22,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
22
22
|
'watchTicker': True,
|
23
23
|
'watchTickers': True,
|
24
24
|
'watchTrades': True,
|
25
|
+
'watchTradesForSymbols': False,
|
25
26
|
'watchMyTrades': True,
|
26
27
|
'watchOrders': True,
|
27
28
|
'watchOrderBook': True,
|
@@ -283,6 +284,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
283
284
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
284
285
|
"""
|
285
286
|
get the list of most recent trades for a particular symbol
|
287
|
+
:see: https://docs.wazirx.com/#trade-streams
|
286
288
|
:param str symbol: unified symbol of the market to fetch trades for
|
287
289
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
288
290
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -371,6 +373,7 @@ class wazirx(ccxt.async_support.wazirx):
|
|
371
373
|
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
372
374
|
"""
|
373
375
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
376
|
+
:see: https://docs.wazirx.com/#kline-candlestick-stream
|
374
377
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
375
378
|
:param str timeframe: the length of time each candle represents
|
376
379
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
ccxt/pro/whitebit.py
CHANGED
@@ -27,6 +27,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
27
27
|
'watchOrders': True,
|
28
28
|
'watchTicker': True,
|
29
29
|
'watchTrades': True,
|
30
|
+
'watchTradesForSymbols': False,
|
30
31
|
},
|
31
32
|
'urls': {
|
32
33
|
'api': {
|
@@ -67,6 +68,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
67
68
|
async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
|
68
69
|
"""
|
69
70
|
watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
71
|
+
:see: https://docs.whitebit.com/public/websocket/#kline
|
70
72
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
71
73
|
:param str timeframe: the length of time each candle represents
|
72
74
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
@@ -135,6 +137,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
135
137
|
async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
|
136
138
|
"""
|
137
139
|
watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
140
|
+
:see: https://docs.whitebit.com/public/websocket/#market-depth
|
138
141
|
:param str symbol: unified symbol of the market to fetch the order book for
|
139
142
|
:param int [limit]: the maximum amount of order book entries to return
|
140
143
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
@@ -233,6 +236,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
233
236
|
async def watch_ticker(self, symbol: str, params={}) -> Ticker:
|
234
237
|
"""
|
235
238
|
watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
239
|
+
:see: https://docs.whitebit.com/public/websocket/#market-statistics
|
236
240
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
237
241
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
238
242
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
@@ -295,6 +299,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
295
299
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
296
300
|
"""
|
297
301
|
get the list of most recent trades for a particular symbol
|
302
|
+
:see: https://docs.whitebit.com/public/websocket/#market-trades
|
298
303
|
:param str symbol: unified symbol of the market to fetch trades for
|
299
304
|
:param int [since]: timestamp in ms of the earliest trade to fetch
|
300
305
|
:param int [limit]: the maximum amount of trades to fetch
|
@@ -356,6 +361,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
356
361
|
async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
357
362
|
"""
|
358
363
|
watches trades made by the user
|
364
|
+
:see: https://docs.whitebit.com/private/websocket/#deals
|
359
365
|
:param str symbol: unified market symbol
|
360
366
|
:param int [since]: the earliest time in ms to fetch trades for
|
361
367
|
:param int [limit]: the maximum number of trades structures to retrieve
|
@@ -449,6 +455,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
449
455
|
async def watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
|
450
456
|
"""
|
451
457
|
watches information on multiple orders made by the user
|
458
|
+
:see: https://docs.whitebit.com/private/websocket/#orders-pending
|
452
459
|
:param str symbol: unified market symbol of the market orders were made in
|
453
460
|
:param int [since]: the earliest time in ms to fetch orders for
|
454
461
|
:param int [limit]: the maximum number of order structures to retrieve
|
@@ -612,6 +619,8 @@ class whitebit(ccxt.async_support.whitebit):
|
|
612
619
|
async def watch_balance(self, params={}) -> Balances:
|
613
620
|
"""
|
614
621
|
watch balance and get the amount of funds available for trading or funds locked in orders
|
622
|
+
:see: https://docs.whitebit.com/private/websocket/#balance-spot
|
623
|
+
:see: https://docs.whitebit.com/private/websocket/#balance-margin
|
615
624
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
616
625
|
:param str [params.type]: spot or contract if not provided self.options['defaultType'] is used
|
617
626
|
:returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
|
ccxt/test/tests_async.py
CHANGED
@@ -920,6 +920,9 @@ class testMainClass(baseMainTestClass):
|
|
920
920
|
is_disabled = exchange.safe_bool(result, 'disabled', False)
|
921
921
|
if is_disabled:
|
922
922
|
continue
|
923
|
+
is_disabled_c_sharp = exchange.safe_bool(result, 'disabledCS', False)
|
924
|
+
if is_disabled_c_sharp and (self.lang == 'C#'):
|
925
|
+
continue
|
923
926
|
type = exchange.safe_string(exchange_data, 'outputType')
|
924
927
|
skip_keys = exchange.safe_value(exchange_data, 'skipKeys', [])
|
925
928
|
await self.test_request_statically(exchange, method, result, type, skip_keys)
|
@@ -1036,7 +1039,7 @@ class testMainClass(baseMainTestClass):
|
|
1036
1039
|
# -----------------------------------------------------------------------------
|
1037
1040
|
# --- Init of brokerId tests functions-----------------------------------------
|
1038
1041
|
# -----------------------------------------------------------------------------
|
1039
|
-
promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex()]
|
1042
|
+
promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex(), self.test_hashkey()]
|
1040
1043
|
await asyncio.gather(*promises)
|
1041
1044
|
success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
|
1042
1045
|
dump('[INFO]' + success_message)
|
@@ -1484,3 +1487,17 @@ class testMainClass(baseMainTestClass):
|
|
1484
1487
|
if not self.is_synchronous:
|
1485
1488
|
await close(exchange)
|
1486
1489
|
return True
|
1490
|
+
|
1491
|
+
async def test_hashkey(self):
|
1492
|
+
exchange = self.init_offline_exchange('hashkey')
|
1493
|
+
req_headers = None
|
1494
|
+
id = '10000700011'
|
1495
|
+
try:
|
1496
|
+
await exchange.create_order('BTC/USDT', 'limit', 'buy', 1, 20000)
|
1497
|
+
except Exception as e:
|
1498
|
+
# we expect an error here, we're only interested in the headers
|
1499
|
+
req_headers = exchange.last_request_headers
|
1500
|
+
assert req_headers['INPUT-SOURCE'] == id, 'hashkey - id: ' + id + ' not in headers.'
|
1501
|
+
if not self.is_synchronous:
|
1502
|
+
await close(exchange)
|
1503
|
+
return True
|
ccxt/test/tests_sync.py
CHANGED
@@ -917,6 +917,9 @@ class testMainClass(baseMainTestClass):
|
|
917
917
|
is_disabled = exchange.safe_bool(result, 'disabled', False)
|
918
918
|
if is_disabled:
|
919
919
|
continue
|
920
|
+
is_disabled_c_sharp = exchange.safe_bool(result, 'disabledCS', False)
|
921
|
+
if is_disabled_c_sharp and (self.lang == 'C#'):
|
922
|
+
continue
|
920
923
|
type = exchange.safe_string(exchange_data, 'outputType')
|
921
924
|
skip_keys = exchange.safe_value(exchange_data, 'skipKeys', [])
|
922
925
|
self.test_request_statically(exchange, method, result, type, skip_keys)
|
@@ -1033,7 +1036,7 @@ class testMainClass(baseMainTestClass):
|
|
1033
1036
|
# -----------------------------------------------------------------------------
|
1034
1037
|
# --- Init of brokerId tests functions-----------------------------------------
|
1035
1038
|
# -----------------------------------------------------------------------------
|
1036
|
-
promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex()]
|
1039
|
+
promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex(), self.test_hashkey()]
|
1037
1040
|
(promises)
|
1038
1041
|
success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
|
1039
1042
|
dump('[INFO]' + success_message)
|
@@ -1481,3 +1484,17 @@ class testMainClass(baseMainTestClass):
|
|
1481
1484
|
if not self.is_synchronous:
|
1482
1485
|
close(exchange)
|
1483
1486
|
return True
|
1487
|
+
|
1488
|
+
def test_hashkey(self):
|
1489
|
+
exchange = self.init_offline_exchange('hashkey')
|
1490
|
+
req_headers = None
|
1491
|
+
id = '10000700011'
|
1492
|
+
try:
|
1493
|
+
exchange.create_order('BTC/USDT', 'limit', 'buy', 1, 20000)
|
1494
|
+
except Exception as e:
|
1495
|
+
# we expect an error here, we're only interested in the headers
|
1496
|
+
req_headers = exchange.last_request_headers
|
1497
|
+
assert req_headers['INPUT-SOURCE'] == id, 'hashkey - id: ' + id + ' not in headers.'
|
1498
|
+
if not self.is_synchronous:
|
1499
|
+
close(exchange)
|
1500
|
+
return True
|
ccxt/upbit.py
CHANGED
@@ -1891,7 +1891,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
1891
1891
|
body = self.json(params)
|
1892
1892
|
headers['Content-Type'] = 'application/json'
|
1893
1893
|
if hasQuery:
|
1894
|
-
auth = self.
|
1894
|
+
auth = self.rawencode(query)
|
1895
1895
|
if auth is not None:
|
1896
1896
|
hash = self.hash(self.encode(auth), 'sha512')
|
1897
1897
|
request['query_hash'] = hash
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.88
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -70,6 +70,7 @@ Current feature list:
|
|
70
70
|
|
71
71
|
|
72
72
|
## Sponsored Promotion
|
73
|
+
[](https://support.global.hashkey.com/hc/en-us/articles/15485543021468-Trade-Through-CCXT-to-Grab-up-to-1-000-USDT-30-Day-VIP5-Trial)
|
73
74
|
|
74
75
|
## See Also
|
75
76
|
|
@@ -96,7 +97,7 @@ Current feature list:
|
|
96
97
|
| [](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [](https://docs.coinex.com/api/v2) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
97
98
|
| [](https://crypto.com/exch/kdacthrnxt) | cryptocom | [Crypto.com](https://crypto.com/exch/kdacthrnxt) | [](https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://crypto.com/exch/kdacthrnxt) |
|
98
99
|
| [](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [](https://www.gate.io/docs/developers/apiv4/en/) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://www.gate.io/signup/2436035) |
|
99
|
-
| [](https://global.hashkey.com/)
|
100
|
+
| [](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | hashkey | [HashKey Global](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | [](https://hashkeyglobal-apidoc.readme.io/) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
100
101
|
| [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [](https://huobiapi.github.io/docs/spot/v1/en/) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) |
|
101
102
|
| [](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | kucoin | [KuCoin](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | [](https://docs.kucoin.com) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
102
103
|
| [](https://futures.kucoin.com/?rcode=E5wkqe) | kucoinfutures | [KuCoin Futures](https://futures.kucoin.com/?rcode=E5wkqe) | [](https://docs.kucoin.com/futures) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
@@ -166,7 +167,7 @@ The CCXT library currently supports the following 103 cryptocurrency exchange ma
|
|
166
167
|
| [](https://fmfw.io/referral/da948b21d6c92d69) | fmfwio | [FMFW.io](https://fmfw.io/referral/da948b21d6c92d69) | [](https://api.fmfw.io/) | cex | | |
|
167
168
|
| [](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [](https://www.gate.io/docs/developers/apiv4/en/) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
168
169
|
| [](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | [](https://docs.gemini.com/rest-api) | cex | | [](https://ccxt.pro) |
|
169
|
-
| [](https://global.hashkey.com/)
|
170
|
+
| [](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | hashkey | [HashKey Global](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | [](https://hashkeyglobal-apidoc.readme.io/) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
170
171
|
| [](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | [](https://api.hitbtc.com) | cex | | |
|
171
172
|
| [](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | [](https://apidocs.hollaex.com) | cex | | [](https://ccxt.pro) |
|
172
173
|
| [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [](https://huobiapi.github.io/docs/spot/v1/en/) | cex | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
@@ -271,13 +272,13 @@ console.log(version, Object.keys(exchanges));
|
|
271
272
|
|
272
273
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
273
274
|
|
274
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
275
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
275
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.88/dist/ccxt.browser.min.js
|
276
|
+
* unpkg: https://unpkg.com/ccxt@4.3.88/dist/ccxt.browser.min.js
|
276
277
|
|
277
278
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
278
279
|
|
279
280
|
```HTML
|
280
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
281
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.88/dist/ccxt.browser.min.js"></script>
|
281
282
|
```
|
282
283
|
|
283
284
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=23FgTf8AUXhOkBQjYQ8GKJp5wv8AkSxfag9E7WUp790,16681
|
2
2
|
ccxt/ace.py,sha256=Gee4ymA83iAuBFm3J8NaTb7qmu9buV2trA676KCtSVg,42383
|
3
3
|
ccxt/alpaca.py,sha256=HQuhQZSFGRlT-BaCUSEZmxpzYp6tll2zn63qn3gTmoU,47470
|
4
4
|
ccxt/ascendex.py,sha256=4aEwibO_me6khr66z8JFqDBxe2gtFOWIFBE7ulBEJPs,151933
|
@@ -8,7 +8,7 @@ ccxt/binance.py,sha256=234uj97QAqu_-AqxFaFczbV4jnXyhemCsq_RxJQgwjw,641408
|
|
8
8
|
ccxt/binancecoinm.py,sha256=arFnEh8mErSyi23eVPWE4iwoT7PWQyxGGVJCKCy6UJY,1702
|
9
9
|
ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
|
10
10
|
ccxt/binanceusdm.py,sha256=bAPcJj5HLxoCdPolriM8sJpoTBwbV78vBTbKRmWhNP4,2632
|
11
|
-
ccxt/bingx.py,sha256=
|
11
|
+
ccxt/bingx.py,sha256=yTClKbMVv9rh30l0sRuzZJMRyYSjsxO2bzlFztfylBo,244475
|
12
12
|
ccxt/bit2c.py,sha256=KwHefm2dfgcSR5LeGbHpFQlSI3LNot8tmDEgRJc2gBc,37061
|
13
13
|
ccxt/bitbank.py,sha256=bHLOW6EAbNsjK2nXCtmxj23f2geW_-E_xfHXAvARMtw,43534
|
14
14
|
ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
|
@@ -42,7 +42,7 @@ ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
|
|
42
42
|
ccxt/coinbaseexchange.py,sha256=DK8GJ5Xb6G6Hf-UkxG1j09RMeQRqeZlXIMwTum-Xu4w,78907
|
43
43
|
ccxt/coinbaseinternational.py,sha256=86zQOXD8CLDI3MpBtmpbQsmtUzk-pBdrg8HM_NCCer4,97440
|
44
44
|
ccxt/coincheck.py,sha256=SeNvZm_3p01IsW8y6b3rw67qiMu29S59HHPG6Jma_T4,35942
|
45
|
-
ccxt/coinex.py,sha256=
|
45
|
+
ccxt/coinex.py,sha256=1m9hSsd9-pIzCeH579yMlioSrSJVbpvX_Diw3FjTf8c,257427
|
46
46
|
ccxt/coinlist.py,sha256=Z2v-sn9_K3JUt42tQX5Naq3p55fH2giM2-fnSx--O2k,104123
|
47
47
|
ccxt/coinmate.py,sha256=BkPcT92OQFeUQtnLDIkl-Sg0PcLrQ87RfHMFIybJoWk,46190
|
48
48
|
ccxt/coinmetro.py,sha256=1HqUu4ScH4oZbloodvn0l25y7DaUMl_5MjBf5v8z_cA,80591
|
@@ -59,7 +59,7 @@ ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
|
|
59
59
|
ccxt/gate.py,sha256=dlKwcUQOvriaUmopMaF4BiziBTFdIoaEgt3-LKS8lk8,327645
|
60
60
|
ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
|
61
61
|
ccxt/gemini.py,sha256=ddoOnPZzu-l899JGVw4b9wwT9HI20mVqLz7iihhZxng,80876
|
62
|
-
ccxt/hashkey.py,sha256=
|
62
|
+
ccxt/hashkey.py,sha256=AfbhV_QCW31jzy8BFPnmGdhWfXz4WILIl-qh3jB4ZMc,191738
|
63
63
|
ccxt/hitbtc.py,sha256=iqyd0otbWmIHUJiJ6gzIfe34IOa8PCEeS8nG6s6Ogc0,153398
|
64
64
|
ccxt/hitbtc3.py,sha256=qRAr4Zvaju9IQWRZUohdoN7xRnzIMPq8AyYb3gPv-Is,455
|
65
65
|
ccxt/hollaex.py,sha256=2KIbenZ3vcBDN_rs2CxG5_foKLaYxJd73vVV7M8n_8E,76140
|
@@ -70,9 +70,9 @@ ccxt/hyperliquid.py,sha256=ZHqoPUgMHPRsfEP3TaHhPHSFniAVZj7RBSHcfUxbUwQ,110702
|
|
70
70
|
ccxt/idex.py,sha256=P2jNsxiwIlMgrfPKbtmjLJQrzFcWp_TjgJaLq793oco,73255
|
71
71
|
ccxt/independentreserve.py,sha256=ChkSnahGsn0aN_cfaAonSk-V2Aa1UB-0cPTa1d3AdI4,37713
|
72
72
|
ccxt/indodax.py,sha256=VdTGxm49I6s-DhT0H1NLFVJ1XYaDWpq51jP2tyK68Ks,54580
|
73
|
-
ccxt/kraken.py,sha256=
|
73
|
+
ccxt/kraken.py,sha256=G-ZCciNlUz1us3Q9O5HTdJ0qqX-pZuKeJQ_pRScdqpA,132889
|
74
74
|
ccxt/krakenfutures.py,sha256=_-bbgzshifKnbyOB1pSs_bRfRepkRAdiDlsLDRiAw9w,119597
|
75
|
-
ccxt/kucoin.py,sha256=
|
75
|
+
ccxt/kucoin.py,sha256=QJc-itNiyyNNt5R7MIgKPv-Qj6FZgIth0JqvqQrkbZA,226699
|
76
76
|
ccxt/kucoinfutures.py,sha256=bINtr0EBupNmE_IufzwRy7GuWHa5JtBmtrPk-WjhCno,124756
|
77
77
|
ccxt/kuna.py,sha256=GnIMk8R_IL84FTUHDNP6jHxd2FKNX9YwfoCXoYG83uA,96157
|
78
78
|
ccxt/latoken.py,sha256=JkfGMFYEQqE_2BG3EHQozelw6yxbHXu1TPebg4a3Cgg,79462
|
@@ -98,7 +98,7 @@ ccxt/probit.py,sha256=MFA0bFG-xEx3ZDQIWebUKaP83mCjYKVcztk3e61Zx8Y,76165
|
|
98
98
|
ccxt/timex.py,sha256=Un10iGNwAHPifpQftyXdUwoqS-10ho6ZIesz2Ts_Iqg,72068
|
99
99
|
ccxt/tokocrypto.py,sha256=aV-98hzr75iQO3GEmiUyTNufDqHfoze04Z2Fk195B3Q,123192
|
100
100
|
ccxt/tradeogre.py,sha256=DCxTLjtGW7ADRA-jekCkGAn81-GIgdOAxbJFcBLYOFU,24211
|
101
|
-
ccxt/upbit.py,sha256=
|
101
|
+
ccxt/upbit.py,sha256=d03xZjLdhtMrqTVm3VYmvQoT7inmq05bjrUNrJLi_7U,85413
|
102
102
|
ccxt/vertex.py,sha256=YoKnzxhem56C19SckA6yHUPH1bk86PfZ4Z-T01TFygg,121761
|
103
103
|
ccxt/wavesexchange.py,sha256=vmzv9h1QjthvpKUGajQn_tdCJ5tWmzEA6r7ow_y6ASY,114980
|
104
104
|
ccxt/wazirx.py,sha256=LVHNdononi8FrZpT0pYiJoS-NrNi7_uIZ6Qbu8dJRPc,52405
|
@@ -183,8 +183,8 @@ ccxt/abstract/independentreserve.py,sha256=Cue0hud5acRs2Q6oSvQ7Rx-YWS_fuACs6uV3a
|
|
183
183
|
ccxt/abstract/indodax.py,sha256=E16v8W6Ac9kmV9hFEqf_kwV6VQmK74lc1LEUEkuDpYg,2488
|
184
184
|
ccxt/abstract/kraken.py,sha256=AUpdQHWHZFXseHNx1-cuLqRutYwYEUVqQ7mjc0TQR_s,5883
|
185
185
|
ccxt/abstract/krakenfutures.py,sha256=pu81cKhQgBkQd8F9-Ly3b7xQD-qQ8WLi8EUMfmAUJcM,4080
|
186
|
-
ccxt/abstract/kucoin.py,sha256=
|
187
|
-
ccxt/abstract/kucoinfutures.py,sha256=
|
186
|
+
ccxt/abstract/kucoin.py,sha256=7R8BIrjg7MWwhPyASYocz0xm_iQseedlnnHQWPNTpf8,28099
|
187
|
+
ccxt/abstract/kucoinfutures.py,sha256=DOjys-FXHlGN2Rxy9gXIHB7FR9CF5Csq7IwNgxFbh9E,31069
|
188
188
|
ccxt/abstract/kuna.py,sha256=IsaLq8A4DUOlQ8Esyk0WqBU6hHm5Q4sIqhgnMIvDGX0,24579
|
189
189
|
ccxt/abstract/latoken.py,sha256=1GqE9WxrubgZILnYvg7W_dGyui-FKeIv0bU4z1dQj1k,7168
|
190
190
|
ccxt/abstract/lbank.py,sha256=pdut_cIcwcUhN_ZCyWJxixBc4dgeQqvENYqFCrUYrvA,8675
|
@@ -220,7 +220,7 @@ ccxt/abstract/xt.py,sha256=JkWvsic3L2O968BCr9H5Wd5NIbRE9aTT2A-9WbAtl0c,27146
|
|
220
220
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
221
221
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
222
222
|
ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
|
223
|
-
ccxt/async_support/__init__.py,sha256=
|
223
|
+
ccxt/async_support/__init__.py,sha256=M3oRw_D1I2bHirUbebT9HPxtfcZfLIZdcpDBvMoG6oc,16504
|
224
224
|
ccxt/async_support/ace.py,sha256=zBmLUKH691a2BH1sPzlJPg-uO7lD6Ys92Rv8WSzNtoo,42607
|
225
225
|
ccxt/async_support/alpaca.py,sha256=495vDvdF1IWlsh9QhUnMtkMuINdD0EzeFGlUVqCf8TE,47682
|
226
226
|
ccxt/async_support/ascendex.py,sha256=LK259BdUqU0_STGRH6DmTgaR-7lXqFpZHFVACf2um5c,152721
|
@@ -230,7 +230,7 @@ ccxt/async_support/binance.py,sha256=pzuysonW4qV1Q2_bIbNVWqm6SWgkCgKrGolvgqlfOEg
|
|
230
230
|
ccxt/async_support/binancecoinm.py,sha256=yeE73xG5UXD_X3VPul6DMGnV_mgJfWYskpas1BUDdCU,1740
|
231
231
|
ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
|
232
232
|
ccxt/async_support/binanceusdm.py,sha256=8ugRkx7vyYmn67wdkEEf2f-DFMGAoC4t09usKlPVNyw,2670
|
233
|
-
ccxt/async_support/bingx.py,sha256=
|
233
|
+
ccxt/async_support/bingx.py,sha256=W9SEVvwqG75vY3mkSnsP1kAWB-aRq-lNWsL-nET8-6w,245745
|
234
234
|
ccxt/async_support/bit2c.py,sha256=1s8GGFqdk9FHfG6-fCmJGePppIpHDHZkjN7u6gPekP8,37273
|
235
235
|
ccxt/async_support/bitbank.py,sha256=To1wSMT8i2bVRZABSXIuB2pyeLhmKkE6CHP4i9LMQQU,43794
|
236
236
|
ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
|
@@ -264,7 +264,7 @@ ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNA
|
|
264
264
|
ccxt/async_support/coinbaseexchange.py,sha256=oJKFrv_bwjwyOGnTprrOoTsUToavrH4f0sTwQlEqZgc,79413
|
265
265
|
ccxt/async_support/coinbaseinternational.py,sha256=d_xWWicD-Zya2BT0YaKmr9Nrl4XbUfWOUe1FWUIXnQo,98054
|
266
266
|
ccxt/async_support/coincheck.py,sha256=N_0cDMAiFRC4G--QgOmSH8esKDr_lEVZUpukc4QoHk8,36148
|
267
|
-
ccxt/async_support/coinex.py,sha256=
|
267
|
+
ccxt/async_support/coinex.py,sha256=PjfFGPesoM1d9POYPDFCZINi72MTLeRxyoKPnKCrjsk,258685
|
268
268
|
ccxt/async_support/coinlist.py,sha256=NTN-W6Jm4fcwvBHRcSB6yj4QTeNrMg5IyZiYpkKUGZ0,104611
|
269
269
|
ccxt/async_support/coinmate.py,sha256=NI58zYMkuOL9lB3UFzyjUNbuFZGrtjZbb4PBFTOsbz4,46456
|
270
270
|
ccxt/async_support/coinmetro.py,sha256=BloSsFuLoLTt_lnaZL051g75Yn1M2LIf7kMCZLOiYTc,80911
|
@@ -281,7 +281,7 @@ ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,
|
|
281
281
|
ccxt/async_support/gate.py,sha256=Y4dVM0if4e3a3uG_Wgj10t4oWRBHdjt-0Sp0v3yIWNg,329365
|
282
282
|
ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
|
283
283
|
ccxt/async_support/gemini.py,sha256=7X5-PE3rPrPycUVXu3FtAcDFjNR3QUwYd6lPRQYQeEw,81389
|
284
|
-
ccxt/async_support/hashkey.py,sha256=
|
284
|
+
ccxt/async_support/hashkey.py,sha256=bwQsEvhGU60iy_vlAbLvtx1blhDxS4L3cqoTpk6JNQ8,192580
|
285
285
|
ccxt/async_support/hitbtc.py,sha256=jWmyRAy_wkpEidgjCxU0gWur99YJjYHPjD9CN4vJbUE,154444
|
286
286
|
ccxt/async_support/hitbtc3.py,sha256=dmSYoD2o4av_zzbZI8HNIoj8BWxA7QozsVpy8JaOXzU,469
|
287
287
|
ccxt/async_support/hollaex.py,sha256=msUnnbWLNeCxFW77BnfLoFWBdvQIDwV7Rtbi9TA4TYY,76574
|
@@ -292,9 +292,9 @@ ccxt/async_support/hyperliquid.py,sha256=Ct1KjpC9j4l-ul0r8RWpeeX-6bCdcXrNrrHpdNz
|
|
292
292
|
ccxt/async_support/idex.py,sha256=UcAvdMc2CP_6E8lET4rmQiIP-RaUfZHSo6pQeA17v-g,73731
|
293
293
|
ccxt/async_support/independentreserve.py,sha256=fCTAQ1U74KOZHIoYbDxzEly1xSgykcYcdpeiJiCEXkU,37991
|
294
294
|
ccxt/async_support/indodax.py,sha256=S4qV7w3gMTRLnzahoCKR70oeRlpxOV3mXDdJw8XpIo8,54888
|
295
|
-
ccxt/async_support/kraken.py,sha256=
|
295
|
+
ccxt/async_support/kraken.py,sha256=jSho6sFS0oWj4thiAy5AUENYwv2PUWCrXhv8QTZQicA,133539
|
296
296
|
ccxt/async_support/krakenfutures.py,sha256=stPhBne9pFVlgFkw4mwqtaaI6NTZCAcmOIFVlQSbl8I,120085
|
297
|
-
ccxt/async_support/kucoin.py,sha256=
|
297
|
+
ccxt/async_support/kucoin.py,sha256=yUpyvMjHLy3Vf4yFGENe5CnbWjLly1PNL8v576NCg0o,227800
|
298
298
|
ccxt/async_support/kucoinfutures.py,sha256=X6TMi-Bjv2mijE8xGbg-qp9Ha8Nl7o1Z5LjEiDgxaJ8,125394
|
299
299
|
ccxt/async_support/kuna.py,sha256=QtzLgqgv8mLXECN2drWNVtdvm_vy-bawdxKvozDzbVE,96573
|
300
300
|
ccxt/async_support/latoken.py,sha256=iLypvfxDSW3PGHWLraibz0hBZV4ch5LYH5D24VOnIqk,79938
|
@@ -320,7 +320,7 @@ ccxt/async_support/probit.py,sha256=8XCtYbAIIQNjfdLfMVwjaJ9vM_7QWnEQ86yYZYPlS8M,
|
|
320
320
|
ccxt/async_support/timex.py,sha256=vRHjqc-6uMgZTY-sFTBApU_QBnrUri8gaHPNw_Na3Jo,72430
|
321
321
|
ccxt/async_support/tokocrypto.py,sha256=nzJhrGTCTWMbbjI4P_IKfO1O84td8pSssCgZhTqQ7o4,123554
|
322
322
|
ccxt/async_support/tradeogre.py,sha256=A4DEbbRL_g_5WAp7WOB96s08-zgXfGQ9lYZnDX5H1eI,24405
|
323
|
-
ccxt/async_support/upbit.py,sha256=
|
323
|
+
ccxt/async_support/upbit.py,sha256=r-7J61DYPXfCOa2-iks16MIiqF4IjfuIWQURyximwZ4,85895
|
324
324
|
ccxt/async_support/vertex.py,sha256=_KDPAVq5Bew-w77wiGQpivZCGRs6yGKoW9HGh8PhOLc,122261
|
325
325
|
ccxt/async_support/wavesexchange.py,sha256=wHxvsBQydDEYRgeAZKI9WO4TLBKmmSPTLm0eT0pKB5g,115530
|
326
326
|
ccxt/async_support/wazirx.py,sha256=bnUpw9be3o4l2Hxm3jcfNXn5bMyZlgqoG8BGPusuIzs,52707
|
@@ -332,7 +332,7 @@ ccxt/async_support/yobit.py,sha256=GQhvYrsGHQrVdTrNHQxx9isEGqUABexlllzao9HL3f8,5
|
|
332
332
|
ccxt/async_support/zaif.py,sha256=-ZTr8M2JaIRCL90VrbCDXBMAsZwbiwsFChSQ2rWODuQ,29044
|
333
333
|
ccxt/async_support/zonda.py,sha256=jncr6Wg12S72CTpu6mCKCse1pm1f8oefVQurQSrFvP0,81733
|
334
334
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
335
|
-
ccxt/async_support/base/exchange.py,sha256=
|
335
|
+
ccxt/async_support/base/exchange.py,sha256=5gYwEWsGfJ-E_hGw5Cd6WA8jshD6tOScctIv3qwPifg,110810
|
336
336
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
337
337
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
338
338
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
|
@@ -345,11 +345,11 @@ ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6Vxh
|
|
345
345
|
ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
|
346
346
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
347
347
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
348
|
-
ccxt/base/errors.py,sha256=
|
349
|
-
ccxt/base/exchange.py,sha256=
|
348
|
+
ccxt/base/errors.py,sha256=Pad-6ugvGUwhoYuKUliX-N7FTrcnKCQGFjsaq2tMn0I,4610
|
349
|
+
ccxt/base/exchange.py,sha256=5Taus_1UzI7oNC5LUC4AAOs1T2pL1jOmBneMLwblCuE,295915
|
350
350
|
ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
|
351
351
|
ccxt/base/types.py,sha256=TaP_RElKjGEZWuzyp4o4u2YhREyTG3rUeVT6gDffY9A,9613
|
352
|
-
ccxt/pro/__init__.py,sha256
|
352
|
+
ccxt/pro/__init__.py,sha256=TgfvbDadi5Tx5MypGJ8Luws6Vh0YJQiG5VNXCruz0Fc,7710
|
353
353
|
ccxt/pro/alpaca.py,sha256=xh1yg1Ok-Zh_Mfx-MBjNrfJDs6MUU0exFfEj3GuQPC4,27631
|
354
354
|
ccxt/pro/ascendex.py,sha256=QueLgISoIxgGSOta2W7En4pwAsEXbTP5q5ef4UjpTQQ,37524
|
355
355
|
ccxt/pro/bequant.py,sha256=33OEUWBi4D9-2w8CmkwN3aF1qS-AlLqX3pxrWwNbXPY,1552
|
@@ -359,27 +359,27 @@ ccxt/pro/binanceus.py,sha256=_IXpS_wyH0nEtsLR7cJLtrUlsNQoG0MSUVo3PV0RDDc,1946
|
|
359
359
|
ccxt/pro/binanceusdm.py,sha256=lLdOv0d-lM-1wfCc_y_POb6GdmVIiX7PFzmKTWsVyNw,1512
|
360
360
|
ccxt/pro/bingx.py,sha256=Ji6EBezDtGbL2en15Syb2G1Ra9RcuJyaef5GxSHho20,54046
|
361
361
|
ccxt/pro/bitcoincom.py,sha256=zAX6hiz4hS6Un8dSGp88rpnvItxQHfNmsfF0IZ2xIVA,1181
|
362
|
-
ccxt/pro/bitfinex.py,sha256=
|
363
|
-
ccxt/pro/bitfinex2.py,sha256=
|
364
|
-
ccxt/pro/bitget.py,sha256
|
362
|
+
ccxt/pro/bitfinex.py,sha256=BlgNy4_TUPggvfcfpfl7309Phons-2lFp73OdDbQHpw,25305
|
363
|
+
ccxt/pro/bitfinex2.py,sha256=H2evIdXrXaHpmvlqoPCOqADYjiHqvZVLf9EnbYHBOj8,43106
|
364
|
+
ccxt/pro/bitget.py,sha256=-sK8WqkT1ddS6HLwp0Hr6kGKZ2ELqeW-FOt8IqCStnE,85233
|
365
365
|
ccxt/pro/bithumb.py,sha256=dqYKWebxFg4rsP7jg3oBnCUBcpZAoqAmZsozAU9pYds,16835
|
366
366
|
ccxt/pro/bitmart.py,sha256=LxcP6aiCdwN-euseCMhsXZkhqesPJM-eLh549sGHHfo,62556
|
367
367
|
ccxt/pro/bitmex.py,sha256=dNQf2EAim7kxgCM6I1TgFDl-e2zrXa2veicTEqu8WbQ,73949
|
368
|
-
ccxt/pro/bitopro.py,sha256=
|
368
|
+
ccxt/pro/bitopro.py,sha256=eGge1vzVXPx1FGZc1cm5i_MzBKlRkWH2ZKuIzrR3G2Q,18798
|
369
369
|
ccxt/pro/bitpanda.py,sha256=ELrhfFKN9YJJdmm9wBf-vpk6WsXGWGf-SyJdqm-E_Lg,415
|
370
370
|
ccxt/pro/bitrue.py,sha256=0-aa3Q8oGLnq71fJQYLyy0jI3NHHTFJuMQAyM0XRLFY,16246
|
371
|
-
ccxt/pro/bitstamp.py,sha256=
|
371
|
+
ccxt/pro/bitstamp.py,sha256=tysJpRxfVnZKp-_xgfIhsOVh3ilnQQhXjV-grzqz3QM,20964
|
372
372
|
ccxt/pro/bitvavo.py,sha256=POivGXYmz8GqYc_uErpS6BdG2Gv087BStiJ3lQwod-A,56219
|
373
|
-
ccxt/pro/blockchaincom.py,sha256=
|
373
|
+
ccxt/pro/blockchaincom.py,sha256=yRJ4m0mTG5FSbkdH4QvuXNnBvLv9kDMGbAMwpcJnyDI,29648
|
374
374
|
ccxt/pro/blofin.py,sha256=Wjw0coQ4TO1qdVVnBGSdRDVtADsl-t-hkOo-uEDZTbc,28659
|
375
375
|
ccxt/pro/bybit.py,sha256=p4YRpTqU3nuCiW2ma1h2Lii0V8S8HX1FmU8t62UTg6A,92054
|
376
|
-
ccxt/pro/cex.py,sha256=
|
376
|
+
ccxt/pro/cex.py,sha256=8HgAOhMNU_2hiklxVZTNZVDHcWDXDjuzwSrimdCaMeI,58541
|
377
377
|
ccxt/pro/coinbase.py,sha256=hwd8lUuaW8WyQQOh9WvBVuiuOJTpmlCXU0hL3UE8UFQ,31411
|
378
378
|
ccxt/pro/coinbaseexchange.py,sha256=eoDBwYvGK__zGtC0yNRk2evWwQAD6XpjMHcpubjBt2U,39027
|
379
379
|
ccxt/pro/coinbaseinternational.py,sha256=1ykwnp6XaOqvH0HILlZvrJdgvscF2lnZfIyn5U9tqWY,32250
|
380
|
-
ccxt/pro/coincheck.py,sha256=
|
380
|
+
ccxt/pro/coincheck.py,sha256=zzZcPmL4Vibh_Sjont-3D8z-E11ugVQVqPakHQxpgKs,7851
|
381
381
|
ccxt/pro/coinex.py,sha256=GkW0duPzwNXppQxHPTaa1QIjnVXa3NXr-BhwocwNYF0,45164
|
382
|
-
ccxt/pro/coinone.py,sha256=
|
382
|
+
ccxt/pro/coinone.py,sha256=XxJeMDbg3tSDoC3H8p9y7MB_yBR3ZN6PiQyEGaziAZs,15734
|
383
383
|
ccxt/pro/cryptocom.py,sha256=Zrh6noBvrMIcSLgVUuzxW7SPcJzUQDlcqMFU4JsnwLE,43318
|
384
384
|
ccxt/pro/currencycom.py,sha256=8B9pSuPyO0ROCWOROUFoNbJBeOU3bRmlKXSj1CBMkPI,22459
|
385
385
|
ccxt/pro/deribit.py,sha256=DG3UJE8VWuydP64_CJzDqmRC0vqc9ViBvQr28gW_nhY,41094
|
@@ -387,37 +387,37 @@ ccxt/pro/exmo.py,sha256=n44MqOwY-tSt0TFNhQKydjxRJoSbrMVBzL4NNswOZm4,24542
|
|
387
387
|
ccxt/pro/gate.py,sha256=PhhmAgeY2IcSIpCdeQcZlhc19neXJkYrRL4W8Bocs84,79322
|
388
388
|
ccxt/pro/gateio.py,sha256=_uBWXYQbmsHRivKnZOJDmxJ9tWLO_0HAxmOjAEUy9nE,391
|
389
389
|
ccxt/pro/gemini.py,sha256=8B8dbYPbKbZb3lzhlt8-x0oybQxOHr8Q4R_f5edLwbU,36899
|
390
|
-
ccxt/pro/hashkey.py,sha256=
|
391
|
-
ccxt/pro/hitbtc.py,sha256=
|
392
|
-
ccxt/pro/hollaex.py,sha256=
|
393
|
-
ccxt/pro/htx.py,sha256=
|
390
|
+
ccxt/pro/hashkey.py,sha256=F-NAOAeNSEjHyuZnvGiIYHQow5RAKcwgyb23cGwOiJs,34065
|
391
|
+
ccxt/pro/hitbtc.py,sha256=i-6bu6fNu5O19lXxgpbdP8C3DgUzpepfrBDmcOZrqOg,56937
|
392
|
+
ccxt/pro/hollaex.py,sha256=la302Z6BMjcqZQhTaj4PQXSfhgFH6m7o3u7Ts5JkHbY,22045
|
393
|
+
ccxt/pro/htx.py,sha256=mt-Bh5U6W6MRrpPp5xm6ayhkIcdaS8YCczczw9_1yx4,96329
|
394
394
|
ccxt/pro/huobi.py,sha256=rKZVgYqEr-MmZzTqAk4FoJt8qWFjCi_FY0ci_mWZrL0,385
|
395
|
-
ccxt/pro/huobijp.py,sha256=
|
396
|
-
ccxt/pro/hyperliquid.py,sha256=
|
395
|
+
ccxt/pro/huobijp.py,sha256=urnktXqCIJTccup0oQJPJsM32XR09dDP6qGP1kvBtfg,23318
|
396
|
+
ccxt/pro/hyperliquid.py,sha256=B-bV58Jw20AL4C2LGaj11cPp3osZRRr3T5WjfPXwc5Y,32500
|
397
397
|
ccxt/pro/idex.py,sha256=WAY58yMHFUPoqZUGFvzxqcKizvMuFXqdZ6BD0WgstQA,28361
|
398
|
-
ccxt/pro/independentreserve.py,sha256=
|
398
|
+
ccxt/pro/independentreserve.py,sha256=JWMjJ0FUs4LhybAZ4rjHMQIWeOu5Njaj8aVimA7kf30,11356
|
399
399
|
ccxt/pro/kraken.py,sha256=hrYXzL-CLCgm0BbQBjNOoiAfC57Ca5JTiD_24eIvikM,63840
|
400
400
|
ccxt/pro/krakenfutures.py,sha256=Y9vqrxNbr7OJ0BIMZqrVtMedUzk7XtOZuF_OGQ2tUJc,64033
|
401
401
|
ccxt/pro/kucoin.py,sha256=Vsbt5k8zDSve31LiRlPQgdp1AxVtosT1c9nSCUCF364,54296
|
402
402
|
ccxt/pro/kucoinfutures.py,sha256=gMRflEtuO_S_cuhhVOtIwarL_Nk9ThAmGqyvUncVqHc,50331
|
403
|
-
ccxt/pro/lbank.py,sha256=
|
404
|
-
ccxt/pro/luno.py,sha256=
|
403
|
+
ccxt/pro/lbank.py,sha256=nBTAs75zokS5hwdFTgA6NJelk7n0FGBsznbxebLm8QM,35251
|
404
|
+
ccxt/pro/luno.py,sha256=ThXkXNrLvp9BW8XXxRcbpRaw9QcLCS2f2tCqbF6qpEU,12384
|
405
405
|
ccxt/pro/mexc.py,sha256=XWizOaMEHWdl0FU7XO_gxxGeTiMFoZxxaBQ1aQ7OrjU,43764
|
406
|
-
ccxt/pro/ndax.py,sha256=
|
407
|
-
ccxt/pro/okcoin.py,sha256=
|
406
|
+
ccxt/pro/ndax.py,sha256=De7ohX5Dp2PSfFmt50mGH9cB9Me53Wb-B8S6N4_Flvk,22979
|
407
|
+
ccxt/pro/okcoin.py,sha256=h8niyeq67h-oBmxiMMy2JdNgOI0fBQuEC3QdUW4-NFs,31048
|
408
408
|
ccxt/pro/okx.py,sha256=rKAUOmT-BfnNzd7IPzgkgbeLJN2e29SOdLfrHboFbeM,85537
|
409
|
-
ccxt/pro/onetrading.py,sha256=
|
409
|
+
ccxt/pro/onetrading.py,sha256=2LP1LvwbQrwsyXDPRU6_ez4fWR3htKFuzC-4CenHzhU,54817
|
410
410
|
ccxt/pro/oxfun.py,sha256=gcmnoD0pzEDVIaiHyuU2ABoQBrxi0CTP62H2xZD0T7g,43943
|
411
|
-
ccxt/pro/p2b.py,sha256=
|
412
|
-
ccxt/pro/paradex.py,sha256=
|
411
|
+
ccxt/pro/p2b.py,sha256=K0aQNKqOWCgju0t-Am7mcIcAFXjIxYXiYft1gEOfw10,19227
|
412
|
+
ccxt/pro/paradex.py,sha256=kXWCs_o5GBAoAhsn7P5HQ2_L_B8tz9WsLHPnJ5j4usI,14347
|
413
413
|
ccxt/pro/phemex.py,sha256=ZFQLhlrFKxzoFziHAvM2G1pzf-goRYjdZ-ikVGfeNXw,61107
|
414
|
-
ccxt/pro/poloniex.py,sha256=
|
415
|
-
ccxt/pro/poloniexfutures.py,sha256=
|
416
|
-
ccxt/pro/probit.py,sha256=
|
417
|
-
ccxt/pro/upbit.py,sha256=
|
418
|
-
ccxt/pro/vertex.py,sha256=
|
419
|
-
ccxt/pro/wazirx.py,sha256=
|
420
|
-
ccxt/pro/whitebit.py,sha256=
|
414
|
+
ccxt/pro/poloniex.py,sha256=QKpKOTW73iUQxaFXFZ_0KbyPFJhXtMWNNsfgP-CBeXU,53574
|
415
|
+
ccxt/pro/poloniexfutures.py,sha256=a3u8CIc7CuK04jU4PTLPVtGsw7omJ80KRopshziShYU,42020
|
416
|
+
ccxt/pro/probit.py,sha256=_oX1OHOd9M5D_fT2w3-zqACXouoUOFsbKxb6Ew3sNOk,23223
|
417
|
+
ccxt/pro/upbit.py,sha256=ViN4k89UDZykSOhSF_D0-Lt3ZwYDoBmzITC3oEyUA0s,24055
|
418
|
+
ccxt/pro/vertex.py,sha256=n0BFW9So4VxSsjv5vJbFCqeaq8cy-IVe_bw-zB1pC48,40580
|
419
|
+
ccxt/pro/wazirx.py,sha256=St9GkOg3vFZ4o3NySL_izzbrs4Kes2-1iS7iznDxZ6o,30247
|
420
|
+
ccxt/pro/whitebit.py,sha256=YZw5_BGvLFnadRDjOr5ELW2J6cok83nN77ctfBzfD1I,35689
|
421
421
|
ccxt/pro/woo.py,sha256=TtGZVRdh0IDYICHYTBEgGMBsWm1SoX6aCokw-CMoKy0,48845
|
422
422
|
ccxt/pro/woofipro.py,sha256=T4F82FqZ7BUISorgDVpQlRG5DsKjQ9augsk4Y4uLB4g,49102
|
423
423
|
ccxt/pro/xt.py,sha256=AkO1NpgcKp6RAnB_asqMeYxoIE4psUsNiTHJtKuPxUU,48417
|
@@ -648,12 +648,12 @@ ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4wer
|
|
648
648
|
ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
649
649
|
ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
|
650
650
|
ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
|
651
|
-
ccxt/test/tests_async.py,sha256=
|
651
|
+
ccxt/test/tests_async.py,sha256=yVoLZLPkB-_ay0ab_oCyYOSwkLQkLXkPFj5jHTE3esw,84423
|
652
652
|
ccxt/test/tests_helpers.py,sha256=xhOILoZ_x3RSfQjtKt6AQlkp9DkOtpTQe8GAUUZoM6s,10069
|
653
653
|
ccxt/test/tests_init.py,sha256=eVwwUHujX9t4rjgo4TqEeg7DDhR1Hb_e2SJN8NVGyl0,998
|
654
|
-
ccxt/test/tests_sync.py,sha256=
|
655
|
-
ccxt-4.3.
|
656
|
-
ccxt-4.3.
|
657
|
-
ccxt-4.3.
|
658
|
-
ccxt-4.3.
|
659
|
-
ccxt-4.3.
|
654
|
+
ccxt/test/tests_sync.py,sha256=uu0QsWOuEpkmtV12nIffsiZZFUpM-f1k6W9nlgCDqXs,83485
|
655
|
+
ccxt-4.3.88.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
|
656
|
+
ccxt-4.3.88.dist-info/METADATA,sha256=hpC47jQKet0SsrfW-SRiZW4eBVtKe1YWNMxjWIWNomQ,118342
|
657
|
+
ccxt-4.3.88.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
|
658
|
+
ccxt-4.3.88.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
659
|
+
ccxt-4.3.88.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|