ccxt 4.2.84 → 4.2.86

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 (168) hide show
  1. package/README.md +5 -5
  2. package/dist/ccxt.browser.js +1226 -1104
  3. package/dist/ccxt.browser.min.js +4 -4
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/ace.js +5 -5
  6. package/dist/cjs/src/ascendex.js +8 -8
  7. package/dist/cjs/src/base/Exchange.js +76 -14
  8. package/dist/cjs/src/bigone.js +12 -12
  9. package/dist/cjs/src/binance.js +23 -35
  10. package/dist/cjs/src/bingx.js +47 -28
  11. package/dist/cjs/src/bit2c.js +1 -1
  12. package/dist/cjs/src/bitbank.js +27 -31
  13. package/dist/cjs/src/bitbns.js +5 -5
  14. package/dist/cjs/src/bitfinex.js +1 -1
  15. package/dist/cjs/src/bitfinex2.js +1 -1
  16. package/dist/cjs/src/bitget.js +30 -24
  17. package/dist/cjs/src/bithumb.js +5 -5
  18. package/dist/cjs/src/bitmart.js +16 -16
  19. package/dist/cjs/src/bitopro.js +1 -1
  20. package/dist/cjs/src/bitrue.js +4 -4
  21. package/dist/cjs/src/bitso.js +5 -5
  22. package/dist/cjs/src/bitstamp.js +1 -1
  23. package/dist/cjs/src/bitteam.js +8 -8
  24. package/dist/cjs/src/bl3p.js +1 -1
  25. package/dist/cjs/src/btcturk.js +6 -6
  26. package/dist/cjs/src/bybit.js +31 -95
  27. package/dist/cjs/src/coincheck.js +4 -4
  28. package/dist/cjs/src/coinex.js +408 -262
  29. package/dist/cjs/src/coinlist.js +7 -7
  30. package/dist/cjs/src/coinmate.js +4 -4
  31. package/dist/cjs/src/coinmetro.js +3 -3
  32. package/dist/cjs/src/coinone.js +5 -5
  33. package/dist/cjs/src/coinspot.js +2 -2
  34. package/dist/cjs/src/cryptocom.js +17 -17
  35. package/dist/cjs/src/currencycom.js +1 -1
  36. package/dist/cjs/src/delta.js +0 -8
  37. package/dist/cjs/src/deribit.js +16 -92
  38. package/dist/cjs/src/digifinex.js +8 -8
  39. package/dist/cjs/src/exmo.js +8 -8
  40. package/dist/cjs/src/gate.js +0 -8
  41. package/dist/cjs/src/hitbtc.js +5 -4
  42. package/dist/cjs/src/hollaex.js +7 -7
  43. package/dist/cjs/src/htx.js +7 -7
  44. package/dist/cjs/src/huobijp.js +3 -3
  45. package/dist/cjs/src/idex.js +12 -13
  46. package/dist/cjs/src/independentreserve.js +2 -2
  47. package/dist/cjs/src/indodax.js +2 -2
  48. package/dist/cjs/src/kraken.js +8 -8
  49. package/dist/cjs/src/krakenfutures.js +6 -6
  50. package/dist/cjs/src/kucoin.js +5 -1
  51. package/dist/cjs/src/kucoinfutures.js +8 -8
  52. package/dist/cjs/src/kuna.js +16 -16
  53. package/dist/cjs/src/latoken.js +2 -2
  54. package/dist/cjs/src/lbank.js +10 -10
  55. package/dist/cjs/src/luno.js +4 -4
  56. package/dist/cjs/src/mercado.js +5 -5
  57. package/dist/cjs/src/mexc.js +6 -6
  58. package/dist/cjs/src/ndax.js +1 -1
  59. package/dist/cjs/src/novadax.js +9 -9
  60. package/dist/cjs/src/oceanex.js +7 -7
  61. package/dist/cjs/src/okcoin.js +16 -14
  62. package/dist/cjs/src/okx.js +23 -31
  63. package/dist/cjs/src/onetrading.js +4 -4
  64. package/dist/cjs/src/p2b.js +7 -7
  65. package/dist/cjs/src/phemex.js +12 -12
  66. package/dist/cjs/src/poloniexfutures.js +5 -5
  67. package/dist/cjs/src/pro/binance.js +167 -121
  68. package/dist/cjs/src/pro/bitget.js +1 -0
  69. package/dist/cjs/src/pro/kucoin.js +6 -7
  70. package/dist/cjs/src/pro/okx.js +19 -2
  71. package/dist/cjs/src/probit.js +11 -11
  72. package/dist/cjs/src/timex.js +7 -7
  73. package/dist/cjs/src/tokocrypto.js +9 -9
  74. package/dist/cjs/src/wavesexchange.js +3 -3
  75. package/dist/cjs/src/whitebit.js +5 -5
  76. package/dist/cjs/src/woo.js +1 -1
  77. package/dist/cjs/src/zaif.js +1 -1
  78. package/dist/cjs/src/zonda.js +7 -7
  79. package/examples/js/cli.js +0 -1
  80. package/examples/ts/cli.ts +0 -1
  81. package/js/ccxt.d.ts +1 -1
  82. package/js/ccxt.js +1 -1
  83. package/js/src/abstract/coinex.d.ts +232 -123
  84. package/js/src/ace.js +5 -5
  85. package/js/src/ascendex.js +8 -8
  86. package/js/src/base/Exchange.d.ts +13 -12
  87. package/js/src/base/Exchange.js +76 -14
  88. package/js/src/bigone.js +12 -12
  89. package/js/src/binance.d.ts +0 -1
  90. package/js/src/binance.js +23 -35
  91. package/js/src/bingx.js +47 -28
  92. package/js/src/bit2c.js +1 -1
  93. package/js/src/bitbank.js +27 -31
  94. package/js/src/bitbns.js +5 -5
  95. package/js/src/bitfinex.js +1 -1
  96. package/js/src/bitfinex2.js +1 -1
  97. package/js/src/bitget.js +30 -24
  98. package/js/src/bithumb.js +5 -5
  99. package/js/src/bitmart.js +16 -16
  100. package/js/src/bitopro.js +1 -1
  101. package/js/src/bitrue.js +4 -4
  102. package/js/src/bitso.js +5 -5
  103. package/js/src/bitstamp.js +1 -1
  104. package/js/src/bitteam.js +8 -8
  105. package/js/src/bl3p.js +1 -1
  106. package/js/src/btcturk.js +6 -6
  107. package/js/src/bybit.d.ts +0 -3
  108. package/js/src/bybit.js +31 -95
  109. package/js/src/coincheck.js +4 -4
  110. package/js/src/coinex.d.ts +1 -1
  111. package/js/src/coinex.js +408 -262
  112. package/js/src/coinlist.js +7 -7
  113. package/js/src/coinmate.js +4 -4
  114. package/js/src/coinmetro.js +3 -3
  115. package/js/src/coinone.js +5 -5
  116. package/js/src/coinspot.js +2 -2
  117. package/js/src/cryptocom.js +17 -17
  118. package/js/src/currencycom.js +1 -1
  119. package/js/src/delta.d.ts +0 -1
  120. package/js/src/delta.js +0 -8
  121. package/js/src/deribit.d.ts +0 -3
  122. package/js/src/deribit.js +16 -92
  123. package/js/src/digifinex.js +8 -8
  124. package/js/src/exmo.js +8 -8
  125. package/js/src/gate.d.ts +0 -1
  126. package/js/src/gate.js +0 -8
  127. package/js/src/hitbtc.js +5 -4
  128. package/js/src/hollaex.js +7 -7
  129. package/js/src/htx.js +7 -7
  130. package/js/src/huobijp.js +3 -3
  131. package/js/src/idex.js +12 -13
  132. package/js/src/independentreserve.js +2 -2
  133. package/js/src/indodax.js +2 -2
  134. package/js/src/kraken.js +8 -8
  135. package/js/src/krakenfutures.js +6 -6
  136. package/js/src/kucoin.js +5 -1
  137. package/js/src/kucoinfutures.js +8 -8
  138. package/js/src/kuna.js +16 -16
  139. package/js/src/latoken.js +2 -2
  140. package/js/src/lbank.js +10 -10
  141. package/js/src/luno.js +4 -4
  142. package/js/src/mercado.js +5 -5
  143. package/js/src/mexc.js +6 -6
  144. package/js/src/ndax.js +1 -1
  145. package/js/src/novadax.js +9 -9
  146. package/js/src/oceanex.js +7 -7
  147. package/js/src/okcoin.js +16 -14
  148. package/js/src/okx.d.ts +0 -1
  149. package/js/src/okx.js +23 -31
  150. package/js/src/onetrading.js +4 -4
  151. package/js/src/p2b.js +7 -7
  152. package/js/src/phemex.js +12 -12
  153. package/js/src/poloniexfutures.js +5 -5
  154. package/js/src/pro/binance.d.ts +5 -1
  155. package/js/src/pro/binance.js +168 -122
  156. package/js/src/pro/bitget.js +1 -0
  157. package/js/src/pro/kucoin.js +6 -7
  158. package/js/src/pro/okx.js +19 -2
  159. package/js/src/probit.js +11 -11
  160. package/js/src/timex.js +7 -7
  161. package/js/src/tokocrypto.js +9 -9
  162. package/js/src/wavesexchange.js +3 -3
  163. package/js/src/whitebit.js +5 -5
  164. package/js/src/woo.js +1 -1
  165. package/js/src/zaif.js +1 -1
  166. package/js/src/zonda.js +7 -7
  167. package/package.json +1 -1
  168. package/skip-tests.json +4 -0
