ccxt 4.1.63 → 4.1.64

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/js/src/phemex.js CHANGED
@@ -989,11 +989,13 @@ export default class phemex extends Exchange {
989
989
  'symbol': market['id'],
990
990
  // 'id': 123456789, // optional request id
991
991
  };
992
- let method = 'v1GetMdOrderbook';
992
+ let response = undefined;
993
993
  if (market['linear'] && market['settle'] === 'USDT') {
994
- method = 'v2GetMdV2Orderbook';
994
+ response = await this.v2GetMdV2Orderbook(this.extend(request, params));
995
+ }
996
+ else {
997
+ response = await this.v1GetMdOrderbook(this.extend(request, params));
995
998
  }
996
- const response = await this[method](this.extend(request, params));
997
999
  //
998
1000
  // {
999
1001
  // "error": null,
@@ -1298,16 +1300,18 @@ export default class phemex extends Exchange {
1298
1300
  'symbol': market['id'],
1299
1301
  // 'id': 123456789, // optional request id
1300
1302
  };
1301
- let method = 'v1GetMdSpotTicker24hr';
1303
+ let response = undefined;
1302
1304
  if (market['swap']) {
1303
1305
  if (market['inverse'] || market['settle'] === 'USD') {
1304
- method = 'v1GetMdTicker24hr';
1306
+ response = await this.v1GetMdTicker24hr(this.extend(request, params));
1305
1307
  }
1306
1308
  else {
1307
- method = 'v2GetMdV2Ticker24hr';
1309
+ response = await this.v2GetMdV2Ticker24hr(this.extend(request, params));
1308
1310
  }
1309
1311
  }
1310
- const response = await this[method](this.extend(request, params));
1312
+ else {
1313
+ response = await this.v1GetMdSpotTicker24hr(this.extend(request, params));
1314
+ }
1311
1315
  //
1312
1316
  // spot
1313
1317
  //
