ccxt 4.3.62 → 4.3.64
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/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +2 -1
- package/dist/cjs/src/ace.js +34 -15
- package/dist/cjs/src/alpaca.js +1 -0
- package/dist/cjs/src/base/Exchange.js +11 -4
- package/dist/cjs/src/base/errors.js +8 -1
- package/dist/cjs/src/binance.js +6 -9
- package/dist/cjs/src/bingx.js +554 -151
- package/dist/cjs/src/bitfinex.js +1 -1
- package/dist/cjs/src/bitfinex2.js +1 -1
- package/dist/cjs/src/cryptocom.js +18 -2
- package/dist/cjs/src/independentreserve.js +107 -0
- package/dist/cjs/src/kucoin.js +2 -0
- package/dist/cjs/src/mercado.js +5 -1
- package/dist/cjs/src/pro/binance.js +58 -34
- package/dist/cjs/src/pro/bitfinex2.js +6 -3
- package/dist/cjs/src/pro/bitget.js +4 -1
- package/dist/cjs/src/pro/bitmart.js +3 -3
- package/dist/cjs/src/pro/bitvavo.js +1 -1
- package/dist/cjs/src/pro/bybit.js +44 -18
- package/dist/cjs/src/pro/cryptocom.js +7 -1
- package/dist/cjs/src/pro/gate.js +7 -3
- package/dist/cjs/src/pro/gemini.js +4 -2
- package/dist/cjs/src/pro/htx.js +5 -1
- package/dist/cjs/src/pro/independentreserve.js +5 -3
- package/dist/cjs/src/pro/kraken.js +82 -4
- package/dist/cjs/src/pro/okx.js +3 -3
- package/dist/cjs/src/pro/onetrading.js +3 -2
- package/dist/cjs/src/pro/poloniexfutures.js +5 -1
- package/dist/cjs/src/pro/vertex.js +3 -2
- package/dist/cjs/src/pro/woo.js +2 -1
- package/dist/cjs/src/pro/woofipro.js +3 -2
- package/dist/cjs/src/woo.js +344 -81
- package/js/ccxt.d.ts +3 -3
- package/js/ccxt.js +3 -3
- package/js/src/abstract/cryptocom.d.ts +11 -0
- package/js/src/abstract/kucoin.d.ts +1 -0
- package/js/src/abstract/kucoinfutures.d.ts +1 -0
- package/js/src/abstract/woo.d.ts +3 -0
- package/js/src/ace.js +34 -15
- package/js/src/alpaca.js +1 -0
- package/js/src/base/Exchange.d.ts +1 -0
- package/js/src/base/Exchange.js +11 -4
- package/js/src/base/errorHierarchy.d.ts +3 -1
- package/js/src/base/errorHierarchy.js +3 -1
- package/js/src/base/errors.d.ts +5 -1
- package/js/src/base/errors.js +8 -2
- package/js/src/binance.js +6 -9
- package/js/src/bingx.d.ts +4 -1
- package/js/src/bingx.js +554 -151
- package/js/src/bitfinex.js +1 -1
- package/js/src/bitfinex2.js +1 -1
- package/js/src/coinbaseinternational.d.ts +1 -1
- package/js/src/cryptocom.js +18 -2
- package/js/src/independentreserve.d.ts +3 -1
- package/js/src/independentreserve.js +106 -0
- package/js/src/kucoin.js +2 -0
- package/js/src/mercado.js +5 -1
- package/js/src/pro/binance.d.ts +1 -0
- package/js/src/pro/binance.js +59 -35
- package/js/src/pro/bitfinex2.js +7 -4
- package/js/src/pro/bitget.js +5 -2
- package/js/src/pro/bitmart.js +3 -3
- package/js/src/pro/bitvavo.js +1 -1
- package/js/src/pro/bybit.d.ts +1 -0
- package/js/src/pro/bybit.js +44 -18
- package/js/src/pro/cryptocom.js +8 -2
- package/js/src/pro/gate.js +8 -4
- package/js/src/pro/gemini.js +4 -2
- package/js/src/pro/htx.js +6 -2
- package/js/src/pro/independentreserve.js +6 -4
- package/js/src/pro/kraken.d.ts +3 -1
- package/js/src/pro/kraken.js +83 -5
- package/js/src/pro/okx.js +4 -4
- package/js/src/pro/onetrading.js +3 -2
- package/js/src/pro/poloniexfutures.js +6 -2
- package/js/src/pro/vertex.js +3 -2
- package/js/src/pro/woo.js +2 -1
- package/js/src/pro/woofipro.js +3 -2
- package/js/src/whitebit.d.ts +1 -1
- package/js/src/woo.d.ts +6 -2
- package/js/src/woo.js +344 -81
- package/js/src/xt.d.ts +3 -3
- package/js/src/zonda.d.ts +1 -1
- package/package.json +1 -1
package/dist/cjs/src/woo.js
CHANGED
|
@@ -30,7 +30,7 @@ class woo extends woo$1 {
|
|
|
30
30
|
'swap': true,
|
|
31
31
|
'future': false,
|
|
32
32
|
'option': false,
|
|
33
|
-
'addMargin':
|
|
33
|
+
'addMargin': true,
|
|
34
34
|
'cancelAllOrders': true,
|
|
35
35
|
'cancelAllOrdersAfter': true,
|
|
36
36
|
'cancelOrder': true,
|
|
@@ -200,6 +200,7 @@ class woo extends woo$1 {
|
|
|
200
200
|
'positions': 3.33,
|
|
201
201
|
'position/{symbol}': 3.33,
|
|
202
202
|
'client/transaction_history': 60,
|
|
203
|
+
'client/futures_leverage': 60,
|
|
203
204
|
},
|
|
204
205
|
'post': {
|
|
205
206
|
'order': 5,
|
|
@@ -212,6 +213,8 @@ class woo extends woo$1 {
|
|
|
212
213
|
'client/account_mode': 120,
|
|
213
214
|
'client/position_mode': 5,
|
|
214
215
|
'client/leverage': 120,
|
|
216
|
+
'client/futures_leverage': 30,
|
|
217
|
+
'client/isolated_margin': 30,
|
|
215
218
|
},
|
|
216
219
|
'delete': {
|
|
217
220
|
'order': 1,
|
|
@@ -935,16 +938,18 @@ class woo extends woo$1 {
|
|
|
935
938
|
* @param {float} amount how much of currency you want to trade in units of base currency
|
|
936
939
|
* @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
937
940
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
941
|
+
* @param {string} [params.marginMode] *for swap markets only* 'cross' or 'isolated', default 'cross'
|
|
938
942
|
* @param {float} [params.triggerPrice] The price a trigger order is triggered at
|
|
939
943
|
* @param {object} [params.takeProfit] *takeProfit object in params* containing the triggerPrice at which the attached take profit order will be triggered (perpetual swap markets only)
|
|
940
944
|
* @param {float} [params.takeProfit.triggerPrice] take profit trigger price
|
|
941
945
|
* @param {object} [params.stopLoss] *stopLoss object in params* containing the triggerPrice at which the attached stop loss order will be triggered (perpetual swap markets only)
|
|
942
946
|
* @param {float} [params.stopLoss.triggerPrice] stop loss trigger price
|
|
943
|
-
* @param {float} [params.algoType] 'STOP'or 'TRAILING_STOP' or 'OCO' or 'CLOSE_POSITION'
|
|
947
|
+
* @param {float} [params.algoType] 'STOP' or 'TRAILING_STOP' or 'OCO' or 'CLOSE_POSITION'
|
|
944
948
|
* @param {float} [params.cost] *spot market buy only* the quote quantity that can be used as an alternative for the amount
|
|
945
949
|
* @param {string} [params.trailingAmount] the quote amount to trail away from the current market price
|
|
946
950
|
* @param {string} [params.trailingPercent] the percent to trail away from the current market price
|
|
947
951
|
* @param {string} [params.trailingTriggerPrice] the price to trigger a trailing order, default uses the price argument
|
|
952
|
+
* @param {string} [params.position_side] 'SHORT' or 'LONG' - if position mode is HEDGE_MODE and the trading involves futures, then is required, otherwise this parameter is not required
|
|
948
953
|
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
949
954
|
*/
|
|
950
955
|
const reduceOnly = this.safeBool2(params, 'reduceOnly', 'reduce_only');
|
|
@@ -957,6 +962,11 @@ class woo extends woo$1 {
|
|
|
957
962
|
'symbol': market['id'],
|
|
958
963
|
'side': orderSide,
|
|
959
964
|
};
|
|
965
|
+
let marginMode = undefined;
|
|
966
|
+
[marginMode, params] = this.handleMarginModeAndParams('createOrder', params);
|
|
967
|
+
if (marginMode !== undefined) {
|
|
968
|
+
request['margin_mode'] = this.encodeMarginMode(marginMode);
|
|
969
|
+
}
|
|
960
970
|
const stopPrice = this.safeNumber2(params, 'triggerPrice', 'stopPrice');
|
|
961
971
|
const stopLoss = this.safeValue(params, 'stopLoss');
|
|
962
972
|
const takeProfit = this.safeValue(params, 'takeProfit');
|
|
@@ -1118,6 +1128,13 @@ class woo extends woo$1 {
|
|
|
1118
1128
|
order['type'] = type;
|
|
1119
1129
|
return order;
|
|
1120
1130
|
}
|
|
1131
|
+
encodeMarginMode(mode) {
|
|
1132
|
+
const modes = {
|
|
1133
|
+
'cross': 'CROSS',
|
|
1134
|
+
'isolated': 'ISOLATED',
|
|
1135
|
+
};
|
|
1136
|
+
return this.safeString(modes, mode, mode);
|
|
1137
|
+
}
|
|
1121
1138
|
async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
|
|
1122
1139
|
/**
|
|
1123
1140
|
* @method
|
|
@@ -2654,7 +2671,24 @@ class woo extends woo$1 {
|
|
|
2654
2671
|
};
|
|
2655
2672
|
}
|
|
2656
2673
|
async fetchFundingHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
2674
|
+
/**
|
|
2675
|
+
* @method
|
|
2676
|
+
* @name woo#fetchFundingHistory
|
|
2677
|
+
* @description fetch the history of funding payments paid and received on this account
|
|
2678
|
+
* @see https://docs.woo.org/#get-funding-fee-history
|
|
2679
|
+
* @param {string} [symbol] unified market symbol
|
|
2680
|
+
* @param {int} [since] the earliest time in ms to fetch funding history for
|
|
2681
|
+
* @param {int} [limit] the maximum number of funding history structures to retrieve
|
|
2682
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2683
|
+
* @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)
|
|
2684
|
+
* @returns {object} a [funding history structure]{@link https://docs.ccxt.com/#/?id=funding-history-structure}
|
|
2685
|
+
*/
|
|
2657
2686
|
await this.loadMarkets();
|
|
2687
|
+
let paginate = false;
|
|
2688
|
+
[paginate, params] = this.handleOptionAndParams(params, 'fetchFundingHistory', 'paginate');
|
|
2689
|
+
if (paginate) {
|
|
2690
|
+
return await this.fetchPaginatedCallCursor('fetchFundingHistory', symbol, since, limit, params, 'page', 'page', 1, 500);
|
|
2691
|
+
}
|
|
2658
2692
|
const request = {};
|
|
2659
2693
|
let market = undefined;
|
|
2660
2694
|
if (symbol !== undefined) {
|
|
@@ -2664,6 +2698,12 @@ class woo extends woo$1 {
|
|
|
2664
2698
|
if (since !== undefined) {
|
|
2665
2699
|
request['start_t'] = since;
|
|
2666
2700
|
}
|
|
2701
|
+
if (limit !== undefined) {
|
|
2702
|
+
request['size'] = limit;
|
|
2703
|
+
}
|
|
2704
|
+
else {
|
|
2705
|
+
request['size'] = 5000;
|
|
2706
|
+
}
|
|
2667
2707
|
const response = await this.v1PrivateGetFundingFeeHistory(this.extend(request, params));
|
|
2668
2708
|
//
|
|
2669
2709
|
// {
|
|
@@ -2688,7 +2728,15 @@ class woo extends woo$1 {
|
|
|
2688
2728
|
// "success":true
|
|
2689
2729
|
// }
|
|
2690
2730
|
//
|
|
2731
|
+
const meta = this.safeDict(response, 'meta', {});
|
|
2732
|
+
const cursor = this.safeInteger(meta, 'current_page');
|
|
2691
2733
|
const result = this.safeList(response, 'rows', []);
|
|
2734
|
+
const resultLength = result.length;
|
|
2735
|
+
if (resultLength > 0) {
|
|
2736
|
+
const lastItem = result[resultLength - 1];
|
|
2737
|
+
lastItem['page'] = cursor;
|
|
2738
|
+
result[resultLength - 1] = lastItem;
|
|
2739
|
+
}
|
|
2692
2740
|
return this.parseIncomes(result, market, since, limit);
|
|
2693
2741
|
}
|
|
2694
2742
|
parseFundingRate(fundingRate, market = undefined) {
|
|
@@ -2879,61 +2927,204 @@ class woo extends woo$1 {
|
|
|
2879
2927
|
* @see https://docs.woo.org/#get-account-information-new
|
|
2880
2928
|
* @param {string} symbol unified market symbol
|
|
2881
2929
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
2930
|
+
* @param {string} [params.marginMode] *for swap markets only* 'cross' or 'isolated'
|
|
2931
|
+
* @param {string} [params.position_mode] *for swap markets only* 'ONE_WAY' or 'HEDGE_MODE'
|
|
2882
2932
|
* @returns {object} a [leverage structure]{@link https://docs.ccxt.com/#/?id=leverage-structure}
|
|
2883
2933
|
*/
|
|
2884
2934
|
await this.loadMarkets();
|
|
2885
2935
|
const market = this.market(symbol);
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2936
|
+
let response = undefined;
|
|
2937
|
+
if (market['spot']) {
|
|
2938
|
+
response = await this.v3PrivateGetAccountinfo(params);
|
|
2939
|
+
//
|
|
2940
|
+
// {
|
|
2941
|
+
// "success": true,
|
|
2942
|
+
// "data": {
|
|
2943
|
+
// "applicationId": "dsa",
|
|
2944
|
+
// "account": "dsa",
|
|
2945
|
+
// "alias": "haha",
|
|
2946
|
+
// "accountMode": "MARGIN",
|
|
2947
|
+
// "leverage": 1,
|
|
2948
|
+
// "takerFeeRate": 1,
|
|
2949
|
+
// "makerFeeRate": 1,
|
|
2950
|
+
// "interestRate": 1,
|
|
2951
|
+
// "futuresTakerFeeRate": 1,
|
|
2952
|
+
// "futuresMakerFeeRate": 1,
|
|
2953
|
+
// "otpauth": true,
|
|
2954
|
+
// "marginRatio": 1,
|
|
2955
|
+
// "openMarginRatio": 1,
|
|
2956
|
+
// "initialMarginRatio": 1,
|
|
2957
|
+
// "maintenanceMarginRatio": 1,
|
|
2958
|
+
// "totalCollateral": 1,
|
|
2959
|
+
// "freeCollateral": 1,
|
|
2960
|
+
// "totalAccountValue": 1,
|
|
2961
|
+
// "totalVaultValue": 1,
|
|
2962
|
+
// "totalStakingValue": 1
|
|
2963
|
+
// },
|
|
2964
|
+
// "timestamp": 1673323685109
|
|
2965
|
+
// }
|
|
2966
|
+
//
|
|
2967
|
+
}
|
|
2968
|
+
else if (market['swap']) {
|
|
2969
|
+
const request = {
|
|
2970
|
+
'symbol': market['id'],
|
|
2971
|
+
};
|
|
2972
|
+
let marginMode = undefined;
|
|
2973
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchLeverage', params, 'cross');
|
|
2974
|
+
request['margin_mode'] = this.encodeMarginMode(marginMode);
|
|
2975
|
+
response = await this.v1PrivateGetClientFuturesLeverage(this.extend(request, params));
|
|
2976
|
+
//
|
|
2977
|
+
// HEDGE_MODE
|
|
2978
|
+
// {
|
|
2979
|
+
// "success": true,
|
|
2980
|
+
// "data":
|
|
2981
|
+
// {
|
|
2982
|
+
// "symbol": "PERP_ETH_USDT",
|
|
2983
|
+
// "default_margin_mode": "CROSS",
|
|
2984
|
+
// "position_mode": "HEDGE_MODE",
|
|
2985
|
+
// "details": [
|
|
2986
|
+
// {
|
|
2987
|
+
// "position_side": "LONG",
|
|
2988
|
+
// "leverage": 10
|
|
2989
|
+
// },
|
|
2990
|
+
// {
|
|
2991
|
+
// "position_side": "SHORT",
|
|
2992
|
+
// "leverage": 10
|
|
2993
|
+
// }
|
|
2994
|
+
// ]
|
|
2995
|
+
// },
|
|
2996
|
+
// "timestamp": 1720886470482
|
|
2997
|
+
// }
|
|
2998
|
+
//
|
|
2999
|
+
// ONE_WAY
|
|
3000
|
+
// {
|
|
3001
|
+
// "success": true,
|
|
3002
|
+
// "data": {
|
|
3003
|
+
// "symbol": "PERP_ETH_USDT",
|
|
3004
|
+
// "default_margin_mode": "ISOLATED",
|
|
3005
|
+
// "position_mode": "ONE_WAY",
|
|
3006
|
+
// "details": [
|
|
3007
|
+
// {
|
|
3008
|
+
// "position_side": "BOTH",
|
|
3009
|
+
// "leverage": 10
|
|
3010
|
+
// }
|
|
3011
|
+
// ]
|
|
3012
|
+
// },
|
|
3013
|
+
// "timestamp": 1720886810317
|
|
3014
|
+
// }
|
|
3015
|
+
//
|
|
3016
|
+
}
|
|
3017
|
+
else {
|
|
3018
|
+
throw new errors.NotSupported(this.id + ' fetchLeverage() is not supported for ' + market['type'] + ' markets');
|
|
3019
|
+
}
|
|
2915
3020
|
const data = this.safeDict(response, 'data', {});
|
|
2916
3021
|
return this.parseLeverage(data, market);
|
|
2917
3022
|
}
|
|
2918
3023
|
parseLeverage(leverage, market = undefined) {
|
|
2919
|
-
const
|
|
3024
|
+
const marketId = this.safeString(leverage, 'symbol');
|
|
3025
|
+
market = this.safeMarket(marketId, market);
|
|
3026
|
+
const marginMode = this.safeStringLower(leverage, 'default_margin_mode');
|
|
3027
|
+
const spotLeverage = this.safeInteger(leverage, 'leverage');
|
|
3028
|
+
let longLeverage = spotLeverage;
|
|
3029
|
+
let shortLeverage = spotLeverage;
|
|
3030
|
+
const details = this.safeList(leverage, 'details', []);
|
|
3031
|
+
for (let i = 0; i < details.length; i++) {
|
|
3032
|
+
const position = this.safeDict(details, i, {});
|
|
3033
|
+
const positionLeverage = this.safeInteger(position, 'leverage');
|
|
3034
|
+
const side = this.safeString(position, 'position_side');
|
|
3035
|
+
if (side === 'BOTH') {
|
|
3036
|
+
longLeverage = positionLeverage;
|
|
3037
|
+
shortLeverage = positionLeverage;
|
|
3038
|
+
}
|
|
3039
|
+
else if (side === 'LONG') {
|
|
3040
|
+
longLeverage = positionLeverage;
|
|
3041
|
+
}
|
|
3042
|
+
else if (side === 'SHORT') {
|
|
3043
|
+
shortLeverage = positionLeverage;
|
|
3044
|
+
}
|
|
3045
|
+
}
|
|
2920
3046
|
return {
|
|
2921
3047
|
'info': leverage,
|
|
2922
3048
|
'symbol': market['symbol'],
|
|
2923
|
-
'marginMode':
|
|
2924
|
-
'longLeverage':
|
|
2925
|
-
'shortLeverage':
|
|
3049
|
+
'marginMode': marginMode,
|
|
3050
|
+
'longLeverage': longLeverage,
|
|
3051
|
+
'shortLeverage': shortLeverage,
|
|
2926
3052
|
};
|
|
2927
3053
|
}
|
|
2928
3054
|
async setLeverage(leverage, symbol = undefined, params = {}) {
|
|
3055
|
+
/**
|
|
3056
|
+
* @method
|
|
3057
|
+
* @name woo#setLeverage
|
|
3058
|
+
* @description set the level of leverage for a market
|
|
3059
|
+
* @see https://docs.woo.org/#update-leverage-setting
|
|
3060
|
+
* @see https://docs.woo.org/#update-futures-leverage-setting
|
|
3061
|
+
* @param {float} leverage the rate of leverage (1, 2, 3, 4 or 5 for spot markets, 1, 2, 3, 4, 5, 10, 15, 20 for swap markets)
|
|
3062
|
+
* @param {string} [symbo] unified market symbol (is mandatory for swap markets)
|
|
3063
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3064
|
+
* @param {string} [params.marginMode] *for swap markets only* 'cross' or 'isolated'
|
|
3065
|
+
* @param {string} [params.position_side] *for swap markets only* 'LONG' or 'SHORT' in hedge mode, 'BOTH' in one way mode.
|
|
3066
|
+
* @returns {object} response from the exchange
|
|
3067
|
+
*/
|
|
2929
3068
|
await this.loadMarkets();
|
|
2930
|
-
if ((leverage < 1) || (leverage > 20)) {
|
|
2931
|
-
throw new errors.BadRequest(this.id + ' leverage should be between 1 and 20');
|
|
2932
|
-
}
|
|
2933
3069
|
const request = {
|
|
2934
3070
|
'leverage': leverage,
|
|
2935
3071
|
};
|
|
2936
|
-
|
|
3072
|
+
let market = undefined;
|
|
3073
|
+
if (symbol !== undefined) {
|
|
3074
|
+
market = this.market(symbol);
|
|
3075
|
+
}
|
|
3076
|
+
if ((symbol === undefined) || market['spot']) {
|
|
3077
|
+
return await this.v1PrivatePostClientLeverage(this.extend(request, params));
|
|
3078
|
+
}
|
|
3079
|
+
else if (market['swap']) {
|
|
3080
|
+
request['symbol'] = market['id'];
|
|
3081
|
+
let marginMode = undefined;
|
|
3082
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchLeverage', params, 'cross');
|
|
3083
|
+
request['margin_mode'] = this.encodeMarginMode(marginMode);
|
|
3084
|
+
return await this.v1PrivatePostClientFuturesLeverage(this.extend(request, params));
|
|
3085
|
+
}
|
|
3086
|
+
else {
|
|
3087
|
+
throw new errors.NotSupported(this.id + ' fetchLeverage() is not supported for ' + market['type'] + ' markets');
|
|
3088
|
+
}
|
|
3089
|
+
}
|
|
3090
|
+
async addMargin(symbol, amount, params = {}) {
|
|
3091
|
+
/**
|
|
3092
|
+
* @method
|
|
3093
|
+
* @name woo#addMargin
|
|
3094
|
+
* @description add margin
|
|
3095
|
+
* @see https://docs.woo.org/#update-isolated-margin-setting
|
|
3096
|
+
* @param {string} symbol unified market symbol
|
|
3097
|
+
* @param {float} amount amount of margin to add
|
|
3098
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3099
|
+
* @param {string} [params.position_side] 'LONG' or 'SHORT' in hedge mode, 'BOTH' in one way mode
|
|
3100
|
+
* @returns {object} a [margin structure]{@link https://docs.ccxt.com/#/?id=add-margin-structure}
|
|
3101
|
+
*/
|
|
3102
|
+
return await this.modifyMarginHelper(symbol, amount, 'ADD', params);
|
|
3103
|
+
}
|
|
3104
|
+
async reduceMargin(symbol, amount, params = {}) {
|
|
3105
|
+
/**
|
|
3106
|
+
* @method
|
|
3107
|
+
* @name woo#reduceMargin
|
|
3108
|
+
* @description remove margin from a position
|
|
3109
|
+
* @see https://docs.woo.org/#update-isolated-margin-setting
|
|
3110
|
+
* @param {string} symbol unified market symbol
|
|
3111
|
+
* @param {float} amount amount of margin to remove
|
|
3112
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3113
|
+
* @param {string} [params.position_side] 'LONG' or 'SHORT' in hedge mode, 'BOTH' in one way mode
|
|
3114
|
+
* @returns {object} a [margin structure]{@link https://docs.ccxt.com/#/?id=reduce-margin-structure}
|
|
3115
|
+
*/
|
|
3116
|
+
return await this.modifyMarginHelper(symbol, amount, 'REDUCE', params);
|
|
3117
|
+
}
|
|
3118
|
+
async modifyMarginHelper(symbol, amount, type, params = {}) {
|
|
3119
|
+
await this.loadMarkets();
|
|
3120
|
+
const market = this.market(symbol);
|
|
3121
|
+
const request = {
|
|
3122
|
+
'symbol': market['id'],
|
|
3123
|
+
'adjust_token': 'USDT',
|
|
3124
|
+
'adjust_amount': amount,
|
|
3125
|
+
'action': type,
|
|
3126
|
+
};
|
|
3127
|
+
return await this.v1PrivatePostClientIsolatedMargin(this.extend(request, params));
|
|
2937
3128
|
}
|
|
2938
3129
|
async fetchPosition(symbol = undefined, params = {}) {
|
|
2939
3130
|
await this.loadMarkets();
|
|
@@ -2944,17 +3135,26 @@ class woo extends woo$1 {
|
|
|
2944
3135
|
const response = await this.v1PrivateGetPositionSymbol(this.extend(request, params));
|
|
2945
3136
|
//
|
|
2946
3137
|
// {
|
|
2947
|
-
// "symbol":"
|
|
2948
|
-
// "
|
|
2949
|
-
// "
|
|
2950
|
-
// "
|
|
2951
|
-
// "average_open_price":
|
|
2952
|
-
// "
|
|
2953
|
-
// "
|
|
2954
|
-
// "
|
|
2955
|
-
// "
|
|
2956
|
-
// "
|
|
2957
|
-
// "
|
|
3138
|
+
// "symbol": "PERP_ETH_USDT",
|
|
3139
|
+
// "position_side": "BOTH",
|
|
3140
|
+
// "leverage": 10,
|
|
3141
|
+
// "margin_mode": "CROSS",
|
|
3142
|
+
// "average_open_price": 3139.9,
|
|
3143
|
+
// "isolated_margin_amount": 0.0,
|
|
3144
|
+
// "isolated_margin_token": "",
|
|
3145
|
+
// "opening_time": "1720627963.094",
|
|
3146
|
+
// "mark_price": 3155.19169891,
|
|
3147
|
+
// "pending_short_qty": 0.0,
|
|
3148
|
+
// "pending_long_qty": 0.0,
|
|
3149
|
+
// "holding": -0.7,
|
|
3150
|
+
// "pnl_24_h": 0.0,
|
|
3151
|
+
// "est_liq_price": 9107.40055552,
|
|
3152
|
+
// "settle_price": 3151.0319904,
|
|
3153
|
+
// "success": true,
|
|
3154
|
+
// "fee_24_h": 0.0,
|
|
3155
|
+
// "isolated_frozen_long": 0.0,
|
|
3156
|
+
// "isolated_frozen_short": 0.0,
|
|
3157
|
+
// "timestamp": "1720867502.544"
|
|
2958
3158
|
// }
|
|
2959
3159
|
//
|
|
2960
3160
|
return this.parsePosition(response, market);
|
|
@@ -2965,24 +3165,54 @@ class woo extends woo$1 {
|
|
|
2965
3165
|
//
|
|
2966
3166
|
// {
|
|
2967
3167
|
// "success": true,
|
|
2968
|
-
// "data":
|
|
3168
|
+
// "data":
|
|
3169
|
+
// {
|
|
2969
3170
|
// "positions": [
|
|
2970
3171
|
// {
|
|
2971
|
-
// "symbol": "
|
|
2972
|
-
// "holding": 1,
|
|
2973
|
-
// "pendingLongQty": 0,
|
|
2974
|
-
// "pendingShortQty":
|
|
2975
|
-
// "settlePrice":
|
|
2976
|
-
// "averageOpenPrice":
|
|
2977
|
-
// "pnl24H":
|
|
2978
|
-
// "fee24H": 1,
|
|
2979
|
-
// "markPrice":
|
|
2980
|
-
// "estLiqPrice":
|
|
2981
|
-
// "timestamp":
|
|
3172
|
+
// "symbol": "PERP_ETH_USDT",
|
|
3173
|
+
// "holding": -1.0,
|
|
3174
|
+
// "pendingLongQty": 0.0,
|
|
3175
|
+
// "pendingShortQty": 0.0,
|
|
3176
|
+
// "settlePrice": 3143.2,
|
|
3177
|
+
// "averageOpenPrice": 3143.2,
|
|
3178
|
+
// "pnl24H": 0.0,
|
|
3179
|
+
// "fee24H": 1.5716,
|
|
3180
|
+
// "markPrice": 3134.97984158,
|
|
3181
|
+
// "estLiqPrice": 3436.176349,
|
|
3182
|
+
// "timestamp": 1720628031.463,
|
|
3183
|
+
// "adlQuantile": 5,
|
|
3184
|
+
// "positionSide": "BOTH",
|
|
3185
|
+
// "marginMode": "ISOLATED",
|
|
3186
|
+
// "isolatedMarginToken": "USDT",
|
|
3187
|
+
// "isolatedMarginAmount": 314.62426,
|
|
3188
|
+
// "isolatedFrozenLong": 0.0,
|
|
3189
|
+
// "isolatedFrozenShort": 0.0,
|
|
3190
|
+
// "leverage": 10
|
|
3191
|
+
// },
|
|
3192
|
+
// {
|
|
3193
|
+
// "symbol": "PERP_SOL_USDT",
|
|
3194
|
+
// "holding": -1.0,
|
|
3195
|
+
// "pendingLongQty": 0.0,
|
|
3196
|
+
// "pendingShortQty": 0.0,
|
|
3197
|
+
// "settlePrice": 141.89933923,
|
|
3198
|
+
// "averageOpenPrice": 171.38,
|
|
3199
|
+
// "pnl24H": 0.0,
|
|
3200
|
+
// "fee24H": 0.0,
|
|
3201
|
+
// "markPrice": 141.65155427,
|
|
3202
|
+
// "estLiqPrice": 4242.73548551,
|
|
3203
|
+
// "timestamp": 1720616702.68,
|
|
3204
|
+
// "adlQuantile": 5,
|
|
3205
|
+
// "positionSide": "BOTH",
|
|
3206
|
+
// "marginMode": "CROSS",
|
|
3207
|
+
// "isolatedMarginToken": "",
|
|
3208
|
+
// "isolatedMarginAmount": 0.0,
|
|
3209
|
+
// "isolatedFrozenLong": 0.0,
|
|
3210
|
+
// "isolatedFrozenShort": 0.0,
|
|
3211
|
+
// "leverage": 10
|
|
2982
3212
|
// }
|
|
2983
3213
|
// ]
|
|
2984
3214
|
// },
|
|
2985
|
-
// "timestamp":
|
|
3215
|
+
// "timestamp": 1720628675078
|
|
2986
3216
|
// }
|
|
2987
3217
|
//
|
|
2988
3218
|
const result = this.safeDict(response, 'data', {});
|
|
@@ -2991,18 +3221,51 @@ class woo extends woo$1 {
|
|
|
2991
3221
|
}
|
|
2992
3222
|
parsePosition(position, market = undefined) {
|
|
2993
3223
|
//
|
|
3224
|
+
// v1PrivateGetPositionSymbol
|
|
3225
|
+
// {
|
|
3226
|
+
// "symbol": "PERP_ETH_USDT",
|
|
3227
|
+
// "position_side": "BOTH",
|
|
3228
|
+
// "leverage": 10,
|
|
3229
|
+
// "margin_mode": "CROSS",
|
|
3230
|
+
// "average_open_price": 3139.9,
|
|
3231
|
+
// "isolated_margin_amount": 0.0,
|
|
3232
|
+
// "isolated_margin_token": "",
|
|
3233
|
+
// "opening_time": "1720627963.094",
|
|
3234
|
+
// "mark_price": 3155.19169891,
|
|
3235
|
+
// "pending_short_qty": 0.0,
|
|
3236
|
+
// "pending_long_qty": 0.0,
|
|
3237
|
+
// "holding": -0.7,
|
|
3238
|
+
// "pnl_24_h": 0.0,
|
|
3239
|
+
// "est_liq_price": 9107.40055552,
|
|
3240
|
+
// "settle_price": 3151.0319904,
|
|
3241
|
+
// "success": true,
|
|
3242
|
+
// "fee_24_h": 0.0,
|
|
3243
|
+
// "isolated_frozen_long": 0.0,
|
|
3244
|
+
// "isolated_frozen_short": 0.0,
|
|
3245
|
+
// "timestamp": "1720867502.544"
|
|
3246
|
+
// }
|
|
3247
|
+
//
|
|
3248
|
+
// v3PrivateGetPositions
|
|
2994
3249
|
// {
|
|
2995
|
-
// "symbol": "
|
|
2996
|
-
// "holding": 1,
|
|
2997
|
-
// "pendingLongQty": 0,
|
|
2998
|
-
// "pendingShortQty":
|
|
2999
|
-
// "settlePrice":
|
|
3000
|
-
// "averageOpenPrice":
|
|
3001
|
-
// "pnl24H":
|
|
3002
|
-
// "fee24H": 1,
|
|
3003
|
-
// "markPrice":
|
|
3004
|
-
// "estLiqPrice":
|
|
3005
|
-
// "timestamp":
|
|
3250
|
+
// "symbol": "PERP_ETH_USDT",
|
|
3251
|
+
// "holding": -1.0,
|
|
3252
|
+
// "pendingLongQty": 0.0, // todo: check
|
|
3253
|
+
// "pendingShortQty": 0.0, // todo: check
|
|
3254
|
+
// "settlePrice": 3143.2,
|
|
3255
|
+
// "averageOpenPrice": 3143.2,
|
|
3256
|
+
// "pnl24H": 0.0, // todo: check
|
|
3257
|
+
// "fee24H": 1.5716, // todo: check
|
|
3258
|
+
// "markPrice": 3134.97984158,
|
|
3259
|
+
// "estLiqPrice": 3436.176349,
|
|
3260
|
+
// "timestamp": 1720628031.463,
|
|
3261
|
+
// "adlQuantile": 5,
|
|
3262
|
+
// "positionSide": "BOTH",
|
|
3263
|
+
// "marginMode": "ISOLATED",
|
|
3264
|
+
// "isolatedMarginToken": "USDT", // todo: check
|
|
3265
|
+
// "isolatedMarginAmount": 314.62426, // todo: check
|
|
3266
|
+
// "isolatedFrozenLong": 0.0, // todo: check
|
|
3267
|
+
// "isolatedFrozenShort": 0.0, // todo: check
|
|
3268
|
+
// "leverage": 10
|
|
3006
3269
|
// }
|
|
3007
3270
|
//
|
|
3008
3271
|
const contract = this.safeString(position, 'symbol');
|
|
@@ -3016,13 +3279,14 @@ class woo extends woo$1 {
|
|
|
3016
3279
|
side = 'short';
|
|
3017
3280
|
}
|
|
3018
3281
|
const contractSize = this.safeString(market, 'contractSize');
|
|
3019
|
-
const markPrice = this.
|
|
3282
|
+
const markPrice = this.safeString2(position, 'markPrice', 'mark_price');
|
|
3020
3283
|
const timestamp = this.safeTimestamp(position, 'timestamp');
|
|
3021
|
-
const entryPrice = this.
|
|
3284
|
+
const entryPrice = this.safeString2(position, 'averageOpenPrice', 'average_open_price');
|
|
3022
3285
|
const priceDifference = Precise["default"].stringSub(markPrice, entryPrice);
|
|
3023
3286
|
const unrealisedPnl = Precise["default"].stringMul(priceDifference, size);
|
|
3024
3287
|
size = Precise["default"].stringAbs(size);
|
|
3025
3288
|
const notional = Precise["default"].stringMul(size, markPrice);
|
|
3289
|
+
const positionSide = this.safeString(position, 'positionSide'); // 'SHORT' or 'LONG' for hedged, 'BOTH' for non-hedged
|
|
3026
3290
|
return this.safePosition({
|
|
3027
3291
|
'info': position,
|
|
3028
3292
|
'id': undefined,
|
|
@@ -3036,20 +3300,19 @@ class woo extends woo$1 {
|
|
|
3036
3300
|
'maintenanceMarginPercentage': undefined,
|
|
3037
3301
|
'entryPrice': this.parseNumber(entryPrice),
|
|
3038
3302
|
'notional': this.parseNumber(notional),
|
|
3039
|
-
'leverage':
|
|
3303
|
+
'leverage': this.safeNumber(position, 'leverage'),
|
|
3040
3304
|
'unrealizedPnl': this.parseNumber(unrealisedPnl),
|
|
3041
3305
|
'contracts': this.parseNumber(size),
|
|
3042
3306
|
'contractSize': this.parseNumber(contractSize),
|
|
3043
3307
|
'marginRatio': undefined,
|
|
3044
|
-
'liquidationPrice': this.
|
|
3308
|
+
'liquidationPrice': this.safeNumber2(position, 'estLiqPrice', 'est_liq_price'),
|
|
3045
3309
|
'markPrice': this.parseNumber(markPrice),
|
|
3046
3310
|
'lastPrice': undefined,
|
|
3047
3311
|
'collateral': undefined,
|
|
3048
|
-
'marginMode': '
|
|
3049
|
-
'marginType': undefined,
|
|
3312
|
+
'marginMode': this.safeStringLower2(position, 'marginMode', 'margin_mode'),
|
|
3050
3313
|
'side': side,
|
|
3051
3314
|
'percentage': undefined,
|
|
3052
|
-
'hedged':
|
|
3315
|
+
'hedged': positionSide !== 'BOTH',
|
|
3053
3316
|
'stopLossPrice': undefined,
|
|
3054
3317
|
'takeProfitPrice': undefined,
|
|
3055
3318
|
});
|
package/js/ccxt.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ import { Precise } from './src/base/Precise.js';
|
|
|
3
3
|
import * as functions from './src/base/functions.js';
|
|
4
4
|
import * as errors from './src/base/errors.js';
|
|
5
5
|
import type { Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, DepositAddressResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, TransferEntries, LeverageTiers } from './src/base/types.js';
|
|
6
|
-
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
|
|
7
|
-
declare const version = "4.3.
|
|
6
|
+
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
|
|
7
|
+
declare const version = "4.3.63";
|
|
8
8
|
import ace from './src/ace.js';
|
|
9
9
|
import alpaca from './src/alpaca.js';
|
|
10
10
|
import ascendex from './src/ascendex.js';
|
|
@@ -546,5 +546,5 @@ declare const ccxt: {
|
|
|
546
546
|
zaif: typeof zaif;
|
|
547
547
|
zonda: typeof zonda;
|
|
548
548
|
} & typeof functions & typeof errors;
|
|
549
|
-
export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, DepositAddressResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, TransferEntries, LeverageTiers, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
|
|
549
|
+
export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, DepositAddressResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, TransferEntries, LeverageTiers, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
|
|
550
550
|
export default ccxt;
|
package/js/ccxt.js
CHANGED
|
@@ -35,10 +35,10 @@ import { Exchange } from './src/base/Exchange.js';
|
|
|
35
35
|
import { Precise } from './src/base/Precise.js';
|
|
36
36
|
import * as functions from './src/base/functions.js';
|
|
37
37
|
import * as errors from './src/base/errors.js';
|
|
38
|
-
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
|
|
38
|
+
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
|
|
39
39
|
//-----------------------------------------------------------------------------
|
|
40
40
|
// this is updated by vss.js when building
|
|
41
|
-
const version = '4.3.
|
|
41
|
+
const version = '4.3.64';
|
|
42
42
|
Exchange.ccxtVersion = version;
|
|
43
43
|
//-----------------------------------------------------------------------------
|
|
44
44
|
import ace from './src/ace.js';
|
|
@@ -410,6 +410,6 @@ pro.exchanges = Object.keys(pro);
|
|
|
410
410
|
pro['Exchange'] = Exchange; // now the same for rest and ts
|
|
411
411
|
//-----------------------------------------------------------------------------
|
|
412
412
|
const ccxt = Object.assign({ version, Exchange, Precise, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, functions, errors);
|
|
413
|
-
export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, BadResponse, NullResponse, CancelPending, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
|
|
413
|
+
export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
|
|
414
414
|
export default ccxt;
|
|
415
415
|
//-----------------------------------------------------------------------------
|