ccxt 4.2.29__py2.py3-none-any.whl → 4.2.31__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ccxt/__init__.py +3 -3
- ccxt/abstract/bybit.py +2 -2
- ccxt/abstract/coinbase.py +10 -0
- ccxt/abstract/okx.py +12 -1
- ccxt/ascendex.py +5 -5
- ccxt/async_support/__init__.py +3 -3
- ccxt/async_support/ascendex.py +5 -5
- ccxt/async_support/base/exchange.py +3 -3
- ccxt/async_support/bigone.py +2 -2
- ccxt/async_support/binance.py +892 -218
- ccxt/async_support/bingx.py +1 -1
- ccxt/async_support/bitfinex.py +1 -1
- ccxt/async_support/bitfinex2.py +421 -86
- ccxt/async_support/bitforex.py +3 -0
- ccxt/async_support/bitget.py +8 -4
- ccxt/async_support/bitmart.py +3 -3
- ccxt/async_support/bitmex.py +4 -4
- ccxt/async_support/bitrue.py +1 -1
- ccxt/async_support/bitso.py +1 -1
- ccxt/async_support/bitteam.py +2 -2
- ccxt/async_support/btcalpha.py +1 -1
- ccxt/async_support/bybit.py +3 -3
- ccxt/async_support/coinbase.py +20 -5
- ccxt/async_support/coincheck.py +1 -1
- ccxt/async_support/coinex.py +2 -2
- ccxt/async_support/coinlist.py +1 -1
- ccxt/async_support/coinmate.py +1 -1
- ccxt/async_support/coinmetro.py +2 -2
- ccxt/async_support/coinsph.py +1 -1
- ccxt/async_support/cryptocom.py +3 -3
- ccxt/async_support/deribit.py +1 -0
- ccxt/async_support/digifinex.py +6 -4
- ccxt/async_support/exmo.py +2 -2
- ccxt/async_support/gate.py +5 -5
- ccxt/async_support/gemini.py +3 -3
- ccxt/async_support/hitbtc.py +13 -17
- ccxt/async_support/hollaex.py +2 -2
- ccxt/async_support/htx.py +6 -6
- ccxt/async_support/huobijp.py +1 -1
- ccxt/async_support/kraken.py +3 -1
- ccxt/async_support/krakenfutures.py +4 -1
- ccxt/async_support/kucoin.py +17 -17
- ccxt/async_support/kucoinfutures.py +3 -3
- ccxt/async_support/lbank.py +4 -3
- ccxt/async_support/mexc.py +7 -7
- ccxt/async_support/novadax.py +1 -1
- ccxt/async_support/okcoin.py +2 -2
- ccxt/async_support/okx.py +22 -8
- ccxt/async_support/p2b.py +1 -0
- ccxt/async_support/phemex.py +3 -3
- ccxt/async_support/poloniexfutures.py +6 -3
- ccxt/async_support/probit.py +1 -1
- ccxt/async_support/timex.py +2 -2
- ccxt/async_support/tokocrypto.py +3 -3
- ccxt/async_support/wavesexchange.py +2 -2
- ccxt/async_support/whitebit.py +3 -3
- ccxt/async_support/woo.py +3 -3
- ccxt/async_support/yobit.py +1 -1
- ccxt/async_support/zaif.py +1 -1
- ccxt/async_support/zonda.py +3 -3
- ccxt/base/errors.py +13 -12
- ccxt/base/exchange.py +36 -26
- ccxt/bigone.py +2 -2
- ccxt/binance.py +892 -218
- ccxt/bingx.py +1 -1
- ccxt/bitfinex.py +1 -1
- ccxt/bitfinex2.py +421 -86
- ccxt/bitforex.py +3 -0
- ccxt/bitget.py +8 -4
- ccxt/bitmart.py +3 -3
- ccxt/bitmex.py +4 -4
- ccxt/bitrue.py +1 -1
- ccxt/bitso.py +1 -1
- ccxt/bitteam.py +2 -2
- ccxt/btcalpha.py +1 -1
- ccxt/bybit.py +3 -3
- ccxt/coinbase.py +20 -5
- ccxt/coincheck.py +1 -1
- ccxt/coinex.py +2 -2
- ccxt/coinlist.py +1 -1
- ccxt/coinmate.py +1 -1
- ccxt/coinmetro.py +2 -2
- ccxt/coinsph.py +1 -1
- ccxt/cryptocom.py +3 -3
- ccxt/deribit.py +1 -0
- ccxt/digifinex.py +6 -4
- ccxt/exmo.py +2 -2
- ccxt/gate.py +5 -5
- ccxt/gemini.py +3 -3
- ccxt/hitbtc.py +13 -17
- ccxt/hollaex.py +2 -2
- ccxt/htx.py +6 -6
- ccxt/huobijp.py +1 -1
- ccxt/kraken.py +3 -1
- ccxt/krakenfutures.py +4 -1
- ccxt/kucoin.py +17 -17
- ccxt/kucoinfutures.py +3 -3
- ccxt/lbank.py +4 -3
- ccxt/mexc.py +7 -7
- ccxt/novadax.py +1 -1
- ccxt/okcoin.py +2 -2
- ccxt/okx.py +22 -8
- ccxt/p2b.py +1 -0
- ccxt/phemex.py +3 -3
- ccxt/poloniexfutures.py +6 -3
- ccxt/pro/__init__.py +3 -1
- ccxt/pro/alpaca.py +1 -1
- ccxt/pro/binance.py +4 -4
- ccxt/pro/bitget.py +1 -1
- ccxt/pro/bitmart.py +1 -1
- ccxt/pro/bitmex.py +43 -7
- ccxt/pro/bitvavo.py +1 -1
- ccxt/pro/bybit.py +2 -2
- ccxt/pro/cex.py +2 -2
- ccxt/pro/independentreserve.py +1 -1
- ccxt/pro/okx.py +1 -1
- ccxt/pro/onetrading.py +2 -2
- ccxt/pro/p2b.py +407 -0
- ccxt/pro/probit.py +5 -5
- ccxt/pro/whitebit.py +1 -1
- ccxt/probit.py +1 -1
- ccxt/timex.py +2 -2
- ccxt/tokocrypto.py +3 -3
- ccxt/wavesexchange.py +2 -2
- ccxt/whitebit.py +3 -3
- ccxt/woo.py +3 -3
- ccxt/yobit.py +1 -1
- ccxt/zaif.py +1 -1
- ccxt/zonda.py +3 -3
- {ccxt-4.2.29.dist-info → ccxt-4.2.31.dist-info}/METADATA +6 -7
- {ccxt-4.2.29.dist-info → ccxt-4.2.31.dist-info}/RECORD +133 -132
- {ccxt-4.2.29.dist-info → ccxt-4.2.31.dist-info}/WHEEL +0 -0
- {ccxt-4.2.29.dist-info → ccxt-4.2.31.dist-info}/top_level.txt +0 -0
ccxt/tokocrypto.py
CHANGED
@@ -706,7 +706,7 @@ class tokocrypto(Exchange, ImplicitAPI):
|
|
706
706
|
if permissions[j] == 'TRD_GRP_003':
|
707
707
|
active = False
|
708
708
|
break
|
709
|
-
isMarginTradingAllowed = self.
|
709
|
+
isMarginTradingAllowed = self.safe_bool(market, 'isMarginTradingAllowed', False)
|
710
710
|
entry = {
|
711
711
|
'id': id,
|
712
712
|
'lowercaseId': lowercaseId,
|
@@ -1555,7 +1555,7 @@ class tokocrypto(Exchange, ImplicitAPI):
|
|
1555
1555
|
self.load_markets()
|
1556
1556
|
market = self.market(symbol)
|
1557
1557
|
clientOrderId = self.safe_string_2(params, 'clientOrderId', 'clientId')
|
1558
|
-
postOnly = self.
|
1558
|
+
postOnly = self.safe_bool(params, 'postOnly', False)
|
1559
1559
|
# only supported for spot/margin api
|
1560
1560
|
if postOnly:
|
1561
1561
|
type = 'LIMIT_MAKER'
|
@@ -2328,7 +2328,7 @@ class tokocrypto(Exchange, ImplicitAPI):
|
|
2328
2328
|
return None # fallback to default error handler
|
2329
2329
|
# check success value for wapi endpoints
|
2330
2330
|
# response in format {'msg': 'The coin does not exist.', 'success': True/false}
|
2331
|
-
success = self.
|
2331
|
+
success = self.safe_bool(response, 'success', True)
|
2332
2332
|
if not success:
|
2333
2333
|
messageInner = self.safe_string(response, 'msg')
|
2334
2334
|
parsedMessage = None
|
ccxt/wavesexchange.py
CHANGED
@@ -408,7 +408,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
408
408
|
# "matcherFee":"4077612"
|
409
409
|
# }
|
410
410
|
# }
|
411
|
-
isDiscountFee = self.
|
411
|
+
isDiscountFee = self.safe_bool(params, 'isDiscountFee', False)
|
412
412
|
mode = None
|
413
413
|
if isDiscountFee:
|
414
414
|
mode = self.safe_value(response, 'discount')
|
@@ -2276,7 +2276,7 @@ class wavesexchange(Exchange, ImplicitAPI):
|
|
2276
2276
|
|
2277
2277
|
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
2278
2278
|
errorCode = self.safe_string(response, 'error')
|
2279
|
-
success = self.
|
2279
|
+
success = self.safe_bool(response, 'success', True)
|
2280
2280
|
Exception = self.safe_value(self.exceptions, errorCode)
|
2281
2281
|
if Exception is not None:
|
2282
2282
|
messageInner = self.safe_string(response, 'message')
|
ccxt/whitebit.py
CHANGED
@@ -32,7 +32,7 @@ class whitebit(Exchange, ImplicitAPI):
|
|
32
32
|
'name': 'WhiteBit',
|
33
33
|
'version': 'v4',
|
34
34
|
'countries': ['EE'],
|
35
|
-
'rateLimit':
|
35
|
+
'rateLimit': 50,
|
36
36
|
'pro': True,
|
37
37
|
'has': {
|
38
38
|
'CORS': None,
|
@@ -429,8 +429,8 @@ class whitebit(Exchange, ImplicitAPI):
|
|
429
429
|
currency = response[id]
|
430
430
|
# breaks down in Python due to utf8 encoding issues on the exchange side
|
431
431
|
# name = self.safe_string(currency, 'name')
|
432
|
-
canDeposit = self.
|
433
|
-
canWithdraw = self.
|
432
|
+
canDeposit = self.safe_bool(currency, 'can_deposit', True)
|
433
|
+
canWithdraw = self.safe_bool(currency, 'can_withdraw', True)
|
434
434
|
active = canDeposit and canWithdraw
|
435
435
|
code = self.safe_currency_code(id)
|
436
436
|
result[code] = {
|
ccxt/woo.py
CHANGED
@@ -1065,7 +1065,7 @@ class woo(Exchange, ImplicitAPI):
|
|
1065
1065
|
:param boolean [params.stop]: whether the order is a stop/algo order
|
1066
1066
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
1067
1067
|
"""
|
1068
|
-
stop = self.
|
1068
|
+
stop = self.safe_bool(params, 'stop', False)
|
1069
1069
|
params = self.omit(params, 'stop')
|
1070
1070
|
if not stop and (symbol is None):
|
1071
1071
|
raise ArgumentsRequired(self.id + ' cancelOrder() requires a symbol argument')
|
@@ -1214,7 +1214,7 @@ class woo(Exchange, ImplicitAPI):
|
|
1214
1214
|
request = {}
|
1215
1215
|
market: Market = None
|
1216
1216
|
stop = self.safe_value(params, 'stop')
|
1217
|
-
trailing = self.
|
1217
|
+
trailing = self.safe_bool(params, 'trailing', False)
|
1218
1218
|
params = self.omit(params, ['stop', 'trailing'])
|
1219
1219
|
if symbol is not None:
|
1220
1220
|
market = self.market(symbol)
|
@@ -1947,7 +1947,7 @@ class woo(Exchange, ImplicitAPI):
|
|
1947
1947
|
#
|
1948
1948
|
transfer = self.parse_transfer(response, currency)
|
1949
1949
|
transferOptions = self.safe_value(self.options, 'transfer', {})
|
1950
|
-
fillResponseFromRequest = self.
|
1950
|
+
fillResponseFromRequest = self.safe_bool(transferOptions, 'fillResponseFromRequest', True)
|
1951
1951
|
if fillResponseFromRequest:
|
1952
1952
|
transfer['amount'] = amount
|
1953
1953
|
transfer['fromAccount'] = fromAccount
|
ccxt/yobit.py
CHANGED
@@ -1224,7 +1224,7 @@ class yobit(Exchange, ImplicitAPI):
|
|
1224
1224
|
#
|
1225
1225
|
# To cover points 1, 2, 3 and 4 combined self handler should work like self:
|
1226
1226
|
#
|
1227
|
-
success = self.
|
1227
|
+
success = self.safe_bool(response, 'success', False)
|
1228
1228
|
if isinstance(success, str):
|
1229
1229
|
if (success == 'true') or (success == '1'):
|
1230
1230
|
success = True
|
ccxt/zaif.py
CHANGED
@@ -691,7 +691,7 @@ class zaif(Exchange, ImplicitAPI):
|
|
691
691
|
self.throw_exactly_matched_exception(self.exceptions['exact'], error, feedback)
|
692
692
|
self.throw_broadly_matched_exception(self.exceptions['broad'], error, feedback)
|
693
693
|
raise ExchangeError(feedback) # unknown message
|
694
|
-
success = self.
|
694
|
+
success = self.safe_bool(response, 'success', True)
|
695
695
|
if not success:
|
696
696
|
raise ExchangeError(feedback)
|
697
697
|
return None
|
ccxt/zonda.py
CHANGED
@@ -1399,7 +1399,7 @@ class zonda(Exchange, ImplicitAPI):
|
|
1399
1399
|
# }
|
1400
1400
|
#
|
1401
1401
|
id = self.safe_string_2(response, 'offerId', 'stopOfferId')
|
1402
|
-
completed = self.
|
1402
|
+
completed = self.safe_bool(response, 'completed', False)
|
1403
1403
|
status = 'closed' if completed else 'open'
|
1404
1404
|
transactions = self.safe_value(response, 'transactions')
|
1405
1405
|
return self.safe_order({
|
@@ -1457,7 +1457,7 @@ class zonda(Exchange, ImplicitAPI):
|
|
1457
1457
|
'EUR': True,
|
1458
1458
|
'PLN': True,
|
1459
1459
|
}
|
1460
|
-
return self.
|
1460
|
+
return self.safe_bool(fiatCurrencies, currency, False)
|
1461
1461
|
|
1462
1462
|
def parse_deposit_address(self, depositAddress, currency: Currency = None):
|
1463
1463
|
#
|
@@ -1588,7 +1588,7 @@ class zonda(Exchange, ImplicitAPI):
|
|
1588
1588
|
#
|
1589
1589
|
transfer = self.parse_transfer(response, currency)
|
1590
1590
|
transferOptions = self.safe_value(self.options, 'transfer', {})
|
1591
|
-
fillResponseFromRequest = self.
|
1591
|
+
fillResponseFromRequest = self.safe_bool(transferOptions, 'fillResponseFromRequest', True)
|
1592
1592
|
if fillResponseFromRequest:
|
1593
1593
|
transfer['amount'] = amount
|
1594
1594
|
return transfer
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.2.
|
3
|
+
Version: 4.2.31
|
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
|
@@ -70,7 +70,6 @@ Current feature list:
|
|
70
70
|
|
71
71
|
## Sponsored Promotion
|
72
72
|
|
73
|
-
[](https://x.woo.org/en/ccxt-competition-1)
|
74
73
|
|
75
74
|
## See Also
|
76
75
|
|
@@ -186,13 +185,13 @@ The CCXT library currently supports the following 94 cryptocurrency exchange mar
|
|
186
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) |
|
187
186
|
| [](https://www.okx.com/join/CCXT2023) | okx | [OKX](https://www.okx.com/join/CCXT2023) | [](https://www.okx.com/docs-v5/en/) | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
188
187
|
| [](https://onetrading.com/) | onetrading | [One Trading](https://onetrading.com/) | [](https://docs.onetrading.com) | | [](https://ccxt.pro) |
|
189
|
-
| [](https://p2pb2b.com?referral=ee784c53) | p2b | [p2b](https://p2pb2b.com?referral=ee784c53) | [](https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md) | |
|
188
|
+
| [](https://p2pb2b.com?referral=ee784c53) | p2b | [p2b](https://p2pb2b.com?referral=ee784c53) | [](https://github.com/P2B-team/p2b-api-docs/blob/master/api-doc.md) | | [](https://ccxt.pro) |
|
190
189
|
| [](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) | | |
|
191
190
|
| [](https://phemex.com/register?referralCode=EDNVJ) | phemex | [Phemex](https://phemex.com/register?referralCode=EDNVJ) | [](https://github.com/phemex/phemex-api-docs) | | [](https://ccxt.pro) |
|
192
191
|
| [](https://poloniex.com/signup?c=UBFZJRPJ) | poloniex | [Poloniex](https://poloniex.com/signup?c=UBFZJRPJ) | [](https://docs.poloniex.com) | | [](https://ccxt.pro) |
|
193
192
|
| [](https://poloniex.com/signup?c=UBFZJRPJ) | poloniexfutures | [Poloniex Futures](https://poloniex.com/signup?c=UBFZJRPJ) | [](https://futures-docs.poloniex.com) | | [](https://ccxt.pro) |
|
194
193
|
| [](https://www.probit.com/r/34608773) | probit | [ProBit](https://www.probit.com/r/34608773) | [](https://docs-en.probit.com) | | [](https://ccxt.pro) |
|
195
|
-
| [](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | timex | [TimeX](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | [](https://
|
194
|
+
| [](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | timex | [TimeX](https://timex.io/?refcode=1x27vNkTbP1uwkCck) | [](https://plasma-relay-backend.timex.io/swagger-ui/index.html) | | |
|
196
195
|
| [](https://tokocrypto.com) | tokocrypto | [Tokocrypto](https://tokocrypto.com) | [](https://www.tokocrypto.com/apidocs/) | | |
|
197
196
|
| [](https://upbit.com) | upbit | [Upbit](https://upbit.com) | [](https://docs.upbit.com/docs/%EC%9A%94%EC%B2%AD-%EC%88%98-%EC%A0%9C%ED%95%9C) | | [](https://ccxt.pro) |
|
198
197
|
| [](https://wx.network) | wavesexchange | [Waves.Exchange](https://wx.network) | [](https://docs.wx.network) | | |
|
@@ -259,13 +258,13 @@ console.log(version, Object.keys(exchanges));
|
|
259
258
|
|
260
259
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
261
260
|
|
262
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
263
|
-
* unpkg: https://unpkg.com/ccxt@4.2.
|
261
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.31/dist/ccxt.browser.js
|
262
|
+
* unpkg: https://unpkg.com/ccxt@4.2.31/dist/ccxt.browser.js
|
264
263
|
|
265
264
|
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.
|
266
265
|
|
267
266
|
```HTML
|
268
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.
|
267
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.31/dist/ccxt.browser.js"></script>
|
269
268
|
```
|
270
269
|
|
271
270
|
Creates a global `ccxt` object:
|