ccxt 4.0.5__py2.py3-none-any.whl → 4.0.7__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/abstract/bitget.py +4 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/bitget.py +4 -0
- ccxt/async_support/coinbase.py +75 -6
- ccxt/async_support/okx.py +7 -1
- ccxt/base/exchange.py +1 -1
- ccxt/bitget.py +4 -0
- ccxt/coinbase.py +75 -6
- ccxt/okx.py +7 -1
- ccxt/pro/__init__.py +1 -1
- {ccxt-4.0.5.dist-info → ccxt-4.0.7.dist-info}/METADATA +9 -6
- {ccxt-4.0.5.dist-info → ccxt-4.0.7.dist-info}/RECORD +16 -16
- {ccxt-4.0.5.dist-info → ccxt-4.0.7.dist-info}/WHEEL +0 -0
- {ccxt-4.0.5.dist-info → ccxt-4.0.7.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/bitget.py
CHANGED
@@ -13,6 +13,7 @@ class ImplicitAPI:
|
|
13
13
|
public_spot_get_market_candles = publicSpotGetMarketCandles = Entry('market/candles', ['public', 'spot'], 'GET', {'cost': 1})
|
14
14
|
public_spot_get_market_depth = publicSpotGetMarketDepth = Entry('market/depth', ['public', 'spot'], 'GET', {'cost': 1})
|
15
15
|
public_spot_get_market_spot_vip_level = publicSpotGetMarketSpotVipLevel = Entry('market/spot-vip-level', ['public', 'spot'], 'GET', {'cost': 2})
|
16
|
+
public_spot_get_market_history_candles = publicSpotGetMarketHistoryCandles = Entry('market/history-candles', ['public', 'spot'], 'GET', {'cost': 1})
|
16
17
|
public_mix_get_market_contracts = publicMixGetMarketContracts = Entry('market/contracts', ['public', 'mix'], 'GET', {'cost': 1})
|
17
18
|
public_mix_get_market_depth = publicMixGetMarketDepth = Entry('market/depth', ['public', 'mix'], 'GET', {'cost': 1})
|
18
19
|
public_mix_get_market_ticker = publicMixGetMarketTicker = Entry('market/ticker', ['public', 'mix'], 'GET', {'cost': 1})
|
@@ -30,6 +31,9 @@ class ImplicitAPI:
|
|
30
31
|
public_mix_get_market_symbol_leverage = publicMixGetMarketSymbolLeverage = Entry('market/symbol-leverage', ['public', 'mix'], 'GET', {'cost': 1})
|
31
32
|
public_mix_get_market_querypositionlever = publicMixGetMarketQueryPositionLever = Entry('market/queryPositionLever', ['public', 'mix'], 'GET', {'cost': 1})
|
32
33
|
public_mix_get_market_open_limit = publicMixGetMarketOpenLimit = Entry('market/open-limit', ['public', 'mix'], 'GET', {'cost': 1})
|
34
|
+
public_mix_get_market_history_candles = publicMixGetMarketHistoryCandles = Entry('market/history-candles', ['public', 'mix'], 'GET', {'cost': 1})
|
35
|
+
public_mix_get_market_history_index_candles = publicMixGetMarketHistoryIndexCandles = Entry('market/history-index-candles', ['public', 'mix'], 'GET', {'cost': 1})
|
36
|
+
public_mix_get_market_history_mark_candles = publicMixGetMarketHistoryMarkCandles = Entry('market/history-mark-candles', ['public', 'mix'], 'GET', {'cost': 1})
|
33
37
|
public_margin_get_cross_public_interestrateandlimit = publicMarginGetCrossPublicInterestRateAndLimit = Entry('cross/public/interestRateAndLimit', ['public', 'margin'], 'GET', {'cost': 2})
|
34
38
|
public_margin_get_isolated_public_interestrateandlimit = publicMarginGetIsolatedPublicInterestRateAndLimit = Entry('isolated/public/interestRateAndLimit', ['public', 'margin'], 'GET', {'cost': 2})
|
35
39
|
public_margin_get_cross_public_tierdata = publicMarginGetCrossPublicTierData = Entry('cross/public/tierData', ['public', 'margin'], 'GET', {'cost': 2})
|
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/bitget.py
CHANGED
@@ -170,6 +170,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
170
170
|
'market/candles': 1,
|
171
171
|
'market/depth': 1,
|
172
172
|
'market/spot-vip-level': 2,
|
173
|
+
'market/history-candles': 1,
|
173
174
|
},
|
174
175
|
},
|
175
176
|
'mix': {
|
@@ -191,6 +192,9 @@ class bitget(Exchange, ImplicitAPI):
|
|
191
192
|
'market/symbol-leverage': 1,
|
192
193
|
'market/queryPositionLever': 1,
|
193
194
|
'market/open-limit': 1,
|
195
|
+
'market/history-candles': 1,
|
196
|
+
'market/history-index-candles': 1,
|
197
|
+
'market/history-mark-candles': 1,
|
194
198
|
},
|
195
199
|
},
|
196
200
|
'margin': {
|
ccxt/async_support/coinbase.py
CHANGED
@@ -61,6 +61,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
61
61
|
'createStopOrder': True,
|
62
62
|
'fetchAccounts': True,
|
63
63
|
'fetchBalance': True,
|
64
|
+
'fetchBidsAsks': True,
|
64
65
|
'fetchBorrowRate': False,
|
65
66
|
'fetchBorrowRateHistories': False,
|
66
67
|
'fetchBorrowRateHistory': False,
|
@@ -1374,19 +1375,50 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1374
1375
|
# ...
|
1375
1376
|
# ]
|
1376
1377
|
#
|
1378
|
+
# fetchBidsAsks
|
1379
|
+
#
|
1380
|
+
# {
|
1381
|
+
# "product_id": "TRAC-EUR",
|
1382
|
+
# "bids": [
|
1383
|
+
# {
|
1384
|
+
# "price": "0.2384",
|
1385
|
+
# "size": "386.1"
|
1386
|
+
# }
|
1387
|
+
# ],
|
1388
|
+
# "asks": [
|
1389
|
+
# {
|
1390
|
+
# "price": "0.2406",
|
1391
|
+
# "size": "672"
|
1392
|
+
# }
|
1393
|
+
# ],
|
1394
|
+
# "time": "2023-06-30T07:15:24.656044Z"
|
1395
|
+
# }
|
1396
|
+
#
|
1397
|
+
bid = self.safe_number(ticker, 'bid')
|
1398
|
+
ask = self.safe_number(ticker, 'ask')
|
1399
|
+
bidVolume = None
|
1400
|
+
askVolume = None
|
1401
|
+
if ('bids' in ticker):
|
1402
|
+
bids = self.safe_value(ticker, 'bids', [])
|
1403
|
+
asks = self.safe_value(ticker, 'asks', [])
|
1404
|
+
bid = self.safe_number(bids[0], 'price')
|
1405
|
+
bidVolume = self.safe_number(bids[0], 'size')
|
1406
|
+
ask = self.safe_number(asks[0], 'price')
|
1407
|
+
askVolume = self.safe_number(asks[0], 'size')
|
1377
1408
|
marketId = self.safe_string(ticker, 'product_id')
|
1378
1409
|
last = self.safe_number(ticker, 'price')
|
1410
|
+
datetime = self.safe_string(ticker, 'time')
|
1379
1411
|
return self.safe_ticker({
|
1380
1412
|
'symbol': self.safe_symbol(marketId, market),
|
1381
|
-
'timestamp':
|
1382
|
-
'datetime':
|
1383
|
-
'bid':
|
1384
|
-
'ask':
|
1413
|
+
'timestamp': self.parse8601(datetime),
|
1414
|
+
'datetime': datetime,
|
1415
|
+
'bid': bid,
|
1416
|
+
'ask': ask,
|
1385
1417
|
'last': last,
|
1386
1418
|
'high': None,
|
1387
1419
|
'low': None,
|
1388
|
-
'bidVolume':
|
1389
|
-
'askVolume':
|
1420
|
+
'bidVolume': bidVolume,
|
1421
|
+
'askVolume': askVolume,
|
1390
1422
|
'vwap': None,
|
1391
1423
|
'open': None,
|
1392
1424
|
'close': last,
|
@@ -2616,6 +2648,43 @@ class coinbase(Exchange, ImplicitAPI):
|
|
2616
2648
|
timestamp = self.parse8601(time)
|
2617
2649
|
return self.parse_order_book(data, symbol, timestamp, 'bids', 'asks', 'price', 'size')
|
2618
2650
|
|
2651
|
+
async def fetch_bids_asks(self, symbols: Optional[List[str]] = None, params={}):
|
2652
|
+
"""
|
2653
|
+
fetches the bid and ask price and volume for multiple markets
|
2654
|
+
see https://docs.cloud.coinbase.com/advanced-trade-api/reference/retailbrokerageapi_getbestbidask
|
2655
|
+
:param [str]|None symbols: unified symbols of the markets to fetch the bids and asks for, all markets are returned if not assigned
|
2656
|
+
:param dict params: extra parameters specific to the coinbase api endpoint
|
2657
|
+
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/en/latest/manual.html#ticker-structure>`
|
2658
|
+
"""
|
2659
|
+
await self.load_markets()
|
2660
|
+
symbols = self.market_symbols(symbols)
|
2661
|
+
# the 'product_ids' param isn't working properly and returns {"pricebooks":[]} when defined
|
2662
|
+
response = await self.v3PrivateGetBrokerageBestBidAsk(params)
|
2663
|
+
#
|
2664
|
+
# {
|
2665
|
+
# "pricebooks": [
|
2666
|
+
# {
|
2667
|
+
# "product_id": "TRAC-EUR",
|
2668
|
+
# "bids": [
|
2669
|
+
# {
|
2670
|
+
# "price": "0.2384",
|
2671
|
+
# "size": "386.1"
|
2672
|
+
# }
|
2673
|
+
# ],
|
2674
|
+
# "asks": [
|
2675
|
+
# {
|
2676
|
+
# "price": "0.2406",
|
2677
|
+
# "size": "672"
|
2678
|
+
# }
|
2679
|
+
# ],
|
2680
|
+
# "time": "2023-06-30T07:15:24.656044Z"
|
2681
|
+
# },
|
2682
|
+
# ]
|
2683
|
+
# }
|
2684
|
+
#
|
2685
|
+
tickers = self.safe_value(response, 'pricebooks', [])
|
2686
|
+
return self.parse_tickers(tickers, symbols)
|
2687
|
+
|
2619
2688
|
def sign(self, path, api=[], method='GET', params={}, headers=None, body=None):
|
2620
2689
|
version = api[0]
|
2621
2690
|
signed = api[1] == 'private'
|
ccxt/async_support/okx.py
CHANGED
@@ -168,7 +168,13 @@ class okx(Exchange, ImplicitAPI):
|
|
168
168
|
'www': 'https://www.okx.com',
|
169
169
|
'doc': 'https://www.okx.com/docs-v5/en/',
|
170
170
|
'fees': 'https://www.okx.com/pages/products/fees.html',
|
171
|
-
'referral':
|
171
|
+
'referral': {
|
172
|
+
# old reflink 0% discount https://www.okx.com/join/1888677
|
173
|
+
# new reflink 20% discount https://www.okx.com/join/CCXT2023
|
174
|
+
# okx + ccxt campaign reflink with 20% discount https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023
|
175
|
+
'url': 'https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023',
|
176
|
+
'discount': 0.2,
|
177
|
+
},
|
172
178
|
'test': {
|
173
179
|
'rest': 'https://{hostname}',
|
174
180
|
},
|
ccxt/base/exchange.py
CHANGED
ccxt/bitget.py
CHANGED
@@ -169,6 +169,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
169
169
|
'market/candles': 1,
|
170
170
|
'market/depth': 1,
|
171
171
|
'market/spot-vip-level': 2,
|
172
|
+
'market/history-candles': 1,
|
172
173
|
},
|
173
174
|
},
|
174
175
|
'mix': {
|
@@ -190,6 +191,9 @@ class bitget(Exchange, ImplicitAPI):
|
|
190
191
|
'market/symbol-leverage': 1,
|
191
192
|
'market/queryPositionLever': 1,
|
192
193
|
'market/open-limit': 1,
|
194
|
+
'market/history-candles': 1,
|
195
|
+
'market/history-index-candles': 1,
|
196
|
+
'market/history-mark-candles': 1,
|
193
197
|
},
|
194
198
|
},
|
195
199
|
'margin': {
|
ccxt/coinbase.py
CHANGED
@@ -61,6 +61,7 @@ class coinbase(Exchange, ImplicitAPI):
|
|
61
61
|
'createStopOrder': True,
|
62
62
|
'fetchAccounts': True,
|
63
63
|
'fetchBalance': True,
|
64
|
+
'fetchBidsAsks': True,
|
64
65
|
'fetchBorrowRate': False,
|
65
66
|
'fetchBorrowRateHistories': False,
|
66
67
|
'fetchBorrowRateHistory': False,
|
@@ -1374,19 +1375,50 @@ class coinbase(Exchange, ImplicitAPI):
|
|
1374
1375
|
# ...
|
1375
1376
|
# ]
|
1376
1377
|
#
|
1378
|
+
# fetchBidsAsks
|
1379
|
+
#
|
1380
|
+
# {
|
1381
|
+
# "product_id": "TRAC-EUR",
|
1382
|
+
# "bids": [
|
1383
|
+
# {
|
1384
|
+
# "price": "0.2384",
|
1385
|
+
# "size": "386.1"
|
1386
|
+
# }
|
1387
|
+
# ],
|
1388
|
+
# "asks": [
|
1389
|
+
# {
|
1390
|
+
# "price": "0.2406",
|
1391
|
+
# "size": "672"
|
1392
|
+
# }
|
1393
|
+
# ],
|
1394
|
+
# "time": "2023-06-30T07:15:24.656044Z"
|
1395
|
+
# }
|
1396
|
+
#
|
1397
|
+
bid = self.safe_number(ticker, 'bid')
|
1398
|
+
ask = self.safe_number(ticker, 'ask')
|
1399
|
+
bidVolume = None
|
1400
|
+
askVolume = None
|
1401
|
+
if ('bids' in ticker):
|
1402
|
+
bids = self.safe_value(ticker, 'bids', [])
|
1403
|
+
asks = self.safe_value(ticker, 'asks', [])
|
1404
|
+
bid = self.safe_number(bids[0], 'price')
|
1405
|
+
bidVolume = self.safe_number(bids[0], 'size')
|
1406
|
+
ask = self.safe_number(asks[0], 'price')
|
1407
|
+
askVolume = self.safe_number(asks[0], 'size')
|
1377
1408
|
marketId = self.safe_string(ticker, 'product_id')
|
1378
1409
|
last = self.safe_number(ticker, 'price')
|
1410
|
+
datetime = self.safe_string(ticker, 'time')
|
1379
1411
|
return self.safe_ticker({
|
1380
1412
|
'symbol': self.safe_symbol(marketId, market),
|
1381
|
-
'timestamp':
|
1382
|
-
'datetime':
|
1383
|
-
'bid':
|
1384
|
-
'ask':
|
1413
|
+
'timestamp': self.parse8601(datetime),
|
1414
|
+
'datetime': datetime,
|
1415
|
+
'bid': bid,
|
1416
|
+
'ask': ask,
|
1385
1417
|
'last': last,
|
1386
1418
|
'high': None,
|
1387
1419
|
'low': None,
|
1388
|
-
'bidVolume':
|
1389
|
-
'askVolume':
|
1420
|
+
'bidVolume': bidVolume,
|
1421
|
+
'askVolume': askVolume,
|
1390
1422
|
'vwap': None,
|
1391
1423
|
'open': None,
|
1392
1424
|
'close': last,
|
@@ -2616,6 +2648,43 @@ class coinbase(Exchange, ImplicitAPI):
|
|
2616
2648
|
timestamp = self.parse8601(time)
|
2617
2649
|
return self.parse_order_book(data, symbol, timestamp, 'bids', 'asks', 'price', 'size')
|
2618
2650
|
|
2651
|
+
def fetch_bids_asks(self, symbols: Optional[List[str]] = None, params={}):
|
2652
|
+
"""
|
2653
|
+
fetches the bid and ask price and volume for multiple markets
|
2654
|
+
see https://docs.cloud.coinbase.com/advanced-trade-api/reference/retailbrokerageapi_getbestbidask
|
2655
|
+
:param [str]|None symbols: unified symbols of the markets to fetch the bids and asks for, all markets are returned if not assigned
|
2656
|
+
:param dict params: extra parameters specific to the coinbase api endpoint
|
2657
|
+
:returns dict: a dictionary of `ticker structures <https://docs.ccxt.com/en/latest/manual.html#ticker-structure>`
|
2658
|
+
"""
|
2659
|
+
self.load_markets()
|
2660
|
+
symbols = self.market_symbols(symbols)
|
2661
|
+
# the 'product_ids' param isn't working properly and returns {"pricebooks":[]} when defined
|
2662
|
+
response = self.v3PrivateGetBrokerageBestBidAsk(params)
|
2663
|
+
#
|
2664
|
+
# {
|
2665
|
+
# "pricebooks": [
|
2666
|
+
# {
|
2667
|
+
# "product_id": "TRAC-EUR",
|
2668
|
+
# "bids": [
|
2669
|
+
# {
|
2670
|
+
# "price": "0.2384",
|
2671
|
+
# "size": "386.1"
|
2672
|
+
# }
|
2673
|
+
# ],
|
2674
|
+
# "asks": [
|
2675
|
+
# {
|
2676
|
+
# "price": "0.2406",
|
2677
|
+
# "size": "672"
|
2678
|
+
# }
|
2679
|
+
# ],
|
2680
|
+
# "time": "2023-06-30T07:15:24.656044Z"
|
2681
|
+
# },
|
2682
|
+
# ]
|
2683
|
+
# }
|
2684
|
+
#
|
2685
|
+
tickers = self.safe_value(response, 'pricebooks', [])
|
2686
|
+
return self.parse_tickers(tickers, symbols)
|
2687
|
+
|
2619
2688
|
def sign(self, path, api=[], method='GET', params={}, headers=None, body=None):
|
2620
2689
|
version = api[0]
|
2621
2690
|
signed = api[1] == 'private'
|
ccxt/okx.py
CHANGED
@@ -167,7 +167,13 @@ class okx(Exchange, ImplicitAPI):
|
|
167
167
|
'www': 'https://www.okx.com',
|
168
168
|
'doc': 'https://www.okx.com/docs-v5/en/',
|
169
169
|
'fees': 'https://www.okx.com/pages/products/fees.html',
|
170
|
-
'referral':
|
170
|
+
'referral': {
|
171
|
+
# old reflink 0% discount https://www.okx.com/join/1888677
|
172
|
+
# new reflink 20% discount https://www.okx.com/join/CCXT2023
|
173
|
+
# okx + ccxt campaign reflink with 20% discount https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023
|
174
|
+
'url': 'https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023',
|
175
|
+
'discount': 0.2,
|
176
|
+
},
|
171
177
|
'test': {
|
172
178
|
'rest': 'https://{hostname}',
|
173
179
|
},
|
ccxt/pro/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.0.
|
3
|
+
Version: 4.0.7
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -62,6 +62,9 @@ Current feature list:
|
|
62
62
|
- an out of the box unified API that is extremely easy to integrate
|
63
63
|
- works in Node 10.4+, Python 3, PHP 8.1+, netstandard2.0/2.1 and web browsers
|
64
64
|
|
65
|
+
## Sponsored Promotion
|
66
|
+
|
67
|
+
[](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023)
|
65
68
|
|
66
69
|
## See Also
|
67
70
|
|
@@ -89,7 +92,7 @@ Current feature list:
|
|
89
92
|
| [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | huobi | [Huobi](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [](https://huobiapi.github.io/docs/spot/v1/en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) |
|
90
93
|
| [](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | kucoin | [KuCoin](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | [](https://docs.kucoin.com) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
91
94
|
| [](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | mexc | [MEXC Global](https://m.mexc.com/auth/signup?inviteCode=1FQ1G) | [](https://mxcdevelop.github.io/apidocs/spot_v3_en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
92
|
-
| [](https://www.okx.com/
|
95
|
+
| [](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023) | okx | [OKX](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023) | [](https://www.okx.com/docs-v5/en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023) |
|
93
96
|
| [](https://waves.exchange) | wavesexchange | [Waves.Exchange](https://waves.exchange) | [](https://docs.waves.exchange) | [](https://github.com/ccxt/ccxt/wiki/Certification) | | |
|
94
97
|
| [](https://referral.woo.org/BAJS6oNmZb3vi3RGA) | woo | [WOO X](https://referral.woo.org/BAJS6oNmZb3vi3RGA) | [](https://docs.woo.org/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
95
98
|
|
@@ -180,7 +183,7 @@ The CCXT library currently supports the following 98 cryptocurrency exchange mar
|
|
180
183
|
| [](https://www.novadax.com.br/?s=ccxt) | novadax | [NovaDAX](https://www.novadax.com.br/?s=ccxt) | [](https://doc.novadax.com/pt-BR/) | | |
|
181
184
|
| [](https://oceanex.pro/signup?referral=VE24QX) | oceanex | [OceanEx](https://oceanex.pro/signup?referral=VE24QX) | [](https://api.oceanex.pro/doc/v1) | | |
|
182
185
|
| [](https://www.okcoin.com/account/register?flag=activity&channelId=600001513) | okcoin | [OKCoin](https://www.okcoin.com/account/register?flag=activity&channelId=600001513) | [](https://www.okcoin.com/docs/en/) | | [](https://ccxt.pro) |
|
183
|
-
| [](https://www.okx.com/
|
186
|
+
| [](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023) | okx | [OKX](https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023) | [](https://www.okx.com/docs-v5/en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
184
187
|
| [](https://www.paymium.com/page/sign-up?referral=eDAzPoRQFMvaAB8sf-qj) | paymium | [Paymium](https://www.paymium.com/page/sign-up?referral=eDAzPoRQFMvaAB8sf-qj) | [](https://github.com/Paymium/api-documentation) | | |
|
185
188
|
| [](https://phemex.com/register?referralCode=EDNVJ) | phemex | [Phemex](https://phemex.com/register?referralCode=EDNVJ) | [](https://github.com/phemex/phemex-api-docs) | | [](https://ccxt.pro) |
|
186
189
|
| [](https://poloniex.com/signup?c=UBFZJRPJ) | poloniex | [Poloniex](https://poloniex.com/signup?c=UBFZJRPJ) | [](https://docs.poloniex.com) | | [](https://ccxt.pro) |
|
@@ -254,13 +257,13 @@ console.log(version, Object.keys(exchanges));
|
|
254
257
|
|
255
258
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
256
259
|
|
257
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
258
|
-
* unpkg: https://unpkg.com/ccxt@4.0.
|
260
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.7/dist/ccxt.browser.js
|
261
|
+
* unpkg: https://unpkg.com/ccxt@4.0.7/dist/ccxt.browser.js
|
259
262
|
|
260
263
|
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.
|
261
264
|
|
262
265
|
```HTML
|
263
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
266
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.7/dist/ccxt.browser.js"></script>
|
264
267
|
```
|
265
268
|
|
266
269
|
Creates a global `ccxt` object:
|
@@ -1,4 +1,4 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=X2pIyjou-7fw458mXdCCrcGsELSaJuVHLwqiw1tU-5c,15341
|
2
2
|
ccxt/ace.py,sha256=8uTO7fzyxHnEhE3Y8VDP2EcWxh9gjs9xPMbuXjkUA7A,41372
|
3
3
|
ccxt/alpaca.py,sha256=_cPmZ0obENxKSzsqLu0t1Ae-rUwN8z1DUB3Af8Kh4sA,33434
|
4
4
|
ccxt/ascendex.py,sha256=NAmK1Ss3lDunf5MELZF_4B2_toSiC9OQmowvxyTo--c,132518
|
@@ -17,7 +17,7 @@ ccxt/bitfinex.py,sha256=jVlZWr9fTOnGk7DljrVBDvWkSuYxlJUhn5bNGWt5Ywo,69390
|
|
17
17
|
ccxt/bitfinex2.py,sha256=gMef9dPorHkYqStWFp8LS0HtoeAR4qsyPLvHUWpDOLs,111573
|
18
18
|
ccxt/bitflyer.py,sha256=xyiLypcK6XG3ZjDhclD4YVP6pwbwVbDPyFghP3fdags,37759
|
19
19
|
ccxt/bitforex.py,sha256=t3e95zu6aVGmJcdNyXPSHX0BGmFXA7PR8VsbIM4LZuc,32164
|
20
|
-
ccxt/bitget.py,sha256=
|
20
|
+
ccxt/bitget.py,sha256=MY0XPnzMyowKzZFFreDbUUR4FAd2Rqy52ddVN_-qwXs,225849
|
21
21
|
ccxt/bithumb.py,sha256=QI2sZWiLN1rfXnn2zur1wosFNEWcyFZv_r-7DIVWkpo,42616
|
22
22
|
ccxt/bitmart.py,sha256=DhJJnr3ZJzY9IutjOvxtHvTXG_LURzbIXllXwMs7Q0A,131509
|
23
23
|
ccxt/bitmex.py,sha256=-ZxduV4zhkpxONModGKuqGJMXm-yMo5Fe_JAQM3TlZk,112225
|
@@ -39,7 +39,7 @@ ccxt/btctradeua.py,sha256=sy56Hmc0AaducvQ_2piTor0BwTvjD02IgqoQ-gBTYcU,22219
|
|
39
39
|
ccxt/btcturk.py,sha256=VJ5J9gmTJHIOQ0IQrHyrJym9BNIlWfNPpzO8_twINZo,35397
|
40
40
|
ccxt/bybit.py,sha256=1oRdychu4q4_E5X0OC9SGziu49l74TuiYv_8TK6Pksg,403034
|
41
41
|
ccxt/cex.py,sha256=c-tYAAq397tPuv2D00hSe6QtnJFYiqOtoyIO_erCzhc,65000
|
42
|
-
ccxt/coinbase.py,sha256=
|
42
|
+
ccxt/coinbase.py,sha256=0rkwHFjxS1lBywcVQQDpVVbSjIbhlfpO6faVOvNrr5A,129313
|
43
43
|
ccxt/coinbaseprime.py,sha256=Ygvljulxb2uKdei5yimCj1LMjLlUJNvP-G7ns1HpUFk,1219
|
44
44
|
ccxt/coinbasepro.py,sha256=npuCTjMKK4xHR-gHdp2owj1VtKT78ZeofxGzx4bLuKo,73828
|
45
45
|
ccxt/coincheck.py,sha256=0Y7Z49gpWfMuFcuJXAnCHAMjh1QUpgcaR95lPTD0h9o,34219
|
@@ -88,7 +88,7 @@ ccxt/oceanex.py,sha256=-6y1oElL5QOYB82J_N5tVHLdEX9hZ7dPCOCzfbQCKqM,37114
|
|
88
88
|
ccxt/okcoin.py,sha256=B5otctOYDvWkhckFWW7tfhUQsQaSbPiZh0X0eqR1K_w,177829
|
89
89
|
ccxt/okex.py,sha256=nVDSzVztmboH593DVByjzFoOpFTzumcQFH_T9kdVKlE,434
|
90
90
|
ccxt/okex5.py,sha256=LKTogVF1svNkqW_-Cx0AuAopu6esgFf7ucbv7CaodUg,441
|
91
|
-
ccxt/okx.py,sha256=
|
91
|
+
ccxt/okx.py,sha256=5SatHSUlxiJWerskNxBUhv-gtO6qEqIhJD1qo74hegE,285826
|
92
92
|
ccxt/paymium.py,sha256=DIlRvOVsYZaPGDUSBZH3-DUIXf7QfHEOFyhephw48HE,23938
|
93
93
|
ccxt/phemex.py,sha256=wikqZDAKdVBr5outIp4gVaG19qHPmYmBlDzdcXkeen0,197800
|
94
94
|
ccxt/poloniex.py,sha256=OqLq7DmJOC1jwaTv4nNb0AaO_0JrtoDqZj-3kjFH5lQ,93674
|
@@ -124,7 +124,7 @@ ccxt/abstract/bitfinex.py,sha256=OLUXdJEycyN_qrBhPuTTOVlwu3jkqVWenoTmS-W3bOE,760
|
|
124
124
|
ccxt/abstract/bitfinex2.py,sha256=PAch4aEMHMYjV8up6YHmibfLz6sn4wh-knkSTKZbJrY,19171
|
125
125
|
ccxt/abstract/bitflyer.py,sha256=3ngG1GJJCNMzYMWoNXCEEgLxmTl7eRf7_JU4M0P2rqo,3576
|
126
126
|
ccxt/abstract/bitforex.py,sha256=_vwOUvBfzQazUvoflGK53m8i7xRgsmzFL4qP5UzqnZ8,2789
|
127
|
-
ccxt/abstract/bitget.py,sha256=
|
127
|
+
ccxt/abstract/bitget.py,sha256=keNvM6j8cUvB-SZtqxkQgeJw0qNwjDlOr2j_ixE-f2M,34928
|
128
128
|
ccxt/abstract/bithumb.py,sha256=I_ZNjXND1I4IRz6AsIwlZV-XoOt0vtMo4kUroAcC2Kk,2659
|
129
129
|
ccxt/abstract/bitmart.py,sha256=Zw34giZABSCscioucHqX8aBT7EEbADrJW_vgmGqNS-Q,9098
|
130
130
|
ccxt/abstract/bitmex.py,sha256=k00c5G7Tj9u00uV7Qj7tBm4uyr5oi4f73UDJA9nA_IY,8397
|
@@ -211,7 +211,7 @@ ccxt/abstract/woo.py,sha256=9_cfnwSvBNpcw0ESX4MJpfnXGNm5MSND6CsspevTLww,7866
|
|
211
211
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
212
212
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
213
213
|
ccxt/abstract/zonda.py,sha256=VoxuPkSq8vAvKnDvOqnByhwsIf09m7yIrs8HejFrDk4,5482
|
214
|
-
ccxt/async_support/__init__.py,sha256=
|
214
|
+
ccxt/async_support/__init__.py,sha256=o62a9Ti7_6kTgi0KhDTLgPtPFW5IJ_QLHI-8NXI9Dj0,15114
|
215
215
|
ccxt/async_support/ace.py,sha256=xTtzqhVgpoDI4YgR9rRTRHTV2UsQmNYNfbuJc6aBKxA,41596
|
216
216
|
ccxt/async_support/alpaca.py,sha256=hWimV0LrPixw15-FH7lMFB6s6EMEOjDlZOhWjznzu3g,33580
|
217
217
|
ccxt/async_support/ascendex.py,sha256=g_I5OjzdooUCjC8gScns6KgF8x1sa8WcNQTAGEFiUyI,133150
|
@@ -230,7 +230,7 @@ ccxt/async_support/bitfinex.py,sha256=SLYVaRVTOvaEplpraQ8tfJse0-VKYRtdjfQO3yd7dl
|
|
230
230
|
ccxt/async_support/bitfinex2.py,sha256=fTjgCsWq1iXleuOYvLUHJvGotnX8yw7qtWnUIYrChWw,112043
|
231
231
|
ccxt/async_support/bitflyer.py,sha256=XJjWrXJBTNW3PPyjH4vw0RKIyOSgn9nMmzJK5LKrwZg,38067
|
232
232
|
ccxt/async_support/bitforex.py,sha256=lI1Zz7snYpmCe10LEdO68kFQ8aRY2UXN3qoz2YUC8uc,32388
|
233
|
-
ccxt/async_support/bitget.py,sha256=
|
233
|
+
ccxt/async_support/bitget.py,sha256=ZmYYQRLQUjiDWTEOj8Mt4NBGIjssz-ttKoC9BwIEyV4,226741
|
234
234
|
ccxt/async_support/bithumb.py,sha256=PSbN5liXM68a3ZR13v72VLVEXODBo84dw_M-E-JrVuI,42834
|
235
235
|
ccxt/async_support/bitmart.py,sha256=wgdb1MzuOyzeocbkUALo4i30QglEbyTs8UGoSwqQJBM,132147
|
236
236
|
ccxt/async_support/bitmex.py,sha256=YDF1feJsGurNSoTdsh5Lftq5ainn6XHP7nyzV7uvEzc,112719
|
@@ -252,7 +252,7 @@ ccxt/async_support/btctradeua.py,sha256=tSaZ_DygP7abbM2wwilf6ea6A7v9JePkWjr2icru
|
|
252
252
|
ccxt/async_support/btcturk.py,sha256=tJKSlRhwK7VmPBmLbliz2Sr9RC0mqP_t_Si9g7Jyi1w,35615
|
253
253
|
ccxt/async_support/bybit.py,sha256=XDsnVNm-hXccB59JGrGDq4oCBxbFp6nN2poMKoiPaqg,404940
|
254
254
|
ccxt/async_support/cex.py,sha256=gF8OtUpS1oWG_BArd2QCP0kTx29oVbsbZOMRSF1Rj3U,65326
|
255
|
-
ccxt/async_support/coinbase.py,sha256
|
255
|
+
ccxt/async_support/coinbase.py,sha256=-7A57M1x2HAwUHig1DFd7TvCBGKtpsixRdjdbM-UWe4,129993
|
256
256
|
ccxt/async_support/coinbaseprime.py,sha256=M5Ez1DsFcW3-vJ-4QoZzwYBAKjAAtJnJpkfnV4sWAIc,1233
|
257
257
|
ccxt/async_support/coinbasepro.py,sha256=JRHiB_RsD0iWU8bD4ixUCkgYoYOBfOm7cmthJ7ih9lY,74334
|
258
258
|
ccxt/async_support/coincheck.py,sha256=scNw54Oj_iGHDPLiFjNEMGMU3ti_wKn5ltM-AD85LB8,34425
|
@@ -301,7 +301,7 @@ ccxt/async_support/oceanex.py,sha256=8GIbo_O2j9tELlYyiE4MPzOD_MwpDPv26tzztqxklhc
|
|
301
301
|
ccxt/async_support/okcoin.py,sha256=WvLWTmoUs8ARk7GTglgk4BwMtTj_kWUW6nRuuHVdNVk,178293
|
302
302
|
ccxt/async_support/okex.py,sha256=6dbtH4bC1C2x4cQUK6W62y7PuDgO3YazuFa7DYhM4Jw,448
|
303
303
|
ccxt/async_support/okex5.py,sha256=tq41tKx06j3DDO9pu9iKInpjayVprbobVNTK8qb7hoM,455
|
304
|
-
ccxt/async_support/okx.py,sha256=
|
304
|
+
ccxt/async_support/okx.py,sha256=tnnL9qKlvDht3HtcTvyQDnHPaoiyw1voTyy8eAYl5jI,286898
|
305
305
|
ccxt/async_support/paymium.py,sha256=6GM4efJ7rngx7LQt0rFb3TbZUKzGwBi11VMA7rQD-kY,24126
|
306
306
|
ccxt/async_support/phemex.py,sha256=vKTDQuYgpg-msvQXqzkoHmXEwBtmTM2Yk2yoOFL-axg,198396
|
307
307
|
ccxt/async_support/poloniex.py,sha256=T-mL9xAEQvtawMoijqf4NLVT_Ds-kb6HZZgBY_LNxsQ,94174
|
@@ -319,7 +319,7 @@ ccxt/async_support/yobit.py,sha256=cRJgQNE-EfjXAligG8-iKxYA-yt9tKGilGnXg1PDrbg,5
|
|
319
319
|
ccxt/async_support/zaif.py,sha256=Bg4Bfk63mluMSp1_8VE4_JPZEXSb940MocZGFisG9IA,28985
|
320
320
|
ccxt/async_support/zonda.py,sha256=9je6awNUpQAHqF8uKfqIqjXyG8CQOPmzU1xDdxzpNDo,79823
|
321
321
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
322
|
-
ccxt/async_support/base/exchange.py,sha256=
|
322
|
+
ccxt/async_support/base/exchange.py,sha256=4Ox35Ys4b4MUf0z0OpttCEyuBjP5QHXGtnOy_e5EiX8,140818
|
323
323
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
324
324
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
325
325
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=xmlZV30Vb9Kq7JCm3D5FuEmuj1zp5H4F4hrz8-Y-Ir4,4999
|
@@ -333,10 +333,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GH-475Ni0mLOx7mUDnz4jjzaGkh
|
|
333
333
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
334
334
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
335
335
|
ccxt/base/errors.py,sha256=-LVeTNyXvu3QEgb-p-KzMpcBgzHlvFTwDzmZK7Gfc14,3401
|
336
|
-
ccxt/base/exchange.py,sha256=
|
336
|
+
ccxt/base/exchange.py,sha256=_aCl8n_zJD4XyMZyb5P0BPsiZ8pDgztwz6QvJI0bBfs,180207
|
337
337
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
338
338
|
ccxt/base/types.py,sha256=be7MU-iLHhynL-GmIzPxb0SD6GIps-w3PmPN05irsAA,1406
|
339
|
-
ccxt/pro/__init__.py,sha256=
|
339
|
+
ccxt/pro/__init__.py,sha256=5ElgNXAk1_ug3NXwlp84C4bhnjj__A9XRvVsdpvMUWw,6376
|
340
340
|
ccxt/pro/alpaca.py,sha256=dHcK0EFjEkzs_nZn2DGpwMauOkw2XPKaqYezx4dcDis,26671
|
341
341
|
ccxt/pro/ascendex.py,sha256=QVvtQlv_AZaQTaZcczXocmrf9gL1zFpsLRVcNF21qCI,34555
|
342
342
|
ccxt/pro/bequant.py,sha256=qz8JjnpkAQY_CFiFSKGqrjjgZ2167_TBKjSJOb9NeDw,1081
|
@@ -446,7 +446,7 @@ ccxt/test/base/test_ticker.py,sha256=h9AV_O6s-Ax3vB3sFoN0Mz22rMOi65i9BDv0SNejH98
|
|
446
446
|
ccxt/test/base/test_trade.py,sha256=bL9o3S_TGW8Nnlxu-BYkRG8NyRzKAWrU66uO5jJCM3A,2259
|
447
447
|
ccxt/test/base/test_trading_fee.py,sha256=yRCpLHLg_ca9JQXdZB3_pIMHgHLGEfeQF95E6d1e2Bc,1125
|
448
448
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
449
|
-
ccxt-4.0.
|
450
|
-
ccxt-4.0.
|
451
|
-
ccxt-4.0.
|
452
|
-
ccxt-4.0.
|
449
|
+
ccxt-4.0.7.dist-info/METADATA,sha256=lqflX3ga5CMiJCv77dykVgwBCmU5ub2xjpVyQTlMNpI,108968
|
450
|
+
ccxt-4.0.7.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
|
451
|
+
ccxt-4.0.7.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
452
|
+
ccxt-4.0.7.dist-info/RECORD,,
|
File without changes
|
File without changes
|