ccxt 4.4.98__py2.py3-none-any.whl → 4.4.99__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 +3 -1
- ccxt/abstract/bitget.py +6 -0
- ccxt/abstract/hibachi.py +26 -0
- ccxt/async_support/__init__.py +3 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/binance.py +7 -6
- ccxt/async_support/bitget.py +2018 -557
- ccxt/async_support/bybit.py +5 -1
- ccxt/async_support/coinex.py +64 -3
- ccxt/async_support/cryptocom.py +1 -1
- ccxt/async_support/gate.py +1 -2
- ccxt/async_support/hibachi.py +2080 -0
- ccxt/async_support/novadax.py +34 -0
- ccxt/base/errors.py +0 -6
- ccxt/base/exchange.py +1 -1
- ccxt/binance.py +7 -6
- ccxt/bitget.py +2018 -557
- ccxt/bybit.py +5 -1
- ccxt/coinex.py +64 -3
- ccxt/cryptocom.py +1 -1
- ccxt/gate.py +1 -2
- ccxt/hibachi.py +2079 -0
- ccxt/novadax.py +34 -0
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/alpaca.py +2 -2
- ccxt/pro/apex.py +2 -2
- ccxt/pro/ascendex.py +2 -2
- ccxt/pro/binance.py +2 -4
- ccxt/pro/bitget.py +3 -3
- ccxt/pro/bithumb.py +2 -2
- ccxt/pro/bitmart.py +2 -2
- ccxt/pro/bitmex.py +3 -3
- ccxt/pro/bitstamp.py +3 -3
- ccxt/pro/bittrade.py +2 -2
- ccxt/pro/bitvavo.py +4 -2
- ccxt/pro/bybit.py +4 -4
- ccxt/pro/cex.py +3 -2
- ccxt/pro/coinbaseexchange.py +4 -4
- ccxt/pro/coinbaseinternational.py +2 -2
- ccxt/pro/coincatch.py +1 -1
- ccxt/pro/coinone.py +2 -2
- ccxt/pro/cryptocom.py +2 -2
- ccxt/pro/derive.py +2 -2
- ccxt/pro/gate.py +3 -3
- ccxt/pro/hollaex.py +2 -2
- ccxt/pro/htx.py +3 -3
- ccxt/pro/hyperliquid.py +2 -2
- ccxt/pro/kraken.py +2 -2
- ccxt/pro/krakenfutures.py +4 -3
- ccxt/pro/kucoin.py +3 -2
- ccxt/pro/kucoinfutures.py +3 -2
- ccxt/pro/modetrade.py +2 -2
- ccxt/pro/okcoin.py +2 -2
- ccxt/pro/okx.py +5 -5
- ccxt/pro/onetrading.py +2 -2
- ccxt/pro/p2b.py +2 -2
- ccxt/pro/paradex.py +2 -2
- ccxt/pro/poloniex.py +2 -2
- ccxt/pro/probit.py +2 -2
- ccxt/pro/vertex.py +2 -2
- ccxt/pro/whitebit.py +2 -2
- ccxt/pro/woo.py +2 -2
- ccxt/pro/woofipro.py +2 -2
- ccxt/test/tests_async.py +1 -1
- ccxt/test/tests_sync.py +1 -1
- {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/METADATA +7 -6
- {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/RECORD +70 -67
- {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/WHEEL +0 -0
- {ccxt-4.4.98.dist-info → ccxt-4.4.99.dist-info}/top_level.txt +0 -0
ccxt/pro/krakenfutures.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
9
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
10
10
|
from ccxt.async_support.base.ws.client import Client
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
@@ -212,7 +212,7 @@ class krakenfutures(ccxt.async_support.krakenfutures):
|
|
212
212
|
return result
|
213
213
|
return self.filter_by_array(self.bidsasks, 'symbol', symbols)
|
214
214
|
|
215
|
-
async def watch_trades(self, symbol: Str
|
215
|
+
async def watch_trades(self, symbol: Str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
216
216
|
"""
|
217
217
|
get the list of most recent trades for a particular symbol
|
218
218
|
|
@@ -1443,7 +1443,7 @@ class krakenfutures(ccxt.async_support.krakenfutures):
|
|
1443
1443
|
messageHash += '#' + subChannelName
|
1444
1444
|
return messageHash
|
1445
1445
|
|
1446
|
-
def handle_error_message(self, client: Client, message):
|
1446
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
1447
1447
|
#
|
1448
1448
|
# {
|
1449
1449
|
# event: 'alert',
|
@@ -1455,6 +1455,7 @@ class krakenfutures(ccxt.async_support.krakenfutures):
|
|
1455
1455
|
raise ExchangeError(self.id + ' ' + errMsg)
|
1456
1456
|
except Exception as error:
|
1457
1457
|
client.reject(error)
|
1458
|
+
return False
|
1458
1459
|
|
1459
1460
|
def handle_message(self, client, message):
|
1460
1461
|
event = self.safe_string(message, 'event')
|
ccxt/pro/kucoin.py
CHANGED
@@ -5,7 +5,7 @@
|
|
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 Any, Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
8
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
@@ -1321,7 +1321,7 @@ class kucoin(ccxt.async_support.kucoin):
|
|
1321
1321
|
client.lastPong = self.milliseconds()
|
1322
1322
|
# https://docs.kucoin.com/#ping
|
1323
1323
|
|
1324
|
-
def handle_error_message(self, client: Client, message):
|
1324
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
1325
1325
|
#
|
1326
1326
|
# {
|
1327
1327
|
# "id": "1",
|
@@ -1337,6 +1337,7 @@ class kucoin(ccxt.async_support.kucoin):
|
|
1337
1337
|
type = 'private'
|
1338
1338
|
self.options['urls'][type] = None
|
1339
1339
|
self.handle_errors(None, None, client.url, None, None, data, message, None, None)
|
1340
|
+
return False
|
1340
1341
|
|
1341
1342
|
def handle_message(self, client: Client, message):
|
1342
1343
|
type = self.safe_string(message, 'type')
|
ccxt/pro/kucoinfutures.py
CHANGED
@@ -5,7 +5,7 @@
|
|
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 Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
8
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
@@ -1166,7 +1166,7 @@ class kucoinfutures(ccxt.async_support.kucoinfutures):
|
|
1166
1166
|
client.lastPong = self.milliseconds()
|
1167
1167
|
return message
|
1168
1168
|
|
1169
|
-
def handle_error_message(self, client: Client, message):
|
1169
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
1170
1170
|
#
|
1171
1171
|
# {
|
1172
1172
|
# "id": "64d8732c856851144bded10d",
|
@@ -1182,6 +1182,7 @@ class kucoinfutures(ccxt.async_support.kucoinfutures):
|
|
1182
1182
|
type = 'private'
|
1183
1183
|
self.options['urls'][type] = None
|
1184
1184
|
self.handle_errors(None, None, client.url, None, None, data, message, None, None)
|
1185
|
+
return True
|
1185
1186
|
|
1186
1187
|
def handle_subscription_status(self, client: Client, message):
|
1187
1188
|
#
|
ccxt/pro/modetrade.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
|
8
|
-
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
8
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
@@ -1176,7 +1176,7 @@ class modetrade(ccxt.async_support.modetrade):
|
|
1176
1176
|
self.balance = self.safe_balance(self.balance)
|
1177
1177
|
client.resolve(self.balance, 'balance')
|
1178
1178
|
|
1179
|
-
def handle_error_message(self, client: Client, message):
|
1179
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
1180
1180
|
#
|
1181
1181
|
# {"id":"1","event":"subscribe","success":false,"ts":1710780997216,"errorMsg":"Auth is needed."}
|
1182
1182
|
#
|
ccxt/pro/okcoin.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Ticker, Trade
|
9
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Ticker, Trade
|
10
10
|
from ccxt.async_support.base.ws.client import Client
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -601,7 +601,7 @@ class okcoin(ccxt.async_support.okcoin):
|
|
601
601
|
client.lastPong = self.milliseconds()
|
602
602
|
return message
|
603
603
|
|
604
|
-
def handle_error_message(self, client: Client, message):
|
604
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
605
605
|
#
|
606
606
|
# {event: "error", message: "Invalid sign", errorCode: 30013}
|
607
607
|
# {"event":"error","message":"Unrecognized request: {\"event\":\"subscribe\",\"channel\":\"spot/depth:BTC-USDT\"}","errorCode":30039}
|
ccxt/pro/okx.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Any, Balances, Int, Liquidation, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade
|
9
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Liquidation, Num, Order, OrderBook, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, FundingRates, Trade
|
10
10
|
from ccxt.async_support.base.ws.client import Client
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
@@ -618,7 +618,7 @@ class okx(ccxt.async_support.okx):
|
|
618
618
|
'info': ticker,
|
619
619
|
}, market)
|
620
620
|
|
621
|
-
async def watch_liquidations_for_symbols(self, symbols: List[str]
|
621
|
+
async def watch_liquidations_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
|
622
622
|
"""
|
623
623
|
watch the public liquidations of a trading pair
|
624
624
|
|
@@ -706,7 +706,7 @@ class okx(ccxt.async_support.okx):
|
|
706
706
|
client.resolve([liquidation], 'liquidations')
|
707
707
|
client.resolve([liquidation], 'liquidations::' + symbol)
|
708
708
|
|
709
|
-
async def watch_my_liquidations_for_symbols(self, symbols: List[str]
|
709
|
+
async def watch_my_liquidations_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Liquidation]:
|
710
710
|
"""
|
711
711
|
watch the private liquidations of a trading pair
|
712
712
|
|
@@ -2130,7 +2130,7 @@ class okx(ccxt.async_support.okx):
|
|
2130
2130
|
client.lastPong = self.milliseconds()
|
2131
2131
|
return message
|
2132
2132
|
|
2133
|
-
def handle_error_message(self, client: Client, message):
|
2133
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
2134
2134
|
#
|
2135
2135
|
# {event: 'error', msg: "Illegal request: {"op":"subscribe","args":["spot/ticker:BTC-USDT"]}", code: "60012"}
|
2136
2136
|
# {event: 'error", msg: "channel:ticker,instId:BTC-USDT doesn"t exist", code: "60018"}
|
@@ -2172,7 +2172,7 @@ class okx(ccxt.async_support.okx):
|
|
2172
2172
|
return False
|
2173
2173
|
client.reject(e)
|
2174
2174
|
return False
|
2175
|
-
return
|
2175
|
+
return True
|
2176
2176
|
|
2177
2177
|
def handle_message(self, client: Client, message):
|
2178
2178
|
if not self.handle_error_message(client, message):
|
ccxt/pro/onetrading.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCacheBySymbolById, ArrayCacheByTimestamp
|
8
|
-
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
8
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
@@ -1166,7 +1166,7 @@ class onetrading(ccxt.async_support.onetrading):
|
|
1166
1166
|
#
|
1167
1167
|
return message
|
1168
1168
|
|
1169
|
-
def handle_error_message(self, client: Client, message):
|
1169
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
1170
1170
|
#
|
1171
1171
|
# {
|
1172
1172
|
# "error": "MALFORMED_JSON",
|
ccxt/pro/p2b.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheByTimestamp
|
8
|
-
from ccxt.base.types import Any, Int, OrderBook, Strings, Ticker, Tickers, Trade
|
8
|
+
from ccxt.base.types import Any, Bool, Int, OrderBook, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
@@ -448,7 +448,7 @@ class p2b(ccxt.async_support.p2b):
|
|
448
448
|
if endpoint is not None:
|
449
449
|
endpoint(client, message)
|
450
450
|
|
451
|
-
def handle_error_message(self, client: Client, message):
|
451
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
452
452
|
error = self.safe_string(message, 'error')
|
453
453
|
if error is not None:
|
454
454
|
raise ExchangeError(self.id + ' error: ' + self.json(error))
|
ccxt/pro/paradex.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache
|
8
|
-
from ccxt.base.types import Any, Int, OrderBook, Strings, Ticker, Tickers, Trade
|
8
|
+
from ccxt.base.types import Any, Bool, Int, OrderBook, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
|
@@ -287,7 +287,7 @@ class paradex(ccxt.async_support.paradex):
|
|
287
287
|
client.resolve(ticker, messageHash)
|
288
288
|
return message
|
289
289
|
|
290
|
-
def handle_error_message(self, client: Client, message):
|
290
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
291
291
|
#
|
292
292
|
# {
|
293
293
|
# "jsonrpc": "2.0",
|
ccxt/pro/poloniex.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Any, Balances, Int, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
|
9
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
|
10
10
|
from ccxt.async_support.base.ws.client import Client
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
@@ -1168,7 +1168,7 @@ class poloniex(ccxt.async_support.poloniex):
|
|
1168
1168
|
if dataLength > 0:
|
1169
1169
|
method(client, message)
|
1170
1170
|
|
1171
|
-
def handle_error_message(self, client: Client, message):
|
1171
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
1172
1172
|
#
|
1173
1173
|
# {
|
1174
1174
|
# message: 'Invalid channel value ["ordersss"]',
|
ccxt/pro/probit.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById
|
8
|
-
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Str, Ticker, Trade
|
8
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Ticker, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
@@ -451,7 +451,7 @@ class probit(ccxt.async_support.probit):
|
|
451
451
|
self.handle_bid_asks(storedBids, bids)
|
452
452
|
self.handle_bid_asks(storedAsks, asks)
|
453
453
|
|
454
|
-
def handle_error_message(self, client: Client, message):
|
454
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
455
455
|
#
|
456
456
|
# {
|
457
457
|
# "errorCode": "INVALID_ARGUMENT",
|
ccxt/pro/vertex.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide
|
8
|
-
from ccxt.base.types import Any, Int, Market, Order, OrderBook, Position, Str, Strings, Ticker, Trade
|
8
|
+
from ccxt.base.types import Any, Bool, Int, Market, Order, OrderBook, Position, Str, Strings, Ticker, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
@@ -898,7 +898,7 @@ class vertex(ccxt.async_support.vertex):
|
|
898
898
|
cachedOrders.append(parsed)
|
899
899
|
client.resolve(self.orders, marketId + '@' + topic)
|
900
900
|
|
901
|
-
def handle_error_message(self, client: Client, message):
|
901
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
902
902
|
#
|
903
903
|
# {
|
904
904
|
# result: null,
|
ccxt/pro/whitebit.py
CHANGED
@@ -5,7 +5,7 @@
|
|
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 Any, Balances, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
8
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
@@ -834,7 +834,7 @@ class whitebit(ccxt.async_support.whitebit):
|
|
834
834
|
future.resolve(1)
|
835
835
|
return message
|
836
836
|
|
837
|
-
def handle_error_message(self, client: Client, message):
|
837
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
838
838
|
#
|
839
839
|
# {
|
840
840
|
# "error": {code: 1, message: "invalid argument"},
|
ccxt/pro/woo.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
9
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
10
10
|
from ccxt.async_support.base.ws.client import Client
|
11
11
|
from typing import List
|
12
12
|
from ccxt.base.errors import ExchangeError
|
@@ -1146,7 +1146,7 @@ class woo(ccxt.async_support.woo):
|
|
1146
1146
|
self.balance = self.safe_balance(self.balance)
|
1147
1147
|
client.resolve(self.balance, 'balance')
|
1148
1148
|
|
1149
|
-
def handle_error_message(self, client: Client, message):
|
1149
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
1150
1150
|
#
|
1151
1151
|
# {"id":"1","event":"subscribe","success":false,"ts":1710780997216,"errorMsg":"Auth is needed."}
|
1152
1152
|
#
|
ccxt/pro/woofipro.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
import ccxt.async_support
|
7
7
|
from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheBySymbolBySide, ArrayCacheByTimestamp
|
8
|
-
from ccxt.base.types import Any, Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
8
|
+
from ccxt.base.types import Any, Balances, Bool, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
|
9
9
|
from ccxt.async_support.base.ws.client import Client
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
@@ -1176,7 +1176,7 @@ class woofipro(ccxt.async_support.woofipro):
|
|
1176
1176
|
self.balance = self.safe_balance(self.balance)
|
1177
1177
|
client.resolve(self.balance, 'balance')
|
1178
1178
|
|
1179
|
-
def handle_error_message(self, client: Client, message):
|
1179
|
+
def handle_error_message(self, client: Client, message) -> Bool:
|
1180
1180
|
#
|
1181
1181
|
# {"id":"1","event":"subscribe","success":false,"ts":1710780997216,"errorMsg":"Auth is needed."}
|
1182
1182
|
#
|
ccxt/test/tests_async.py
CHANGED
ccxt/test/tests_sync.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.4.
|
3
|
+
Version: 4.4.99
|
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
|
@@ -49,7 +49,7 @@ Requires-Dist: mypy==1.6.1; extra == "type"
|
|
49
49
|
|
50
50
|
# CCXT – CryptoCurrency eXchange Trading Library
|
51
51
|
|
52
|
-
[](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [](https://x.com/ccxt_official)
|
53
53
|
|
54
54
|
A `JavaScript` / `Python` / `PHP` / `C#` / `Go` library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
|
55
55
|
|
@@ -101,7 +101,7 @@ Current feature list:
|
|
101
101
|
| [](https://dex.woo.org/en/trade?ref=CCXT) | woofipro | [WOOFI PRO](https://dex.woo.org/en/trade?ref=CCXT) | [](https://orderly.network/docs/build-on-evm/building-on-evm) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://dex.woo.org/en/trade?ref=CCXT) |
|
102
102
|
|
103
103
|
## Supported Cryptocurrency Exchanges
|
104
|
-
<!--- init list -->The CCXT library currently supports the following
|
104
|
+
<!--- init list -->The CCXT library currently supports the following 104 cryptocurrency exchange markets and trading APIs:
|
105
105
|
|
106
106
|
|logo |id |name |ver |type |certified |pro |
|
107
107
|
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
|
@@ -164,6 +164,7 @@ Current feature list:
|
|
164
164
|
| [](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [](https://www.gate.io/docs/developers/apiv4/en/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
165
165
|
| [](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | [](https://docs.gemini.com/rest-api) |  | | [](https://ccxt.pro) |
|
166
166
|
| [](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/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
167
|
+
| [](hibachi.xyz/r/ZBL2YFWIHU) | hibachi | [Hibachi](hibachi.xyz/r/ZBL2YFWIHU) | [](undefined) |  | | |
|
167
168
|
| [](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | [](https://api.hitbtc.com) |  | | |
|
168
169
|
| [](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | [](https://apidocs.hollaex.com) |  | | [](https://ccxt.pro) |
|
169
170
|
| [](https://www.htx.com.vc/invite/en-us/1h?invite_code=6rmm2223) | htx | [HTX](https://www.htx.com.vc/invite/en-us/1h?invite_code=6rmm2223) | [](https://huobiapi.github.io/docs/spot/v1/en/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
@@ -269,13 +270,13 @@ console.log(version, Object.keys(exchanges));
|
|
269
270
|
|
270
271
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
271
272
|
|
272
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
273
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
273
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.99/dist/ccxt.browser.min.js
|
274
|
+
* unpkg: https://unpkg.com/ccxt@4.4.99/dist/ccxt.browser.min.js
|
274
275
|
|
275
276
|
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.
|
276
277
|
|
277
278
|
```HTML
|
278
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
279
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.99/dist/ccxt.browser.min.js"></script>
|
279
280
|
```
|
280
281
|
|
281
282
|
Creates a global `ccxt` object:
|