ccxt 4.5.44 → 4.5.46
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 +9 -12
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -12
- package/dist/cjs/src/abstract/kucoinfutures.js +1 -1
- package/dist/cjs/src/base/Exchange.js +39 -3
- package/dist/cjs/src/base/functions/encode.js +2 -2
- package/dist/cjs/src/base/functions/generic.js +8 -2
- package/dist/cjs/src/binance.js +11 -2
- package/dist/cjs/src/bitget.js +3 -1
- package/dist/cjs/src/bitmart.js +144 -21
- package/dist/cjs/src/bitrue.js +1 -1
- package/dist/cjs/src/bitteam.js +1 -1
- package/dist/cjs/src/btcbox.js +1 -1
- package/dist/cjs/src/bybit.js +58 -56
- package/dist/cjs/src/bydfi.js +102 -100
- package/dist/cjs/src/cex.js +1 -0
- package/dist/cjs/src/gate.js +264 -170
- package/dist/cjs/src/grvt.js +3 -2
- package/dist/cjs/src/hyperliquid.js +16 -5
- package/dist/cjs/src/kraken.js +4 -2
- package/dist/cjs/src/krakenfutures.js +1 -5
- package/dist/cjs/src/kucoin.js +4733 -972
- package/dist/cjs/src/kucoinfutures.js +14 -3434
- package/dist/cjs/src/lbank.js +1 -1
- package/dist/cjs/src/okx.js +75 -57
- package/dist/cjs/src/paradex.js +2 -6
- package/dist/cjs/src/poloniex.js +1 -1
- package/dist/cjs/src/pro/bydfi.js +19 -19
- package/dist/cjs/src/pro/gate.js +114 -53
- package/dist/cjs/src/pro/grvt.js +5 -3
- package/dist/cjs/src/pro/htx.js +4 -4
- package/dist/cjs/src/pro/kucoin.js +819 -178
- package/dist/cjs/src/pro/kucoinfutures.js +95 -1261
- package/dist/cjs/src/pro/mexc.js +10 -5
- package/dist/cjs/src/pro/okx.js +85 -40
- package/index.d.cts +2 -0
- package/js/ccxt.d.ts +2 -14
- package/js/ccxt.js +2 -10
- package/js/src/abstract/bitmart.d.ts +7 -0
- package/js/src/abstract/bydfi.d.ts +29 -29
- package/js/src/abstract/kraken.d.ts +1 -0
- package/js/src/abstract/kucoin.d.ts +46 -2
- package/js/src/abstract/kucoinfutures.d.ts +27 -11
- package/js/src/base/Exchange.d.ts +13 -1
- package/js/src/base/Exchange.js +39 -3
- package/js/src/base/functions/encode.js +2 -2
- package/js/src/base/functions/generic.js +9 -3
- package/js/src/binance.js +11 -2
- package/js/src/bitget.js +3 -1
- package/js/src/bitmart.d.ts +18 -4
- package/js/src/bitmart.js +144 -21
- package/js/src/bitrue.js +1 -1
- package/js/src/bitteam.js +1 -1
- package/js/src/btcbox.js +1 -1
- package/js/src/bybit.d.ts +1 -0
- package/js/src/bybit.js +58 -56
- package/js/src/bydfi.d.ts +31 -31
- package/js/src/bydfi.js +102 -100
- package/js/src/cex.js +2 -1
- package/js/src/gate.d.ts +125 -119
- package/js/src/gate.js +264 -170
- package/js/src/grvt.js +3 -2
- package/js/src/hyperliquid.d.ts +3 -1
- package/js/src/hyperliquid.js +16 -5
- package/js/src/kraken.js +4 -2
- package/js/src/krakenfutures.js +1 -5
- package/js/src/kucoin.d.ts +696 -100
- package/js/src/kucoin.js +4734 -973
- package/js/src/kucoinfutures.d.ts +4 -522
- package/js/src/kucoinfutures.js +14 -3434
- package/js/src/lbank.js +1 -1
- package/js/src/okx.d.ts +1 -0
- package/js/src/okx.js +75 -57
- package/js/src/paradex.d.ts +0 -1
- package/js/src/paradex.js +2 -6
- package/js/src/poloniex.js +1 -1
- package/js/src/pro/bydfi.d.ts +18 -18
- package/js/src/pro/bydfi.js +19 -19
- package/js/src/pro/gate.d.ts +30 -1
- package/js/src/pro/gate.js +114 -53
- package/js/src/pro/grvt.js +5 -3
- package/js/src/pro/htx.js +4 -4
- package/js/src/pro/kucoin.d.ts +70 -30
- package/js/src/pro/kucoin.js +821 -180
- package/js/src/pro/kucoinfutures.d.ts +17 -195
- package/js/src/pro/kucoinfutures.js +96 -1262
- package/js/src/pro/mexc.js +10 -5
- package/js/src/pro/okx.d.ts +1 -0
- package/js/src/pro/okx.js +85 -40
- package/package.json +2 -2
- package/dist/cjs/src/abstract/alp.js +0 -11
- package/dist/cjs/src/abstract/defx.js +0 -11
- package/dist/cjs/src/abstract/timex.js +0 -11
- package/dist/cjs/src/alp.js +0 -1059
- package/dist/cjs/src/defx.js +0 -2142
- package/dist/cjs/src/pro/defx.js +0 -866
- package/dist/cjs/src/timex.js +0 -1793
- package/js/src/abstract/alp.d.ts +0 -21
- package/js/src/abstract/alp.js +0 -5
- package/js/src/abstract/defx.d.ts +0 -72
- package/js/src/abstract/defx.js +0 -5
- package/js/src/abstract/timex.d.ts +0 -65
- package/js/src/abstract/timex.js +0 -5
- package/js/src/alp.d.ts +0 -209
- package/js/src/alp.js +0 -1052
- package/js/src/defx.d.ts +0 -348
- package/js/src/defx.js +0 -2135
- package/js/src/pro/defx.d.ts +0 -236
- package/js/src/pro/defx.js +0 -859
- package/js/src/timex.d.ts +0 -247
- package/js/src/timex.js +0 -1786
package/dist/cjs/src/grvt.js
CHANGED
|
@@ -647,7 +647,7 @@ class grvt extends grvt$1["default"] {
|
|
|
647
647
|
// ...
|
|
648
648
|
//
|
|
649
649
|
const promises = [marketsPromise];
|
|
650
|
-
if (this.
|
|
650
|
+
if (!this.isEmptyString(this.apiKey) || !this.isEmptyString(this.privateKey)) {
|
|
651
651
|
promises.push(this.signIn());
|
|
652
652
|
}
|
|
653
653
|
const results = await Promise.all(promises);
|
|
@@ -758,7 +758,8 @@ class grvt extends grvt$1["default"] {
|
|
|
758
758
|
* @returns {object} an associative dictionary of currencies
|
|
759
759
|
*/
|
|
760
760
|
async fetchCurrencies(params = {}) {
|
|
761
|
-
const
|
|
761
|
+
const request = { '': '' }; // workaround for php [] empty arr
|
|
762
|
+
const response = await this.publicMarketPostFullV1Currency(request);
|
|
762
763
|
//
|
|
763
764
|
// {
|
|
764
765
|
// "result": [
|
|
@@ -358,6 +358,7 @@ class hyperliquid extends hyperliquid$1["default"] {
|
|
|
358
358
|
},
|
|
359
359
|
},
|
|
360
360
|
},
|
|
361
|
+
'rollingWindowSize': 0.0,
|
|
361
362
|
});
|
|
362
363
|
}
|
|
363
364
|
setSandboxMode(enabled) {
|
|
@@ -1094,6 +1095,8 @@ class hyperliquid extends hyperliquid$1["default"] {
|
|
|
1094
1095
|
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/?id=balance-structure}
|
|
1095
1096
|
*/
|
|
1096
1097
|
async fetchBalance(params = {}) {
|
|
1098
|
+
// if user provides a different address in params and does not provide the enableUnifiedMargin we assume we need to request the info again
|
|
1099
|
+
const shouldRefresh = (this.safeString2(params, 'user', 'address') !== undefined) && this.safeBool(params, 'enableUnifiedMargin') === undefined;
|
|
1097
1100
|
let userAddress = undefined;
|
|
1098
1101
|
[userAddress, params] = this.handlePublicAddress('fetchBalance', params);
|
|
1099
1102
|
let type = undefined;
|
|
@@ -1101,7 +1104,7 @@ class hyperliquid extends hyperliquid$1["default"] {
|
|
|
1101
1104
|
let marginMode = undefined;
|
|
1102
1105
|
[marginMode, params] = this.handleMarginModeAndParams('fetchBalance', params);
|
|
1103
1106
|
let isUnifiedEnabled = undefined;
|
|
1104
|
-
[isUnifiedEnabled, params] = await this.isUnifiedEnabled('fetchBalance', params);
|
|
1107
|
+
[isUnifiedEnabled, params] = await this.isUnifiedEnabled('fetchBalance', userAddress, shouldRefresh, params);
|
|
1105
1108
|
const dex = this.safeString(params, 'dex');
|
|
1106
1109
|
const isSpot = ((type === 'spot') || isUnifiedEnabled) && (dex === undefined);
|
|
1107
1110
|
const request = {
|
|
@@ -1805,7 +1808,7 @@ class hyperliquid extends hyperliquid$1["default"] {
|
|
|
1805
1808
|
}
|
|
1806
1809
|
async initializeClient() {
|
|
1807
1810
|
try {
|
|
1808
|
-
await Promise.all([this.handleBuilderFeeApproval(), this.setRef(), this.isUnifiedEnabled('fetchBalance', {})]); // for now only fetchBalance requires the unified knowledge, but we can extend this to other methods as needed
|
|
1811
|
+
await Promise.all([this.handleBuilderFeeApproval(), this.setRef(), this.isUnifiedEnabled('fetchBalance', undefined, false, {})]); // for now only fetchBalance requires the unified knowledge, but we can extend this to other methods as needed
|
|
1809
1812
|
}
|
|
1810
1813
|
catch (e) {
|
|
1811
1814
|
return false;
|
|
@@ -1838,15 +1841,22 @@ class hyperliquid extends hyperliquid$1["default"] {
|
|
|
1838
1841
|
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-abstraction-state
|
|
1839
1842
|
* @description returns enableUnifiedMargin so the user can check if unified account is enabled
|
|
1840
1843
|
* @param {string} method the method for which we want to check if unified margin is enabled, this is used to check options for specific methods (e.g. fetchBalance can have a specific option to enable unified margin)
|
|
1844
|
+
* @param address
|
|
1845
|
+
* @param shouldRefresh
|
|
1841
1846
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1842
1847
|
* @returns {bool} enableUnifiedMargin
|
|
1843
1848
|
*/
|
|
1844
|
-
async isUnifiedEnabled(method, params = {}) {
|
|
1849
|
+
async isUnifiedEnabled(method, address = undefined, shouldRefresh = false, params = {}) {
|
|
1845
1850
|
let userAddress = undefined;
|
|
1846
|
-
|
|
1851
|
+
if (address !== undefined) {
|
|
1852
|
+
userAddress = address;
|
|
1853
|
+
}
|
|
1854
|
+
else {
|
|
1855
|
+
[userAddress, params] = this.handlePublicAddress('isUnifiedEnabled', params);
|
|
1856
|
+
}
|
|
1847
1857
|
let enableUnifiedMargin = undefined;
|
|
1848
1858
|
[enableUnifiedMargin, params] = this.handleOptionAndParams(params, method, 'enableUnifiedMargin');
|
|
1849
|
-
if (enableUnifiedMargin === undefined) {
|
|
1859
|
+
if (enableUnifiedMargin === undefined || shouldRefresh) {
|
|
1850
1860
|
const request = {
|
|
1851
1861
|
'type': 'userAbstraction',
|
|
1852
1862
|
'user': userAddress,
|
|
@@ -1862,6 +1872,7 @@ class hyperliquid extends hyperliquid$1["default"] {
|
|
|
1862
1872
|
// "unifiedAccount" | "portfolioMargin" | "disabled" | "default" | "dexAbstraction"
|
|
1863
1873
|
//
|
|
1864
1874
|
enableUnifiedMargin = response === '"unifiedAccount"';
|
|
1875
|
+
// don't cache this result if this is a different addresss
|
|
1865
1876
|
this.options['enableUnifiedMargin'] = enableUnifiedMargin; // cache this for future calls
|
|
1866
1877
|
}
|
|
1867
1878
|
return [enableUnifiedMargin, params];
|
package/dist/cjs/src/kraken.js
CHANGED
|
@@ -214,6 +214,8 @@ class kraken extends kraken$1["default"] {
|
|
|
214
214
|
'WithdrawAddresses': 3,
|
|
215
215
|
'WithdrawStatus': 3,
|
|
216
216
|
'WalletTransfer': 3,
|
|
217
|
+
// account
|
|
218
|
+
'GetApiKeyInfo': 3,
|
|
217
219
|
// sub accounts
|
|
218
220
|
'CreateSubaccount': 3,
|
|
219
221
|
'AccountTransfer': 3,
|
|
@@ -3538,7 +3540,7 @@ class kraken extends kraken$1["default"] {
|
|
|
3538
3540
|
let url = '/' + this.version + '/' + api + '/' + path;
|
|
3539
3541
|
if (api === 'public') {
|
|
3540
3542
|
if (Object.keys(params).length) {
|
|
3541
|
-
//
|
|
3543
|
+
// rawencode is used to address https://github.com/ccxt/ccxt/issues/12872
|
|
3542
3544
|
url += '?' + this.urlencodeNested(params);
|
|
3543
3545
|
}
|
|
3544
3546
|
}
|
|
@@ -3552,11 +3554,11 @@ class kraken extends kraken$1["default"] {
|
|
|
3552
3554
|
const isBatchOrder = (path === 'AddOrderBatch');
|
|
3553
3555
|
this.checkRequiredCredentials();
|
|
3554
3556
|
const nonce = this.nonce().toString();
|
|
3555
|
-
// urlencodeNested is used to address https://github.com/ccxt/ccxt/issues/12872
|
|
3556
3557
|
if (isCancelOrderBatch || isTriggerPercent || isBatchOrder) {
|
|
3557
3558
|
body = this.json(this.extend({ 'nonce': nonce }, params));
|
|
3558
3559
|
}
|
|
3559
3560
|
else {
|
|
3561
|
+
// rawencode is used to address https://github.com/ccxt/ccxt/issues/12872
|
|
3560
3562
|
body = this.urlencodeNested(this.extend({ 'nonce': nonce }, params));
|
|
3561
3563
|
}
|
|
3562
3564
|
const auth = this.encode(nonce + body);
|
|
@@ -2039,10 +2039,6 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2039
2039
|
//
|
|
2040
2040
|
const datetime = this.safeString(orderDictFromFetchOrder, 'timestamp');
|
|
2041
2041
|
const innerStatus = this.safeString(order, 'status');
|
|
2042
|
-
let filledOrder = this.safeString(orderDictFromFetchOrder, 'filled', '0');
|
|
2043
|
-
if ((filledOrder === '0') || (filledOrder === '0.0')) {
|
|
2044
|
-
filledOrder = undefined;
|
|
2045
|
-
}
|
|
2046
2042
|
const fetchOrderPriceTriggerOptions = this.safeDict(orderDictFromFetchOrder, 'priceTriggerOptions', {});
|
|
2047
2043
|
const fetchOrderTriggerPrice = this.safeString(fetchOrderPriceTriggerOptions, 'triggerPrice');
|
|
2048
2044
|
return this.safeOrder({
|
|
@@ -2065,7 +2061,7 @@ class krakenfutures extends krakenfutures$1["default"] {
|
|
|
2065
2061
|
'amount': this.safeString(orderDictFromFetchOrder, 'quantity'),
|
|
2066
2062
|
'cost': undefined,
|
|
2067
2063
|
'average': undefined,
|
|
2068
|
-
'filled':
|
|
2064
|
+
'filled': this.safeString(orderDictFromFetchOrder, 'filled'),
|
|
2069
2065
|
'remaining': undefined,
|
|
2070
2066
|
'status': this.parseOrderStatus(innerStatus),
|
|
2071
2067
|
'fee': undefined,
|