@@ -1378,18 +1382,16 @@ export default class phemex extends Exchange {
1378
1382
  let subType = undefined;
1379
1383
  [subType, params] = this.handleSubTypeAndParams('fetchTickers', market, params);
1380
1384
  const query = this.omit(params, 'type');
1381
- let defaultMethod;
1385
+ let response = undefined;
1382
1386
  if (type === 'spot') {
1383
- defaultMethod = 'v1GetMdSpotTicker24hrAll';
1387
+ response = await this.v1GetMdSpotTicker24hrAll(query);
1384
1388
  }
1385
- else if (subType === 'inverse') {
1386
- defaultMethod = 'v1GetMdTicker24hrAll';
1389
+ else if (subType === 'inverse' || market['settle'] === 'USD') {
1390
+ response = await this.v1GetMdTicker24hrAll(query);
1387
1391
  }
1388
1392
  else {
1389
- defaultMethod = 'v2GetMdV2Ticker24hrAll';
1393
+ response = await this.v2GetMdV2Ticker24hrAll(query);
1390
1394
  }
1391
- const method = this.safeString(this.options, 'fetchTickersMethod', defaultMethod);
1392
- const response = await this[method](query);
1393
1395
  const result = this.safeValue(response, 'result', []);
1394
1396
  return this.parseTickers(result, symbols);
1395
1397
  }
@@ -1411,11 +1413,13 @@ export default class phemex extends Exchange {
1411
1413
  'symbol': market['id'],
1412
1414
  // 'id': 123456789, // optional request id
1413
1415
  };
1414
- let method = 'v1GetMdTrade';
1416
+ let response = undefined;
1415
1417
  if (market['linear'] && market['settle'] === 'USDT') {
1416
- method = 'v2GetMdV2Trade';
1418
+ response = await this.v2GetMdV2Trade(this.extend(request, params));
1419
+ }
1420
+ else {
1421
+ response = await this.v1GetMdTrade(this.extend(request, params));
1417
1422
  }
1418
- const response = await this[method](this.extend(request, params));
1419
1423
  //
1420
1424
  // {
1421
1425
  // "error": null,
@@ -1812,18 +1816,20 @@ export default class phemex extends Exchange {
1812
1816
  * @description query for balance and get the amount of funds available for trading or funds locked in orders
1813
1817
  * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#query-account-positions
1814
1818
  * @param {object} [params] extra parameters specific to the phemex api endpoint
1819
+ * @param {string} [params.type] spot or swap
1815
1820
  * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
1816
1821
  */
1817
1822
  await this.loadMarkets();
1818
1823
  let type = undefined;
1819
1824
  [type, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
1820
- let method = 'privateGetSpotWallets';
1825
+ const code = this.safeString(params, 'code');
1826
+ params = this.omit(params, ['type', 'code']);
1827
+ let response = undefined;
1821
1828
  const request = {};
1822
1829
  if ((type !== 'spot') && (type !== 'swap')) {
1823
1830
  throw new BadRequest(this.id + ' does not support ' + type + ' markets, only spot and swap');
1824
1831
  }
1825
1832
  if (type === 'swap') {
1826
- const code = this.safeString(params, 'code');
1827
1833
  let settle = undefined;
1828
1834
  [settle, params] = this.handleOptionAndParams(params, 'fetchBalance', 'settle');
1829
1835
  if (code !== undefined || settle !== undefined) {
@@ -1837,10 +1843,10 @@ export default class phemex extends Exchange {
1837
1843
  const currency = this.currency(coin);
1838
1844
  request['currency'] = currency['id'];
1839
1845
  if (currency['id'] === 'USDT') {
1840
- method = 'privateGetGAccountsAccountPositions';
1846
+ response = await this.privateGetGAccountsAccountPositions(this.extend(request, params));
1841
1847
  }
1842
1848
  else {
1843
- method = 'privateGetAccountsAccountPositions';
1849
+ response = await this.privateGetAccountsAccountPositions(this.extend(request, params));
1844
1850
  }
1845
1851
  }
1846
1852
  else {
@@ -1848,10 +1854,12 @@ export default class phemex extends Exchange {
1848
1854
  if (currency === undefined) {
1849
1855
  throw new ArgumentsRequired(this.id + ' fetchBalance() requires a code parameter or a currency or settle parameter for ' + type + ' type');
1850
1856
  }
1857
+ response = await this.privateGetSpotWallets(this.extend(request, params));
1851
1858
  }
1852
1859
  }
1853
- params = this.omit(params, ['type', 'code']);
1854
- const response = await this[method](this.extend(request, params));
1860
+ else {
1861
+ response = await this.privateGetSpotWallets(this.extend(request, params));
1862
+ }
1855
1863
  //
1856
1864
  // usdt
1857
1865
  // {
@@ -2378,7 +2386,7 @@ export default class phemex extends Exchange {
2378
2386
  request['clOrdID'] = clientOrderId;
2379
2387
  params = this.omit(params, ['clOrdID', 'clientOrderId']);
2380
2388
  }
2381
- const stopPrice = this.safeString2(params, 'stopPx', 'stopPrice');
2389
+ const stopPrice = this.safeStringN(params, ['stopPx', 'stopPrice', 'triggerPrice']);
2382
2390
  if (stopPrice !== undefined) {
2383
2391
  if (market['settle'] === 'USDT') {
2384
2392
  request['stopPxRp'] = this.priceToPrecision(symbol, stopPrice);
@@ -2387,7 +2395,7 @@ export default class phemex extends Exchange {
2387
2395
  request['stopPxEp'] = this.toEp(stopPrice, market);
2388
2396
  }
2389
2397
  }
2390
- params = this.omit(params, ['stopPx', 'stopPrice', 'stopLoss', 'takeProfit']);
2398
+ params = this.omit(params, ['stopPx', 'stopPrice', 'stopLoss', 'takeProfit', 'triggerPrice']);
2391
2399
  if (market['spot']) {
2392
2400
  let qtyType = this.safeValue(params, 'qtyType', 'ByBase');
2393
2401
  if ((type === 'Market') || (type === 'Stop') || (type === 'MarketIfTouched')) {
@@ -2523,15 +2531,17 @@ export default class phemex extends Exchange {
2523
2531
  }
2524
2532
  params = this.omit(params, 'stopLossPrice');
2525
2533
  }
2526
- let method = 'privatePostSpotOrders';
2534
+ params = this.omit(params, 'reduceOnly');
2535
+ let response = undefined;
2527
2536
  if (market['settle'] === 'USDT') {
2528
- method = 'privatePostGOrders';
2537
+ response = await this.privatePostGOrders(this.extend(request, params));
2529
2538
  }
2530
2539
  else if (market['contract']) {
2531
- method = 'privatePostOrders';
2540
+ response = await this.privatePostOrders(this.extend(request, params));
2541
+ }
2542
+ else {
2543
+ response = await this.privatePostSpotOrders(this.extend(request, params));
2532
2544
  }
2533
- params = this.omit(params, 'reduceOnly');
2534
- const response = await this[method](this.extend(request, params));
2535
2545
  //
2536
2546
  // spot
2537
2547
  //
@@ -2673,18 +2683,20 @@ export default class phemex extends Exchange {
2673
2683
  }
2674
2684
  }
2675
2685
  params = this.omit(params, ['stopPx', 'stopPrice']);
2676
- let method = 'privatePutSpotOrders';
2686
+ let response = undefined;
2677
2687
  if (isUSDTSettled) {
2678
- method = 'privatePutGOrdersReplace';
2679
2688
  const posSide = this.safeString(params, 'posSide');
2680
2689
  if (posSide === undefined) {
2681
2690
  request['posSide'] = 'Merged';
2682
2691
  }
2692
+ response = await this.privatePutGOrdersReplace(this.extend(request, params));
2683
2693
  }
2684
2694
  else if (market['swap']) {
2685
- method = 'privatePutOrdersReplace';
2695
+ response = await this.privatePutOrdersReplace(this.extend(request, params));
2696
+ }
2697
+ else {
2698
+ response = await this.privatePutSpotOrders(this.extend(request, params));
2686
2699
  }
2687
- const response = await this[method](this.extend(request, params));
2688
2700
  const data = this.safeValue(response, 'data', {});
2689
2701
  return this.parseOrder(data, market);
2690
2702
  }
@@ -2716,18 +2728,20 @@ export default class phemex extends Exchange {
2716
2728
  else {
2717
2729
  request['orderID'] = id;
2718
2730
  }
2719
- let method = 'privateDeleteSpotOrders';
2731
+ let response = undefined;
2720
2732
  if (market['settle'] === 'USDT') {
2721
- method = 'privateDeleteGOrdersCancel';
2722
2733
  const posSide = this.safeString(params, 'posSide');
2723
2734
  if (posSide === undefined) {
2724
2735
  request['posSide'] = 'Merged';
2725
2736
  }
2737
+ response = await this.privateDeleteGOrdersCancel(this.extend(request, params));
2726
2738
  }
2727
2739
  else if (market['swap']) {
2728
- method = 'privateDeleteOrdersCancel';
2740
+ response = await this.privateDeleteOrdersCancel(this.extend(request, params));
2741
+ }
2742
+ else {
2743
+ response = await this.privateDeleteSpotOrders(this.extend(request, params));
2729
2744
  }
2730
- const response = await this[method](this.extend(request, params));
2731
2745
  const data = this.safeValue(response, 'data', {});
2732
2746
  return this.parseOrder(data, market);
2733
2747
  }
@@ -2745,21 +2759,23 @@ export default class phemex extends Exchange {
2745
2759
  throw new ArgumentsRequired(this.id + ' cancelAllOrders() requires a symbol argument');
2746
2760
  }
2747
2761
  await this.loadMarkets();
2762
+ const market = this.market(symbol);
2748
2763
  const request = {
2749
- // 'symbol': market['id'],
2750
- // 'untriggerred': false, // false to cancel non-conditional orders, true to cancel conditional orders
2751
- // 'text': 'up to 40 characters max',
2764
+ 'symbol': market['id'],
2765
+ // 'untriggerred': false, // false to cancel non-conditional orders, true to cancel conditional orders
2766
+ // 'text': 'up to 40 characters max',
2752
2767
  };
2753
- const market = this.market(symbol);
2754
- let method = 'privateDeleteSpotOrdersAll';
2768
+ let response = undefined;
2755
2769
  if (market['settle'] === 'USDT') {
2756
- method = 'privateDeleteGOrdersAll';
2770
+ response = await this.privateDeleteGOrdersAll(this.extend(request, params));
2757
2771
  }
2758
2772
  else if (market['swap']) {
2759
- method = 'privateDeleteOrdersAll';
2773
+ response = await this.privateDeleteOrdersAll(this.extend(request, params));
2760
2774
  }
2761
- request['symbol'] = market['id'];
2762
- return await this[method](this.extend(request, params));
2775
+ else {
2776
+ response = await this.privateDeleteSpotOrdersAll(this.extend(request, params));
2777
+ }
2778
+ return response;
2763
2779
  }
2764
2780
  async fetchOrder(id, symbol = undefined, params = {}) {
2765
2781
  /**
@@ -2778,7 +2794,6 @@ export default class phemex extends Exchange {
2778
2794
  if (market['settle'] === 'USDT') {
2779
2795
  throw new NotSupported(this.id + 'fetchOrder() is not supported yet for USDT settled swap markets'); // https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#query-user-order-by-orderid-or-query-user-order-by-client-order-id
2780
2796
  }
2781
- const method = market['spot'] ? 'privateGetSpotOrdersActive' : 'privateGetExchangeOrder';
2782
2797
  const request = {
2783
2798
  'symbol': market['id'],
2784
2799
  };
@@ -2790,7 +2805,13 @@ export default class phemex extends Exchange {
2790
2805
  else {
2791
2806
  request['orderID'] = id;
2792
2807
  }
2793
- const response = await this[method](this.extend(request, params));
2808
+ let response = undefined;
2809
+ if (market['spot']) {
2810
+ response = await this.privateGetSpotOrdersActive(this.extend(request, params));
2811
+ }
2812
+ else {
2813
+ response = await this.privateGetExchangeOrder(this.extend(request, params));
2814
+ }
2794
2815
  const data = this.safeValue(response, 'data', {});
2795
2816
  let order = data;
2796
2817
  if (Array.isArray(data)) {
@@ -2827,21 +2848,23 @@ export default class phemex extends Exchange {
2827
2848
  const request = {
2828
2849
  'symbol': market['id'],
2829
2850
  };
2830
- let method = 'privateGetSpotOrders';
2831
- if (market['settle'] === 'USDT') {
2832
- request['currency'] = market['settle'];
2833
- method = 'privateGetExchangeOrderV2OrderList';
2834
- }
2835
- else if (market['swap']) {
2836
- method = 'privateGetExchangeOrderList';
2837
- }
2838
2851
  if (since !== undefined) {
2839
2852
  request['start'] = since;
2840
2853
  }
2841
2854
  if (limit !== undefined) {
2842
2855
  request['limit'] = limit;
2843
2856
  }
2844
- const response = await this[method](this.extend(request, params));
2857
+ let response = undefined;
2858
+ if (market['settle'] === 'USDT') {
2859
+ request['currency'] = market['settle'];
2860
+ response = await this.privateGetExchangeOrderV2OrderList(this.extend(request, params));
2861
+ }
2862
+ else if (market['swap']) {
2863
+ response = await this.privateGetExchangeOrderList(this.extend(request, params));
2864
+ }
2865
+ else {
2866
+ response = await this.privateGetSpotOrders(this.extend(request, params));
2867
+ }
2845
2868
  const data = this.safeValue(response, 'data', {});
2846
2869
  const rows = this.safeValue(data, 'rows', data);
2847
2870
  return this.parseOrders(rows, market, since, limit);
@@ -2864,19 +2887,20 @@ export default class phemex extends Exchange {
2864
2887
  }
2865
2888
  await this.loadMarkets();
2866
2889
  const market = this.market(symbol);
2867
- let method = 'privateGetSpotOrders';
2868
- if (market['settle'] === 'USDT') {
2869
- method = 'privateGetGOrdersActiveList';
2870
- }
2871
- else if (market['swap']) {
2872
- method = 'privateGetOrdersActiveList';
2873
- }
2874
2890
  const request = {
2875
2891
  'symbol': market['id'],
2876
2892
  };
2877
2893
  let response = undefined;
2878
2894
  try {
2879
- response = await this[method](this.extend(request, params));
2895
+ if (market['settle'] === 'USDT') {
2896
+ response = await this.privateGetGOrdersActiveList(this.extend(request, params));
2897
+ }
2898
+ else if (market['swap']) {
2899
+ response = await this.privateGetOrdersActiveList(this.extend(request, params));
2900
+ }
2901
+ else {
2902
+ response = await this.privateGetSpotOrders(this.extend(request, params));
2903
+ }
2880
2904
  }
2881
2905
  catch (e) {
2882
2906
  if (e instanceof OrderNotFound) {
@@ -2913,21 +2937,23 @@ export default class phemex extends Exchange {
2913
2937
  const request = {
2914
2938
  'symbol': market['id'],
2915
2939
  };
2916
- let method = 'privateGetExchangeSpotOrder';
2917
- if (market['settle'] === 'USDT') {
2918
- request['currency'] = market['settle'];
2919
- method = 'privateGetExchangeOrderV2OrderList';
2920
- }
2921
- else if (market['swap']) {
2922
- method = 'privateGetExchangeOrderList';
2923
- }
2924
2940
  if (since !== undefined) {
2925
2941
  request['start'] = since;
2926
2942
  }
2927
2943
  if (limit !== undefined) {
2928
2944
  request['limit'] = limit;
2929
2945
  }
2930
- const response = await this[method](this.extend(request, params));
2946
+ let response = undefined;
2947
+ if (market['settle'] === 'USDT') {
2948
+ request['currency'] = market['settle'];
2949
+ response = await this.privateGetExchangeOrderV2OrderList(this.extend(request, params));
2950
+ }
2951
+ else if (market['swap']) {
2952
+ response = await this.privateGetExchangeOrderList(this.extend(request, params));
2953
+ }
2954
+ else {
2955
+ response = await this.privateGetExchangeSpotOrder(this.extend(request, params));
2956
+ }
2931
2957
  //
2932
2958
  // spot
2933
2959
  //
@@ -2991,13 +3017,6 @@ export default class phemex extends Exchange {
2991
3017
  }
2992
3018
  await this.loadMarkets();
2993
3019
  const market = this.market(symbol);
2994
- let method = 'privateGetExchangeSpotOrderTrades';
2995
- if (market['swap']) {
2996
- method = 'privateGetExchangeOrderTrade';
2997
- if (market['settle'] === 'USDT') {
2998
- method = 'privateGetExchangeOrderV2TradingList';
2999
- }
3000
- }
3001
3020
  const request = {};
3002
3021
  if (limit !== undefined) {
3003
3022
  limit = Math.min(200, limit);
@@ -3019,7 +3038,19 @@ export default class phemex extends Exchange {
3019
3038
  if (market['swap'] && (limit !== undefined)) {
3020
3039
  request['limit'] = limit;
3021
3040
  }
3022
- const response = await this[method](this.extend(request, params));
3041
+ const isUSDTSettled = market['settle'] === 'USDT';
3042
+ let response = undefined;
3043
+ if (market['swap']) {
3044
+ if (isUSDTSettled) {
3045
+ response = await this.privateGetExchangeOrderV2TradingList(this.extend(request, params));
3046
+ }
3047
+ else {
3048
+ response = await this.privateGetExchangeOrderTrade(this.extend(request, params));
3049
+ }
3050
+ }
3051
+ else {
3052
+ response = await this.privateGetExchangeSpotOrderTrades(this.extend(request, params));
3053
+ }
3023
3054
  //
3024
3055
  // spot
3025
3056
  //
@@ -3124,10 +3155,13 @@ export default class phemex extends Exchange {
3124
3155
  // }
3125
3156
  // }
3126
3157
  //
3127
- const data = this.safeValue(response, 'data', {});
3128
- if (method !== 'privateGetExchangeOrderV2TradingList') {
3129
- const rows = this.safeValue(data, 'rows', []);
3130
- return this.parseTrades(rows, market, since, limit);
3158
+ let data = undefined;
3159
+ if (isUSDTSettled) {
3160
+ data = this.safeValue(response, 'data', []);
3161
+ }
3162
+ else {
3163
+ data = this.safeValue(response, 'data', {});
3164
+ data = this.safeValue(data, 'rows', []);
3131
3165
  }
3132
3166
  return this.parseTrades(data, market, since, limit);
3133
3167
  }
@@ -3359,7 +3393,6 @@ export default class phemex extends Exchange {
3359
3393
  await this.loadMarkets();
3360
3394
  symbols = this.marketSymbols(symbols);
3361
3395
  let subType = undefined;
3362
- let method = 'privateGetAccountsAccountPositions';
3363
3396
  let code = this.safeString(params, 'currency');
3364
3397
  let settle = undefined;
3365
3398
  let market = undefined;
@@ -3373,9 +3406,9 @@ export default class phemex extends Exchange {
3373
3406
  [settle, params] = this.handleOptionAndParams(params, 'fetchPositions', 'settle', 'USD');
3374
3407
  }
3375
3408
  [subType, params] = this.handleSubTypeAndParams('fetchPositions', market, params);
3376
- if (settle === 'USDT') {
3409
+ const isUSDTSettled = settle === 'USDT';
3410
+ if (isUSDTSettled) {
3377
3411
  code = 'USDT';
3378
- method = 'privateGetGAccountsAccountPositions';
3379
3412
  }
3380
3413
  else if (code === undefined) {
3381
3414
  code = (subType === 'linear') ? 'USD' : 'BTC';
@@ -3387,7 +3420,13 @@ export default class phemex extends Exchange {
3387
3420
  const request = {
3388
3421
  'currency': currency['id'],
3389
3422
  };
3390
- const response = await this[method](this.extend(request, params));
3423
+ let response = undefined;
3424
+ if (isUSDTSettled) {
3425
+ response = await this.privateGetGAccountsAccountPositions(this.extend(request, params));
3426
+ }
3427
+ else {
3428
+ response = await this.privateGetAccountsAccountPositions(this.extend(request, params));
3429
+ }
3391
3430
  //
3392
3431
  // {
3393
3432
  // "code":0,"msg":"",
@@ -406,7 +406,7 @@ export default class krakenfutures extends krakenfuturesRest {
406
406
  * @param {int} [limit] not used by krakenfutures watchBalance
407
407
  * @param {object} [params] extra parameters specific to the krakenfutures api endpoint
408
408
  * @param {string} [params.account] can be either 'futures' or 'flex_futures'
409
- * @returns {object[]} a list of [balance structures]{@link https://docs.ccxt.com/#/?id=balance-structure}
409
+ * @returns {object} a object of wallet types each with a balance structure {@link https://docs.ccxt.com/#/?id=balance-structure}
410
410
  */
411
411
  await this.loadMarkets();
412
412
  const name = 'balances';
@@ -1271,6 +1271,7 @@ export default class krakenfutures extends krakenfuturesRest {
1271
1271
  holdingResult[code] = newAccount;
1272
1272
  }
1273
1273
  this.balance['cash'] = holdingResult;
1274
+ this.balance['cash'] = this.safeBalance(this.balance['cash']);
1274
1275
  client.resolve(holdingResult, messageHash);
1275
1276
  }
1276
1277
  if (futures !== undefined) {
@@ -1294,6 +1295,7 @@ export default class krakenfutures extends krakenfuturesRest {
1294
1295
  futuresResult[symbol][code] = newAccount;
1295
1296
  }
1296
1297
  this.balance['margin'] = futuresResult;
1298
+ this.balance['margin'] = this.safeBalance(this.balance['margin']);
1297
1299
  client.resolve(this.balance['margin'], messageHash + 'futures');
1298
1300
  }
1299
1301
  if (flexFutures !== undefined) {
@@ -1315,6 +1317,7 @@ export default class krakenfutures extends krakenfuturesRest {
1315
1317
  flexFuturesResult[code] = newAccount;
1316
1318
  }
1317
1319
  this.balance['flex'] = flexFuturesResult;
1320
+ this.balance['flex'] = this.safeBalance(this.balance['flex']);
1318
1321
  client.resolve(this.balance['flex'], messageHash + 'flex_futures');
1319
1322
  }
1320
1323
  client.resolve(this.balance, messageHash);
@@ -15,7 +15,7 @@ export declare class BigInteger {
15
15
  protected intValue(): number;
16
16
  protected byteValue(): number;
17
17
  protected shortValue(): number;
18
- protected signum(): 1 | 0 | -1;
18
+ protected signum(): 0 | 1 | -1;
19
19
  toByteArray(): number[];
20
20
  protected equals(a: BigInteger): boolean;
21
21
  protected min(a: BigInteger): BigInteger;
@@ -1166,9 +1166,7 @@ export default class tokocrypto extends Exchange {
1166
1166
  * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
1167
1167
  */
1168
1168
  await this.loadMarkets();
1169
- const defaultMethod = 'binanceGetTicker24hr';
1170
- const method = this.safeString(this.options, 'fetchTickersMethod', defaultMethod);
1171
- const response = await this[method](params);
1169
+ const response = await this.binanceGetTicker24hr(params);
1172
1170
  return this.parseTickers(response, symbols);
1173
1171
  }
1174
1172
  getMarketIdByType(market) {
package/js/src/wazirx.js CHANGED
@@ -472,7 +472,13 @@ export default class wazirx extends Exchange {
472
472
  request['limit'] = Math.min(limit, 1000); // Default 500; max 1000.
473
473
  }
474
474
  const method = this.safeString(this.options, 'fetchTradesMethod', 'publicGetTrades');
475
- const response = await this[method](this.extend(request, params));
475
+ let response = undefined;
476
+ if (method === 'privateGetHistoricalTrades') {
477
+ response = await this.privateGetHistoricalTrades(this.extend(request, params));
478
+ }
479
+ else {
480
+ response = await this.publicGetTrades(this.extend(request, params));
481
+ }
476
482
  // [
477
483
  // {
478
484
  // "id":322307791,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.1.63",
3
+ "version": "4.1.64",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",