ccxt 4.4.86__py2.py3-none-any.whl → 4.4.88__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 +5 -1
- ccxt/abstract/modetrade.py +119 -0
- ccxt/abstract/okxus.py +349 -0
- ccxt/async_support/__init__.py +5 -1
- ccxt/async_support/base/exchange.py +8 -5
- ccxt/async_support/binance.py +1 -1
- ccxt/async_support/bitteam.py +31 -0
- ccxt/async_support/bybit.py +19 -57
- ccxt/async_support/coinmetro.py +3 -0
- ccxt/async_support/gate.py +91 -73
- ccxt/async_support/htx.py +10 -8
- ccxt/async_support/hyperliquid.py +32 -16
- ccxt/async_support/kraken.py +5 -8
- ccxt/async_support/modetrade.py +2727 -0
- ccxt/async_support/okx.py +90 -3
- ccxt/async_support/okxus.py +54 -0
- ccxt/async_support/paradex.py +4 -1
- ccxt/async_support/phemex.py +4 -6
- ccxt/async_support/poloniex.py +172 -159
- ccxt/async_support/probit.py +18 -47
- ccxt/async_support/timex.py +5 -10
- ccxt/async_support/vertex.py +3 -4
- ccxt/async_support/whitebit.py +41 -11
- ccxt/async_support/woo.py +101 -75
- ccxt/async_support/woofipro.py +25 -20
- ccxt/async_support/xt.py +31 -41
- ccxt/base/exchange.py +13 -9
- ccxt/binance.py +1 -1
- ccxt/bitteam.py +31 -0
- ccxt/bybit.py +19 -57
- ccxt/coinmetro.py +3 -0
- ccxt/gate.py +91 -73
- ccxt/htx.py +10 -8
- ccxt/hyperliquid.py +32 -16
- ccxt/kraken.py +5 -8
- ccxt/modetrade.py +2727 -0
- ccxt/okx.py +90 -3
- ccxt/okxus.py +54 -0
- ccxt/paradex.py +4 -1
- ccxt/phemex.py +4 -6
- ccxt/poloniex.py +172 -159
- ccxt/pro/__init__.py +69 -1
- ccxt/pro/modetrade.py +1271 -0
- ccxt/pro/okxus.py +38 -0
- ccxt/probit.py +18 -47
- ccxt/test/tests_async.py +17 -1
- ccxt/test/tests_sync.py +17 -1
- ccxt/timex.py +5 -10
- ccxt/vertex.py +3 -4
- ccxt/whitebit.py +41 -11
- ccxt/woo.py +100 -75
- ccxt/woofipro.py +24 -20
- ccxt/xt.py +31 -41
- {ccxt-4.4.86.dist-info → ccxt-4.4.88.dist-info}/METADATA +18 -6
- {ccxt-4.4.86.dist-info → ccxt-4.4.88.dist-info}/RECORD +58 -50
- {ccxt-4.4.86.dist-info → ccxt-4.4.88.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.86.dist-info → ccxt-4.4.88.dist-info}/WHEEL +0 -0
- {ccxt-4.4.86.dist-info → ccxt-4.4.88.dist-info}/top_level.txt +0 -0
ccxt/woofipro.py
CHANGED
@@ -633,13 +633,14 @@ class woofipro(Exchange, ImplicitAPI):
|
|
633
633
|
"""
|
634
634
|
fetches all available currencies on an exchange
|
635
635
|
|
636
|
-
https://orderly.network/docs/build-on-
|
636
|
+
https://orderly.network/docs/build-on-omnichain/evm-api/restful-api/public/get-supported-collateral-info#get-supported-collateral-info
|
637
|
+
https://orderly.network/docs/build-on-omnichain/evm-api/restful-api/public/get-supported-chains-per-builder#get-supported-chains-per-builder
|
637
638
|
|
638
639
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
639
640
|
:returns dict: an associative dictionary of currencies
|
640
641
|
"""
|
641
642
|
result: dict = {}
|
642
|
-
|
643
|
+
tokenPromise = self.v1PublicGetPublicToken(params)
|
643
644
|
#
|
644
645
|
# {
|
645
646
|
# "success": True,
|
@@ -662,25 +663,28 @@ class woofipro(Exchange, ImplicitAPI):
|
|
662
663
|
# }
|
663
664
|
# }
|
664
665
|
#
|
665
|
-
|
666
|
-
|
666
|
+
chainPromise = self.v1PublicGetPublicChainInfo(params)
|
667
|
+
tokenResponse, chainResponse = [tokenPromise, chainPromise]
|
668
|
+
tokenData = self.safe_dict(tokenResponse, 'data', {})
|
669
|
+
tokenRows = self.safe_list(tokenData, 'rows', [])
|
670
|
+
chainData = self.safe_dict(chainResponse, 'data', {})
|
671
|
+
chainRows = self.safe_list(chainData, 'rows', [])
|
672
|
+
indexedChains = self.index_by(chainRows, 'chain_id')
|
667
673
|
for i in range(0, len(tokenRows)):
|
668
674
|
token = tokenRows[i]
|
669
675
|
currencyId = self.safe_string(token, 'token')
|
670
676
|
networks = self.safe_list(token, 'chain_details')
|
671
677
|
code = self.safe_currency_code(currencyId)
|
672
|
-
minPrecision = None
|
673
678
|
resultingNetworks: dict = {}
|
674
679
|
for j in range(0, len(networks)):
|
675
|
-
|
676
|
-
|
677
|
-
|
678
|
-
|
679
|
-
|
680
|
-
|
681
|
-
resultingNetworks[networkId] = {
|
680
|
+
networkEntry = networks[j]
|
681
|
+
networkId = self.safe_string(networkEntry, 'chain_id')
|
682
|
+
networkRow = self.safe_dict(indexedChains, networkId)
|
683
|
+
networkName = self.safe_string(networkRow, 'name')
|
684
|
+
networkCode = self.network_id_to_code(networkName, code)
|
685
|
+
resultingNetworks[networkCode] = {
|
682
686
|
'id': networkId,
|
683
|
-
'network':
|
687
|
+
'network': networkCode,
|
684
688
|
'limits': {
|
685
689
|
'withdraw': {
|
686
690
|
'min': None,
|
@@ -694,15 +698,15 @@ class woofipro(Exchange, ImplicitAPI):
|
|
694
698
|
'active': None,
|
695
699
|
'deposit': None,
|
696
700
|
'withdraw': None,
|
697
|
-
'fee': self.safe_number(
|
698
|
-
'precision': self.parse_number(
|
699
|
-
'info':
|
701
|
+
'fee': self.safe_number(networkEntry, 'withdrawal_fee'),
|
702
|
+
'precision': self.parse_number(self.parse_precision(self.safe_string(networkEntry, 'decimals'))),
|
703
|
+
'info': [networkEntry, networkRow],
|
700
704
|
}
|
701
|
-
result[code] = {
|
705
|
+
result[code] = self.safe_currency_structure({
|
702
706
|
'id': currencyId,
|
703
|
-
'name':
|
707
|
+
'name': None,
|
704
708
|
'code': code,
|
705
|
-
'precision':
|
709
|
+
'precision': None,
|
706
710
|
'active': None,
|
707
711
|
'fee': None,
|
708
712
|
'networks': resultingNetworks,
|
@@ -719,7 +723,7 @@ class woofipro(Exchange, ImplicitAPI):
|
|
719
723
|
},
|
720
724
|
},
|
721
725
|
'info': token,
|
722
|
-
}
|
726
|
+
})
|
723
727
|
return result
|
724
728
|
|
725
729
|
def parse_token_and_fee_temp(self, item, feeTokenKey, feeAmountKey):
|
ccxt/xt.py
CHANGED
@@ -911,48 +911,30 @@ class xt(Exchange, ImplicitAPI):
|
|
911
911
|
entry = currenciesData[i]
|
912
912
|
currencyId = self.safe_string(entry, 'currency')
|
913
913
|
code = self.safe_currency_code(currencyId)
|
914
|
-
minPrecision = self.parse_number(self.parse_precision(self.safe_string(entry, 'maxPrecision')))
|
915
914
|
networkEntry = self.safe_value(chainsDataIndexed, currencyId, {})
|
916
915
|
rawNetworks = self.safe_value(networkEntry, 'supportChains', [])
|
917
916
|
networks = {}
|
918
|
-
minWithdrawString = None
|
919
|
-
minWithdrawFeeString = None
|
920
|
-
active = False
|
921
|
-
deposit = False
|
922
|
-
withdraw = False
|
923
917
|
for j in range(0, len(rawNetworks)):
|
924
918
|
rawNetwork = rawNetworks[j]
|
925
919
|
networkId = self.safe_string(rawNetwork, 'chain')
|
926
|
-
|
927
|
-
|
928
|
-
deposit = depositEnabled if (depositEnabled) else deposit
|
929
|
-
withdrawEnabled = self.safe_value(rawNetwork, 'withdrawEnabled')
|
930
|
-
withdraw = withdrawEnabled if (withdrawEnabled) else withdraw
|
931
|
-
networkActive = depositEnabled and withdrawEnabled
|
932
|
-
active = networkActive if (networkActive) else active
|
933
|
-
withdrawFeeString = self.safe_string(rawNetwork, 'withdrawFeeAmount')
|
934
|
-
if withdrawFeeString is not None:
|
935
|
-
minWithdrawFeeString = withdrawFeeString if (minWithdrawFeeString is None) else Precise.string_min(withdrawFeeString, minWithdrawFeeString)
|
936
|
-
minNetworkWithdrawString = self.safe_string(rawNetwork, 'withdrawMinAmount')
|
937
|
-
if minNetworkWithdrawString is not None:
|
938
|
-
minWithdrawString = minNetworkWithdrawString if (minWithdrawString is None) else Precise.string_min(minNetworkWithdrawString, minWithdrawString)
|
939
|
-
networks[network] = {
|
920
|
+
networkCode = self.network_id_to_code(networkId, code)
|
921
|
+
networks[networkCode] = {
|
940
922
|
'info': rawNetwork,
|
941
923
|
'id': networkId,
|
942
|
-
'network':
|
924
|
+
'network': networkCode,
|
943
925
|
'name': None,
|
944
|
-
'active':
|
945
|
-
'fee': self.
|
946
|
-
'precision':
|
947
|
-
'deposit': depositEnabled,
|
948
|
-
'withdraw': withdrawEnabled,
|
926
|
+
'active': None,
|
927
|
+
'fee': self.safe_number(rawNetwork, 'withdrawFeeAmount'),
|
928
|
+
'precision': None,
|
929
|
+
'deposit': self.safe_bool(rawNetwork, 'depositEnabled'),
|
930
|
+
'withdraw': self.safe_bool(rawNetwork, 'withdrawEnabled'),
|
949
931
|
'limits': {
|
950
932
|
'amount': {
|
951
933
|
'min': None,
|
952
934
|
'max': None,
|
953
935
|
},
|
954
936
|
'withdraw': {
|
955
|
-
'min': self.
|
937
|
+
'min': self.safe_number(rawNetwork, 'withdrawMinAmount'),
|
956
938
|
'max': None,
|
957
939
|
},
|
958
940
|
'deposit': {
|
@@ -967,16 +949,16 @@ class xt(Exchange, ImplicitAPI):
|
|
967
949
|
type = 'crypto'
|
968
950
|
else:
|
969
951
|
type = 'other'
|
970
|
-
result[code] = {
|
952
|
+
result[code] = self.safe_currency_structure({
|
971
953
|
'info': entry,
|
972
954
|
'id': currencyId,
|
973
955
|
'code': code,
|
974
956
|
'name': self.safe_string(entry, 'fullName'),
|
975
|
-
'active':
|
976
|
-
'fee':
|
977
|
-
'precision':
|
978
|
-
'deposit':
|
979
|
-
'withdraw':
|
957
|
+
'active': None,
|
958
|
+
'fee': None,
|
959
|
+
'precision': self.parse_number(self.parse_precision(self.safe_string(entry, 'maxPrecision'))),
|
960
|
+
'deposit': self.safe_string(entry, 'depositStatus') == '1',
|
961
|
+
'withdraw': self.safe_string(entry, 'withdrawStatus') == '1',
|
980
962
|
'networks': networks,
|
981
963
|
'type': type,
|
982
964
|
'limits': {
|
@@ -985,7 +967,7 @@ class xt(Exchange, ImplicitAPI):
|
|
985
967
|
'max': None,
|
986
968
|
},
|
987
969
|
'withdraw': {
|
988
|
-
'min':
|
970
|
+
'min': None,
|
989
971
|
'max': None,
|
990
972
|
},
|
991
973
|
'deposit': {
|
@@ -993,7 +975,7 @@ class xt(Exchange, ImplicitAPI):
|
|
993
975
|
'max': None,
|
994
976
|
},
|
995
977
|
},
|
996
|
-
}
|
978
|
+
})
|
997
979
|
return result
|
998
980
|
|
999
981
|
def fetch_markets(self, params={}) -> List[Market]:
|
@@ -2849,17 +2831,21 @@ class xt(Exchange, ImplicitAPI):
|
|
2849
2831
|
if symbol is not None:
|
2850
2832
|
market = self.market(symbol)
|
2851
2833
|
request['symbol'] = market['id']
|
2834
|
+
if limit is not None:
|
2835
|
+
request['size'] = limit
|
2836
|
+
if since is not None:
|
2837
|
+
request['startTime'] = since
|
2852
2838
|
type = None
|
2853
2839
|
subType = None
|
2854
2840
|
response = None
|
2855
2841
|
type, params = self.handle_market_type_and_params('fetchOrdersByStatus', market, params)
|
2856
2842
|
subType, params = self.handle_sub_type_and_params('fetchOrdersByStatus', market, params)
|
2857
|
-
trigger = self.
|
2843
|
+
trigger = self.safe_bool_2(params, 'stop', 'trigger')
|
2858
2844
|
stopLossTakeProfit = self.safe_value(params, 'stopLossTakeProfit')
|
2859
2845
|
if status == 'open':
|
2860
2846
|
if trigger or stopLossTakeProfit:
|
2861
2847
|
request['state'] = 'NOT_TRIGGERED'
|
2862
|
-
elif
|
2848
|
+
elif type == 'swap':
|
2863
2849
|
request['state'] = 'NEW'
|
2864
2850
|
elif status == 'closed':
|
2865
2851
|
if trigger or stopLossTakeProfit:
|
@@ -2879,7 +2865,7 @@ class xt(Exchange, ImplicitAPI):
|
|
2879
2865
|
if limit is not None:
|
2880
2866
|
request['size'] = limit
|
2881
2867
|
if trigger:
|
2882
|
-
params = self.omit(params, 'stop')
|
2868
|
+
params = self.omit(params, ['stop', 'trigger'])
|
2883
2869
|
if subType == 'inverse':
|
2884
2870
|
response = self.privateInverseGetFutureTradeV1EntrustPlanList(self.extend(request, params))
|
2885
2871
|
else:
|
@@ -2904,6 +2890,7 @@ class xt(Exchange, ImplicitAPI):
|
|
2904
2890
|
if since is not None:
|
2905
2891
|
request['startTime'] = since
|
2906
2892
|
if limit is not None:
|
2893
|
+
request = self.omit(request, 'size')
|
2907
2894
|
request['limit'] = limit
|
2908
2895
|
response = self.privateSpotGetHistoryOrder(self.extend(request, params))
|
2909
2896
|
else:
|
@@ -3086,9 +3073,12 @@ class xt(Exchange, ImplicitAPI):
|
|
3086
3073
|
# }
|
3087
3074
|
# }
|
3088
3075
|
#
|
3089
|
-
|
3090
|
-
|
3091
|
-
|
3076
|
+
orders = []
|
3077
|
+
resultDict = self.safe_dict(response, 'result')
|
3078
|
+
if resultDict is not None:
|
3079
|
+
orders = self.safe_list(resultDict, 'items', [])
|
3080
|
+
else:
|
3081
|
+
orders = self.safe_list(response, 'result')
|
3092
3082
|
return self.parse_orders(orders, market, since, limit)
|
3093
3083
|
|
3094
3084
|
def fetch_open_orders(self, symbol: str = None, since: Int = None, limit: Int = None, params={}):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.4.
|
3
|
+
Version: 4.4.88
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -49,7 +49,7 @@ Requires-Dist: mypy==1.6.1; extra == "type"
|
|
49
49
|
|
50
50
|
# CCXT – CryptoCurrency eXchange Trading Library
|
51
51
|
|
52
|
-
[](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://www.npmjs.com/package/ccxt) [](https://npmjs.com/package/ccxt) [](https://pypi.python.org/pypi/ccxt) [](https://www.nuget.org/packages/ccxt) [](https://godoc.org/github.com/ccxt/ccxt/go/v4) [](https://discord.gg/ccxt) [](https://github.com/ccxt/ccxt/wiki/Exchange-Markets) [](https://x.com/ccxt_official)
|
53
53
|
|
54
54
|
A `JavaScript` / `Python` / `PHP` / `C#` / `Go` library for cryptocurrency trading and e-commerce with support for many bitcoin/ether/altcoin exchange markets and merchant APIs.
|
55
55
|
|
@@ -67,6 +67,15 @@ Current feature list:
|
|
67
67
|
- an out of the box unified API that is extremely easy to integrate
|
68
68
|
- works in Node 10.4+, Python 3, PHP 8.1+, netstandard2.0/2.1, Go 1.20+ and web browsers
|
69
69
|
|
70
|
+
## Disclaimer
|
71
|
+
|
72
|
+
CCXT is not a service nor a server. CCXT is a software. **CCXT is a free open source non-custodian API broker software under MIT license**.
|
73
|
+
|
74
|
+
- **Non-custodian** means CCXT is not an intermediary in trading, it does not hold traders' money at any point in time, traders install CCXT and use CCXT to talk to exchanges directly.
|
75
|
+
- **MIT license** means CCXT can be used for any purpose, but use at your own risk without any warranties.
|
76
|
+
- **API broker** means CCXT is funded with rebates from exchanges' API broker programs and it is an official API broker with many exchanges. Broker rebates from trading fees range from 30% to 65%. All rebates and related fees are handled by the exchanges solely in accordance with exchanges' respective terms and conditions established by each partner exchange.
|
77
|
+
- **Free software** means CCXT is free to use and has no hidden fees, with CCXT traders pay the same trading fees they would pay to the exchanges directly.
|
78
|
+
- **Open source** means anyone is allowed to use it, to look inside the code and to change everything, including other brokers.
|
70
79
|
|
71
80
|
## See Also
|
72
81
|
|
@@ -97,12 +106,13 @@ Current feature list:
|
|
97
106
|
| [](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) | |
|
98
107
|
| [](https://futures.kucoin.com/?rcode=E5wkqe) | kucoinfutures | [KuCoin Futures](https://futures.kucoin.com/?rcode=E5wkqe) | [](https://docs.kucoin.com/futures) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
99
108
|
| [](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | mexc | [MEXC Global](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | [](https://mexcdevelop.github.io/apidocs/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | |
|
109
|
+
| [](https://trade.mode.network?ref=MODETRADE) | modetrade | [Mode Trade](https://trade.mode.network?ref=MODETRADE) | [](undefined) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://trade.mode.network?ref=MODETRADE) |
|
100
110
|
| [](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) | [](https://www.okx.com/join/CCXT2023) |
|
101
111
|
| [](https://woox.io/register?ref=DIJT0CNL) | woo | [WOO X](https://woox.io/register?ref=DIJT0CNL) | [](https://docs.woox.io/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://woox.io/register?ref=DIJT0CNL) |
|
102
112
|
| [](https://dex.woo.org/en/trade?ref=CCXT) | woofipro | [WOOFI PRO](https://dex.woo.org/en/trade?ref=CCXT) | [](https://orderly.network/docs/build-on-evm/building-on-evm) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) | [](https://dex.woo.org/en/trade?ref=CCXT) |
|
103
113
|
|
104
114
|
## Supported Cryptocurrency Exchanges
|
105
|
-
<!--- init list -->The CCXT library currently supports the following
|
115
|
+
<!--- init list -->The CCXT library currently supports the following 103 cryptocurrency exchange markets and trading APIs:
|
106
116
|
|
107
117
|
|logo |id |name |ver |type |certified |pro |
|
108
118
|
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
|
@@ -180,12 +190,14 @@ Current feature list:
|
|
180
190
|
| [](https://www.luno.com/invite/44893A) | luno | [luno](https://www.luno.com/invite/44893A) | [](https://www.luno.com/en/api) |  | | [](https://ccxt.pro) |
|
181
191
|
| [](https://www.mercadobitcoin.com.br) | mercado | [Mercado Bitcoin](https://www.mercadobitcoin.com.br) | [](https://www.mercadobitcoin.com.br/api-doc) |  | | |
|
182
192
|
| [](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | mexc | [MEXC Global](https://www.mexc.com/register?inviteCode=mexc-1FQ1GNu1) | [](https://mexcdevelop.github.io/apidocs/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
193
|
+
| [](https://trade.mode.network?ref=MODETRADE) | modetrade | [Mode Trade](https://trade.mode.network?ref=MODETRADE) | [](undefined) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
183
194
|
| [](https://www.my.okx.com/join/CCXT2023) | myokx | [MyOKX (EEA)](https://www.my.okx.com/join/CCXT2023) | [](https://my.okx.com/docs-v5/en/#overview) |  | | [](https://ccxt.pro) |
|
184
195
|
| [](https://one.ndax.io/bfQiSL) | ndax | [NDAX](https://one.ndax.io/bfQiSL) | [](https://apidoc.ndax.io/) |  | | [](https://ccxt.pro) |
|
185
196
|
| [](https://www.novadax.com.br/?s=ccxt) | novadax | [NovaDAX](https://www.novadax.com.br/?s=ccxt) | [](https://doc.novadax.com/pt-BR/) |  | | |
|
186
197
|
| [](https://oceanex.pro/signup?referral=VE24QX) | oceanex | [OceanEx](https://oceanex.pro/signup?referral=VE24QX) | [](https://api.oceanex.pro/doc/v1) |  | | |
|
187
198
|
| [](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) |
|
188
199
|
| [](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) |
|
200
|
+
| [](https://www.app.okx.com/join/CCXT2023) | okxus | [OKX (US)](https://www.app.okx.com/join/CCXT2023) | [](https://app.okx.com/docs-v5/en/#overview) |  | | [](https://ccxt.pro) |
|
189
201
|
| [](https://onetrading.com/) | onetrading | [One Trading](https://onetrading.com/) | [](https://docs.onetrading.com) |  | | [](https://ccxt.pro) |
|
190
202
|
| [](https://ox.fun/register?shareAccountId=5ZUD4a7G) | oxfun | [OXFUN](https://ox.fun/register?shareAccountId=5ZUD4a7G) | [](https://docs.ox.fun/) |  | | [](https://ccxt.pro) |
|
191
203
|
| [](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) |
|
@@ -268,13 +280,13 @@ console.log(version, Object.keys(exchanges));
|
|
268
280
|
|
269
281
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
270
282
|
|
271
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
272
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
283
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.88/dist/ccxt.browser.min.js
|
284
|
+
* unpkg: https://unpkg.com/ccxt@4.4.88/dist/ccxt.browser.min.js
|
273
285
|
|
274
286
|
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.
|
275
287
|
|
276
288
|
```HTML
|
277
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
289
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.88/dist/ccxt.browser.min.js"></script>
|
278
290
|
```
|
279
291
|
|
280
292
|
Creates a global `ccxt` object:
|