ccxt 4.3.34__py2.py3-none-any.whl → 4.3.35__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.
Potentially problematic release.
This version of ccxt might be problematic. Click here for more details.
- ccxt/__init__.py +1 -1
- ccxt/alpaca.py +1 -1
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/alpaca.py +1 -1
- ccxt/async_support/base/exchange.py +42 -42
- ccxt/async_support/binance.py +2 -2
- ccxt/async_support/bingx.py +2 -1
- ccxt/async_support/bitget.py +1 -1
- ccxt/async_support/bitmart.py +2 -7
- ccxt/async_support/btcmarkets.py +3 -1
- ccxt/async_support/bybit.py +1 -1
- ccxt/async_support/coinbase.py +60 -3
- ccxt/async_support/coinex.py +26 -19
- ccxt/async_support/gemini.py +1 -1
- ccxt/async_support/kraken.py +3 -1
- ccxt/base/exchange.py +85 -76
- ccxt/binance.py +2 -2
- ccxt/bingx.py +2 -1
- ccxt/bitget.py +1 -1
- ccxt/bitmart.py +2 -7
- ccxt/btcmarkets.py +3 -1
- ccxt/bybit.py +1 -1
- ccxt/coinbase.py +60 -3
- ccxt/coinex.py +26 -19
- ccxt/gemini.py +1 -1
- ccxt/kraken.py +3 -1
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/bitget.py +24 -1
- ccxt/pro/bitmart.py +1 -1
- ccxt/pro/kraken.py +1 -1
- ccxt/pro/okx.py +1 -1
- ccxt/test/base/test_crypto.py +1 -1
- {ccxt-4.3.34.dist-info → ccxt-4.3.35.dist-info}/METADATA +4 -4
- {ccxt-4.3.34.dist-info → ccxt-4.3.35.dist-info}/RECORD +36 -36
- {ccxt-4.3.34.dist-info → ccxt-4.3.35.dist-info}/WHEEL +0 -0
- {ccxt-4.3.34.dist-info → ccxt-4.3.35.dist-info}/top_level.txt +0 -0
ccxt/bitget.py
CHANGED
@@ -2723,7 +2723,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
2723
2723
|
request: dict = {}
|
2724
2724
|
type = None
|
2725
2725
|
type, params = self.handle_market_type_and_params('fetchTickers', market, params)
|
2726
|
-
# Calls like `.
|
2726
|
+
# Calls like `.fetchTickers(None, {subType:'inverse'})` should be supported for self exchange, so
|
2727
2727
|
# as "options.defaultSubType" is also set in exchange options, we should consider `params.subType`
|
2728
2728
|
# with higher priority and only default to spot, if `subType` is not set in params
|
2729
2729
|
passedSubType = self.safe_string(params, 'subType')
|
ccxt/bitmart.py
CHANGED
@@ -1180,14 +1180,9 @@ class bitmart(Exchange, ImplicitAPI):
|
|
1180
1180
|
market = self.safe_market(marketId, market)
|
1181
1181
|
symbol = market['symbol']
|
1182
1182
|
last = self.safe_string_2(ticker, 'close_24h', 'last_price')
|
1183
|
-
percentage = self.safe_string(ticker, 'price_change_percent_24h')
|
1183
|
+
percentage = Precise.string_abs(self.safe_string(ticker, 'price_change_percent_24h'))
|
1184
1184
|
if percentage is None:
|
1185
|
-
|
1186
|
-
if (percentageRaw is not None) and (percentageRaw != '0'): # a few tickers show strictly '0' in fluctuation field
|
1187
|
-
direction = percentageRaw[0]
|
1188
|
-
percentage = direction + Precise.string_mul(percentageRaw.replace(direction, ''), '100')
|
1189
|
-
elif percentageRaw == '0':
|
1190
|
-
percentage = '0'
|
1185
|
+
percentage = Precise.string_abs(Precise.string_mul(self.safe_string(ticker, 'fluctuation'), '100'))
|
1191
1186
|
baseVolume = self.safe_string(ticker, 'base_volume_24h')
|
1192
1187
|
quoteVolume = self.safe_string(ticker, 'quote_volume_24h')
|
1193
1188
|
if quoteVolume is None:
|
ccxt/btcmarkets.py
CHANGED
@@ -876,7 +876,9 @@ class btcmarkets(Exchange, ImplicitAPI):
|
|
876
876
|
"""
|
877
877
|
calculates the presumptive fee that would be charged for an order
|
878
878
|
:param str symbol: unified market symbol
|
879
|
-
:param str type: not used by btcmarkets.
|
879
|
+
:param str type: not used by btcmarkets.calculateFee
|
880
|
+
:param str side: not used by btcmarkets.calculateFee
|
881
|
+
:param float amount: how much you want to trade, in units of the base currency on most exchanges, or number of contracts
|
880
882
|
:param float price: the price for the order to be filled at, in units of the quote currency
|
881
883
|
:param str takerOrMaker: 'taker' or 'maker'
|
882
884
|
:param dict params:
|
ccxt/bybit.py
CHANGED
@@ -2079,7 +2079,7 @@ class bybit(Exchange, ImplicitAPI):
|
|
2079
2079
|
}
|
2080
2080
|
type = None
|
2081
2081
|
type, params = self.handle_market_type_and_params('fetchTickers', market, params)
|
2082
|
-
# Calls like `.
|
2082
|
+
# Calls like `.fetchTickers(None, {subType:'inverse'})` should be supported for self exchange, so
|
2083
2083
|
# as "options.defaultSubType" is also set in exchange options, we should consider `params.subType`
|
2084
2084
|
# with higher priority and only default to spot, if `subType` is not set in params
|
2085
2085
|
passedSubType = self.safe_string(params, 'subType')
|
ccxt/coinbase.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.coinbase import ImplicitAPI
|
8
8
|
import hashlib
|
9
|
-
from ccxt.base.types import Account, Balances, Conversion, Currencies, Currency, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
|
9
|
+
from ccxt.base.types import Account, Balances, Conversion, Currencies, Currency, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -121,8 +121,8 @@ class coinbase(Exchange, ImplicitAPI):
|
|
121
121
|
'fetchTickers': True,
|
122
122
|
'fetchTime': True,
|
123
123
|
'fetchTrades': True,
|
124
|
-
'fetchTradingFee':
|
125
|
-
'fetchTradingFees':
|
124
|
+
'fetchTradingFee': 'emulated',
|
125
|
+
'fetchTradingFees': True,
|
126
126
|
'fetchWithdrawals': True,
|
127
127
|
'reduceMargin': False,
|
128
128
|
'setLeverage': False,
|
@@ -4272,6 +4272,63 @@ class coinbase(Exchange, ImplicitAPI):
|
|
4272
4272
|
'takeProfitPrice': None,
|
4273
4273
|
})
|
4274
4274
|
|
4275
|
+
def fetch_trading_fees(self, params={}) -> TradingFees:
|
4276
|
+
"""
|
4277
|
+
:see: https://docs.cdp.coinbase.com/advanced-trade/reference/retailbrokerageapi_gettransactionsummary/
|
4278
|
+
fetch the trading fees for multiple markets
|
4279
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
4280
|
+
:param str [params.type]: 'spot' or 'swap'
|
4281
|
+
:returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
|
4282
|
+
"""
|
4283
|
+
self.load_markets()
|
4284
|
+
type = None
|
4285
|
+
type, params = self.handle_market_type_and_params('fetchTradingFees', None, params)
|
4286
|
+
isSpot = (type == 'spot')
|
4287
|
+
productType = 'SPOT' if isSpot else 'FUTURE'
|
4288
|
+
request: dict = {
|
4289
|
+
'product_type': productType,
|
4290
|
+
}
|
4291
|
+
response = self.v3PrivateGetBrokerageTransactionSummary(self.extend(request, params))
|
4292
|
+
#
|
4293
|
+
# {
|
4294
|
+
# total_volume: '0',
|
4295
|
+
# total_fees: '0',
|
4296
|
+
# fee_tier: {
|
4297
|
+
# pricing_tier: 'Advanced 1',
|
4298
|
+
# usd_from: '0',
|
4299
|
+
# usd_to: '1000',
|
4300
|
+
# taker_fee_rate: '0.008',
|
4301
|
+
# maker_fee_rate: '0.006',
|
4302
|
+
# aop_from: '',
|
4303
|
+
# aop_to: ''
|
4304
|
+
# },
|
4305
|
+
# margin_rate: null,
|
4306
|
+
# goods_and_services_tax: null,
|
4307
|
+
# advanced_trade_only_volume: '0',
|
4308
|
+
# advanced_trade_only_fees: '0',
|
4309
|
+
# coinbase_pro_volume: '0',
|
4310
|
+
# coinbase_pro_fees: '0',
|
4311
|
+
# total_balance: '',
|
4312
|
+
# has_promo_fee: False
|
4313
|
+
# }
|
4314
|
+
#
|
4315
|
+
data = self.safe_dict(response, 'fee_tier', {})
|
4316
|
+
taker_fee = self.safe_number(data, 'taker_fee_rate')
|
4317
|
+
marker_fee = self.safe_number(data, 'maker_fee_rate')
|
4318
|
+
result: dict = {}
|
4319
|
+
for i in range(0, len(self.symbols)):
|
4320
|
+
symbol = self.symbols[i]
|
4321
|
+
market = self.market(symbol)
|
4322
|
+
if (isSpot and market['spot']) or (not isSpot and not market['spot']):
|
4323
|
+
result[symbol] = {
|
4324
|
+
'info': response,
|
4325
|
+
'symbol': symbol,
|
4326
|
+
'maker': taker_fee,
|
4327
|
+
'taker': marker_fee,
|
4328
|
+
'percentage': True,
|
4329
|
+
}
|
4330
|
+
return result
|
4331
|
+
|
4275
4332
|
def create_auth_token(self, seconds: Int, method: Str = None, url: Str = None):
|
4276
4333
|
# it may not work for v2
|
4277
4334
|
uri = None
|
ccxt/coinex.py
CHANGED
@@ -4374,7 +4374,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
4374
4374
|
def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
|
4375
4375
|
"""
|
4376
4376
|
make a withdrawal
|
4377
|
-
:see: https://
|
4377
|
+
:see: https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/withdrawal
|
4378
4378
|
:param str code: unified currency code
|
4379
4379
|
:param float amount: the amount to withdraw
|
4380
4380
|
:param str address: the address to withdraw to
|
@@ -4387,35 +4387,42 @@ class coinex(Exchange, ImplicitAPI):
|
|
4387
4387
|
self.check_address(address)
|
4388
4388
|
self.load_markets()
|
4389
4389
|
currency = self.currency(code)
|
4390
|
-
networkCode = self.
|
4390
|
+
networkCode = self.safe_string_upper_2(params, 'network', 'chain')
|
4391
4391
|
params = self.omit(params, 'network')
|
4392
4392
|
if tag:
|
4393
4393
|
address = address + ':' + tag
|
4394
4394
|
request: dict = {
|
4395
|
-
'
|
4396
|
-
'
|
4397
|
-
'
|
4398
|
-
'transfer_method': 'onchain', # onchain, local
|
4395
|
+
'ccy': currency['id'],
|
4396
|
+
'to_address': address, # must be authorized, inter-user transfer by a registered mobile phone number or an email address is supported
|
4397
|
+
'amount': self.number_to_string(amount), # the actual amount without fees, https://www.coinex.com/fees
|
4399
4398
|
}
|
4400
4399
|
if networkCode is not None:
|
4401
|
-
request['
|
4402
|
-
response = self.
|
4400
|
+
request['chain'] = self.network_code_to_id(networkCode) # required for on-chain, not required for inter-user transfer
|
4401
|
+
response = self.v2PrivatePostAssetsWithdraw(self.extend(request, params))
|
4403
4402
|
#
|
4404
4403
|
# {
|
4405
4404
|
# "code": 0,
|
4406
4405
|
# "data": {
|
4407
|
-
# "
|
4408
|
-
# "
|
4409
|
-
# "
|
4410
|
-
# "
|
4411
|
-
# "
|
4406
|
+
# "withdraw_id": 31193755,
|
4407
|
+
# "created_at": 1716874165038,
|
4408
|
+
# "withdraw_method": "ON_CHAIN",
|
4409
|
+
# "ccy": "USDT",
|
4410
|
+
# "amount": "17.3",
|
4411
|
+
# "actual_amount": "15",
|
4412
|
+
# "chain": "TRC20",
|
4413
|
+
# "tx_fee": "2.3",
|
4414
|
+
# "fee_asset": "USDT",
|
4415
|
+
# "fee_amount": "2.3",
|
4416
|
+
# "to_address": "TY5vq3MT6b5cQVAHWHtpGyPg1ERcQgi3UN",
|
4417
|
+
# "memo": "",
|
4418
|
+
# "tx_id": "",
|
4412
4419
|
# "confirmations": 0,
|
4413
|
-
# "
|
4414
|
-
# "
|
4415
|
-
# "
|
4416
|
-
# "
|
4420
|
+
# "explorer_address_url": "https://tronscan.org/#/address/TY5vq3MT6b5cQVAHWHtpGyPg1ERcQgi3UN",
|
4421
|
+
# "explorer_tx_url": "https://tronscan.org/#/transaction/",
|
4422
|
+
# "remark": "",
|
4423
|
+
# "status": "audit_required"
|
4417
4424
|
# },
|
4418
|
-
# "message": "
|
4425
|
+
# "message": "OK"
|
4419
4426
|
# }
|
4420
4427
|
#
|
4421
4428
|
transaction = self.safe_dict(response, 'data', {})
|
@@ -4519,7 +4526,7 @@ class coinex(Exchange, ImplicitAPI):
|
|
4519
4526
|
# "remark": ""
|
4520
4527
|
# }
|
4521
4528
|
#
|
4522
|
-
# fetchWithdrawals
|
4529
|
+
# fetchWithdrawals and withdraw
|
4523
4530
|
#
|
4524
4531
|
# {
|
4525
4532
|
# "withdraw_id": 259364,
|
ccxt/gemini.py
CHANGED
@@ -831,7 +831,7 @@ class gemini(Exchange, ImplicitAPI):
|
|
831
831
|
:see: https://docs.gemini.com/rest-api/#ticker-v2
|
832
832
|
:param str symbol: unified symbol of the market to fetch the ticker for
|
833
833
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
834
|
-
:param dict [params.fetchTickerMethod]: 'fetchTickerV2', 'fetchTickerV1' or 'fetchTickerV1AndV2' - 'fetchTickerV1' for original ccxt.gemini.
|
834
|
+
:param dict [params.fetchTickerMethod]: 'fetchTickerV2', 'fetchTickerV1' or 'fetchTickerV1AndV2' - 'fetchTickerV1' for original ccxt.gemini.fetchTicker - 'fetchTickerV1AndV2' for 2 api calls to get the result of both fetchTicker methods - default = 'fetchTickerV1'
|
835
835
|
:returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
|
836
836
|
"""
|
837
837
|
method = self.safe_value(self.options, 'fetchTickerMethod', 'fetchTickerV1')
|
ccxt/kraken.py
CHANGED
@@ -970,7 +970,9 @@ class kraken(Exchange, ImplicitAPI):
|
|
970
970
|
else:
|
971
971
|
request['interval'] = timeframe
|
972
972
|
if since is not None:
|
973
|
-
|
973
|
+
scaledSince = self.parse_to_int(since / 1000)
|
974
|
+
timeFrameInSeconds = parsedTimeframe * 60
|
975
|
+
request['since'] = self.number_to_string(scaledSince - timeFrameInSeconds) # expected to be in seconds
|
974
976
|
response = self.publicGetOHLC(self.extend(request, params))
|
975
977
|
#
|
976
978
|
# {
|
ccxt/pro/__init__.py
CHANGED
ccxt/pro/bitget.py
CHANGED
@@ -917,7 +917,9 @@ class bitget(ccxt.async_support.bitget):
|
|
917
917
|
:param int [limit]: the maximum number of order structures to retrieve
|
918
918
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
919
919
|
:param boolean [params.stop]: *contract only* set to True for watching trigger orders
|
920
|
-
:param str [params.marginMode]: 'isolated' or 'cross' for watching spot margin orders
|
920
|
+
:param str [params.marginMode]: 'isolated' or 'cross' for watching spot margin orders]
|
921
|
+
:param str [params.type]: 'spot', 'swap'
|
922
|
+
:param str [params.subType]: 'linear', 'inverse'
|
921
923
|
:returns dict[]: a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
|
922
924
|
"""
|
923
925
|
await self.load_markets()
|
@@ -932,10 +934,21 @@ class bitget(ccxt.async_support.bitget):
|
|
932
934
|
symbol = market['symbol']
|
933
935
|
marketId = market['id']
|
934
936
|
messageHash = messageHash + ':' + symbol
|
937
|
+
productType = self.safe_string(params, 'productType')
|
935
938
|
type = None
|
936
939
|
type, params = self.handle_market_type_and_params('watchOrders', market, params)
|
940
|
+
subType = None
|
941
|
+
subType, params = self.handle_sub_type_and_params('watchOrders', market, params, 'linear')
|
937
942
|
if (type == 'spot') and (symbol is None):
|
938
943
|
raise ArgumentsRequired(self.id + ' watchOrders requires a symbol argument for ' + type + ' markets.')
|
944
|
+
if (productType is None) and (type != 'spot') and (symbol is None):
|
945
|
+
messageHash = messageHash + ':' + subType
|
946
|
+
elif productType == 'USDT-FUTURES':
|
947
|
+
messageHash = messageHash + ':linear'
|
948
|
+
elif productType == 'COIN-FUTURES':
|
949
|
+
messageHash = messageHash + ':inverse'
|
950
|
+
elif productType == 'USDC-FUTURES':
|
951
|
+
messageHash = messageHash + ':usdcfutures' # non unified channel
|
939
952
|
instType = None
|
940
953
|
instType, params = self.get_inst_type(market, params)
|
941
954
|
if type == 'spot':
|
@@ -952,6 +965,7 @@ class bitget(ccxt.async_support.bitget):
|
|
952
965
|
channel = 'orders-isolated'
|
953
966
|
else:
|
954
967
|
channel = 'orders-crossed'
|
968
|
+
subscriptionHash = subscriptionHash + ':' + instType
|
955
969
|
args: dict = {
|
956
970
|
'instType': instType,
|
957
971
|
'channel': channel,
|
@@ -1007,6 +1021,9 @@ class bitget(ccxt.async_support.bitget):
|
|
1007
1021
|
marketType = 'spot'
|
1008
1022
|
else:
|
1009
1023
|
marketType = 'contract'
|
1024
|
+
isLinearSwap = (instType == 'USDT-FUTURES')
|
1025
|
+
isInverseSwap = (instType == 'COIN-FUTURES')
|
1026
|
+
isUSDCFutures = (instType == 'USDC-FUTURES')
|
1010
1027
|
data = self.safe_value(message, 'data', [])
|
1011
1028
|
if self.orders is None:
|
1012
1029
|
limit = self.safe_integer(self.options, 'ordersLimit', 1000)
|
@@ -1030,6 +1047,12 @@ class bitget(ccxt.async_support.bitget):
|
|
1030
1047
|
innerMessageHash = messageHash + ':' + symbol
|
1031
1048
|
client.resolve(stored, innerMessageHash)
|
1032
1049
|
client.resolve(stored, messageHash)
|
1050
|
+
if isLinearSwap:
|
1051
|
+
client.resolve(stored, 'order:linear')
|
1052
|
+
if isInverseSwap:
|
1053
|
+
client.resolve(stored, 'order:inverse')
|
1054
|
+
if isUSDCFutures:
|
1055
|
+
client.resolve(stored, 'order:usdcfutures')
|
1033
1056
|
|
1034
1057
|
def parse_ws_order(self, order, market=None):
|
1035
1058
|
#
|
ccxt/pro/bitmart.py
CHANGED
@@ -506,7 +506,7 @@ class bitmart(ccxt.async_support.bitmart):
|
|
506
506
|
amount = self.safe_string(order, 'size')
|
507
507
|
type = self.safe_string(order, 'type')
|
508
508
|
rawState = self.safe_string(order, 'state')
|
509
|
-
status = self.
|
509
|
+
status = self.parse_order_status_by_type(market['type'], rawState)
|
510
510
|
timestamp = self.safe_integer(order, 'ms_t')
|
511
511
|
symbol = market['symbol']
|
512
512
|
side = self.safe_string_lower(order, 'side')
|
ccxt/pro/kraken.py
CHANGED
@@ -1230,7 +1230,7 @@ class kraken(ccxt.async_support.kraken):
|
|
1230
1230
|
messageHashes = []
|
1231
1231
|
for i in range(0, len(symbols)):
|
1232
1232
|
messageHashes.append(self.get_message_hash(unifiedName, None, self.symbol(symbols[i])))
|
1233
|
-
# for WS subscriptions, we can't use .
|
1233
|
+
# for WS subscriptions, we can't use .marketIds(symbols), instead a custom is field needed
|
1234
1234
|
markets = self.markets_for_symbols(symbols)
|
1235
1235
|
wsMarketIds = []
|
1236
1236
|
for i in range(0, len(markets)):
|
ccxt/pro/okx.py
CHANGED
@@ -164,7 +164,7 @@ class okx(ccxt.async_support.okx):
|
|
164
164
|
self.deep_extend(firstArgument, params),
|
165
165
|
],
|
166
166
|
}
|
167
|
-
return self.watch(url, messageHash, request, messageHash)
|
167
|
+
return await self.watch(url, messageHash, request, messageHash)
|
168
168
|
|
169
169
|
async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
|
170
170
|
"""
|
ccxt/test/base/test_crypto.py
CHANGED
@@ -42,7 +42,7 @@ assert hash(encode('sexyfish'), 'md5', 'hex') == 'c8a35464aa9d5683585786f44d5889
|
|
42
42
|
assert hash(encode(''), 'sha1', 'hex') == 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
|
43
43
|
assert hash(encode('nutella'), 'sha1', 'hex') == 'b3d60a34b744159793c483b067c56d8affc5111a'
|
44
44
|
assert hmac(encode('hello'), encode('there'), hashlib.sha256, 'hex') == '551e1c1ecbce0fe9b643745a376584a6289f5f43a46861b315fac9edc8d52a26'
|
45
|
-
assert hmac(encode('a message'), encode('a secret'),
|
45
|
+
assert hmac(encode('a message'), encode('a secret'), hashlib.md5, 'hex') == '0bfa503bdbc7358185fcd49b4869e23d'
|
46
46
|
|
47
47
|
# ---------------------------------------------------------------------------------------------------------------------
|
48
48
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.35
|
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
|
@@ -264,13 +264,13 @@ console.log(version, Object.keys(exchanges));
|
|
264
264
|
|
265
265
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
266
266
|
|
267
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
268
|
-
* unpkg: https://unpkg.com/ccxt@4.3.
|
267
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.35/dist/ccxt.browser.min.js
|
268
|
+
* unpkg: https://unpkg.com/ccxt@4.3.35/dist/ccxt.browser.min.js
|
269
269
|
|
270
270
|
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.
|
271
271
|
|
272
272
|
```HTML
|
273
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.
|
273
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.35/dist/ccxt.browser.min.js"></script>
|
274
274
|
```
|
275
275
|
|
276
276
|
Creates a global `ccxt` object:
|
@@ -1,14 +1,14 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=fZyAkx4OXk5H1fGXSi6n0JQww9Ol_Ni4_PXz-U7b5WU,15950
|
2
2
|
ccxt/ace.py,sha256=6x4vkcS2lGSkAQuzS-AAgYJLPDNNfNo9NMIdAoXzs18,41776
|
3
|
-
ccxt/alpaca.py,sha256=
|
3
|
+
ccxt/alpaca.py,sha256=EZ7uF3XI8EXXIsCZ-UVpruBXS96Kps6WOOukmdcgCn0,47326
|
4
4
|
ccxt/ascendex.py,sha256=rUUU3n4j8QrMrJCk4pVwVastIYzS3eDTUAL9R2ePErk,151832
|
5
5
|
ccxt/bequant.py,sha256=RBiAmaTbL35DgiV3Hl6uchLUd78V0z1T9riTlNsrpdc,1174
|
6
6
|
ccxt/bigone.py,sha256=HKnpiDzs_hu09Lc6lnxGk1_1EOvxgrPqwr5dsApuj88,92436
|
7
|
-
ccxt/binance.py,sha256=
|
7
|
+
ccxt/binance.py,sha256=vCH6EpFYY1gtDHQrf7In-gYXehhFqWTSfoXShAGbUSE,618778
|
8
8
|
ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
|
9
9
|
ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
|
10
10
|
ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
|
11
|
-
ccxt/bingx.py,sha256=
|
11
|
+
ccxt/bingx.py,sha256=xRHO5MLkhGBdiv2_Hrv2ToUTEpfjL_Trsn8vLjX2_2o,186885
|
12
12
|
ccxt/bit2c.py,sha256=miiTYRBnRqJ0A-vPEUkBq4AdXmiRl1d8vwrqLV34hvQ,37016
|
13
13
|
ccxt/bitbank.py,sha256=6V4AeEw2_mqErXGGx24tXWIgORSL11IX0f4kYFJ7Q1A,41989
|
14
14
|
ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
|
@@ -17,9 +17,9 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
|
|
17
17
|
ccxt/bitfinex.py,sha256=6O33NthP73Q-zobTf1hp8zFxJsDyAMEiOCCJn_o1iEQ,72450
|
18
18
|
ccxt/bitfinex2.py,sha256=smVuwDShHy4m4s4i4xGzx04r197GKPL8MA3lT2End4E,160612
|
19
19
|
ccxt/bitflyer.py,sha256=rvykeLLkDYVMEwXs4rInQClYwdXIXmj_7mxDpGT216I,41565
|
20
|
-
ccxt/bitget.py,sha256=
|
20
|
+
ccxt/bitget.py,sha256=fZkDv8OCasG2Y2epnZNIPwLq7byklri6dwBiiOiF5qE,423109
|
21
21
|
ccxt/bithumb.py,sha256=0oRYEp30LykNchRZwqbsiZlrzY4koY6EFWubVYs5hU8,45684
|
22
|
-
ccxt/bitmart.py,sha256=
|
22
|
+
ccxt/bitmart.py,sha256=FEWE-T15bUylIo8nkOwEn4ealjNZ2jsTQrnB5VvBpys,204467
|
23
23
|
ccxt/bitmex.py,sha256=koETQgb-yVZ3ZfP6qIHyTMLTDk8eXTHauhwhaP79ZBQ,126862
|
24
24
|
ccxt/bitopro.py,sha256=kjGn1UOy6toGyEbpV_al50eGCjqI75GN4LXpGbmL4Tw,68743
|
25
25
|
ccxt/bitpanda.py,sha256=aiwPkx9lKbVzt4ggoYdq_mIbMGtg5ZtGl2yRHO5xyz8,471
|
@@ -33,16 +33,16 @@ ccxt/blockchaincom.py,sha256=Snf5tclR2T_qQD_eS6cQbeONpBrub6irhRAK6Y00BgM,48974
|
|
33
33
|
ccxt/blofin.py,sha256=LrKelmUtqUes41vHsKEVclYTyCClA88NHfh8nbrRA7g,99500
|
34
34
|
ccxt/btcalpha.py,sha256=xAZ4wdqpq_hBD-auwAIJIeJr-OI-ulyb6qtADEIuIzw,36856
|
35
35
|
ccxt/btcbox.py,sha256=1Vs2A4jOe5Wc4qgOblDBrIyRmp0m_aQZCk9-R7DvSqs,23588
|
36
|
-
ccxt/btcmarkets.py,sha256=
|
36
|
+
ccxt/btcmarkets.py,sha256=mSK14nf9EPwKtdd9vZAAQe4LCWWE9B8atZLANAOGnVs,51654
|
37
37
|
ccxt/btcturk.py,sha256=Kh8DYFt6x7pMFXpof-xcCiJ7Fqg-P4-ZfCHdgRQ-bs0,36765
|
38
|
-
ccxt/bybit.py,sha256=
|
38
|
+
ccxt/bybit.py,sha256=QOdG3Z17PYdUoXYG33UY0JvSZRhWJrNC2eihI8eMOr4,413194
|
39
39
|
ccxt/cex.py,sha256=IUb295DSS6H3SsPbCjvBKPzzNpQYvBXaRqFF-T450wM,70086
|
40
|
-
ccxt/coinbase.py,sha256=
|
40
|
+
ccxt/coinbase.py,sha256=UB-xUmXCyI6wlAUf3xPr3MKuyTKlgc8G9skiqVLUCP8,217233
|
41
41
|
ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
|
42
42
|
ccxt/coinbaseexchange.py,sha256=pnS1O5ZkUIY3QQ8IotdWgvJDo0qB0NS6RJZPrPOvwd4,78908
|
43
43
|
ccxt/coinbaseinternational.py,sha256=cGMA-DukMh64r0zd-Z5Ussyo7kYiItXV8YWnU5myAF4,87472
|
44
44
|
ccxt/coincheck.py,sha256=dGpobFQvu2UfNLDuTXvFZzbXX8vw4AO1CGRmnOU1RbM,35784
|
45
|
-
ccxt/coinex.py,sha256=
|
45
|
+
ccxt/coinex.py,sha256=t90s9hCU6J3whbpoe7Uylv_e4cXiZ-umNTg1iWLGFvU,258035
|
46
46
|
ccxt/coinlist.py,sha256=NGb-0qi_w9cbv5455K_GEpp2wlmC6170zhgMq0Q62vc,103386
|
47
47
|
ccxt/coinmate.py,sha256=J9oS9ktyC-Z4Yxe9vVwtRNFTUPtLSaBzeuQIbsg7u04,46112
|
48
48
|
ccxt/coinmetro.py,sha256=QMbKRQQ3w6kvvMKZ71WCpFeoVDLn_iFL3O-3ihwErqs,80869
|
@@ -58,7 +58,7 @@ ccxt/exmo.py,sha256=lCeiS8jjzE4qwIATEjttQ7rMCNPvirh1TYreJVeNZYQ,114687
|
|
58
58
|
ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
|
59
59
|
ccxt/gate.py,sha256=UuKrePx7N3rpQaqNEGkcfHSmCyXwQandIFjeoOw6TRM,320303
|
60
60
|
ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
|
61
|
-
ccxt/gemini.py,sha256=
|
61
|
+
ccxt/gemini.py,sha256=5eIia9wC4amH1e2kuVZh69mQ8y43TRZu4JizH_w8ogc,80838
|
62
62
|
ccxt/hitbtc.py,sha256=rFfuwk_KY9OLy_GM4dVJmbMfLa0j_8Wfml5yJxS9UTM,153389
|
63
63
|
ccxt/hitbtc3.py,sha256=qRAr4Zvaju9IQWRZUohdoN7xRnzIMPq8AyYb3gPv-Is,455
|
64
64
|
ccxt/hollaex.py,sha256=e7irunlbzhM1BSvv9kyaccHdUF0cRjnJkIbMMQhe5PA,76141
|
@@ -69,7 +69,7 @@ ccxt/hyperliquid.py,sha256=535pxGdgEFjP03WtB3ck6Nz0PwD7HqsTOoW-6qwxAYM,101079
|
|
69
69
|
ccxt/idex.py,sha256=7f5GA9z-Mui7YOmSxPRbHIWATSU8DVXUNYPlgw34iMw,73231
|
70
70
|
ccxt/independentreserve.py,sha256=LPYeMLwcsUG9_91dpDtRVJZPOtCIe4uV7nv_T7plzss,32246
|
71
71
|
ccxt/indodax.py,sha256=Oo3elggqB0J7YWaE0o6fXo9SpJuseTQSnoJ3jYt-Buc,52074
|
72
|
-
ccxt/kraken.py,sha256=
|
72
|
+
ccxt/kraken.py,sha256=_jfLrNeo-IRUd7g01VCz4bKjSCCDe5XWLvcOv7v-HoA,128319
|
73
73
|
ccxt/krakenfutures.py,sha256=1xUvIzuDUevPngvmaODrZZ4LDYoojY7pzM5GbeobJKI,117101
|
74
74
|
ccxt/kucoin.py,sha256=DLUGLWdfTjxH9gna_jnlncz_wg38MhtYr_0Y0TF6-fA,218298
|
75
75
|
ccxt/kucoinfutures.py,sha256=x9TacKIoBZ_WnA4nljaAH9TwMvTDkU_E-GtqbK5S8F4,124565
|
@@ -210,17 +210,17 @@ ccxt/abstract/woofipro.py,sha256=El50vWGAV-4QPIDhgSnd4egfvk246NB6vTC-8h722vs,160
|
|
210
210
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
211
211
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
212
212
|
ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
|
213
|
-
ccxt/async_support/__init__.py,sha256=
|
213
|
+
ccxt/async_support/__init__.py,sha256=Ok4msHDZgUL7x6zTQiyvSah_mYUbeS-AUkYT5TSpAR8,15723
|
214
214
|
ccxt/async_support/ace.py,sha256=tsRgs_o4Iq7q8IkD83FUdC-2ztylhgO4cp2hww3rlqQ,42000
|
215
|
-
ccxt/async_support/alpaca.py,sha256=
|
215
|
+
ccxt/async_support/alpaca.py,sha256=3845DgojoA1p0pxrqnDIqHbbRcEwZhZIkE4aygD5ics,47538
|
216
216
|
ccxt/async_support/ascendex.py,sha256=7tZ4C7FfzmuB_ADYjl6IkyQQ5JG0Vt1AD_B3fTeY6V0,152620
|
217
217
|
ccxt/async_support/bequant.py,sha256=1hTwHovo1bW1XTIc8ZKjvJ-Xg6LfmpGdzT7TepykaVM,1188
|
218
218
|
ccxt/async_support/bigone.py,sha256=z4KbPCAlByhfUDmywRespbTtPTm7yIxDhX-OeMkcQek,92890
|
219
|
-
ccxt/async_support/binance.py,sha256=
|
219
|
+
ccxt/async_support/binance.py,sha256=dBRcoYqL2UcYNg_H4j6SdUgxUIEZdXMUhJX67afc2PI,621488
|
220
220
|
ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
|
221
221
|
ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
|
222
222
|
ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
|
223
|
-
ccxt/async_support/bingx.py,sha256=
|
223
|
+
ccxt/async_support/bingx.py,sha256=iHZevpURgfC5WxSTcrdJAXkR4qRxYZfdhmeajRNtKrE,187921
|
224
224
|
ccxt/async_support/bit2c.py,sha256=tQweN-rgvD9q-BHzWvgJArd7cO__TGa9AzNvGXe6MEc,37228
|
225
225
|
ccxt/async_support/bitbank.py,sha256=xcG6QiyYZE1MmWHcd4x3slaW5XwR6dMeByEKXnEp2rA,42249
|
226
226
|
ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
|
@@ -229,9 +229,9 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
|
|
229
229
|
ccxt/async_support/bitfinex.py,sha256=K-Lm2aIrw1a_H9rrSK_M-a_aZCc-9vfaSpCiMCGiHZY,72890
|
230
230
|
ccxt/async_support/bitfinex2.py,sha256=QQstleJSkjDRMHGSFZQIUHJ5fx55Bgdytk35gMWkeS0,161346
|
231
231
|
ccxt/async_support/bitflyer.py,sha256=RWrRkrZJow4M5uwoqTCD0bcITItbC5WZ57Mcmv0_1nk,41873
|
232
|
-
ccxt/async_support/bitget.py,sha256=
|
232
|
+
ccxt/async_support/bitget.py,sha256=q8eCJSGEOYKCwe_4WWGvtYhsCfpL-bm5WZBZji0GYzI,424733
|
233
233
|
ccxt/async_support/bithumb.py,sha256=0_SehUTG-pqL8uBHE_IhwJ5BjNTFfbxwF0A_IufTNuA,45914
|
234
|
-
ccxt/async_support/bitmart.py,sha256=
|
234
|
+
ccxt/async_support/bitmart.py,sha256=ttjLEDra7QR8zgD2PyOlm004Whvof2tRcwElT0cBhI0,205423
|
235
235
|
ccxt/async_support/bitmex.py,sha256=JCRSgTWNwB97A1vwvEpajD8VQ4AE8Qs5ZU1yd8KaiYc,127440
|
236
236
|
ccxt/async_support/bitopro.py,sha256=OWWNB_6Vpe10JG0P7dpmgerPEtmuxbx5_DLBFWnsL7w,69147
|
237
237
|
ccxt/async_support/bitpanda.py,sha256=2k3URBWrpnh2xHa7JiYenI7_4MW5UeOPGzetlmRkR4U,485
|
@@ -245,16 +245,16 @@ ccxt/async_support/blockchaincom.py,sha256=P_edztJfehnxSbWAnEGGzUgp3YNQ3cgtSUFgX
|
|
245
245
|
ccxt/async_support/blofin.py,sha256=lCzCaKe2caQj1XFUIZ8zXj5WBWxDGFjg_SNykxbnHYc,100084
|
246
246
|
ccxt/async_support/btcalpha.py,sha256=2A0gUt0dlqov4-vuRAAwODW66XZcFtSaVmSl-Ki1lWk,37134
|
247
247
|
ccxt/async_support/btcbox.py,sha256=ML57vDSZC7UJfl5MvNKytPtvyR_rOnIoBOZRhGPxWwE,23782
|
248
|
-
ccxt/async_support/btcmarkets.py,sha256=
|
248
|
+
ccxt/async_support/btcmarkets.py,sha256=l_nhiwG3VEJw2SJc2z53B5tyPSMkrNSowu9TmfLIgp0,52004
|
249
249
|
ccxt/async_support/btcturk.py,sha256=NQl8sLv_XpOoTJQLDxSzarh1B_jOQeUJGUrtZyvaK1k,36983
|
250
|
-
ccxt/async_support/bybit.py,sha256=
|
250
|
+
ccxt/async_support/bybit.py,sha256=0FOxbry0iP0nK24xlMKBpBAYgMWrAvp2TtIUowaJgyQ,414998
|
251
251
|
ccxt/async_support/cex.py,sha256=8XcqkxF2fSzLnenfkyvXxHmnWgUvrifaBAI-HiJLIZY,70436
|
252
|
-
ccxt/async_support/coinbase.py,sha256=
|
252
|
+
ccxt/async_support/coinbase.py,sha256=jp1zmc063fyit9G_1yAGSnOQY3Q7XH6lKoOa3zj6iq4,218387
|
253
253
|
ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNAznUJPhdQs,552
|
254
254
|
ccxt/async_support/coinbaseexchange.py,sha256=eDJIvxNNm-MvdFzCUlM0JQMwcSm1DBymXy4AaV2GKJc,79414
|
255
255
|
ccxt/async_support/coinbaseinternational.py,sha256=pIybc9DfEeUVVnorHAkAitibuHuEatQZ2MciwIW6WLA,88026
|
256
256
|
ccxt/async_support/coincheck.py,sha256=MaV9LQ4Oih1SNuugqVrULLr1nLM_6n_HA5d9YkQt8bs,35990
|
257
|
-
ccxt/async_support/coinex.py,sha256=
|
257
|
+
ccxt/async_support/coinex.py,sha256=Ee0KbJVNkknMN8Vp2gV9lpB5Se2X6oDW9B1jReSxKXo,259293
|
258
258
|
ccxt/async_support/coinlist.py,sha256=bPNe3Bwo5ovyuKNrpkCGcXKD20h1gUkJEv8Y6RKvvUo,103874
|
259
259
|
ccxt/async_support/coinmate.py,sha256=nYBc_dXLwXDmGMOpBrpOLD9K7O3YTyhx9FerCRYEn3I,46378
|
260
260
|
ccxt/async_support/coinmetro.py,sha256=RFOMp1sxrk3jsM_5M0sLou1q79y9kz32pWPkJOcNPTQ,81189
|
@@ -270,7 +270,7 @@ ccxt/async_support/exmo.py,sha256=alHFfXpuUmoUQeoIsVdblTEKL_cT1rplwGqVWVOsQuI,11
|
|
270
270
|
ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
|
271
271
|
ccxt/async_support/gate.py,sha256=K6SsnwjPSxpBDvIjQc21SYNUI_PP7ECH3vpewp6YKQg,321981
|
272
272
|
ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
|
273
|
-
ccxt/async_support/gemini.py,sha256=
|
273
|
+
ccxt/async_support/gemini.py,sha256=cJjRW_O2uIKhi6tsClWr9Td8AGet_sXM2Lkj-i3MjRA,81351
|
274
274
|
ccxt/async_support/hitbtc.py,sha256=mu0IpmPkynGU8MaXLi9nZyDLP9L6Vjqb_D104q5Dj9E,154435
|
275
275
|
ccxt/async_support/hitbtc3.py,sha256=dmSYoD2o4av_zzbZI8HNIoj8BWxA7QozsVpy8JaOXzU,469
|
276
276
|
ccxt/async_support/hollaex.py,sha256=b7nJAvL0dCfPwhjOCfoAn1Qd9msFvEIfYp-7EQ4QIwQ,76575
|
@@ -281,7 +281,7 @@ ccxt/async_support/hyperliquid.py,sha256=xy4GMllF4APqWrHjWmI7hUQRJtsMY-7k_2moNVP
|
|
281
281
|
ccxt/async_support/idex.py,sha256=f5CvLsX4ECEr-spmDP2a26Ge2AmbWMip1o0usOmbvAE,73707
|
282
282
|
ccxt/async_support/independentreserve.py,sha256=i6gf1iPcwyBiL_65UoszpotGco-KgvTxcRkrq6AZsOY,32506
|
283
283
|
ccxt/async_support/indodax.py,sha256=yNHitrcyGRAUKLlEmLl6nKWjcJTuPPFW6BpizQp71oo,52382
|
284
|
-
ccxt/async_support/kraken.py,sha256=
|
284
|
+
ccxt/async_support/kraken.py,sha256=8KR2ozRDR0Mt5g93TnyJ7H1lrcSpnLrm6H3I5SzGdSg,128957
|
285
285
|
ccxt/async_support/krakenfutures.py,sha256=G5lWWvUyyl64laoN-i08k3S8fyOGKfx-2Vbkn42D6tE,117589
|
286
286
|
ccxt/async_support/kucoin.py,sha256=xcBYK19XTgiAWViYprAhJb8dHrgEKyOQcV2ODX2a5dw,219370
|
287
287
|
ccxt/async_support/kucoinfutures.py,sha256=19pp3iLxyGxqNvFLZ3W_Ov6gqUAwQE5oTvp9DezKmG8,125203
|
@@ -317,7 +317,7 @@ ccxt/async_support/yobit.py,sha256=KQcu9nXJPDlAodZyxOXKIn6eTSLmlvUlgRFE6EBLfug,5
|
|
317
317
|
ccxt/async_support/zaif.py,sha256=bKkknF4yjJtajvrEN-9M0qi-s8O9v6tVX8eBGLfQwiA,28270
|
318
318
|
ccxt/async_support/zonda.py,sha256=qdX7J9m6mZfdkZDz8dKnqaCuQNn7rVzcYlCC10shmkg,81067
|
319
319
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
320
|
-
ccxt/async_support/base/exchange.py,sha256=
|
320
|
+
ccxt/async_support/base/exchange.py,sha256=qL5PGagZU2RzriT1kC6ks1KlDVEFf7e5CTdJ-PTtaA8,109872
|
321
321
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
322
322
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
323
323
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
|
@@ -331,10 +331,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
|
|
331
331
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
332
332
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
333
333
|
ccxt/base/errors.py,sha256=FGdyULeNCNcl52gA_CNhe2dZmat9GJGkTdlIyDXAF_A,4213
|
334
|
-
ccxt/base/exchange.py,sha256=
|
334
|
+
ccxt/base/exchange.py,sha256=1VGLCY6gWXUmbb8vV27QFp6aOBZFgy6qn7SqkdqJZFU,280871
|
335
335
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
336
336
|
ccxt/base/types.py,sha256=RGGcbz86cVtrmU602zoFO5gSWrv_J7IHxQkPnzmNirs,9247
|
337
|
-
ccxt/pro/__init__.py,sha256=
|
337
|
+
ccxt/pro/__init__.py,sha256=Tic3luFgg7OtPiZQOpDF2n7y-nRqA7UFLMmLbpUJR4Q,7107
|
338
338
|
ccxt/pro/alpaca.py,sha256=81nFwDKyNlmUnhSyRyDLmLU6LGt3yqip1L_Ms2UyAmw,27215
|
339
339
|
ccxt/pro/ascendex.py,sha256=e4WZqmTkIz9sVAWtKAaV6BvanrM2ylRdzjxrclZYmOE,35456
|
340
340
|
ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
|
@@ -346,9 +346,9 @@ ccxt/pro/bingx.py,sha256=b_NRCufa4-kXeVY9D5xP5bFK7LsiYEWy_B-M66Z8BVQ,42133
|
|
346
346
|
ccxt/pro/bitcoincom.py,sha256=zAX6hiz4hS6Un8dSGp88rpnvItxQHfNmsfF0IZ2xIVA,1181
|
347
347
|
ccxt/pro/bitfinex.py,sha256=55-BovgmV3cHjys5GSRk36RiNQtGgW4NWPI1goRrDic,24890
|
348
348
|
ccxt/pro/bitfinex2.py,sha256=FRbiqzPWZ-3BW8VXitDEC-KsAtkqMCXoYRuki6IrfUM,42908
|
349
|
-
ccxt/pro/bitget.py,sha256=
|
349
|
+
ccxt/pro/bitget.py,sha256=VS854ESz4uIxAfSJ3dqoaThESzrcyZhBWFFlmQjp8rE,73832
|
350
350
|
ccxt/pro/bithumb.py,sha256=dqYKWebxFg4rsP7jg3oBnCUBcpZAoqAmZsozAU9pYds,16835
|
351
|
-
ccxt/pro/bitmart.py,sha256=
|
351
|
+
ccxt/pro/bitmart.py,sha256=rr8ZuA8CDIdmc_CDkex_93cR3RAmpmr3oS0D5B0gVcE,62434
|
352
352
|
ccxt/pro/bitmex.py,sha256=37rOYjBoNMAG_idlVu8wP1FQ5QpqF2z616xrsXiqPxk,73691
|
353
353
|
ccxt/pro/bitopro.py,sha256=xOmXbO9BZj0dr-LbWqW7zU2aLvVVYcoOgXcit4PP0cc,18748
|
354
354
|
ccxt/pro/bitpanda.py,sha256=ELrhfFKN9YJJdmm9wBf-vpk6WsXGWGf-SyJdqm-E_Lg,415
|
@@ -379,7 +379,7 @@ ccxt/pro/huobijp.py,sha256=aL6wEqAfnZp15mvfxbCsKI5OJqeCLN5IM5QO0OvJRSk,23270
|
|
379
379
|
ccxt/pro/hyperliquid.py,sha256=S1mgOMz-7IwtFgC-xJL3YjKim10qVgj7XpvtmpOq4w8,20845
|
380
380
|
ccxt/pro/idex.py,sha256=WAY58yMHFUPoqZUGFvzxqcKizvMuFXqdZ6BD0WgstQA,28361
|
381
381
|
ccxt/pro/independentreserve.py,sha256=fDaHf7ZMbVrZKJK8FGnmW939rCtAEy1orjKifFliZ7U,11191
|
382
|
-
ccxt/pro/kraken.py,sha256=
|
382
|
+
ccxt/pro/kraken.py,sha256=zzDhQN3h80gZu_JNTOx1jsIKMH4oHpzbA-_Mx7cmM5s,60920
|
383
383
|
ccxt/pro/krakenfutures.py,sha256=3qn_aDwiDtgSz31-J9dzLYNaVywhSksz39hhl0v9DoM,63989
|
384
384
|
ccxt/pro/kucoin.py,sha256=XoH3kW-5pCf-8672tSP-ijpINm7T5sZcBRyHVIrKjiQ,50777
|
385
385
|
ccxt/pro/kucoinfutures.py,sha256=NSd0cxEGoO_yytG0KRgZUOoCvjj5UjjXD8m_tlp3pIo,50319
|
@@ -388,7 +388,7 @@ ccxt/pro/luno.py,sha256=AzLK0_C0Hu25ukMNkMLP_sY3D4UG9FT38oawpo4jzTg,12336
|
|
388
388
|
ccxt/pro/mexc.py,sha256=F33IK9npVfdTkp0i7OX9UqJYoVrFhsX_JXmm2vHvs2E,43265
|
389
389
|
ccxt/pro/ndax.py,sha256=fQsoYtrTEsCZB3hl-pavQytwQAaiMAiTyaCiOy1sVTg,22715
|
390
390
|
ccxt/pro/okcoin.py,sha256=M9x9p9umvIdP13uw_Wyx-TCg7QLMI7ov5DnukCXTBNE,30421
|
391
|
-
ccxt/pro/okx.py,sha256=
|
391
|
+
ccxt/pro/okx.py,sha256=pVO5mODzj9ToJHhL0Tbxiy49bACbVv7xtBMQ98n-FQE,83827
|
392
392
|
ccxt/pro/onetrading.py,sha256=lovj_9_bhEASahK2bREMHEjRNUjgl8G51ciuxFIsALM,54712
|
393
393
|
ccxt/pro/p2b.py,sha256=Vdm2wc4RF3IDMKivSlNyWjrh9IR0c-Zm5lDjY4AIass,17889
|
394
394
|
ccxt/pro/phemex.py,sha256=8lB5OJb6QNvcLkbDKB4eQOS6r0KjLrxTgRxQhO950Is,61086
|
@@ -506,7 +506,7 @@ ccxt/test/base/test_balance.py,sha256=W-IcVRiJNLtdKEWEEhmhWjtFRuHFtoywNiGQNtYSuc
|
|
506
506
|
ccxt/test/base/test_borrow_interest.py,sha256=jwXqtDzCP0QMpe1q0dLMn5GYz29pMx3Kr3lFyVPjTtA,1808
|
507
507
|
ccxt/test/base/test_borrow_rate.py,sha256=gbqEhrJkV-UiqgblCAQ4JhuUi95V22l5zTdvqsB17P4,1500
|
508
508
|
ccxt/test/base/test_calculate_fee.py,sha256=t_m7zz6d65S7cmY1KSZh40M1OsURBc8YkXV9nPmB1iQ,1177
|
509
|
-
ccxt/test/base/test_crypto.py,sha256
|
509
|
+
ccxt/test/base/test_crypto.py,sha256=-0GxDWMtY2aeF4o2HBZtpo2WLFZnN9hGJGj48FR3JTA,7708
|
510
510
|
ccxt/test/base/test_currency.py,sha256=Ao8Q571J93aPMYqGIeqqsi0F2u5RcgQ-F2MBJ93kapM,4472
|
511
511
|
ccxt/test/base/test_datetime.py,sha256=W7h0GPZbXhQ4fD-LRKCStY46JgylgmcuU4jevp7eIF8,5634
|
512
512
|
ccxt/test/base/test_decimal_to_precision.py,sha256=zETS2O2OVBFpFmUkQGOGi7XobeuB6ofki3jC2maON54,20934
|
@@ -535,7 +535,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
|
|
535
535
|
ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
|
536
536
|
ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
|
537
537
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
538
|
-
ccxt-4.3.
|
539
|
-
ccxt-4.3.
|
540
|
-
ccxt-4.3.
|
541
|
-
ccxt-4.3.
|
538
|
+
ccxt-4.3.35.dist-info/METADATA,sha256=3zh4ksEI4RxmsDtqKu19LgTOJFGZenK_UwGFccDNFrU,112807
|
539
|
+
ccxt-4.3.35.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
|
540
|
+
ccxt-4.3.35.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
541
|
+
ccxt-4.3.35.dist-info/RECORD,,
|
File without changes
|
File without changes
|