ccxt 4.4.75__py2.py3-none-any.whl → 4.4.77__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/myokx.py +4 -0
- ccxt/abstract/okx.py +4 -0
- ccxt/abstract/upbit.py +51 -37
- ccxt/abstract/xt.py +3 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +2 -2
- ccxt/async_support/binance.py +36 -214
- ccxt/async_support/bitget.py +1 -1
- ccxt/async_support/bitrue.py +48 -0
- ccxt/async_support/coinex.py +2 -0
- ccxt/async_support/coinlist.py +85 -2
- ccxt/async_support/okx.py +20 -8
- ccxt/async_support/paradex.py +3 -8
- ccxt/async_support/upbit.py +64 -46
- ccxt/async_support/xt.py +106 -3
- ccxt/base/errors.py +0 -6
- ccxt/base/exchange.py +8 -2
- ccxt/binance.py +36 -214
- ccxt/bitget.py +1 -1
- ccxt/bitrue.py +48 -0
- ccxt/coinex.py +2 -0
- ccxt/coinlist.py +85 -2
- ccxt/okx.py +20 -8
- ccxt/paradex.py +3 -8
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/hyperliquid.py +1 -1
- ccxt/test/tests_async.py +23 -0
- ccxt/test/tests_sync.py +23 -0
- ccxt/upbit.py +64 -46
- ccxt/xt.py +106 -3
- {ccxt-4.4.75.dist-info → ccxt-4.4.77.dist-info}/METADATA +4 -4
- {ccxt-4.4.75.dist-info → ccxt-4.4.77.dist-info}/RECORD +36 -36
- {ccxt-4.4.75.dist-info → ccxt-4.4.77.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.75.dist-info → ccxt-4.4.77.dist-info}/WHEEL +0 -0
- {ccxt-4.4.75.dist-info → ccxt-4.4.77.dist-info}/top_level.txt +0 -0
ccxt/test/tests_async.py
CHANGED
@@ -1094,6 +1094,26 @@ class testMainClass:
|
|
1094
1094
|
sum = exchange.sum(sum, results_length)
|
1095
1095
|
return sum
|
1096
1096
|
|
1097
|
+
def check_if_exchange_is_disabled(self, exchange_name, exchange_data):
|
1098
|
+
exchange = init_exchange('Exchange', {})
|
1099
|
+
is_disabled_py = exchange.safe_bool(exchange_data, 'disabledPy', False)
|
1100
|
+
if is_disabled_py and (self.lang == 'PY'):
|
1101
|
+
dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in python')
|
1102
|
+
return True
|
1103
|
+
is_disabled_php = exchange.safe_bool(exchange_data, 'disabledPHP', False)
|
1104
|
+
if is_disabled_php and (self.lang == 'PHP'):
|
1105
|
+
dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in php')
|
1106
|
+
return True
|
1107
|
+
is_disabled_c_sharp = exchange.safe_bool(exchange_data, 'disabledCS', False)
|
1108
|
+
if is_disabled_c_sharp and (self.lang == 'C#'):
|
1109
|
+
dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in c#')
|
1110
|
+
return True
|
1111
|
+
is_disabled_go = exchange.safe_bool(exchange_data, 'disabledGO', False)
|
1112
|
+
if is_disabled_go and (self.lang == 'GO'):
|
1113
|
+
dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in go')
|
1114
|
+
return True
|
1115
|
+
return False
|
1116
|
+
|
1097
1117
|
async def run_static_request_tests(self, target_exchange=None, test_name=None):
|
1098
1118
|
await self.run_static_tests('request', target_exchange, test_name)
|
1099
1119
|
return True
|
@@ -1114,6 +1134,9 @@ class testMainClass:
|
|
1114
1134
|
for i in range(0, len(exchanges)):
|
1115
1135
|
exchange_name = exchanges[i]
|
1116
1136
|
exchange_data = static_data[exchange_name]
|
1137
|
+
disabled = self.check_if_exchange_is_disabled(exchange_name, exchange_data)
|
1138
|
+
if disabled:
|
1139
|
+
continue
|
1117
1140
|
number_of_tests = self.get_number_of_tests_from_exchange(exchange, exchange_data, test_name)
|
1118
1141
|
sum = exchange.sum(sum, number_of_tests)
|
1119
1142
|
if type == 'request':
|
ccxt/test/tests_sync.py
CHANGED
@@ -1091,6 +1091,26 @@ class testMainClass:
|
|
1091
1091
|
sum = exchange.sum(sum, results_length)
|
1092
1092
|
return sum
|
1093
1093
|
|
1094
|
+
def check_if_exchange_is_disabled(self, exchange_name, exchange_data):
|
1095
|
+
exchange = init_exchange('Exchange', {})
|
1096
|
+
is_disabled_py = exchange.safe_bool(exchange_data, 'disabledPy', False)
|
1097
|
+
if is_disabled_py and (self.lang == 'PY'):
|
1098
|
+
dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in python')
|
1099
|
+
return True
|
1100
|
+
is_disabled_php = exchange.safe_bool(exchange_data, 'disabledPHP', False)
|
1101
|
+
if is_disabled_php and (self.lang == 'PHP'):
|
1102
|
+
dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in php')
|
1103
|
+
return True
|
1104
|
+
is_disabled_c_sharp = exchange.safe_bool(exchange_data, 'disabledCS', False)
|
1105
|
+
if is_disabled_c_sharp and (self.lang == 'C#'):
|
1106
|
+
dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in c#')
|
1107
|
+
return True
|
1108
|
+
is_disabled_go = exchange.safe_bool(exchange_data, 'disabledGO', False)
|
1109
|
+
if is_disabled_go and (self.lang == 'GO'):
|
1110
|
+
dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in go')
|
1111
|
+
return True
|
1112
|
+
return False
|
1113
|
+
|
1094
1114
|
def run_static_request_tests(self, target_exchange=None, test_name=None):
|
1095
1115
|
self.run_static_tests('request', target_exchange, test_name)
|
1096
1116
|
return True
|
@@ -1111,6 +1131,9 @@ class testMainClass:
|
|
1111
1131
|
for i in range(0, len(exchanges)):
|
1112
1132
|
exchange_name = exchanges[i]
|
1113
1133
|
exchange_data = static_data[exchange_name]
|
1134
|
+
disabled = self.check_if_exchange_is_disabled(exchange_name, exchange_data)
|
1135
|
+
if disabled:
|
1136
|
+
continue
|
1114
1137
|
number_of_tests = self.get_number_of_tests_from_exchange(exchange, exchange_data, test_name)
|
1115
1138
|
sum = exchange.sum(sum, number_of_tests)
|
1116
1139
|
if type == 'request':
|
ccxt/upbit.py
CHANGED
@@ -28,7 +28,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
28
28
|
'name': 'Upbit',
|
29
29
|
'countries': ['KR'],
|
30
30
|
'version': 'v1',
|
31
|
-
'rateLimit':
|
31
|
+
'rateLimit': 50,
|
32
32
|
'pro': True,
|
33
33
|
# new metainfo interface
|
34
34
|
'has': {
|
@@ -83,6 +83,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
83
83
|
'withdraw': True,
|
84
84
|
},
|
85
85
|
'timeframes': {
|
86
|
+
'1s': 'seconds',
|
86
87
|
'1m': 'minutes',
|
87
88
|
'3m': 'minutes',
|
88
89
|
'5m': 'minutes',
|
@@ -94,6 +95,7 @@ class upbit(Exchange, ImplicitAPI):
|
|
94
95
|
'1d': 'days',
|
95
96
|
'1w': 'weeks',
|
96
97
|
'1M': 'months',
|
98
|
+
'1y': 'years',
|
97
99
|
},
|
98
100
|
'hostname': 'api.upbit.com',
|
99
101
|
'urls': {
|
@@ -107,54 +109,70 @@ class upbit(Exchange, ImplicitAPI):
|
|
107
109
|
'fees': 'https://upbit.com/service_center/guide',
|
108
110
|
},
|
109
111
|
'api': {
|
112
|
+
# 'endpoint','API Cost'
|
113
|
+
# cost = 1000 / (rateLimit * RPS)
|
110
114
|
'public': {
|
111
|
-
'get':
|
112
|
-
'market/all',
|
113
|
-
'candles/{timeframe}',
|
114
|
-
'candles/{timeframe}/{unit}',
|
115
|
-
'candles/
|
116
|
-
'candles/minutes/
|
117
|
-
'candles/minutes/
|
118
|
-
'candles/minutes/
|
119
|
-
'candles/minutes/
|
120
|
-
'candles/minutes/
|
121
|
-
'candles/minutes/
|
122
|
-
'candles/minutes/
|
123
|
-
'candles/minutes/
|
124
|
-
'candles/
|
125
|
-
'candles/
|
126
|
-
'candles/
|
127
|
-
'
|
128
|
-
'
|
129
|
-
'
|
130
|
-
|
115
|
+
'get': {
|
116
|
+
'market/all': 2, # RPS: 10
|
117
|
+
'candles/{timeframe}': 2,
|
118
|
+
'candles/{timeframe}/{unit}': 2,
|
119
|
+
'candles/seconds': 2,
|
120
|
+
'candles/minutes/{unit}': 2,
|
121
|
+
'candles/minutes/1': 2,
|
122
|
+
'candles/minutes/3': 2,
|
123
|
+
'candles/minutes/5': 2,
|
124
|
+
'candles/minutes/10': 2,
|
125
|
+
'candles/minutes/15': 2,
|
126
|
+
'candles/minutes/30': 2,
|
127
|
+
'candles/minutes/60': 2,
|
128
|
+
'candles/minutes/240': 2,
|
129
|
+
'candles/days': 2,
|
130
|
+
'candles/weeks': 2,
|
131
|
+
'candles/months': 2,
|
132
|
+
'candles/years': 2,
|
133
|
+
'trades/ticks': 2,
|
134
|
+
'ticker': 2,
|
135
|
+
'ticker/all': 2,
|
136
|
+
'orderbook': 2,
|
137
|
+
'orderbook/supported_levels': 2, # Upbit KR only
|
138
|
+
},
|
131
139
|
},
|
132
140
|
'private': {
|
133
|
-
'get':
|
134
|
-
'accounts',
|
135
|
-
'orders/chance',
|
136
|
-
'order',
|
137
|
-
'orders',
|
138
|
-
'orders/
|
139
|
-
'orders/
|
140
|
-
'
|
141
|
-
'
|
142
|
-
'
|
143
|
-
'withdraws/
|
144
|
-
'deposits',
|
145
|
-
'
|
146
|
-
'
|
147
|
-
'deposits/
|
148
|
-
|
149
|
-
|
150
|
-
'
|
151
|
-
'
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
'
|
157
|
-
|
141
|
+
'get': {
|
142
|
+
'accounts': 0.67, # RPS: 30
|
143
|
+
'orders/chance': 0.67,
|
144
|
+
'order': 0.67,
|
145
|
+
'orders/closed': 0.67,
|
146
|
+
'orders/open': 0.67,
|
147
|
+
'orders/uuids': 0.67,
|
148
|
+
'withdraws': 0.67,
|
149
|
+
'withdraw': 0.67,
|
150
|
+
'withdraws/chance': 0.67,
|
151
|
+
'withdraws/coin_addresses': 0.67,
|
152
|
+
'deposits': 0.67,
|
153
|
+
'deposits/chance/coin': 0.67,
|
154
|
+
'deposit': 0.67,
|
155
|
+
'deposits/coin_addresses': 0.67,
|
156
|
+
'deposits/coin_address': 0.67,
|
157
|
+
'travel_rule/vasps': 0.67,
|
158
|
+
'status/wallet': 0.67, # Upbit KR only
|
159
|
+
'api_keys': 0.67, # Upbit KR only
|
160
|
+
},
|
161
|
+
'post': {
|
162
|
+
'orders': 2.5, # RPS: 8
|
163
|
+
'orders/cancel_and_new': 2.5, # RPS: 8
|
164
|
+
'withdraws/coin': 0.67,
|
165
|
+
'withdraws/krw': 0.67, # Upbit KR only.
|
166
|
+
'deposits/krw': 0.67, # Upbit KR only.
|
167
|
+
'deposits/generate_coin_address': 0.67,
|
168
|
+
'travel_rule/deposit/uuid': 0.67, # RPS: 30, but each deposit can only be queried once every 10 minutes
|
169
|
+
'travel_rule/deposit/txid': 0.67, # RPS: 30, but each deposit can only be queried once every 10 minutes
|
170
|
+
},
|
171
|
+
'delete': {
|
172
|
+
'order': 0.67,
|
173
|
+
'orders/open': 40, # RPS: 0.5
|
174
|
+
'orders/uuids': 0.67,
|
175
|
+
},
|
158
176
|
},
|
159
177
|
},
|
160
178
|
'fees': {
|
ccxt/xt.py
CHANGED
@@ -58,7 +58,7 @@ class xt(Exchange, ImplicitAPI):
|
|
58
58
|
'createOrder': True,
|
59
59
|
'createPostOnlyOrder': False,
|
60
60
|
'createReduceOnlyOrder': True,
|
61
|
-
'editOrder':
|
61
|
+
'editOrder': True,
|
62
62
|
'fetchAccounts': False,
|
63
63
|
'fetchBalance': True,
|
64
64
|
'fetchBidsAsks': True,
|
@@ -245,6 +245,9 @@ class xt(Exchange, ImplicitAPI):
|
|
245
245
|
'open-order': 1,
|
246
246
|
'order/{orderId}': 1,
|
247
247
|
},
|
248
|
+
'put': {
|
249
|
+
'order/{orderId}': 1,
|
250
|
+
},
|
248
251
|
},
|
249
252
|
'linear': {
|
250
253
|
'get': {
|
@@ -279,6 +282,7 @@ class xt(Exchange, ImplicitAPI):
|
|
279
282
|
'future/trade/v1/order/cancel-all': 1,
|
280
283
|
'future/trade/v1/order/create': 1,
|
281
284
|
'future/trade/v1/order/create-batch': 1,
|
285
|
+
'future/trade/v1/order/update': 1,
|
282
286
|
'future/user/v1/account/open': 1,
|
283
287
|
'future/user/v1/position/adjust-leverage': 1,
|
284
288
|
'future/user/v1/position/auto-margin': 1,
|
@@ -322,6 +326,7 @@ class xt(Exchange, ImplicitAPI):
|
|
322
326
|
'future/trade/v1/order/cancel-all': 1,
|
323
327
|
'future/trade/v1/order/create': 1,
|
324
328
|
'future/trade/v1/order/create-batch': 1,
|
329
|
+
'future/trade/v1/order/update': 1,
|
325
330
|
'future/user/v1/account/open': 1,
|
326
331
|
'future/user/v1/position/adjust-leverage': 1,
|
327
332
|
'future/user/v1/position/auto-margin': 1,
|
@@ -3337,7 +3342,7 @@ class xt(Exchange, ImplicitAPI):
|
|
3337
3342
|
# "cancelId": "208322474307982720"
|
3338
3343
|
# }
|
3339
3344
|
#
|
3340
|
-
# swap and future: createOrder, cancelOrder
|
3345
|
+
# swap and future: createOrder, cancelOrder, editOrder
|
3341
3346
|
#
|
3342
3347
|
# {
|
3343
3348
|
# "returnCode": 0,
|
@@ -3442,6 +3447,14 @@ class xt(Exchange, ImplicitAPI):
|
|
3442
3447
|
# "createdTime": 1681273420039
|
3443
3448
|
# }
|
3444
3449
|
#
|
3450
|
+
# spot editOrder
|
3451
|
+
#
|
3452
|
+
# {
|
3453
|
+
# "orderId": "484203027161892224",
|
3454
|
+
# "modifyId": "484203544105344000",
|
3455
|
+
# "clientModifyId": null
|
3456
|
+
# }
|
3457
|
+
#
|
3445
3458
|
marketId = self.safe_string(order, 'symbol')
|
3446
3459
|
marketType = ('result' in order) or 'contract' if ('positionSide' in order) else 'spot'
|
3447
3460
|
market = self.safe_market(marketId, market, None, marketType)
|
@@ -3455,7 +3468,7 @@ class xt(Exchange, ImplicitAPI):
|
|
3455
3468
|
return self.safe_order({
|
3456
3469
|
'info': order,
|
3457
3470
|
'id': self.safe_string_n(order, ['orderId', 'result', 'cancelId', 'entrustId', 'profitId']),
|
3458
|
-
'clientOrderId': self.
|
3471
|
+
'clientOrderId': self.safe_string_2(order, 'clientOrderId', 'clientModifyId'),
|
3459
3472
|
'timestamp': timestamp,
|
3460
3473
|
'datetime': self.iso8601(timestamp),
|
3461
3474
|
'lastTradeTimestamp': lastUpdatedTimestamp,
|
@@ -4678,6 +4691,94 @@ class xt(Exchange, ImplicitAPI):
|
|
4678
4691
|
#
|
4679
4692
|
return response # unify return type
|
4680
4693
|
|
4694
|
+
def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}) -> Order:
|
4695
|
+
"""
|
4696
|
+
cancels an order and places a new order
|
4697
|
+
|
4698
|
+
https://doc.xt.com/#orderorderUpdate
|
4699
|
+
https://doc.xt.com/#futures_orderupdate
|
4700
|
+
https://doc.xt.com/#futures_entrustupdateProfit
|
4701
|
+
|
4702
|
+
:param str id: order id
|
4703
|
+
:param str symbol: unified symbol of the market to create an order in
|
4704
|
+
:param str type: 'market' or 'limit'
|
4705
|
+
:param str side: 'buy' or 'sell'
|
4706
|
+
:param float amount: how much of the currency you want to trade in units of the base currency
|
4707
|
+
:param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
4708
|
+
:param dict [params]: extra parameters specific to the exchange API endpoint
|
4709
|
+
:param float [params.stopLoss]: price to set a stop-loss on an open position
|
4710
|
+
:param float [params.takeProfit]: price to set a take-profit on an open position
|
4711
|
+
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
4712
|
+
"""
|
4713
|
+
if amount is None:
|
4714
|
+
raise ArgumentsRequired(self.id + ' editOrder() requires an amount argument')
|
4715
|
+
self.load_markets()
|
4716
|
+
market = self.market(symbol)
|
4717
|
+
request = {}
|
4718
|
+
stopLoss = self.safe_number_2(params, 'stopLoss', 'triggerStopPrice')
|
4719
|
+
takeProfit = self.safe_number_2(params, 'takeProfit', 'triggerProfitPrice')
|
4720
|
+
params = self.omit(params, ['stopLoss', 'takeProfit'])
|
4721
|
+
isStopLoss = (stopLoss is not None)
|
4722
|
+
isTakeProfit = (takeProfit is not None)
|
4723
|
+
if isStopLoss or isTakeProfit:
|
4724
|
+
request['profitId'] = id
|
4725
|
+
else:
|
4726
|
+
request['orderId'] = id
|
4727
|
+
request['price'] = self.price_to_precision(symbol, price)
|
4728
|
+
response = None
|
4729
|
+
if market['swap']:
|
4730
|
+
if isStopLoss:
|
4731
|
+
request['triggerStopPrice'] = self.price_to_precision(symbol, stopLoss)
|
4732
|
+
elif takeProfit is not None:
|
4733
|
+
request['triggerProfitPrice'] = self.price_to_precision(symbol, takeProfit)
|
4734
|
+
else:
|
4735
|
+
request['origQty'] = self.amount_to_precision(symbol, amount)
|
4736
|
+
subType = None
|
4737
|
+
subType, params = self.handle_sub_type_and_params('editOrder', market, params)
|
4738
|
+
if subType == 'inverse':
|
4739
|
+
if isStopLoss or isTakeProfit:
|
4740
|
+
response = self.privateInversePostFutureTradeV1EntrustUpdateProfitStop(self.extend(request, params))
|
4741
|
+
else:
|
4742
|
+
response = self.privateInversePostFutureTradeV1OrderUpdate(self.extend(request, params))
|
4743
|
+
#
|
4744
|
+
# {
|
4745
|
+
# "returnCode": 0,
|
4746
|
+
# "msgInfo": "success",
|
4747
|
+
# "error": null,
|
4748
|
+
# "result": "483869474947826752"
|
4749
|
+
# }
|
4750
|
+
#
|
4751
|
+
else:
|
4752
|
+
if isStopLoss or isTakeProfit:
|
4753
|
+
response = self.privateLinearPostFutureTradeV1EntrustUpdateProfitStop(self.extend(request, params))
|
4754
|
+
else:
|
4755
|
+
response = self.privateLinearPostFutureTradeV1OrderUpdate(self.extend(request, params))
|
4756
|
+
#
|
4757
|
+
# {
|
4758
|
+
# "returnCode": 0,
|
4759
|
+
# "msgInfo": "success",
|
4760
|
+
# "error": null,
|
4761
|
+
# "result": "483869474947826752"
|
4762
|
+
# }
|
4763
|
+
#
|
4764
|
+
else:
|
4765
|
+
request['quantity'] = self.amount_to_precision(symbol, amount)
|
4766
|
+
response = self.privateSpotPutOrderOrderId(self.extend(request, params))
|
4767
|
+
#
|
4768
|
+
# {
|
4769
|
+
# "rc": 0,
|
4770
|
+
# "mc": "SUCCESS",
|
4771
|
+
# "ma": [],
|
4772
|
+
# "result": {
|
4773
|
+
# "orderId": "484203027161892224",
|
4774
|
+
# "modifyId": "484203544105344000",
|
4775
|
+
# "clientModifyId": null
|
4776
|
+
# }
|
4777
|
+
# }
|
4778
|
+
#
|
4779
|
+
result = response if (market['swap']) else self.safe_dict(response, 'result', {})
|
4780
|
+
return self.parse_order(result, market)
|
4781
|
+
|
4681
4782
|
def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
|
4682
4783
|
#
|
4683
4784
|
# spot: error
|
@@ -4775,6 +4876,8 @@ class xt(Exchange, ImplicitAPI):
|
|
4775
4876
|
else:
|
4776
4877
|
body['media'] = id
|
4777
4878
|
isUndefinedBody = ((method == 'GET') or (path == 'order/{orderId}') or (path == 'ws-token'))
|
4879
|
+
if (method == 'PUT') and (endpoint == 'spot'):
|
4880
|
+
isUndefinedBody = False
|
4778
4881
|
body = None if isUndefinedBody else self.json(body)
|
4779
4882
|
payloadString = None
|
4780
4883
|
if (endpoint == 'spot') or (endpoint == 'user'):
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.4.
|
3
|
+
Version: 4.4.77
|
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
|
@@ -275,13 +275,13 @@ console.log(version, Object.keys(exchanges));
|
|
275
275
|
|
276
276
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
277
277
|
|
278
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
279
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
278
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.77/dist/ccxt.browser.min.js
|
279
|
+
* unpkg: https://unpkg.com/ccxt@4.4.77/dist/ccxt.browser.min.js
|
280
280
|
|
281
281
|
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.
|
282
282
|
|
283
283
|
```HTML
|
284
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
284
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.77/dist/ccxt.browser.min.js"></script>
|
285
285
|
```
|
286
286
|
|
287
287
|
Creates a global `ccxt` object:
|
@@ -1,10 +1,10 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=ug1xlCb9HHaHpToG4GsCC-hLol9yTo-zUzYu27EReU0,16370
|
2
2
|
ccxt/ace.py,sha256=waqSDmnGLRzi_0YjNNv93r1zC0v58yoVbKxNImhx-iM,46490
|
3
3
|
ccxt/alpaca.py,sha256=S-PvXknJDcYUqHZWg4isZKGbTa8oU2G4Z0BqbvObNPI,80687
|
4
4
|
ccxt/ascendex.py,sha256=XZnzDjRSe1_EKkzg1xZeyc4-aRPa56UqP8ObkMUfPHA,156277
|
5
5
|
ccxt/bequant.py,sha256=pH1kcVZs4JMBa-fqei_arIIp9hlRQK8kYpyYrIM1K_w,1218
|
6
6
|
ccxt/bigone.py,sha256=3FADYcYU_fryjR1a3EoLFc4VRnY5pa7bUaWx1gnoA-s,95960
|
7
|
-
ccxt/binance.py,sha256=
|
7
|
+
ccxt/binance.py,sha256=cCp-yOcZ69UPEHdONdAJ0Uj0BLHu2sgKs5i_Bo9z7dw,679826
|
8
8
|
ccxt/binancecoinm.py,sha256=UEJd_dZQkrLdJpaCE_t9aHCwJdxpjheyTaWJ8RKWIm8,1720
|
9
9
|
ccxt/binanceus.py,sha256=fPaJxinZbmJbrXMW1aYW32n6fXX_VL7odjLEng77wdI,9500
|
10
10
|
ccxt/binanceusdm.py,sha256=U962JuxLu2_GXtWke4m-kLjtYRF-4H9ZlZ87FpXPYHo,2651
|
@@ -16,13 +16,13 @@ ccxt/bitcoincom.py,sha256=kpGs1gz2443UrgEsWYeCR5L6FJyYqK5XLmFWaL-I0xM,541
|
|
16
16
|
ccxt/bitfinex.py,sha256=fwh4ENtKOMlPI3UtE1urj71r220zz6v4tT1kMLUk5o8,166096
|
17
17
|
ccxt/bitfinex1.py,sha256=cC6NuPoQlWY5RoTnoRRgNK8yCr1GbF1NrOaZ341ZOkc,74223
|
18
18
|
ccxt/bitflyer.py,sha256=Z0HxGjHf49mVHxYDralmWzpv8_sj1n4gDQ42iXwdt5c,46898
|
19
|
-
ccxt/bitget.py,sha256=
|
19
|
+
ccxt/bitget.py,sha256=xca5rZB86lFC97YDAcaS7Z969vvllXo5XghofwHA7wY,436194
|
20
20
|
ccxt/bithumb.py,sha256=GHYK_Xwzk9nwINHN1lhnRvnTX8mL98RZQ3Khz213A1s,51640
|
21
21
|
ccxt/bitmart.py,sha256=OD4GvkRT4GgUz4E9yJOxMkGBuvXkUDikjRexNrFd-fw,247895
|
22
22
|
ccxt/bitmex.py,sha256=bCgSeL8i0djDfb5aPXVljngTmmMpx73Cp6Kou5ngDGw,131447
|
23
23
|
ccxt/bitopro.py,sha256=gU96cIA_XJKLFiUTu89QGdFio1yCeCLXKR4u8-fczJQ,75177
|
24
24
|
ccxt/bitpanda.py,sha256=X1xluJEGWtDs5ovAf8djIMZNW-V-3brs4UjdqiWoanE,510
|
25
|
-
ccxt/bitrue.py,sha256=
|
25
|
+
ccxt/bitrue.py,sha256=46B-WXWS2AHxCS-FPdfgQWcjeeOz1_cLPVigMNf3VSQ,141898
|
26
26
|
ccxt/bitso.py,sha256=e2_gds0NESHx1EyRmQDwGPKBJu_-wRmZ06PuSxT3yy0,74161
|
27
27
|
ccxt/bitstamp.py,sha256=nus2MaPtVHbewqnexouhrDRmlCSL7EwaPz8FD3cZEEQ,95597
|
28
28
|
ccxt/bitteam.py,sha256=8vxluU2p50rTg9XzQTsWLH3Fye-F79DmZhvza_Xk9h0,105198
|
@@ -42,8 +42,8 @@ ccxt/coinbaseexchange.py,sha256=hsAIZ-PBgCQfxuiGWUgrUtgEavcTr9Kwd0Sd36WH26E,8239
|
|
42
42
|
ccxt/coinbaseinternational.py,sha256=VH3RCIjvr9Y1FH-qcry92faMAEOzLR67XADKWjLDSV4,100805
|
43
43
|
ccxt/coincatch.py,sha256=hCZCgNDEX496Xtos1QIdrFrH-IUPG2ZRkHRIGcujECk,244228
|
44
44
|
ccxt/coincheck.py,sha256=CAuMcY3JvLbwpGHR4W1qUt-P7zKRqRRLsObxK5C9I0I,38011
|
45
|
-
ccxt/coinex.py,sha256=
|
46
|
-
ccxt/coinlist.py,sha256=
|
45
|
+
ccxt/coinex.py,sha256=IPejRe0nDfFZ6McaFK9z9tqCjIb3jIPoKnYuHRhbs4s,267291
|
46
|
+
ccxt/coinlist.py,sha256=mHdefumNxcxKdc-z8qdkIYXkJtZgGz2aHkyq2HDKsJ4,114079
|
47
47
|
ccxt/coinmate.py,sha256=ZbhFH_ALCbB9UpkSFlyh8RP4ZiLH7IbjJGX2PEOtUOs,48773
|
48
48
|
ccxt/coinmetro.py,sha256=idTmegdHUed_nMhk6G-wOrMs1f3g4vjwX98W_IXwMF0,84058
|
49
49
|
ccxt/coinone.py,sha256=J68O8a4oOoCBQ2u_kqWTfspAmNDYhYleD709VLbjf58,49256
|
@@ -87,11 +87,11 @@ ccxt/ndax.py,sha256=qBDsdMjWDflk80pGm_KrLZ_kTSMA1nhNWEw2yNMoeLw,113607
|
|
87
87
|
ccxt/novadax.py,sha256=8K6mKIBY5KyyunyBsYJEosfkr2yDrPVgJfFUpET242k,67583
|
88
88
|
ccxt/oceanex.py,sha256=YhvVgresX7nm8sFxD8Yr5pQI5IzuuRllW-JdA9RkDSM,44195
|
89
89
|
ccxt/okcoin.py,sha256=fuAOZXqsGaDttvVlLIN2-KVev3Ga-HJ6oSrk0q5tf9I,154935
|
90
|
-
ccxt/okx.py,sha256=
|
90
|
+
ccxt/okx.py,sha256=VynYQAX_39J7LG1L4ZMH3321vAp0gE-eiKeRnfop4yg,394175
|
91
91
|
ccxt/onetrading.py,sha256=mNmwMVK-7qQEW6L35kfN6OwqvGLiVXrot4B2SDx3_TQ,76305
|
92
92
|
ccxt/oxfun.py,sha256=XfF-kErOOwLBHVpqxpXngFj8EZmXqAGtpmGE_2Q5Ssg,127504
|
93
93
|
ccxt/p2b.py,sha256=2mkYFm3h_lFtgEu13F6sDgbj3UxYyTG-3R_l-w7NZiM,56725
|
94
|
-
ccxt/paradex.py,sha256=
|
94
|
+
ccxt/paradex.py,sha256=n-PTCt0WV1MIXOpzW24tnNCVy6QfmYRX6pPL0NVPNkQ,99997
|
95
95
|
ccxt/paymium.py,sha256=SPe-2BHskOi8uHtrFWqcoop-ec5vu9GSQwDDf8EnXTA,26219
|
96
96
|
ccxt/phemex.py,sha256=iNe6ljetjxVvRQWWS3bWaAxHIqSlUZJ5NHLImSdJF4Q,241967
|
97
97
|
ccxt/poloniex.py,sha256=s881QelJZ7qbfh0PzSAZOJ1Ahx9KZFQxyaD6su6NbNA,154789
|
@@ -100,13 +100,13 @@ ccxt/probit.py,sha256=dHWDuCGNnAUja1RYoXo1JRlEgFuWiQSmGUX6yrB_dmU,79412
|
|
100
100
|
ccxt/timex.py,sha256=Sh4Udv9wLP83q_laCYlgWMh1GKrg4kN97fJGO4uMPL0,75302
|
101
101
|
ccxt/tokocrypto.py,sha256=hmCMf7f3Z0tM6Ipnj7RrQDHvuKB7wKBhfSqD4ePsNiI,126321
|
102
102
|
ccxt/tradeogre.py,sha256=QwjnEPgtL50urjDXJphR5zc7j2HSs92YbHgK-69kZ0w,32176
|
103
|
-
ccxt/upbit.py,sha256=
|
103
|
+
ccxt/upbit.py,sha256=9xB3vTVPP6vlQuuVRE0rKO_2lphTDzDQbX6GxCm30Ts,89321
|
104
104
|
ccxt/vertex.py,sha256=oHahmepx-A4Z_u8lYn3q_TaAvqbAK17DNY-vCqWEqCQ,129137
|
105
105
|
ccxt/wavesexchange.py,sha256=Syfi1W5yLpcu0Pe4MPhpJ9lWm1TRLfzUNdofTQDF7KA,119634
|
106
106
|
ccxt/whitebit.py,sha256=U-TkKDEB02k2jEd51eCjofC0Qg0hH_fgDmENTsCd1Ac,148447
|
107
107
|
ccxt/woo.py,sha256=vMFoUtD0wBqw8OVUZiCl1odD4ySYp5Vj-axFRdWcoM0,159438
|
108
108
|
ccxt/woofipro.py,sha256=uStFsls9naq6Vg7wUJfE-AKch6mUfg3qQhv_btqWKGQ,120877
|
109
|
-
ccxt/xt.py,sha256=
|
109
|
+
ccxt/xt.py,sha256=95UTI-VSO_-qqYiR-2QeRogy9BhGLj9-3efuTKpQ7zc,217026
|
110
110
|
ccxt/yobit.py,sha256=10y6R1o67kCQahHuwNUCOq2za9O84fE177YhTeGvNxk,57750
|
111
111
|
ccxt/zaif.py,sha256=-qt419JrCajq69n9jNC3hnZC5DcMnrkGDWnNS2Enxrg,31175
|
112
112
|
ccxt/zonda.py,sha256=29gcWGBvS6b01Wu8QhBg60825kVxHJRqsDJdB-6eZ8U,85006
|
@@ -191,12 +191,12 @@ ccxt/abstract/lbank.py,sha256=pdut_cIcwcUhN_ZCyWJxixBc4dgeQqvENYqFCrUYrvA,8675
|
|
191
191
|
ccxt/abstract/luno.py,sha256=QUsEL2MMhv6qF-4pW0o0xs9lI8HsZtlrAp3sBskq7i4,3619
|
192
192
|
ccxt/abstract/mercado.py,sha256=qs3Fr6C_K8M-YIsGx-W9iUiFXcgQ0SA8uADvhV8mDQM,2357
|
193
193
|
ccxt/abstract/mexc.py,sha256=oyg0sZFYs1d77F-_9QAatqMSQJ8h-1u1wWb-d1DX2zQ,26434
|
194
|
-
ccxt/abstract/myokx.py,sha256=
|
194
|
+
ccxt/abstract/myokx.py,sha256=5dEebc0bNreMze5fGV2OBpZYhcDZ1Ogc3rhXveTMFcs,52132
|
195
195
|
ccxt/abstract/ndax.py,sha256=M98Ys406KT6T19Y98dXriD6YjzfglHHbnfQw-PDYWtM,11878
|
196
196
|
ccxt/abstract/novadax.py,sha256=IvQFP_v2Q-Sx0tK2bXx4oY81rtNwC7gkc75p_E2jhKw,3093
|
197
197
|
ccxt/abstract/oceanex.py,sha256=JoK404UCkmMG2VqMaGit6PtonyXtCixYx539SoYtYug,2307
|
198
198
|
ccxt/abstract/okcoin.py,sha256=3NmYh-68W_4AXmkqjkf9dRaJcPgNYQG5mKZssJKT4gs,9414
|
199
|
-
ccxt/abstract/okx.py,sha256=
|
199
|
+
ccxt/abstract/okx.py,sha256=5dEebc0bNreMze5fGV2OBpZYhcDZ1Ogc3rhXveTMFcs,52132
|
200
200
|
ccxt/abstract/onetrading.py,sha256=w4DO3mhMZOrwQ-8zrX8zFUFItZgUPOPV72kcSWCP4SU,2278
|
201
201
|
ccxt/abstract/oxfun.py,sha256=bv4FJPe1H5ouMT_gRHVQtvV0MrMZhc3US-DMwnDM4Js,3457
|
202
202
|
ccxt/abstract/p2b.py,sha256=XwaH1hLIi2T6RHltUwFj28Y5fbo6dc0jbjI01sVeOJw,2054
|
@@ -208,23 +208,23 @@ ccxt/abstract/probit.py,sha256=PxQkrvv3EQ2TvOxJmc_mAF_aH8xFFw6pZaVVjjUo5_4,1969
|
|
208
208
|
ccxt/abstract/timex.py,sha256=9b0CDsyjm8XrYZmhUMB1dTHUmyE9YrsZTCZrz1UTt6E,5875
|
209
209
|
ccxt/abstract/tokocrypto.py,sha256=OF5UW4ch_Lf3-avOPgd4AD4CVrOUDUfUpSMCmxhNHlk,4094
|
210
210
|
ccxt/abstract/tradeogre.py,sha256=bDouHP2c50F6Ins5EU2-3Jw10PsIG2KK3bcKv8y7678,1676
|
211
|
-
ccxt/abstract/upbit.py,sha256=
|
211
|
+
ccxt/abstract/upbit.py,sha256=ryNIUZKUC9IhHscLuQQTntm7mowdaKTKGmJOtIiBG2M,6036
|
212
212
|
ccxt/abstract/vertex.py,sha256=56BbU9WF32wLTypOHrhV47betqBYTQvpOJjAzGclYGA,1622
|
213
213
|
ccxt/abstract/wavesexchange.py,sha256=8LIgZiPixoaUFPKGSWJpjI1BYXVqeQh9NLcjfXciZMc,19631
|
214
214
|
ccxt/abstract/whitebit.py,sha256=UdPNzz5MigftoSKT4MFwSnixi5fKnpyd0ct6jz4jEVg,14577
|
215
215
|
ccxt/abstract/woo.py,sha256=x77reirGx7NTX3lQ59GIco9C2odIKlRMdrxQtDTAThg,10834
|
216
216
|
ccxt/abstract/woofipro.py,sha256=El50vWGAV-4QPIDhgSnd4egfvk246NB6vTC-8h722vs,16016
|
217
|
-
ccxt/abstract/xt.py,sha256=
|
217
|
+
ccxt/abstract/xt.py,sha256=n3eX1cItL_J0j8prOViV-C_tRwIFv_GO8JTvZZw8jv8,27837
|
218
218
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
219
219
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
220
220
|
ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
|
221
|
-
ccxt/async_support/__init__.py,sha256=
|
221
|
+
ccxt/async_support/__init__.py,sha256=l4y39jE6jPFgUgUgGAm0OffRJpju1w-KNolEDrx7TCw,16163
|
222
222
|
ccxt/async_support/ace.py,sha256=apWhPVYnqyNeDDk_uwu-rus8x-pCFe9M1rNgV88s8_Q,46714
|
223
223
|
ccxt/async_support/alpaca.py,sha256=Tag0HpHxho_qrXoQ8rjZBVJZj9T38qg8g-mZR39_m18,81133
|
224
224
|
ccxt/async_support/ascendex.py,sha256=Z9nw2WDkLqLHV338kw0qGaqECBC-bKc7H7p8YGeEpPU,157090
|
225
225
|
ccxt/async_support/bequant.py,sha256=wMwmsTUd5cKYqt1rWyIqgyVzoznhEBtClG_vncshz5w,1232
|
226
226
|
ccxt/async_support/bigone.py,sha256=1g0eoESEzEwVy7ryotNtSh8Tv8WuVPI4C1KG-NspU3Y,96414
|
227
|
-
ccxt/async_support/binance.py,sha256=
|
227
|
+
ccxt/async_support/binance.py,sha256=SAYydsEWGuxmzw4DckIvUCep0RXh1OvP3BPCYkjI7bY,682739
|
228
228
|
ccxt/async_support/binancecoinm.py,sha256=1NC5yuHlkNgXH5mEz20lU7O7u3pODa6fluSmHO7W5Lc,1758
|
229
229
|
ccxt/async_support/binanceus.py,sha256=fD4Rm2iJZ6YZuJAbRt5TPh2p8dIyN8yQkovnSWKF6F8,9514
|
230
230
|
ccxt/async_support/binanceusdm.py,sha256=pSIfePaOra0ikZLqFbvBAgHXbj1bhmuSt1G-DiNbgIk,2689
|
@@ -236,13 +236,13 @@ ccxt/async_support/bitcoincom.py,sha256=NN_AWmT0tzikiwFDtf3aUqRXbgFTbdRIeL0kPbL5
|
|
236
236
|
ccxt/async_support/bitfinex.py,sha256=OQLjMJVv-6D1FoIV1Oa2nUJgCbKTWaxoBST815iGYg4,166856
|
237
237
|
ccxt/async_support/bitfinex1.py,sha256=5wTplLdKMIEoWUwrG5_W5rXhrPbrch1358Bwa6TU1ek,74689
|
238
238
|
ccxt/async_support/bitflyer.py,sha256=LuAqWed7hBXBJZomKayzpzDsmeBISMNyct-rV8tNPQk,47224
|
239
|
-
ccxt/async_support/bitget.py,sha256=
|
239
|
+
ccxt/async_support/bitget.py,sha256=5zYlFQhROa5P5TRYmvbicQgH5KLciN3oqsgrCi0xbv8,437884
|
240
240
|
ccxt/async_support/bithumb.py,sha256=ar0QoFintFU7qv7wW6xjnYqBR3keNYN4qN5cbybYxEY,51919
|
241
241
|
ccxt/async_support/bitmart.py,sha256=m_tcJec63zJqcMMgeb1aiQpRYaSgaEdgpgjNx1taicI,249019
|
242
242
|
ccxt/async_support/bitmex.py,sha256=BG2V3EfAb0omoPnvfi3CcaWrernaMeJJ8WeEH2CiW1Y,132025
|
243
243
|
ccxt/async_support/bitopro.py,sha256=dxeqGJbH-j0ocBMnmXruk2DGbUQPeja15x3GeQizWUk,75587
|
244
244
|
ccxt/async_support/bitpanda.py,sha256=zj2ad7e9spjosP19nGH2s9oJnlSsJ7CZFNK4alIt51w,524
|
245
|
-
ccxt/async_support/bitrue.py,sha256=
|
245
|
+
ccxt/async_support/bitrue.py,sha256=am6XPr-R9gPZ0jnjVXFiL8UZjCyCcZfLqk3YFnJzq5Y,142556
|
246
246
|
ccxt/async_support/bitso.py,sha256=PbF9iC4-Wea_msXhO614VPX6o-8RAqzK0reSC_dxwIc,74547
|
247
247
|
ccxt/async_support/bitstamp.py,sha256=7MNcyr9yI9jR4e3CzIp2H9sku979VtjM4Tp2hGfWJSo,96097
|
248
248
|
ccxt/async_support/bitteam.py,sha256=hucr7t-uGSsn6otP90c4ohzW4U9DwrWRieHZcW_J2Ig,105530
|
@@ -262,8 +262,8 @@ ccxt/async_support/coinbaseexchange.py,sha256=gItAdPlwvLERYDtZpb2ikoPu8QI6LNtCC9
|
|
262
262
|
ccxt/async_support/coinbaseinternational.py,sha256=0wTE9n8B_GOeHOH0CdA_2hnhe0abqx7Wwk4roaotE0Y,101419
|
263
263
|
ccxt/async_support/coincatch.py,sha256=LxtDw2TGjbf5zQfqwV5HJ_DdXfm3YeyO919kx9H_2DE,245286
|
264
264
|
ccxt/async_support/coincheck.py,sha256=riQpuspYXE3FXgjQQaNFSjnWGtsPUBwdOrq9Hy3eTO8,38217
|
265
|
-
ccxt/async_support/coinex.py,sha256=
|
266
|
-
ccxt/async_support/coinlist.py,sha256=
|
265
|
+
ccxt/async_support/coinex.py,sha256=hsYu1Av27c6gneIPANySIzhGBYu6g0Om-S3jaDygZxg,268579
|
266
|
+
ccxt/async_support/coinlist.py,sha256=9vw4EmHh8q0WotDGii3Rf3IMiGvof-O8IIQI54z0IyY,114585
|
267
267
|
ccxt/async_support/coinmate.py,sha256=iC1zJju22iTcFtrQKFSsOyPkgTFQkUDa_2FWOOH029w,49039
|
268
268
|
ccxt/async_support/coinmetro.py,sha256=j--kJNppZEMGBBsxR9P_W6W7JeizLAVER55_0ivNrrY,84378
|
269
269
|
ccxt/async_support/coinone.py,sha256=lgNQvv3yRVotcDMnl_k1tpiLgpaDA-tANM4orHiVPYs,49498
|
@@ -307,11 +307,11 @@ ccxt/async_support/ndax.py,sha256=8JiB4Eu1CqAqkTXDVJ-h5iKv9IjR6aya7il6HJKXuCI,11
|
|
307
307
|
ccxt/async_support/novadax.py,sha256=QIFIoZdkkq2odkX7V0wGn9ytgtzEDOTr4MnFGlgnKEk,67951
|
308
308
|
ccxt/async_support/oceanex.py,sha256=_vi8sI3aucMmMPXwqqrpdfnWWHpfLYN_QaBpo2s9zvg,44533
|
309
309
|
ccxt/async_support/okcoin.py,sha256=ybHgnBUymd-vpAlyT5F1sX8bcmSIb6IQtrxha0opRvg,155459
|
310
|
-
ccxt/async_support/okx.py,sha256=
|
310
|
+
ccxt/async_support/okx.py,sha256=KOfoAsgbs82OBuZXYMdt0gHec6jPOlVXcRycYSwjmFg,395840
|
311
311
|
ccxt/async_support/onetrading.py,sha256=rHzlEI2JW61LbuNUtSZeICL7Pa71lwJthU8lJJn3O9M,76661
|
312
312
|
ccxt/async_support/oxfun.py,sha256=Hd4A3Ym0UCoxINhjMuD_d19MP8K1Kkk7K6plK114e5k,128048
|
313
313
|
ccxt/async_support/p2b.py,sha256=A_RPhOvbOMozI8Ypvw_Qzon5c6609l-fle3hYMT4j4w,56967
|
314
|
-
ccxt/async_support/paradex.py,sha256=
|
314
|
+
ccxt/async_support/paradex.py,sha256=YsbxfGK5MTEyAtOc5FDucnHXUcsnHtFk9ZamjtNwSDE,100701
|
315
315
|
ccxt/async_support/paymium.py,sha256=x4-ORMQoTtML3ZOSlBc6oH139SzVbzs0deVpV5cnqBQ,26407
|
316
316
|
ccxt/async_support/phemex.py,sha256=ZxaNy14hdFMK_qdDyoD-N9jq1je9Y2AOxEhWq1zej3Q,242883
|
317
317
|
ccxt/async_support/poloniex.py,sha256=hHRJZJuSBW1w3S1MEtjHqrDkP_Pdls4EbLpJv5kkkgc,155597
|
@@ -320,18 +320,18 @@ ccxt/async_support/probit.py,sha256=nhYNevIgOXHg4moxHfVCqcoVXgZ9ddKloqtaFgqIKP0,
|
|
320
320
|
ccxt/async_support/timex.py,sha256=oGI29yrQsnd-_Tq-Fy3iDY4-zBrrkL0uv8f2ZctJk9I,75664
|
321
321
|
ccxt/async_support/tokocrypto.py,sha256=DcUSa9PEsk9UGVFQbsWLXVAN8mL-3B1s4IBiSCC2POU,126683
|
322
322
|
ccxt/async_support/tradeogre.py,sha256=Ytk2Y6UNhHpn83eFc9Zvy9pjjrYNNsmK_Td0LEbw4QY,32418
|
323
|
-
ccxt/async_support/upbit.py,sha256=
|
323
|
+
ccxt/async_support/upbit.py,sha256=1rvWx0QbLow65P9jpElt0KvyFc2Dj5RUIWu1fpdhGCE,89803
|
324
324
|
ccxt/async_support/vertex.py,sha256=dPUSGt4yDaRzbQ7gkIr937c3sRJ5r_K9xg8BrDOlWhQ,129655
|
325
325
|
ccxt/async_support/wavesexchange.py,sha256=hUuCCBhpBraqWxFXmTfhjV51oUSRQQ0W4dR6xUNleKw,120184
|
326
326
|
ccxt/async_support/whitebit.py,sha256=HlDn3aqQ_kTDRAR0easbIlk0oqKMGzMynzOBBNUiplY,149271
|
327
327
|
ccxt/async_support/woo.py,sha256=P-0zXic6KTuTQtqTgQeCi0NilPgpQiZm_a6lLFxq2JI,160424
|
328
328
|
ccxt/async_support/woofipro.py,sha256=VwsbOydohnY4mYXWiLCFiCt_Lz8_z-UYpRQjlXHhfpc,121569
|
329
|
-
ccxt/async_support/xt.py,sha256=
|
329
|
+
ccxt/async_support/xt.py,sha256=TFrK5VJAsF5p9NlFod-SRxEeRZzFCt5RVOzVH3CKg0o,218258
|
330
330
|
ccxt/async_support/yobit.py,sha256=B2T9UXo0ke-YyXxNW9avOPJ8cReVGXWD9OpkORI9ZSU,58078
|
331
331
|
ccxt/async_support/zaif.py,sha256=jZZv3ZjGQgkPNRfY5B5p5DNMvanHWTTS8m6BLBWm9tA,31357
|
332
332
|
ccxt/async_support/zonda.py,sha256=2QL_B9CmBu4SU4K-Y8segpj57vzAd4aUT2H2cD3b07g,85320
|
333
333
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
334
|
-
ccxt/async_support/base/exchange.py,sha256=
|
334
|
+
ccxt/async_support/base/exchange.py,sha256=fAERj5IIrjvTl4akeUYxjg46dhChPaO2n6GE3V5twtg,117255
|
335
335
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
336
336
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
337
337
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=Y5HxAVXyyYduj6b6SbbUZETlq3GrVMzrkW1r-TMgpb8,6329
|
@@ -344,11 +344,11 @@ ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6Vxh
|
|
344
344
|
ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
|
345
345
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
346
346
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
347
|
-
ccxt/base/errors.py,sha256=
|
348
|
-
ccxt/base/exchange.py,sha256=
|
347
|
+
ccxt/base/errors.py,sha256=Pad-6ugvGUwhoYuKUliX-N7FTrcnKCQGFjsaq2tMn0I,4610
|
348
|
+
ccxt/base/exchange.py,sha256=cy8A1AKRqsz2DIjbR2q_H-R-yFW9zod8plmQUForERw,322910
|
349
349
|
ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
|
350
350
|
ccxt/base/types.py,sha256=SfxIKDSsxP7MPHWiOVI965Nr5NSEPpAno5fuveTRi3w,11423
|
351
|
-
ccxt/pro/__init__.py,sha256=
|
351
|
+
ccxt/pro/__init__.py,sha256=dopOudr0UQ9ruPjLCrwsR1vOX0nQT76Ym63DAoaalUI,7596
|
352
352
|
ccxt/pro/alpaca.py,sha256=_WEorh5thYhvhn7R8hBvHW2m1P2foIbp8URjIt_9vcg,27623
|
353
353
|
ccxt/pro/ascendex.py,sha256=aSbIEzJ0Og_Nc5UGTYj3DVjGfIJ0-q0DdXSWJcQCKb4,37512
|
354
354
|
ccxt/pro/bequant.py,sha256=reG2yXBhxn_TuOIg4J2BiLxl8Lw5Lag3IBMGBkiQCd0,1591
|
@@ -395,7 +395,7 @@ ccxt/pro/hollaex.py,sha256=HJzz1qptxoCq_t6EvkIi5wQ-m8iuxlDCagKHA8QNXts,22387
|
|
395
395
|
ccxt/pro/htx.py,sha256=qjvYQIRz3nLSjCarLJIEqTo2YVwfIvv9OwXJynkLGwY,97645
|
396
396
|
ccxt/pro/huobi.py,sha256=MPqx8sS8dX9pQHiSWZKzKgNRB2O4yfblX7yTTbM7Tp0,424
|
397
397
|
ccxt/pro/huobijp.py,sha256=DNgm6jrERyJG_fWu6xvlEs0lNy6TBsCsIWct0wrOjJA,23330
|
398
|
-
ccxt/pro/hyperliquid.py,sha256=
|
398
|
+
ccxt/pro/hyperliquid.py,sha256=BAlxgNpSRLQCwIzA8hwZc4ZKcdw_BkZNjDDKCekhISE,42325
|
399
399
|
ccxt/pro/idex.py,sha256=-S5IcxqDPahlS-ptORSGlWH2PanJ0JFa8vFEfND4dXw,28612
|
400
400
|
ccxt/pro/independentreserve.py,sha256=3FGcNr9nrlf6Qt_q29lMe9I760IP9T-DBgDj_kmAo2g,11368
|
401
401
|
ccxt/pro/kraken.py,sha256=GdcrqW_aWbvXRnXKH99EbjIvrMwDuyz-iZHnXY7o3Ls,66474
|
@@ -651,12 +651,12 @@ ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4wer
|
|
651
651
|
ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
652
652
|
ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
|
653
653
|
ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
|
654
|
-
ccxt/test/tests_async.py,sha256=
|
654
|
+
ccxt/test/tests_async.py,sha256=yoE3idBrebgiD9J-DY6bgiST2qwN_Hnk5E9qRFaivnM,93841
|
655
655
|
ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
|
656
656
|
ccxt/test/tests_init.py,sha256=qM0-Gb0h0p6CANWTkyYZI7wl-iYOcrPur7aj_OKh7m0,1212
|
657
|
-
ccxt/test/tests_sync.py,sha256=
|
658
|
-
ccxt-4.4.
|
659
|
-
ccxt-4.4.
|
660
|
-
ccxt-4.4.
|
661
|
-
ccxt-4.4.
|
662
|
-
ccxt-4.4.
|
657
|
+
ccxt/test/tests_sync.py,sha256=Vrh3qoGGrX6SBpdAsLsw8fNajcd3QrBqpFFErm41-bo,92825
|
658
|
+
ccxt-4.4.77.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
|
659
|
+
ccxt-4.4.77.dist-info/METADATA,sha256=X6BwrGjl7JAyHc5A_9iKTsqwGDMyl3e5Y1emCbzP0eI,131033
|
660
|
+
ccxt-4.4.77.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
|
661
|
+
ccxt-4.4.77.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
662
|
+
ccxt-4.4.77.dist-info/RECORD,,
|
File without changes
|
File without changes
|