ccxt 4.1.69 → 4.1.71

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.
@@ -2235,11 +2235,16 @@ class gate extends gate$1 {
2235
2235
  if (limit !== undefined) {
2236
2236
  request['limit'] = limit;
2237
2237
  }
2238
- const method = this.getSupportedMapping(type, {
2239
- 'swap': 'privateFuturesGetSettleAccountBook',
2240
- 'future': 'privateDeliveryGetSettleAccountBook',
2241
- });
2242
- const response = await this[method](this.extend(request, requestParams));
2238
+ let response = undefined;
2239
+ if (type === 'swap') {
2240
+ response = await this.privateFuturesGetSettleAccountBook(this.extend(request, requestParams));
2241
+ }
2242
+ else if (type === 'future') {
2243
+ response = await this.privateDeliveryGetSettleAccountBook(this.extend(request, requestParams));
2244
+ }
2245
+ else {
2246
+ throw new errors.NotSupported(this.id + ' fetchFundingHistory() only support swap & future market type');
2247
+ }
2243
2248
  //
2244
2249
  // [
2245
2250
  // {
@@ -2312,18 +2317,26 @@ class gate extends gate$1 {
2312
2317
  // };
2313
2318
  //
2314
2319
  const [request, query] = this.prepareRequest(market, market['type'], params);
2315
- const method = this.getSupportedMapping(market['type'], {
2316
- 'spot': 'publicSpotGetOrderBook',
2317
- 'margin': 'publicSpotGetOrderBook',
2318
- 'swap': 'publicFuturesGetSettleOrderBook',
2319
- 'future': 'publicDeliveryGetSettleOrderBook',
2320
- 'option': 'publicOptionsGetOrderBook',
2321
- });
2322
2320
  if (limit !== undefined) {
2323
2321
  request['limit'] = limit; // default 10, max 100
2324
2322
  }
2325
2323
  request['with_id'] = true;
2326
- const response = await this[method](this.extend(request, query));
2324
+ let response = undefined;
2325
+ if (market['spot'] || market['margin']) {
2326
+ response = await this.publicSpotGetOrderBook(this.extend(request, query));
2327
+ }
2328
+ else if (market['swap']) {
2329
+ response = await this.publicFuturesGetSettleOrderBook(this.extend(request, query));
2330
+ }
2331
+ else if (market['future']) {
2332
+ response = await this.publicDeliveryGetSettleOrderBook(this.extend(request, query));
2333
+ }
2334
+ else if (market['option']) {
2335
+ response = await this.publicOptionsGetOrderBook(this.extend(request, query));
2336
+ }
2337
+ else {
2338
+ throw new errors.NotSupported(this.id + ' fetchOrderBook() not support this market type');
2339
+ }
2327
2340
  //
2328
2341
  // spot
2329
2342
  //
@@ -2415,19 +2428,25 @@ class gate extends gate$1 {
2415
2428
  await this.loadMarkets();
2416
2429
  const market = this.market(symbol);
2417
2430
  const [request, query] = this.prepareRequest(market, undefined, params);
2418
- const method = this.getSupportedMapping(market['type'], {
2419
- 'spot': 'publicSpotGetTickers',
2420
- 'margin': 'publicSpotGetTickers',
2421
- 'swap': 'publicFuturesGetSettleTickers',
2422
- 'future': 'publicDeliveryGetSettleTickers',
2423
- 'option': 'publicOptionsGetTickers',
2424
- });
2425
- if (market['option']) {
2431
+ let response = undefined;
2432
+ if (market['spot'] || market['margin']) {
2433
+ response = await this.publicSpotGetTickers(this.extend(request, query));
2434
+ }
2435
+ else if (market['swap']) {
2436
+ response = await this.publicFuturesGetSettleTickers(this.extend(request, query));
2437
+ }
2438
+ else if (market['future']) {
2439
+ response = await this.publicDeliveryGetSettleTickers(this.extend(request, query));
2440
+ }
2441
+ else if (market['option']) {
2426
2442
  const marketId = market['id'];
2427
2443
  const optionParts = marketId.split('-');
2428
2444
  request['underlying'] = this.safeString(optionParts, 0);
2445
+ response = await this.publicOptionsGetTickers(this.extend(request, query));
2446
+ }
2447
+ else {
2448
+ throw new errors.NotSupported(this.id + ' fetchTicker() not support this market type');
2429
2449
  }
2430
- const response = await this[method](this.extend(request, query));
2431
2450
  let ticker = undefined;
2432
2451
  if (market['option']) {
2433
2452
  for (let i = 0; i < response.length; i++) {
@@ -2577,20 +2596,26 @@ class gate extends gate$1 {
2577
2596
  }
2578
2597
  const [type, query] = this.handleMarketTypeAndParams('fetchTickers', market, params);
2579
2598
  const [request, requestParams] = this.prepareRequest(undefined, type, query);
2580
- const method = this.getSupportedMapping(type, {
2581
- 'spot': 'publicSpotGetTickers',
2582
- 'margin': 'publicSpotGetTickers',
2583
- 'swap': 'publicFuturesGetSettleTickers',
2584
- 'future': 'publicDeliveryGetSettleTickers',
2585
- 'option': 'publicOptionsGetTickers',
2586
- });
2587
- if (type === 'option') {
2599
+ let response = undefined;
2600
+ if (type === 'spot' || type === 'margin') {
2601
+ response = await this.publicSpotGetTickers(this.extend(request, requestParams));
2602
+ }
2603
+ else if (type === 'swap') {
2604
+ response = await this.publicFuturesGetSettleTickers(this.extend(request, requestParams));
2605
+ }
2606
+ else if (type === 'future') {
2607
+ response = await this.publicDeliveryGetSettleTickers(this.extend(request, requestParams));
2608
+ }
2609
+ else if (type === 'option') {
2588
2610
  this.checkRequiredArgument('fetchTickers', symbols, 'symbols');
2589
2611
  const marketId = market['id'];
2590
2612
  const optionParts = marketId.split('-');
2591
2613
  request['underlying'] = this.safeString(optionParts, 0);
2614
+ response = await this.publicOptionsGetTickers(this.extend(request, requestParams));
2615
+ }
2616
+ else {
2617
+ throw new errors.NotSupported(this.id + ' fetchTickers() not support this market type');
2592
2618
  }
2593
- const response = await this[method](this.extend(request, requestParams));
2594
2619
  return this.parseTickers(response, symbols);
2595
2620
  }
2596
2621
  parseBalanceHelper(entry) {
@@ -2621,18 +2646,36 @@ class gate extends gate$1 {
2621
2646
  const market = this.market(symbol);
2622
2647
  request['currency_pair'] = market['id'];
2623
2648
  }
2624
- const method = this.getSupportedMapping(type, {
2625
- 'spot': this.getSupportedMapping(marginMode, {
2626
- 'spot': 'privateSpotGetAccounts',
2627
- 'margin': 'privateMarginGetAccounts',
2628
- 'cross_margin': 'privateMarginGetCrossAccounts',
2629
- }),
2630
- 'funding': 'privateMarginGetFundingAccounts',
2631
- 'swap': 'privateFuturesGetSettleAccounts',
2632
- 'future': 'privateDeliveryGetSettleAccounts',
2633
- 'option': 'privateOptionsGetAccounts',
2634
- });
2635
- let response = await this[method](this.extend(request, requestQuery));
2649
+ let response = undefined;
2650
+ if (type === 'spot') {
2651
+ if (marginMode === 'spot') {
2652
+ response = await this.privateSpotGetAccounts(this.extend(request, requestQuery));
2653
+ }
2654
+ else if (marginMode === 'margin') {
2655
+ response = await this.privateMarginGetAccounts(this.extend(request, requestQuery));
2656
+ }
2657
+ else if (marginMode === 'cross_margin') {
2658
+ response = await this.privateMarginGetCrossAccounts(this.extend(request, requestQuery));
2659
+ }
2660
+ else {
2661
+ throw new errors.NotSupported(this.id + ' fetchBalance() not support this marginMode');
2662
+ }
2663
+ }
2664
+ else if (type === 'funding') {
2665
+ response = await this.privateMarginGetFundingAccounts(this.extend(request, requestQuery));
2666
+ }
2667
+ else if (type === 'swap') {
2668
+ response = await this.privateFuturesGetSettleAccounts(this.extend(request, requestQuery));
2669
+ }
2670
+ else if (type === 'future') {
2671
+ response = await this.privateDeliveryGetSettleAccounts(this.extend(request, requestQuery));
2672
+ }
2673
+ else if (type === 'option') {
2674
+ response = await this.privateOptionsGetAccounts(this.extend(request, requestQuery));
2675
+ }
2676
+ else {
2677
+ throw new errors.NotSupported(this.id + ' fetchBalance() not support this market type');
2678
+ }
2636
2679
  const contract = ((type === 'swap') || (type === 'future') || (type === 'option'));
2637
2680
  if (contract) {
2638
2681
  response = [response];
@@ -2852,23 +2895,7 @@ class gate extends gate$1 {
2852
2895
  let request = {};
2853
2896
  [request, params] = this.prepareRequest(market, undefined, params);
2854
2897
  request['interval'] = this.safeString(this.timeframes, timeframe, timeframe);
2855
- let method = 'publicSpotGetCandlesticks';
2856
2898
  let maxLimit = 1000;
2857
- if (market['contract']) {
2858
- maxLimit = 1999;
2859
- if (market['future']) {
2860
- method = 'publicDeliveryGetSettleCandlesticks';
2861
- }
2862
- else if (market['swap']) {
2863
- method = 'publicFuturesGetSettleCandlesticks';
2864
- }
2865
- const isMark = (price === 'mark');
2866
- const isIndex = (price === 'index');
2867
- if (isMark || isIndex) {
2868
- request['contract'] = price + '_' + market['id'];
2869
- params = this.omit(params, 'price');
2870
- }
2871
- }
2872
2899
  limit = (limit === undefined) ? maxLimit : Math.min(limit, maxLimit);
2873
2900
  let until = this.safeInteger(params, 'until');
2874
2901
  if (until !== undefined) {
@@ -2895,7 +2922,25 @@ class gate extends gate$1 {
2895
2922
  }
2896
2923
  request['limit'] = limit;
2897
2924
  }
2898
- const response = await this[method](this.extend(request, params));
2925
+ let response = undefined;
2926
+ if (market['contract']) {
2927
+ maxLimit = 1999;
2928
+ const isMark = (price === 'mark');
2929
+ const isIndex = (price === 'index');
2930
+ if (isMark || isIndex) {
2931
+ request['contract'] = price + '_' + market['id'];
2932
+ params = this.omit(params, 'price');
2933
+ }
2934
+ if (market['future']) {
2935
+ response = await this.publicDeliveryGetSettleCandlesticks(this.extend(request, params));
2936
+ }
2937
+ else if (market['swap']) {
2938
+ response = await this.publicFuturesGetSettleCandlesticks(this.extend(request, params));
2939
+ }
2940
+ }
2941
+ else {
2942
+ response = await this.publicSpotGetCandlesticks(this.extend(request, params));
2943
+ }
2899
2944
  return this.parseOHLCVs(response, market, timeframe, since, limit);
2900
2945
  }
2901
2946
  async fetchOptionOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
@@ -2932,8 +2977,7 @@ class gate extends gate$1 {
2932
2977
  if (limit !== undefined) {
2933
2978
  request['limit'] = limit;
2934
2979
  }
2935
- const method = 'publicFuturesGetSettleFundingRate';
2936
- const response = await this[method](this.extend(request, query));
2980
+ const response = await this.publicFuturesGetSettleFundingRate(this.extend(request, query));
2937
2981
  //
2938
2982
  // {
2939
2983
  // "r": "0.00063521",
@@ -3048,13 +3092,6 @@ class gate extends gate$1 {
3048
3092
  // };
3049
3093
  //
3050
3094
  const [request, query] = this.prepareRequest(market, undefined, params);
3051
- const method = this.getSupportedMapping(market['type'], {
3052
- 'spot': 'publicSpotGetTrades',
3053
- 'margin': 'publicSpotGetTrades',
3054
- 'swap': 'publicFuturesGetSettleTrades',
3055
- 'future': 'publicDeliveryGetSettleTrades',
3056
- 'option': 'publicOptionsGetTrades',
3057
- });
3058
3095
  const until = this.safeInteger2(params, 'to', 'until');
3059
3096
  if (until !== undefined) {
3060
3097
  params = this.omit(params, ['until']);
@@ -3066,7 +3103,22 @@ class gate extends gate$1 {
3066
3103
  if (since !== undefined && (market['contract'])) {
3067
3104
  request['from'] = this.parseToInt(since / 1000);
3068
3105
  }
3069
- const response = await this[method](this.extend(request, query));
3106
+ let response = undefined;
3107
+ if (market['type'] === 'spot' || market['type'] === 'margin') {
3108
+ response = await this.publicSpotGetTrades(this.extend(request, query));
3109
+ }
3110
+ else if (market['swap']) {
3111
+ response = await this.publicFuturesGetSettleTrades(this.extend(request, query));
3112
+ }
3113
+ else if (market['future']) {
3114
+ response = await this.publicDeliveryGetSettleTrades(this.extend(request, query));
3115
+ }
3116
+ else if (market['type'] === 'option') {
3117
+ response = await this.publicOptionsGetTrades(this.extend(request, query));
3118
+ }
3119
+ else {
3120
+ throw new errors.NotSupported(this.id + ' fetchTrades() not support this market type.');
3121
+ }
3070
3122
  //
3071
3123
  // spot
3072
3124
  //
@@ -3212,14 +3264,22 @@ class gate extends gate$1 {
3212
3264
  if (until !== undefined) {
3213
3265
  request['to'] = this.parseToInt(until / 1000);
3214
3266
  }
3215
- const method = this.getSupportedMapping(type, {
3216
- 'spot': 'privateSpotGetMyTrades',
3217
- 'margin': 'privateSpotGetMyTrades',
3218
- 'swap': 'privateFuturesGetSettleMyTradesTimerange',
3219
- 'future': 'privateDeliveryGetSettleMyTrades',
3220
- 'option': 'privateOptionsGetMyTrades',
3221
- });
3222
- const response = await this[method](this.extend(request, params));
3267
+ let response = undefined;
3268
+ if (type === 'spot' || type === 'margin') {
3269
+ response = await this.privateSpotGetMyTrades(this.extend(request, params));
3270
+ }
3271
+ else if (type === 'swap') {
3272
+ response = await this.privateFuturesGetSettleMyTradesTimerange(this.extend(request, params));
3273
+ }
3274
+ else if (type === 'future') {
3275
+ response = await this.privateDeliveryGetSettleMyTrades(this.extend(request, params));
3276
+ }
3277
+ else if (type === 'option') {
3278
+ response = await this.privateOptionsGetMyTrades(this.extend(request, params));
3279
+ }
3280
+ else {
3281
+ throw new errors.NotSupported(this.id + ' fetchMyTrades() not support this market type.');
3282
+ }
3223
3283
  //
3224
3284
  // spot
3225
3285
  //
@@ -4470,15 +4530,37 @@ class gate extends gate$1 {
4470
4530
  const contract = (type === 'swap') || (type === 'future') || (type === 'option');
4471
4531
  const [request, requestParams] = contract ? this.prepareRequest(market, type, query) : this.spotOrderPrepareRequest(market, stop, query);
4472
4532
  request['order_id'] = orderId;
4473
- const methodMiddle = stop ? 'PriceOrders' : 'Orders';
4474
- const method = this.getSupportedMapping(type, {
4475
- 'spot': 'privateSpotGet' + methodMiddle + 'OrderId',
4476
- 'margin': 'privateSpotGet' + methodMiddle + 'OrderId',
4477
- 'swap': 'privateFuturesGetSettle' + methodMiddle + 'OrderId',
4478
- 'future': 'privateDeliveryGetSettle' + methodMiddle + 'OrderId',
4479
- 'option': 'privateOptionsGetOrdersOrderId',
4480
- });
4481
- const response = await this[method](this.extend(request, requestParams));
4533
+ let response = undefined;
4534
+ if (type === 'spot' || type === 'margin') {
4535
+ if (stop) {
4536
+ response = await this.privateSpotGetPriceOrdersOrderId(this.extend(request, requestParams));
4537
+ }
4538
+ else {
4539
+ response = await this.privateSpotGetOrdersOrderId(this.extend(request, requestParams));
4540
+ }
4541
+ }
4542
+ else if (type === 'swap') {
4543
+ if (stop) {
4544
+ response = await this.privateFuturesGetSettlePriceOrdersOrderId(this.extend(request, requestParams));
4545
+ }
4546
+ else {
4547
+ response = await this.privateFuturesGetSettleOrdersOrderId(this.extend(request, requestParams));
4548
+ }
4549
+ }
4550
+ else if (type === 'future') {
4551
+ if (stop) {
4552
+ response = await this.privateDeliveryGetSettlePriceOrdersOrderId(this.extend(request, requestParams));
4553
+ }
4554
+ else {
4555
+ response = await this.privateDeliveryGetSettleOrdersOrderId(this.extend(request, requestParams));
4556
+ }
4557
+ }
4558
+ else if (type === 'option') {
4559
+ response = await this.privateOptionsGetOrdersOrderId(this.extend(request, requestParams));
4560
+ }
4561
+ else {
4562
+ throw new errors.NotSupported(this.id + ' fetchOrder() not support this market type');
4563
+ }
4482
4564
  return this.parseOrder(response, market);
4483
4565
  }
4484
4566
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -4543,19 +4625,41 @@ class gate extends gate$1 {
4543
4625
  if (since !== undefined && spot) {
4544
4626
  request['from'] = this.parseToInt(since / 1000);
4545
4627
  }
4546
- let methodTail = stop ? 'PriceOrders' : 'Orders';
4547
4628
  const openSpotOrders = spot && (status === 'open') && !stop;
4548
- if (openSpotOrders) {
4549
- methodTail = 'OpenOrders';
4550
- }
4551
- const method = this.getSupportedMapping(type, {
4552
- 'spot': 'privateSpotGet' + methodTail,
4553
- 'margin': 'privateSpotGet' + methodTail,
4554
- 'swap': 'privateFuturesGetSettle' + methodTail,
4555
- 'future': 'privateDeliveryGetSettle' + methodTail,
4556
- 'option': 'privateOptionsGetOrders',
4557
- });
4558
- const response = await this[method](this.extend(request, requestParams));
4629
+ let response = undefined;
4630
+ if (type === 'spot' || type === 'margin') {
4631
+ if (openSpotOrders) {
4632
+ response = await this.privateSpotGetOpenOrders(this.extend(request, requestParams));
4633
+ }
4634
+ else if (stop) {
4635
+ response = await this.privateSpotGetPriceOrders(this.extend(request, requestParams));
4636
+ }
4637
+ else {
4638
+ response = await this.privateSpotGetOrders(this.extend(request, requestParams));
4639
+ }
4640
+ }
4641
+ else if (type === 'swap') {
4642
+ if (stop) {
4643
+ response = await this.privateFuturesGetSettlePriceOrders(this.extend(request, requestParams));
4644
+ }
4645
+ else {
4646
+ response = await this.privateFuturesGetSettleOrders(this.extend(request, requestParams));
4647
+ }
4648
+ }
4649
+ else if (type === 'future') {
4650
+ if (stop) {
4651
+ response = await this.privateDeliveryGetSettlePriceOrders(this.extend(request, requestParams));
4652
+ }
4653
+ else {
4654
+ response = await this.privateDeliveryGetSettleOrders(this.extend(request, requestParams));
4655
+ }
4656
+ }
4657
+ else if (type === 'option') {
4658
+ response = await this.privateOptionsGetOrders(this.extend(request, requestParams));
4659
+ }
4660
+ else {
4661
+ throw new errors.NotSupported(this.id + ' fetchOrders() not support this market type');
4662
+ }
4559
4663
  //
4560
4664
  // spot open orders
4561
4665
  //
@@ -4735,15 +4839,37 @@ class gate extends gate$1 {
4735
4839
  const [type, query] = this.handleMarketTypeAndParams('cancelOrder', market, params);
4736
4840
  const [request, requestParams] = (type === 'spot' || type === 'margin') ? this.spotOrderPrepareRequest(market, stop, query) : this.prepareRequest(market, type, query);
4737
4841
  request['order_id'] = id;
4738
- const pathMiddle = stop ? 'Price' : '';
4739
- const method = this.getSupportedMapping(type, {
4740
- 'spot': 'privateSpotDelete' + pathMiddle + 'OrdersOrderId',
4741
- 'margin': 'privateSpotDelete' + pathMiddle + 'OrdersOrderId',
4742
- 'swap': 'privateFuturesDeleteSettle' + pathMiddle + 'OrdersOrderId',
4743
- 'future': 'privateDeliveryDeleteSettle' + pathMiddle + 'OrdersOrderId',
4744
- 'option': 'privateOptionsDeleteOrdersOrderId',
4745
- });
4746
- const response = await this[method](this.extend(request, requestParams));
4842
+ let response = undefined;
4843
+ if (type === 'spot' || type === 'margin') {
4844
+ if (stop) {
4845
+ response = await this.privateSpotDeletePriceOrdersOrderId(this.extend(request, requestParams));
4846
+ }
4847
+ else {
4848
+ response = await this.privateSpotDeleteOrdersOrderId(this.extend(request, requestParams));
4849
+ }
4850
+ }
4851
+ else if (type === 'swap') {
4852
+ if (stop) {
4853
+ response = await this.privateFuturesDeleteSettlePriceOrdersOrderId(this.extend(request, requestParams));
4854
+ }
4855
+ else {
4856
+ response = await this.privateFuturesDeleteSettleOrdersOrderId(this.extend(request, requestParams));
4857
+ }
4858
+ }
4859
+ else if (type === 'future') {
4860
+ if (stop) {
4861
+ response = await this.privateDeliveryDeleteSettlePriceOrdersOrderId(this.extend(request, requestParams));
4862
+ }
4863
+ else {
4864
+ response = await this.privateDeliveryDeleteSettleOrdersOrderId(this.extend(request, requestParams));
4865
+ }
4866
+ }
4867
+ else if (type === 'option') {
4868
+ response = await this.privateOptionsDeleteOrdersOrderId(this.extend(request, requestParams));
4869
+ }
4870
+ else {
4871
+ throw new errors.NotSupported(this.id + ' cancelOrder() not support this market type');
4872
+ }
4747
4873
  //
4748
4874
  // spot
4749
4875
  //
@@ -4846,15 +4972,37 @@ class gate extends gate$1 {
4846
4972
  params = this.omit(params, 'stop');
4847
4973
  const [type, query] = this.handleMarketTypeAndParams('cancelAllOrders', market, params);
4848
4974
  const [request, requestParams] = (type === 'spot') ? this.multiOrderSpotPrepareRequest(market, stop, query) : this.prepareRequest(market, type, query);
4849
- const methodTail = stop ? 'PriceOrders' : 'Orders';
4850
- const method = this.getSupportedMapping(type, {
4851
- 'spot': 'privateSpotDelete' + methodTail,
4852
- 'margin': 'privateSpotDelete' + methodTail,
4853
- 'swap': 'privateFuturesDeleteSettle' + methodTail,
4854
- 'future': 'privateDeliveryDeleteSettle' + methodTail,
4855
- 'option': 'privateOptionsDeleteOrders',
4856
- });
4857
- const response = await this[method](this.extend(request, requestParams));
4975
+ let response = undefined;
4976
+ if (type === 'spot' || type === 'margin') {
4977
+ if (stop) {
4978
+ response = await this.privateSpotDeletePriceOrders(this.extend(request, requestParams));
4979
+ }
4980
+ else {
4981
+ response = await this.privateSpotDeleteOrders(this.extend(request, requestParams));
4982
+ }
4983
+ }
4984
+ else if (type === 'swap') {
4985
+ if (stop) {
4986
+ response = await this.privateFuturesDeleteSettlePriceOrders(this.extend(request, requestParams));
4987
+ }
4988
+ else {
4989
+ response = await this.privateFuturesDeleteSettleOrders(this.extend(request, requestParams));
4990
+ }
4991
+ }
4992
+ else if (type === 'future') {
4993
+ if (stop) {
4994
+ response = await this.privateDeliveryDeleteSettlePriceOrders(this.extend(request, requestParams));
4995
+ }
4996
+ else {
4997
+ response = await this.privateDeliveryDeleteSettleOrders(this.extend(request, requestParams));
4998
+ }
4999
+ }
5000
+ else if (type === 'option') {
5001
+ response = await this.privateOptionsDeleteOrders(this.extend(request, requestParams));
5002
+ }
5003
+ else {
5004
+ throw new errors.NotSupported(this.id + ' cancelAllOrders() not support this market type');
5005
+ }
4858
5006
  //
4859
5007
  // [
4860
5008
  // {
@@ -4984,10 +5132,6 @@ class gate extends gate$1 {
4984
5132
  }
4985
5133
  await this.loadMarkets();
4986
5134
  const market = this.market(symbol);
4987
- const method = this.getSupportedMapping(market['type'], {
4988
- 'swap': 'privateFuturesPostSettlePositionsContractLeverage',
4989
- 'future': 'privateDeliveryPostSettlePositionsContractLeverage',
4990
- });
4991
5135
  const [request, query] = this.prepareRequest(market, undefined, params);
4992
5136
  const defaultMarginMode = this.safeString2(this.options, 'marginMode', 'defaultMarginMode');
4993
5137
  const crossLeverageLimit = this.safeString(query, 'cross_leverage_limit');
@@ -5003,7 +5147,16 @@ class gate extends gate$1 {
5003
5147
  else {
5004
5148
  request['leverage'] = leverage.toString();
5005
5149
  }
5006
- const response = await this[method](this.extend(request, query));
5150
+ let response = undefined;
5151
+ if (market['swap']) {
5152
+ response = await this.privateFuturesPostSettlePositionsContractLeverage(this.extend(request, query));
5153
+ }
5154
+ else if (market['future']) {
5155
+ response = await this.privateDeliveryPostSettlePositionsContractLeverage(this.extend(request, query));
5156
+ }
5157
+ else {
5158
+ throw new errors.NotSupported(this.id + ' setLeverage() not support this market type');
5159
+ }
5007
5160
  //
5008
5161
  // {
5009
5162
  // "value": "0",
@@ -5164,10 +5317,10 @@ class gate extends gate$1 {
5164
5317
  [request, params] = this.prepareRequest(market, market['type'], params);
5165
5318
  const extendedRequest = this.extend(request, params);
5166
5319
  let response = undefined;
5167
- if (market['type'] === 'swap') {
5320
+ if (market['swap']) {
5168
5321
  response = await this.privateFuturesGetSettlePositionsContract(extendedRequest);
5169
5322
  }
5170
- else if (market['type'] === 'future') {
5323
+ else if (market['future']) {
5171
5324
  response = await this.privateDeliveryGetSettlePositionsContract(extendedRequest);
5172
5325
  }
5173
5326
  else if (market['type'] === 'option') {
@@ -5347,11 +5500,16 @@ class gate extends gate$1 {
5347
5500
  if (type !== 'future' && type !== 'swap') {
5348
5501
  throw new errors.BadRequest(this.id + ' fetchLeverageTiers only supports swap and future');
5349
5502
  }
5350
- const method = this.getSupportedMapping(type, {
5351
- 'swap': 'publicFuturesGetSettleContracts',
5352
- 'future': 'publicDeliveryGetSettleContracts',
5353
- });
5354
- const response = await this[method](this.extend(request, requestParams));
5503
+ let response = undefined;
5504
+ if (type === 'swap') {
5505
+ response = await this.publicFuturesGetSettleContracts(this.extend(request, requestParams));
5506
+ }
5507
+ else if (type === 'future') {
5508
+ response = await this.publicDeliveryGetSettleContracts(this.extend(request, requestParams));
5509
+ }
5510
+ else {
5511
+ throw new errors.NotSupported(this.id + ' fetchLeverageTiers() not support this market type');
5512
+ }
5355
5513
  //
5356
5514
  // Perpetual swap
5357
5515
  //
@@ -5857,11 +6015,16 @@ class gate extends gate$1 {
5857
6015
  const market = this.market(symbol);
5858
6016
  const [request, query] = this.prepareRequest(market, undefined, params);
5859
6017
  request['change'] = this.numberToString(amount);
5860
- const method = this.getSupportedMapping(market['type'], {
5861
- 'swap': 'privateFuturesPostSettlePositionsContractMargin',
5862
- 'future': 'privateDeliveryPostSettlePositionsContractMargin',
5863
- });
5864
- const response = await this[method](this.extend(request, query));
6018
+ let response = undefined;
6019
+ if (market['swap']) {
6020
+ response = await this.privateFuturesPostSettlePositionsContractMargin(this.extend(request, query));
6021
+ }
6022
+ else if (market['future']) {
6023
+ response = await this.privateDeliveryPostSettlePositionsContractMargin(this.extend(request, query));
6024
+ }
6025
+ else {
6026
+ throw new errors.NotSupported(this.id + ' modifyMarginHelper() not support this market type');
6027
+ }
5865
6028
  return this.parseMarginModification(response, market);
5866
6029
  }
5867
6030
  parseMarginModification(data, market = undefined) {
@@ -50,8 +50,8 @@ class binance extends binance$1 {
50
50
  },
51
51
  'api': {
52
52
  'ws': {
53
- 'spot': 'wss://stream.binance.com:9443/ws',
54
- 'margin': 'wss://stream.binance.com:9443/ws',
53
+ 'spot': 'wss://stream.binance.com/ws',
54
+ 'margin': 'wss://stream.binance.com/ws',
55
55
  'future': 'wss://fstream.binance.com/ws',
56
56
  'delivery': 'wss://dstream.binance.com/ws',
57
57
  'ws': 'wss://ws-api.binance.com:443/ws-api/v3',
@@ -1306,20 +1306,23 @@ class binance extends binance$1 {
1306
1306
  return;
1307
1307
  }
1308
1308
  let method = 'publicPutUserDataStream';
1309
+ const request = {};
1310
+ const symbol = this.safeString(params, 'symbol');
1311
+ const sendParams = this.omit(params, ['type', 'symbol']);
1309
1312
  if (type === 'future') {
1310
1313
  method = 'fapiPrivatePutListenKey';
1311
1314
  }
1312
1315
  else if (type === 'delivery') {
1313
1316
  method = 'dapiPrivatePutListenKey';
1314
1317
  }
1315
- else if (type === 'margin') {
1316
- method = 'sapiPutUserDataStream';
1318
+ else {
1319
+ request['listenKey'] = listenKey;
1320
+ if (type === 'margin') {
1321
+ request['symbol'] = symbol;
1322
+ method = 'sapiPutUserDataStream';
1323
+ }
1317
1324
  }
1318
- const request = {
1319
- 'listenKey': listenKey,
1320
- };
1321
1325
  const time = this.milliseconds();
1322
- const sendParams = this.omit(params, 'type');
1323
1326
  try {
1324
1327
  await this[method](this.extend(request, sendParams));
1325
1328
  }
@@ -2073,9 +2076,7 @@ class binance extends binance$1 {
2073
2076
  market = this.market(symbol);
2074
2077
  symbol = market['symbol'];
2075
2078
  messageHash += ':' + symbol;
2076
- params = this.extend(params, { 'type': market['type'], 'symbol': symbol }); // needed inside authenticate for isolated margin
2077
2079
  }
2078
- await this.authenticate(params);
2079
2080
  let type = undefined;
2080
2081
  [type, params] = this.handleMarketTypeAndParams('watchOrders', market, params);
2081
2082
  let subType = undefined;
@@ -2086,6 +2087,8 @@ class binance extends binance$1 {
2086
2087
  else if (this.isInverse(type, subType)) {
2087
2088
  type = 'delivery';
2088
2089
  }
2090
+ params = this.extend(params, { 'type': type, 'symbol': symbol }); // needed inside authenticate for isolated margin
2091
+ await this.authenticate(params);
2089
2092
  let urlType = type;
2090
2093
  if (type === 'margin') {
2091
2094
  urlType = 'spot'; // spot-margin shares the same stream as regular spot
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 { Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory, MarginMode, Greeks } from './src/base/types.js';
6
6
  import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
7
- declare const version = "4.1.68";
7
+ declare const version = "4.1.70";
8
8
  import ace from './src/ace.js';
9
9
  import alpaca from './src/alpaca.js';
10
10
  import ascendex from './src/ascendex.js';