ccxt 4.4.43 → 4.4.44
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 +15 -15
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/binance.js +55 -43
- package/dist/cjs/src/bingx.js +5 -0
- package/dist/cjs/src/bitfinex.js +6 -2
- package/dist/cjs/src/bitget.js +3 -1
- package/dist/cjs/src/bitmart.js +4 -7
- package/dist/cjs/src/bitmex.js +3 -5
- package/dist/cjs/src/bitstamp.js +5 -0
- package/dist/cjs/src/bybit.js +7 -22
- package/dist/cjs/src/coinbase.js +13 -9
- package/dist/cjs/src/coinbaseinternational.js +13 -9
- package/dist/cjs/src/coincatch.js +2 -2
- package/dist/cjs/src/coinex.js +5 -5
- package/dist/cjs/src/cryptocom.js +3 -1
- package/dist/cjs/src/defx.js +2 -2
- package/dist/cjs/src/delta.js +1 -1
- package/dist/cjs/src/gate.js +7 -2
- package/dist/cjs/src/gemini.js +5 -0
- package/dist/cjs/src/hashkey.js +9 -9
- package/dist/cjs/src/htx.js +105 -2
- package/dist/cjs/src/hyperliquid.js +5 -0
- package/dist/cjs/src/kraken.js +9 -2
- package/dist/cjs/src/krakenfutures.js +5 -0
- package/dist/cjs/src/kucoin.js +9 -7
- package/dist/cjs/src/kucoinfutures.js +5 -5
- package/dist/cjs/src/mexc.js +16 -10
- package/dist/cjs/src/ndax.js +1 -1
- package/dist/cjs/src/oceanex.js +1 -1
- package/dist/cjs/src/okx.js +4 -5
- package/dist/cjs/src/pro/bitcoincom.js +4 -1
- package/dist/cjs/src/pro/bitopro.js +1 -1
- package/dist/cjs/src/whitebit.js +4 -2
- package/dist/cjs/src/woo.js +5 -3
- package/dist/cjs/src/woofipro.js +5 -2
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/binance.d.ts +1 -0
- package/js/src/abstract/binancecoinm.d.ts +1 -0
- package/js/src/abstract/binanceus.d.ts +1 -0
- package/js/src/abstract/binanceusdm.d.ts +1 -0
- package/js/src/binance.d.ts +33 -32
- package/js/src/binance.js +55 -43
- package/js/src/bingx.js +5 -0
- package/js/src/bitfinex.js +6 -2
- package/js/src/bitget.js +3 -1
- package/js/src/bitmart.js +4 -7
- package/js/src/bitmex.js +3 -5
- package/js/src/bitstamp.js +5 -0
- package/js/src/bybit.js +7 -22
- package/js/src/coinbase.js +13 -9
- package/js/src/coinbaseinternational.js +13 -9
- package/js/src/coincatch.js +2 -2
- package/js/src/coinex.js +5 -5
- package/js/src/cryptocom.js +3 -1
- package/js/src/defx.js +2 -2
- package/js/src/delta.js +1 -1
- package/js/src/gate.js +7 -2
- package/js/src/gemini.js +5 -0
- package/js/src/hashkey.js +9 -9
- package/js/src/htx.d.ts +13 -1
- package/js/src/htx.js +105 -2
- package/js/src/hyperliquid.js +5 -0
- package/js/src/kraken.js +9 -2
- package/js/src/krakenfutures.js +5 -0
- package/js/src/kucoin.js +9 -7
- package/js/src/kucoinfutures.js +5 -5
- package/js/src/mexc.js +16 -10
- package/js/src/ndax.js +1 -1
- package/js/src/oceanex.js +1 -1
- package/js/src/okx.js +4 -5
- package/js/src/pro/bitcoincom.js +4 -1
- package/js/src/pro/bitopro.js +1 -1
- package/js/src/whitebit.js +4 -2
- package/js/src/woo.js +5 -3
- package/js/src/woofipro.js +5 -2
- package/package.json +1 -1
|
@@ -840,8 +840,8 @@ class coincatch extends coincatch$1 {
|
|
|
840
840
|
settleId = this.safeString(supportMarginCoins, 0);
|
|
841
841
|
settle = this.safeCurrencyCode(settleId);
|
|
842
842
|
suffix = ':' + settle;
|
|
843
|
-
isLinear =
|
|
844
|
-
isInverse =
|
|
843
|
+
isLinear = quoteId === settleId; // todo check
|
|
844
|
+
isInverse = baseId === settleId; // todo check
|
|
845
845
|
if (isLinear) {
|
|
846
846
|
subType = 'linear';
|
|
847
847
|
}
|
package/dist/cjs/src/coinex.js
CHANGED
|
@@ -519,11 +519,11 @@ class coinex extends coinex$1 {
|
|
|
519
519
|
},
|
|
520
520
|
'hedged': false,
|
|
521
521
|
'trailing': false,
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
522
|
+
'leverage': false,
|
|
523
|
+
'marketBuyByCost': true,
|
|
524
|
+
'marketBuyRequiresPrice': true,
|
|
525
|
+
'selfTradePrevention': true,
|
|
526
|
+
'iceberg': true, // todo implement
|
|
527
527
|
},
|
|
528
528
|
'createOrders': {
|
|
529
529
|
'max': 5,
|
|
@@ -371,10 +371,12 @@ class cryptocom extends cryptocom$1 {
|
|
|
371
371
|
'GTD': false,
|
|
372
372
|
},
|
|
373
373
|
'hedged': false,
|
|
374
|
-
// exchange-supported features
|
|
375
374
|
'selfTradePrevention': true,
|
|
376
375
|
'trailing': false,
|
|
377
376
|
'iceberg': false,
|
|
377
|
+
'leverage': false,
|
|
378
|
+
'marketBuyByCost': true,
|
|
379
|
+
'marketBuyRequiresPrice': true,
|
|
378
380
|
},
|
|
379
381
|
'createOrders': {
|
|
380
382
|
'max': 10,
|
package/dist/cjs/src/defx.js
CHANGED
|
@@ -934,10 +934,10 @@ class defx extends defx$1 {
|
|
|
934
934
|
const id = this.safeString(trade, 'id');
|
|
935
935
|
const oid = this.safeString(trade, 'orderId');
|
|
936
936
|
const takerOrMaker = this.safeStringLower(trade, 'role');
|
|
937
|
-
const buyerMaker = this.
|
|
937
|
+
const buyerMaker = this.safeBool(trade, 'buyerMaker');
|
|
938
938
|
let side = this.safeStringLower(trade, 'side');
|
|
939
939
|
if (buyerMaker !== undefined) {
|
|
940
|
-
if (buyerMaker
|
|
940
|
+
if (buyerMaker) {
|
|
941
941
|
side = 'sell';
|
|
942
942
|
}
|
|
943
943
|
else {
|
package/dist/cjs/src/delta.js
CHANGED
|
@@ -739,7 +739,7 @@ class delta extends delta$1 {
|
|
|
739
739
|
// other markets (swap, futures, move, spread, irs) seem to use the step of '1' contract
|
|
740
740
|
amountPrecision = this.parseNumber('1');
|
|
741
741
|
}
|
|
742
|
-
const linear = (settle ===
|
|
742
|
+
const linear = (settle === quote);
|
|
743
743
|
let optionType = undefined;
|
|
744
744
|
let symbol = base + '/' + quote;
|
|
745
745
|
if (swap || future || option) {
|
package/dist/cjs/src/gate.js
CHANGED
|
@@ -705,7 +705,7 @@ class gate extends gate$1 {
|
|
|
705
705
|
},
|
|
706
706
|
},
|
|
707
707
|
'features': {
|
|
708
|
-
'
|
|
708
|
+
'default': {
|
|
709
709
|
'sandbox': true,
|
|
710
710
|
'createOrder': {
|
|
711
711
|
'marginMode': true,
|
|
@@ -724,9 +724,11 @@ class gate extends gate$1 {
|
|
|
724
724
|
},
|
|
725
725
|
'hedged': false,
|
|
726
726
|
'trailing': false,
|
|
727
|
-
// exchange-specific features
|
|
728
727
|
'iceberg': true,
|
|
729
728
|
'selfTradePrevention': true,
|
|
729
|
+
'leverage': false,
|
|
730
|
+
'marketBuyByCost': true,
|
|
731
|
+
'marketBuyRequiresPrice': true,
|
|
730
732
|
},
|
|
731
733
|
'createOrders': {
|
|
732
734
|
'max': 40, // NOTE! max 10 per symbol
|
|
@@ -762,6 +764,9 @@ class gate extends gate$1 {
|
|
|
762
764
|
'limit': 1000,
|
|
763
765
|
},
|
|
764
766
|
},
|
|
767
|
+
'spot': {
|
|
768
|
+
'extends': 'default',
|
|
769
|
+
},
|
|
765
770
|
'forDerivatives': {
|
|
766
771
|
'extends': 'spot',
|
|
767
772
|
'createOrder': {
|
package/dist/cjs/src/gemini.js
CHANGED
|
@@ -315,6 +315,11 @@ class gemini extends gemini$1 {
|
|
|
315
315
|
},
|
|
316
316
|
'hedged': false,
|
|
317
317
|
'trailing': false,
|
|
318
|
+
'leverage': false,
|
|
319
|
+
'marketBuyByCost': true,
|
|
320
|
+
'marketBuyRequiresPrice': false,
|
|
321
|
+
'selfTradePrevention': false,
|
|
322
|
+
'iceberg': false,
|
|
318
323
|
},
|
|
319
324
|
'createOrders': undefined,
|
|
320
325
|
'fetchMyTrades': {
|
package/dist/cjs/src/hashkey.js
CHANGED
|
@@ -355,13 +355,11 @@ class hashkey extends hashkey$1 {
|
|
|
355
355
|
},
|
|
356
356
|
'hedged': false,
|
|
357
357
|
'trailing': false,
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
// 'iceberg': false,
|
|
364
|
-
// 'oco': false,
|
|
358
|
+
'leverage': false,
|
|
359
|
+
'marketBuyByCost': true,
|
|
360
|
+
'marketBuyRequiresPrice': true,
|
|
361
|
+
'selfTradePrevention': true,
|
|
362
|
+
'iceberg': false,
|
|
365
363
|
},
|
|
366
364
|
'createOrders': {
|
|
367
365
|
'max': 20,
|
|
@@ -2437,8 +2435,10 @@ class hashkey extends hashkey$1 {
|
|
|
2437
2435
|
if (!market['spot']) {
|
|
2438
2436
|
throw new errors.NotSupported(this.id + ' createMarketBuyOrderWithCost() is supported for spot markets only');
|
|
2439
2437
|
}
|
|
2440
|
-
|
|
2441
|
-
|
|
2438
|
+
const req = {
|
|
2439
|
+
'cost': cost,
|
|
2440
|
+
};
|
|
2441
|
+
return await this.createOrder(symbol, 'market', 'buy', cost, undefined, this.extend(req, params));
|
|
2442
2442
|
}
|
|
2443
2443
|
/**
|
|
2444
2444
|
* @method
|
package/dist/cjs/src/htx.js
CHANGED
|
@@ -96,6 +96,7 @@ class htx extends htx$1 {
|
|
|
96
96
|
'fetchOHLCV': true,
|
|
97
97
|
'fetchOpenInterest': true,
|
|
98
98
|
'fetchOpenInterestHistory': true,
|
|
99
|
+
'fetchOpenInterests': true,
|
|
99
100
|
'fetchOpenOrder': undefined,
|
|
100
101
|
'fetchOpenOrders': true,
|
|
101
102
|
'fetchOrder': true,
|
|
@@ -1251,9 +1252,11 @@ class htx extends htx$1 {
|
|
|
1251
1252
|
},
|
|
1252
1253
|
'hedged': false,
|
|
1253
1254
|
'trailing': false,
|
|
1254
|
-
// exchange-specific features
|
|
1255
1255
|
'iceberg': false,
|
|
1256
1256
|
'selfTradePrevention': true,
|
|
1257
|
+
'leverage': true,
|
|
1258
|
+
'marketBuyByCost': true,
|
|
1259
|
+
'marketBuyRequiresPrice': true,
|
|
1257
1260
|
},
|
|
1258
1261
|
'createOrders': {
|
|
1259
1262
|
'max': 10,
|
|
@@ -8640,6 +8643,105 @@ class htx extends htx$1 {
|
|
|
8640
8643
|
const tick = this.safeList(data, 'tick');
|
|
8641
8644
|
return this.parseOpenInterestsHistory(tick, market, since, limit);
|
|
8642
8645
|
}
|
|
8646
|
+
/**
|
|
8647
|
+
* @method
|
|
8648
|
+
* @name htx#fetchOpenInterests
|
|
8649
|
+
* @description Retrieves the open interest for a list of symbols
|
|
8650
|
+
* @see https://huobiapi.github.io/docs/dm/v1/en/#get-contract-open-interest-information
|
|
8651
|
+
* @see https://huobiapi.github.io/docs/coin_margined_swap/v1/en/#get-swap-open-interest-information
|
|
8652
|
+
* @see https://huobiapi.github.io/docs/usdt_swap/v1/en/#general-get-swap-open-interest-information
|
|
8653
|
+
* @param {string[]} [symbols] a list of unified CCXT market symbols
|
|
8654
|
+
* @param {object} [params] exchange specific parameters
|
|
8655
|
+
* @returns {object[]} a list of [open interest structures]{@link https://docs.ccxt.com/#/?id=open-interest-structure}
|
|
8656
|
+
*/
|
|
8657
|
+
async fetchOpenInterests(symbols = undefined, params = {}) {
|
|
8658
|
+
await this.loadMarkets();
|
|
8659
|
+
symbols = this.marketSymbols(symbols);
|
|
8660
|
+
let market = undefined;
|
|
8661
|
+
if (symbols !== undefined) {
|
|
8662
|
+
const symbolsLength = symbols.length;
|
|
8663
|
+
if (symbolsLength > 0) {
|
|
8664
|
+
const first = this.safeString(symbols, 0);
|
|
8665
|
+
market = this.market(first);
|
|
8666
|
+
}
|
|
8667
|
+
}
|
|
8668
|
+
const request = {};
|
|
8669
|
+
let subType = undefined;
|
|
8670
|
+
[subType, params] = this.handleSubTypeAndParams('fetchPositions', market, params, 'linear');
|
|
8671
|
+
let marketType = undefined;
|
|
8672
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchPositions', market, params);
|
|
8673
|
+
let response = undefined;
|
|
8674
|
+
if (marketType === 'future') {
|
|
8675
|
+
response = await this.contractPublicGetApiV1ContractOpenInterest(this.extend(request, params));
|
|
8676
|
+
//
|
|
8677
|
+
// {
|
|
8678
|
+
// "status": "ok",
|
|
8679
|
+
// "data": [
|
|
8680
|
+
// {
|
|
8681
|
+
// "volume": 118850.000000000000000000,
|
|
8682
|
+
// "amount": 635.502025211544374189,
|
|
8683
|
+
// "symbol": "BTC",
|
|
8684
|
+
// "contract_type": "this_week",
|
|
8685
|
+
// "contract_code": "BTC220930",
|
|
8686
|
+
// "trade_amount": 1470.9400749347598691119206024033947897351,
|
|
8687
|
+
// "trade_volume": 286286,
|
|
8688
|
+
// "trade_turnover": 28628600.000000000000000000
|
|
8689
|
+
// }
|
|
8690
|
+
// ],
|
|
8691
|
+
// "ts": 1664337928805
|
|
8692
|
+
// }
|
|
8693
|
+
//
|
|
8694
|
+
}
|
|
8695
|
+
else if (subType === 'inverse') {
|
|
8696
|
+
response = await this.contractPublicGetSwapApiV1SwapOpenInterest(this.extend(request, params));
|
|
8697
|
+
//
|
|
8698
|
+
// {
|
|
8699
|
+
// "status": "ok",
|
|
8700
|
+
// "data": [
|
|
8701
|
+
// {
|
|
8702
|
+
// "volume": 518018.000000000000000000,
|
|
8703
|
+
// "amount": 2769.675777407074725180,
|
|
8704
|
+
// "symbol": "BTC",
|
|
8705
|
+
// "contract_code": "BTC-USD",
|
|
8706
|
+
// "trade_amount": 9544.4032080046491323463688602729806842458,
|
|
8707
|
+
// "trade_volume": 1848448,
|
|
8708
|
+
// "trade_turnover": 184844800.000000000000000000
|
|
8709
|
+
// }
|
|
8710
|
+
// ],
|
|
8711
|
+
// "ts": 1664337226028
|
|
8712
|
+
// }
|
|
8713
|
+
//
|
|
8714
|
+
}
|
|
8715
|
+
else {
|
|
8716
|
+
request['contract_type'] = 'swap';
|
|
8717
|
+
response = await this.contractPublicGetLinearSwapApiV1SwapOpenInterest(this.extend(request, params));
|
|
8718
|
+
//
|
|
8719
|
+
// {
|
|
8720
|
+
// "status": "ok",
|
|
8721
|
+
// "data": [
|
|
8722
|
+
// {
|
|
8723
|
+
// "volume": 7192610.000000000000000000,
|
|
8724
|
+
// "amount": 7192.610000000000000000,
|
|
8725
|
+
// "symbol": "BTC",
|
|
8726
|
+
// "value": 134654290.332000000000000000,
|
|
8727
|
+
// "contract_code": "BTC-USDT",
|
|
8728
|
+
// "trade_amount": 70692.804,
|
|
8729
|
+
// "trade_volume": 70692804,
|
|
8730
|
+
// "trade_turnover": 1379302592.9518,
|
|
8731
|
+
// "business_type": "swap",
|
|
8732
|
+
// "pair": "BTC-USDT",
|
|
8733
|
+
// "contract_type": "swap",
|
|
8734
|
+
// "trade_partition": "USDT"
|
|
8735
|
+
// }
|
|
8736
|
+
// ],
|
|
8737
|
+
// "ts": 1664336503144
|
|
8738
|
+
// }
|
|
8739
|
+
//
|
|
8740
|
+
}
|
|
8741
|
+
const data = this.safeList(response, 'data', []);
|
|
8742
|
+
const result = this.parseOpenInterests(data);
|
|
8743
|
+
return this.filterByArray(result, 'symbol', symbols);
|
|
8744
|
+
}
|
|
8643
8745
|
/**
|
|
8644
8746
|
* @method
|
|
8645
8747
|
* @name htx#fetchOpenInterest
|
|
@@ -8803,8 +8905,9 @@ class htx extends htx$1 {
|
|
|
8803
8905
|
const timestamp = this.safeInteger(interest, 'ts');
|
|
8804
8906
|
const amount = this.safeNumber(interest, 'volume');
|
|
8805
8907
|
const value = this.safeNumber(interest, 'value');
|
|
8908
|
+
const marketId = this.safeString(interest, 'contract_code');
|
|
8806
8909
|
return this.safeOpenInterest({
|
|
8807
|
-
'symbol': this.
|
|
8910
|
+
'symbol': this.safeSymbol(marketId, market),
|
|
8808
8911
|
'baseVolume': amount,
|
|
8809
8912
|
'quoteVolume': value,
|
|
8810
8913
|
'openInterestAmount': amount,
|
|
@@ -235,6 +235,11 @@ class hyperliquid extends hyperliquid$1 {
|
|
|
235
235
|
},
|
|
236
236
|
'hedged': false,
|
|
237
237
|
'trailing': false,
|
|
238
|
+
'leverage': false,
|
|
239
|
+
'marketBuyByCost': false,
|
|
240
|
+
'marketBuyRequiresPrice': false,
|
|
241
|
+
'selfTradePrevention': false,
|
|
242
|
+
'iceberg': false,
|
|
238
243
|
},
|
|
239
244
|
'createOrders': {
|
|
240
245
|
'max': 1000,
|
package/dist/cjs/src/kraken.js
CHANGED
|
@@ -446,6 +446,11 @@ class kraken extends kraken$1 {
|
|
|
446
446
|
},
|
|
447
447
|
'hedged': false,
|
|
448
448
|
'trailing': true,
|
|
449
|
+
'leverage': false,
|
|
450
|
+
'marketBuyByCost': true,
|
|
451
|
+
'marketBuyRequiresPrice': false,
|
|
452
|
+
'selfTradePrevention': true,
|
|
453
|
+
'iceberg': true, // todo implement
|
|
449
454
|
},
|
|
450
455
|
'createOrders': undefined,
|
|
451
456
|
'fetchMyTrades': {
|
|
@@ -1508,8 +1513,10 @@ class kraken extends kraken$1 {
|
|
|
1508
1513
|
async createMarketOrderWithCost(symbol, side, cost, params = {}) {
|
|
1509
1514
|
await this.loadMarkets();
|
|
1510
1515
|
// only buy orders are supported by the endpoint
|
|
1511
|
-
|
|
1512
|
-
|
|
1516
|
+
const req = {
|
|
1517
|
+
'cost': cost,
|
|
1518
|
+
};
|
|
1519
|
+
return await this.createOrder(symbol, 'market', side, 1, undefined, this.extend(req, params));
|
|
1513
1520
|
}
|
|
1514
1521
|
/**
|
|
1515
1522
|
* @method
|
|
@@ -284,6 +284,11 @@ class krakenfutures extends krakenfutures$1 {
|
|
|
284
284
|
},
|
|
285
285
|
'hedged': false,
|
|
286
286
|
'trailing': false,
|
|
287
|
+
'leverage': false,
|
|
288
|
+
'marketBuyByCost': false,
|
|
289
|
+
'marketBuyRequiresPrice': false,
|
|
290
|
+
'selfTradePrevention': false,
|
|
291
|
+
'iceberg': false,
|
|
287
292
|
},
|
|
288
293
|
'createOrders': {
|
|
289
294
|
'max': 100,
|
package/dist/cjs/src/kucoin.js
CHANGED
|
@@ -1006,11 +1006,11 @@ class kucoin extends kucoin$1 {
|
|
|
1006
1006
|
},
|
|
1007
1007
|
'hedged': false,
|
|
1008
1008
|
'trailing': false,
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1009
|
+
'leverage': false,
|
|
1010
|
+
'marketBuyByCost': true,
|
|
1011
|
+
'marketBuyRequiresPrice': false,
|
|
1012
|
+
'selfTradePrevention': true,
|
|
1013
|
+
'iceberg': true, // todo implement
|
|
1014
1014
|
},
|
|
1015
1015
|
'createOrders': {
|
|
1016
1016
|
'max': 5,
|
|
@@ -2315,8 +2315,10 @@ class kucoin extends kucoin$1 {
|
|
|
2315
2315
|
*/
|
|
2316
2316
|
async createMarketOrderWithCost(symbol, side, cost, params = {}) {
|
|
2317
2317
|
await this.loadMarkets();
|
|
2318
|
-
|
|
2319
|
-
|
|
2318
|
+
const req = {
|
|
2319
|
+
'cost': cost,
|
|
2320
|
+
};
|
|
2321
|
+
return await this.createOrder(symbol, 'market', side, 0, undefined, this.extend(req, params));
|
|
2320
2322
|
}
|
|
2321
2323
|
/**
|
|
2322
2324
|
* @method
|
|
@@ -385,11 +385,11 @@ class kucoinfutures extends kucoinfutures$1 {
|
|
|
385
385
|
},
|
|
386
386
|
'hedged': false,
|
|
387
387
|
'trailing': false,
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
388
|
+
'leverage': true,
|
|
389
|
+
'marketBuyByCost': true,
|
|
390
|
+
'marketBuyRequiresPrice': false,
|
|
391
|
+
'selfTradePrevention': true,
|
|
392
|
+
'iceberg': true,
|
|
393
393
|
},
|
|
394
394
|
'createOrders': {
|
|
395
395
|
'max': 20,
|
package/dist/cjs/src/mexc.js
CHANGED
|
@@ -695,10 +695,12 @@ class mexc extends mexc$1 {
|
|
|
695
695
|
'PO': true,
|
|
696
696
|
'GTD': false,
|
|
697
697
|
},
|
|
698
|
-
'hedged':
|
|
699
|
-
// exchange-supported features
|
|
700
|
-
'selfTradePrevention': false,
|
|
698
|
+
'hedged': true,
|
|
701
699
|
'trailing': false,
|
|
700
|
+
'leverage': true,
|
|
701
|
+
'marketBuyByCost': true,
|
|
702
|
+
'marketBuyRequiresPrice': false,
|
|
703
|
+
'selfTradePrevention': false,
|
|
702
704
|
'iceberg': false,
|
|
703
705
|
},
|
|
704
706
|
'createOrders': {
|
|
@@ -758,10 +760,10 @@ class mexc extends mexc$1 {
|
|
|
758
760
|
'stopLossPrice': false,
|
|
759
761
|
'takeProfitPrice': false,
|
|
760
762
|
'hedged': true,
|
|
763
|
+
'leverage': true,
|
|
764
|
+
'marketBuyByCost': false,
|
|
761
765
|
},
|
|
762
|
-
'createOrders':
|
|
763
|
-
'max': 50,
|
|
764
|
-
},
|
|
766
|
+
'createOrders': undefined,
|
|
765
767
|
'fetchMyTrades': {
|
|
766
768
|
'marginMode': false,
|
|
767
769
|
'limit': 100,
|
|
@@ -2248,8 +2250,10 @@ class mexc extends mexc$1 {
|
|
|
2248
2250
|
if (!market['spot']) {
|
|
2249
2251
|
throw new errors.NotSupported(this.id + ' createMarketBuyOrderWithCost() supports spot orders only');
|
|
2250
2252
|
}
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
+
const req = {
|
|
2254
|
+
'cost': cost,
|
|
2255
|
+
};
|
|
2256
|
+
return await this.createOrder(symbol, 'market', 'buy', 0, undefined, this.extend(req, params));
|
|
2253
2257
|
}
|
|
2254
2258
|
/**
|
|
2255
2259
|
* @method
|
|
@@ -2267,8 +2271,10 @@ class mexc extends mexc$1 {
|
|
|
2267
2271
|
if (!market['spot']) {
|
|
2268
2272
|
throw new errors.NotSupported(this.id + ' createMarketBuyOrderWithCost() supports spot orders only');
|
|
2269
2273
|
}
|
|
2270
|
-
|
|
2271
|
-
|
|
2274
|
+
const req = {
|
|
2275
|
+
'cost': cost,
|
|
2276
|
+
};
|
|
2277
|
+
return await this.createOrder(symbol, 'market', 'sell', 0, undefined, this.extend(req, params));
|
|
2272
2278
|
}
|
|
2273
2279
|
/**
|
|
2274
2280
|
* @method
|
package/dist/cjs/src/ndax.js
CHANGED
package/dist/cjs/src/oceanex.js
CHANGED
package/dist/cjs/src/okx.js
CHANGED
|
@@ -1180,7 +1180,6 @@ class okx extends okx$1 {
|
|
|
1180
1180
|
'brokerId': 'e847386590ce4dBC',
|
|
1181
1181
|
},
|
|
1182
1182
|
'features': {
|
|
1183
|
-
// https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-place-order
|
|
1184
1183
|
'default': {
|
|
1185
1184
|
'sandbox': true,
|
|
1186
1185
|
'createOrder': {
|
|
@@ -1209,12 +1208,12 @@ class okx extends okx$1 {
|
|
|
1209
1208
|
'GTD': false,
|
|
1210
1209
|
},
|
|
1211
1210
|
'hedged': true,
|
|
1212
|
-
// even though the below params not unified yet, it's useful metadata for users to know that exchange supports them
|
|
1213
|
-
'selfTradePrevention': true,
|
|
1214
1211
|
'trailing': true,
|
|
1215
|
-
'twap': true,
|
|
1216
1212
|
'iceberg': true,
|
|
1217
|
-
'
|
|
1213
|
+
'leverage': false,
|
|
1214
|
+
'selfTradePrevention': true,
|
|
1215
|
+
'marketBuyByCost': true,
|
|
1216
|
+
'marketBuyRequiresPrice': false,
|
|
1218
1217
|
},
|
|
1219
1218
|
'createOrders': {
|
|
1220
1219
|
'max': 20,
|
|
@@ -17,7 +17,10 @@ class bitcoincom extends hitbtc {
|
|
|
17
17
|
'urls': {
|
|
18
18
|
'logo': 'https://user-images.githubusercontent.com/1294454/97296144-514fa300-1861-11eb-952b-3d55d492200b.jpg',
|
|
19
19
|
'api': {
|
|
20
|
-
'ws':
|
|
20
|
+
'ws': {
|
|
21
|
+
'public': 'wss://api.fmfw.io/api/3/ws/public',
|
|
22
|
+
'private': 'wss://api.fmfw.io/api/3/ws/trading',
|
|
23
|
+
},
|
|
21
24
|
},
|
|
22
25
|
},
|
|
23
26
|
'fees': {
|
|
@@ -74,7 +74,7 @@ class bitopro extends bitopro$1 {
|
|
|
74
74
|
endPart = market['id'];
|
|
75
75
|
}
|
|
76
76
|
else {
|
|
77
|
-
endPart = market['id'] + ':' + limit;
|
|
77
|
+
endPart = market['id'] + ':' + this.numberToString(limit);
|
|
78
78
|
}
|
|
79
79
|
const orderbook = await this.watchPublic('order-books', messageHash, endPart);
|
|
80
80
|
return orderbook.limit();
|
package/dist/cjs/src/whitebit.js
CHANGED
|
@@ -1228,9 +1228,11 @@ class whitebit extends whitebit$1 {
|
|
|
1228
1228
|
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1229
1229
|
*/
|
|
1230
1230
|
async createMarketOrderWithCost(symbol, side, cost, params = {}) {
|
|
1231
|
-
|
|
1231
|
+
const req = {
|
|
1232
|
+
'cost': cost,
|
|
1233
|
+
};
|
|
1232
1234
|
// only buy side is supported
|
|
1233
|
-
return await this.createOrder(symbol, 'market', side, 0, undefined, params);
|
|
1235
|
+
return await this.createOrder(symbol, 'market', side, 0, undefined, this.extend(req, params));
|
|
1234
1236
|
}
|
|
1235
1237
|
/**
|
|
1236
1238
|
* @method
|
package/dist/cjs/src/woo.js
CHANGED
|
@@ -333,9 +333,11 @@ class woo extends woo$1 {
|
|
|
333
333
|
},
|
|
334
334
|
'hedged': false,
|
|
335
335
|
'trailing': true,
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
336
|
+
'leverage': false,
|
|
337
|
+
'marketBuyByCost': true,
|
|
338
|
+
'marketBuyRequiresPrice': false,
|
|
339
|
+
'selfTradePrevention': false,
|
|
340
|
+
'iceberg': true, // todo implement
|
|
339
341
|
},
|
|
340
342
|
'createOrders': undefined,
|
|
341
343
|
'fetchMyTrades': {
|
package/dist/cjs/src/woofipro.js
CHANGED
|
@@ -320,8 +320,11 @@ class woofipro extends woofipro$1 {
|
|
|
320
320
|
},
|
|
321
321
|
'hedged': false,
|
|
322
322
|
'trailing': true,
|
|
323
|
-
|
|
324
|
-
|
|
323
|
+
'leverage': true,
|
|
324
|
+
'marketBuyByCost': false,
|
|
325
|
+
'marketBuyRequiresPrice': false,
|
|
326
|
+
'selfTradePrevention': false,
|
|
327
|
+
'iceberg': true, // todo implement
|
|
325
328
|
},
|
|
326
329
|
'createOrders': {
|
|
327
330
|
'max': 10,
|
package/js/ccxt.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ 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, MarketMarginModes, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, LongShortRatio, OpenInterests } from './src/base/types.js';
|
|
6
6
|
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, 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, UnsubscribeError } from './src/base/errors.js';
|
|
7
|
-
declare const version = "4.4.
|
|
7
|
+
declare const version = "4.4.43";
|
|
8
8
|
import ace from './src/ace.js';
|
|
9
9
|
import alpaca from './src/alpaca.js';
|
|
10
10
|
import ascendex from './src/ascendex.js';
|
package/js/ccxt.js
CHANGED
|
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
|
|
|
38
38
|
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, 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, UnsubscribeError } from './src/base/errors.js';
|
|
39
39
|
//-----------------------------------------------------------------------------
|
|
40
40
|
// this is updated by vss.js when building
|
|
41
|
-
const version = '4.4.
|
|
41
|
+
const version = '4.4.44';
|
|
42
42
|
Exchange.ccxtVersion = version;
|
|
43
43
|
//-----------------------------------------------------------------------------
|
|
44
44
|
import ace from './src/ace.js';
|
|
@@ -761,6 +761,7 @@ interface Exchange {
|
|
|
761
761
|
papiDeleteMarginAllOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
762
762
|
papiDeleteMarginOrderList(params?: {}): Promise<implicitReturnType>;
|
|
763
763
|
papiDeleteListenKey(params?: {}): Promise<implicitReturnType>;
|
|
764
|
+
papiV2GetUmAccount(params?: {}): Promise<implicitReturnType>;
|
|
764
765
|
}
|
|
765
766
|
declare abstract class Exchange extends _Exchange {
|
|
766
767
|
}
|
|
@@ -761,6 +761,7 @@ interface binance {
|
|
|
761
761
|
papiDeleteMarginAllOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
762
762
|
papiDeleteMarginOrderList(params?: {}): Promise<implicitReturnType>;
|
|
763
763
|
papiDeleteListenKey(params?: {}): Promise<implicitReturnType>;
|
|
764
|
+
papiV2GetUmAccount(params?: {}): Promise<implicitReturnType>;
|
|
764
765
|
}
|
|
765
766
|
declare abstract class binance extends _binance {
|
|
766
767
|
}
|
|
@@ -813,6 +813,7 @@ interface binance {
|
|
|
813
813
|
papiDeleteMarginAllOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
814
814
|
papiDeleteMarginOrderList(params?: {}): Promise<implicitReturnType>;
|
|
815
815
|
papiDeleteListenKey(params?: {}): Promise<implicitReturnType>;
|
|
816
|
+
papiV2GetUmAccount(params?: {}): Promise<implicitReturnType>;
|
|
816
817
|
}
|
|
817
818
|
declare abstract class binance extends _binance {
|
|
818
819
|
}
|
|
@@ -761,6 +761,7 @@ interface binance {
|
|
|
761
761
|
papiDeleteMarginAllOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
762
762
|
papiDeleteMarginOrderList(params?: {}): Promise<implicitReturnType>;
|
|
763
763
|
papiDeleteListenKey(params?: {}): Promise<implicitReturnType>;
|
|
764
|
+
papiV2GetUmAccount(params?: {}): Promise<implicitReturnType>;
|
|
764
765
|
}
|
|
765
766
|
declare abstract class binance extends _binance {
|
|
766
767
|
}
|