ccxt 4.5.40 → 4.5.42
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 +6 -5
- package/dist/ccxt.browser.min.js +18 -18
- package/dist/cjs/ccxt.js +6 -1
- package/dist/cjs/src/abstract/lighter.js +11 -0
- package/dist/cjs/src/ascendex.js +73 -1
- package/dist/cjs/src/base/Exchange.js +149 -17
- package/dist/cjs/src/base/functions/generic.js +1 -0
- package/dist/cjs/src/base/functions/io.js +160 -0
- package/dist/cjs/src/base/functions.js +6 -0
- package/dist/cjs/src/base/ws/Client.js +1 -0
- package/dist/cjs/src/base/ws/WsClient.js +1 -0
- package/dist/cjs/src/binance.js +1 -0
- package/dist/cjs/src/bingx.js +13 -3
- package/dist/cjs/src/bitmex.js +20 -0
- package/dist/cjs/src/blofin.js +2 -2
- package/dist/cjs/src/bybit.js +1 -1
- package/dist/cjs/src/coinspot.js +7 -2
- package/dist/cjs/src/delta.js +1 -1
- package/dist/cjs/src/gate.js +11 -4
- package/dist/cjs/src/gemini.js +76 -1
- package/dist/cjs/src/htx.js +2 -2
- package/dist/cjs/src/hyperliquid.js +20 -7
- package/dist/cjs/src/independentreserve.js +7 -7
- package/dist/cjs/src/kraken.js +1 -1
- package/dist/cjs/src/krakenfutures.js +96 -5
- package/dist/cjs/src/kucoin.js +3 -3
- package/dist/cjs/src/kucoinfutures.js +1 -1
- package/dist/cjs/src/lighter.js +2931 -0
- package/dist/cjs/src/mexc.js +0 -1
- package/dist/cjs/src/phemex.js +1 -1
- package/dist/cjs/src/pro/binance.js +2 -2
- package/dist/cjs/src/pro/bingx.js +215 -2
- package/dist/cjs/src/pro/bitget.js +1 -0
- package/dist/cjs/src/pro/defx.js +1 -1
- package/dist/cjs/src/pro/kucoinfutures.js +1 -1
- package/dist/cjs/src/pro/lighter.js +787 -0
- package/dist/cjs/src/pro/mexc.js +1 -1
- package/dist/cjs/src/pro/paradex.js +1 -1
- package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/address.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/array.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/number.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/fragments.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/index.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/interface.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/typed.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/utils/index.js +1 -0
- package/dist/cjs/src/whitebit.js +118 -16
- package/dist/cjs/src/woo.js +1 -1
- package/js/ccxt.d.ts +8 -2
- package/js/ccxt.js +6 -2
- package/js/src/abstract/gemini.d.ts +27 -0
- package/js/src/abstract/lighter.d.ts +53 -0
- package/js/src/abstract/lighter.js +11 -0
- package/js/src/ascendex.d.ts +12 -1
- package/js/src/ascendex.js +73 -1
- package/js/src/base/Exchange.d.ts +18 -6
- package/js/src/base/Exchange.js +154 -21
- package/js/src/base/functions/generic.js +1 -0
- package/js/src/base/functions/io.d.ts +32 -0
- package/js/src/base/functions/io.js +137 -0
- package/js/src/base/functions.d.ts +1 -0
- package/js/src/base/functions.js +1 -0
- package/js/src/binance.d.ts +1 -0
- package/js/src/binance.js +1 -0
- package/js/src/bingx.js +13 -3
- package/js/src/bitmex.js +20 -0
- package/js/src/blofin.js +2 -2
- package/js/src/bybit.js +1 -1
- package/js/src/coinspot.js +7 -2
- package/js/src/delta.js +1 -1
- package/js/src/gate.d.ts +1 -0
- package/js/src/gate.js +11 -4
- package/js/src/gemini.d.ts +11 -0
- package/js/src/gemini.js +76 -1
- package/js/src/htx.js +2 -2
- package/js/src/hyperliquid.js +20 -7
- package/js/src/independentreserve.js +7 -7
- package/js/src/kraken.js +1 -1
- package/js/src/krakenfutures.d.ts +1 -1
- package/js/src/krakenfutures.js +96 -5
- package/js/src/kucoin.d.ts +3 -3
- package/js/src/kucoin.js +3 -3
- package/js/src/kucoinfutures.js +1 -1
- package/js/src/lighter.d.ts +424 -0
- package/js/src/lighter.js +2930 -0
- package/js/src/mexc.js +0 -1
- package/js/src/phemex.js +1 -1
- package/js/src/pro/binance.js +2 -2
- package/js/src/pro/bingx.d.ts +17 -1
- package/js/src/pro/bingx.js +216 -3
- package/js/src/pro/bitget.js +1 -0
- package/js/src/pro/defx.js +1 -1
- package/js/src/pro/kucoinfutures.js +1 -1
- package/js/src/pro/lighter.d.ts +161 -0
- package/js/src/pro/lighter.js +786 -0
- package/js/src/pro/mexc.js +1 -1
- package/js/src/pro/paradex.js +1 -1
- package/js/src/whitebit.d.ts +2 -1
- package/js/src/whitebit.js +118 -16
- package/js/src/woo.js +1 -1
- package/package.json +1 -1
package/js/src/krakenfutures.js
CHANGED
|
@@ -1046,6 +1046,15 @@ export default class krakenfutures extends Exchange {
|
|
|
1046
1046
|
takerOrMaker = 'taker';
|
|
1047
1047
|
}
|
|
1048
1048
|
}
|
|
1049
|
+
let fee = undefined;
|
|
1050
|
+
if ((takerOrMaker !== undefined) && (cost !== undefined)) {
|
|
1051
|
+
const feeRate = this.safeString(market, takerOrMaker);
|
|
1052
|
+
fee = {
|
|
1053
|
+
'cost': Precise.stringMul(cost, feeRate),
|
|
1054
|
+
'currency': this.safeString(market, 'quote'),
|
|
1055
|
+
'rate': feeRate,
|
|
1056
|
+
};
|
|
1057
|
+
}
|
|
1049
1058
|
return this.safeTrade({
|
|
1050
1059
|
'info': trade,
|
|
1051
1060
|
'id': id,
|
|
@@ -1059,7 +1068,7 @@ export default class krakenfutures extends Exchange {
|
|
|
1059
1068
|
'price': price,
|
|
1060
1069
|
'amount': linear ? amount : undefined,
|
|
1061
1070
|
'cost': cost,
|
|
1062
|
-
'fee':
|
|
1071
|
+
'fee': fee,
|
|
1063
1072
|
});
|
|
1064
1073
|
}
|
|
1065
1074
|
createOrderRequest(symbol, type, side, amount, price = undefined, params = {}) {
|
|
@@ -1182,6 +1191,41 @@ export default class krakenfutures extends Exchange {
|
|
|
1182
1191
|
// "serverTime": "2022-02-28T19:32:17.122Z"
|
|
1183
1192
|
// }
|
|
1184
1193
|
//
|
|
1194
|
+
// MARKET
|
|
1195
|
+
//
|
|
1196
|
+
// {
|
|
1197
|
+
// "result": "success",
|
|
1198
|
+
// "serverTime": "2026-03-02T06:10:31.955Z",
|
|
1199
|
+
// "sendStatus": {
|
|
1200
|
+
// "status": "placed",
|
|
1201
|
+
// "order_id": "a133a4f9-254d-4806-8176-9acc936b6944",
|
|
1202
|
+
// "receivedTime": "2026-03-02T06:10:31.954Z",
|
|
1203
|
+
// "orderEvents": [
|
|
1204
|
+
// {
|
|
1205
|
+
// "type": "EXECUTION",
|
|
1206
|
+
// "executionId": "403bf49f-dbbe-448b-8de7-fd3cf38cc5dd",
|
|
1207
|
+
// "price": 66596.0,
|
|
1208
|
+
// "amount": 0.001,
|
|
1209
|
+
// "orderPriorEdit": null,
|
|
1210
|
+
// "orderPriorExecution": {
|
|
1211
|
+
// "orderId": "a133a4f9-254d-4806-8176-9acc936b6944",
|
|
1212
|
+
// "cliOrdId": null,
|
|
1213
|
+
// "type": "ioc",
|
|
1214
|
+
// "symbol": "PF_XBTUSD",
|
|
1215
|
+
// "side": "buy",
|
|
1216
|
+
// "quantity": 0.001,
|
|
1217
|
+
// "filled": 0,
|
|
1218
|
+
// "limitPrice": 67261.000,
|
|
1219
|
+
// "reduceOnly": false,
|
|
1220
|
+
// "timestamp": "2026-03-02T06:10:31.954Z",
|
|
1221
|
+
// "lastUpdateTimestamp": "2026-03-02T06:10:31.954Z"
|
|
1222
|
+
// },
|
|
1223
|
+
// "takerReducedQuantity": null
|
|
1224
|
+
// }
|
|
1225
|
+
// ]
|
|
1226
|
+
// }
|
|
1227
|
+
// }
|
|
1228
|
+
//
|
|
1185
1229
|
const sendStatus = this.safeValue(response, 'sendStatus');
|
|
1186
1230
|
const status = this.safeString(sendStatus, 'status');
|
|
1187
1231
|
this.verifyOrderActionSuccess(status, 'createOrder', ['filled']);
|
|
@@ -1463,8 +1507,8 @@ export default class krakenfutures extends Exchange {
|
|
|
1463
1507
|
/**
|
|
1464
1508
|
* @method
|
|
1465
1509
|
* @name krakenfutures#fetchOrders
|
|
1466
|
-
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-order-status/
|
|
1467
1510
|
* @description Gets all orders for an account from the exchange api
|
|
1511
|
+
* @see https://docs.kraken.com/api/docs/futures-api/trading/get-order-status/
|
|
1468
1512
|
* @param {string} symbol Unified market symbol
|
|
1469
1513
|
* @param {int} [since] Timestamp (ms) of earliest order. (Not used by kraken api but filtered internally by CCXT)
|
|
1470
1514
|
* @param {int} [limit] How many orders to return. (Not used by kraken api but filtered internally by CCXT)
|
|
@@ -1722,6 +1766,37 @@ export default class krakenfutures extends Exchange {
|
|
|
1722
1766
|
// ]
|
|
1723
1767
|
// }
|
|
1724
1768
|
//
|
|
1769
|
+
// MARKET
|
|
1770
|
+
//
|
|
1771
|
+
// {
|
|
1772
|
+
// "status": "placed",
|
|
1773
|
+
// "order_id": "a133a4f9-254d-4806-8176-9acc936b6944",
|
|
1774
|
+
// "receivedTime": "2026-03-02T06:10:31.954Z",
|
|
1775
|
+
// "orderEvents": [
|
|
1776
|
+
// {
|
|
1777
|
+
// "type": "EXECUTION",
|
|
1778
|
+
// "executionId": "403bf49f-dbbe-448b-8de7-fd3cf38cc5dd",
|
|
1779
|
+
// "price": 66596.0,
|
|
1780
|
+
// "amount": 0.001,
|
|
1781
|
+
// "orderPriorEdit": null,
|
|
1782
|
+
// "orderPriorExecution": {
|
|
1783
|
+
// "orderId": "a133a4f9-254d-4806-8176-9acc936b6944",
|
|
1784
|
+
// "cliOrdId": null,
|
|
1785
|
+
// "type": "ioc",
|
|
1786
|
+
// "symbol": "PF_XBTUSD",
|
|
1787
|
+
// "side": "buy",
|
|
1788
|
+
// "quantity": 0.001,
|
|
1789
|
+
// "filled": 0,
|
|
1790
|
+
// "limitPrice": 67261.000,
|
|
1791
|
+
// "reduceOnly": false,
|
|
1792
|
+
// "timestamp": "2026-03-02T06:10:31.954Z",
|
|
1793
|
+
// "lastUpdateTimestamp": "2026-03-02T06:10:31.954Z"
|
|
1794
|
+
// },
|
|
1795
|
+
// "takerReducedQuantity": null
|
|
1796
|
+
// }
|
|
1797
|
+
// ]
|
|
1798
|
+
// }
|
|
1799
|
+
//
|
|
1725
1800
|
// CONDITIONAL
|
|
1726
1801
|
//
|
|
1727
1802
|
// {
|
|
@@ -1965,6 +2040,10 @@ export default class krakenfutures extends Exchange {
|
|
|
1965
2040
|
//
|
|
1966
2041
|
const datetime = this.safeString(orderDictFromFetchOrder, 'timestamp');
|
|
1967
2042
|
const innerStatus = this.safeString(order, 'status');
|
|
2043
|
+
let filledOrder = this.safeString(orderDictFromFetchOrder, 'filled', '0');
|
|
2044
|
+
if ((filledOrder === '0') || (filledOrder === '0.0')) {
|
|
2045
|
+
filledOrder = undefined;
|
|
2046
|
+
}
|
|
1968
2047
|
return this.safeOrder({
|
|
1969
2048
|
'info': order,
|
|
1970
2049
|
'id': this.safeString(orderDictFromFetchOrder, 'orderId'),
|
|
@@ -1984,7 +2063,7 @@ export default class krakenfutures extends Exchange {
|
|
|
1984
2063
|
'amount': this.safeString(orderDictFromFetchOrder, 'quantity'),
|
|
1985
2064
|
'cost': undefined,
|
|
1986
2065
|
'average': undefined,
|
|
1987
|
-
'filled':
|
|
2066
|
+
'filled': filledOrder,
|
|
1988
2067
|
'remaining': undefined,
|
|
1989
2068
|
'status': this.parseOrderStatus(innerStatus),
|
|
1990
2069
|
'fee': undefined,
|
|
@@ -2021,9 +2100,15 @@ export default class krakenfutures extends Exchange {
|
|
|
2021
2100
|
fixed = true;
|
|
2022
2101
|
}
|
|
2023
2102
|
else if (!fixed) {
|
|
2103
|
+
const executedPrice = this.safeString(item, 'price');
|
|
2024
2104
|
const orderPriorExecution = this.safeValue(item, 'orderPriorExecution');
|
|
2025
2105
|
details = this.safeValue2(item, 'orderPriorExecution', 'orderPriorEdit');
|
|
2026
|
-
|
|
2106
|
+
if (executedPrice === undefined) {
|
|
2107
|
+
price = this.safeString(orderPriorExecution, 'limitPrice');
|
|
2108
|
+
}
|
|
2109
|
+
else {
|
|
2110
|
+
price = executedPrice;
|
|
2111
|
+
}
|
|
2027
2112
|
if (details !== undefined) {
|
|
2028
2113
|
isPrior = true;
|
|
2029
2114
|
}
|
|
@@ -2118,6 +2203,11 @@ export default class krakenfutures extends Exchange {
|
|
|
2118
2203
|
symbol = this.safeSymbol(this.safeString(details, 'tradeable'), market);
|
|
2119
2204
|
}
|
|
2120
2205
|
const ts = this.safeInteger(details, 'timestamp', timestamp);
|
|
2206
|
+
const priceTriggerOptions = this.safeDict(details, 'priceTriggerOptions', {});
|
|
2207
|
+
let triggerPrice = this.safeString2(details, 'triggerPrice', 'stopPrice');
|
|
2208
|
+
if (triggerPrice === undefined) {
|
|
2209
|
+
triggerPrice = this.safeString(priceTriggerOptions, 'triggerPrice');
|
|
2210
|
+
}
|
|
2121
2211
|
return this.safeOrder({
|
|
2122
2212
|
'info': order,
|
|
2123
2213
|
'id': id,
|
|
@@ -2133,7 +2223,8 @@ export default class krakenfutures extends Exchange {
|
|
|
2133
2223
|
'reduceOnly': this.safeBool2(details, 'reduceOnly', 'reduce_only'),
|
|
2134
2224
|
'side': this.safeStringLower2(details, 'side', 'direction'),
|
|
2135
2225
|
'price': price,
|
|
2136
|
-
'triggerPrice':
|
|
2226
|
+
'triggerPrice': triggerPrice,
|
|
2227
|
+
'stopPrice': triggerPrice,
|
|
2137
2228
|
'amount': amount,
|
|
2138
2229
|
'cost': cost,
|
|
2139
2230
|
'average': average,
|
package/js/src/kucoin.d.ts
CHANGED
|
@@ -355,7 +355,7 @@ export default class kucoin extends Exchange {
|
|
|
355
355
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
356
356
|
* @param {bool} [params.trigger] *invalid for isolated margin* true if cancelling all stop orders
|
|
357
357
|
* @param {string} [params.marginMode] 'cross' or 'isolated'
|
|
358
|
-
* @param {string} [params.orderIds] *stop orders only* Comma
|
|
358
|
+
* @param {string} [params.orderIds] *stop orders only* Comma separated order IDs
|
|
359
359
|
* @param {bool} [params.hf] false, // true for hf order
|
|
360
360
|
* @returns Response from the exchange
|
|
361
361
|
*/
|
|
@@ -378,7 +378,7 @@ export default class kucoin extends Exchange {
|
|
|
378
378
|
* @param {string} [params.type] limit, market, limit_stop or market_stop
|
|
379
379
|
* @param {string} [params.tradeType] TRADE for spot trading, MARGIN_TRADE for Margin Trading
|
|
380
380
|
* @param {int} [params.currentPage] *trigger orders only* current page
|
|
381
|
-
* @param {string} [params.orderIds] *trigger orders only* comma
|
|
381
|
+
* @param {string} [params.orderIds] *trigger orders only* comma separated order ID list
|
|
382
382
|
* @param {bool} [params.trigger] True if fetching a trigger order
|
|
383
383
|
* @param {bool} [params.hf] false, // true for hf order
|
|
384
384
|
* @returns An [array of order structures]{@link https://docs.ccxt.com/?id=order-structure}
|
|
@@ -424,7 +424,7 @@ export default class kucoin extends Exchange {
|
|
|
424
424
|
* @param {string} [params.type] limit, market, limit_stop or market_stop
|
|
425
425
|
* @param {string} [params.tradeType] TRADE for spot trading, MARGIN_TRADE for Margin Trading
|
|
426
426
|
* @param {int} [params.currentPage] *trigger orders only* current page
|
|
427
|
-
* @param {string} [params.orderIds] *trigger orders only* comma
|
|
427
|
+
* @param {string} [params.orderIds] *trigger orders only* comma separated order ID list
|
|
428
428
|
* @param {bool} [params.hf] false, // true for hf order
|
|
429
429
|
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
430
430
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
|
package/js/src/kucoin.js
CHANGED
|
@@ -3205,7 +3205,7 @@ export default class kucoin extends Exchange {
|
|
|
3205
3205
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3206
3206
|
* @param {bool} [params.trigger] *invalid for isolated margin* true if cancelling all stop orders
|
|
3207
3207
|
* @param {string} [params.marginMode] 'cross' or 'isolated'
|
|
3208
|
-
* @param {string} [params.orderIds] *stop orders only* Comma
|
|
3208
|
+
* @param {string} [params.orderIds] *stop orders only* Comma separated order IDs
|
|
3209
3209
|
* @param {bool} [params.hf] false, // true for hf order
|
|
3210
3210
|
* @returns Response from the exchange
|
|
3211
3211
|
*/
|
|
@@ -3261,7 +3261,7 @@ export default class kucoin extends Exchange {
|
|
|
3261
3261
|
* @param {string} [params.type] limit, market, limit_stop or market_stop
|
|
3262
3262
|
* @param {string} [params.tradeType] TRADE for spot trading, MARGIN_TRADE for Margin Trading
|
|
3263
3263
|
* @param {int} [params.currentPage] *trigger orders only* current page
|
|
3264
|
-
* @param {string} [params.orderIds] *trigger orders only* comma
|
|
3264
|
+
* @param {string} [params.orderIds] *trigger orders only* comma separated order ID list
|
|
3265
3265
|
* @param {bool} [params.trigger] True if fetching a trigger order
|
|
3266
3266
|
* @param {bool} [params.hf] false, // true for hf order
|
|
3267
3267
|
* @returns An [array of order structures]{@link https://docs.ccxt.com/?id=order-structure}
|
|
@@ -3416,7 +3416,7 @@ export default class kucoin extends Exchange {
|
|
|
3416
3416
|
* @param {string} [params.type] limit, market, limit_stop or market_stop
|
|
3417
3417
|
* @param {string} [params.tradeType] TRADE for spot trading, MARGIN_TRADE for Margin Trading
|
|
3418
3418
|
* @param {int} [params.currentPage] *trigger orders only* current page
|
|
3419
|
-
* @param {string} [params.orderIds] *trigger orders only* comma
|
|
3419
|
+
* @param {string} [params.orderIds] *trigger orders only* comma separated order ID list
|
|
3420
3420
|
* @param {bool} [params.hf] false, // true for hf order
|
|
3421
3421
|
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
3422
3422
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
|
package/js/src/kucoinfutures.js
CHANGED
|
@@ -91,10 +91,10 @@ export default class kucoinfutures extends kucoin {
|
|
|
91
91
|
'fetchOrderBook': true,
|
|
92
92
|
'fetchPosition': true,
|
|
93
93
|
'fetchPositionADLRank': true,
|
|
94
|
-
'fetchPositionsADLRank': true,
|
|
95
94
|
'fetchPositionHistory': false,
|
|
96
95
|
'fetchPositionMode': false,
|
|
97
96
|
'fetchPositions': true,
|
|
97
|
+
'fetchPositionsADLRank': true,
|
|
98
98
|
'fetchPositionsHistory': true,
|
|
99
99
|
'fetchPremiumIndexOHLCV': false,
|
|
100
100
|
'fetchStatus': true,
|