ccxt 4.4.95__py2.py3-none-any.whl → 4.4.96__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 -1
- ccxt/abstract/foxbit.py +26 -0
- ccxt/abstract/hyperliquid.py +1 -1
- ccxt/apex.py +3 -3
- ccxt/ascendex.py +2 -2
- ccxt/async_support/__init__.py +3 -1
- ccxt/async_support/apex.py +3 -3
- ccxt/async_support/ascendex.py +2 -2
- ccxt/async_support/base/exchange.py +5 -3
- ccxt/async_support/base/ws/future.py +5 -3
- ccxt/async_support/bitget.py +30 -143
- ccxt/async_support/bitmart.py +2 -2
- ccxt/async_support/bitrue.py +13 -8
- ccxt/async_support/bybit.py +14 -5
- ccxt/async_support/coinbaseexchange.py +4 -2
- ccxt/async_support/coinbaseinternational.py +2 -2
- ccxt/async_support/coinspot.py +36 -1
- ccxt/async_support/cryptocom.py +2 -1
- ccxt/async_support/cryptomus.py +41 -1
- ccxt/async_support/defx.py +1 -1
- ccxt/async_support/derive.py +1 -1
- ccxt/async_support/ellipx.py +40 -0
- ccxt/async_support/foxbit.py +1935 -0
- ccxt/async_support/hyperliquid.py +2 -2
- ccxt/async_support/kucoin.py +1 -1
- ccxt/async_support/kucoinfutures.py +3 -2
- ccxt/async_support/mexc.py +28 -13
- ccxt/async_support/modetrade.py +3 -3
- ccxt/async_support/okcoin.py +1 -1
- ccxt/async_support/okx.py +10 -3
- ccxt/async_support/onetrading.py +1 -1
- ccxt/async_support/oxfun.py +2 -1
- ccxt/async_support/paradex.py +2 -2
- ccxt/async_support/vertex.py +3 -2
- ccxt/async_support/woo.py +6 -2
- ccxt/async_support/woofipro.py +2 -2
- ccxt/base/errors.py +6 -0
- ccxt/base/exchange.py +6 -3
- ccxt/bitget.py +30 -143
- ccxt/bitmart.py +2 -2
- ccxt/bitrue.py +13 -8
- ccxt/bybit.py +14 -5
- ccxt/coinbaseexchange.py +4 -2
- ccxt/coinbaseinternational.py +2 -2
- ccxt/coinspot.py +36 -1
- ccxt/cryptocom.py +2 -1
- ccxt/cryptomus.py +41 -1
- ccxt/defx.py +1 -1
- ccxt/derive.py +1 -1
- ccxt/ellipx.py +40 -0
- ccxt/foxbit.py +1935 -0
- ccxt/hyperliquid.py +2 -2
- ccxt/kucoin.py +1 -1
- ccxt/kucoinfutures.py +3 -2
- ccxt/mexc.py +28 -13
- ccxt/modetrade.py +3 -3
- ccxt/okcoin.py +1 -1
- ccxt/okx.py +10 -3
- ccxt/onetrading.py +1 -1
- ccxt/oxfun.py +2 -1
- ccxt/paradex.py +2 -2
- ccxt/pro/__init__.py +1 -1
- ccxt/test/tests_async.py +15 -0
- ccxt/test/tests_sync.py +15 -0
- ccxt/vertex.py +3 -2
- ccxt/woo.py +6 -2
- ccxt/woofipro.py +2 -2
- {ccxt-4.4.95.dist-info → ccxt-4.4.96.dist-info}/METADATA +8 -8
- {ccxt-4.4.95.dist-info → ccxt-4.4.96.dist-info}/RECORD +72 -69
- {ccxt-4.4.95.dist-info → ccxt-4.4.96.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.95.dist-info → ccxt-4.4.96.dist-info}/WHEEL +0 -0
- {ccxt-4.4.95.dist-info → ccxt-4.4.96.dist-info}/top_level.txt +0 -0
ccxt/hyperliquid.py
CHANGED
@@ -173,7 +173,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
173
173
|
'orderStatus': 2,
|
174
174
|
'spotClearinghouseState': 2,
|
175
175
|
'exchangeStatus': 2,
|
176
|
-
'candleSnapshot':
|
176
|
+
'candleSnapshot': 4,
|
177
177
|
},
|
178
178
|
},
|
179
179
|
},
|
@@ -1810,7 +1810,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
1810
1810
|
# }
|
1811
1811
|
# }
|
1812
1812
|
#
|
1813
|
-
return response
|
1813
|
+
return [self.safe_order({'info': response})]
|
1814
1814
|
|
1815
1815
|
def cancel_all_orders_after(self, timeout: Int, params={}):
|
1816
1816
|
"""
|
ccxt/kucoin.py
CHANGED
@@ -2646,7 +2646,7 @@ class kucoin(Exchange, ImplicitAPI):
|
|
2646
2646
|
response = self.privateDeleteHfOrders(self.extend(request, query))
|
2647
2647
|
else:
|
2648
2648
|
response = self.privateDeleteOrders(self.extend(request, query))
|
2649
|
-
return response
|
2649
|
+
return [self.safe_order({'info': response})]
|
2650
2650
|
|
2651
2651
|
def fetch_orders_by_status(self, status, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
|
2652
2652
|
"""
|
ccxt/kucoinfutures.py
CHANGED
@@ -1719,7 +1719,7 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
1719
1719
|
# },
|
1720
1720
|
# }
|
1721
1721
|
#
|
1722
|
-
return self.
|
1722
|
+
return self.safe_order({'info': response})
|
1723
1723
|
|
1724
1724
|
def cancel_orders(self, ids, symbol: Str = None, params={}):
|
1725
1725
|
"""
|
@@ -1811,7 +1811,8 @@ class kucoinfutures(kucoin, ImplicitAPI):
|
|
1811
1811
|
# },
|
1812
1812
|
# }
|
1813
1813
|
#
|
1814
|
-
|
1814
|
+
data = self.safe_dict(response, 'data')
|
1815
|
+
return [self.safe_order({'info': data})]
|
1815
1816
|
|
1816
1817
|
def add_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
|
1817
1818
|
"""
|
ccxt/mexc.py
CHANGED
@@ -4651,11 +4651,14 @@ class mexc(Exchange, ImplicitAPI):
|
|
4651
4651
|
# "network": "TRX",
|
4652
4652
|
# "status": "5",
|
4653
4653
|
# "address": "TSMcEDDvkqY9dz8RkFnrS86U59GwEZjfvh",
|
4654
|
-
# "txId": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b",
|
4654
|
+
# "txId": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b:0",
|
4655
4655
|
# "insertTime": "1664805021000",
|
4656
4656
|
# "unlockConfirm": "200",
|
4657
4657
|
# "confirmTimes": "203",
|
4658
|
-
# "memo": "xxyy1122"
|
4658
|
+
# "memo": "xxyy1122",
|
4659
|
+
# "transHash": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b",
|
4660
|
+
# "updateTime": "1664805621000",
|
4661
|
+
# "netWork: "TRX"
|
4659
4662
|
# }
|
4660
4663
|
# ]
|
4661
4664
|
#
|
@@ -4696,7 +4699,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4696
4699
|
# [
|
4697
4700
|
# {
|
4698
4701
|
# "id": "adcd1c8322154de691b815eedcd10c42",
|
4699
|
-
# "txId": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
|
4702
|
+
# "txId": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0:0",
|
4700
4703
|
# "coin": "USDC-MATIC",
|
4701
4704
|
# "network": "MATIC",
|
4702
4705
|
# "address": "0xeE6C7a415995312ED52c53a0f8f03e165e0A5D62",
|
@@ -4707,7 +4710,11 @@ class mexc(Exchange, ImplicitAPI):
|
|
4707
4710
|
# "confirmNo": null,
|
4708
4711
|
# "applyTime": "1664882739000",
|
4709
4712
|
# "remark": '',
|
4710
|
-
# "memo": null
|
4713
|
+
# "memo": null,
|
4714
|
+
# "explorerUrl": "https://etherscan.io/tx/0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
|
4715
|
+
# "transHash": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
|
4716
|
+
# "updateTime": "1664882799000",
|
4717
|
+
# "netWork: "MATIC"
|
4711
4718
|
# }
|
4712
4719
|
# ]
|
4713
4720
|
#
|
@@ -4723,18 +4730,21 @@ class mexc(Exchange, ImplicitAPI):
|
|
4723
4730
|
# "network": "TRX",
|
4724
4731
|
# "status": "5",
|
4725
4732
|
# "address": "TSMcEDDvkqY9dz8RkFnrS86U59GwEZjfvh",
|
4726
|
-
# "txId": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b",
|
4733
|
+
# "txId": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b:0",
|
4727
4734
|
# "insertTime": "1664805021000",
|
4728
4735
|
# "unlockConfirm": "200",
|
4729
4736
|
# "confirmTimes": "203",
|
4730
|
-
# "memo": "xxyy1122"
|
4737
|
+
# "memo": "xxyy1122",
|
4738
|
+
# "transHash": "51a8f49e6f03f2c056e71fe3291aa65e1032880be855b65cecd0595a1b8af95b",
|
4739
|
+
# "updateTime": "1664805621000",
|
4740
|
+
# "netWork: "TRX"
|
4731
4741
|
# }
|
4732
4742
|
#
|
4733
4743
|
# fetchWithdrawals
|
4734
4744
|
#
|
4735
4745
|
# {
|
4736
4746
|
# "id": "adcd1c8322154de691b815eedcd10c42",
|
4737
|
-
# "txId": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
|
4747
|
+
# "txId": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0:0",
|
4738
4748
|
# "coin": "USDC-MATIC",
|
4739
4749
|
# "network": "MATIC",
|
4740
4750
|
# "address": "0xeE6C7a415995312ED52c53a0f8f03e165e0A5D62",
|
@@ -4744,8 +4754,12 @@ class mexc(Exchange, ImplicitAPI):
|
|
4744
4754
|
# "transactionFee": "1",
|
4745
4755
|
# "confirmNo": null,
|
4746
4756
|
# "applyTime": "1664882739000",
|
4747
|
-
# "remark":
|
4748
|
-
# "memo": null
|
4757
|
+
# "remark": "",
|
4758
|
+
# "memo": null,
|
4759
|
+
# "explorerUrl": "https://etherscan.io/tx/0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
|
4760
|
+
# "transHash": "0xc8c918cd69b2246db493ef6225a72ffdc664f15b08da3e25c6879b271d05e9d0",
|
4761
|
+
# "updateTime": "1664882799000",
|
4762
|
+
# "netWork: "MATIC"
|
4749
4763
|
# }
|
4750
4764
|
#
|
4751
4765
|
# withdraw
|
@@ -4757,6 +4771,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4757
4771
|
id = self.safe_string(transaction, 'id')
|
4758
4772
|
type = 'deposit' if (id is None) else 'withdrawal'
|
4759
4773
|
timestamp = self.safe_integer_2(transaction, 'insertTime', 'applyTime')
|
4774
|
+
updated = self.safe_integer(transaction, 'updateTime')
|
4760
4775
|
currencyId = None
|
4761
4776
|
currencyWithNetwork = self.safe_string(transaction, 'coin')
|
4762
4777
|
if currencyWithNetwork is not None:
|
@@ -4769,7 +4784,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
4769
4784
|
status = self.parse_transaction_status_by_type(self.safe_string(transaction, 'status'), type)
|
4770
4785
|
amountString = self.safe_string(transaction, 'amount')
|
4771
4786
|
address = self.safe_string(transaction, 'address')
|
4772
|
-
txid = self.
|
4787
|
+
txid = self.safe_string_2(transaction, 'transHash', 'txId')
|
4773
4788
|
fee = None
|
4774
4789
|
feeCostString = self.safe_string(transaction, 'transactionFee')
|
4775
4790
|
if feeCostString is not None:
|
@@ -4797,8 +4812,8 @@ class mexc(Exchange, ImplicitAPI):
|
|
4797
4812
|
'amount': self.parse_number(amountString),
|
4798
4813
|
'currency': code,
|
4799
4814
|
'status': status,
|
4800
|
-
'updated':
|
4801
|
-
'comment':
|
4815
|
+
'updated': updated,
|
4816
|
+
'comment': self.safe_string(transaction, 'remark'),
|
4802
4817
|
'internal': None,
|
4803
4818
|
'fee': fee,
|
4804
4819
|
}
|
@@ -5704,7 +5719,7 @@ class mexc(Exchange, ImplicitAPI):
|
|
5704
5719
|
#
|
5705
5720
|
# {success: True, code: '0'}
|
5706
5721
|
#
|
5707
|
-
return self.parse_leverage(response, market)
|
5722
|
+
return self.parse_leverage(response, market) # tmp revert type
|
5708
5723
|
|
5709
5724
|
def nonce(self):
|
5710
5725
|
return self.milliseconds() - self.safe_integer(self.options, 'timeDifference', 0)
|
ccxt/modetrade.py
CHANGED
@@ -29,7 +29,7 @@ class modetrade(Exchange, ImplicitAPI):
|
|
29
29
|
'countries': ['KY'], # Cayman Islands
|
30
30
|
'rateLimit': 100,
|
31
31
|
'version': 'v1',
|
32
|
-
'certified':
|
32
|
+
'certified': False,
|
33
33
|
'pro': True,
|
34
34
|
'dex': True,
|
35
35
|
'hostname': 'trade.mode.network',
|
@@ -1750,9 +1750,9 @@ class modetrade(Exchange, ImplicitAPI):
|
|
1750
1750
|
# }
|
1751
1751
|
#
|
1752
1752
|
return [
|
1753
|
-
{
|
1753
|
+
self.safe_order({
|
1754
1754
|
'info': response,
|
1755
|
-
},
|
1755
|
+
}),
|
1756
1756
|
]
|
1757
1757
|
|
1758
1758
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
ccxt/okcoin.py
CHANGED
@@ -1650,7 +1650,7 @@ class okcoin(Exchange, ImplicitAPI):
|
|
1650
1650
|
advanced = self.safe_value(params, 'advanced')
|
1651
1651
|
if trigger or advanced:
|
1652
1652
|
orderInner = self.cancel_orders([id], symbol, params)
|
1653
|
-
return self.
|
1653
|
+
return self.safe_dict(orderInner, 0)
|
1654
1654
|
market = self.market(symbol)
|
1655
1655
|
request: dict = {
|
1656
1656
|
'instId': market['id'],
|
ccxt/okx.py
CHANGED
@@ -1172,7 +1172,9 @@ class okx(Exchange, ImplicitAPI):
|
|
1172
1172
|
},
|
1173
1173
|
'createOrder': 'privatePostTradeBatchOrders', # or 'privatePostTradeOrder' or 'privatePostTradeOrderAlgo'
|
1174
1174
|
'createMarketBuyOrderRequiresPrice': False,
|
1175
|
-
'fetchMarkets':
|
1175
|
+
'fetchMarkets': {
|
1176
|
+
'types': ['spot', 'future', 'swap', 'option'], # spot, future, swap, option
|
1177
|
+
},
|
1176
1178
|
'timeDifference': 0, # the difference between system clock and exchange server clock
|
1177
1179
|
'adjustForTimeDifference': False, # controls the adjustment logic upon instantiation
|
1178
1180
|
'defaultType': 'spot', # 'funding', 'spot', 'margin', 'future', 'swap', 'option'
|
@@ -1558,7 +1560,12 @@ class okx(Exchange, ImplicitAPI):
|
|
1558
1560
|
"""
|
1559
1561
|
if self.options['adjustForTimeDifference']:
|
1560
1562
|
self.load_time_difference()
|
1561
|
-
types =
|
1563
|
+
types = ['spot', 'future', 'swap', 'option']
|
1564
|
+
fetchMarketsOption = self.safe_dict(self.options, 'fetchMarkets')
|
1565
|
+
if fetchMarketsOption is not None:
|
1566
|
+
types = self.safe_list(fetchMarketsOption, 'types', types)
|
1567
|
+
else:
|
1568
|
+
types = self.safe_list(self.options, 'fetchMarkets', types) # backward-support
|
1562
1569
|
promises = []
|
1563
1570
|
result = []
|
1564
1571
|
for i in range(0, len(types)):
|
@@ -3324,7 +3331,7 @@ class okx(Exchange, ImplicitAPI):
|
|
3324
3331
|
trailing = self.safe_bool(params, 'trailing', False)
|
3325
3332
|
if trigger or trailing:
|
3326
3333
|
orderInner = self.cancel_orders([id], symbol, params)
|
3327
|
-
return self.
|
3334
|
+
return self.safe_dict(orderInner, 0)
|
3328
3335
|
self.load_markets()
|
3329
3336
|
market = self.market(symbol)
|
3330
3337
|
request: dict = {
|
ccxt/onetrading.py
CHANGED
@@ -1321,7 +1321,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1321
1321
|
# "a10e9bd1-8f72-4cfe-9f1b-7f1c8a9bd8ee"
|
1322
1322
|
# ]
|
1323
1323
|
#
|
1324
|
-
return response
|
1324
|
+
return [self.safe_order({'info': response})]
|
1325
1325
|
|
1326
1326
|
def cancel_orders(self, ids, symbol: Str = None, params={}):
|
1327
1327
|
"""
|
ccxt/oxfun.py
CHANGED
@@ -2584,7 +2584,8 @@ class oxfun(Exchange, ImplicitAPI):
|
|
2584
2584
|
# "data": {"notice": "No working orders found"}
|
2585
2585
|
# }
|
2586
2586
|
#
|
2587
|
-
|
2587
|
+
response = self.privateDeleteV3OrdersCancelAll(self.extend(request, params))
|
2588
|
+
return [self.safe_order({'info': response})]
|
2588
2589
|
|
2589
2590
|
def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
2590
2591
|
"""
|
ccxt/paradex.py
CHANGED
@@ -1249,7 +1249,7 @@ class paradex(Exchange, ImplicitAPI):
|
|
1249
1249
|
cancelReason = self.safe_string(order, 'cancel_reason')
|
1250
1250
|
status = self.safe_string(order, 'status')
|
1251
1251
|
if cancelReason is not None:
|
1252
|
-
if cancelReason == 'NOT_ENOUGH_MARGIN':
|
1252
|
+
if cancelReason == 'NOT_ENOUGH_MARGIN' or cancelReason == 'ORDER_EXCEEDS_POSITION_LIMIT':
|
1253
1253
|
status = 'rejected'
|
1254
1254
|
else:
|
1255
1255
|
status = 'canceled'
|
@@ -1527,7 +1527,7 @@ class paradex(Exchange, ImplicitAPI):
|
|
1527
1527
|
#
|
1528
1528
|
# if success, no response...
|
1529
1529
|
#
|
1530
|
-
return response
|
1530
|
+
return [self.safe_order({'info': response})]
|
1531
1531
|
|
1532
1532
|
def fetch_order(self, id: str, symbol: Str = None, params={}):
|
1533
1533
|
"""
|
ccxt/pro/__init__.py
CHANGED
ccxt/test/tests_async.py
CHANGED
@@ -629,11 +629,26 @@ class testMainClass:
|
|
629
629
|
assert exchange.hostname == 'binance.us', 'binance.us hostname does not match ' + exchange.hostname
|
630
630
|
assert exchange.urls['api']['public'] == 'https://api.binance.us/api/v3', 'https://api.binance.us/api/v3 does not match: ' + exchange.urls['api']['public']
|
631
631
|
|
632
|
+
async def test_return_response_headers(self, exchange):
|
633
|
+
if exchange.id != 'binance':
|
634
|
+
return False # this test is only for binance exchange for now
|
635
|
+
exchange.return_response_headers = True
|
636
|
+
ticker = await exchange.fetch_ticker('BTC/USDT')
|
637
|
+
info = ticker['info']
|
638
|
+
headers = info['responseHeaders']
|
639
|
+
headers_keys = list(headers.keys())
|
640
|
+
assert len(headers_keys) > 0, 'Response headers should not be empty'
|
641
|
+
header_values = list(headers.values())
|
642
|
+
assert len(header_values) > 0, 'Response headers values should not be empty'
|
643
|
+
exchange.return_response_headers = False
|
644
|
+
return True
|
645
|
+
|
632
646
|
async def start_test(self, exchange, symbol):
|
633
647
|
# we do not need to test aliases
|
634
648
|
if exchange.alias:
|
635
649
|
return True
|
636
650
|
self.check_constructor(exchange)
|
651
|
+
# await this.testReturnResponseHeaders (exchange);
|
637
652
|
if self.sandbox or get_exchange_prop(exchange, 'sandbox'):
|
638
653
|
exchange.set_sandbox_mode(True)
|
639
654
|
try:
|
ccxt/test/tests_sync.py
CHANGED
@@ -626,11 +626,26 @@ class testMainClass:
|
|
626
626
|
assert exchange.hostname == 'binance.us', 'binance.us hostname does not match ' + exchange.hostname
|
627
627
|
assert exchange.urls['api']['public'] == 'https://api.binance.us/api/v3', 'https://api.binance.us/api/v3 does not match: ' + exchange.urls['api']['public']
|
628
628
|
|
629
|
+
def test_return_response_headers(self, exchange):
|
630
|
+
if exchange.id != 'binance':
|
631
|
+
return False # this test is only for binance exchange for now
|
632
|
+
exchange.return_response_headers = True
|
633
|
+
ticker = exchange.fetch_ticker('BTC/USDT')
|
634
|
+
info = ticker['info']
|
635
|
+
headers = info['responseHeaders']
|
636
|
+
headers_keys = list(headers.keys())
|
637
|
+
assert len(headers_keys) > 0, 'Response headers should not be empty'
|
638
|
+
header_values = list(headers.values())
|
639
|
+
assert len(header_values) > 0, 'Response headers values should not be empty'
|
640
|
+
exchange.return_response_headers = False
|
641
|
+
return True
|
642
|
+
|
629
643
|
def start_test(self, exchange, symbol):
|
630
644
|
# we do not need to test aliases
|
631
645
|
if exchange.alias:
|
632
646
|
return True
|
633
647
|
self.check_constructor(exchange)
|
648
|
+
# this.testReturnResponseHeaders (exchange);
|
634
649
|
if self.sandbox or get_exchange_prop(exchange, 'sandbox'):
|
635
650
|
exchange.set_sandbox_mode(True)
|
636
651
|
try:
|
ccxt/vertex.py
CHANGED
@@ -2351,7 +2351,7 @@ class vertex(Exchange, ImplicitAPI):
|
|
2351
2351
|
# "request_type": "execute_cancel_product_orders"
|
2352
2352
|
# }
|
2353
2353
|
#
|
2354
|
-
return response
|
2354
|
+
return [self.safe_order({'info': response})]
|
2355
2355
|
|
2356
2356
|
def cancel_order(self, id: str, symbol: Str = None, params={}):
|
2357
2357
|
"""
|
@@ -2365,7 +2365,8 @@ class vertex(Exchange, ImplicitAPI):
|
|
2365
2365
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
2366
2366
|
:returns dict: An `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
2367
2367
|
"""
|
2368
|
-
|
2368
|
+
order = self.cancel_orders([id], symbol, params)
|
2369
|
+
return self.safe_order({'info': order})
|
2369
2370
|
|
2370
2371
|
def cancel_orders(self, ids: List[str], symbol: Str = None, params={}):
|
2371
2372
|
"""
|
ccxt/woo.py
CHANGED
@@ -1502,8 +1502,11 @@ class woo(Exchange, ImplicitAPI):
|
|
1502
1502
|
if symbol is not None:
|
1503
1503
|
market = self.market(symbol)
|
1504
1504
|
request['symbol'] = market['id']
|
1505
|
+
response = None
|
1505
1506
|
if trigger:
|
1506
|
-
|
1507
|
+
response = self.v3PrivateDeleteTradeAlgoOrders(params)
|
1508
|
+
else:
|
1509
|
+
response = self.v3PrivateDeleteTradeOrders(self.extend(request, params))
|
1507
1510
|
#
|
1508
1511
|
# {
|
1509
1512
|
# "success": True,
|
@@ -1513,7 +1516,8 @@ class woo(Exchange, ImplicitAPI):
|
|
1513
1516
|
# "timestamp": 1751941988134
|
1514
1517
|
# }
|
1515
1518
|
#
|
1516
|
-
|
1519
|
+
data = self.safe_dict(response, 'data', {})
|
1520
|
+
return [self.safe_order({'info': data})]
|
1517
1521
|
|
1518
1522
|
def cancel_all_orders_after(self, timeout: Int, params={}):
|
1519
1523
|
"""
|
ccxt/woofipro.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.4.
|
3
|
+
Version: 4.4.96
|
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
|
|
@@ -96,13 +96,12 @@ Current feature list:
|
|
96
96
|
| [](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) | |
|
97
97
|
| [](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) | |
|
98
98
|
| [](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) | |
|
99
|
-
| [](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
99
|
| [](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
100
|
| [](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
101
|
| [](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
102
|
|
104
103
|
## Supported Cryptocurrency Exchanges
|
105
|
-
<!--- init list -->The CCXT library currently supports the following
|
104
|
+
<!--- init list -->The CCXT library currently supports the following 103 cryptocurrency exchange markets and trading APIs:
|
106
105
|
|
107
106
|
|logo |id |name |ver |type |certified |pro |
|
108
107
|
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
|
@@ -161,6 +160,7 @@ Current feature list:
|
|
161
160
|
| [](https://www.ellipx.com) | ellipx | [Ellipx](https://www.ellipx.com) | [](https://docs.google.com/document/d/1ZXzTQYffKE_EglTaKptxGQERRnunuLHEMmar7VC9syM) |  | | |
|
162
161
|
| [](https://exmo.me/?ref=131685) | exmo | [EXMO](https://exmo.me/?ref=131685) | [](https://exmo.me/en/api_doc?ref=131685) |  | | |
|
163
162
|
| [](https://fmfw.io/referral/da948b21d6c92d69) | fmfwio | [FMFW.io](https://fmfw.io/referral/da948b21d6c92d69) | [](https://api.fmfw.io/) |  | | |
|
163
|
+
| [](https://app.foxbit.com.br) | foxbit | [Foxbit](https://app.foxbit.com.br) | [](https://docs.foxbit.com.br) |  | | |
|
164
164
|
| [](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [](https://www.gate.io/docs/developers/apiv4/en/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
165
165
|
| [](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | [](https://docs.gemini.com/rest-api) |  | | [](https://ccxt.pro) |
|
166
166
|
| [](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | hashkey | [HashKey Global](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | [](https://hashkeyglobal-apidoc.readme.io/) |  | [](https://github.com/ccxt/ccxt/wiki/Certification) | [](https://ccxt.pro) |
|
@@ -179,7 +179,7 @@ Current feature list:
|
|
179
179
|
| [](https://www.luno.com/invite/44893A) | luno | [luno](https://www.luno.com/invite/44893A) | [](https://www.luno.com/en/api) |  | | [](https://ccxt.pro) |
|
180
180
|
| [](https://www.mercadobitcoin.com.br) | mercado | [Mercado Bitcoin](https://www.mercadobitcoin.com.br) | [](https://www.mercadobitcoin.com.br/api-doc) |  | | |
|
181
181
|
| [](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) |
|
182
|
-
| [](https://trade.mode.network?ref=MODETRADE) | modetrade | [Mode Trade](https://trade.mode.network?ref=MODETRADE) | [](undefined) |  |
|
182
|
+
| [](https://trade.mode.network?ref=MODETRADE) | modetrade | [Mode Trade](https://trade.mode.network?ref=MODETRADE) | [](undefined) |  | | [](https://ccxt.pro) |
|
183
183
|
| [](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
184
|
| [](https://one.ndax.io/bfQiSL) | ndax | [NDAX](https://one.ndax.io/bfQiSL) | [](https://apidoc.ndax.io/) |  | | [](https://ccxt.pro) |
|
185
185
|
| [](https://www.novadax.com.br/?s=ccxt) | novadax | [NovaDAX](https://www.novadax.com.br/?s=ccxt) | [](https://doc.novadax.com/pt-BR/) |  | | |
|
@@ -269,13 +269,13 @@ console.log(version, Object.keys(exchanges));
|
|
269
269
|
|
270
270
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
271
271
|
|
272
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
273
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
272
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.96/dist/ccxt.browser.min.js
|
273
|
+
* unpkg: https://unpkg.com/ccxt@4.4.96/dist/ccxt.browser.min.js
|
274
274
|
|
275
275
|
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.
|
276
276
|
|
277
277
|
```HTML
|
278
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
278
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.96/dist/ccxt.browser.min.js"></script>
|
279
279
|
```
|
280
280
|
|
281
281
|
Creates a global `ccxt` object:
|