ccxt 4.3.98__py2.py3-none-any.whl → 4.4.1__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 -1
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bitget.py +3 -2
- ccxt/async_support/gate.py +1 -0
- ccxt/base/exchange.py +1 -1
- ccxt/bitget.py +3 -2
- ccxt/gate.py +1 -0
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/hyperliquid.py +242 -11
- {ccxt-4.3.98.dist-info → ccxt-4.4.1.dist-info}/METADATA +4 -4
- {ccxt-4.3.98.dist-info → ccxt-4.4.1.dist-info}/RECORD +15 -15
- {ccxt-4.3.98.dist-info → ccxt-4.4.1.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.3.98.dist-info → ccxt-4.4.1.dist-info}/WHEEL +0 -0
- {ccxt-4.3.98.dist-info → ccxt-4.4.1.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/bitget.py
CHANGED
@@ -1330,10 +1330,11 @@ class bitget(Exchange, ImplicitAPI):
|
|
1330
1330
|
},
|
1331
1331
|
'precisionMode': TICK_SIZE,
|
1332
1332
|
'commonCurrencies': {
|
1333
|
-
'
|
1333
|
+
'APX': 'AstroPepeX',
|
1334
1334
|
'DEGEN': 'DegenReborn',
|
1335
|
-
'
|
1335
|
+
'JADE': 'Jade Protocol',
|
1336
1336
|
'OMNI': 'omni', # conflict with Omni Network
|
1337
|
+
'TONCOIN': 'TON',
|
1337
1338
|
},
|
1338
1339
|
'options': {
|
1339
1340
|
'timeframes': {
|
ccxt/async_support/gate.py
CHANGED
@@ -626,6 +626,7 @@ class gate(Exchange, ImplicitAPI):
|
|
626
626
|
'MPH': 'MORPHER', # conflict with 88MPH
|
627
627
|
'POINT': 'GATEPOINT',
|
628
628
|
'RAI': 'RAIREFLEXINDEX', # conflict with RAI Finance
|
629
|
+
'RED': 'RedLang',
|
629
630
|
'SBTC': 'SUPERBITCOIN',
|
630
631
|
'TNC': 'TRINITYNETWORKCREDIT',
|
631
632
|
'VAI': 'VAIOT',
|
ccxt/base/exchange.py
CHANGED
ccxt/bitget.py
CHANGED
@@ -1329,10 +1329,11 @@ class bitget(Exchange, ImplicitAPI):
|
|
1329
1329
|
},
|
1330
1330
|
'precisionMode': TICK_SIZE,
|
1331
1331
|
'commonCurrencies': {
|
1332
|
-
'
|
1332
|
+
'APX': 'AstroPepeX',
|
1333
1333
|
'DEGEN': 'DegenReborn',
|
1334
|
-
'
|
1334
|
+
'JADE': 'Jade Protocol',
|
1335
1335
|
'OMNI': 'omni', # conflict with Omni Network
|
1336
|
+
'TONCOIN': 'TON',
|
1336
1337
|
},
|
1337
1338
|
'options': {
|
1338
1339
|
'timeframes': {
|
ccxt/gate.py
CHANGED
@@ -625,6 +625,7 @@ class gate(Exchange, ImplicitAPI):
|
|
625
625
|
'MPH': 'MORPHER', # conflict with 88MPH
|
626
626
|
'POINT': 'GATEPOINT',
|
627
627
|
'RAI': 'RAIREFLEXINDEX', # conflict with RAI Finance
|
628
|
+
'RED': 'RedLang',
|
628
629
|
'SBTC': 'SUPERBITCOIN',
|
629
630
|
'TNC': 'TRINITYNETWORKCREDIT',
|
630
631
|
'VAI': 'VAIOT',
|
ccxt/pro/__init__.py
CHANGED
ccxt/pro/hyperliquid.py
CHANGED
@@ -5,10 +5,12 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
|
8
|
-
from ccxt.base.types import
|
8
|
+
from ccxt.base.types import Int, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
|
+
from typing import Any
|
11
12
|
from ccxt.base.errors import ExchangeError
|
13
|
+
from ccxt.base.errors import UnsubscribeError
|
12
14
|
|
13
15
|
|
14
16
|
class hyperliquid(ccxt.async_support.hyperliquid):
|
@@ -160,6 +162,32 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
160
162
|
orderbook = await self.watch(url, messageHash, message, messageHash)
|
161
163
|
return orderbook.limit()
|
162
164
|
|
165
|
+
async def un_watch_order_book(self, symbol: str, params={}) -> Any:
|
166
|
+
"""
|
167
|
+
unWatches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
|
168
|
+
:see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
169
|
+
:param str symbol: unified symbol of the market to fetch the order book for
|
170
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
171
|
+
:returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
|
172
|
+
"""
|
173
|
+
await self.load_markets()
|
174
|
+
market = self.market(symbol)
|
175
|
+
symbol = market['symbol']
|
176
|
+
subMessageHash = 'orderbook:' + symbol
|
177
|
+
messageHash = 'unsubscribe:' + subMessageHash
|
178
|
+
url = self.urls['api']['ws']['public']
|
179
|
+
id = str(self.nonce())
|
180
|
+
request: dict = {
|
181
|
+
'id': id,
|
182
|
+
'method': 'unsubscribe',
|
183
|
+
'subscription': {
|
184
|
+
'type': 'l2Book',
|
185
|
+
'coin': market['base'] if market['swap'] else market['id'],
|
186
|
+
},
|
187
|
+
}
|
188
|
+
message = self.extend(request, params)
|
189
|
+
return await self.watch(url, messageHash, message, messageHash)
|
190
|
+
|
163
191
|
def handle_order_book(self, client, message):
|
164
192
|
#
|
165
193
|
# {
|
@@ -230,6 +258,28 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
230
258
|
return self.filter_by_array_tickers(tickers, 'symbol', symbols)
|
231
259
|
return self.tickers
|
232
260
|
|
261
|
+
async def un_watch_tickers(self, symbols: Strings = None, params={}) -> Any:
|
262
|
+
"""
|
263
|
+
unWatches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
264
|
+
:see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
265
|
+
:param str[] symbols: unified symbol of the market to fetch the ticker for
|
266
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
267
|
+
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
268
|
+
"""
|
269
|
+
await self.load_markets()
|
270
|
+
symbols = self.market_symbols(symbols, None, True)
|
271
|
+
subMessageHash = 'tickers'
|
272
|
+
messageHash = 'unsubscribe:' + subMessageHash
|
273
|
+
url = self.urls['api']['ws']['public']
|
274
|
+
request: dict = {
|
275
|
+
'method': 'unsubscribe',
|
276
|
+
'subscription': {
|
277
|
+
'type': 'webData2', # allMids
|
278
|
+
'user': '0x0000000000000000000000000000000000000000',
|
279
|
+
},
|
280
|
+
}
|
281
|
+
return await self.watch(url, messageHash, self.extend(request, params), messageHash)
|
282
|
+
|
233
283
|
async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
234
284
|
"""
|
235
285
|
watches information on multiple trades made by the user
|
@@ -392,15 +442,17 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
392
442
|
client.resolve(trades, messageHash)
|
393
443
|
|
394
444
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
445
|
+
# s
|
446
|
+
# @method
|
447
|
+
# @name hyperliquid#watchTrades
|
448
|
+
# @description watches information on multiple trades made in a market
|
449
|
+
# @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
450
|
+
# @param {string} symbol unified market symbol of the market trades were made in
|
451
|
+
# @param {int} [since] the earliest time in ms to fetch trades for
|
452
|
+
# @param {int} [limit] the maximum number of trade structures to retrieve
|
453
|
+
# @param {object} [params] extra parameters specific to the exchange API endpoint
|
454
|
+
# @returns {object[]} a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
455
|
+
#
|
404
456
|
await self.load_markets()
|
405
457
|
market = self.market(symbol)
|
406
458
|
symbol = market['symbol']
|
@@ -419,6 +471,30 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
419
471
|
limit = trades.getLimit(symbol, limit)
|
420
472
|
return self.filter_by_since_limit(trades, since, limit, 'timestamp', True)
|
421
473
|
|
474
|
+
async def un_watch_trades(self, symbol: str, params={}) -> Any:
|
475
|
+
"""
|
476
|
+
unWatches information on multiple trades made in a market
|
477
|
+
:see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
478
|
+
:param str symbol: unified market symbol of the market trades were made in
|
479
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
480
|
+
:returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
|
481
|
+
"""
|
482
|
+
await self.load_markets()
|
483
|
+
market = self.market(symbol)
|
484
|
+
symbol = market['symbol']
|
485
|
+
subMessageHash = 'trade:' + symbol
|
486
|
+
messageHash = 'unsubscribe:' + subMessageHash
|
487
|
+
url = self.urls['api']['ws']['public']
|
488
|
+
request: dict = {
|
489
|
+
'method': 'unsubscribe',
|
490
|
+
'subscription': {
|
491
|
+
'type': 'trades',
|
492
|
+
'coin': market['base'] if market['swap'] else market['id'],
|
493
|
+
},
|
494
|
+
}
|
495
|
+
message = self.extend(request, params)
|
496
|
+
return await self.watch(url, messageHash, message, messageHash)
|
497
|
+
|
422
498
|
def handle_trades(self, client: Client, message):
|
423
499
|
#
|
424
500
|
# {
|
@@ -546,6 +622,32 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
546
622
|
limit = ohlcv.getLimit(symbol, limit)
|
547
623
|
return self.filter_by_since_limit(ohlcv, since, limit, 0, True)
|
548
624
|
|
625
|
+
async def un_watch_ohlcv(self, symbol: str, timeframe='1m', params={}) -> Any:
|
626
|
+
"""
|
627
|
+
watches historical candlestick data containing the open, high, low, close price, and the volume of a market
|
628
|
+
:see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
629
|
+
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
630
|
+
:param str timeframe: the length of time each candle represents
|
631
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
632
|
+
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
633
|
+
"""
|
634
|
+
await self.load_markets()
|
635
|
+
market = self.market(symbol)
|
636
|
+
symbol = market['symbol']
|
637
|
+
url = self.urls['api']['ws']['public']
|
638
|
+
request: dict = {
|
639
|
+
'method': 'unsubscribe',
|
640
|
+
'subscription': {
|
641
|
+
'type': 'candle',
|
642
|
+
'coin': market['base'] if market['swap'] else market['id'],
|
643
|
+
'interval': timeframe,
|
644
|
+
},
|
645
|
+
}
|
646
|
+
subMessageHash = 'candles:' + timeframe + ':' + symbol
|
647
|
+
messagehash = 'unsubscribe:' + subMessageHash
|
648
|
+
message = self.extend(request, params)
|
649
|
+
return await self.watch(url, messagehash, message, messagehash)
|
650
|
+
|
549
651
|
def handle_ohlcv(self, client: Client, message):
|
550
652
|
#
|
551
653
|
# {
|
@@ -581,7 +683,7 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
581
683
|
messageHash = 'candles:' + timeframe + ':' + symbol
|
582
684
|
client.resolve(ohlcv, messageHash)
|
583
685
|
|
584
|
-
def handle_ws_post(self, client: Client, message:
|
686
|
+
def handle_ws_post(self, client: Client, message: dict):
|
585
687
|
# {
|
586
688
|
# channel: "post",
|
587
689
|
# data: {
|
@@ -689,7 +791,135 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
689
791
|
else:
|
690
792
|
return False
|
691
793
|
|
794
|
+
def handle_order_book_unsubscription(self, client: Client, subscription: dict):
|
795
|
+
#
|
796
|
+
# "subscription":{
|
797
|
+
# "type":"l2Book",
|
798
|
+
# "coin":"BTC",
|
799
|
+
# "nSigFigs":5,
|
800
|
+
# "mantissa":null
|
801
|
+
# }
|
802
|
+
#
|
803
|
+
coin = self.safe_string(subscription, 'coin')
|
804
|
+
marketId = self.coinToMarketId(coin)
|
805
|
+
symbol = self.safe_symbol(marketId)
|
806
|
+
subMessageHash = 'orderbook:' + symbol
|
807
|
+
messageHash = 'unsubscribe:' + subMessageHash
|
808
|
+
if messageHash in client.subscriptions:
|
809
|
+
del client.subscriptions[messageHash]
|
810
|
+
if subMessageHash in client.subscriptions:
|
811
|
+
del client.subscriptions[subMessageHash]
|
812
|
+
error = UnsubscribeError(self.id + ' ' + subMessageHash)
|
813
|
+
client.reject(error, subMessageHash)
|
814
|
+
client.resolve(True, messageHash)
|
815
|
+
if symbol in self.orderbooks:
|
816
|
+
del self.orderbooks[symbol]
|
817
|
+
|
818
|
+
def handle_trades_unsubscription(self, client: Client, subscription: dict):
|
819
|
+
#
|
820
|
+
coin = self.safe_string(subscription, 'coin')
|
821
|
+
marketId = self.coinToMarketId(coin)
|
822
|
+
symbol = self.safe_symbol(marketId)
|
823
|
+
subMessageHash = 'trade:' + symbol
|
824
|
+
messageHash = 'unsubscribe:' + subMessageHash
|
825
|
+
if messageHash in client.subscriptions:
|
826
|
+
del client.subscriptions[messageHash]
|
827
|
+
if subMessageHash in client.subscriptions:
|
828
|
+
del client.subscriptions[subMessageHash]
|
829
|
+
error = UnsubscribeError(self.id + ' ' + subMessageHash)
|
830
|
+
client.reject(error, subMessageHash)
|
831
|
+
client.resolve(True, messageHash)
|
832
|
+
if symbol in self.trades:
|
833
|
+
del self.trades[symbol]
|
834
|
+
|
835
|
+
def handle_tickers_unsubscription(self, client: Client, subscription: dict):
|
836
|
+
#
|
837
|
+
subMessageHash = 'tickers'
|
838
|
+
messageHash = 'unsubscribe:' + subMessageHash
|
839
|
+
if messageHash in client.subscriptions:
|
840
|
+
del client.subscriptions[messageHash]
|
841
|
+
if subMessageHash in client.subscriptions:
|
842
|
+
del client.subscriptions[subMessageHash]
|
843
|
+
error = UnsubscribeError(self.id + ' ' + subMessageHash)
|
844
|
+
client.reject(error, subMessageHash)
|
845
|
+
client.resolve(True, messageHash)
|
846
|
+
symbols = list(self.tickers.keys())
|
847
|
+
for i in range(0, len(symbols)):
|
848
|
+
del self.tickers[symbols[i]]
|
849
|
+
|
850
|
+
def handle_ohlcv_unsubscription(self, client: Client, subscription: dict):
|
851
|
+
coin = self.safe_string(subscription, 'coin')
|
852
|
+
marketId = self.coinToMarketId(coin)
|
853
|
+
symbol = self.safe_symbol(marketId)
|
854
|
+
interval = self.safe_string(subscription, 'interval')
|
855
|
+
timeframe = self.find_timeframe(interval)
|
856
|
+
subMessageHash = 'candles:' + timeframe + ':' + symbol
|
857
|
+
messageHash = 'unsubscribe:' + subMessageHash
|
858
|
+
if messageHash in client.subscriptions:
|
859
|
+
del client.subscriptions[messageHash]
|
860
|
+
if subMessageHash in client.subscriptions:
|
861
|
+
del client.subscriptions[subMessageHash]
|
862
|
+
error = UnsubscribeError(self.id + ' ' + subMessageHash)
|
863
|
+
client.reject(error, subMessageHash)
|
864
|
+
client.resolve(True, messageHash)
|
865
|
+
if symbol in self.ohlcvs:
|
866
|
+
if timeframe in self.ohlcvs[symbol]:
|
867
|
+
del self.ohlcvs[symbol][timeframe]
|
868
|
+
|
869
|
+
def handle_subscription_response(self, client: Client, message):
|
870
|
+
# {
|
871
|
+
# "channel":"subscriptionResponse",
|
872
|
+
# "data":{
|
873
|
+
# "method":"unsubscribe",
|
874
|
+
# "subscription":{
|
875
|
+
# "type":"l2Book",
|
876
|
+
# "coin":"BTC",
|
877
|
+
# "nSigFigs":5,
|
878
|
+
# "mantissa":null
|
879
|
+
# }
|
880
|
+
# }
|
881
|
+
# }
|
882
|
+
#
|
883
|
+
# {
|
884
|
+
# "channel":"subscriptionResponse",
|
885
|
+
# "data":{
|
886
|
+
# "method":"unsubscribe",
|
887
|
+
# "subscription":{
|
888
|
+
# "type":"trades",
|
889
|
+
# "coin":"PURR/USDC"
|
890
|
+
# }
|
891
|
+
# }
|
892
|
+
# }
|
893
|
+
#
|
894
|
+
data = self.safe_dict(message, 'data', {})
|
895
|
+
method = self.safe_string(data, 'method')
|
896
|
+
if method == 'unsubscribe':
|
897
|
+
subscription = self.safe_dict(data, 'subscription', {})
|
898
|
+
type = self.safe_string(subscription, 'type')
|
899
|
+
if type == 'l2Book':
|
900
|
+
self.handle_order_book_unsubscription(client, subscription)
|
901
|
+
elif type == 'trades':
|
902
|
+
self.handle_trades_unsubscription(client, subscription)
|
903
|
+
elif type == 'webData2':
|
904
|
+
self.handle_tickers_unsubscription(client, subscription)
|
905
|
+
elif type == 'candle':
|
906
|
+
self.handle_ohlcv_unsubscription(client, subscription)
|
907
|
+
|
692
908
|
def handle_message(self, client: Client, message):
|
909
|
+
#
|
910
|
+
# {
|
911
|
+
# "channel":"subscriptionResponse",
|
912
|
+
# "data":{
|
913
|
+
# "method":"unsubscribe",
|
914
|
+
# "subscription":{
|
915
|
+
# "type":"l2Book",
|
916
|
+
# "coin":"BTC",
|
917
|
+
# "nSigFigs":5,
|
918
|
+
# "mantissa":null
|
919
|
+
# }
|
920
|
+
# }
|
921
|
+
# }
|
922
|
+
#
|
693
923
|
if self.handle_error_message(client, message):
|
694
924
|
return
|
695
925
|
topic = self.safe_string(message, 'channel', '')
|
@@ -702,6 +932,7 @@ class hyperliquid(ccxt.async_support.hyperliquid):
|
|
702
932
|
'userFills': self.handle_my_trades,
|
703
933
|
'webData2': self.handle_ws_tickers,
|
704
934
|
'post': self.handle_ws_post,
|
935
|
+
'subscriptionResponse': self.handle_subscription_response,
|
705
936
|
}
|
706
937
|
exacMethod = self.safe_value(methods, topic)
|
707
938
|
if exacMethod is not None:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.4.1
|
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
|
@@ -272,13 +272,13 @@ console.log(version, Object.keys(exchanges));
|
|
272
272
|
|
273
273
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
274
274
|
|
275
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.
|
276
|
-
* unpkg: https://unpkg.com/ccxt@4.
|
275
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.1/dist/ccxt.browser.min.js
|
276
|
+
* unpkg: https://unpkg.com/ccxt@4.4.1/dist/ccxt.browser.min.js
|
277
277
|
|
278
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.
|
279
279
|
|
280
280
|
```HTML
|
281
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.
|
281
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.1/dist/ccxt.browser.min.js"></script>
|
282
282
|
```
|
283
283
|
|
284
284
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=5pHLDRlvaWLCFdbq7IcJkXl4oSrToseJYYQgHPgYGY4,16485
|
2
2
|
ccxt/ace.py,sha256=3KFlbRm6N9hXsKUsgZbQCFPZT5WGLm4HOjR19Q3uPts,42419
|
3
3
|
ccxt/alpaca.py,sha256=nVQJ8vG4JrjEvMlu_nPoyR2lBq41j9Z2smPq95nDhng,47504
|
4
4
|
ccxt/ascendex.py,sha256=qYzddORwUgXBOuvuRi3AtaH2srPYr21MOT2THdrXyLE,151540
|
@@ -17,7 +17,7 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
|
|
17
17
|
ccxt/bitfinex.py,sha256=w3t0YAwtOfCwLy5_w2wTq90qkTgUUyn0sqdO22zD-9U,73527
|
18
18
|
ccxt/bitfinex2.py,sha256=a-mWVZfIiHIUOyXhjjyS9YYP5oDZAR22oPdvPqm2tU4,160875
|
19
19
|
ccxt/bitflyer.py,sha256=A5Qtxec8uuhL0M2CIm908XFG_dauGoPetkGvglFUbrE,41719
|
20
|
-
ccxt/bitget.py,sha256=
|
20
|
+
ccxt/bitget.py,sha256=GfD-EFU6ADutFKjgktMSCZzvQKKU6GnA5dZ30aQMSI4,425029
|
21
21
|
ccxt/bithumb.py,sha256=8oTnFWi8Ai9fnm5FPXvNmaUAVJEOqYi-18VC23cWmXY,47935
|
22
22
|
ccxt/bitmart.py,sha256=E8spf8q8jqlL41dlhwntz1WJzWQY0v9_IaIut1-r_y0,211807
|
23
23
|
ccxt/bitmex.py,sha256=SoKTmrAKQ__SZzh1Fok1dOL7kUZjCIHl-qIHe9bO3Jc,126988
|
@@ -56,7 +56,7 @@ ccxt/deribit.py,sha256=hs6yUT8s7sfmO-GJ9RZ9nQC7Y9vnp_2puTRrd9r1Plw,161350
|
|
56
56
|
ccxt/digifinex.py,sha256=pUPM7EEeRFoenX_jzNJM1RNuIUjATy6GB4J2osJJ4bY,169282
|
57
57
|
ccxt/exmo.py,sha256=KlQqGZey31br-SVwhQg6mWIESyeM_wiIKRDOzIekuSs,114638
|
58
58
|
ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
|
59
|
-
ccxt/gate.py,sha256=
|
59
|
+
ccxt/gate.py,sha256=aLBLALozzREVkdc3UORV4b__lX_-rMn9XCgje5yWsqs,327757
|
60
60
|
ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
|
61
61
|
ccxt/gemini.py,sha256=qWLpJE-Ue3F-KhFfzhAteAMMJOr35duwdI-exBrRTEo,80950
|
62
62
|
ccxt/hashkey.py,sha256=AfbhV_QCW31jzy8BFPnmGdhWfXz4WILIl-qh3jB4ZMc,191738
|
@@ -218,7 +218,7 @@ ccxt/abstract/xt.py,sha256=JkWvsic3L2O968BCr9H5Wd5NIbRE9aTT2A-9WbAtl0c,27146
|
|
218
218
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
219
219
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
220
220
|
ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
|
221
|
-
ccxt/async_support/__init__.py,sha256=
|
221
|
+
ccxt/async_support/__init__.py,sha256=Q88aJ0ejcU-nzNbtBrdSXkovgDeDJFd-uNn8nAkVbqw,16288
|
222
222
|
ccxt/async_support/ace.py,sha256=ucCkKaWRkILAIK9g4iEi1Q_-zmn0V89-rX8Al4WdK8s,42643
|
223
223
|
ccxt/async_support/alpaca.py,sha256=HxonsP_MzbE7Z9r6hZ1rgmf_jPcP4H7H3z1YQgCv4qc,47716
|
224
224
|
ccxt/async_support/ascendex.py,sha256=Yj4_0UHGd-cYY8s3vqu_zEwa6BLmqPYy6ztKapkuEaw,152353
|
@@ -237,7 +237,7 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
|
|
237
237
|
ccxt/async_support/bitfinex.py,sha256=pzyfQzUSxFYd6Ted0hNLgL545S8rFCrsoJc9Odk3zoo,73993
|
238
238
|
ccxt/async_support/bitfinex2.py,sha256=Bw0d8dK5Ybp4_Aq9P-9DPJrtvzVJ6F28hHqX_BodLHM,161629
|
239
239
|
ccxt/async_support/bitflyer.py,sha256=9tRLLI8tHyp0T1yj3-3F-MVoHB8Jq81qx_vQ-N00PJI,42027
|
240
|
-
ccxt/async_support/bitget.py,sha256=
|
240
|
+
ccxt/async_support/bitget.py,sha256=eefVDqYPND5EIPAKoNBe2KnCck2nrVOt0piRggcCF9A,426653
|
241
241
|
ccxt/async_support/bithumb.py,sha256=Q0Cx_cRKZRfdpBAhQyINm63Qw3M6BRYQRiF0UqYzfis,48214
|
242
242
|
ccxt/async_support/bitmart.py,sha256=DM-RMAL2itKyO_dTafBwQXnZ3NsDxy4LauDPucHT29M,212763
|
243
243
|
ccxt/async_support/bitmex.py,sha256=bpaQ7pqan9JFj5AJxngtcuqeN9ReO76WbNkqfvBtyT0,127566
|
@@ -276,7 +276,7 @@ ccxt/async_support/deribit.py,sha256=JfdtFswWctlKE_GOjoxFIVKTNq-LUeuVik59MAx-u8s
|
|
276
276
|
ccxt/async_support/digifinex.py,sha256=6fj4RPpxV8ArNSBXm5_y_Mt7fzjYxYOSO8mcxGKXpUU,170252
|
277
277
|
ccxt/async_support/exmo.py,sha256=uVJsy3mfNLpfbY0ndl2EF9hipUylEw8J58J3wCGyyA0,115270
|
278
278
|
ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
|
279
|
-
ccxt/async_support/gate.py,sha256=
|
279
|
+
ccxt/async_support/gate.py,sha256=KhWrVg1sy-R_ycPNGPYBYWhvtH_jTsMvL23oFiUNXXM,329488
|
280
280
|
ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
|
281
281
|
ccxt/async_support/gemini.py,sha256=nB8pdA9FAezRsRhF6_7w-T5keDtlahjPo9WPApEJbsY,81474
|
282
282
|
ccxt/async_support/hashkey.py,sha256=bwQsEvhGU60iy_vlAbLvtx1blhDxS4L3cqoTpk6JNQ8,192580
|
@@ -330,7 +330,7 @@ ccxt/async_support/yobit.py,sha256=GQhvYrsGHQrVdTrNHQxx9isEGqUABexlllzao9HL3f8,5
|
|
330
330
|
ccxt/async_support/zaif.py,sha256=-ZTr8M2JaIRCL90VrbCDXBMAsZwbiwsFChSQ2rWODuQ,29044
|
331
331
|
ccxt/async_support/zonda.py,sha256=jncr6Wg12S72CTpu6mCKCse1pm1f8oefVQurQSrFvP0,81733
|
332
332
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
333
|
-
ccxt/async_support/base/exchange.py,sha256=
|
333
|
+
ccxt/async_support/base/exchange.py,sha256=K_idMkctnhYOPoxHd3YOM0IXMgqf57UZLyx3dluAkAs,110677
|
334
334
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
335
335
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
336
336
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
|
@@ -344,10 +344,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
|
|
344
344
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
345
345
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
346
346
|
ccxt/base/errors.py,sha256=Pad-6ugvGUwhoYuKUliX-N7FTrcnKCQGFjsaq2tMn0I,4610
|
347
|
-
ccxt/base/exchange.py,sha256=
|
347
|
+
ccxt/base/exchange.py,sha256=wkgTfVaUfH9xmF6rrdYYXCd8FRLNVVrHov4k6MxNpa4,295942
|
348
348
|
ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
|
349
349
|
ccxt/base/types.py,sha256=TaP_RElKjGEZWuzyp4o4u2YhREyTG3rUeVT6gDffY9A,9613
|
350
|
-
ccxt/pro/__init__.py,sha256=
|
350
|
+
ccxt/pro/__init__.py,sha256=aZkmQpsvZhvjzQFJe-1vFXu2hsuwOBLmJ7m2SSxEA28,7709
|
351
351
|
ccxt/pro/alpaca.py,sha256=xh1yg1Ok-Zh_Mfx-MBjNrfJDs6MUU0exFfEj3GuQPC4,27631
|
352
352
|
ccxt/pro/ascendex.py,sha256=QueLgISoIxgGSOta2W7En4pwAsEXbTP5q5ef4UjpTQQ,37524
|
353
353
|
ccxt/pro/bequant.py,sha256=33OEUWBi4D9-2w8CmkwN3aF1qS-AlLqX3pxrWwNbXPY,1552
|
@@ -391,7 +391,7 @@ ccxt/pro/hollaex.py,sha256=la302Z6BMjcqZQhTaj4PQXSfhgFH6m7o3u7Ts5JkHbY,22045
|
|
391
391
|
ccxt/pro/htx.py,sha256=mt-Bh5U6W6MRrpPp5xm6ayhkIcdaS8YCczczw9_1yx4,96329
|
392
392
|
ccxt/pro/huobi.py,sha256=rKZVgYqEr-MmZzTqAk4FoJt8qWFjCi_FY0ci_mWZrL0,385
|
393
393
|
ccxt/pro/huobijp.py,sha256=urnktXqCIJTccup0oQJPJsM32XR09dDP6qGP1kvBtfg,23318
|
394
|
-
ccxt/pro/hyperliquid.py,sha256=
|
394
|
+
ccxt/pro/hyperliquid.py,sha256=GsRiT5cRUuB1e8XQN_ZByyEwJcVHpmW3h_QfjjJ4cS8,42727
|
395
395
|
ccxt/pro/idex.py,sha256=WAY58yMHFUPoqZUGFvzxqcKizvMuFXqdZ6BD0WgstQA,28361
|
396
396
|
ccxt/pro/independentreserve.py,sha256=JWMjJ0FUs4LhybAZ4rjHMQIWeOu5Njaj8aVimA7kf30,11356
|
397
397
|
ccxt/pro/kraken.py,sha256=ITIUkUaC7AfLEhaQR7s3zkJnJBa_eQU5DEOn980QOW0,64129
|
@@ -650,8 +650,8 @@ ccxt/test/tests_async.py,sha256=f4Q7u2feejQp5rh3-4oB6XDNZ7_gkaZbkHqAu1wGyIU,8457
|
|
650
650
|
ccxt/test/tests_helpers.py,sha256=xhOILoZ_x3RSfQjtKt6AQlkp9DkOtpTQe8GAUUZoM6s,10069
|
651
651
|
ccxt/test/tests_init.py,sha256=eVwwUHujX9t4rjgo4TqEeg7DDhR1Hb_e2SJN8NVGyl0,998
|
652
652
|
ccxt/test/tests_sync.py,sha256=ZFBHhpfH40I0VkpOdQo-8h2ccUMIEiKGppElvf1myK8,83635
|
653
|
-
ccxt-4.
|
654
|
-
ccxt-4.
|
655
|
-
ccxt-4.
|
656
|
-
ccxt-4.
|
657
|
-
ccxt-4.
|
653
|
+
ccxt-4.4.1.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
|
654
|
+
ccxt-4.4.1.dist-info/METADATA,sha256=BjmN7DRZXUy6jvG-hZW2OdMVkgTOeyIv5NEabbvY32U,118338
|
655
|
+
ccxt-4.4.1.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
|
656
|
+
ccxt-4.4.1.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
657
|
+
ccxt-4.4.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|