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/dist/cjs/src/bitvavo.js
CHANGED
|
@@ -382,26 +382,12 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
382
382
|
'operatorId': undefined,
|
|
383
383
|
'fiatCurrencies': ['EUR'], // only fiat atm
|
|
384
384
|
},
|
|
385
|
-
'precisionMode': number.
|
|
385
|
+
'precisionMode': number.TICK_SIZE,
|
|
386
386
|
'commonCurrencies': {
|
|
387
387
|
'MIOTA': 'IOTA', // https://github.com/ccxt/ccxt/issues/7487
|
|
388
388
|
},
|
|
389
389
|
});
|
|
390
390
|
}
|
|
391
|
-
amountToPrecision(symbol, amount) {
|
|
392
|
-
// https://docs.bitfinex.com/docs/introduction#amount-precision
|
|
393
|
-
// The amount field allows up to 8 decimals.
|
|
394
|
-
// Anything exceeding this will be rounded to the 8th decimal.
|
|
395
|
-
return this.decimalToPrecision(amount, number.TRUNCATE, this.markets[symbol]['precision']['amount'], number.DECIMAL_PLACES);
|
|
396
|
-
}
|
|
397
|
-
priceToPrecision(symbol, price) {
|
|
398
|
-
price = this.decimalToPrecision(price, number.ROUND, this.markets[symbol]['precision']['price'], this.precisionMode);
|
|
399
|
-
// https://docs.bitfinex.com/docs/introduction#price-precision
|
|
400
|
-
// The precision level of all trading prices is based on significant figures.
|
|
401
|
-
// All pairs on Bitfinex use up to 5 significant digits and up to 8 decimals (e.g. 1.2345, 123.45, 1234.5, 0.00012345).
|
|
402
|
-
// Prices submit with a precision larger than 5 will be cut by the API.
|
|
403
|
-
return this.decimalToPrecision(price, number.TRUNCATE, 8, number.DECIMAL_PLACES);
|
|
404
|
-
}
|
|
405
391
|
/**
|
|
406
392
|
* @method
|
|
407
393
|
* @name bitvavo#fetchTime
|
|
@@ -427,24 +413,27 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
427
413
|
async fetchMarkets(params = {}) {
|
|
428
414
|
const response = await this.publicGetMarkets(params);
|
|
429
415
|
//
|
|
430
|
-
//
|
|
431
|
-
//
|
|
432
|
-
//
|
|
433
|
-
//
|
|
434
|
-
//
|
|
435
|
-
//
|
|
436
|
-
//
|
|
437
|
-
//
|
|
438
|
-
//
|
|
439
|
-
//
|
|
440
|
-
//
|
|
441
|
-
//
|
|
416
|
+
// {
|
|
417
|
+
// "market": "BTC-EUR",
|
|
418
|
+
// "status": "trading",
|
|
419
|
+
// "base": "BTC",
|
|
420
|
+
// "quote": "EUR",
|
|
421
|
+
// "pricePrecision": "0", // deprecated, this is mostly 0 across other markets too, which is abnormal, so we ignore this.
|
|
422
|
+
// "tickSize": "1.00",
|
|
423
|
+
// "minOrderInBaseAsset": "0.00006100",
|
|
424
|
+
// "minOrderInQuoteAsset": "5.00",
|
|
425
|
+
// "maxOrderInBaseAsset": "1000000000.00000000",
|
|
426
|
+
// "maxOrderInQuoteAsset": "1000000000.00",
|
|
427
|
+
// "quantityDecimals": "8",
|
|
428
|
+
// "notionalDecimals": "2",
|
|
429
|
+
// "maxOpenOrders": "100",
|
|
430
|
+
// "feeCategory": "A",
|
|
431
|
+
// "orderTypes": [ "market", "limit", "stopLoss", "stopLossLimit", "takeProfit", "takeProfitLimit" ]
|
|
432
|
+
// }
|
|
442
433
|
//
|
|
443
434
|
return this.parseMarkets(response);
|
|
444
435
|
}
|
|
445
436
|
parseMarkets(markets) {
|
|
446
|
-
const currencies = this.currencies;
|
|
447
|
-
const currenciesById = this.indexBy(currencies, 'id');
|
|
448
437
|
const result = [];
|
|
449
438
|
const fees = this.fees;
|
|
450
439
|
for (let i = 0; i < markets.length; i++) {
|
|
@@ -455,8 +444,6 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
455
444
|
const base = this.safeCurrencyCode(baseId);
|
|
456
445
|
const quote = this.safeCurrencyCode(quoteId);
|
|
457
446
|
const status = this.safeString(market, 'status');
|
|
458
|
-
const baseCurrency = this.safeValue(currenciesById, baseId);
|
|
459
|
-
const basePrecision = this.safeInteger(baseCurrency, 'precision');
|
|
460
447
|
result.push(this.safeMarketStructure({
|
|
461
448
|
'id': id,
|
|
462
449
|
'symbol': base + '/' + quote,
|
|
@@ -484,8 +471,9 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
484
471
|
'taker': fees['trading']['taker'],
|
|
485
472
|
'maker': fees['trading']['maker'],
|
|
486
473
|
'precision': {
|
|
487
|
-
'amount': this.
|
|
488
|
-
'price': this.
|
|
474
|
+
'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'quantityDecimals'))),
|
|
475
|
+
'price': this.safeNumber(market, 'tickSize'),
|
|
476
|
+
'cost': this.parseNumber(this.parsePrecision(this.safeString(market, 'notionalDecimals'))),
|
|
489
477
|
},
|
|
490
478
|
'limits': {
|
|
491
479
|
'leverage': {
|
|
@@ -494,7 +482,7 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
494
482
|
},
|
|
495
483
|
'amount': {
|
|
496
484
|
'min': this.safeNumber(market, 'minOrderInBaseAsset'),
|
|
497
|
-
'max':
|
|
485
|
+
'max': this.safeNumber(market, 'maxOrderInBaseAsset'),
|
|
498
486
|
},
|
|
499
487
|
'price': {
|
|
500
488
|
'min': undefined,
|
|
@@ -502,7 +490,7 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
502
490
|
},
|
|
503
491
|
'cost': {
|
|
504
492
|
'min': this.safeNumber(market, 'minOrderInQuoteAsset'),
|
|
505
|
-
'max':
|
|
493
|
+
'max': this.safeNumber(market, 'maxOrderInQuoteAsset'),
|
|
506
494
|
},
|
|
507
495
|
},
|
|
508
496
|
'created': undefined,
|
|
@@ -603,7 +591,7 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
603
591
|
const withdrawal = this.safeString(currency, 'withdrawalStatus') === 'OK';
|
|
604
592
|
const active = deposit && withdrawal;
|
|
605
593
|
const withdrawFee = this.safeNumber(currency, 'withdrawalFee');
|
|
606
|
-
const precision = this.
|
|
594
|
+
const precision = this.safeString(currency, 'decimals', '8');
|
|
607
595
|
const minWithdraw = this.safeNumber(currency, 'withdrawalMinAmount');
|
|
608
596
|
// btw, absolutely all of them have 1 network atm
|
|
609
597
|
for (let j = 0; j < networksArray.length; j++) {
|
|
@@ -617,7 +605,7 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
617
605
|
'deposit': deposit,
|
|
618
606
|
'withdraw': withdrawal,
|
|
619
607
|
'fee': withdrawFee,
|
|
620
|
-
'precision': precision,
|
|
608
|
+
'precision': this.parseNumber(this.parsePrecision(precision)),
|
|
621
609
|
'limits': {
|
|
622
610
|
'withdraw': {
|
|
623
611
|
'min': minWithdraw,
|
|
@@ -636,7 +624,7 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
636
624
|
'withdraw': withdrawal,
|
|
637
625
|
'networks': networks,
|
|
638
626
|
'fee': withdrawFee,
|
|
639
|
-
'precision':
|
|
627
|
+
'precision': undefined,
|
|
640
628
|
'type': isFiat ? 'fiat' : 'crypto',
|
|
641
629
|
'limits': {
|
|
642
630
|
'amount': {
|
|
@@ -654,8 +642,6 @@ class bitvavo extends bitvavo$1["default"] {
|
|
|
654
642
|
},
|
|
655
643
|
});
|
|
656
644
|
}
|
|
657
|
-
// set currencies here to avoid calling publicGetAssets twice
|
|
658
|
-
this.currencies = this.mapToSafeMap(this.deepExtend(this.currencies, result));
|
|
659
645
|
return result;
|
|
660
646
|
}
|
|
661
647
|
/**
|
|
@@ -39,6 +39,7 @@ class blockchaincom extends blockchaincom$1["default"] {
|
|
|
39
39
|
'fetchBalance': true,
|
|
40
40
|
'fetchCanceledOrders': true,
|
|
41
41
|
'fetchClosedOrders': true,
|
|
42
|
+
'fetchCurrencies': false,
|
|
42
43
|
'fetchDeposit': true,
|
|
43
44
|
'fetchDepositAddress': true,
|
|
44
45
|
'fetchDepositAddresses': false,
|
package/dist/cjs/src/btcalpha.js
CHANGED
|
@@ -54,6 +54,7 @@ class btcalpha extends btcalpha$1["default"] {
|
|
|
54
54
|
'fetchClosedOrders': true,
|
|
55
55
|
'fetchCrossBorrowRate': false,
|
|
56
56
|
'fetchCrossBorrowRates': false,
|
|
57
|
+
'fetchCurrencies': false,
|
|
57
58
|
'fetchDeposit': false,
|
|
58
59
|
'fetchDepositAddress': false,
|
|
59
60
|
'fetchDepositAddresses': false,
|
package/dist/cjs/src/btcbox.js
CHANGED
|
@@ -52,6 +52,7 @@ class btcbox extends btcbox$1["default"] {
|
|
|
52
52
|
'fetchBorrowRatesPerSymbol': false,
|
|
53
53
|
'fetchCrossBorrowRate': false,
|
|
54
54
|
'fetchCrossBorrowRates': false,
|
|
55
|
+
'fetchCurrencies': false,
|
|
55
56
|
'fetchFundingHistory': false,
|
|
56
57
|
'fetchFundingInterval': false,
|
|
57
58
|
'fetchFundingIntervals': false,
|
|
@@ -54,6 +54,7 @@ class btcmarkets extends btcmarkets$1["default"] {
|
|
|
54
54
|
'fetchClosedOrders': 'emulated',
|
|
55
55
|
'fetchCrossBorrowRate': false,
|
|
56
56
|
'fetchCrossBorrowRates': false,
|
|
57
|
+
'fetchCurrencies': false,
|
|
57
58
|
'fetchDepositAddress': false,
|
|
58
59
|
'fetchDepositAddresses': false,
|
|
59
60
|
'fetchDepositAddressesByNetwork': false,
|
package/dist/cjs/src/btcturk.js
CHANGED
|
@@ -51,6 +51,7 @@ class btcturk extends btcturk$1["default"] {
|
|
|
51
51
|
'fetchBorrowRatesPerSymbol': false,
|
|
52
52
|
'fetchCrossBorrowRate': false,
|
|
53
53
|
'fetchCrossBorrowRates': false,
|
|
54
|
+
'fetchCurrencies': false,
|
|
54
55
|
'fetchDepositAddress': false,
|
|
55
56
|
'fetchDepositAddresses': false,
|
|
56
57
|
'fetchDepositAddressesByNetwork': false,
|
package/dist/cjs/src/bybit.js
CHANGED
|
@@ -1241,6 +1241,9 @@ class bybit extends bybit$1["default"] {
|
|
|
1241
1241
|
},
|
|
1242
1242
|
'spot': {
|
|
1243
1243
|
'extends': 'default',
|
|
1244
|
+
'fetchCurrencies': {
|
|
1245
|
+
'private': true,
|
|
1246
|
+
},
|
|
1244
1247
|
'createOrder': {
|
|
1245
1248
|
'triggerPriceType': undefined,
|
|
1246
1249
|
'triggerDirection': false,
|
|
@@ -1285,14 +1288,14 @@ class bybit extends bybit$1["default"] {
|
|
|
1285
1288
|
},
|
|
1286
1289
|
});
|
|
1287
1290
|
}
|
|
1291
|
+
/**
|
|
1292
|
+
* @method
|
|
1293
|
+
* @name bybit#enableDemoTrading
|
|
1294
|
+
* @description enables or disables demo trading mode
|
|
1295
|
+
* @see https://bybit-exchange.github.io/docs/v5/demo
|
|
1296
|
+
* @param {boolean} [enable] true if demo trading should be enabled, false otherwise
|
|
1297
|
+
*/
|
|
1288
1298
|
enableDemoTrading(enable) {
|
|
1289
|
-
/**
|
|
1290
|
-
* @method
|
|
1291
|
-
* @name bybit#enableDemoTrading
|
|
1292
|
-
* @description enables or disables demo trading mode
|
|
1293
|
-
* @see https://bybit-exchange.github.io/docs/v5/demo
|
|
1294
|
-
* @param {boolean} [enable] true if demo trading should be enabled, false otherwise
|
|
1295
|
-
*/
|
|
1296
1299
|
if (this.isSandboxModeEnabled) {
|
|
1297
1300
|
throw new errors.NotSupported(this.id + ' demo trading does not support in sandbox environment');
|
|
1298
1301
|
}
|
|
@@ -1600,10 +1603,10 @@ class bybit extends bybit$1["default"] {
|
|
|
1600
1603
|
*/
|
|
1601
1604
|
async fetchCurrencies(params = {}) {
|
|
1602
1605
|
if (!this.checkRequiredCredentials(false)) {
|
|
1603
|
-
return
|
|
1606
|
+
return {};
|
|
1604
1607
|
}
|
|
1605
1608
|
if (this.options['enableDemoTrading']) {
|
|
1606
|
-
return
|
|
1609
|
+
return {};
|
|
1607
1610
|
}
|
|
1608
1611
|
const response = await this.privateGetV5AssetCoinQueryInfo(params);
|
|
1609
1612
|
//
|
|
@@ -3012,6 +3015,44 @@ class bybit extends bybit$1["default"] {
|
|
|
3012
3015
|
// "seq": 34771365464
|
|
3013
3016
|
// }
|
|
3014
3017
|
//
|
|
3018
|
+
// watchMyTrades execution
|
|
3019
|
+
//
|
|
3020
|
+
// {
|
|
3021
|
+
// "category": "linear",
|
|
3022
|
+
// "symbol": "BTCUSDT",
|
|
3023
|
+
// "closedSize": "0",
|
|
3024
|
+
// "execFee": "0.0679239",
|
|
3025
|
+
// "execId": "135dbae5-cbed-5275-9290-3956bb2ed907",
|
|
3026
|
+
// "execPrice": "123498",
|
|
3027
|
+
// "execQty": "0.001",
|
|
3028
|
+
// "execType": "Trade",
|
|
3029
|
+
// "execValue": "123.498",
|
|
3030
|
+
// "feeRate": "0.00055",
|
|
3031
|
+
// "tradeIv": "",
|
|
3032
|
+
// "markIv": "",
|
|
3033
|
+
// "blockTradeId": "",
|
|
3034
|
+
// "markPrice": "122392",
|
|
3035
|
+
// "indexPrice": "",
|
|
3036
|
+
// "underlyingPrice": "",
|
|
3037
|
+
// "leavesQty": "0",
|
|
3038
|
+
// "orderId": "aee7453a-a100-465f-857a-3db780e9329a",
|
|
3039
|
+
// "orderLinkId": "",
|
|
3040
|
+
// "orderPrice": "123615.9",
|
|
3041
|
+
// "orderQty": "0.001",
|
|
3042
|
+
// "orderType": "Market",
|
|
3043
|
+
// "stopOrderType": "UNKNOWN",
|
|
3044
|
+
// "side": "Buy",
|
|
3045
|
+
// "execTime": "1757837580469",
|
|
3046
|
+
// "isLeverage": "0",
|
|
3047
|
+
// "isMaker": false,
|
|
3048
|
+
// "seq": 9517074055,
|
|
3049
|
+
// "marketUnit": "",
|
|
3050
|
+
// "execPnl": "0",
|
|
3051
|
+
// "createType": "CreateByUser",
|
|
3052
|
+
// "extraFees": [],
|
|
3053
|
+
// "feeCoin": "USDT"
|
|
3054
|
+
// }
|
|
3055
|
+
//
|
|
3015
3056
|
const id = this.safeStringN(trade, ['execId', 'id', 'tradeId']);
|
|
3016
3057
|
const marketId = this.safeString(trade, 'symbol');
|
|
3017
3058
|
let marketType = ('createType' in trade) ? 'contract' : 'spot';
|
|
@@ -3086,7 +3127,7 @@ class bybit extends bybit$1["default"] {
|
|
|
3086
3127
|
}
|
|
3087
3128
|
fee = {
|
|
3088
3129
|
'cost': feeCostString,
|
|
3089
|
-
'currency': feeCurrencyCode,
|
|
3130
|
+
'currency': this.safeString(trade, 'feeCoin', feeCurrencyCode),
|
|
3090
3131
|
'rate': feeRateString,
|
|
3091
3132
|
};
|
|
3092
3133
|
}
|
|
@@ -3654,48 +3695,56 @@ class bybit extends bybit$1["default"] {
|
|
|
3654
3695
|
//
|
|
3655
3696
|
// v5
|
|
3656
3697
|
// {
|
|
3657
|
-
// "orderId": "14bad3a1-6454-43d8-bcf2-5345896cf74d",
|
|
3658
|
-
// "orderLinkId": "YLxaWKMiHU",
|
|
3659
|
-
// "blockTradeId": "",
|
|
3660
3698
|
// "symbol": "BTCUSDT",
|
|
3661
|
-
// "
|
|
3662
|
-
// "
|
|
3663
|
-
// "
|
|
3664
|
-
// "
|
|
3665
|
-
// "positionIdx": 1,
|
|
3666
|
-
// "orderStatus": "Cancelled",
|
|
3699
|
+
// "orderType": "Market",
|
|
3700
|
+
// "orderLinkId": "",
|
|
3701
|
+
// "slLimitPrice": "0",
|
|
3702
|
+
// "orderId": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe",
|
|
3667
3703
|
// "cancelType": "UNKNOWN",
|
|
3668
|
-
// "
|
|
3669
|
-
// "
|
|
3670
|
-
// "
|
|
3671
|
-
// "
|
|
3672
|
-
// "
|
|
3673
|
-
// "
|
|
3674
|
-
// "
|
|
3675
|
-
// "
|
|
3676
|
-
// "orderType": "Limit",
|
|
3677
|
-
// "stopOrderType": "UNKNOWN",
|
|
3678
|
-
// "orderIv": "",
|
|
3679
|
-
// "triggerPrice": "0.00",
|
|
3680
|
-
// "takeProfit": "0.00",
|
|
3681
|
-
// "stopLoss": "0.00",
|
|
3682
|
-
// "tpTriggerBy": "UNKNOWN",
|
|
3683
|
-
// "slTriggerBy": "UNKNOWN",
|
|
3684
|
-
// "triggerDirection": 0,
|
|
3685
|
-
// "triggerBy": "UNKNOWN",
|
|
3686
|
-
// "lastPriceOnCreated": "0.00",
|
|
3687
|
-
// "reduceOnly": false,
|
|
3688
|
-
// "closeOnTrigger": false,
|
|
3704
|
+
// "avgPrice": "122529.9",
|
|
3705
|
+
// "stopOrderType": "",
|
|
3706
|
+
// "lastPriceOnCreated": "123747.9",
|
|
3707
|
+
// "orderStatus": "Filled",
|
|
3708
|
+
// "createType": "CreateByUser",
|
|
3709
|
+
// "takeProfit": "",
|
|
3710
|
+
// "cumExecValue": "122.5299",
|
|
3711
|
+
// "tpslMode": "",
|
|
3689
3712
|
// "smpType": "None",
|
|
3713
|
+
// "triggerDirection": 0,
|
|
3714
|
+
// "blockTradeId": "",
|
|
3715
|
+
// "cumFeeDetail": {
|
|
3716
|
+
// "USDT": "0.06739145"
|
|
3717
|
+
// },
|
|
3718
|
+
// "rejectReason": "EC_NoError",
|
|
3719
|
+
// "isLeverage": "",
|
|
3720
|
+
// "price": "120518",
|
|
3721
|
+
// "orderIv": "",
|
|
3722
|
+
// "createdTime": "1757837618905",
|
|
3723
|
+
// "tpTriggerBy": "",
|
|
3724
|
+
// "positionIdx": 0,
|
|
3725
|
+
// "timeInForce": "IOC",
|
|
3726
|
+
// "leavesValue": "0",
|
|
3727
|
+
// "updatedTime": "1757837618909",
|
|
3728
|
+
// "side": "Sell",
|
|
3690
3729
|
// "smpGroup": 0,
|
|
3691
|
-
// "
|
|
3692
|
-
// "
|
|
3693
|
-
// "
|
|
3694
|
-
// "
|
|
3730
|
+
// "triggerPrice": "",
|
|
3731
|
+
// "tpLimitPrice": "0",
|
|
3732
|
+
// "cumExecFee": "0.06739145",
|
|
3733
|
+
// "slTriggerBy": "",
|
|
3734
|
+
// "leavesQty": "0",
|
|
3735
|
+
// "closeOnTrigger": false,
|
|
3736
|
+
// "slippageToleranceType": "UNKNOWN",
|
|
3695
3737
|
// "placeType": "",
|
|
3696
|
-
// "
|
|
3697
|
-
// "
|
|
3738
|
+
// "cumExecQty": "0.001",
|
|
3739
|
+
// "reduceOnly": true,
|
|
3740
|
+
// "qty": "0.001",
|
|
3741
|
+
// "stopLoss": "",
|
|
3742
|
+
// "smpOrderId": "",
|
|
3743
|
+
// "slippageTolerance": "0",
|
|
3744
|
+
// "triggerBy": "",
|
|
3745
|
+
// "extraFees": ""
|
|
3698
3746
|
// }
|
|
3747
|
+
//
|
|
3699
3748
|
// createOrders failed order
|
|
3700
3749
|
// {
|
|
3701
3750
|
// "category": "linear",
|
|
@@ -3753,33 +3802,13 @@ class bybit extends bybit$1["default"] {
|
|
|
3753
3802
|
const status = this.parseOrderStatus(rawStatus);
|
|
3754
3803
|
const side = this.safeStringLower(order, 'side');
|
|
3755
3804
|
let fee = undefined;
|
|
3756
|
-
const
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
if (Precise["default"].stringGt(feeCostString, '0')) {
|
|
3761
|
-
if (side === 'buy') {
|
|
3762
|
-
feeCurrencyCode = market['base'];
|
|
3763
|
-
}
|
|
3764
|
-
else {
|
|
3765
|
-
feeCurrencyCode = market['quote'];
|
|
3766
|
-
}
|
|
3767
|
-
}
|
|
3768
|
-
else {
|
|
3769
|
-
if (side === 'buy') {
|
|
3770
|
-
feeCurrencyCode = market['quote'];
|
|
3771
|
-
}
|
|
3772
|
-
else {
|
|
3773
|
-
feeCurrencyCode = market['base'];
|
|
3774
|
-
}
|
|
3775
|
-
}
|
|
3776
|
-
}
|
|
3777
|
-
else {
|
|
3778
|
-
feeCurrencyCode = market['inverse'] ? market['base'] : market['settle'];
|
|
3779
|
-
}
|
|
3805
|
+
const cumFeeDetail = this.safeDict(order, 'cumFeeDetail', {});
|
|
3806
|
+
const feeCoins = Object.keys(cumFeeDetail);
|
|
3807
|
+
const feeCoinId = this.safeString(feeCoins, 0);
|
|
3808
|
+
if (feeCoinId !== undefined) {
|
|
3780
3809
|
fee = {
|
|
3781
|
-
'cost': this.
|
|
3782
|
-
'currency':
|
|
3810
|
+
'cost': this.safeNumber(cumFeeDetail, feeCoinId),
|
|
3811
|
+
'currency': feeCoinId,
|
|
3783
3812
|
};
|
|
3784
3813
|
}
|
|
3785
3814
|
let clientOrderId = this.safeString(order, 'orderLinkId');
|
|
@@ -5245,49 +5274,63 @@ class bybit extends bybit$1["default"] {
|
|
|
5245
5274
|
// "retCode": 0,
|
|
5246
5275
|
// "retMsg": "OK",
|
|
5247
5276
|
// "result": {
|
|
5248
|
-
// "nextPageCursor": "
|
|
5277
|
+
// "nextPageCursor": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe%3A1757837618905%2Caee7453a-a100-465f-857a-3db780e9329a%3A1757837580469",
|
|
5249
5278
|
// "category": "linear",
|
|
5250
5279
|
// "list": [
|
|
5251
5280
|
// {
|
|
5252
5281
|
// "symbol": "BTCUSDT",
|
|
5253
|
-
// "orderType": "
|
|
5254
|
-
// "orderLinkId": "
|
|
5255
|
-
// "
|
|
5256
|
-
// "
|
|
5257
|
-
// "
|
|
5258
|
-
// "
|
|
5259
|
-
// "
|
|
5260
|
-
// "
|
|
5282
|
+
// "orderType": "Market",
|
|
5283
|
+
// "orderLinkId": "",
|
|
5284
|
+
// "slLimitPrice": "0",
|
|
5285
|
+
// "orderId": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe",
|
|
5286
|
+
// "cancelType": "UNKNOWN",
|
|
5287
|
+
// "avgPrice": "122529.9",
|
|
5288
|
+
// "stopOrderType": "",
|
|
5289
|
+
// "lastPriceOnCreated": "123747.9",
|
|
5290
|
+
// "orderStatus": "Filled",
|
|
5291
|
+
// "createType": "CreateByUser",
|
|
5261
5292
|
// "takeProfit": "",
|
|
5262
|
-
// "cumExecValue": "
|
|
5293
|
+
// "cumExecValue": "122.5299",
|
|
5294
|
+
// "tpslMode": "",
|
|
5295
|
+
// "smpType": "None",
|
|
5263
5296
|
// "triggerDirection": 0,
|
|
5264
5297
|
// "blockTradeId": "",
|
|
5265
|
-
// "
|
|
5298
|
+
// "cumFeeDetail": {
|
|
5299
|
+
// "USDT": "0.06739145"
|
|
5300
|
+
// },
|
|
5301
|
+
// "rejectReason": "EC_NoError",
|
|
5266
5302
|
// "isLeverage": "",
|
|
5267
|
-
// "price": "
|
|
5303
|
+
// "price": "120518",
|
|
5268
5304
|
// "orderIv": "",
|
|
5269
|
-
// "createdTime": "
|
|
5270
|
-
// "tpTriggerBy": "
|
|
5305
|
+
// "createdTime": "1757837618905",
|
|
5306
|
+
// "tpTriggerBy": "",
|
|
5271
5307
|
// "positionIdx": 0,
|
|
5272
|
-
// "timeInForce": "
|
|
5308
|
+
// "timeInForce": "IOC",
|
|
5273
5309
|
// "leavesValue": "0",
|
|
5274
|
-
// "updatedTime": "
|
|
5310
|
+
// "updatedTime": "1757837618909",
|
|
5275
5311
|
// "side": "Sell",
|
|
5312
|
+
// "smpGroup": 0,
|
|
5276
5313
|
// "triggerPrice": "",
|
|
5277
|
-
// "
|
|
5278
|
-
// "
|
|
5314
|
+
// "tpLimitPrice": "0",
|
|
5315
|
+
// "cumExecFee": "0.06739145",
|
|
5316
|
+
// "slTriggerBy": "",
|
|
5279
5317
|
// "leavesQty": "0",
|
|
5280
5318
|
// "closeOnTrigger": false,
|
|
5281
|
-
// "
|
|
5282
|
-
// "
|
|
5283
|
-
// "
|
|
5319
|
+
// "slippageToleranceType": "UNKNOWN",
|
|
5320
|
+
// "placeType": "",
|
|
5321
|
+
// "cumExecQty": "0.001",
|
|
5322
|
+
// "reduceOnly": true,
|
|
5323
|
+
// "qty": "0.001",
|
|
5284
5324
|
// "stopLoss": "",
|
|
5285
|
-
// "
|
|
5286
|
-
//
|
|
5325
|
+
// "smpOrderId": "",
|
|
5326
|
+
// "slippageTolerance": "0",
|
|
5327
|
+
// "triggerBy": "",
|
|
5328
|
+
// "extraFees": ""
|
|
5329
|
+
// },
|
|
5287
5330
|
// ]
|
|
5288
5331
|
// },
|
|
5289
5332
|
// "retExtInfo": {},
|
|
5290
|
-
// "time":
|
|
5333
|
+
// "time": 1758187806376
|
|
5291
5334
|
// }
|
|
5292
5335
|
//
|
|
5293
5336
|
const data = this.addPaginationCursorToResult(response);
|
|
@@ -5400,48 +5443,63 @@ class bybit extends bybit$1["default"] {
|
|
|
5400
5443
|
// "retCode": 0,
|
|
5401
5444
|
// "retMsg": "OK",
|
|
5402
5445
|
// "result": {
|
|
5403
|
-
// "nextPageCursor": "
|
|
5404
|
-
// "category": "
|
|
5446
|
+
// "nextPageCursor": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe%3A1757837618905%2Caee7453a-a100-465f-857a-3db780e9329a%3A1757837580469",
|
|
5447
|
+
// "category": "linear",
|
|
5405
5448
|
// "list": [
|
|
5406
5449
|
// {
|
|
5407
|
-
// "symbol": "
|
|
5408
|
-
// "orderType": "
|
|
5409
|
-
// "orderLinkId": "
|
|
5410
|
-
// "
|
|
5450
|
+
// "symbol": "BTCUSDT",
|
|
5451
|
+
// "orderType": "Market",
|
|
5452
|
+
// "orderLinkId": "",
|
|
5453
|
+
// "slLimitPrice": "0",
|
|
5454
|
+
// "orderId": "f5f2d355-9a11-4af3-9b83-aa1d6ab6ddfe",
|
|
5411
5455
|
// "cancelType": "UNKNOWN",
|
|
5412
|
-
// "avgPrice": "",
|
|
5413
|
-
// "stopOrderType": "
|
|
5414
|
-
// "lastPriceOnCreated": "",
|
|
5415
|
-
// "orderStatus": "
|
|
5456
|
+
// "avgPrice": "122529.9",
|
|
5457
|
+
// "stopOrderType": "",
|
|
5458
|
+
// "lastPriceOnCreated": "123747.9",
|
|
5459
|
+
// "orderStatus": "Filled",
|
|
5460
|
+
// "createType": "CreateByUser",
|
|
5416
5461
|
// "takeProfit": "",
|
|
5417
|
-
// "cumExecValue": "
|
|
5462
|
+
// "cumExecValue": "122.5299",
|
|
5463
|
+
// "tpslMode": "",
|
|
5464
|
+
// "smpType": "None",
|
|
5418
5465
|
// "triggerDirection": 0,
|
|
5419
|
-
// "
|
|
5420
|
-
// "
|
|
5421
|
-
//
|
|
5466
|
+
// "blockTradeId": "",
|
|
5467
|
+
// "cumFeeDetail": {
|
|
5468
|
+
// "USDT": "0.06739145"
|
|
5469
|
+
// },
|
|
5470
|
+
// "rejectReason": "EC_NoError",
|
|
5471
|
+
// "isLeverage": "",
|
|
5472
|
+
// "price": "120518",
|
|
5422
5473
|
// "orderIv": "",
|
|
5423
|
-
// "createdTime": "
|
|
5474
|
+
// "createdTime": "1757837618905",
|
|
5424
5475
|
// "tpTriggerBy": "",
|
|
5425
5476
|
// "positionIdx": 0,
|
|
5426
|
-
// "timeInForce": "
|
|
5427
|
-
// "leavesValue": "
|
|
5428
|
-
// "updatedTime": "
|
|
5429
|
-
// "side": "
|
|
5430
|
-
// "
|
|
5431
|
-
// "
|
|
5432
|
-
// "
|
|
5477
|
+
// "timeInForce": "IOC",
|
|
5478
|
+
// "leavesValue": "0",
|
|
5479
|
+
// "updatedTime": "1757837618909",
|
|
5480
|
+
// "side": "Sell",
|
|
5481
|
+
// "smpGroup": 0,
|
|
5482
|
+
// "triggerPrice": "",
|
|
5483
|
+
// "tpLimitPrice": "0",
|
|
5484
|
+
// "cumExecFee": "0.06739145",
|
|
5433
5485
|
// "slTriggerBy": "",
|
|
5486
|
+
// "leavesQty": "0",
|
|
5434
5487
|
// "closeOnTrigger": false,
|
|
5435
|
-
// "
|
|
5436
|
-
// "
|
|
5437
|
-
// "
|
|
5488
|
+
// "slippageToleranceType": "UNKNOWN",
|
|
5489
|
+
// "placeType": "",
|
|
5490
|
+
// "cumExecQty": "0.001",
|
|
5491
|
+
// "reduceOnly": true,
|
|
5492
|
+
// "qty": "0.001",
|
|
5438
5493
|
// "stopLoss": "",
|
|
5439
|
-
// "
|
|
5440
|
-
//
|
|
5494
|
+
// "smpOrderId": "",
|
|
5495
|
+
// "slippageTolerance": "0",
|
|
5496
|
+
// "triggerBy": "",
|
|
5497
|
+
// "extraFees": ""
|
|
5498
|
+
// },
|
|
5441
5499
|
// ]
|
|
5442
5500
|
// },
|
|
5443
5501
|
// "retExtInfo": {},
|
|
5444
|
-
// "time":
|
|
5502
|
+
// "time": 1758187806376
|
|
5445
5503
|
// }
|
|
5446
5504
|
//
|
|
5447
5505
|
const data = this.addPaginationCursorToResult(response);
|
|
@@ -6185,6 +6243,7 @@ class bybit extends bybit$1["default"] {
|
|
|
6185
6243
|
* @param {string} address the address to withdraw to
|
|
6186
6244
|
* @param {string} tag
|
|
6187
6245
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
6246
|
+
* @param {string} [params.accountType] 'UTA', 'FUND', 'FUND,UTA', and 'SPOT (for classic accounts only)
|
|
6188
6247
|
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
|
|
6189
6248
|
*/
|
|
6190
6249
|
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
@@ -6192,9 +6251,9 @@ class bybit extends bybit$1["default"] {
|
|
|
6192
6251
|
let accountType = undefined;
|
|
6193
6252
|
const accounts = await this.isUnifiedEnabled();
|
|
6194
6253
|
const isUta = accounts[1];
|
|
6195
|
-
[accountType, params] = this.handleOptionAndParams(params, 'withdraw', 'accountType'
|
|
6196
|
-
if (
|
|
6197
|
-
accountType = 'UTA';
|
|
6254
|
+
[accountType, params] = this.handleOptionAndParams(params, 'withdraw', 'accountType');
|
|
6255
|
+
if (accountType === undefined) {
|
|
6256
|
+
accountType = isUta ? 'UTA' : 'SPOT';
|
|
6198
6257
|
}
|
|
6199
6258
|
await this.loadMarkets();
|
|
6200
6259
|
this.checkAddress(address);
|