ccxt 4.4.73 → 4.4.75

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.
Files changed (89) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +1 -11
  4. package/dist/cjs/src/ace.js +9 -6
  5. package/dist/cjs/src/alpaca.js +3 -0
  6. package/dist/cjs/src/ascendex.js +6 -0
  7. package/dist/cjs/src/base/Exchange.js +36 -14
  8. package/dist/cjs/src/bequant.js +1 -0
  9. package/dist/cjs/src/binanceusdm.js +1 -1
  10. package/dist/cjs/src/bit2c.js +30 -4
  11. package/dist/cjs/src/bitbank.js +32 -0
  12. package/dist/cjs/src/bitbns.js +1 -1
  13. package/dist/cjs/src/bitflyer.js +1 -0
  14. package/dist/cjs/src/bithumb.js +34 -0
  15. package/dist/cjs/src/bitmart.js +74 -7
  16. package/dist/cjs/src/bitopro.js +37 -0
  17. package/dist/cjs/src/blofin.js +1 -1
  18. package/dist/cjs/src/bybit.js +14 -1
  19. package/dist/cjs/src/coinlist.js +87 -11
  20. package/dist/cjs/src/deribit.js +29 -1
  21. package/dist/cjs/src/gate.js +12 -7
  22. package/dist/cjs/src/hitbtc.js +7 -1
  23. package/dist/cjs/src/okx.js +29 -25
  24. package/dist/cjs/src/pro/ascendex.js +1 -1
  25. package/dist/cjs/src/pro/bingx.js +10 -1
  26. package/dist/cjs/src/pro/bitget.js +10 -1
  27. package/dist/cjs/src/pro/bitmart.js +10 -1
  28. package/dist/cjs/src/pro/bitopro.js +5 -4
  29. package/dist/cjs/src/pro/onetrading.js +7 -7
  30. package/js/ccxt.d.ts +2 -14
  31. package/js/ccxt.js +2 -10
  32. package/js/src/abstract/bitmart.d.ts +2 -0
  33. package/js/src/abstract/coinlist.d.ts +3 -0
  34. package/js/src/ace.js +9 -6
  35. package/js/src/alpaca.js +3 -0
  36. package/js/src/ascendex.js +6 -0
  37. package/js/src/base/Exchange.d.ts +1 -0
  38. package/js/src/base/Exchange.js +36 -14
  39. package/js/src/bequant.js +1 -0
  40. package/js/src/binanceusdm.js +1 -1
  41. package/js/src/bit2c.js +30 -4
  42. package/js/src/bitbank.js +32 -0
  43. package/js/src/bitbns.js +1 -1
  44. package/js/src/bitflyer.js +1 -0
  45. package/js/src/bithumb.js +34 -0
  46. package/js/src/bitmart.d.ts +24 -0
  47. package/js/src/bitmart.js +74 -7
  48. package/js/src/bitopro.js +37 -0
  49. package/js/src/blofin.js +1 -1
  50. package/js/src/bybit.js +14 -1
  51. package/js/src/coinlist.js +87 -11
  52. package/js/src/deribit.js +29 -1
  53. package/js/src/gate.js +12 -7
  54. package/js/src/hitbtc.js +7 -1
  55. package/js/src/okx.js +29 -25
  56. package/js/src/pro/ascendex.js +1 -1
  57. package/js/src/pro/bingx.js +10 -1
  58. package/js/src/pro/bitget.js +10 -1
  59. package/js/src/pro/bitmart.js +10 -1
  60. package/js/src/pro/bitopro.js +5 -4
  61. package/js/src/pro/onetrading.d.ts +7 -7
  62. package/js/src/pro/onetrading.js +7 -7
  63. package/package.json +1 -1
  64. package/js/src/abstract/bitcoincom.d.ts +0 -118
  65. package/js/src/abstract/bitcoincom.js +0 -11
  66. package/js/src/abstract/bitfinex1.d.ts +0 -72
  67. package/js/src/abstract/bitfinex1.js +0 -11
  68. package/js/src/abstract/bitpanda.d.ts +0 -26
  69. package/js/src/abstract/bitpanda.js +0 -11
  70. package/js/src/abstract/poloniexfutures.d.ts +0 -51
  71. package/js/src/abstract/poloniexfutures.js +0 -11
  72. package/js/src/abstract/wazirx.d.ts +0 -33
  73. package/js/src/abstract/wazirx.js +0 -11
  74. package/js/src/bitcoincom.d.ts +0 -4
  75. package/js/src/bitcoincom.js +0 -18
  76. package/js/src/bitpanda.d.ts +0 -4
  77. package/js/src/bitpanda.js +0 -17
  78. package/js/src/poloniexfutures.d.ts +0 -321
  79. package/js/src/poloniexfutures.js +0 -1941
  80. package/js/src/pro/bitcoincom.d.ts +0 -4
  81. package/js/src/pro/bitcoincom.js +0 -34
  82. package/js/src/pro/bitpanda.d.ts +0 -4
  83. package/js/src/pro/bitpanda.js +0 -17
  84. package/js/src/pro/poloniexfutures.d.ts +0 -108
  85. package/js/src/pro/poloniexfutures.js +0 -1042
  86. package/js/src/pro/wazirx.d.ts +0 -102
  87. package/js/src/pro/wazirx.js +0 -784
  88. package/js/src/static_dependencies/starknet/utils/json.d.ts +0 -24
  89. package/js/src/static_dependencies/starknet/utils/json.js +0 -43