package/js/src/okx.js CHANGED
@@ -1120,14 +1120,6 @@ export default class okx extends Exchange {
1120
1120
  const exchangeTypes = this.safeValue(this.options, 'exchangeType', {});
1121
1121
  return this.safeString(exchangeTypes, type, type);
1122
1122
  }
1123
- convertExpireDate(date) {
1124
- // parse YYMMDD to timestamp
1125
- const year = date.slice(0, 2);
1126
- const month = date.slice(2, 4);
1127
- const day = date.slice(4, 6);
1128
- const reconstructedDate = '20' + year + '-' + month + '-' + day + 'T00:00:00Z';
1129
- return reconstructedDate;
1130
- }
1131
1123
  createExpiredOptionMarket(symbol) {
1132
1124
  // support expired option contracts
1133
1125
  const quote = 'USD';
@@ -1857,7 +1849,7 @@ export default class okx extends Exchange {
1857
1849
  // }
1858
1850
  //
1859
1851
  const data = this.safeValue(response, 'data', []);
1860
- const first = this.safeValue(data, 0, {});
1852
+ const first = this.safeDict(data, 0, {});
1861
1853
  return this.parseTicker(first, market);
1862
1854
  }
1863
1855
  async fetchTickers(symbols = undefined, params = {}) {
@@ -2086,7 +2078,7 @@ export default class okx extends Exchange {
2086
2078
  // "msg": ""
2087
2079
  // }
2088
2080
  //
2089
- const data = this.safeValue(response, 'data', []);
2081
+ const data = this.safeList(response, 'data', []);
2090
2082
  return this.parseTrades(data, market, since, limit);
2091
2083
  }
2092
2084
  parseOHLCV(ohlcv, market = undefined) {
@@ -2219,7 +2211,7 @@ export default class okx extends Exchange {
2219
2211
  // ]
2220
2212
  // }
2221
2213
  //
2222
- const data = this.safeValue(response, 'data', []);
2214
+ const data = this.safeList(response, 'data', []);
2223
2215
  return this.parseOHLCVs(data, market, timeframe, since, limit);
2224
2216
  }
2225
2217
  async fetchFundingRateHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -2955,7 +2947,7 @@ export default class okx extends Exchange {
2955
2947
  // "msg": "",
2956
2948
  // "outTime": "1697979038586493"
2957
2949
  // }
2958
- const data = this.safeValue(response, 'data', []);
2950
+ const data = this.safeList(response, 'data', []);
2959
2951
  return this.parseOrders(data);
2960
2952
  }
2961
2953
  editOrderRequest(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
@@ -3164,7 +3156,7 @@ export default class okx extends Exchange {
3164
3156
  const response = await this.privatePostTradeCancelOrder(this.extend(request, query));
3165
3157
  // {"code":"0","data":[{"clOrdId":"","ordId":"317251910906576896","sCode":"0","sMsg":""}],"msg":""}
3166
3158
  const data = this.safeValue(response, 'data', []);
3167
- const order = this.safeValue(data, 0);
3159
+ const order = this.safeDict(data, 0);
3168
3160
  return this.parseOrder(order, market);
3169
3161
  }
3170
3162
  parseIds(ids) {
@@ -3282,7 +3274,7 @@ export default class okx extends Exchange {
3282
3274
  // "msg": ""
3283
3275
  // }
3284
3276
  //
3285
- const ordersData = this.safeValue(response, 'data', []);
3277
+ const ordersData = this.safeList(response, 'data', []);
3286
3278
  return this.parseOrders(ordersData, market, undefined, undefined, params);
3287
3279
  }
3288
3280
  parseOrderStatus(status) {
@@ -3656,7 +3648,7 @@ export default class okx extends Exchange {
3656
3648
  // }
3657
3649
  //
3658
3650
  const data = this.safeValue(response, 'data', []);
3659
- const order = this.safeValue(data, 0);
3651
+ const order = this.safeDict(data, 0);
3660
3652
  return this.parseOrder(order, market);
3661
3653
  }
3662
3654
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -3820,7 +3812,7 @@ export default class okx extends Exchange {
3820
3812
  // "msg": ""
3821
3813
  // }
3822
3814
  //
3823
- const data = this.safeValue(response, 'data', []);
3815
+ const data = this.safeList(response, 'data', []);
3824
3816
  return this.parseOrders(data, market, since, limit);
3825
3817
  }
3826
3818
  async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -4007,7 +3999,7 @@ export default class okx extends Exchange {
4007
3999
  // "msg": ""
4008
4000
  // }
4009
4001
  //
4010
- const data = this.safeValue(response, 'data', []);
4002
+ const data = this.safeList(response, 'data', []);
4011
4003
  return this.parseOrders(data, market, since, limit);
4012
4004
  }
4013
4005
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -4196,7 +4188,7 @@ export default class okx extends Exchange {
4196
4188
  // "msg": ""
4197
4189
  // }
4198
4190
  //
4199
- const data = this.safeValue(response, 'data', []);
4191
+ const data = this.safeList(response, 'data', []);
4200
4192
  return this.parseOrders(data, market, since, limit);
4201
4193
  }
4202
4194
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -4268,7 +4260,7 @@ export default class okx extends Exchange {
4268
4260
  // "msg": ""
4269
4261
  // }
4270
4262
  //
4271
- const data = this.safeValue(response, 'data', []);
4263
+ const data = this.safeList(response, 'data', []);
4272
4264
  return this.parseTrades(data, market, since, limit, query);
4273
4265
  }
4274
4266
  async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -4751,7 +4743,7 @@ export default class okx extends Exchange {
4751
4743
  // }
4752
4744
  //
4753
4745
  const data = this.safeValue(response, 'data', []);
4754
- const transaction = this.safeValue(data, 0);
4746
+ const transaction = this.safeDict(data, 0);
4755
4747
  return this.parseTransaction(transaction, currency);
4756
4748
  }
4757
4749
  async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -4832,7 +4824,7 @@ export default class okx extends Exchange {
4832
4824
  // ]
4833
4825
  // }
4834
4826
  //
4835
- const data = this.safeValue(response, 'data', []);
4827
+ const data = this.safeList(response, 'data', []);
4836
4828
  return this.parseTransactions(data, currency, since, limit, params);
4837
4829
  }
4838
4830
  async fetchDeposit(id, code = undefined, params = {}) {
@@ -4857,7 +4849,7 @@ export default class okx extends Exchange {
4857
4849
  }
4858
4850
  const response = await this.privateGetAssetDepositHistory(this.extend(request, params));
4859
4851
  const data = this.safeValue(response, 'data');
4860
- const deposit = this.safeValue(data, 0, {});
4852
+ const deposit = this.safeDict(data, 0, {});
4861
4853
  return this.parseTransaction(deposit, currency);
4862
4854
  }
4863
4855
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -4930,7 +4922,7 @@ export default class okx extends Exchange {
4930
4922
  // ]
4931
4923
  // }
4932
4924
  //
4933
- const data = this.safeValue(response, 'data', []);
4925
+ const data = this.safeList(response, 'data', []);
4934
4926
  return this.parseTransactions(data, currency, since, limit, params);
4935
4927
  }
4936
4928
  async fetchWithdrawal(id, code = undefined, params = {}) {
@@ -4976,7 +4968,7 @@ export default class okx extends Exchange {
4976
4968
  // }
4977
4969
  //
4978
4970
  const data = this.safeValue(response, 'data');
4979
- const withdrawal = this.safeValue(data, 0, {});
4971
+ const withdrawal = this.safeDict(data, 0, {});
4980
4972
  return this.parseTransaction(withdrawal);
4981
4973
  }
4982
4974
  parseTransactionStatus(status) {
@@ -5605,7 +5597,7 @@ export default class okx extends Exchange {
5605
5597
  // }
5606
5598
  //
5607
5599
  const data = this.safeValue(response, 'data', []);
5608
- const rawTransfer = this.safeValue(data, 0, {});
5600
+ const rawTransfer = this.safeDict(data, 0, {});
5609
5601
  return this.parseTransfer(rawTransfer, currency);
5610
5602
  }
5611
5603
  parseTransfer(transfer, currency = undefined) {
@@ -5719,7 +5711,7 @@ export default class okx extends Exchange {
5719
5711
  // }
5720
5712
  //
5721
5713
  const data = this.safeValue(response, 'data', []);
5722
- const transfer = this.safeValue(data, 0);
5714
+ const transfer = this.safeDict(data, 0);
5723
5715
  return this.parseTransfer(transfer);
5724
5716
  }
5725
5717
  async fetchTransfers(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -5782,7 +5774,7 @@ export default class okx extends Exchange {
5782
5774
  // "msg": ""
5783
5775
  // }
5784
5776
  //
5785
- const transfers = this.safeValue(response, 'data', []);
5777
+ const transfers = this.safeList(response, 'data', []);
5786
5778
  return this.parseTransfers(transfers, currency, since, limit, params);
5787
5779
  }
5788
5780
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
@@ -6842,7 +6834,7 @@ export default class okx extends Exchange {
6842
6834
  // "msg": ""
6843
6835
  // }
6844
6836
  //
6845
- const data = this.safeValue(response, 'data', []);
6837
+ const data = this.safeList(response, 'data', []);
6846
6838
  return this.parseOpenInterest(data[0], market);
6847
6839
  }
6848
6840
  async fetchOpenInterestHistory(symbol, timeframe = '1d', since = undefined, limit = undefined, params = {}) {
@@ -6913,7 +6905,7 @@ export default class okx extends Exchange {
6913
6905
  // "msg": ''
6914
6906
  // }
6915
6907
  //
6916
- const data = this.safeValue(response, 'data', []);
6908
+ const data = this.safeList(response, 'data', []);
6917
6909
  return this.parseOpenInterests(data, undefined, since, limit);
6918
6910
  }
6919
6911
  parseOpenInterest(interest, market = undefined) {
@@ -7036,7 +7028,7 @@ export default class okx extends Exchange {
7036
7028
  // "msg": ""
7037
7029
  // }
7038
7030
  //
7039
- const data = this.safeValue(response, 'data');
7031
+ const data = this.safeList(response, 'data');
7040
7032
  return this.parseDepositWithdrawFees(data, codes);
7041
7033
  }
7042
7034
  parseDepositWithdrawFees(response, codes = undefined, currencyIdKey = undefined) {
@@ -7412,7 +7404,7 @@ export default class okx extends Exchange {
7412
7404
  // }
7413
7405
  //
7414
7406
  const data = this.safeValue(response, 'data');
7415
- const order = this.safeValue(data, 0);
7407
+ const order = this.safeDict(data, 0);
7416
7408
  return this.parseOrder(order, market);
7417
7409
  }
7418
7410
  async fetchOption(symbol, params = {}) {
@@ -1152,7 +1152,7 @@ export default class onetrading extends Exchange {
1152
1152
  // "cursor": "eyJhY2NvdW50X2lkIjp7InMiOiJlMzY5YWM4MC00NTc3LTExZTktYWUwOC05YmVkYzQ3OTBiODQiLCJzcyI6W10sIm5zIjpbXSwiYnMiOltdLCJtIjp7fSwibCI6W119LCJpdGVtX2tleSI6eyJzIjoiV0lUSERSQVdBTDo6MmFlMjYwY2ItOTk3MC00YmNiLTgxNmEtZGY4MDVmY2VhZTY1Iiwic3MiOltdLCJucyI6W10sImJzIjpbXSwibSI6e30sImwiOltdfSwiZ2xvYmFsX3dpdGhkcmF3YWxfaW5kZXhfaGFzaF9rZXkiOnsicyI6ImUzNjlhYzgwLTQ1NzctMTFlOS1hZTA4LTliZWRjNDc5MGI4NCIsInNzIjpbXSwibnMiOltdLCJicyI6W10sIm0iOnt9LCJsIjpbXX0sInRpbWVzdGFtcCI6eyJuIjoiMTU4ODA1ODc2Nzk0OCIsInNzIjpbXSwibnMiOltdLCJicyI6W10sIm0iOnt9LCJsIjpbXX19"
1153
1153
  // }
1154
1154
  //
1155
- const depositHistory = this.safeValue(response, 'deposit_history', []);
1155
+ const depositHistory = this.safeList(response, 'deposit_history', []);
1156
1156
  return this.parseTransactions(depositHistory, currency, since, limit, { 'type': 'deposit' });
1157
1157
  }
1158
1158
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1217,7 +1217,7 @@ export default class onetrading extends Exchange {
1217
1217
  // "max_page_size": 2
1218
1218
  // }
1219
1219
  //
1220
- const withdrawalHistory = this.safeValue(response, 'withdrawal_history', []);
1220
+ const withdrawalHistory = this.safeList(response, 'withdrawal_history', []);
1221
1221
  return this.parseTransactions(withdrawalHistory, currency, since, limit, { 'type': 'withdrawal' });
1222
1222
  }
1223
1223
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -1810,7 +1810,7 @@ export default class onetrading extends Exchange {
1810
1810
  // "max_page_size": 100
1811
1811
  // }
1812
1812
  //
1813
- const orderHistory = this.safeValue(response, 'order_history', []);
1813
+ const orderHistory = this.safeList(response, 'order_history', []);
1814
1814
  return this.parseOrders(orderHistory, market, since, limit);
1815
1815
  }
1816
1816
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1953,7 +1953,7 @@ export default class onetrading extends Exchange {
1953
1953
  // "cursor": "string"
1954
1954
  // }
1955
1955
  //
1956
- const tradeHistory = this.safeValue(response, 'trade_history', []);
1956
+ const tradeHistory = this.safeList(response, 'trade_history', []);
1957
1957
  return this.parseTrades(tradeHistory, market, since, limit);
1958
1958
  }
1959
1959
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
package/js/src/p2b.js CHANGED
@@ -570,7 +570,7 @@ export default class p2b extends Exchange {
570
570
  // current_time: '1699255571.413828'
571
571
  // }
572
572
  //
573
- const result = this.safeValue(response, 'result', []);
573
+ const result = this.safeList(response, 'result', []);
574
574
  return this.parseTrades(result, market, since, limit);
575
575
  }
576
576
  parseTrade(trade, market = undefined) {
@@ -687,7 +687,7 @@ export default class p2b extends Exchange {
687
687
  // current_time: '1699256375.030494'
688
688
  // }
689
689
  //
690
- const result = this.safeValue(response, 'result', []);
690
+ const result = this.safeList(response, 'result', []);
691
691
  return this.parseOHLCVs(result, market, timeframe, since, limit);
692
692
  }
693
693
  parseOHLCV(ohlcv, market = undefined) {
@@ -822,7 +822,7 @@ export default class p2b extends Exchange {
822
822
  // }
823
823
  // }
824
824
  //
825
- const result = this.safeValue(response, 'result');
825
+ const result = this.safeDict(response, 'result');
826
826
  return this.parseOrder(result, market);
827
827
  }
828
828
  async cancelOrder(id, symbol = undefined, params = {}) {
@@ -868,7 +868,7 @@ export default class p2b extends Exchange {
868
868
  // }
869
869
  // }
870
870
  //
871
- const result = this.safeValue(response, 'result');
871
+ const result = this.safeDict(response, 'result');
872
872
  return this.parseOrder(result);
873
873
  }
874
874
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -923,7 +923,7 @@ export default class p2b extends Exchange {
923
923
  // ]
924
924
  // }
925
925
  //
926
- const result = this.safeValue(response, 'result', []);
926
+ const result = this.safeList(response, 'result', []);
927
927
  return this.parseOrders(result, market, since, limit);
928
928
  }
929
929
  async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -975,7 +975,7 @@ export default class p2b extends Exchange {
975
975
  // }
976
976
  //
977
977
  const result = this.safeValue(response, 'result', {});
978
- const records = this.safeValue(result, 'records', []);
978
+ const records = this.safeList(result, 'records', []);
979
979
  return this.parseTrades(records, market, since, limit);
980
980
  }
981
981
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1051,7 +1051,7 @@ export default class p2b extends Exchange {
1051
1051
  // }
1052
1052
  //
1053
1053
  const result = this.safeValue(response, 'result', {});
1054
- const deals = this.safeValue(result, 'deals', []);
1054
+ const deals = this.safeList(result, 'deals', []);
1055
1055
  return this.parseTrades(deals, market, since, limit);
1056
1056
  }
1057
1057
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
package/js/src/phemex.js CHANGED
@@ -1298,7 +1298,7 @@ export default class phemex extends Exchange {
1298
1298
  // }
1299
1299
  //
1300
1300
  const data = this.safeValue(response, 'data', {});
1301
- const rows = this.safeValue(data, 'rows', []);
1301
+ const rows = this.safeList(data, 'rows', []);
1302
1302
  return this.parseOHLCVs(rows, market, timeframe, since, userLimit);
1303
1303
  }
1304
1304
  parseTicker(ticker, market = undefined) {
@@ -1461,7 +1461,7 @@ export default class phemex extends Exchange {
1461
1461
  // }
1462
1462
  // }
1463
1463
  //
1464
- const result = this.safeValue(response, 'result', {});
1464
+ const result = this.safeDict(response, 'result', {});
1465
1465
  return this.parseTicker(result, market);
1466
1466
  }
1467
1467
  async fetchTickers(symbols = undefined, params = {}) {
@@ -1497,7 +1497,7 @@ export default class phemex extends Exchange {
1497
1497
  else {
1498
1498
  response = await this.v2GetMdV2Ticker24hrAll(query);
1499
1499
  }
1500
- const result = this.safeValue(response, 'result', []);
1500
+ const result = this.safeList(response, 'result', []);
1501
1501
  return this.parseTickers(result, symbols);
1502
1502
  }
1503
1503
  async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
@@ -2726,7 +2726,7 @@ export default class phemex extends Exchange {
2726
2726
  // }
2727
2727
  // }
2728
2728
  //
2729
- const data = this.safeValue(response, 'data', {});
2729
+ const data = this.safeDict(response, 'data', {});
2730
2730
  return this.parseOrder(data, market);
2731
2731
  }
2732
2732
  async editOrder(id, symbol, type = undefined, side = undefined, amount = undefined, price = undefined, params = {}) {
@@ -2805,7 +2805,7 @@ export default class phemex extends Exchange {
2805
2805
  else {
2806
2806
  response = await this.privatePutSpotOrders(this.extend(request, params));
2807
2807
  }
2808
- const data = this.safeValue(response, 'data', {});
2808
+ const data = this.safeDict(response, 'data', {});
2809
2809
  return this.parseOrder(data, market);
2810
2810
  }
2811
2811
  async cancelOrder(id, symbol = undefined, params = {}) {
@@ -2850,7 +2850,7 @@ export default class phemex extends Exchange {
2850
2850
  else {
2851
2851
  response = await this.privateDeleteSpotOrders(this.extend(request, params));
2852
2852
  }
2853
- const data = this.safeValue(response, 'data', {});
2853
+ const data = this.safeDict(response, 'data', {});
2854
2854
  return this.parseOrder(data, market);
2855
2855
  }
2856
2856
  async cancelAllOrders(symbol = undefined, params = {}) {
@@ -2974,7 +2974,7 @@ export default class phemex extends Exchange {
2974
2974
  response = await this.privateGetSpotOrders(this.extend(request, params));
2975
2975
  }
2976
2976
  const data = this.safeValue(response, 'data', {});
2977
- const rows = this.safeValue(data, 'rows', data);
2977
+ const rows = this.safeList(data, 'rows', data);
2978
2978
  return this.parseOrders(rows, market, since, limit);
2979
2979
  }
2980
2980
  async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -3023,7 +3023,7 @@ export default class phemex extends Exchange {
3023
3023
  return this.parseOrders(data, market, since, limit);
3024
3024
  }
3025
3025
  else {
3026
- const rows = this.safeValue(data, 'rows', []);
3026
+ const rows = this.safeList(data, 'rows', []);
3027
3027
  return this.parseOrders(rows, market, since, limit);
3028
3028
  }
3029
3029
  }
@@ -3110,7 +3110,7 @@ export default class phemex extends Exchange {
3110
3110
  return this.parseOrders(data, market, since, limit);
3111
3111
  }
3112
3112
  else {
3113
- const rows = this.safeValue(data, 'rows', []);
3113
+ const rows = this.safeList(data, 'rows', []);
3114
3114
  return this.parseOrders(rows, market, since, limit);
3115
3115
  }
3116
3116
  }
@@ -4231,7 +4231,7 @@ export default class phemex extends Exchange {
4231
4231
  //
4232
4232
  //
4233
4233
  const data = this.safeValue(response, 'data', {});
4234
- const riskLimits = this.safeValue(data, 'riskLimits');
4234
+ const riskLimits = this.safeList(data, 'riskLimits');
4235
4235
  return this.parseLeverageTiers(riskLimits, symbols, 'symbol');
4236
4236
  }
4237
4237
  parseMarketLeverageTiers(info, market = undefined) {
@@ -4493,7 +4493,7 @@ export default class phemex extends Exchange {
4493
4493
  // }
4494
4494
  //
4495
4495
  const data = this.safeValue(response, 'data', {});
4496
- const transfers = this.safeValue(data, 'rows', []);
4496
+ const transfers = this.safeList(data, 'rows', []);
4497
4497
  return this.parseTransfers(transfers, currency, since, limit);
4498
4498
  }
4499
4499
  parseTransfer(transfer, currency = undefined) {
@@ -4716,7 +4716,7 @@ export default class phemex extends Exchange {
4716
4716
  // }
4717
4717
  // }
4718
4718
  //
4719
- const data = this.safeValue(response, 'data', {});
4719
+ const data = this.safeDict(response, 'data', {});
4720
4720
  return this.parseTransaction(data, currency);
4721
4721
  }
4722
4722
  handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
@@ -679,7 +679,7 @@ export default class poloniexfutures extends Exchange {
679
679
  // },
680
680
  // }
681
681
  //
682
- const trades = this.safeValue(response, 'data', []);
682
+ const trades = this.safeList(response, 'data', []);
683
683
  return this.parseTrades(trades, market, since, limit);
684
684
  }
685
685
  async fetchTime(params = {}) {
@@ -752,7 +752,7 @@ export default class poloniexfutures extends Exchange {
752
752
  // ]
753
753
  // }
754
754
  //
755
- const data = this.safeValue(response, 'data', []);
755
+ const data = this.safeList(response, 'data', []);
756
756
  return this.parseOHLCVs(data, market, timeframe, since, limit);
757
757
  }
758
758
  parseBalance(response) {
@@ -1012,7 +1012,7 @@ export default class poloniexfutures extends Exchange {
1012
1012
  // ]
1013
1013
  // }
1014
1014
  //
1015
- const data = this.safeValue(response, 'data');
1015
+ const data = this.safeList(response, 'data');
1016
1016
  return this.parsePositions(data, symbols);
1017
1017
  }
1018
1018
  parsePosition(position, market = undefined) {
@@ -1466,7 +1466,7 @@ export default class poloniexfutures extends Exchange {
1466
1466
  // }
1467
1467
  //
1468
1468
  const market = (symbol !== undefined) ? this.market(symbol) : undefined;
1469
- const responseData = this.safeValue(response, 'data');
1469
+ const responseData = this.safeDict(response, 'data');
1470
1470
  return this.parseOrder(responseData, market);
1471
1471
  }
1472
1472
  parseOrder(order, market = undefined) {
@@ -1702,7 +1702,7 @@ export default class poloniexfutures extends Exchange {
1702
1702
  // }
1703
1703
  //
1704
1704
  const data = this.safeValue(response, 'data', {});
1705
- const trades = this.safeValue(data, 'items', {});
1705
+ const trades = this.safeList(data, 'items', []);
1706
1706
  return this.parseTrades(trades, market, since, limit);
1707
1707
  }
1708
1708
  async setMarginMode(marginMode, symbol = undefined, params = {}) {
@@ -24,9 +24,13 @@ export default class binance extends binanceRest {
24
24
  handleFetchOHLCV(client: Client, message: any): void;
25
25
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
26
26
  watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
27
+ watchBidsAsks(symbols?: Strings, params?: {}): Promise<Tickers>;
28
+ watchMultiTickerHelper(methodName: any, channelName: string, symbols?: Strings, params?: {}): Promise<any>;
27
29
  parseWsTicker(message: any, marketType: any): Ticker;
28
- handleTicker(client: Client, message: any): void;
30
+ handleBidsAsks(client: Client, message: any): void;
29
31
  handleTickers(client: Client, message: any): void;
32
+ handleTickersAndBidsAsks(client: Client, message: any, methodType: any): void;
33
+ getMessageHash(channelName: string, symbol: Str, isBidAsk: boolean): string;
30
34
  signParams(params?: {}): any;
31
35
  authenticate(params?: {}): Promise<void>;
32
36
  keepAliveListenKey(params?: {}): Promise<void>;