ccxt 4.5.5 → 4.5.7
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/apex.js +2 -2
- 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 +82 -20
- package/dist/cjs/src/bingx.js +5 -2
- package/dist/cjs/src/bitbank.js +1 -0
- package/dist/cjs/src/bitbns.js +1 -0
- package/dist/cjs/src/bitflyer.js +1 -0
- package/dist/cjs/src/bitget.js +16 -9
- package/dist/cjs/src/bithumb.js +1 -0
- package/dist/cjs/src/bitso.js +1 -0
- package/dist/cjs/src/bitvavo.js +26 -40
- package/dist/cjs/src/blockchaincom.js +1 -0
- package/dist/cjs/src/btcalpha.js +1 -0
- package/dist/cjs/src/btcbox.js +1 -0
- package/dist/cjs/src/btcmarkets.js +1 -0
- package/dist/cjs/src/btcturk.js +1 -0
- 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/deribit.js +3 -2
- package/dist/cjs/src/digifinex.js +1 -1
- package/dist/cjs/src/gate.js +9 -13
- package/dist/cjs/src/gemini.js +5 -5
- package/dist/cjs/src/htx.js +11 -1
- package/dist/cjs/src/hyperliquid.js +3 -0
- package/dist/cjs/src/independentreserve.js +1 -0
- package/dist/cjs/src/indodax.js +17 -6
- package/dist/cjs/src/kraken.js +31 -8
- package/dist/cjs/src/krakenfutures.js +1 -0
- package/dist/cjs/src/kucoin.js +1 -2
- package/dist/cjs/src/luno.js +4 -1
- package/dist/cjs/src/mercado.js +1 -0
- package/dist/cjs/src/mexc.js +84 -37
- package/dist/cjs/src/novadax.js +1 -0
- package/dist/cjs/src/oceanex.js +1 -0
- package/dist/cjs/src/okcoin.js +4 -1
- package/dist/cjs/src/okx.js +52 -8
- package/dist/cjs/src/phemex.js +1 -1
- package/dist/cjs/src/pro/apex.js +8 -4
- package/dist/cjs/src/pro/backpack.js +7 -5
- package/dist/cjs/src/pro/binance.js +150 -19
- package/dist/cjs/src/pro/bingx.js +206 -220
- package/dist/cjs/src/pro/bitget.js +332 -76
- package/dist/cjs/src/pro/cex.js +1 -0
- package/dist/cjs/src/pro/htx.js +1 -1
- 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/dist/cjs/src/upbit.js +1 -0
- package/dist/cjs/src/wavesexchange.js +1 -0
- package/dist/cjs/src/yobit.js +1 -0
- package/dist/cjs/src/zaif.js +1 -0
- package/dist/cjs/src/zonda.js +1 -0
- package/js/ccxt.d.ts +8 -8
- package/js/ccxt.js +6 -6
- package/js/src/abstract/mexc.d.ts +1 -0
- 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/apex.js +2 -2
- 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 +82 -20
- package/js/src/bingx.js +5 -2
- package/js/src/bitbank.js +1 -0
- package/js/src/bitbns.js +1 -0
- package/js/src/bitflyer.js +1 -0
- package/js/src/bitget.js +16 -9
- package/js/src/bithumb.js +1 -0
- package/js/src/bitso.js +1 -0
- package/js/src/bitvavo.d.ts +0 -2
- package/js/src/bitvavo.js +27 -41
- package/js/src/blockchaincom.js +1 -0
- package/js/src/btcalpha.js +1 -0
- package/js/src/btcbox.js +1 -0
- package/js/src/btcmarkets.js +1 -0
- package/js/src/btcturk.js +1 -0
- 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/deribit.js +3 -2
- package/js/src/digifinex.js +1 -1
- package/js/src/gate.d.ts +2 -2
- package/js/src/gate.js +9 -13
- package/js/src/gemini.js +5 -5
- package/js/src/htx.js +11 -1
- package/js/src/hyperliquid.js +3 -0
- package/js/src/independentreserve.js +1 -0
- package/js/src/indodax.js +17 -6
- package/js/src/kraken.d.ts +2 -2
- package/js/src/kraken.js +31 -8
- package/js/src/krakenfutures.js +1 -0
- package/js/src/kucoin.js +1 -2
- package/js/src/luno.js +4 -1
- package/js/src/mercado.js +1 -0
- package/js/src/mexc.d.ts +4 -1
- package/js/src/mexc.js +84 -37
- package/js/src/novadax.js +1 -0
- package/js/src/oceanex.js +1 -0
- package/js/src/okcoin.js +4 -1
- package/js/src/okx.js +52 -8
- package/js/src/phemex.js +1 -1
- package/js/src/pro/apex.js +8 -4
- package/js/src/pro/backpack.d.ts +1 -1
- package/js/src/pro/backpack.js +7 -5
- package/js/src/pro/binance.d.ts +24 -0
- package/js/src/pro/binance.js +150 -19
- package/js/src/pro/bingx.d.ts +53 -33
- package/js/src/pro/bingx.js +207 -221
- 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/htx.js +1 -1
- 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/js/src/upbit.js +1 -0
- package/js/src/wavesexchange.js +1 -0
- package/js/src/yobit.js +1 -0
- package/js/src/zaif.js +1 -0
- package/js/src/zonda.js +1 -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/deribit.js
CHANGED
|
@@ -2705,8 +2705,9 @@ export default class deribit extends Exchange {
|
|
|
2705
2705
|
'notional': this.parseNumber(notionalStringAbs),
|
|
2706
2706
|
'leverage': this.safeInteger(position, 'leverage'),
|
|
2707
2707
|
'unrealizedPnl': this.parseNumber(unrealizedPnl),
|
|
2708
|
-
'
|
|
2709
|
-
'
|
|
2708
|
+
'realizedPnl': this.safeNumber(position, 'realized_profit_loss'),
|
|
2709
|
+
'contracts': this.safeNumber(position, 'size'),
|
|
2710
|
+
'contractSize': this.safeNumber(position, 'contractSize'),
|
|
2710
2711
|
'marginRatio': undefined,
|
|
2711
2712
|
'liquidationPrice': this.safeNumber(position, 'estimated_liquidation_price'),
|
|
2712
2713
|
'markPrice': this.safeNumber(position, 'mark_price'),
|
package/js/src/digifinex.js
CHANGED
|
@@ -523,7 +523,7 @@ export default class digifinex extends Exchange {
|
|
|
523
523
|
const networks = {};
|
|
524
524
|
for (let j = 0; j < networkEntries.length; j++) {
|
|
525
525
|
const networkEntry = networkEntries[j];
|
|
526
|
-
const networkId = this.
|
|
526
|
+
const networkId = this.safeString2(networkEntry, 'chain', 'currency');
|
|
527
527
|
const networkCode = this.networkIdToCode(networkId);
|
|
528
528
|
networks[networkCode] = {
|
|
529
529
|
'id': networkId,
|
package/js/src/gate.d.ts
CHANGED
package/js/src/gate.js
CHANGED
|
@@ -1439,8 +1439,8 @@ export default class gate extends Exchange {
|
|
|
1439
1439
|
// "leverage_min": "1",
|
|
1440
1440
|
// "leverage_max": "100",
|
|
1441
1441
|
// "risk_limit_max": "8000000",
|
|
1442
|
-
// "maker_fee_rate": "-0.00025",
|
|
1443
|
-
// "taker_fee_rate": "0.00075",
|
|
1442
|
+
// "maker_fee_rate": "-0.00025", // not actual value for regular users
|
|
1443
|
+
// "taker_fee_rate": "0.00075", // not actual value for regular users
|
|
1444
1444
|
// "funding_rate": "0.002053",
|
|
1445
1445
|
// "order_size_max": 1000000,
|
|
1446
1446
|
// "funding_next_apply": 1610035200,
|
|
@@ -1484,8 +1484,8 @@ export default class gate extends Exchange {
|
|
|
1484
1484
|
// "risk_limit_base": "140.726652109199",
|
|
1485
1485
|
// "risk_limit_step": "1000000",
|
|
1486
1486
|
// "risk_limit_max": "8000000",
|
|
1487
|
-
// "maker_fee_rate": "-0.00025",
|
|
1488
|
-
// "taker_fee_rate": "0.00075",
|
|
1487
|
+
// "maker_fee_rate": "-0.00025", // not actual value for regular users
|
|
1488
|
+
// "taker_fee_rate": "0.00075", // not actual value for regular users
|
|
1489
1489
|
// "ref_discount_rate": "0",
|
|
1490
1490
|
// "ref_rebate_rate": "0.2",
|
|
1491
1491
|
// "order_price_deviate": "0.5",
|
|
@@ -1524,8 +1524,6 @@ export default class gate extends Exchange {
|
|
|
1524
1524
|
const maxMultiplier = Precise.stringAdd('1', priceDeviate);
|
|
1525
1525
|
const minPrice = Precise.stringMul(minMultiplier, markPrice);
|
|
1526
1526
|
const maxPrice = Precise.stringMul(maxMultiplier, markPrice);
|
|
1527
|
-
const takerPercent = this.safeString(market, 'taker_fee_rate');
|
|
1528
|
-
const makerPercent = this.safeString(market, 'maker_fee_rate', takerPercent);
|
|
1529
1527
|
const isLinear = quote === settle;
|
|
1530
1528
|
let contractSize = this.safeString(market, 'quanto_multiplier');
|
|
1531
1529
|
// exception only for one market: https://api.gateio.ws/api/v4/futures/btc/contracts
|
|
@@ -1551,8 +1549,8 @@ export default class gate extends Exchange {
|
|
|
1551
1549
|
'contract': true,
|
|
1552
1550
|
'linear': isLinear,
|
|
1553
1551
|
'inverse': !isLinear,
|
|
1554
|
-
'taker':
|
|
1555
|
-
'maker':
|
|
1552
|
+
'taker': undefined,
|
|
1553
|
+
'maker': undefined,
|
|
1556
1554
|
'contractSize': this.parseNumber(contractSize),
|
|
1557
1555
|
'expiry': expiry,
|
|
1558
1556
|
'expiryDatetime': this.iso8601(expiry),
|
|
@@ -1651,8 +1649,6 @@ export default class gate extends Exchange {
|
|
|
1651
1649
|
const maxMultiplier = Precise.stringAdd('1', priceDeviate);
|
|
1652
1650
|
const minPrice = Precise.stringMul(minMultiplier, markPrice);
|
|
1653
1651
|
const maxPrice = Precise.stringMul(maxMultiplier, markPrice);
|
|
1654
|
-
const takerPercent = this.safeString(market, 'taker_fee_rate');
|
|
1655
|
-
const makerPercent = this.safeString(market, 'maker_fee_rate', takerPercent);
|
|
1656
1652
|
result.push({
|
|
1657
1653
|
'id': id,
|
|
1658
1654
|
'symbol': symbol,
|
|
@@ -1672,8 +1668,8 @@ export default class gate extends Exchange {
|
|
|
1672
1668
|
'contract': true,
|
|
1673
1669
|
'linear': true,
|
|
1674
1670
|
'inverse': false,
|
|
1675
|
-
'taker':
|
|
1676
|
-
'maker':
|
|
1671
|
+
'taker': undefined,
|
|
1672
|
+
'maker': undefined,
|
|
1677
1673
|
'contractSize': this.parseNumber('1'),
|
|
1678
1674
|
'expiry': expiry,
|
|
1679
1675
|
'expiryDatetime': this.iso8601(expiry),
|
|
@@ -1869,7 +1865,7 @@ export default class gate extends Exchange {
|
|
|
1869
1865
|
// sandbox/testnet only supports future markets
|
|
1870
1866
|
const apiBackup = this.safeValue(this.urls, 'apiBackup');
|
|
1871
1867
|
if (apiBackup !== undefined) {
|
|
1872
|
-
return
|
|
1868
|
+
return {};
|
|
1873
1869
|
}
|
|
1874
1870
|
const response = await this.publicSpotGetCurrencies(params);
|
|
1875
1871
|
//
|
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
|
// {
|
|
@@ -665,9 +665,9 @@ export default class gemini extends Exchange {
|
|
|
665
665
|
const indexedTradingPairs = this.indexBy(tradingPairs, 0);
|
|
666
666
|
for (let i = 0; i < marketIds.length; i++) {
|
|
667
667
|
const marketId = marketIds[i];
|
|
668
|
-
const
|
|
669
|
-
if (
|
|
670
|
-
result.push(this.parseMarket(
|
|
668
|
+
const pairInfo = this.safeList(indexedTradingPairs, marketId.toUpperCase());
|
|
669
|
+
if (pairInfo !== undefined && !this.inArray(marketId, brokenPairs)) {
|
|
670
|
+
result.push(this.parseMarket(pairInfo));
|
|
671
671
|
}
|
|
672
672
|
}
|
|
673
673
|
}
|
|
@@ -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",
|