ccxt 4.3.11 → 4.3.13
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.
- package/README.md +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +15 -0
- package/dist/cjs/src/bigone.js +22 -22
- package/dist/cjs/src/binance.js +5 -5
- package/dist/cjs/src/bingx.js +2 -2
- package/dist/cjs/src/bitget.js +7 -4
- package/dist/cjs/src/bitmart.js +3 -8
- package/dist/cjs/src/bitmex.js +2 -2
- package/dist/cjs/src/bybit.js +82 -71
- package/dist/cjs/src/coinbase.js +8 -8
- package/dist/cjs/src/coinbaseinternational.js +2 -2
- package/dist/cjs/src/coinex.js +513 -449
- package/dist/cjs/src/coinlist.js +12 -12
- package/dist/cjs/src/coinmetro.js +2 -2
- package/dist/cjs/src/cryptocom.js +16 -16
- package/dist/cjs/src/gate.js +2 -2
- package/dist/cjs/src/hitbtc.js +3 -3
- package/dist/cjs/src/htx.js +3 -7
- package/dist/cjs/src/indodax.js +2 -2
- package/dist/cjs/src/kraken.js +3 -1
- package/dist/cjs/src/kucoin.js +4 -4
- package/dist/cjs/src/kucoinfutures.js +6 -6
- package/dist/cjs/src/mexc.js +5 -5
- package/dist/cjs/src/okx.js +6 -6
- package/dist/cjs/src/poloniexfutures.js +4 -4
- package/dist/cjs/src/pro/bitget.js +140 -89
- package/dist/cjs/src/pro/bybit.js +196 -11
- package/dist/cjs/src/pro/coinbase.js +107 -29
- package/dist/cjs/src/pro/mexc.js +21 -1
- package/dist/cjs/src/probit.js +2 -2
- package/dist/cjs/src/whitebit.js +76 -1
- package/dist/cjs/src/woo.js +2 -2
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bybit.d.ts +1 -0
- package/js/src/base/Exchange.d.ts +10 -6
- package/js/src/base/Exchange.js +15 -0
- package/js/src/base/types.d.ts +17 -2
- package/js/src/bigone.js +22 -22
- package/js/src/binance.d.ts +2 -9
- package/js/src/binance.js +5 -5
- package/js/src/bingx.js +2 -2
- package/js/src/bitget.d.ts +4 -31
- package/js/src/bitget.js +7 -4
- package/js/src/bitmart.d.ts +4 -24
- package/js/src/bitmart.js +3 -8
- package/js/src/bitmex.js +2 -2
- package/js/src/bybit.d.ts +7 -9
- package/js/src/bybit.js +82 -71
- package/js/src/coinbase.js +8 -8
- package/js/src/coinbaseinternational.js +2 -2
- package/js/src/coinex.d.ts +4 -24
- package/js/src/coinex.js +513 -449
- package/js/src/coinlist.js +12 -12
- package/js/src/coinmetro.js +2 -2
- package/js/src/cryptocom.js +16 -16
- package/js/src/digifinex.d.ts +3 -10
- package/js/src/gate.js +2 -2
- package/js/src/hitbtc.js +3 -3
- package/js/src/htx.d.ts +3 -13
- package/js/src/htx.js +3 -7
- package/js/src/indodax.js +2 -2
- package/js/src/kraken.js +3 -1
- package/js/src/kucoin.js +4 -4
- package/js/src/kucoinfutures.js +6 -6
- package/js/src/mexc.js +5 -5
- package/js/src/okx.d.ts +3 -10
- package/js/src/okx.js +6 -6
- package/js/src/poloniexfutures.js +4 -4
- package/js/src/pro/bitget.js +140 -89
- package/js/src/pro/bybit.d.ts +5 -1
- package/js/src/pro/bybit.js +196 -11
- package/js/src/pro/coinbase.d.ts +4 -0
- package/js/src/pro/coinbase.js +107 -29
- package/js/src/pro/mexc.js +21 -1
- package/js/src/probit.js +2 -2
- package/js/src/whitebit.d.ts +1 -0
- package/js/src/whitebit.js +76 -1
- package/js/src/woo.js +2 -2
- package/package.json +6 -5
- package/dist/cjs/src/flowbtc.js +0 -35
package/js/src/coinex.js
CHANGED
|
@@ -1718,121 +1718,6 @@ export default class coinex extends Exchange {
|
|
|
1718
1718
|
return this.safeString(statuses, status, status);
|
|
1719
1719
|
}
|
|
1720
1720
|
parseOrder(order, market = undefined) {
|
|
1721
|
-
//
|
|
1722
|
-
// fetchOrder
|
|
1723
|
-
//
|
|
1724
|
-
// {
|
|
1725
|
-
// "amount": "0.1",
|
|
1726
|
-
// "asset_fee": "0.22736197736197736197",
|
|
1727
|
-
// "avg_price": "196.85000000000000000000",
|
|
1728
|
-
// "create_time": 1537270135,
|
|
1729
|
-
// "deal_amount": "0.1",
|
|
1730
|
-
// "deal_fee": "0",
|
|
1731
|
-
// "deal_money": "19.685",
|
|
1732
|
-
// "fee_asset": "CET",
|
|
1733
|
-
// "fee_discount": "0.5",
|
|
1734
|
-
// "id": 1788259447,
|
|
1735
|
-
// "left": "0",
|
|
1736
|
-
// "maker_fee_rate": "0",
|
|
1737
|
-
// "market": "ETHUSDT",
|
|
1738
|
-
// "order_type": "limit",
|
|
1739
|
-
// "price": "170.00000000",
|
|
1740
|
-
// "status": "done",
|
|
1741
|
-
// "taker_fee_rate": "0.0005",
|
|
1742
|
-
// "type": "sell",
|
|
1743
|
-
// "client_id": "",
|
|
1744
|
-
// }
|
|
1745
|
-
//
|
|
1746
|
-
// Spot and Margin cancelOrder, fetchOrder
|
|
1747
|
-
//
|
|
1748
|
-
// {
|
|
1749
|
-
// "amount":"1.5",
|
|
1750
|
-
// "asset_fee":"0",
|
|
1751
|
-
// "avg_price":"0.14208538",
|
|
1752
|
-
// "client_id":"",
|
|
1753
|
-
// "create_time":1650993819,
|
|
1754
|
-
// "deal_amount":"10.55703267",
|
|
1755
|
-
// "deal_fee":"0.0029999999971787292",
|
|
1756
|
-
// "deal_money":"1.4999999985893646",
|
|
1757
|
-
// "fee_asset":null,
|
|
1758
|
-
// "fee_discount":"1",
|
|
1759
|
-
// "finished_time":null,
|
|
1760
|
-
// "id":74556296907,
|
|
1761
|
-
// "left":"0.0000000014106354",
|
|
1762
|
-
// "maker_fee_rate":"0",
|
|
1763
|
-
// "market":"DOGEUSDT",
|
|
1764
|
-
// "money_fee":"0.0029999999971787292",
|
|
1765
|
-
// "order_type":"market",
|
|
1766
|
-
// "price":"0",
|
|
1767
|
-
// "status":"done",
|
|
1768
|
-
// "stock_fee":"0",
|
|
1769
|
-
// "taker_fee_rate":"0.002",
|
|
1770
|
-
// "type":"buy"
|
|
1771
|
-
// "client_id": "",
|
|
1772
|
-
// }
|
|
1773
|
-
//
|
|
1774
|
-
// Swap cancelOrder, fetchOrder
|
|
1775
|
-
//
|
|
1776
|
-
// {
|
|
1777
|
-
// "amount": "0.0005",
|
|
1778
|
-
// "client_id": "",
|
|
1779
|
-
// "create_time": 1651004578.618224,
|
|
1780
|
-
// "deal_asset_fee": "0.00000000000000000000",
|
|
1781
|
-
// "deal_fee": "0.00000000000000000000",
|
|
1782
|
-
// "deal_profit": "0.00000000000000000000",
|
|
1783
|
-
// "deal_stock": "0.00000000000000000000",
|
|
1784
|
-
// "effect_type": 1,
|
|
1785
|
-
// "fee_asset": "",
|
|
1786
|
-
// "fee_discount": "0.00000000000000000000",
|
|
1787
|
-
// "last_deal_amount": "0.00000000000000000000",
|
|
1788
|
-
// "last_deal_id": 0,
|
|
1789
|
-
// "last_deal_price": "0.00000000000000000000",
|
|
1790
|
-
// "last_deal_role": 0,
|
|
1791
|
-
// "last_deal_time": 0,
|
|
1792
|
-
// "last_deal_type": 0,
|
|
1793
|
-
// "left": "0.0005",
|
|
1794
|
-
// "leverage": "3",
|
|
1795
|
-
// "maker_fee": "0.00030",
|
|
1796
|
-
// "market": "BTCUSDT",
|
|
1797
|
-
// "order_id": 18221659097,
|
|
1798
|
-
// "position_id": 0,
|
|
1799
|
-
// "position_type": 1,
|
|
1800
|
-
// "price": "30000.00",
|
|
1801
|
-
// "side": 2,
|
|
1802
|
-
// "source": "api.v1",
|
|
1803
|
-
// "stop_id": 0,
|
|
1804
|
-
// "taker_fee": "0.00050",
|
|
1805
|
-
// "target": 0,
|
|
1806
|
-
// "type": 1,
|
|
1807
|
-
// "update_time": 1651004578.618224,
|
|
1808
|
-
// "user_id": 3620173
|
|
1809
|
-
// }
|
|
1810
|
-
//
|
|
1811
|
-
// Swap Stop cancelOrder, fetchOrder
|
|
1812
|
-
//
|
|
1813
|
-
// {
|
|
1814
|
-
// "amount": "0.0005",
|
|
1815
|
-
// "client_id": "",
|
|
1816
|
-
// "create_time": 1651034023.008771,
|
|
1817
|
-
// "effect_type": 1,
|
|
1818
|
-
// "fee_asset": "",
|
|
1819
|
-
// "fee_discount": "0.00000000000000000000",
|
|
1820
|
-
// "maker_fee": "0.00030",
|
|
1821
|
-
// "market": "BTCUSDT",
|
|
1822
|
-
// "order_id": 18256915101,
|
|
1823
|
-
// "price": "31000.00",
|
|
1824
|
-
// "side": 2,
|
|
1825
|
-
// "source": "api.v1",
|
|
1826
|
-
// "state": 1,
|
|
1827
|
-
// "stop_price": "31500.00",
|
|
1828
|
-
// "stop_type": 1,
|
|
1829
|
-
// "taker_fee": "0.00050",
|
|
1830
|
-
// "target": 0,
|
|
1831
|
-
// "type": 1,
|
|
1832
|
-
// "update_time": 1651034397.193624,
|
|
1833
|
-
// "user_id": 3620173
|
|
1834
|
-
// }
|
|
1835
|
-
//
|
|
1836
1721
|
//
|
|
1837
1722
|
// Spot and Margin fetchOpenOrders, fetchClosedOrders
|
|
1838
1723
|
//
|
|
@@ -1938,7 +1823,7 @@ export default class coinex extends Exchange {
|
|
|
1938
1823
|
// "user_id": 3620173
|
|
1939
1824
|
// }
|
|
1940
1825
|
//
|
|
1941
|
-
// Spot and Margin createOrder, createOrders, cancelOrders v2
|
|
1826
|
+
// Spot and Margin createOrder, createOrders, editOrder, cancelOrders, cancelOrder v2
|
|
1942
1827
|
//
|
|
1943
1828
|
// {
|
|
1944
1829
|
// "amount": "0.0001",
|
|
@@ -1964,13 +1849,13 @@ export default class coinex extends Exchange {
|
|
|
1964
1849
|
// "updated_at": 1714114386250
|
|
1965
1850
|
// }
|
|
1966
1851
|
//
|
|
1967
|
-
// Spot, Margin and Swap trigger createOrder, createOrders v2
|
|
1852
|
+
// Spot, Margin and Swap trigger createOrder, createOrders, editOrder v2
|
|
1968
1853
|
//
|
|
1969
1854
|
// {
|
|
1970
1855
|
// "stop_id": 117180138153
|
|
1971
1856
|
// }
|
|
1972
1857
|
//
|
|
1973
|
-
// Swap createOrder, createOrders, cancelOrders v2
|
|
1858
|
+
// Swap createOrder, createOrders, editOrder, cancelOrders, cancelOrder v2
|
|
1974
1859
|
//
|
|
1975
1860
|
// {
|
|
1976
1861
|
// "amount": "0.0001",
|
|
@@ -2030,7 +1915,7 @@ export default class coinex extends Exchange {
|
|
|
2030
1915
|
// "updated_at": 1714119054559
|
|
2031
1916
|
// }
|
|
2032
1917
|
//
|
|
2033
|
-
// Swap and Spot stop cancelOrders v2
|
|
1918
|
+
// Swap and Spot stop cancelOrders, cancelOrder v2
|
|
2034
1919
|
//
|
|
2035
1920
|
// {
|
|
2036
1921
|
// "amount": "0.0001",
|
|
@@ -2048,6 +1933,59 @@ export default class coinex extends Exchange {
|
|
|
2048
1933
|
// "updated_at": 1714187974363
|
|
2049
1934
|
// }
|
|
2050
1935
|
//
|
|
1936
|
+
// Swap fetchOrder v2
|
|
1937
|
+
//
|
|
1938
|
+
// {
|
|
1939
|
+
// "amount": "0.0001",
|
|
1940
|
+
// "client_id": "x-167673045-da5f31dcd478a829",
|
|
1941
|
+
// "created_at": 1714460987164,
|
|
1942
|
+
// "fee": "0",
|
|
1943
|
+
// "fee_ccy": "USDT",
|
|
1944
|
+
// "filled_amount": "0",
|
|
1945
|
+
// "filled_value": "0",
|
|
1946
|
+
// "last_filled_amount": "0",
|
|
1947
|
+
// "last_filled_price": "0",
|
|
1948
|
+
// "maker_fee_rate": "0.0003",
|
|
1949
|
+
// "market": "BTCUSDT",
|
|
1950
|
+
// "market_type": "FUTURES",
|
|
1951
|
+
// "order_id": 137319868771,
|
|
1952
|
+
// "price": "61000",
|
|
1953
|
+
// "realized_pnl": "0",
|
|
1954
|
+
// "side": "buy",
|
|
1955
|
+
// "status": "open",
|
|
1956
|
+
// "taker_fee_rate": "0.0005",
|
|
1957
|
+
// "type": "limit",
|
|
1958
|
+
// "unfilled_amount": "0.0001",
|
|
1959
|
+
// "updated_at": 1714460987164
|
|
1960
|
+
// }
|
|
1961
|
+
//
|
|
1962
|
+
// Spot and Margin fetchOrder v2
|
|
1963
|
+
//
|
|
1964
|
+
// {
|
|
1965
|
+
// "amount": "0.0001",
|
|
1966
|
+
// "base_fee": "0",
|
|
1967
|
+
// "ccy": "BTC",
|
|
1968
|
+
// "client_id": "x-167673045-da918d6724e3af81",
|
|
1969
|
+
// "created_at": 1714461638958,
|
|
1970
|
+
// "discount_fee": "0",
|
|
1971
|
+
// "filled_amount": "0",
|
|
1972
|
+
// "filled_value": "0",
|
|
1973
|
+
// "last_fill_amount": "0",
|
|
1974
|
+
// "last_fill_price": "0",
|
|
1975
|
+
// "maker_fee_rate": "0.002",
|
|
1976
|
+
// "market": "BTCUSDT",
|
|
1977
|
+
// "market_type": "SPOT",
|
|
1978
|
+
// "order_id": 117492012985,
|
|
1979
|
+
// "price": "61000",
|
|
1980
|
+
// "quote_fee": "0",
|
|
1981
|
+
// "side": "buy",
|
|
1982
|
+
// "status": "open",
|
|
1983
|
+
// "taker_fee_rate": "0.002",
|
|
1984
|
+
// "type": "limit",
|
|
1985
|
+
// "unfilled_amount": "0.0001",
|
|
1986
|
+
// "updated_at": 1714461638958
|
|
1987
|
+
// }
|
|
1988
|
+
//
|
|
2051
1989
|
const rawStatus = this.safeString(order, 'status');
|
|
2052
1990
|
let timestamp = this.safeTimestamp(order, 'create_time');
|
|
2053
1991
|
if (timestamp === undefined) {
|
|
@@ -2734,7 +2672,7 @@ export default class coinex extends Exchange {
|
|
|
2734
2672
|
* @param {string[]} ids order ids
|
|
2735
2673
|
* @param {string} symbol unified market symbol
|
|
2736
2674
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2737
|
-
* @param {boolean} [params.
|
|
2675
|
+
* @param {boolean} [params.trigger] set to true for canceling stop orders
|
|
2738
2676
|
* @returns {object} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
2739
2677
|
*/
|
|
2740
2678
|
if (symbol === undefined) {
|
|
@@ -2908,9 +2846,12 @@ export default class coinex extends Exchange {
|
|
|
2908
2846
|
async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
|
|
2909
2847
|
/**
|
|
2910
2848
|
* @method
|
|
2911
|
-
* @name
|
|
2849
|
+
* @name coinex#editOrder
|
|
2912
2850
|
* @description edit a trade order
|
|
2913
|
-
* @see https://
|
|
2851
|
+
* @see https://docs.coinex.com/api/v2/spot/order/http/edit-order
|
|
2852
|
+
* @see https://docs.coinex.com/api/v2/spot/order/http/edit-stop-order
|
|
2853
|
+
* @see https://docs.coinex.com/api/v2/futures/order/http/edit-order
|
|
2854
|
+
* @see https://docs.coinex.com/api/v2/futures/order/http/edit-stop-order
|
|
2914
2855
|
* @param {string} id order id
|
|
2915
2856
|
* @param {string} symbol unified symbol of the market to create an order in
|
|
2916
2857
|
* @param {string} type 'market' or 'limit'
|
|
@@ -2918,6 +2859,7 @@ export default class coinex extends Exchange {
|
|
|
2918
2859
|
* @param {float} amount how much of the currency you want to trade in units of the base currency
|
|
2919
2860
|
* @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
|
2920
2861
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2862
|
+
* @param {float} [params.triggerPrice] the price to trigger stop orders
|
|
2921
2863
|
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
2922
2864
|
*/
|
|
2923
2865
|
if (symbol === undefined) {
|
|
@@ -2925,12 +2867,8 @@ export default class coinex extends Exchange {
|
|
|
2925
2867
|
}
|
|
2926
2868
|
await this.loadMarkets();
|
|
2927
2869
|
const market = this.market(symbol);
|
|
2928
|
-
if (!market['spot']) {
|
|
2929
|
-
throw new NotSupported(this.id + ' editOrder() does not support ' + market['type'] + ' orders, only spot orders are accepted');
|
|
2930
|
-
}
|
|
2931
2870
|
const request = {
|
|
2932
2871
|
'market': market['id'],
|
|
2933
|
-
'id': parseInt(id),
|
|
2934
2872
|
};
|
|
2935
2873
|
if (amount !== undefined) {
|
|
2936
2874
|
request['amount'] = this.amountToPrecision(symbol, amount);
|
|
@@ -2938,38 +2876,118 @@ export default class coinex extends Exchange {
|
|
|
2938
2876
|
if (price !== undefined) {
|
|
2939
2877
|
request['price'] = this.priceToPrecision(symbol, price);
|
|
2940
2878
|
}
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2879
|
+
let response = undefined;
|
|
2880
|
+
const triggerPrice = this.safeStringN(params, ['stopPrice', 'triggerPrice', 'trigger_price']);
|
|
2881
|
+
params = this.omit(params, ['stopPrice', 'triggerPrice']);
|
|
2882
|
+
const isTriggerOrder = triggerPrice !== undefined;
|
|
2883
|
+
if (isTriggerOrder) {
|
|
2884
|
+
request['trigger_price'] = this.priceToPrecision(symbol, triggerPrice);
|
|
2885
|
+
request['stop_id'] = this.parseToNumeric(id);
|
|
2886
|
+
}
|
|
2887
|
+
else {
|
|
2888
|
+
request['order_id'] = this.parseToNumeric(id);
|
|
2889
|
+
}
|
|
2890
|
+
let marginMode = undefined;
|
|
2891
|
+
[marginMode, params] = this.handleMarginModeAndParams('editOrder', params);
|
|
2892
|
+
if (market['spot']) {
|
|
2893
|
+
if (marginMode !== undefined) {
|
|
2894
|
+
request['market_type'] = 'MARGIN';
|
|
2895
|
+
}
|
|
2896
|
+
else {
|
|
2897
|
+
request['market_type'] = 'SPOT';
|
|
2898
|
+
}
|
|
2899
|
+
if (isTriggerOrder) {
|
|
2900
|
+
response = await this.v2PrivatePostSpotModifyStopOrder(this.extend(request, params));
|
|
2901
|
+
//
|
|
2902
|
+
// {
|
|
2903
|
+
// "code": 0,
|
|
2904
|
+
// "data": {
|
|
2905
|
+
// "stop_id": 117337235167
|
|
2906
|
+
// },
|
|
2907
|
+
// "message": "OK"
|
|
2908
|
+
// }
|
|
2909
|
+
//
|
|
2910
|
+
}
|
|
2911
|
+
else {
|
|
2912
|
+
response = await this.v2PrivatePostSpotModifyOrder(this.extend(request, params));
|
|
2913
|
+
//
|
|
2914
|
+
// {
|
|
2915
|
+
// "code": 0,
|
|
2916
|
+
// "data": {
|
|
2917
|
+
// "amount": "0.0001",
|
|
2918
|
+
// "base_fee": "0",
|
|
2919
|
+
// "ccy": "BTC",
|
|
2920
|
+
// "client_id": "x-167673045-87eb2bebf42882d8",
|
|
2921
|
+
// "created_at": 1714290302047,
|
|
2922
|
+
// "discount_fee": "0",
|
|
2923
|
+
// "filled_amount": "0",
|
|
2924
|
+
// "filled_value": "0",
|
|
2925
|
+
// "last_fill_amount": "0",
|
|
2926
|
+
// "last_fill_price": "0",
|
|
2927
|
+
// "maker_fee_rate": "0.002",
|
|
2928
|
+
// "market": "BTCUSDT",
|
|
2929
|
+
// "market_type": "SPOT",
|
|
2930
|
+
// "order_id": 117336922195,
|
|
2931
|
+
// "price": "61000",
|
|
2932
|
+
// "quote_fee": "0",
|
|
2933
|
+
// "side": "buy",
|
|
2934
|
+
// "status": "open",
|
|
2935
|
+
// "taker_fee_rate": "0.002",
|
|
2936
|
+
// "type": "limit",
|
|
2937
|
+
// "unfilled_amount": "0.0001",
|
|
2938
|
+
// "updated_at": 1714290191141
|
|
2939
|
+
// },
|
|
2940
|
+
// "message": "OK"
|
|
2941
|
+
// }
|
|
2942
|
+
//
|
|
2943
|
+
}
|
|
2944
|
+
}
|
|
2945
|
+
else {
|
|
2946
|
+
request['market_type'] = 'FUTURES';
|
|
2947
|
+
if (isTriggerOrder) {
|
|
2948
|
+
response = await this.v2PrivatePostFuturesModifyStopOrder(this.extend(request, params));
|
|
2949
|
+
//
|
|
2950
|
+
// {
|
|
2951
|
+
// "code": 0,
|
|
2952
|
+
// "data": {
|
|
2953
|
+
// "stop_id": 137091875605
|
|
2954
|
+
// },
|
|
2955
|
+
// "message": "OK"
|
|
2956
|
+
// }
|
|
2957
|
+
//
|
|
2958
|
+
}
|
|
2959
|
+
else {
|
|
2960
|
+
response = await this.v2PrivatePostFuturesModifyOrder(this.extend(request, params));
|
|
2961
|
+
//
|
|
2962
|
+
// {
|
|
2963
|
+
// "code": 0,
|
|
2964
|
+
// "data": {
|
|
2965
|
+
// "amount": "0.0001",
|
|
2966
|
+
// "client_id": "x-167673045-3f2d09191462b207",
|
|
2967
|
+
// "created_at": 1714290927630,
|
|
2968
|
+
// "fee": "0",
|
|
2969
|
+
// "fee_ccy": "USDT",
|
|
2970
|
+
// "filled_amount": "0",
|
|
2971
|
+
// "filled_value": "0",
|
|
2972
|
+
// "last_filled_amount": "0",
|
|
2973
|
+
// "last_filled_price": "0",
|
|
2974
|
+
// "maker_fee_rate": "0.0003",
|
|
2975
|
+
// "market": "BTCUSDT",
|
|
2976
|
+
// "market_type": "FUTURES",
|
|
2977
|
+
// "order_id": 137091566717,
|
|
2978
|
+
// "price": "61000",
|
|
2979
|
+
// "realized_pnl": "0",
|
|
2980
|
+
// "side": "buy",
|
|
2981
|
+
// "taker_fee_rate": "0.0005",
|
|
2982
|
+
// "type": "limit",
|
|
2983
|
+
// "unfilled_amount": "0.0001",
|
|
2984
|
+
// "updated_at": 1714290927630
|
|
2985
|
+
// },
|
|
2986
|
+
// "message": "OK"
|
|
2987
|
+
// }
|
|
2988
|
+
//
|
|
2989
|
+
}
|
|
2990
|
+
}
|
|
2973
2991
|
const data = this.safeDict(response, 'data', {});
|
|
2974
2992
|
return this.parseOrder(data, market);
|
|
2975
2993
|
}
|
|
@@ -2978,189 +2996,303 @@ export default class coinex extends Exchange {
|
|
|
2978
2996
|
* @method
|
|
2979
2997
|
* @name coinex#cancelOrder
|
|
2980
2998
|
* @description cancels an open order
|
|
2981
|
-
* @see https://
|
|
2982
|
-
* @see https://
|
|
2983
|
-
* @see https://
|
|
2984
|
-
* @see https://
|
|
2985
|
-
* @see https://
|
|
2986
|
-
* @see https://
|
|
2987
|
-
* @see https://
|
|
2988
|
-
* @see https://
|
|
2999
|
+
* @see https://docs.coinex.com/api/v2/spot/order/http/cancel-order
|
|
3000
|
+
* @see https://docs.coinex.com/api/v2/spot/order/http/cancel-stop-order
|
|
3001
|
+
* @see https://docs.coinex.com/api/v2/spot/order/http/cancel-order-by-client-id
|
|
3002
|
+
* @see https://docs.coinex.com/api/v2/spot/order/http/cancel-stop-order-by-client-id
|
|
3003
|
+
* @see https://docs.coinex.com/api/v2/futures/order/http/cancel-order
|
|
3004
|
+
* @see https://docs.coinex.com/api/v2/futures/order/http/cancel-stop-order
|
|
3005
|
+
* @see https://docs.coinex.com/api/v2/futures/order/http/cancel-order-by-client-id
|
|
3006
|
+
* @see https://docs.coinex.com/api/v2/futures/order/http/cancel-stop-order-by-client-id
|
|
2989
3007
|
* @param {string} id order id
|
|
2990
3008
|
* @param {string} symbol unified symbol of the market the order was made in
|
|
2991
3009
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2992
3010
|
* @param {string} [params.clientOrderId] client order id, defaults to id if not passed
|
|
2993
|
-
* @param {boolean} [params.
|
|
2994
|
-
* @returns {object}
|
|
3011
|
+
* @param {boolean} [params.trigger] set to true for canceling a trigger order
|
|
3012
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
2995
3013
|
*/
|
|
2996
3014
|
if (symbol === undefined) {
|
|
2997
3015
|
throw new ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
|
|
2998
3016
|
}
|
|
2999
3017
|
await this.loadMarkets();
|
|
3000
3018
|
const market = this.market(symbol);
|
|
3001
|
-
const
|
|
3019
|
+
const isTriggerOrder = this.safeBool2(params, 'stop', 'trigger');
|
|
3002
3020
|
const swap = market['swap'];
|
|
3003
3021
|
const request = {
|
|
3004
3022
|
'market': market['id'],
|
|
3005
3023
|
};
|
|
3006
|
-
const accountId = this.safeInteger(params, 'account_id');
|
|
3007
3024
|
let marginMode = undefined;
|
|
3008
3025
|
[marginMode, params] = this.handleMarginModeAndParams('cancelOrder', params);
|
|
3009
|
-
|
|
3010
|
-
|
|
3011
|
-
|
|
3012
|
-
|
|
3026
|
+
if (swap) {
|
|
3027
|
+
request['market_type'] = 'FUTURES';
|
|
3028
|
+
}
|
|
3029
|
+
else {
|
|
3030
|
+
if (marginMode !== undefined) {
|
|
3031
|
+
request['market_type'] = 'MARGIN';
|
|
3032
|
+
}
|
|
3033
|
+
else {
|
|
3034
|
+
request['market_type'] = 'SPOT';
|
|
3013
3035
|
}
|
|
3014
|
-
request['account_id'] = accountId;
|
|
3015
3036
|
}
|
|
3016
|
-
const
|
|
3037
|
+
const clientOrderId = this.safeString2(params, 'client_id', 'clientOrderId');
|
|
3038
|
+
params = this.omit(params, ['stop', 'trigger', 'clientOrderId']);
|
|
3017
3039
|
let response = undefined;
|
|
3018
3040
|
if (clientOrderId !== undefined) {
|
|
3019
3041
|
request['client_id'] = clientOrderId;
|
|
3020
|
-
if (
|
|
3042
|
+
if (isTriggerOrder) {
|
|
3021
3043
|
if (swap) {
|
|
3022
|
-
response = await this.
|
|
3044
|
+
response = await this.v2PrivatePostFuturesCancelStopOrderByClientId(this.extend(request, params));
|
|
3045
|
+
// {
|
|
3046
|
+
// "code": 0,
|
|
3047
|
+
// "data": [
|
|
3048
|
+
// {
|
|
3049
|
+
// "code": 0,
|
|
3050
|
+
// "data": {
|
|
3051
|
+
// "amount": "0.0001",
|
|
3052
|
+
// "client_id": "client01",
|
|
3053
|
+
// "created_at": 1714368624473,
|
|
3054
|
+
// "market": "BTCUSDT",
|
|
3055
|
+
// "market_type": "FUTURES",
|
|
3056
|
+
// "price": "61000",
|
|
3057
|
+
// "side": "buy",
|
|
3058
|
+
// "stop_id": 137175823891,
|
|
3059
|
+
// "trigger_direction": "higher",
|
|
3060
|
+
// "trigger_price": "61500",
|
|
3061
|
+
// "trigger_price_type": "latest_price",
|
|
3062
|
+
// "type": "limit",
|
|
3063
|
+
// "updated_at": 1714368661444
|
|
3064
|
+
// },
|
|
3065
|
+
// "message": ""
|
|
3066
|
+
// }
|
|
3067
|
+
// ],
|
|
3068
|
+
// "message": "OK"
|
|
3069
|
+
// }
|
|
3023
3070
|
}
|
|
3024
3071
|
else {
|
|
3025
|
-
response = await this.
|
|
3072
|
+
response = await this.v2PrivatePostSpotCancelStopOrderByClientId(this.extend(request, params));
|
|
3073
|
+
// {
|
|
3074
|
+
// "code" :0,
|
|
3075
|
+
// "data": [
|
|
3076
|
+
// {
|
|
3077
|
+
// "code": 0,
|
|
3078
|
+
// "data": {
|
|
3079
|
+
// "amount": "0.0001",
|
|
3080
|
+
// "ccy": "BTC",
|
|
3081
|
+
// "client_id": "client01",
|
|
3082
|
+
// "created_at": 1714366950279,
|
|
3083
|
+
// "market": "BTCUSDT",
|
|
3084
|
+
// "market_type": "SPOT",
|
|
3085
|
+
// "price": "61000",
|
|
3086
|
+
// "side": "buy",
|
|
3087
|
+
// "stop_id": 117402512706,
|
|
3088
|
+
// "trigger_direction": "higher",
|
|
3089
|
+
// "trigger_price": "61500",
|
|
3090
|
+
// "trigger_price_type": "mark_price",
|
|
3091
|
+
// "type": "limit",
|
|
3092
|
+
// "updated_at": 1714366950279
|
|
3093
|
+
// },
|
|
3094
|
+
// "message": "OK"
|
|
3095
|
+
// }
|
|
3096
|
+
// ],
|
|
3097
|
+
// "message": "OK"
|
|
3098
|
+
// }
|
|
3026
3099
|
}
|
|
3027
3100
|
}
|
|
3028
3101
|
else {
|
|
3029
3102
|
if (swap) {
|
|
3030
|
-
response = await this.
|
|
3103
|
+
response = await this.v2PrivatePostFuturesCancelOrderByClientId(this.extend(request, params));
|
|
3104
|
+
// {
|
|
3105
|
+
// "code": 0,
|
|
3106
|
+
// "data": [
|
|
3107
|
+
// {
|
|
3108
|
+
// "code": 0,
|
|
3109
|
+
// "data": {
|
|
3110
|
+
// "amount": "0.0001",
|
|
3111
|
+
// "client_id": "x-167673045-bf60e24bb437a3df",
|
|
3112
|
+
// "created_at": 1714368416437,
|
|
3113
|
+
// "fee": "0",
|
|
3114
|
+
// "fee_ccy": "USDT",
|
|
3115
|
+
// "filled_amount": "0",
|
|
3116
|
+
// "filled_value": "0",
|
|
3117
|
+
// "last_filled_amount": "0",
|
|
3118
|
+
// "last_filled_price": "0",
|
|
3119
|
+
// "maker_fee_rate": "0.0003",
|
|
3120
|
+
// "market": "BTCUSDT",
|
|
3121
|
+
// "market_type": "FUTURES",
|
|
3122
|
+
// "order_id": 137175616437,
|
|
3123
|
+
// "price": "61000",
|
|
3124
|
+
// "realized_pnl": "0",
|
|
3125
|
+
// "side": "buy",
|
|
3126
|
+
// "taker_fee_rate": "0.0005",
|
|
3127
|
+
// "type": "limit",
|
|
3128
|
+
// "unfilled_amount": "0.0001",
|
|
3129
|
+
// "updated_at": 1714368507174
|
|
3130
|
+
// },
|
|
3131
|
+
// "message": ""
|
|
3132
|
+
// }
|
|
3133
|
+
// ],
|
|
3134
|
+
// "message": "OK"
|
|
3135
|
+
// }
|
|
3031
3136
|
}
|
|
3032
3137
|
else {
|
|
3033
|
-
response = await this.
|
|
3138
|
+
response = await this.v2PrivatePostSpotCancelOrderByClientId(this.extend(request, params));
|
|
3139
|
+
// {
|
|
3140
|
+
// "code": 0,
|
|
3141
|
+
// "data": [
|
|
3142
|
+
// {
|
|
3143
|
+
// "code": 0,
|
|
3144
|
+
// "data": {
|
|
3145
|
+
// "amount": "0.0001",
|
|
3146
|
+
// "base_fee": "0",
|
|
3147
|
+
// "ccy": "BTC",
|
|
3148
|
+
// "client_id": "x-167673045-d49eaca5f412afc8",
|
|
3149
|
+
// "created_at": 1714366502807,
|
|
3150
|
+
// "discount_fee": "0",
|
|
3151
|
+
// "filled_amount": "0",
|
|
3152
|
+
// "filled_value": "0",
|
|
3153
|
+
// "last_fill_amount": "0",
|
|
3154
|
+
// "last_fill_price": "0",
|
|
3155
|
+
// "maker_fee_rate": "0.002",
|
|
3156
|
+
// "market": "BTCUSDT",
|
|
3157
|
+
// "market_type": "SPOT",
|
|
3158
|
+
// "order_id": 117402157490,
|
|
3159
|
+
// "price": "61000",
|
|
3160
|
+
// "quote_fee": "0",
|
|
3161
|
+
// "side": "buy",
|
|
3162
|
+
// "taker_fee_rate": "0.002",
|
|
3163
|
+
// "type": "limit",
|
|
3164
|
+
// "unfilled_amount": "0.0001",
|
|
3165
|
+
// "updated_at": 1714366502807
|
|
3166
|
+
// },
|
|
3167
|
+
// "message": "OK"
|
|
3168
|
+
// }
|
|
3169
|
+
// ],
|
|
3170
|
+
// "message": "OK"
|
|
3171
|
+
// }
|
|
3034
3172
|
}
|
|
3035
3173
|
}
|
|
3036
3174
|
}
|
|
3037
3175
|
else {
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
if (stop) {
|
|
3176
|
+
if (isTriggerOrder) {
|
|
3177
|
+
request['stop_id'] = this.parseToNumeric(id);
|
|
3041
3178
|
if (swap) {
|
|
3042
|
-
response = await this.
|
|
3179
|
+
response = await this.v2PrivatePostFuturesCancelStopOrder(this.extend(request, params));
|
|
3180
|
+
// {
|
|
3181
|
+
// "code": 0,
|
|
3182
|
+
// "data": {
|
|
3183
|
+
// "amount": "0.0001",
|
|
3184
|
+
// "ccy": "BTC",
|
|
3185
|
+
// "client_id": "x-167673045-f21ecfd7542abf1f",
|
|
3186
|
+
// "created_at": 1714366177334,
|
|
3187
|
+
// "market": "BTCUSDT",
|
|
3188
|
+
// "market_type": "SPOT",
|
|
3189
|
+
// "price": "61000",
|
|
3190
|
+
// "side": "buy",
|
|
3191
|
+
// "stop_id": 117401897954,
|
|
3192
|
+
// "trigger_direction": "higher",
|
|
3193
|
+
// "trigger_price": "61500",
|
|
3194
|
+
// "trigger_price_type": "mark_price",
|
|
3195
|
+
// "type": "limit",
|
|
3196
|
+
// "updated_at": 1714366177334
|
|
3197
|
+
// },
|
|
3198
|
+
// "message": "OK"
|
|
3199
|
+
// }
|
|
3043
3200
|
}
|
|
3044
3201
|
else {
|
|
3045
|
-
response = await this.
|
|
3202
|
+
response = await this.v2PrivatePostSpotCancelStopOrder(this.extend(request, params));
|
|
3203
|
+
// {
|
|
3204
|
+
// "code": 0,
|
|
3205
|
+
// "data": {
|
|
3206
|
+
// "amount": "0.0001",
|
|
3207
|
+
// "ccy": "BTC",
|
|
3208
|
+
// "client_id": "x-167673045-f21ecfd7542abf1f",
|
|
3209
|
+
// "created_at": 1714366177334,
|
|
3210
|
+
// "market": "BTCUSDT",
|
|
3211
|
+
// "market_type": "SPOT",
|
|
3212
|
+
// "price": "61000",
|
|
3213
|
+
// "side": "buy",
|
|
3214
|
+
// "stop_id": 117401897954,
|
|
3215
|
+
// "trigger_direction": "higher",
|
|
3216
|
+
// "trigger_price": "61500",
|
|
3217
|
+
// "trigger_price_type": "mark_price",
|
|
3218
|
+
// "type": "limit",
|
|
3219
|
+
// "updated_at": 1714366177334
|
|
3220
|
+
// },
|
|
3221
|
+
// "message": "OK"
|
|
3222
|
+
// }
|
|
3046
3223
|
}
|
|
3047
3224
|
}
|
|
3048
3225
|
else {
|
|
3226
|
+
request['order_id'] = this.parseToNumeric(id);
|
|
3049
3227
|
if (swap) {
|
|
3050
|
-
response = await this.
|
|
3228
|
+
response = await this.v2PrivatePostFuturesCancelOrder(this.extend(request, params));
|
|
3229
|
+
// {
|
|
3230
|
+
// "code": 0,
|
|
3231
|
+
// "data": {
|
|
3232
|
+
// "amount": "0.0001",
|
|
3233
|
+
// "client_id": "x-167673045-7f14381c74a98a85",
|
|
3234
|
+
// "created_at": 1714367342024,
|
|
3235
|
+
// "fee": "0",
|
|
3236
|
+
// "fee_ccy": "USDT",
|
|
3237
|
+
// "filled_amount": "0",
|
|
3238
|
+
// "filled_value": "0",
|
|
3239
|
+
// "last_filled_amount": "0",
|
|
3240
|
+
// "last_filled_price": "0",
|
|
3241
|
+
// "maker_fee_rate": "0.0003",
|
|
3242
|
+
// "market": "BTCUSDT",
|
|
3243
|
+
// "market_type": "FUTURES",
|
|
3244
|
+
// "order_id": 137174472136,
|
|
3245
|
+
// "price": "61000",
|
|
3246
|
+
// "realized_pnl": "0",
|
|
3247
|
+
// "side": "buy",
|
|
3248
|
+
// "taker_fee_rate": "0.0005",
|
|
3249
|
+
// "type": "limit",
|
|
3250
|
+
// "unfilled_amount": "0.0001",
|
|
3251
|
+
// "updated_at": 1714367515978
|
|
3252
|
+
// },
|
|
3253
|
+
// "message": "OK"
|
|
3254
|
+
// }
|
|
3051
3255
|
}
|
|
3052
3256
|
else {
|
|
3053
|
-
response = await this.
|
|
3257
|
+
response = await this.v2PrivatePostSpotCancelOrder(this.extend(request, params));
|
|
3258
|
+
// {
|
|
3259
|
+
// "code": 0,
|
|
3260
|
+
// "data": {
|
|
3261
|
+
// "amount": "0.0001",
|
|
3262
|
+
// "base_fee": "0",
|
|
3263
|
+
// "ccy": "BTC",
|
|
3264
|
+
// "client_id": "x-167673045-86fbe37b54a2aea3",
|
|
3265
|
+
// "created_at": 1714365277437,
|
|
3266
|
+
// "discount_fee": "0",
|
|
3267
|
+
// "filled_amount": "0",
|
|
3268
|
+
// "filled_value": "0",
|
|
3269
|
+
// "last_fill_amount": "0",
|
|
3270
|
+
// "last_fill_price": "0",
|
|
3271
|
+
// "maker_fee_rate": "0.002",
|
|
3272
|
+
// "market": "BTCUSDT",
|
|
3273
|
+
// "market_type": "SPOT",
|
|
3274
|
+
// "order_id": 117401168172,
|
|
3275
|
+
// "price": "61000",
|
|
3276
|
+
// "quote_fee": "0",
|
|
3277
|
+
// "side": "buy",
|
|
3278
|
+
// "taker_fee_rate": "0.002",
|
|
3279
|
+
// "type": "limit",
|
|
3280
|
+
// "unfilled_amount": "0.0001",
|
|
3281
|
+
// "updated_at": 1714365277437
|
|
3282
|
+
// },
|
|
3283
|
+
// "message": "OK"
|
|
3284
|
+
// }
|
|
3054
3285
|
}
|
|
3055
3286
|
}
|
|
3056
3287
|
}
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
// "avg_price": "0.00",
|
|
3066
|
-
// "client_id": "",
|
|
3067
|
-
// "create_time": 1650951627,
|
|
3068
|
-
// "deal_amount": "0",
|
|
3069
|
-
// "deal_fee": "0",
|
|
3070
|
-
// "deal_money": "0",
|
|
3071
|
-
// "fee_asset": null,
|
|
3072
|
-
// "fee_discount": "1",
|
|
3073
|
-
// "finished_time": null,
|
|
3074
|
-
// "id": 74510932594,
|
|
3075
|
-
// "left": "0.0005",
|
|
3076
|
-
// "maker_fee_rate": "0.002",
|
|
3077
|
-
// "market": "BTCUSDT",
|
|
3078
|
-
// "money_fee": "0",
|
|
3079
|
-
// "order_type": "limit",
|
|
3080
|
-
// "price": "30000",
|
|
3081
|
-
// "status": "not_deal",
|
|
3082
|
-
// "stock_fee": "0",
|
|
3083
|
-
// "taker_fee_rate": "0.002",
|
|
3084
|
-
// "type": "buy"
|
|
3085
|
-
// },
|
|
3086
|
-
// "message": "Success"
|
|
3087
|
-
// }
|
|
3088
|
-
//
|
|
3089
|
-
// Swap
|
|
3090
|
-
//
|
|
3091
|
-
// {
|
|
3092
|
-
// "code": 0,
|
|
3093
|
-
// "data": {
|
|
3094
|
-
// "amount": "0.0005",
|
|
3095
|
-
// "client_id": "",
|
|
3096
|
-
// "create_time": 1651004578.618224,
|
|
3097
|
-
// "deal_asset_fee": "0.00000000000000000000",
|
|
3098
|
-
// "deal_fee": "0.00000000000000000000",
|
|
3099
|
-
// "deal_profit": "0.00000000000000000000",
|
|
3100
|
-
// "deal_stock": "0.00000000000000000000",
|
|
3101
|
-
// "effect_type": 1,
|
|
3102
|
-
// "fee_asset": "",
|
|
3103
|
-
// "fee_discount": "0.00000000000000000000",
|
|
3104
|
-
// "last_deal_amount": "0.00000000000000000000",
|
|
3105
|
-
// "last_deal_id": 0,
|
|
3106
|
-
// "last_deal_price": "0.00000000000000000000",
|
|
3107
|
-
// "last_deal_role": 0,
|
|
3108
|
-
// "last_deal_time": 0,
|
|
3109
|
-
// "last_deal_type": 0,
|
|
3110
|
-
// "left": "0.0005",
|
|
3111
|
-
// "leverage": "3",
|
|
3112
|
-
// "maker_fee": "0.00030",
|
|
3113
|
-
// "market": "BTCUSDT",
|
|
3114
|
-
// "order_id": 18221659097,
|
|
3115
|
-
// "position_id": 0,
|
|
3116
|
-
// "position_type": 1,
|
|
3117
|
-
// "price": "30000.00",
|
|
3118
|
-
// "side": 2,
|
|
3119
|
-
// "source": "api.v1",
|
|
3120
|
-
// "stop_id": 0,
|
|
3121
|
-
// "taker_fee": "0.00050",
|
|
3122
|
-
// "target": 0,
|
|
3123
|
-
// "type": 1,
|
|
3124
|
-
// "update_time": 1651004578.618224,
|
|
3125
|
-
// "user_id": 3620173
|
|
3126
|
-
// },
|
|
3127
|
-
// "message": "OK"
|
|
3128
|
-
// }
|
|
3129
|
-
//
|
|
3130
|
-
// Swap Stop
|
|
3131
|
-
//
|
|
3132
|
-
// {
|
|
3133
|
-
// "code": 0,
|
|
3134
|
-
// "data": {
|
|
3135
|
-
// "amount": "0.0005",
|
|
3136
|
-
// "client_id": "",
|
|
3137
|
-
// "create_time": 1651034023.008771,
|
|
3138
|
-
// "effect_type": 1,
|
|
3139
|
-
// "fee_asset": "",
|
|
3140
|
-
// "fee_discount": "0.00000000000000000000",
|
|
3141
|
-
// "maker_fee": "0.00030",
|
|
3142
|
-
// "market": "BTCUSDT",
|
|
3143
|
-
// "order_id": 18256915101,
|
|
3144
|
-
// "price": "31000.00",
|
|
3145
|
-
// "side": 2,
|
|
3146
|
-
// "source": "api.v1",
|
|
3147
|
-
// "state": 1,
|
|
3148
|
-
// "stop_price": "31500.00",
|
|
3149
|
-
// "stop_type": 1,
|
|
3150
|
-
// "taker_fee": "0.00050",
|
|
3151
|
-
// "target": 0,
|
|
3152
|
-
// "type": 1,
|
|
3153
|
-
// "update_time": 1651034397.193624,
|
|
3154
|
-
// "user_id": 3620173
|
|
3155
|
-
// },
|
|
3156
|
-
// "message":"OK"
|
|
3157
|
-
// }
|
|
3158
|
-
//
|
|
3159
|
-
// Spot and Margin Stop
|
|
3160
|
-
//
|
|
3161
|
-
// {"code":0,"data":{},"message":"Success"}
|
|
3162
|
-
//
|
|
3163
|
-
const data = this.safeDict(response, 'data');
|
|
3288
|
+
let data = undefined;
|
|
3289
|
+
if (clientOrderId !== undefined) {
|
|
3290
|
+
const rows = this.safeList(response, 'data', []);
|
|
3291
|
+
data = this.safeDict(rows[0], 'data', {});
|
|
3292
|
+
}
|
|
3293
|
+
else {
|
|
3294
|
+
data = this.safeDict(response, 'data', {});
|
|
3295
|
+
}
|
|
3164
3296
|
return this.parseOrder(data, market);
|
|
3165
3297
|
}
|
|
3166
3298
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
@@ -3168,12 +3300,11 @@ export default class coinex extends Exchange {
|
|
|
3168
3300
|
* @method
|
|
3169
3301
|
* @name coinex#cancelAllOrders
|
|
3170
3302
|
* @description cancel all open orders in a market
|
|
3171
|
-
* @see https://
|
|
3172
|
-
* @see https://
|
|
3173
|
-
* @see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http024_cancel_stop_all
|
|
3174
|
-
* @see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http022_cancel_all
|
|
3303
|
+
* @see https://docs.coinex.com/api/v2/spot/order/http/cancel-all-order
|
|
3304
|
+
* @see https://docs.coinex.com/api/v2/futures/order/http/cancel-all-order
|
|
3175
3305
|
* @param {string} symbol unified market symbol of the market to cancel orders in
|
|
3176
3306
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3307
|
+
* @param {string} [params.marginMode] 'cross' or 'isolated' for canceling spot margin orders
|
|
3177
3308
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
3178
3309
|
*/
|
|
3179
3310
|
if (symbol === undefined) {
|
|
@@ -3181,43 +3312,31 @@ export default class coinex extends Exchange {
|
|
|
3181
3312
|
}
|
|
3182
3313
|
await this.loadMarkets();
|
|
3183
3314
|
const market = this.market(symbol);
|
|
3184
|
-
const marketId = market['id'];
|
|
3185
|
-
const accountId = this.safeInteger(params, 'account_id', 0);
|
|
3186
3315
|
const request = {
|
|
3187
|
-
'market':
|
|
3188
|
-
// 'account_id': accountId, // SPOT, main account ID: 0, margin account ID: See < Inquire Margin Account Market Info >, future account ID: See < Inquire Future Account Market Info >
|
|
3189
|
-
// 'side': 0, // SWAP, 0: All, 1: Sell, 2: Buy
|
|
3316
|
+
'market': market['id'],
|
|
3190
3317
|
};
|
|
3191
|
-
const swap = market['swap'];
|
|
3192
|
-
const stop = this.safeValue(params, 'stop');
|
|
3193
|
-
params = this.omit(params, ['stop', 'account_id']);
|
|
3194
3318
|
let response = undefined;
|
|
3195
|
-
if (swap) {
|
|
3196
|
-
|
|
3197
|
-
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
}
|
|
3319
|
+
if (market['swap']) {
|
|
3320
|
+
request['market_type'] = 'FUTURES';
|
|
3321
|
+
response = await this.v2PrivatePostFuturesCancelAllOrder(this.extend(request, params));
|
|
3322
|
+
//
|
|
3323
|
+
// {"code":0,"data":{},"message":"OK"}
|
|
3324
|
+
//
|
|
3202
3325
|
}
|
|
3203
3326
|
else {
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3327
|
+
let marginMode = undefined;
|
|
3328
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchOrdersByStatus', params);
|
|
3329
|
+
if (marginMode !== undefined) {
|
|
3330
|
+
request['market_type'] = 'MARGIN';
|
|
3207
3331
|
}
|
|
3208
3332
|
else {
|
|
3209
|
-
|
|
3333
|
+
request['market_type'] = 'SPOT';
|
|
3210
3334
|
}
|
|
3335
|
+
response = await this.v2PrivatePostSpotCancelAllOrder(this.extend(request, params));
|
|
3336
|
+
//
|
|
3337
|
+
// {"code":0,"data":{},"message":"OK"}
|
|
3338
|
+
//
|
|
3211
3339
|
}
|
|
3212
|
-
//
|
|
3213
|
-
// Spot and Margin
|
|
3214
|
-
//
|
|
3215
|
-
// {"code": 0, "data": null, "message": "Success"}
|
|
3216
|
-
//
|
|
3217
|
-
// Swap
|
|
3218
|
-
//
|
|
3219
|
-
// {"code": 0, "data": {"status":"success"}, "message": "OK"}
|
|
3220
|
-
//
|
|
3221
3340
|
return response;
|
|
3222
3341
|
}
|
|
3223
3342
|
async fetchOrder(id, symbol = undefined, params = {}) {
|
|
@@ -3225,9 +3344,8 @@ export default class coinex extends Exchange {
|
|
|
3225
3344
|
* @method
|
|
3226
3345
|
* @name coinex#fetchOrder
|
|
3227
3346
|
* @description fetches information on an order made by the user
|
|
3228
|
-
* @see https://
|
|
3229
|
-
* @see https://
|
|
3230
|
-
* @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot003_trade007_order_status
|
|
3347
|
+
* @see https://docs.coinex.com/api/v2/spot/order/http/get-order-status
|
|
3348
|
+
* @see https://docs.coinex.com/api/v2/futures/order/http/get-order-status
|
|
3231
3349
|
* @param {string} symbol unified symbol of the market the order was made in
|
|
3232
3350
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3233
3351
|
* @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
@@ -3237,127 +3355,77 @@ export default class coinex extends Exchange {
|
|
|
3237
3355
|
}
|
|
3238
3356
|
await this.loadMarkets();
|
|
3239
3357
|
const market = this.market(symbol);
|
|
3240
|
-
const swap = market['swap'];
|
|
3241
|
-
const stop = this.safeValue(params, 'stop');
|
|
3242
|
-
params = this.omit(params, 'stop');
|
|
3243
3358
|
const request = {
|
|
3244
3359
|
'market': market['id'],
|
|
3245
|
-
|
|
3246
|
-
// 'order_id': id, // SWAP
|
|
3360
|
+
'order_id': this.parseToNumeric(id),
|
|
3247
3361
|
};
|
|
3248
|
-
const idRequest = swap ? 'order_id' : 'id';
|
|
3249
|
-
request[idRequest] = id;
|
|
3250
3362
|
let response = undefined;
|
|
3251
|
-
if (swap) {
|
|
3252
|
-
|
|
3253
|
-
|
|
3254
|
-
|
|
3255
|
-
|
|
3256
|
-
|
|
3257
|
-
|
|
3363
|
+
if (market['swap']) {
|
|
3364
|
+
response = await this.v2PrivateGetFuturesOrderStatus(this.extend(request, params));
|
|
3365
|
+
//
|
|
3366
|
+
// {
|
|
3367
|
+
// "code": 0,
|
|
3368
|
+
// "data": {
|
|
3369
|
+
// "amount": "0.0001",
|
|
3370
|
+
// "client_id": "x-167673045-da5f31dcd478a829",
|
|
3371
|
+
// "created_at": 1714460987164,
|
|
3372
|
+
// "fee": "0",
|
|
3373
|
+
// "fee_ccy": "USDT",
|
|
3374
|
+
// "filled_amount": "0",
|
|
3375
|
+
// "filled_value": "0",
|
|
3376
|
+
// "last_filled_amount": "0",
|
|
3377
|
+
// "last_filled_price": "0",
|
|
3378
|
+
// "maker_fee_rate": "0.0003",
|
|
3379
|
+
// "market": "BTCUSDT",
|
|
3380
|
+
// "market_type": "FUTURES",
|
|
3381
|
+
// "order_id": 137319868771,
|
|
3382
|
+
// "price": "61000",
|
|
3383
|
+
// "realized_pnl": "0",
|
|
3384
|
+
// "side": "buy",
|
|
3385
|
+
// "status": "open",
|
|
3386
|
+
// "taker_fee_rate": "0.0005",
|
|
3387
|
+
// "type": "limit",
|
|
3388
|
+
// "unfilled_amount": "0.0001",
|
|
3389
|
+
// "updated_at": 1714460987164
|
|
3390
|
+
// },
|
|
3391
|
+
// "message": "OK"
|
|
3392
|
+
// }
|
|
3393
|
+
//
|
|
3258
3394
|
}
|
|
3259
3395
|
else {
|
|
3260
|
-
response = await this.
|
|
3396
|
+
response = await this.v2PrivateGetSpotOrderStatus(this.extend(request, params));
|
|
3397
|
+
//
|
|
3398
|
+
// {
|
|
3399
|
+
// "code": 0,
|
|
3400
|
+
// "data": {
|
|
3401
|
+
// "amount": "0.0001",
|
|
3402
|
+
// "base_fee": "0",
|
|
3403
|
+
// "ccy": "BTC",
|
|
3404
|
+
// "client_id": "x-167673045-da918d6724e3af81",
|
|
3405
|
+
// "created_at": 1714461638958,
|
|
3406
|
+
// "discount_fee": "0",
|
|
3407
|
+
// "filled_amount": "0",
|
|
3408
|
+
// "filled_value": "0",
|
|
3409
|
+
// "last_fill_amount": "0",
|
|
3410
|
+
// "last_fill_price": "0",
|
|
3411
|
+
// "maker_fee_rate": "0.002",
|
|
3412
|
+
// "market": "BTCUSDT",
|
|
3413
|
+
// "market_type": "SPOT",
|
|
3414
|
+
// "order_id": 117492012985,
|
|
3415
|
+
// "price": "61000",
|
|
3416
|
+
// "quote_fee": "0",
|
|
3417
|
+
// "side": "buy",
|
|
3418
|
+
// "status": "open",
|
|
3419
|
+
// "taker_fee_rate": "0.002",
|
|
3420
|
+
// "type": "limit",
|
|
3421
|
+
// "unfilled_amount": "0.0001",
|
|
3422
|
+
// "updated_at": 1714461638958
|
|
3423
|
+
// },
|
|
3424
|
+
// "message": "OK"
|
|
3425
|
+
// }
|
|
3426
|
+
//
|
|
3261
3427
|
}
|
|
3262
|
-
|
|
3263
|
-
// Spot
|
|
3264
|
-
//
|
|
3265
|
-
// {
|
|
3266
|
-
// "code": 0,
|
|
3267
|
-
// "data": {
|
|
3268
|
-
// "amount": "0.1",
|
|
3269
|
-
// "asset_fee": "0.22736197736197736197",
|
|
3270
|
-
// "avg_price": "196.85000000000000000000",
|
|
3271
|
-
// "create_time": 1537270135,
|
|
3272
|
-
// "deal_amount": "0.1",
|
|
3273
|
-
// "deal_fee": "0",
|
|
3274
|
-
// "deal_money": "19.685",
|
|
3275
|
-
// "fee_asset": "CET",
|
|
3276
|
-
// "fee_discount": "0.5",
|
|
3277
|
-
// "id": 1788259447,
|
|
3278
|
-
// "left": "0",
|
|
3279
|
-
// "maker_fee_rate": "0",
|
|
3280
|
-
// "market": "ETHUSDT",
|
|
3281
|
-
// "order_type": "limit",
|
|
3282
|
-
// "price": "170.00000000",
|
|
3283
|
-
// "status": "done",
|
|
3284
|
-
// "taker_fee_rate": "0.0005",
|
|
3285
|
-
// "type": "sell",
|
|
3286
|
-
// },
|
|
3287
|
-
// "message": "Ok"
|
|
3288
|
-
// }
|
|
3289
|
-
//
|
|
3290
|
-
// Swap
|
|
3291
|
-
//
|
|
3292
|
-
// {
|
|
3293
|
-
// "code": 0,
|
|
3294
|
-
// "data": {
|
|
3295
|
-
// "amount": "0.0005",
|
|
3296
|
-
// "client_id": "",
|
|
3297
|
-
// "create_time": 1651004578.618224,
|
|
3298
|
-
// "deal_asset_fee": "0.00000000000000000000",
|
|
3299
|
-
// "deal_fee": "0.00000000000000000000",
|
|
3300
|
-
// "deal_profit": "0.00000000000000000000",
|
|
3301
|
-
// "deal_stock": "0.00000000000000000000",
|
|
3302
|
-
// "effect_type": 1,
|
|
3303
|
-
// "fee_asset": "",
|
|
3304
|
-
// "fee_discount": "0.00000000000000000000",
|
|
3305
|
-
// "last_deal_amount": "0.00000000000000000000",
|
|
3306
|
-
// "last_deal_id": 0,
|
|
3307
|
-
// "last_deal_price": "0.00000000000000000000",
|
|
3308
|
-
// "last_deal_role": 0,
|
|
3309
|
-
// "last_deal_time": 0,
|
|
3310
|
-
// "last_deal_type": 0,
|
|
3311
|
-
// "left": "0.0005",
|
|
3312
|
-
// "leverage": "3",
|
|
3313
|
-
// "maker_fee": "0.00030",
|
|
3314
|
-
// "market": "BTCUSDT",
|
|
3315
|
-
// "order_id": 18221659097,
|
|
3316
|
-
// "position_id": 0,
|
|
3317
|
-
// "position_type": 1,
|
|
3318
|
-
// "price": "30000.00",
|
|
3319
|
-
// "side": 2,
|
|
3320
|
-
// "source": "api.v1",
|
|
3321
|
-
// "stop_id": 0,
|
|
3322
|
-
// "taker_fee": "0.00050",
|
|
3323
|
-
// "target": 0,
|
|
3324
|
-
// "type": 1,
|
|
3325
|
-
// "update_time": 1651004578.618224,
|
|
3326
|
-
// "user_id": 3620173
|
|
3327
|
-
// },
|
|
3328
|
-
// "message": "OK"
|
|
3329
|
-
// }
|
|
3330
|
-
//
|
|
3331
|
-
// Swap Stop
|
|
3332
|
-
//
|
|
3333
|
-
// {
|
|
3334
|
-
// "code": 0,
|
|
3335
|
-
// "data": {
|
|
3336
|
-
// "amount": "0.0005",
|
|
3337
|
-
// "client_id": "",
|
|
3338
|
-
// "create_time": 1651034023.008771,
|
|
3339
|
-
// "effect_type": 1,
|
|
3340
|
-
// "fee_asset": "",
|
|
3341
|
-
// "fee_discount": "0.00000000000000000000",
|
|
3342
|
-
// "maker_fee": "0.00030",
|
|
3343
|
-
// "market": "BTCUSDT",
|
|
3344
|
-
// "order_id": 18256915101,
|
|
3345
|
-
// "price": "31000.00",
|
|
3346
|
-
// "side": 2,
|
|
3347
|
-
// "source": "api.v1",
|
|
3348
|
-
// "state": 1,
|
|
3349
|
-
// "stop_price": "31500.00",
|
|
3350
|
-
// "stop_type": 1,
|
|
3351
|
-
// "taker_fee": "0.00050",
|
|
3352
|
-
// "target": 0,
|
|
3353
|
-
// "type": 1,
|
|
3354
|
-
// "update_time": 1651034397.193624,
|
|
3355
|
-
// "user_id": 3620173
|
|
3356
|
-
// },
|
|
3357
|
-
// "message":"OK"
|
|
3358
|
-
// }
|
|
3359
|
-
//
|
|
3360
|
-
const data = this.safeDict(response, 'data');
|
|
3428
|
+
const data = this.safeDict(response, 'data', {});
|
|
3361
3429
|
return this.parseOrder(data, market);
|
|
3362
3430
|
}
|
|
3363
3431
|
async fetchOrdersByStatus(status, symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -5514,11 +5582,7 @@ export default class coinex extends Exchange {
|
|
|
5514
5582
|
// }
|
|
5515
5583
|
//
|
|
5516
5584
|
const data = this.safeValue(response, 'data', []);
|
|
5517
|
-
|
|
5518
|
-
for (let i = 0; i < data.length; i++) {
|
|
5519
|
-
rates.push(this.parseIsolatedBorrowRate(data[i]));
|
|
5520
|
-
}
|
|
5521
|
-
return rates;
|
|
5585
|
+
return this.parseIsolatedBorrowRates(data);
|
|
5522
5586
|
}
|
|
5523
5587
|
async fetchBorrowInterest(code = undefined, symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
5524
5588
|
await this.loadMarkets();
|