ccxt 4.3.31__py2.py3-none-any.whl → 4.3.33__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/abstract/bitget.py +1 -1
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bitget.py +1 -1
- ccxt/async_support/coinex.py +42 -38
- ccxt/base/exchange.py +14 -2
- ccxt/bitget.py +1 -1
- ccxt/coinex.py +42 -38
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/cex.py +1 -1
- ccxt/pro/coinbase.py +30 -0
- ccxt/test/test_async.py +1 -1
- ccxt/test/test_sync.py +1 -1
- {ccxt-4.3.31.dist-info → ccxt-4.3.33.dist-info}/METADATA +4 -4
- {ccxt-4.3.31.dist-info → ccxt-4.3.33.dist-info}/RECORD +18 -18
- {ccxt-4.3.31.dist-info → ccxt-4.3.33.dist-info}/WHEEL +0 -0
- {ccxt-4.3.31.dist-info → ccxt-4.3.33.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/bitget.py
CHANGED
@@ -266,7 +266,7 @@ class ImplicitAPI:
|
|
266
266
|
private_mix_post_v2_mix_account_set_margin = privateMixPostV2MixAccountSetMargin = Entry('v2/mix/account/set-margin', ['private', 'mix'], 'POST', {'cost': 4})
|
267
267
|
private_mix_post_v2_mix_account_set_margin_mode = privateMixPostV2MixAccountSetMarginMode = Entry('v2/mix/account/set-margin-mode', ['private', 'mix'], 'POST', {'cost': 4})
|
268
268
|
private_mix_post_v2_mix_account_set_position_mode = privateMixPostV2MixAccountSetPositionMode = Entry('v2/mix/account/set-position-mode', ['private', 'mix'], 'POST', {'cost': 4})
|
269
|
-
private_mix_post_v2_mix_order_place_order = privateMixPostV2MixOrderPlaceOrder = Entry('v2/mix/order/place-order', ['private', 'mix'], 'POST', {'cost':
|
269
|
+
private_mix_post_v2_mix_order_place_order = privateMixPostV2MixOrderPlaceOrder = Entry('v2/mix/order/place-order', ['private', 'mix'], 'POST', {'cost': 2})
|
270
270
|
private_mix_post_v2_mix_order_click_backhand = privateMixPostV2MixOrderClickBackhand = Entry('v2/mix/order/click-backhand', ['private', 'mix'], 'POST', {'cost': 20})
|
271
271
|
private_mix_post_v2_mix_order_batch_place_order = privateMixPostV2MixOrderBatchPlaceOrder = Entry('v2/mix/order/batch-place-order', ['private', 'mix'], 'POST', {'cost': 20})
|
272
272
|
private_mix_post_v2_mix_order_modify_order = privateMixPostV2MixOrderModifyOrder = Entry('v2/mix/order/modify-order', ['private', 'mix'], 'POST', {'cost': 2})
|
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/bitget.py
CHANGED
@@ -505,7 +505,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
505
505
|
'v2/mix/account/set-margin': 4,
|
506
506
|
'v2/mix/account/set-margin-mode': 4,
|
507
507
|
'v2/mix/account/set-position-mode': 4,
|
508
|
-
'v2/mix/order/place-order':
|
508
|
+
'v2/mix/order/place-order': 2,
|
509
509
|
'v2/mix/order/click-backhand': 20,
|
510
510
|
'v2/mix/order/batch-place-order': 20,
|
511
511
|
'v2/mix/order/modify-order': 2,
|
ccxt/async_support/coinex.py
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
from ccxt.async_support.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.coinex import ImplicitAPI
|
8
8
|
import asyncio
|
9
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, IsolatedBorrowRate, Leverage,
|
9
|
+
from ccxt.base.types import Balances, Currencies, Currency, Int, IsolatedBorrowRate, Leverage, LeverageTier, LeverageTiers, MarginModification, Market, Num, Order, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry, TransferEntries
|
10
10
|
from typing import List
|
11
11
|
from ccxt.base.errors import ExchangeError
|
12
12
|
from ccxt.base.errors import AuthenticationError
|
@@ -91,8 +91,8 @@ class coinex(Exchange, ImplicitAPI):
|
|
91
91
|
'fetchIndexOHLCV': False,
|
92
92
|
'fetchIsolatedBorrowRate': True,
|
93
93
|
'fetchIsolatedBorrowRates': False,
|
94
|
-
'fetchLeverage':
|
95
|
-
'fetchLeverages':
|
94
|
+
'fetchLeverage': True,
|
95
|
+
'fetchLeverages': False,
|
96
96
|
'fetchLeverageTiers': True,
|
97
97
|
'fetchMarginAdjustmentHistory': True,
|
98
98
|
'fetchMarketLeverageTiers': 'emulated',
|
@@ -5200,57 +5200,61 @@ class coinex(Exchange, ImplicitAPI):
|
|
5200
5200
|
}
|
5201
5201
|
return result
|
5202
5202
|
|
5203
|
-
async def
|
5203
|
+
async def fetch_leverage(self, symbol: str, params={}) -> Leverage:
|
5204
5204
|
"""
|
5205
|
-
fetch the set leverage for
|
5206
|
-
:see: https://
|
5207
|
-
:param str
|
5205
|
+
fetch the set leverage for a market
|
5206
|
+
:see: https://docs.coinex.com/api/v2/assets/loan-flat/http/list-margin-interest-limit
|
5207
|
+
:param str symbol: unified market symbol
|
5208
5208
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
5209
|
-
:
|
5209
|
+
:param str params['code']: unified currency code
|
5210
|
+
:returns dict: a `leverage structure <https://docs.ccxt.com/#/?id=leverage-structure>`
|
5210
5211
|
"""
|
5211
5212
|
await self.load_markets()
|
5212
|
-
|
5213
|
-
|
5214
|
-
|
5215
|
-
|
5216
|
-
|
5217
|
-
|
5218
|
-
|
5219
|
-
|
5220
|
-
|
5221
|
-
|
5213
|
+
code = self.safe_string(params, 'code')
|
5214
|
+
if code is None:
|
5215
|
+
raise ArgumentsRequired(self.id + ' fetchLeverage() requires a code parameter')
|
5216
|
+
params = self.omit(params, 'code')
|
5217
|
+
currency = self.currency(code)
|
5218
|
+
market = self.market(symbol)
|
5219
|
+
request: dict = {
|
5220
|
+
'market': market['id'],
|
5221
|
+
'ccy': currency['id'],
|
5222
|
+
}
|
5223
|
+
response = await self.v2PrivateGetAssetsMarginInterestLimit(self.extend(request, params))
|
5222
5224
|
#
|
5223
5225
|
# {
|
5224
5226
|
# "code": 0,
|
5225
|
-
# "data":
|
5226
|
-
#
|
5227
|
-
#
|
5228
|
-
#
|
5229
|
-
#
|
5230
|
-
#
|
5231
|
-
#
|
5232
|
-
#
|
5233
|
-
#
|
5234
|
-
# "USDT": {
|
5235
|
-
# "min_amount": "50",
|
5236
|
-
# "max_amount": "500000",
|
5237
|
-
# "day_rate": "0.001"
|
5238
|
-
# }
|
5239
|
-
# },
|
5240
|
-
# ],
|
5241
|
-
# "message": "Success"
|
5227
|
+
# "data": {
|
5228
|
+
# "market": "BTCUSDT",
|
5229
|
+
# "ccy": "USDT",
|
5230
|
+
# "leverage": 10,
|
5231
|
+
# "min_amount": "50",
|
5232
|
+
# "max_amount": "500000",
|
5233
|
+
# "daily_interest_rate": "0.001"
|
5234
|
+
# },
|
5235
|
+
# "message": "OK"
|
5242
5236
|
# }
|
5243
5237
|
#
|
5244
|
-
|
5245
|
-
return self.
|
5238
|
+
data = self.safe_dict(response, 'data', {})
|
5239
|
+
return self.parse_leverage(data, market)
|
5246
5240
|
|
5247
5241
|
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
5242
|
+
#
|
5243
|
+
# {
|
5244
|
+
# "market": "BTCUSDT",
|
5245
|
+
# "ccy": "USDT",
|
5246
|
+
# "leverage": 10,
|
5247
|
+
# "min_amount": "50",
|
5248
|
+
# "max_amount": "500000",
|
5249
|
+
# "daily_interest_rate": "0.001"
|
5250
|
+
# }
|
5251
|
+
#
|
5248
5252
|
marketId = self.safe_string(leverage, 'market')
|
5249
5253
|
leverageValue = self.safe_integer(leverage, 'leverage')
|
5250
5254
|
return {
|
5251
5255
|
'info': leverage,
|
5252
5256
|
'symbol': self.safe_symbol(marketId, market, None, 'spot'),
|
5253
|
-
'marginMode':
|
5257
|
+
'marginMode': 'isolated',
|
5254
5258
|
'longLeverage': leverageValue,
|
5255
5259
|
'shortLeverage': leverageValue,
|
5256
5260
|
}
|
ccxt/base/exchange.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.3.
|
7
|
+
__version__ = '4.3.33'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -31,7 +31,7 @@ from ccxt.base.decimal_to_precision import decimal_to_precision
|
|
31
31
|
from ccxt.base.decimal_to_precision import DECIMAL_PLACES, TICK_SIZE, NO_PADDING, TRUNCATE, ROUND, ROUND_UP, ROUND_DOWN, SIGNIFICANT_DIGITS
|
32
32
|
from ccxt.base.decimal_to_precision import number_to_string
|
33
33
|
from ccxt.base.precise import Precise
|
34
|
-
from ccxt.base.types import BalanceAccount, Currency, IndexType, OrderSide, OrderType, Trade, OrderRequest, Market, MarketType, Str, Num, Strings, CancellationRequest
|
34
|
+
from ccxt.base.types import BalanceAccount, Currency, IndexType, OrderSide, OrderType, Trade, OrderRequest, Market, MarketType, Str, Num, Strings, CancellationRequest, Bool
|
35
35
|
|
36
36
|
# -----------------------------------------------------------------------------
|
37
37
|
|
@@ -3643,6 +3643,18 @@ class Exchange(object):
|
|
3643
3643
|
params = self.omit(params, [paramName1, paramName2])
|
3644
3644
|
return [value, params]
|
3645
3645
|
|
3646
|
+
def handle_param_bool(self, params: object, paramName: str, defaultValue: Bool = None):
|
3647
|
+
value = self.safe_bool(params, paramName, defaultValue)
|
3648
|
+
if value is not None:
|
3649
|
+
params = self.omit(params, paramName)
|
3650
|
+
return [value, params]
|
3651
|
+
|
3652
|
+
def handle_param_bool_2(self, params: object, paramName1: str, paramName2: str, defaultValue: Bool = None):
|
3653
|
+
value = self.safe_bool_2(params, paramName1, paramName2, defaultValue)
|
3654
|
+
if value is not None:
|
3655
|
+
params = self.omit(params, [paramName1, paramName2])
|
3656
|
+
return [value, params]
|
3657
|
+
|
3646
3658
|
def resolve_path(self, path, params):
|
3647
3659
|
return [
|
3648
3660
|
self.implode_params(path, params),
|
ccxt/bitget.py
CHANGED
@@ -504,7 +504,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
504
504
|
'v2/mix/account/set-margin': 4,
|
505
505
|
'v2/mix/account/set-margin-mode': 4,
|
506
506
|
'v2/mix/account/set-position-mode': 4,
|
507
|
-
'v2/mix/order/place-order':
|
507
|
+
'v2/mix/order/place-order': 2,
|
508
508
|
'v2/mix/order/click-backhand': 20,
|
509
509
|
'v2/mix/order/batch-place-order': 20,
|
510
510
|
'v2/mix/order/modify-order': 2,
|
ccxt/coinex.py
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
from ccxt.base.exchange import Exchange
|
7
7
|
from ccxt.abstract.coinex import ImplicitAPI
|
8
|
-
from ccxt.base.types import Balances, Currencies, Currency, Int, IsolatedBorrowRate, Leverage,
|
8
|
+
from ccxt.base.types import Balances, Currencies, Currency, Int, IsolatedBorrowRate, Leverage, LeverageTier, LeverageTiers, MarginModification, Market, Num, Order, OrderRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, TradingFees, Transaction, TransferEntry, TransferEntries
|
9
9
|
from typing import List
|
10
10
|
from ccxt.base.errors import ExchangeError
|
11
11
|
from ccxt.base.errors import AuthenticationError
|
@@ -90,8 +90,8 @@ class coinex(Exchange, ImplicitAPI):
|
|
90
90
|
'fetchIndexOHLCV': False,
|
91
91
|
'fetchIsolatedBorrowRate': True,
|
92
92
|
'fetchIsolatedBorrowRates': False,
|
93
|
-
'fetchLeverage':
|
94
|
-
'fetchLeverages':
|
93
|
+
'fetchLeverage': True,
|
94
|
+
'fetchLeverages': False,
|
95
95
|
'fetchLeverageTiers': True,
|
96
96
|
'fetchMarginAdjustmentHistory': True,
|
97
97
|
'fetchMarketLeverageTiers': 'emulated',
|
@@ -5199,57 +5199,61 @@ class coinex(Exchange, ImplicitAPI):
|
|
5199
5199
|
}
|
5200
5200
|
return result
|
5201
5201
|
|
5202
|
-
def
|
5202
|
+
def fetch_leverage(self, symbol: str, params={}) -> Leverage:
|
5203
5203
|
"""
|
5204
|
-
fetch the set leverage for
|
5205
|
-
:see: https://
|
5206
|
-
:param str
|
5204
|
+
fetch the set leverage for a market
|
5205
|
+
:see: https://docs.coinex.com/api/v2/assets/loan-flat/http/list-margin-interest-limit
|
5206
|
+
:param str symbol: unified market symbol
|
5207
5207
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
5208
|
-
:
|
5208
|
+
:param str params['code']: unified currency code
|
5209
|
+
:returns dict: a `leverage structure <https://docs.ccxt.com/#/?id=leverage-structure>`
|
5209
5210
|
"""
|
5210
5211
|
self.load_markets()
|
5211
|
-
|
5212
|
-
|
5213
|
-
|
5214
|
-
|
5215
|
-
|
5216
|
-
|
5217
|
-
|
5218
|
-
|
5219
|
-
|
5220
|
-
|
5212
|
+
code = self.safe_string(params, 'code')
|
5213
|
+
if code is None:
|
5214
|
+
raise ArgumentsRequired(self.id + ' fetchLeverage() requires a code parameter')
|
5215
|
+
params = self.omit(params, 'code')
|
5216
|
+
currency = self.currency(code)
|
5217
|
+
market = self.market(symbol)
|
5218
|
+
request: dict = {
|
5219
|
+
'market': market['id'],
|
5220
|
+
'ccy': currency['id'],
|
5221
|
+
}
|
5222
|
+
response = self.v2PrivateGetAssetsMarginInterestLimit(self.extend(request, params))
|
5221
5223
|
#
|
5222
5224
|
# {
|
5223
5225
|
# "code": 0,
|
5224
|
-
# "data":
|
5225
|
-
#
|
5226
|
-
#
|
5227
|
-
#
|
5228
|
-
#
|
5229
|
-
#
|
5230
|
-
#
|
5231
|
-
#
|
5232
|
-
#
|
5233
|
-
# "USDT": {
|
5234
|
-
# "min_amount": "50",
|
5235
|
-
# "max_amount": "500000",
|
5236
|
-
# "day_rate": "0.001"
|
5237
|
-
# }
|
5238
|
-
# },
|
5239
|
-
# ],
|
5240
|
-
# "message": "Success"
|
5226
|
+
# "data": {
|
5227
|
+
# "market": "BTCUSDT",
|
5228
|
+
# "ccy": "USDT",
|
5229
|
+
# "leverage": 10,
|
5230
|
+
# "min_amount": "50",
|
5231
|
+
# "max_amount": "500000",
|
5232
|
+
# "daily_interest_rate": "0.001"
|
5233
|
+
# },
|
5234
|
+
# "message": "OK"
|
5241
5235
|
# }
|
5242
5236
|
#
|
5243
|
-
|
5244
|
-
return self.
|
5237
|
+
data = self.safe_dict(response, 'data', {})
|
5238
|
+
return self.parse_leverage(data, market)
|
5245
5239
|
|
5246
5240
|
def parse_leverage(self, leverage: dict, market: Market = None) -> Leverage:
|
5241
|
+
#
|
5242
|
+
# {
|
5243
|
+
# "market": "BTCUSDT",
|
5244
|
+
# "ccy": "USDT",
|
5245
|
+
# "leverage": 10,
|
5246
|
+
# "min_amount": "50",
|
5247
|
+
# "max_amount": "500000",
|
5248
|
+
# "daily_interest_rate": "0.001"
|
5249
|
+
# }
|
5250
|
+
#
|
5247
5251
|
marketId = self.safe_string(leverage, 'market')
|
5248
5252
|
leverageValue = self.safe_integer(leverage, 'leverage')
|
5249
5253
|
return {
|
5250
5254
|
'info': leverage,
|
5251
5255
|
'symbol': self.safe_symbol(marketId, market, None, 'spot'),
|
5252
|
-
'marginMode':
|
5256
|
+
'marginMode': 'isolated',
|
5253
5257
|
'longLeverage': leverageValue,
|
5254
5258
|
'shortLeverage': leverageValue,
|
5255
5259
|
}
|
ccxt/pro/__init__.py
CHANGED
ccxt/pro/cex.py
CHANGED
@@ -925,7 +925,7 @@ class cex(ccxt.async_support.cex):
|
|
925
925
|
symbol = self.pair_to_symbol(pair)
|
926
926
|
messageHash = 'orderbook:' + symbol
|
927
927
|
timestamp = self.safe_integer_2(data, 'timestamp_ms', 'timestamp')
|
928
|
-
incrementalId = self.
|
928
|
+
incrementalId = self.safe_integer(data, 'id')
|
929
929
|
orderbook = self.order_book({})
|
930
930
|
snapshot = self.parse_order_book(data, symbol, timestamp, 'bids', 'asks')
|
931
931
|
snapshot['nonce'] = incrementalId
|
ccxt/pro/coinbase.py
CHANGED
@@ -233,6 +233,34 @@ class coinbase(ccxt.async_support.coinbase):
|
|
233
233
|
# ]
|
234
234
|
# }
|
235
235
|
#
|
236
|
+
# note! seems coinbase might also send empty data like:
|
237
|
+
#
|
238
|
+
# {
|
239
|
+
# "channel": "ticker_batch",
|
240
|
+
# "client_id": "",
|
241
|
+
# "timestamp": "2024-05-24T18:22:24.546809523Z",
|
242
|
+
# "sequence_num": 1,
|
243
|
+
# "events": [
|
244
|
+
# {
|
245
|
+
# "type": "snapshot",
|
246
|
+
# "tickers": [
|
247
|
+
# {
|
248
|
+
# "type": "ticker",
|
249
|
+
# "product_id": "",
|
250
|
+
# "price": "",
|
251
|
+
# "volume_24_h": "",
|
252
|
+
# "low_24_h": "",
|
253
|
+
# "high_24_h": "",
|
254
|
+
# "low_52_w": "",
|
255
|
+
# "high_52_w": "",
|
256
|
+
# "price_percent_chg_24_h": ""
|
257
|
+
# }
|
258
|
+
# ]
|
259
|
+
# }
|
260
|
+
# ]
|
261
|
+
# }
|
262
|
+
#
|
263
|
+
#
|
236
264
|
channel = self.safe_string(message, 'channel')
|
237
265
|
events = self.safe_value(message, 'events', [])
|
238
266
|
datetime = self.safe_string(message, 'timestamp')
|
@@ -249,6 +277,8 @@ class coinbase(ccxt.async_support.coinbase):
|
|
249
277
|
symbol = result['symbol']
|
250
278
|
self.tickers[symbol] = result
|
251
279
|
wsMarketId = self.safe_string(ticker, 'product_id')
|
280
|
+
if wsMarketId is None:
|
281
|
+
continue
|
252
282
|
messageHash = channel + '::' + wsMarketId
|
253
283
|
newTickers.append(result)
|
254
284
|
client.resolve(result, messageHash)
|
ccxt/test/test_async.py
CHANGED
@@ -449,7 +449,7 @@ class testMainClass(baseMainTestClass):
|
|
449
449
|
dump(self.add_padding(skip_message, 25), self.exchange_hint(exchange), method_name)
|
450
450
|
return
|
451
451
|
if self.info:
|
452
|
-
args_stringified = '(' +
|
452
|
+
args_stringified = '(' + exchange.json(args) + ')' # args.join() breaks when we provide a list of symbols or multidimensional array; "args.toString()" breaks bcz of "array to string conversion"
|
453
453
|
dump(self.add_padding('[INFO] TESTING', 25), self.exchange_hint(exchange), method_name, args_stringified)
|
454
454
|
await call_method(self.test_files, method_name, exchange, skipped_properties_for_method, args)
|
455
455
|
# if it was passed successfully, add to the list of successfull tests
|
ccxt/test/test_sync.py
CHANGED
@@ -448,7 +448,7 @@ class testMainClass(baseMainTestClass):
|
|
448
448
|
dump(self.add_padding(skip_message, 25), self.exchange_hint(exchange), method_name)
|
449
449
|
return
|
450
450
|
if self.info:
|
451
|
-
args_stringified = '(' +
|
451
|
+
args_stringified = '(' + exchange.json(args) + ')' # args.join() breaks when we provide a list of symbols or multidimensional array; "args.toString()" breaks bcz of "array to string conversion"
|
452
452
|
dump(self.add_padding('[INFO] TESTING', 25), self.exchange_hint(exchange), method_name, args_stringified)
|
453
453
|
call_method(self.test_files, method_name, exchange, skipped_properties_for_method, args)
|
454
454
|
# if it was passed successfully, add to the list of successfull tests
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.3.
|
3
|
+
Version: 4.3.33
|
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.33/dist/ccxt.browser.min.js
|
268
|
+
* unpkg: https://unpkg.com/ccxt@4.3.33/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.33/dist/ccxt.browser.min.js"></script>
|
274
274
|
```
|
275
275
|
|
276
276
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=2WVncAGnUABNxrh0O1Dsn0PGk_bkCKPtfOjjWFwutjc,15950
|
2
2
|
ccxt/ace.py,sha256=I_pv9ADmsH1cwBPswcdUXI0wVuN1Z-L8qCnT4uJUlWQ,41739
|
3
3
|
ccxt/alpaca.py,sha256=YQ-D3mZ2Y-aEi1vWh_zRqc679M_m2wVWmhRqXo46Sr8,47309
|
4
4
|
ccxt/ascendex.py,sha256=rqo2GuxUcJ-G_vTHI10dRU5FeGzYzg-s1AuC1CwAsnU,151796
|
@@ -17,7 +17,7 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
|
|
17
17
|
ccxt/bitfinex.py,sha256=R0eWVUZ1XFomYLaxNbyu8oWKPy-5uDTPY53X2rRiraY,72414
|
18
18
|
ccxt/bitfinex2.py,sha256=zl5AWEzELbWWj2eC50Rh9JyB5hZbcYsLQqMiuxqZhvE,160607
|
19
19
|
ccxt/bitflyer.py,sha256=JNEov3V5n36RWORPbIwsygGeXqA_2MgBzCQbDQKuYZY,41534
|
20
|
-
ccxt/bitget.py,sha256=
|
20
|
+
ccxt/bitget.py,sha256=BsX9tvO_1FyRUzFcAqYVCTfNCMj8VTVJi_FKvgskSCA,423068
|
21
21
|
ccxt/bithumb.py,sha256=B9CO5Yz7rM8dHjxI4M6b-XPZXtBx4xvpST5GkokQ-fo,45653
|
22
22
|
ccxt/bitmart.py,sha256=SyI-DwnM6EGKVO9m80LOnQHbHbgobQSkyhvwpD9BVWM,204716
|
23
23
|
ccxt/bitmex.py,sha256=VcnrJ5X80_3yNcitQHN1Bzo05B_YgUJ2tH9XaMNkc0U,126820
|
@@ -42,7 +42,7 @@ ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
|
|
42
42
|
ccxt/coinbaseexchange.py,sha256=DzCR_VL6ytnMVuCBKFjNNCr9NlRMr3MVCXELK9JHXmA,78877
|
43
43
|
ccxt/coinbaseinternational.py,sha256=_zwujB73Ff9HHcG0P8LogPqq3mDeqQ1poIQDXShrSpw,87430
|
44
44
|
ccxt/coincheck.py,sha256=-GckoIjNlV_iJvF0_LPPdycjQVPRv7i9tDnrKLRC-mI,35748
|
45
|
-
ccxt/coinex.py,sha256=
|
45
|
+
ccxt/coinex.py,sha256=8yMqhAVhcb81e1V9JgCzZT0wH9gfwHYAuG08tRvvxl4,257592
|
46
46
|
ccxt/coinlist.py,sha256=5BJDqDWOGuSDg8IlatrzQUMohOgnkBdGGxSQZot2A6I,103349
|
47
47
|
ccxt/coinmate.py,sha256=mObP5mCiDMbwCNJuUtYizYAHuUBc1RsyEuBnFHpo2Xo,46076
|
48
48
|
ccxt/coinmetro.py,sha256=RrIdIHCYIzCng5IoVNDvJCAQPNTNnlQEFRzqTAc5hH4,80832
|
@@ -123,7 +123,7 @@ ccxt/abstract/bitcoincom.py,sha256=OTBtNu3DQeAqAC_Lbi0NePUs-ZQQllcLrVDI2G04nwQ,1
|
|
123
123
|
ccxt/abstract/bitfinex.py,sha256=OLUXdJEycyN_qrBhPuTTOVlwu3jkqVWenoTmS-W3bOE,7605
|
124
124
|
ccxt/abstract/bitfinex2.py,sha256=82sdkbjDb6D2JePGAa2yYwApDwdeF9Tvlo-hWB2ZUBs,19194
|
125
125
|
ccxt/abstract/bitflyer.py,sha256=3ngG1GJJCNMzYMWoNXCEEgLxmTl7eRf7_JU4M0P2rqo,3576
|
126
|
-
ccxt/abstract/bitget.py,sha256=
|
126
|
+
ccxt/abstract/bitget.py,sha256=ELBdc4MCJ1eOLDQKFCXhGlogRO_RgYU2YDS87Flv-5k,90490
|
127
127
|
ccxt/abstract/bithumb.py,sha256=GR7QJ6CwTBne59SaGRVj9Rdz_zecG-8imRWX7oe6MoQ,3443
|
128
128
|
ccxt/abstract/bitmart.py,sha256=pXzEUu-Eac4fXuInvBiLjJ-HVkjNcpzBCvBRFagri1Y,14300
|
129
129
|
ccxt/abstract/bitmex.py,sha256=v15OP-vSO_eotD6KVf1BgKrbPxCPl2eXXYIuzWF1dl4,10774
|
@@ -210,7 +210,7 @@ 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=rV9P2uJ5aRcpW5fXENdPQWt0WemPLYN-KwhJJjp3SlQ,15723
|
214
214
|
ccxt/async_support/ace.py,sha256=3soxI5MZcaiFGm5LmRjJETw__2h7CbqnNoh8H4BhXmc,41963
|
215
215
|
ccxt/async_support/alpaca.py,sha256=FvrdM2ZoDUqUoS8lO5sZ8qlpnZkFZWoR4NSBW-MtVF8,47521
|
216
216
|
ccxt/async_support/ascendex.py,sha256=KkYCOI_4aGRZ0v69e8E1X1kSzPSd9-o7YjenUNSE0Dw,152584
|
@@ -229,7 +229,7 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
|
|
229
229
|
ccxt/async_support/bitfinex.py,sha256=aPO85mJB3wOwxnqDeFU4xvOTkLmT7RJqrNAYWlGd98E,72854
|
230
230
|
ccxt/async_support/bitfinex2.py,sha256=LUMs-bgstj5SttcVf4YG29ps_ako90kzVV8f6rMwXFE,161341
|
231
231
|
ccxt/async_support/bitflyer.py,sha256=IhVBTbh52yLEPj5g1mji2kCDwHIqUWcypx0SwuxQ1zE,41842
|
232
|
-
ccxt/async_support/bitget.py,sha256=
|
232
|
+
ccxt/async_support/bitget.py,sha256=L0XHzh0Py-gxROCz-0MvfEzog6CQCPZi5Qj99dTMl1c,424692
|
233
233
|
ccxt/async_support/bithumb.py,sha256=nKk16vV_0Acgpym8qGanO2vZRCtSyjdWHf8TT5s5Uiw,45883
|
234
234
|
ccxt/async_support/bitmart.py,sha256=4CqMv9pq29nskVIKlFHmJB8n7dPlPgfdZXASj4JsIHk,205672
|
235
235
|
ccxt/async_support/bitmex.py,sha256=nYa3kNNtvu4UX4d3x7TdPP39ALsaYaZ3n-EWgFWOvH4,127398
|
@@ -254,7 +254,7 @@ ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNA
|
|
254
254
|
ccxt/async_support/coinbaseexchange.py,sha256=uXR1ZuFDro-avT2-RS-8-Ia7CB9Q-07Fshb4XZ6cSjQ,79383
|
255
255
|
ccxt/async_support/coinbaseinternational.py,sha256=j9OtnlnAmYUR7QuIwF371ekrcwltOwx_QudIcZOae90,87984
|
256
256
|
ccxt/async_support/coincheck.py,sha256=xSbnM5oN_pyE3xvLb9Q-gRnm89n-Q5nevpHqn0oR2Hc,35954
|
257
|
-
ccxt/async_support/coinex.py,sha256=
|
257
|
+
ccxt/async_support/coinex.py,sha256=vgVXcBYm5BC6indM0CAXQS6DGR7hl25NhKkFxSCYNNA,258850
|
258
258
|
ccxt/async_support/coinlist.py,sha256=RD1qO7MdZhTRDQNmUiwUqijZItjy0C2f7CxXF0z-R8w,103837
|
259
259
|
ccxt/async_support/coinmate.py,sha256=_GdvtBwnQ3B-cmHq7dwyzQUJLhr0rAoNOkZudMpj-5A,46342
|
260
260
|
ccxt/async_support/coinmetro.py,sha256=Cv3DVk9_jIlJ8sCx3YMEwomVNg5qKyDeQDkqeW6ZqVY,81152
|
@@ -317,7 +317,7 @@ ccxt/async_support/yobit.py,sha256=VeBdG8i5e6yDPzD6sBYWcmJwQ1Fk045sCcuHxzlizYY,5
|
|
317
317
|
ccxt/async_support/zaif.py,sha256=GCsD2Rdvj-JUd0QiMvmnjPrzfUErKvJV_VLuyO-2XX0,28233
|
318
318
|
ccxt/async_support/zonda.py,sha256=XnhOKeYi2xce8DbkYD6-tQ31k7YYoqydSfYIYKkzh5M,81036
|
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=bPhd0m2s5TpEoyB3CitOpsdEJ9FhsCTylkvMpwBaYBA,108702
|
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=C_0icpzDCEJ1tH_-W-MFMRcwWAB3-4TCbPQghs3c4sk,279074
|
335
335
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
336
336
|
ccxt/base/types.py,sha256=NNj7aiY1dLbzRlxwco24kabgFJI7-YBwGxESXx-uKyo,9248
|
337
|
-
ccxt/pro/__init__.py,sha256=
|
337
|
+
ccxt/pro/__init__.py,sha256=uYwluBndnPneMsffpsO3xbG33vvEkxSkjgCRV8TJQ5g,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
|
@@ -357,8 +357,8 @@ ccxt/pro/bitstamp.py,sha256=P8Td5HqWiO6GMdLj-cKqPTZD28fltWlZQ7Z-omDbO60,20916
|
|
357
357
|
ccxt/pro/bitvavo.py,sha256=vn70dtyWs2TSZieCevvwKliRInmvvzMrvTyGq0fTIYM,56229
|
358
358
|
ccxt/pro/blockchaincom.py,sha256=LtCL3habcuB2IRXXK_oeqdzqpnkj01Gr79X82nK8Mnk,29600
|
359
359
|
ccxt/pro/bybit.py,sha256=IkuY2zmsWSSPfzHNIM2HD0YL6SO9L9nDdm02SRtYQ7A,85170
|
360
|
-
ccxt/pro/cex.py,sha256=
|
361
|
-
ccxt/pro/coinbase.py,sha256=
|
360
|
+
ccxt/pro/cex.py,sha256=ri0fnWYa4tFeeuJ_edqUziI5VJ921rRjIapion9Emug,58495
|
361
|
+
ccxt/pro/coinbase.py,sha256=q5PQ--k9q50UrgWCPYV0y2tx5hQ32nmWXBp4nvJsQag,30628
|
362
362
|
ccxt/pro/coinbaseexchange.py,sha256=taV-mCliIcc6XQjxSl2HmYHpBkOIDkxUxF2LrBSXfCc,39035
|
363
363
|
ccxt/pro/coinbaseinternational.py,sha256=s7DiNGpyIz3Z5EgJdYp8cY9tJjg3dXGRdlx0AAnmTBw,25818
|
364
364
|
ccxt/pro/coincheck.py,sha256=8_AFAwNDW8c_OJRFDnQ2okJtX1ZjYZgNlvMbT2XmlDE,7801
|
@@ -498,8 +498,8 @@ ccxt/static_dependencies/toolz/curried/__init__.py,sha256=iOuFY4c1kixe_h8lxuWIW5
|
|
498
498
|
ccxt/static_dependencies/toolz/curried/exceptions.py,sha256=gKFOHDIayAWnX2uC8Z2KrUwpP-UpoqI5Tx1a859QdVY,344
|
499
499
|
ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4werSUmJEtSHNY9NSzhseNM9s,525
|
500
500
|
ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
|
501
|
-
ccxt/test/test_async.py,sha256=
|
502
|
-
ccxt/test/test_sync.py,sha256=
|
501
|
+
ccxt/test/test_async.py,sha256=3V-jNB3wZGZCFTNypvQkdfxtM-LtbAZwrOY9GC1am7Q,80192
|
502
|
+
ccxt/test/test_sync.py,sha256=snZym4CdXKnCbI7yLmP4b5AwKevBVNWxcJIzGR03-hA,79149
|
503
503
|
ccxt/test/base/__init__.py,sha256=LvE9DEw5mNiyFrE-XnfzFFuSOvZOyi7ec__PF7lpnYs,1889
|
504
504
|
ccxt/test/base/test_account.py,sha256=lxwZXsY8qZgomBoEiomUmWcseSp--orJx-xmm3E1vYs,978
|
505
505
|
ccxt/test/base/test_balance.py,sha256=W-IcVRiJNLtdKEWEEhmhWjtFRuHFtoywNiGQNtYSuc0,2931
|
@@ -534,7 +534,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
|
|
534
534
|
ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
|
535
535
|
ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
|
536
536
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
537
|
-
ccxt-4.3.
|
538
|
-
ccxt-4.3.
|
539
|
-
ccxt-4.3.
|
540
|
-
ccxt-4.3.
|
537
|
+
ccxt-4.3.33.dist-info/METADATA,sha256=hvDaa42iK9PmEfoeNlY9qkoQge7IWeIqpRAxskHD1EA,112807
|
538
|
+
ccxt-4.3.33.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
|
539
|
+
ccxt-4.3.33.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
540
|
+
ccxt-4.3.33.dist-info/RECORD,,
|
File without changes
|
File without changes
|