package/js/src/bit2c.js CHANGED
@@ -31,44 +31,69 @@ export default class bit2c extends Exchange {
31
31
  'future': false,
32
32
  'option': false,
33
33
  'addMargin': false,
34
+ 'borrowCrossMargin': false,
35
+ 'borrowIsolatedMargin': false,
36
+ 'borrowMargin': false,
34
37
  'cancelAllOrders': false,
35
38
  'cancelOrder': true,
36
39
  'closeAllPositions': false,
37
40
  'closePosition': false,
38
41
  'createOrder': true,
42
+ 'createOrderWithTakeProfitAndStopLoss': false,
43
+ 'createOrderWithTakeProfitAndStopLossWs': false,
39
44
  'createReduceOnlyOrder': false,
40
45
  'fetchBalance': true,
46
+ 'fetchBorrowInterest': false,
47
+ 'fetchBorrowRate': false,
41
48
  'fetchBorrowRateHistories': false,
42
49
  'fetchBorrowRateHistory': false,
50
+ 'fetchBorrowRates': false,
51
+ 'fetchBorrowRatesPerSymbol': false,
43
52
  'fetchCrossBorrowRate': false,
44
53
  'fetchCrossBorrowRates': false,
45
54
  'fetchDepositAddress': true,
46
55
  'fetchDepositAddresses': false,
47
56
  'fetchDepositAddressesByNetwork': false,
48
57
  'fetchFundingHistory': false,
58
+ 'fetchFundingInterval': false,
59
+ 'fetchFundingIntervals': false,
49
60
  'fetchFundingRate': false,
50
61
  'fetchFundingRateHistory': false,
51
62
  'fetchFundingRates': false,
63
+ 'fetchGreeks': false,
52
64
  'fetchIndexOHLCV': false,
53
65
  'fetchIsolatedBorrowRate': false,
54
66
  'fetchIsolatedBorrowRates': false,
67
+ 'fetchIsolatedPositions': false,
55
68
  'fetchLeverage': false,
69
+ 'fetchLeverages': false,
56
70
  'fetchLeverageTiers': false,
71
+ 'fetchLiquidations': false,
72
+ 'fetchLongShortRatio': false,
73
+ 'fetchLongShortRatioHistory': false,
74
+ 'fetchMarginAdjustmentHistory': false,
57
75
  'fetchMarginMode': false,
76
+ 'fetchMarginModes': false,
77
+ 'fetchMarketLeverageTiers': false,
58
78
  'fetchMarkOHLCV': false,
79
+ 'fetchMarkPrices': false,
80
+ 'fetchMyLiquidations': false,
81
+ 'fetchMySettlementHistory': false,
59
82
  'fetchMyTrades': true,
60
83
  'fetchOpenInterest': false,
61
- 'fetchOpenInterests': false,
62
84
  'fetchOpenInterestHistory': false,
85
+ 'fetchOpenInterests': false,
63
86
  'fetchOpenOrders': true,
87
+ 'fetchOption': false,
88
+ 'fetchOptionChain': false,
64
89
  'fetchOrder': true,
65
90
  'fetchOrderBook': true,
66
91
  'fetchPosition': false,
67
92
  'fetchPositionHistory': false,
68
- 'fetchPositionsHistory': false,
69
- 'fetchPositionsForSymbol': false,
70
93
  'fetchPositionMode': false,
71
94
  'fetchPositions': false,
95
+ 'fetchPositionsForSymbol': false,
96
+ 'fetchPositionsHistory': false,
72
97
  'fetchPositionsRisk': false,
73
98
  'fetchPremiumIndexOHLCV': false,
74
99
  'fetchSettlementHistory': false,
@@ -79,13 +104,14 @@ export default class bit2c extends Exchange {
79
104
  'fetchTransfer': false,
80
105
  'fetchTransfers': false,
81
106
  'fetchUnderlyingAssets': false,
107
+ 'fetchVolatilityHistory': false,
82
108
  'reduceMargin': false,
83
109
  'repayCrossMargin': false,
84
110
  'repayIsolatedMargin': false,
85
111
  'repayMargin': false,
86
112
  'setLeverage': false,
87
- 'setMarginMode': false,
88
113
  'setMargin': false,
114
+ 'setMarginMode': false,
89
115
  'setPositionMode': false,
90
116
  'transfer': false,
91
117
  'ws': false,
package/js/src/bitbank.js CHANGED
@@ -29,35 +29,62 @@ export default class bitbank extends Exchange {
29
29
  'future': false,
30
30
  'option': false,
31
31
  'addMargin': false,
32
+ 'borrowCrossMargin': false,
33
+ 'borrowIsolatedMargin': false,
34
+ 'borrowMargin': false,
32
35
  'cancelAllOrders': false,
33
36
  'cancelOrder': true,
34
37
  'closeAllPositions': false,
35
38
  'closePosition': false,
36
39
  'createOrder': true,
40
+ 'createOrderWithTakeProfitAndStopLoss': false,
41
+ 'createOrderWithTakeProfitAndStopLossWs': false,
37
42
  'createReduceOnlyOrder': false,
38
43
  'fetchBalance': true,
44
+ 'fetchBorrowInterest': false,
45
+ 'fetchBorrowRate': false,
39
46
  'fetchBorrowRateHistories': false,
40
47
  'fetchBorrowRateHistory': false,
48
+ 'fetchBorrowRates': false,
49
+ 'fetchBorrowRatesPerSymbol': false,
41
50
  'fetchCrossBorrowRate': false,
42
51
  'fetchCrossBorrowRates': false,
43
52
  'fetchDepositAddress': true,
44
53
  'fetchDepositAddresses': false,
45
54
  'fetchDepositAddressesByNetwork': false,
46
55
  'fetchFundingHistory': false,
56
+ 'fetchFundingInterval': false,
57
+ 'fetchFundingIntervals': false,
47
58
  'fetchFundingRate': false,
48
59
  'fetchFundingRateHistory': false,
49
60
  'fetchFundingRates': false,
61
+ 'fetchGreeks': false,
50
62
  'fetchIndexOHLCV': false,
51
63
  'fetchIsolatedBorrowRate': false,
52
64
  'fetchIsolatedBorrowRates': false,
65
+ 'fetchIsolatedPositions': false,
53
66
  'fetchLeverage': false,
67
+ 'fetchLeverages': false,
54
68
  'fetchLeverageTiers': false,
69
+ 'fetchLiquidations': false,
70
+ 'fetchLongShortRatio': false,
71
+ 'fetchLongShortRatioHistory': false,
72
+ 'fetchMarginAdjustmentHistory': false,
55
73
  'fetchMarginMode': false,
74
+ 'fetchMarginModes': false,
75
+ 'fetchMarketLeverageTiers': false,
56
76
  'fetchMarkOHLCV': false,
77
+ 'fetchMarkPrices': false,
78
+ 'fetchMyLiquidations': false,
79
+ 'fetchMySettlementHistory': false,
57
80
  'fetchMyTrades': true,
58
81
  'fetchOHLCV': true,
82
+ 'fetchOpenInterest': false,
59
83
  'fetchOpenInterestHistory': false,
84
+ 'fetchOpenInterests': false,
60
85
  'fetchOpenOrders': true,
86
+ 'fetchOption': false,
87
+ 'fetchOptionChain': false,
61
88
  'fetchOrder': true,
62
89
  'fetchOrderBook': true,
63
90
  'fetchPosition': false,
@@ -68,14 +95,19 @@ export default class bitbank extends Exchange {
68
95
  'fetchPositionsHistory': false,
69
96
  'fetchPositionsRisk': false,
70
97
  'fetchPremiumIndexOHLCV': false,
98
+ 'fetchSettlementHistory': false,
71
99
  'fetchTicker': true,
72
100
  'fetchTrades': true,
73
101
  'fetchTradingFee': false,
74
102
  'fetchTradingFees': true,
75
103
  'fetchTransfer': false,
76
104
  'fetchTransfers': false,
105
+ 'fetchVolatilityHistory': false,
77
106
  'reduceMargin': false,
107
+ 'repayCrossMargin': false,
108
+ 'repayIsolatedMargin': false,
78
109
  'setLeverage': false,
110
+ 'setMargin': false,
79
111
  'setMarginMode': false,
80
112
  'setPositionMode': false,
81
113
  'transfer': false,
package/js/src/bitbns.js CHANGED
@@ -315,7 +315,7 @@ export default class bitbns extends Exchange {
315
315
  'swap': false,
316
316
  'future': false,
317
317
  'option': false,
318
- 'active': undefined,
318
+ 'active': this.safeBool(market, 'active'),
319
319
  'contract': false,
320
320
  'linear': undefined,
321
321
  'inverse': undefined,
@@ -248,6 +248,7 @@ export default class bitflyer extends Exchange {
248
248
  // { "product_code": "BCH_BTC", "market_type": "Spot" },
249
249
  // // forex swap
250
250
  // { "product_code": "FX_BTC_JPY", "market_type": "FX" },
251
+ //
251
252
  // // future
252
253
  // {
253
254
  // "product_code": "BTCJPY11FEB2022",
package/js/src/bithumb.js CHANGED
@@ -31,30 +31,59 @@ export default class bithumb extends Exchange {
31
31
  'future': false,
32
32
  'option': false,
33
33
  'addMargin': false,
34
+ 'borrowCrossMargin': false,
35
+ 'borrowIsolatedMargin': false,
36
+ 'borrowMargin': false,
34
37
  'cancelOrder': true,
35
38
  'closeAllPositions': false,
36
39
  'closePosition': false,
37
40
  'createMarketOrder': true,
38
41
  'createOrder': true,
42
+ 'createOrderWithTakeProfitAndStopLoss': false,
43
+ 'createOrderWithTakeProfitAndStopLossWs': false,
39
44
  'createReduceOnlyOrder': false,
40
45
  'fetchBalance': true,
46
+ 'fetchBorrowInterest': false,
47
+ 'fetchBorrowRate': false,
41
48
  'fetchBorrowRateHistories': false,
42
49
  'fetchBorrowRateHistory': false,
50
+ 'fetchBorrowRates': false,
51
+ 'fetchBorrowRatesPerSymbol': false,
43
52
  'fetchCrossBorrowRate': false,
44
53
  'fetchCrossBorrowRates': false,
45
54
  'fetchFundingHistory': false,
55
+ 'fetchFundingInterval': false,
56
+ 'fetchFundingIntervals': false,
46
57
  'fetchFundingRate': false,
47
58
  'fetchFundingRateHistory': false,
48
59
  'fetchFundingRates': false,
60
+ 'fetchGreeks': false,
49
61
  'fetchIndexOHLCV': false,
50
62
  'fetchIsolatedBorrowRate': false,
51
63
  'fetchIsolatedBorrowRates': false,
64
+ 'fetchIsolatedPositions': false,
52
65
  'fetchLeverage': false,
66
+ 'fetchLeverages': false,
67
+ 'fetchLeverageTiers': false,
68
+ 'fetchLiquidations': false,
69
+ 'fetchLongShortRatio': false,
70
+ 'fetchLongShortRatioHistory': false,
71
+ 'fetchMarginAdjustmentHistory': false,
72
+ 'fetchMarginMode': false,
73
+ 'fetchMarginModes': false,
74
+ 'fetchMarketLeverageTiers': false,
53
75
  'fetchMarkets': true,
54
76
  'fetchMarkOHLCV': false,
77
+ 'fetchMarkPrices': false,
78
+ 'fetchMyLiquidations': false,
79
+ 'fetchMySettlementHistory': false,
55
80
  'fetchOHLCV': true,
81
+ 'fetchOpenInterest': false,
56
82
  'fetchOpenInterestHistory': false,
83
+ 'fetchOpenInterests': false,
57
84
  'fetchOpenOrders': true,
85
+ 'fetchOption': false,
86
+ 'fetchOptionChain': false,
58
87
  'fetchOrder': true,
59
88
  'fetchOrderBook': true,
60
89
  'fetchPosition': false,
@@ -65,13 +94,18 @@ export default class bithumb extends Exchange {
65
94
  'fetchPositionsHistory': false,
66
95
  'fetchPositionsRisk': false,
67
96
  'fetchPremiumIndexOHLCV': false,
97
+ 'fetchSettlementHistory': false,
68
98
  'fetchTicker': true,
69
99
  'fetchTickers': true,
70
100
  'fetchTrades': true,
71
101
  'fetchTransfer': false,
72
102
  'fetchTransfers': false,
103
+ 'fetchVolatilityHistory': false,
73
104
  'reduceMargin': false,
105
+ 'repayCrossMargin': false,
106
+ 'repayIsolatedMargin': false,
74
107
  'setLeverage': false,
108
+ 'setMargin': false,
75
109
  'setMarginMode': false,
76
110
  'setPositionMode': false,
77
111
  'transfer': false,
@@ -693,6 +693,30 @@ export default class bitmart extends Exchange {
693
693
  };
694
694
  parseFundingHistories(contracts: any, market?: any, since?: Int, limit?: Int): FundingHistory[];
695
695
  fetchWithdrawAddresses(code: string, note?: any, networkCode?: any, params?: {}): Promise<any[]>;
696
+ /**
697
+ * @method
698
+ * @name bitmart#setPositionMode
699
+ * @description set hedged to true or false for a market
700
+ * @see https://developer-pro.bitmart.com/en/futuresv2/#submit-leverage-signed
701
+ * @param {bool} hedged set to true to use dualSidePosition
702
+ * @param {string} symbol not used by bingx setPositionMode ()
703
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
704
+ * @returns {object} response from the exchange
705
+ */
706
+ setPositionMode(hedged: boolean, symbol?: Str, params?: {}): Promise<any>;
707
+ /**
708
+ * @method
709
+ * @name bitmart#fetchPositionMode
710
+ * @description fetchs the position mode, hedged or one way, hedged for binance is set identically for all linear markets or all inverse markets
711
+ * @see https://developer-pro.bitmart.com/en/futuresv2/#get-position-mode-keyed
712
+ * @param {string} symbol not used
713
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
714
+ * @returns {object} an object detailing whether the market is in hedged or one-way mode
715
+ */
716
+ fetchPositionMode(symbol?: Str, params?: {}): Promise<{
717
+ info: any;
718
+ hedged: boolean;
719
+ }>;
696
720
  nonce(): number;
697
721
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
698
722
  url: string;
package/js/src/bitmart.js CHANGED
@@ -88,7 +88,7 @@ export default class bitmart extends Exchange {
88
88
  'fetchOrders': false,
89
89
  'fetchOrderTrades': true,
90
90
  'fetchPosition': true,
91
- 'fetchPositionMode': false,
91
+ 'fetchPositionMode': true,
92
92
  'fetchPositions': true,
93
93
  'fetchStatus': true,
94
94
  'fetchTicker': true,
@@ -110,6 +110,7 @@ export default class bitmart extends Exchange {
110
110
  'repayIsolatedMargin': true,
111
111
  'setLeverage': true,
112
112
  'setMarginMode': false,
113
+ 'setPositionMode': true,
113
114
  'transfer': true,
114
115
  'withdraw': true,
115
116
  },
@@ -215,6 +216,7 @@ export default class bitmart extends Exchange {
215
216
  'contract/private/affilate/rebate-list': 10,
216
217
  'contract/private/affilate/trade-list': 10,
217
218
  'contract/private/transaction-history': 10,
219
+ 'contract/private/get-position-mode': 1,
218
220
  },
219
221
  'post': {
220
222
  // sub-account endpoints
@@ -266,7 +268,8 @@ export default class bitmart extends Exchange {
266
268
  'contract/private/modify-limit-order': 2.5,
267
269
  'contract/private/modify-tp-sl-order': 2.5,
268
270
  'contract/private/submit-trail-order': 2.5,
269
- 'contract/private/cancel-trail-order': 1.5, // weight is not provided by the exchange, is set as ordinary order
271
+ 'contract/private/cancel-trail-order': 1.5,
272
+ 'contract/private/set-position-mode': 1,
270
273
  },
271
274
  },
272
275
  },
@@ -1197,7 +1200,7 @@ export default class bitmart extends Exchange {
1197
1200
  // {
1198
1201
  // "message": "OK",
1199
1202
  // "code": 1000,
1200
- // "trace": "619294ecef584282b26a3be322b1e01f.66.17403093228242228",
1203
+ // "trace": "619294ecef584282b26a3be322b1e01f.66.17403093228242229",
1201
1204
  // "data": {
1202
1205
  // "currencies": [
1203
1206
  // {
@@ -4060,10 +4063,12 @@ export default class bitmart extends Exchange {
4060
4063
  const timestamp = this.safeInteger(transaction, 'apply_time');
4061
4064
  let currencyId = this.safeString(transaction, 'currency');
4062
4065
  let networkId = undefined;
4063
- if (currencyId.indexOf('NFT') < 0) {
4064
- const parts = currencyId.split('-');
4065
- currencyId = this.safeString(parts, 0);
4066
- networkId = this.safeString(parts, 1);
4066
+ if (currencyId !== undefined) {
4067
+ if (currencyId.indexOf('NFT') < 0) {
4068
+ const parts = currencyId.split('-');
4069
+ currencyId = this.safeString(parts, 0);
4070
+ networkId = this.safeString(parts, 1);
4071
+ }
4067
4072
  }
4068
4073
  const code = this.safeCurrencyCode(currencyId, currency);
4069
4074
  const status = this.parseTransactionStatus(this.safeString(transaction, 'status'));
@@ -5487,6 +5492,68 @@ export default class bitmart extends Exchange {
5487
5492
  }
5488
5493
  return addresses;
5489
5494
  }
5495
+ /**
5496
+ * @method
5497
+ * @name bitmart#setPositionMode
5498
+ * @description set hedged to true or false for a market
5499
+ * @see https://developer-pro.bitmart.com/en/futuresv2/#submit-leverage-signed
5500
+ * @param {bool} hedged set to true to use dualSidePosition
5501
+ * @param {string} symbol not used by bingx setPositionMode ()
5502
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
5503
+ * @returns {object} response from the exchange
5504
+ */
5505
+ async setPositionMode(hedged, symbol = undefined, params = {}) {
5506
+ await this.loadMarkets();
5507
+ let positionMode = undefined;
5508
+ if (hedged) {
5509
+ positionMode = 'hedge_mode';
5510
+ }
5511
+ else {
5512
+ positionMode = 'one_way_mode';
5513
+ }
5514
+ const request = {
5515
+ 'position_mode': positionMode,
5516
+ };
5517
+ //
5518
+ // {
5519
+ // "code": 1000,
5520
+ // "trace": "0cc6f4c4-8b8c-4253-8e90-8d3195aa109c",
5521
+ // "message": "Ok",
5522
+ // "data": {
5523
+ // "position_mode":"one_way_mode"
5524
+ // }
5525
+ // }
5526
+ //
5527
+ return await this.privatePostContractPrivateSetPositionMode(this.extend(request, params));
5528
+ }
5529
+ /**
5530
+ * @method
5531
+ * @name bitmart#fetchPositionMode
5532
+ * @description fetchs the position mode, hedged or one way, hedged for binance is set identically for all linear markets or all inverse markets
5533
+ * @see https://developer-pro.bitmart.com/en/futuresv2/#get-position-mode-keyed
5534
+ * @param {string} symbol not used
5535
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
5536
+ * @returns {object} an object detailing whether the market is in hedged or one-way mode
5537
+ */
5538
+ async fetchPositionMode(symbol = undefined, params = {}) {
5539
+ const response = await this.privateGetContractPrivateGetPositionMode(params);
5540
+ //
5541
+ // {
5542
+ // "code": 1000,
5543
+ // "trace": "0cc6f4c4-8b8c-4253-8e90-8d3195aa109c",
5544
+ // "message": "Ok",
5545
+ // "data": {
5546
+ // "position_mode":"one_way_mode"
5547
+ // }
5548
+ // }
5549
+ //
5550
+ const data = this.safeDict(response, 'data');
5551
+ const positionMode = this.safeString(data, 'position_mode');
5552
+ return {
5553
+ 'info': response,
5554
+ 'hedged': (positionMode === 'hedge_mode'),
5555
+ };
5556
+ }
5490
5557
  nonce() {
5491
5558
  return this.milliseconds() - this.options['timeDifference'];
5492
5559
  }
package/js/src/bitopro.js CHANGED
@@ -31,19 +31,29 @@ export default class bitopro extends Exchange {
31
31
  'swap': false,
32
32
  'future': false,
33
33
  'option': false,
34
+ 'addMargin': false,
35
+ 'borrowCrossMargin': false,
36
+ 'borrowIsolatedMargin': false,
37
+ 'borrowMargin': false,
34
38
  'cancelAllOrders': true,
35
39
  'cancelOrder': true,
36
40
  'cancelOrders': true,
37
41
  'closeAllPositions': false,
38
42
  'closePosition': false,
39
43
  'createOrder': true,
44
+ 'createOrderWithTakeProfitAndStopLoss': false,
45
+ 'createOrderWithTakeProfitAndStopLossWs': false,
40
46
  'createReduceOnlyOrder': false,
41
47
  'createStopOrder': true,
42
48
  'createTriggerOrder': true,
43
49
  'editOrder': false,
44
50
  'fetchBalance': true,
51
+ 'fetchBorrowInterest': false,
52
+ 'fetchBorrowRate': false,
45
53
  'fetchBorrowRateHistories': false,
46
54
  'fetchBorrowRateHistory': false,
55
+ 'fetchBorrowRates': false,
56
+ 'fetchBorrowRatesPerSymbol': false,
47
57
  'fetchClosedOrders': true,
48
58
  'fetchCrossBorrowRate': false,
49
59
  'fetchCrossBorrowRates': false,
@@ -54,19 +64,39 @@ export default class bitopro extends Exchange {
54
64
  'fetchDepositWithdrawFee': 'emulated',
55
65
  'fetchDepositWithdrawFees': true,
56
66
  'fetchFundingHistory': false,
67
+ 'fetchFundingInterval': false,
68
+ 'fetchFundingIntervals': false,
57
69
  'fetchFundingRate': false,
58
70
  'fetchFundingRateHistory': false,
59
71
  'fetchFundingRates': false,
72
+ 'fetchGreeks': false,
60
73
  'fetchIndexOHLCV': false,
61
74
  'fetchIsolatedBorrowRate': false,
62
75
  'fetchIsolatedBorrowRates': false,
76
+ 'fetchIsolatedPositions': false,
77
+ 'fetchLeverage': false,
78
+ 'fetchLeverages': false,
79
+ 'fetchLeverageTiers': false,
80
+ 'fetchLiquidations': false,
81
+ 'fetchLongShortRatio': false,
82
+ 'fetchLongShortRatioHistory': false,
83
+ 'fetchMarginAdjustmentHistory': false,
63
84
  'fetchMarginMode': false,
85
+ 'fetchMarginModes': false,
86
+ 'fetchMarketLeverageTiers': false,
64
87
  'fetchMarkets': true,
65
88
  'fetchMarkOHLCV': false,
89
+ 'fetchMarkPrices': false,
90
+ 'fetchMyLiquidations': false,
91
+ 'fetchMySettlementHistory': false,
66
92
  'fetchMyTrades': true,
67
93
  'fetchOHLCV': true,
94
+ 'fetchOpenInterest': false,
68
95
  'fetchOpenInterestHistory': false,
96
+ 'fetchOpenInterests': false,
69
97
  'fetchOpenOrders': true,
98
+ 'fetchOption': false,
99
+ 'fetchOptionChain': false,
70
100
  'fetchOrder': true,
71
101
  'fetchOrderBook': true,
72
102
  'fetchOrders': false,
@@ -79,6 +109,7 @@ export default class bitopro extends Exchange {
79
109
  'fetchPositionsHistory': false,
80
110
  'fetchPositionsRisk': false,
81
111
  'fetchPremiumIndexOHLCV': false,
112
+ 'fetchSettlementHistory': false,
82
113
  'fetchTicker': true,
83
114
  'fetchTickers': true,
84
115
  'fetchTime': false,
@@ -89,10 +120,16 @@ export default class bitopro extends Exchange {
89
120
  'fetchTransactions': false,
90
121
  'fetchTransfer': false,
91
122
  'fetchTransfers': false,
123
+ 'fetchVolatilityHistory': false,
92
124
  'fetchWithdrawal': true,
93
125
  'fetchWithdrawals': true,
126
+ 'reduceMargin': false,
127
+ 'repayCrossMargin': false,
128
+ 'repayIsolatedMargin': false,
94
129
  'setLeverage': false,
130
+ 'setMargin': false,
95
131
  'setMarginMode': false,
132
+ 'setPositionMode': false,
96
133
  'transfer': false,
97
134
  'withdraw': true,
98
135
  },
package/js/src/blofin.js CHANGED
@@ -60,7 +60,7 @@ export default class blofin extends Exchange {
60
60
  'fetchBorrowRateHistory': false,
61
61
  'fetchCanceledOrders': false,
62
62
  'fetchClosedOrder': false,
63
- 'fetchClosedOrders': false,
63
+ 'fetchClosedOrders': true,
64
64
  'fetchCrossBorrowRate': false,
65
65
  'fetchCrossBorrowRates': false,
66
66
  'fetchCurrencies': false,
package/js/src/bybit.js CHANGED
@@ -2445,6 +2445,7 @@ export default class bybit extends Exchange {
2445
2445
  */
2446
2446
  async fetchTickers(symbols = undefined, params = {}) {
2447
2447
  await this.loadMarkets();
2448
+ let code = this.safeStringN(params, ['code', 'currency', 'baseCoin']);
2448
2449
  let market = undefined;
2449
2450
  let parsedSymbols = undefined;
2450
2451
  if (symbols !== undefined) {
@@ -2470,6 +2471,15 @@ export default class bybit extends Exchange {
2470
2471
  else if (market['type'] !== currentType) {
2471
2472
  throw new BadRequest(this.id + ' fetchTickers can only accept a list of symbols of the same type');
2472
2473
  }
2474
+ if (market['option']) {
2475
+ if (code !== undefined && code !== market['base']) {
2476
+ throw new BadRequest(this.id + ' fetchTickers the base currency must be the same for all symbols, this endpoint only supports one base currency at a time. Read more about it here: https://bybit-exchange.github.io/docs/v5/market/tickers');
2477
+ }
2478
+ if (code === undefined) {
2479
+ code = market['base'];
2480
+ }
2481
+ params = this.omit(params, ['code', 'currency']);
2482
+ }
2473
2483
  parsedSymbols.push(market['symbol']);
2474
2484
  }
2475
2485
  }
@@ -2492,7 +2502,10 @@ export default class bybit extends Exchange {
2492
2502
  }
2493
2503
  else if (type === 'option') {
2494
2504
  request['category'] = 'option';
2495
- request['baseCoin'] = this.safeString(params, 'baseCoin', 'BTC');
2505
+ if (code === undefined) {
2506
+ code = 'BTC';
2507
+ }
2508
+ request['baseCoin'] = code;
2496
2509
  }
2497
2510
  else if (type === 'swap' || type === 'future' || subType !== undefined) {
2498
2511
  request['category'] = subType;