ccxt 4.5.5 → 4.5.6
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 +4 -4
- package/dist/ccxt.browser.min.js +15 -15
- package/dist/cjs/ccxt.js +6 -6
- package/dist/cjs/src/abstract/toobit.js +11 -0
- package/dist/cjs/src/abstract/tradeogre.js +1 -1
- package/dist/cjs/src/backpack.js +1 -1
- package/dist/cjs/src/base/Exchange.js +129 -2
- package/dist/cjs/src/bigone.js +4 -4
- package/dist/cjs/src/binance.js +79 -20
- package/dist/cjs/src/bingx.js +5 -2
- package/dist/cjs/src/bitget.js +16 -9
- package/dist/cjs/src/bybit.js +186 -127
- package/dist/cjs/src/coinsph.js +4 -1
- package/dist/cjs/src/cryptocom.js +6 -3
- package/dist/cjs/src/gate.js +1 -1
- package/dist/cjs/src/gemini.js +2 -2
- package/dist/cjs/src/hyperliquid.js +3 -0
- package/dist/cjs/src/kraken.js +6 -2
- package/dist/cjs/src/kucoin.js +1 -2
- package/dist/cjs/src/luno.js +4 -1
- package/dist/cjs/src/mexc.js +4 -1
- package/dist/cjs/src/okcoin.js +4 -1
- package/dist/cjs/src/okx.js +34 -3
- package/dist/cjs/src/phemex.js +1 -1
- package/dist/cjs/src/pro/apex.js +1 -0
- package/dist/cjs/src/pro/backpack.js +1 -1
- package/dist/cjs/src/pro/binance.js +150 -19
- package/dist/cjs/src/pro/bitget.js +332 -76
- package/dist/cjs/src/pro/cex.js +1 -0
- package/dist/cjs/src/pro/independentreserve.js +1 -0
- package/dist/cjs/src/pro/mexc.js +23 -23
- package/dist/cjs/src/pro/okx.js +46 -10
- package/dist/cjs/src/pro/toobit.js +1163 -0
- package/dist/cjs/src/pro/tradeogre.js +1 -1
- package/dist/cjs/src/toobit.js +2999 -0
- package/dist/cjs/src/tradeogre.js +1 -1
- package/js/ccxt.d.ts +8 -8
- package/js/ccxt.js +6 -6
- package/js/src/abstract/myokx.d.ts +1 -0
- package/js/src/abstract/okx.d.ts +1 -0
- package/js/src/abstract/okxus.d.ts +1 -0
- package/js/src/abstract/toobit.d.ts +66 -0
- package/js/src/backpack.js +1 -1
- package/js/src/base/Exchange.d.ts +9 -0
- package/js/src/base/Exchange.js +129 -2
- package/js/src/bigone.js +4 -4
- package/js/src/binance.d.ts +9 -0
- package/js/src/binance.js +79 -20
- package/js/src/bingx.js +5 -2
- package/js/src/bitget.js +16 -9
- package/js/src/bybit.d.ts +8 -0
- package/js/src/bybit.js +186 -127
- package/js/src/coinsph.js +4 -1
- package/js/src/cryptocom.js +6 -3
- package/js/src/gate.js +1 -1
- package/js/src/gemini.js +2 -2
- package/js/src/hyperliquid.js +3 -0
- package/js/src/kraken.d.ts +1 -1
- package/js/src/kraken.js +6 -2
- package/js/src/kucoin.js +1 -2
- package/js/src/luno.js +4 -1
- package/js/src/mexc.js +4 -1
- package/js/src/okcoin.js +4 -1
- package/js/src/okx.js +34 -3
- package/js/src/phemex.js +1 -1
- package/js/src/pro/apex.js +1 -0
- package/js/src/pro/backpack.d.ts +1 -1
- package/js/src/pro/backpack.js +1 -1
- package/js/src/pro/binance.d.ts +24 -0
- package/js/src/pro/binance.js +150 -19
- package/js/src/pro/bitget.d.ts +6 -0
- package/js/src/pro/bitget.js +332 -76
- package/js/src/pro/cex.js +1 -0
- package/js/src/pro/independentreserve.js +1 -0
- package/js/src/pro/mexc.js +23 -23
- package/js/src/pro/okx.d.ts +7 -1
- package/js/src/pro/okx.js +46 -10
- package/js/src/pro/toobit.d.ts +174 -0
- package/js/src/pro/toobit.js +1162 -0
- package/js/src/toobit.d.ts +456 -0
- package/js/src/toobit.js +2992 -0
- package/package.json +1 -1
- package/dist/373.ccxt.browser.js +0 -7630
- package/dist/373.ccxt.browser.min.js +0 -1
- package/js/src/abstract/tradeogre.d.ts +0 -21
- package/js/src/pro/tradeogre.d.ts +0 -49
- package/js/src/pro/tradeogre.js +0 -278
- package/js/src/tradeogre.d.ts +0 -149
- package/js/src/tradeogre.js +0 -872
- /package/js/src/abstract/{tradeogre.js → toobit.js} +0 -0
package/js/src/bybit.js
CHANGED
|
@@ -1236,6 +1236,9 @@ export default class bybit extends Exchange {
|
|
|
1236
1236
|
},
|
|
1237
1237
|
'spot': {
|
|
1238
1238
|
'extends': 'default',
|
|
1239
|
+
'fetchCurrencies': {
|
|
1240
|
+
'private': true,
|
|
1241
|
+
},
|
|
1239
1242
|
'createOrder': {
|
|
1240
1243
|
'triggerPriceType': undefined,
|
|
1241
1244
|
'triggerDirection': false,
|
|
@@ -1280,14 +1283,14 @@ export default class bybit extends Exchange {
|
|
|
1280
1283
|
},
|
|
1281
1284
|
});
|
|
1282
1285
|
}
|
|
1286
|
+
/**
|
|
1287
|
+
* @method
|
|
1288
|
+
* @name bybit#enableDemoTrading
|
|
1289
|
+
* @description enables or disables demo trading mode
|
|
1290
|
+
* @see https://bybit-exchange.github.io/docs/v5/demo
|
|
1291
|
+
* @param {boolean} [enable] true if demo trading should be enabled, false otherwise
|
|
1292
|
+
*/
|
|
1283
1293
|
enableDemoTrading(enable) {
|
|
1284
|
-
/**
|
|
1285
|
-
* @method
|
|
1286
|
-
* @name bybit#enableDemoTrading
|
|
1287
|
-
* @description enables or disables demo trading mode
|
|
1288
|
-
* @see https://bybit-exchange.github.io/docs/v5/demo
|
|
1289
|
-
* @param {boolean} [enable] true if demo trading should be enabled, false otherwise
|
|
1290
|
-
*/
|
|
1291
1294
|
if (this.isSandboxModeEnabled) {
|
|
1292
1295
|
throw new NotSupported(this.id + ' demo trading does not support in sandbox environment');
|
|
1293
1296
|
}
|
|
@@ -1595,10 +1598,10 @@ export default class bybit extends Exchange {
|
|
|
1595
1598
|
*/
|
|
1596
1599
|
async fetchCurrencies(params = {}) {
|
|
1597
1600
|
if (!this.checkRequiredCredentials(false)) {
|
|
1598
|
-
return
|
|
1601
|
+
return {};
|
|
1599
1602
|
}
|
|
1600
1603
|
if (this.options['enableDemoTrading']) {
|
|
1601
|
-
return
|
|
1604
|
+
return {};
|
|
1602
1605
|
}
|
|
1603
1606
|
const response = await this.privateGetV5AssetCoinQueryInfo(params);
|
|
1604
1607
|
//
|
|
@@ -3007,6 +3010,44 @@ export default class bybit extends Exchange {
|
|
|
3007
3010
|
// "seq": 34771365464
|
|
3008
3011
|
// }
|
|
3009
3012
|
//
|
|
3013
|
+
// watchMyTrades execution
|
|
3014
|
+
//
|
|
3015
|
+
// {
|
|
3016
|
+
// "category": "linear",
|
|
3017
|
+
// "symbol": "BTCUSDT",
|
|
3018
|
+
// "closedSize": "0",
|
|
3019
|
+
// "execFee": "0.0679239",
|
|
3020
|
+
// "execId": "135dbae5-cbed-5275-9290-3956bb2ed907",
|
|
3021
|
+
// "execPrice": "123498",
|
|
3022
|
+
// "execQty": "0.001",
|
|
3023
|
+
// "execType": "Trade",
|
|
3024
|
+
// "execValue": "123.498",
|
|
3025
|
+
// "feeRate": "0.00055",
|
|
3026
|
+
// "tradeIv": "",
|
|
3027
|
+
// "markIv": "",
|
|
3028
|
+
// "blockTradeId": "",
|
|
3029
|
+
// "markPrice": "122392",
|
|
3030
|
+
// "indexPrice": "",
|
|
3031
|
+
// "underlyingPrice": "",
|
|
3032
|
+
// "leavesQty": "0",
|
|
3033
|
+
// "orderId": "aee7453a-a100-465f-857a-3db780e9329a",
|
|
3034
|
+
// "orderLinkId": "",
|
|
3035
|
+
// "orderPrice": "123615.9",
|
|
3036
|
+
// "orderQty": "0.001",
|
|
3037
|
+
// "orderType": "Market",
|
|
3038
|
+
// "stopOrderType": "UNKNOWN",
|
|
3039
|
+
// "side": "Buy",
|
|
3040
|
+
// "execTime": "1757837580469",
|
|
3041
|
+
// "isLeverage": "0",
|
|
3042
|
+
// "isMaker": false,
|
|
3043
|
+
// "seq": 9517074055,
|
|
3044
|
+
// "marketUnit": "",
|
|
3045
|
+
// "execPnl": "0",
|
|
3046
|
+
// "createType": "CreateByUser",
|
|
3047
|
+
// "extraFees": [],
|
|
3048
|
+
// "feeCoin": "USDT"
|
|
3049
|
+
// }
|
|
3050
|
+
//
|
|
3010
3051
|
const id = this.safeStringN(trade, ['execId', 'id', 'tradeId']);
|
|
3011
3052
|
const marketId = this.safeString(trade, 'symbol');
|
|
3012
3053
|
let marketType = ('createType' in trade) ? 'contract' : 'spot';
|
|
@@ -3081,7 +3122,7 @@ export default class bybit extends Exchange {
|
|
|
3081
3122
|
}
|
|
3082
3123
|
fee = {
|
|
3083
3124
|
'cost': feeCostString,
|
|
3084
|
-
'currency': feeCurrencyCode,
|
|
3125
|
+
'currency': this.safeString(trade, 'feeCoin', feeCurrencyCode),
|
|
3085
3126
|
'rate': feeRateString,
|
|
3086
3127
|
};
|
|
3087
3128
|
}
|
|
@@ -3649,48 +3690,56 @@ export default class bybit extends Exchange {
|
|
|
3649
3690
|
//
|
|
3650
3691
|
// v5
|
|
3651
3692
|
// {
|
|
3652
|
-
// "orderId": "14bad3a1-6454-43d8-bcf2-5345896cf74d",
|
|
3653
|
-
// "orderLinkId": "YLxaWKMiHU",
|
|
3654
|
-
// "blockTradeId": "",
|
|
3655
3693
|
// "symbol": "BTCUSDT",
|
|
3656
|
-
// "
|
|
3657
|
-
// "
|
|
3658
|
-
// "
|
|
3659
|
-
// "
|
|
3660
|
-
// "positionIdx": 1,
|
|
3661
|
-
// "orderStatus": "Cancelled",
|
|
3694
|
+
// "orderType": "Market",
|
|
3695
|
+
// "orderLinkId": "",
|
|
3696
|
+
// "slLimitPrice": "0",
|
|
3697
|
+
// "orderId": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe",
|
|
3662
3698
|
// "cancelType": "UNKNOWN",
|
|
3663
|
-
// "
|
|
3664
|
-
// "
|
|
3665
|
-
// "
|
|
3666
|
-
// "
|
|
3667
|
-
// "
|
|
3668
|
-
// "
|
|
3669
|
-
// "
|
|
3670
|
-
// "
|
|
3671
|
-
// "orderType": "Limit",
|
|
3672
|
-
// "stopOrderType": "UNKNOWN",
|
|
3673
|
-
// "orderIv": "",
|
|
3674
|
-
// "triggerPrice": "0.00",
|
|
3675
|
-
// "takeProfit": "0.00",
|
|
3676
|
-
// "stopLoss": "0.00",
|
|
3677
|
-
// "tpTriggerBy": "UNKNOWN",
|
|
3678
|
-
// "slTriggerBy": "UNKNOWN",
|
|
3679
|
-
// "triggerDirection": 0,
|
|
3680
|
-
// "triggerBy": "UNKNOWN",
|
|
3681
|
-
// "lastPriceOnCreated": "0.00",
|
|
3682
|
-
// "reduceOnly": false,
|
|
3683
|
-
// "closeOnTrigger": false,
|
|
3699
|
+
// "avgPrice": "122529.9",
|
|
3700
|
+
// "stopOrderType": "",
|
|
3701
|
+
// "lastPriceOnCreated": "123747.9",
|
|
3702
|
+
// "orderStatus": "Filled",
|
|
3703
|
+
// "createType": "CreateByUser",
|
|
3704
|
+
// "takeProfit": "",
|
|
3705
|
+
// "cumExecValue": "122.5299",
|
|
3706
|
+
// "tpslMode": "",
|
|
3684
3707
|
// "smpType": "None",
|
|
3708
|
+
// "triggerDirection": 0,
|
|
3709
|
+
// "blockTradeId": "",
|
|
3710
|
+
// "cumFeeDetail": {
|
|
3711
|
+
// "USDT": "0.06739145"
|
|
3712
|
+
// },
|
|
3713
|
+
// "rejectReason": "EC_NoError",
|
|
3714
|
+
// "isLeverage": "",
|
|
3715
|
+
// "price": "120518",
|
|
3716
|
+
// "orderIv": "",
|
|
3717
|
+
// "createdTime": "1757837618905",
|
|
3718
|
+
// "tpTriggerBy": "",
|
|
3719
|
+
// "positionIdx": 0,
|
|
3720
|
+
// "timeInForce": "IOC",
|
|
3721
|
+
// "leavesValue": "0",
|
|
3722
|
+
// "updatedTime": "1757837618909",
|
|
3723
|
+
// "side": "Sell",
|
|
3685
3724
|
// "smpGroup": 0,
|
|
3686
|
-
// "
|
|
3687
|
-
// "
|
|
3688
|
-
// "
|
|
3689
|
-
// "
|
|
3725
|
+
// "triggerPrice": "",
|
|
3726
|
+
// "tpLimitPrice": "0",
|
|
3727
|
+
// "cumExecFee": "0.06739145",
|
|
3728
|
+
// "slTriggerBy": "",
|
|
3729
|
+
// "leavesQty": "0",
|
|
3730
|
+
// "closeOnTrigger": false,
|
|
3731
|
+
// "slippageToleranceType": "UNKNOWN",
|
|
3690
3732
|
// "placeType": "",
|
|
3691
|
-
// "
|
|
3692
|
-
// "
|
|
3733
|
+
// "cumExecQty": "0.001",
|
|
3734
|
+
// "reduceOnly": true,
|
|
3735
|
+
// "qty": "0.001",
|
|
3736
|
+
// "stopLoss": "",
|
|
3737
|
+
// "smpOrderId": "",
|
|
3738
|
+
// "slippageTolerance": "0",
|
|
3739
|
+
// "triggerBy": "",
|
|
3740
|
+
// "extraFees": ""
|
|
3693
3741
|
// }
|
|
3742
|
+
//
|
|
3694
3743
|
// createOrders failed order
|
|
3695
3744
|
// {
|
|
3696
3745
|
// "category": "linear",
|
|
@@ -3748,33 +3797,13 @@ export default class bybit extends Exchange {
|
|
|
3748
3797
|
const status = this.parseOrderStatus(rawStatus);
|
|
3749
3798
|
const side = this.safeStringLower(order, 'side');
|
|
3750
3799
|
let fee = undefined;
|
|
3751
|
-
const
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
if (Precise.stringGt(feeCostString, '0')) {
|
|
3756
|
-
if (side === 'buy') {
|
|
3757
|
-
feeCurrencyCode = market['base'];
|
|
3758
|
-
}
|
|
3759
|
-
else {
|
|
3760
|
-
feeCurrencyCode = market['quote'];
|
|
3761
|
-
}
|
|
3762
|
-
}
|
|
3763
|
-
else {
|
|
3764
|
-
if (side === 'buy') {
|
|
3765
|
-
feeCurrencyCode = market['quote'];
|
|
3766
|
-
}
|
|
3767
|
-
else {
|
|
3768
|
-
feeCurrencyCode = market['base'];
|
|
3769
|
-
}
|
|
3770
|
-
}
|
|
3771
|
-
}
|
|
3772
|
-
else {
|
|
3773
|
-
feeCurrencyCode = market['inverse'] ? market['base'] : market['settle'];
|
|
3774
|
-
}
|
|
3800
|
+
const cumFeeDetail = this.safeDict(order, 'cumFeeDetail', {});
|
|
3801
|
+
const feeCoins = Object.keys(cumFeeDetail);
|
|
3802
|
+
const feeCoinId = this.safeString(feeCoins, 0);
|
|
3803
|
+
if (feeCoinId !== undefined) {
|
|
3775
3804
|
fee = {
|
|
3776
|
-
'cost': this.
|
|
3777
|
-
'currency':
|
|
3805
|
+
'cost': this.safeNumber(cumFeeDetail, feeCoinId),
|
|
3806
|
+
'currency': feeCoinId,
|
|
3778
3807
|
};
|
|
3779
3808
|
}
|
|
3780
3809
|
let clientOrderId = this.safeString(order, 'orderLinkId');
|
|
@@ -5240,49 +5269,63 @@ export default class bybit extends Exchange {
|
|
|
5240
5269
|
// "retCode": 0,
|
|
5241
5270
|
// "retMsg": "OK",
|
|
5242
5271
|
// "result": {
|
|
5243
|
-
// "nextPageCursor": "
|
|
5272
|
+
// "nextPageCursor": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe%3A1757837618905%2Caee7453a-a100-465f-857a-3db780e9329a%3A1757837580469",
|
|
5244
5273
|
// "category": "linear",
|
|
5245
5274
|
// "list": [
|
|
5246
5275
|
// {
|
|
5247
5276
|
// "symbol": "BTCUSDT",
|
|
5248
|
-
// "orderType": "
|
|
5249
|
-
// "orderLinkId": "
|
|
5250
|
-
// "
|
|
5251
|
-
// "
|
|
5252
|
-
// "
|
|
5253
|
-
// "
|
|
5254
|
-
// "
|
|
5255
|
-
// "
|
|
5277
|
+
// "orderType": "Market",
|
|
5278
|
+
// "orderLinkId": "",
|
|
5279
|
+
// "slLimitPrice": "0",
|
|
5280
|
+
// "orderId": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe",
|
|
5281
|
+
// "cancelType": "UNKNOWN",
|
|
5282
|
+
// "avgPrice": "122529.9",
|
|
5283
|
+
// "stopOrderType": "",
|
|
5284
|
+
// "lastPriceOnCreated": "123747.9",
|
|
5285
|
+
// "orderStatus": "Filled",
|
|
5286
|
+
// "createType": "CreateByUser",
|
|
5256
5287
|
// "takeProfit": "",
|
|
5257
|
-
// "cumExecValue": "
|
|
5288
|
+
// "cumExecValue": "122.5299",
|
|
5289
|
+
// "tpslMode": "",
|
|
5290
|
+
// "smpType": "None",
|
|
5258
5291
|
// "triggerDirection": 0,
|
|
5259
5292
|
// "blockTradeId": "",
|
|
5260
|
-
// "
|
|
5293
|
+
// "cumFeeDetail": {
|
|
5294
|
+
// "USDT": "0.06739145"
|
|
5295
|
+
// },
|
|
5296
|
+
// "rejectReason": "EC_NoError",
|
|
5261
5297
|
// "isLeverage": "",
|
|
5262
|
-
// "price": "
|
|
5298
|
+
// "price": "120518",
|
|
5263
5299
|
// "orderIv": "",
|
|
5264
|
-
// "createdTime": "
|
|
5265
|
-
// "tpTriggerBy": "
|
|
5300
|
+
// "createdTime": "1757837618905",
|
|
5301
|
+
// "tpTriggerBy": "",
|
|
5266
5302
|
// "positionIdx": 0,
|
|
5267
|
-
// "timeInForce": "
|
|
5303
|
+
// "timeInForce": "IOC",
|
|
5268
5304
|
// "leavesValue": "0",
|
|
5269
|
-
// "updatedTime": "
|
|
5305
|
+
// "updatedTime": "1757837618909",
|
|
5270
5306
|
// "side": "Sell",
|
|
5307
|
+
// "smpGroup": 0,
|
|
5271
5308
|
// "triggerPrice": "",
|
|
5272
|
-
// "
|
|
5273
|
-
// "
|
|
5309
|
+
// "tpLimitPrice": "0",
|
|
5310
|
+
// "cumExecFee": "0.06739145",
|
|
5311
|
+
// "slTriggerBy": "",
|
|
5274
5312
|
// "leavesQty": "0",
|
|
5275
5313
|
// "closeOnTrigger": false,
|
|
5276
|
-
// "
|
|
5277
|
-
// "
|
|
5278
|
-
// "
|
|
5314
|
+
// "slippageToleranceType": "UNKNOWN",
|
|
5315
|
+
// "placeType": "",
|
|
5316
|
+
// "cumExecQty": "0.001",
|
|
5317
|
+
// "reduceOnly": true,
|
|
5318
|
+
// "qty": "0.001",
|
|
5279
5319
|
// "stopLoss": "",
|
|
5280
|
-
// "
|
|
5281
|
-
//
|
|
5320
|
+
// "smpOrderId": "",
|
|
5321
|
+
// "slippageTolerance": "0",
|
|
5322
|
+
// "triggerBy": "",
|
|
5323
|
+
// "extraFees": ""
|
|
5324
|
+
// },
|
|
5282
5325
|
// ]
|
|
5283
5326
|
// },
|
|
5284
5327
|
// "retExtInfo": {},
|
|
5285
|
-
// "time":
|
|
5328
|
+
// "time": 1758187806376
|
|
5286
5329
|
// }
|
|
5287
5330
|
//
|
|
5288
5331
|
const data = this.addPaginationCursorToResult(response);
|
|
@@ -5395,48 +5438,63 @@ export default class bybit extends Exchange {
|
|
|
5395
5438
|
// "retCode": 0,
|
|
5396
5439
|
// "retMsg": "OK",
|
|
5397
5440
|
// "result": {
|
|
5398
|
-
// "nextPageCursor": "
|
|
5399
|
-
// "category": "
|
|
5441
|
+
// "nextPageCursor": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe%3A1757837618905%2Caee7453a-a100-465f-857a-3db780e9329a%3A1757837580469",
|
|
5442
|
+
// "category": "linear",
|
|
5400
5443
|
// "list": [
|
|
5401
5444
|
// {
|
|
5402
|
-
// "symbol": "
|
|
5403
|
-
// "orderType": "
|
|
5404
|
-
// "orderLinkId": "
|
|
5405
|
-
// "
|
|
5445
|
+
// "symbol": "BTCUSDT",
|
|
5446
|
+
// "orderType": "Market",
|
|
5447
|
+
// "orderLinkId": "",
|
|
5448
|
+
// "slLimitPrice": "0",
|
|
5449
|
+
// "orderId": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe",
|
|
5406
5450
|
// "cancelType": "UNKNOWN",
|
|
5407
|
-
// "avgPrice": "",
|
|
5408
|
-
// "stopOrderType": "
|
|
5409
|
-
// "lastPriceOnCreated": "",
|
|
5410
|
-
// "orderStatus": "
|
|
5451
|
+
// "avgPrice": "122529.9",
|
|
5452
|
+
// "stopOrderType": "",
|
|
5453
|
+
// "lastPriceOnCreated": "123747.9",
|
|
5454
|
+
// "orderStatus": "Filled",
|
|
5455
|
+
// "createType": "CreateByUser",
|
|
5411
5456
|
// "takeProfit": "",
|
|
5412
|
-
// "cumExecValue": "
|
|
5457
|
+
// "cumExecValue": "122.5299",
|
|
5458
|
+
// "tpslMode": "",
|
|
5459
|
+
// "smpType": "None",
|
|
5413
5460
|
// "triggerDirection": 0,
|
|
5414
|
-
// "
|
|
5415
|
-
// "
|
|
5416
|
-
//
|
|
5461
|
+
// "blockTradeId": "",
|
|
5462
|
+
// "cumFeeDetail": {
|
|
5463
|
+
// "USDT": "0.06739145"
|
|
5464
|
+
// },
|
|
5465
|
+
// "rejectReason": "EC_NoError",
|
|
5466
|
+
// "isLeverage": "",
|
|
5467
|
+
// "price": "120518",
|
|
5417
5468
|
// "orderIv": "",
|
|
5418
|
-
// "createdTime": "
|
|
5469
|
+
// "createdTime": "1757837618905",
|
|
5419
5470
|
// "tpTriggerBy": "",
|
|
5420
5471
|
// "positionIdx": 0,
|
|
5421
|
-
// "timeInForce": "
|
|
5422
|
-
// "leavesValue": "
|
|
5423
|
-
// "updatedTime": "
|
|
5424
|
-
// "side": "
|
|
5425
|
-
// "
|
|
5426
|
-
// "
|
|
5427
|
-
// "
|
|
5472
|
+
// "timeInForce": "IOC",
|
|
5473
|
+
// "leavesValue": "0",
|
|
5474
|
+
// "updatedTime": "1757837618909",
|
|
5475
|
+
// "side": "Sell",
|
|
5476
|
+
// "smpGroup": 0,
|
|
5477
|
+
// "triggerPrice": "",
|
|
5478
|
+
// "tpLimitPrice": "0",
|
|
5479
|
+
// "cumExecFee": "0.06739145",
|
|
5428
5480
|
// "slTriggerBy": "",
|
|
5481
|
+
// "leavesQty": "0",
|
|
5429
5482
|
// "closeOnTrigger": false,
|
|
5430
|
-
// "
|
|
5431
|
-
// "
|
|
5432
|
-
// "
|
|
5483
|
+
// "slippageToleranceType": "UNKNOWN",
|
|
5484
|
+
// "placeType": "",
|
|
5485
|
+
// "cumExecQty": "0.001",
|
|
5486
|
+
// "reduceOnly": true,
|
|
5487
|
+
// "qty": "0.001",
|
|
5433
5488
|
// "stopLoss": "",
|
|
5434
|
-
// "
|
|
5435
|
-
//
|
|
5489
|
+
// "smpOrderId": "",
|
|
5490
|
+
// "slippageTolerance": "0",
|
|
5491
|
+
// "triggerBy": "",
|
|
5492
|
+
// "extraFees": ""
|
|
5493
|
+
// },
|
|
5436
5494
|
// ]
|
|
5437
5495
|
// },
|
|
5438
5496
|
// "retExtInfo": {},
|
|
5439
|
-
// "time":
|
|
5497
|
+
// "time": 1758187806376
|
|
5440
5498
|
// }
|
|
5441
5499
|
//
|
|
5442
5500
|
const data = this.addPaginationCursorToResult(response);
|
|
@@ -6180,6 +6238,7 @@ export default class bybit extends Exchange {
|
|
|
6180
6238
|
* @param {string} address the address to withdraw to
|
|
6181
6239
|
* @param {string} tag
|
|
6182
6240
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
6241
|
+
* @param {string} [params.accountType] 'UTA', 'FUND', 'FUND,UTA', and 'SPOT (for classic accounts only)
|
|
6183
6242
|
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
|
6184
6243
|
*/
|
|
6185
6244
|
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
@@ -6187,9 +6246,9 @@ export default class bybit extends Exchange {
|
|
|
6187
6246
|
let accountType = undefined;
|
|
6188
6247
|
const accounts = await this.isUnifiedEnabled();
|
|
6189
6248
|
const isUta = accounts[1];
|
|
6190
|
-
[accountType, params] = this.handleOptionAndParams(params, 'withdraw', 'accountType'
|
|
6191
|
-
if (
|
|
6192
|
-
accountType = 'UTA';
|
|
6249
|
+
[accountType, params] = this.handleOptionAndParams(params, 'withdraw', 'accountType');
|
|
6250
|
+
if (accountType === undefined) {
|
|
6251
|
+
accountType = isUta ? 'UTA' : 'SPOT';
|
|
6193
6252
|
}
|
|
6194
6253
|
await this.loadMarkets();
|
|
6195
6254
|
this.checkAddress(address);
|
package/js/src/coinsph.js
CHANGED
|
@@ -323,6 +323,9 @@ export default class coinsph extends Exchange {
|
|
|
323
323
|
'features': {
|
|
324
324
|
'spot': {
|
|
325
325
|
'sandbox': false,
|
|
326
|
+
'fetchCurrencies': {
|
|
327
|
+
'private': true,
|
|
328
|
+
},
|
|
326
329
|
'createOrder': {
|
|
327
330
|
'marginMode': false,
|
|
328
331
|
'triggerPrice': true,
|
|
@@ -518,7 +521,7 @@ export default class coinsph extends Exchange {
|
|
|
518
521
|
*/
|
|
519
522
|
async fetchCurrencies(params = {}) {
|
|
520
523
|
if (!this.checkRequiredCredentials(false)) {
|
|
521
|
-
return
|
|
524
|
+
return {};
|
|
522
525
|
}
|
|
523
526
|
const response = await this.privateGetOpenapiWalletV1ConfigGetall(params);
|
|
524
527
|
//
|
package/js/src/cryptocom.js
CHANGED
|
@@ -433,6 +433,9 @@ export default class cryptocom extends Exchange {
|
|
|
433
433
|
},
|
|
434
434
|
'spot': {
|
|
435
435
|
'extends': 'default',
|
|
436
|
+
'fetchCurrencies': {
|
|
437
|
+
'private': true,
|
|
438
|
+
},
|
|
436
439
|
},
|
|
437
440
|
'swap': {
|
|
438
441
|
'linear': {
|
|
@@ -527,13 +530,13 @@ export default class cryptocom extends Exchange {
|
|
|
527
530
|
async fetchCurrencies(params = {}) {
|
|
528
531
|
// this endpoint requires authentication
|
|
529
532
|
if (!this.checkRequiredCredentials(false)) {
|
|
530
|
-
return
|
|
533
|
+
return {};
|
|
531
534
|
}
|
|
532
535
|
let skipFetchCurrencies = false;
|
|
533
536
|
[skipFetchCurrencies, params] = this.handleOptionAndParams(params, 'fetchCurrencies', 'skipFetchCurrencies', false);
|
|
534
537
|
if (skipFetchCurrencies) {
|
|
535
538
|
// sub-accounts can't access this endpoint
|
|
536
|
-
return
|
|
539
|
+
return {};
|
|
537
540
|
}
|
|
538
541
|
let response = {};
|
|
539
542
|
try {
|
|
@@ -543,7 +546,7 @@ export default class cryptocom extends Exchange {
|
|
|
543
546
|
if (e instanceof ExchangeError) {
|
|
544
547
|
// sub-accounts can't access this endpoint
|
|
545
548
|
// {"code":"10001","msg":"SYS_ERROR"}
|
|
546
|
-
return
|
|
549
|
+
return {};
|
|
547
550
|
}
|
|
548
551
|
throw e;
|
|
549
552
|
// do nothing
|
package/js/src/gate.js
CHANGED
|
@@ -1869,7 +1869,7 @@ export default class gate extends Exchange {
|
|
|
1869
1869
|
// sandbox/testnet only supports future markets
|
|
1870
1870
|
const apiBackup = this.safeValue(this.urls, 'apiBackup');
|
|
1871
1871
|
if (apiBackup !== undefined) {
|
|
1872
|
-
return
|
|
1872
|
+
return {};
|
|
1873
1873
|
}
|
|
1874
1874
|
const response = await this.publicSpotGetCurrencies(params);
|
|
1875
1875
|
//
|
package/js/src/gemini.js
CHANGED
|
@@ -383,7 +383,7 @@ export default class gemini extends Exchange {
|
|
|
383
383
|
async fetchCurrenciesFromWeb(params = {}) {
|
|
384
384
|
const data = await this.fetchWebEndpoint('fetchCurrencies', 'webExchangeGet', true, '="currencyData">', '</script>');
|
|
385
385
|
if (data === undefined) {
|
|
386
|
-
return
|
|
386
|
+
return {};
|
|
387
387
|
}
|
|
388
388
|
//
|
|
389
389
|
// {
|
|
@@ -1452,7 +1452,7 @@ export default class gemini extends Exchange {
|
|
|
1452
1452
|
// "is_hidden":false,
|
|
1453
1453
|
// "was_forced":false,
|
|
1454
1454
|
// "executed_amount":"0",
|
|
1455
|
-
// "client_order_id":"
|
|
1455
|
+
// "client_order_id":"1650398445701",
|
|
1456
1456
|
// "options":[],
|
|
1457
1457
|
// "price":"2000.00",
|
|
1458
1458
|
// "original_amount":"0.01",
|
package/js/src/hyperliquid.js
CHANGED
|
@@ -3562,6 +3562,9 @@ export default class hyperliquid extends Exchange {
|
|
|
3562
3562
|
}
|
|
3563
3563
|
const until = this.safeInteger(params, 'until');
|
|
3564
3564
|
if (until !== undefined) {
|
|
3565
|
+
if (since === undefined) {
|
|
3566
|
+
throw new ArgumentsRequired(this.id + ' fetchDeposits requires since while until is set');
|
|
3567
|
+
}
|
|
3565
3568
|
request['endTime'] = until;
|
|
3566
3569
|
params = this.omit(params, ['until']);
|
|
3567
3570
|
}
|
package/js/src/kraken.d.ts
CHANGED
|
@@ -429,7 +429,7 @@ export default class kraken extends Exchange {
|
|
|
429
429
|
* @see https://docs.kraken.com/rest/#tag/Funding/operation/withdrawFunds
|
|
430
430
|
* @param {string} code unified currency code
|
|
431
431
|
* @param {float} amount the amount to withdraw
|
|
432
|
-
* @param {string} address the address to withdraw to
|
|
432
|
+
* @param {string} address the address to withdraw to, not required can be '' or undefined/none/null
|
|
433
433
|
* @param {string} tag
|
|
434
434
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
435
435
|
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
package/js/src/kraken.js
CHANGED
|
@@ -424,6 +424,7 @@ export default class kraken extends Exchange {
|
|
|
424
424
|
'OriginTrail': 'OTP',
|
|
425
425
|
'Celestia': 'TIA',
|
|
426
426
|
},
|
|
427
|
+
'marketHelperProps': ['marketsByAltname', 'delistedMarketsById'], // used by setMarketsFromExchange
|
|
427
428
|
},
|
|
428
429
|
'features': {
|
|
429
430
|
'spot': {
|
|
@@ -3188,7 +3189,7 @@ export default class kraken extends Exchange {
|
|
|
3188
3189
|
* @see https://docs.kraken.com/rest/#tag/Funding/operation/withdrawFunds
|
|
3189
3190
|
* @param {string} code unified currency code
|
|
3190
3191
|
* @param {float} amount the amount to withdraw
|
|
3191
|
-
* @param {string} address the address to withdraw to
|
|
3192
|
+
* @param {string} address the address to withdraw to, not required can be '' or undefined/none/null
|
|
3192
3193
|
* @param {string} tag
|
|
3193
3194
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3194
3195
|
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
|
@@ -3202,8 +3203,11 @@ export default class kraken extends Exchange {
|
|
|
3202
3203
|
const request = {
|
|
3203
3204
|
'asset': currency['id'],
|
|
3204
3205
|
'amount': amount,
|
|
3205
|
-
'address': address,
|
|
3206
|
+
// 'address': address,
|
|
3206
3207
|
};
|
|
3208
|
+
if (address !== undefined && address !== '') {
|
|
3209
|
+
request['address'] = address;
|
|
3210
|
+
}
|
|
3207
3211
|
const response = await this.privatePostWithdraw(this.extend(request, params));
|
|
3208
3212
|
//
|
|
3209
3213
|
// {
|
package/js/src/kucoin.js
CHANGED
|
@@ -1385,7 +1385,6 @@ export default class kucoin extends Exchange {
|
|
|
1385
1385
|
//
|
|
1386
1386
|
const currenciesData = this.safeList(response, 'data', []);
|
|
1387
1387
|
const brokenCurrencies = this.safeList(this.options, 'brokenCurrencies', ['00', 'OPEN_ERROR', 'HUF', 'BDT']);
|
|
1388
|
-
const otherFiats = this.safeList(this.options, 'fiats', ['KWD', 'IRR', 'PKR']);
|
|
1389
1388
|
const result = {};
|
|
1390
1389
|
for (let i = 0; i < currenciesData.length; i++) {
|
|
1391
1390
|
const entry = currenciesData[i];
|
|
@@ -1426,7 +1425,7 @@ export default class kucoin extends Exchange {
|
|
|
1426
1425
|
// kucoin has determined 'fiat' currencies with below logic
|
|
1427
1426
|
const rawPrecision = this.safeString(entry, 'precision');
|
|
1428
1427
|
const precision = this.parseNumber(this.parsePrecision(rawPrecision));
|
|
1429
|
-
const isFiat =
|
|
1428
|
+
const isFiat = chainsLength === 0;
|
|
1430
1429
|
result[code] = this.safeCurrencyStructure({
|
|
1431
1430
|
'id': id,
|
|
1432
1431
|
'name': this.safeString(entry, 'fullName'),
|
package/js/src/luno.js
CHANGED
|
@@ -220,6 +220,9 @@ export default class luno extends Exchange {
|
|
|
220
220
|
'features': {
|
|
221
221
|
'spot': {
|
|
222
222
|
'sandbox': false,
|
|
223
|
+
'fetchCurrencies': {
|
|
224
|
+
'private': true,
|
|
225
|
+
},
|
|
223
226
|
'createOrder': {
|
|
224
227
|
'marginMode': false,
|
|
225
228
|
'triggerPrice': true,
|
|
@@ -306,7 +309,7 @@ export default class luno extends Exchange {
|
|
|
306
309
|
*/
|
|
307
310
|
async fetchCurrencies(params = {}) {
|
|
308
311
|
if (!this.checkRequiredCredentials(false)) {
|
|
309
|
-
return
|
|
312
|
+
return {};
|
|
310
313
|
}
|
|
311
314
|
const response = await this.privateGetSendNetworks(params);
|
|
312
315
|
//
|
package/js/src/mexc.js
CHANGED
|
@@ -758,6 +758,9 @@ export default class mexc extends Exchange {
|
|
|
758
758
|
},
|
|
759
759
|
'spot': {
|
|
760
760
|
'extends': 'default',
|
|
761
|
+
'fetchCurrencies': {
|
|
762
|
+
'private': true,
|
|
763
|
+
},
|
|
761
764
|
},
|
|
762
765
|
'forDerivs': {
|
|
763
766
|
'extends': 'default',
|
|
@@ -1048,7 +1051,7 @@ export default class mexc extends Exchange {
|
|
|
1048
1051
|
// therefore we check the keys here
|
|
1049
1052
|
// and fallback to generating the currencies from the markets
|
|
1050
1053
|
if (!this.checkRequiredCredentials(false)) {
|
|
1051
|
-
return
|
|
1054
|
+
return {};
|
|
1052
1055
|
}
|
|
1053
1056
|
const response = await this.spotPrivateGetCapitalConfigGetall(params);
|
|
1054
1057
|
//
|