ccxt 4.1.84 → 4.1.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 (301) hide show
  1. package/README.md +5 -4
  2. package/dist/ccxt.browser.js +1939 -806
  3. package/dist/ccxt.browser.min.js +3 -3
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/ace.js +1 -1
  6. package/dist/cjs/src/alpaca.js +2 -2
  7. package/dist/cjs/src/ascendex.js +2 -2
  8. package/dist/cjs/src/base/Exchange.js +53 -20
  9. package/dist/cjs/src/bigone.js +1 -1
  10. package/dist/cjs/src/binance.js +2 -2
  11. package/dist/cjs/src/bingx.js +11 -9
  12. package/dist/cjs/src/bit2c.js +1 -1
  13. package/dist/cjs/src/bitbank.js +1 -1
  14. package/dist/cjs/src/bitbns.js +1 -1
  15. package/dist/cjs/src/bitfinex.js +1 -1
  16. package/dist/cjs/src/bitfinex2.js +1 -1
  17. package/dist/cjs/src/bitflyer.js +1 -1
  18. package/dist/cjs/src/bitforex.js +1 -1
  19. package/dist/cjs/src/bitget.js +2 -3
  20. package/dist/cjs/src/bithumb.js +3 -3
  21. package/dist/cjs/src/bitmart.js +91 -74
  22. package/dist/cjs/src/bitmex.js +2 -2
  23. package/dist/cjs/src/bitopro.js +3 -3
  24. package/dist/cjs/src/bitpanda.js +1 -1
  25. package/dist/cjs/src/bitrue.js +1 -1
  26. package/dist/cjs/src/bitso.js +1 -1
  27. package/dist/cjs/src/bitstamp.js +1 -1
  28. package/dist/cjs/src/bittrex.js +1 -1
  29. package/dist/cjs/src/bitvavo.js +1 -1
  30. package/dist/cjs/src/bl3p.js +1 -1
  31. package/dist/cjs/src/blockchaincom.js +1 -1
  32. package/dist/cjs/src/btcalpha.js +1 -1
  33. package/dist/cjs/src/btcbox.js +1 -1
  34. package/dist/cjs/src/btcmarkets.js +1 -1
  35. package/dist/cjs/src/btcturk.js +1 -1
  36. package/dist/cjs/src/bybit.js +3 -5
  37. package/dist/cjs/src/cex.js +1 -1
  38. package/dist/cjs/src/coinbase.js +1 -1
  39. package/dist/cjs/src/coinbasepro.js +1 -1
  40. package/dist/cjs/src/coincheck.js +1 -1
  41. package/dist/cjs/src/coinex.js +3 -2
  42. package/dist/cjs/src/coinlist.js +1 -1
  43. package/dist/cjs/src/coinmate.js +1 -1
  44. package/dist/cjs/src/coinone.js +1 -1
  45. package/dist/cjs/src/coinsph.js +1 -1
  46. package/dist/cjs/src/coinspot.js +1 -1
  47. package/dist/cjs/src/cryptocom.js +3 -3
  48. package/dist/cjs/src/currencycom.js +1 -1
  49. package/dist/cjs/src/delta.js +1 -1
  50. package/dist/cjs/src/deribit.js +1 -1
  51. package/dist/cjs/src/digifinex.js +160 -112
  52. package/dist/cjs/src/exmo.js +1 -1
  53. package/dist/cjs/src/gate.js +1 -1
  54. package/dist/cjs/src/gemini.js +1 -1
  55. package/dist/cjs/src/hitbtc.js +2 -2
  56. package/dist/cjs/src/hitbtc3.js +1 -1
  57. package/dist/cjs/src/hollaex.js +1 -1
  58. package/dist/cjs/src/htx.js +2 -2
  59. package/dist/cjs/src/huobijp.js +1 -1
  60. package/dist/cjs/src/idex.js +1 -1
  61. package/dist/cjs/src/independentreserve.js +1 -1
  62. package/dist/cjs/src/indodax.js +1 -1
  63. package/dist/cjs/src/kraken.js +2 -2
  64. package/dist/cjs/src/krakenfutures.js +3 -3
  65. package/dist/cjs/src/kucoin.js +2 -6
  66. package/dist/cjs/src/kucoinfutures.js +0 -3
  67. package/dist/cjs/src/kuna.js +1 -1
  68. package/dist/cjs/src/latoken.js +2 -2
  69. package/dist/cjs/src/lbank.js +1 -1
  70. package/dist/cjs/src/luno.js +1 -1
  71. package/dist/cjs/src/lykke.js +1 -1
  72. package/dist/cjs/src/mercado.js +1 -1
  73. package/dist/cjs/src/mexc.js +102 -53
  74. package/dist/cjs/src/ndax.js +1 -1
  75. package/dist/cjs/src/novadax.js +1 -1
  76. package/dist/cjs/src/oceanex.js +1 -1
  77. package/dist/cjs/src/okcoin.js +1 -1
  78. package/dist/cjs/src/okx.js +4 -4
  79. package/dist/cjs/src/p2b.js +1 -3
  80. package/dist/cjs/src/paymium.js +1 -1
  81. package/dist/cjs/src/phemex.js +1 -1
  82. package/dist/cjs/src/poloniex.js +51 -51
  83. package/dist/cjs/src/poloniexfutures.js +1 -1
  84. package/dist/cjs/src/pro/bitget.js +1 -1
  85. package/dist/cjs/src/pro/bitmart.js +1026 -250
  86. package/dist/cjs/src/pro/bitmex.js +206 -0
  87. package/dist/cjs/src/pro/krakenfutures.js +6 -6
  88. package/dist/cjs/src/pro/mexc.js +1 -1
  89. package/dist/cjs/src/pro/poloniex.js +1 -1
  90. package/dist/cjs/src/pro/poloniexfutures.js +3 -3
  91. package/dist/cjs/src/probit.js +27 -19
  92. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -1
  93. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +3 -3
  94. package/dist/cjs/src/timex.js +1 -1
  95. package/dist/cjs/src/tokocrypto.js +8 -4
  96. package/dist/cjs/src/upbit.js +1 -1
  97. package/dist/cjs/src/wavesexchange.js +1 -1
  98. package/dist/cjs/src/wazirx.js +1 -1
  99. package/dist/cjs/src/whitebit.js +1 -1
  100. package/dist/cjs/src/woo.js +1 -1
  101. package/dist/cjs/src/yobit.js +1 -1
  102. package/dist/cjs/src/zaif.js +1 -1
  103. package/dist/cjs/src/zonda.js +1 -1
  104. package/js/ccxt.d.ts +1 -1
  105. package/js/ccxt.js +1 -1
  106. package/js/src/ace.d.ts +1 -1
  107. package/js/src/ace.js +1 -1
  108. package/js/src/alpaca.d.ts +1 -1
  109. package/js/src/alpaca.js +2 -2
  110. package/js/src/ascendex.d.ts +1 -1
  111. package/js/src/ascendex.js +2 -2
  112. package/js/src/base/Exchange.d.ts +5 -0
  113. package/js/src/base/Exchange.js +53 -20
  114. package/js/src/base/types.d.ts +1 -0
  115. package/js/src/bigone.d.ts +1 -1
  116. package/js/src/bigone.js +1 -1
  117. package/js/src/binance.d.ts +1 -1
  118. package/js/src/binance.js +2 -2
  119. package/js/src/bingx.js +11 -9
  120. package/js/src/bit2c.d.ts +1 -1
  121. package/js/src/bit2c.js +1 -1
  122. package/js/src/bitbank.d.ts +1 -1
  123. package/js/src/bitbank.js +1 -1
  124. package/js/src/bitbns.d.ts +1 -1
  125. package/js/src/bitbns.js +1 -1
  126. package/js/src/bitfinex.d.ts +1 -1
  127. package/js/src/bitfinex.js +1 -1
  128. package/js/src/bitfinex2.d.ts +1 -1
  129. package/js/src/bitfinex2.js +1 -1
  130. package/js/src/bitflyer.d.ts +1 -1
  131. package/js/src/bitflyer.js +1 -1
  132. package/js/src/bitforex.d.ts +1 -1
  133. package/js/src/bitforex.js +1 -1
  134. package/js/src/bitget.d.ts +1 -1
  135. package/js/src/bitget.js +2 -3
  136. package/js/src/bithumb.d.ts +1 -1
  137. package/js/src/bithumb.js +3 -3
  138. package/js/src/bitmart.d.ts +1 -1
  139. package/js/src/bitmart.js +91 -74
  140. package/js/src/bitmex.d.ts +1 -1
  141. package/js/src/bitmex.js +2 -2
  142. package/js/src/bitopro.d.ts +1 -1
  143. package/js/src/bitopro.js +3 -3
  144. package/js/src/bitpanda.d.ts +1 -1
  145. package/js/src/bitpanda.js +1 -1
  146. package/js/src/bitrue.d.ts +1 -1
  147. package/js/src/bitrue.js +1 -1
  148. package/js/src/bitso.d.ts +1 -1
  149. package/js/src/bitso.js +1 -1
  150. package/js/src/bitstamp.d.ts +1 -1
  151. package/js/src/bitstamp.js +1 -1
  152. package/js/src/bittrex.d.ts +1 -1
  153. package/js/src/bittrex.js +1 -1
  154. package/js/src/bitvavo.d.ts +1 -1
  155. package/js/src/bitvavo.js +1 -1
  156. package/js/src/bl3p.d.ts +1 -1
  157. package/js/src/bl3p.js +1 -1
  158. package/js/src/blockchaincom.d.ts +1 -1
  159. package/js/src/blockchaincom.js +1 -1
  160. package/js/src/btcalpha.d.ts +1 -1
  161. package/js/src/btcalpha.js +1 -1
  162. package/js/src/btcbox.d.ts +1 -1
  163. package/js/src/btcbox.js +1 -1
  164. package/js/src/btcmarkets.d.ts +1 -1
  165. package/js/src/btcmarkets.js +1 -1
  166. package/js/src/btcturk.d.ts +1 -1
  167. package/js/src/btcturk.js +1 -1
  168. package/js/src/bybit.d.ts +1 -1
  169. package/js/src/bybit.js +3 -5
  170. package/js/src/cex.d.ts +1 -1
  171. package/js/src/cex.js +1 -1
  172. package/js/src/coinbase.d.ts +1 -1
  173. package/js/src/coinbase.js +1 -1
  174. package/js/src/coinbasepro.d.ts +1 -1
  175. package/js/src/coinbasepro.js +1 -1
  176. package/js/src/coincheck.d.ts +1 -1
  177. package/js/src/coincheck.js +1 -1
  178. package/js/src/coinex.d.ts +1 -1
  179. package/js/src/coinex.js +3 -2
  180. package/js/src/coinlist.d.ts +1 -1
  181. package/js/src/coinlist.js +1 -1
  182. package/js/src/coinmate.d.ts +1 -1
  183. package/js/src/coinmate.js +1 -1
  184. package/js/src/coinone.d.ts +1 -1
  185. package/js/src/coinone.js +1 -1
  186. package/js/src/coinsph.d.ts +1 -1
  187. package/js/src/coinsph.js +1 -1
  188. package/js/src/coinspot.d.ts +1 -1
  189. package/js/src/coinspot.js +1 -1
  190. package/js/src/cryptocom.d.ts +1 -1
  191. package/js/src/cryptocom.js +3 -3
  192. package/js/src/currencycom.d.ts +1 -1
  193. package/js/src/currencycom.js +1 -1
  194. package/js/src/delta.d.ts +1 -1
  195. package/js/src/delta.js +1 -1
  196. package/js/src/deribit.d.ts +1 -1
  197. package/js/src/deribit.js +1 -1
  198. package/js/src/digifinex.d.ts +1 -1
  199. package/js/src/digifinex.js +160 -112
  200. package/js/src/exmo.d.ts +1 -1
  201. package/js/src/exmo.js +1 -1
  202. package/js/src/gate.d.ts +1 -1
  203. package/js/src/gate.js +1 -1
  204. package/js/src/gemini.d.ts +1 -1
  205. package/js/src/gemini.js +1 -1
  206. package/js/src/hitbtc.d.ts +1 -1
  207. package/js/src/hitbtc.js +2 -2
  208. package/js/src/hitbtc3.d.ts +1 -1
  209. package/js/src/hitbtc3.js +1 -1
  210. package/js/src/hollaex.d.ts +1 -1
  211. package/js/src/hollaex.js +1 -1
  212. package/js/src/htx.d.ts +1 -1
  213. package/js/src/htx.js +2 -2
  214. package/js/src/huobijp.d.ts +1 -1
  215. package/js/src/huobijp.js +1 -1
  216. package/js/src/idex.d.ts +1 -1
  217. package/js/src/idex.js +1 -1
  218. package/js/src/independentreserve.d.ts +1 -1
  219. package/js/src/independentreserve.js +1 -1
  220. package/js/src/indodax.d.ts +1 -1
  221. package/js/src/indodax.js +1 -1
  222. package/js/src/kraken.d.ts +1 -1
  223. package/js/src/kraken.js +2 -2
  224. package/js/src/krakenfutures.d.ts +1 -1
  225. package/js/src/krakenfutures.js +3 -3
  226. package/js/src/kucoin.d.ts +1 -1
  227. package/js/src/kucoin.js +2 -6
  228. package/js/src/kucoinfutures.d.ts +0 -1
  229. package/js/src/kucoinfutures.js +0 -3
  230. package/js/src/kuna.d.ts +1 -1
  231. package/js/src/kuna.js +1 -1
  232. package/js/src/latoken.d.ts +1 -1
  233. package/js/src/latoken.js +2 -2
  234. package/js/src/lbank.d.ts +1 -1
  235. package/js/src/lbank.js +1 -1
  236. package/js/src/luno.d.ts +1 -1
  237. package/js/src/luno.js +1 -1
  238. package/js/src/lykke.d.ts +1 -1
  239. package/js/src/lykke.js +1 -1
  240. package/js/src/mercado.d.ts +1 -1
  241. package/js/src/mercado.js +1 -1
  242. package/js/src/mexc.d.ts +1 -1
  243. package/js/src/mexc.js +102 -53
  244. package/js/src/ndax.d.ts +1 -1
  245. package/js/src/ndax.js +1 -1
  246. package/js/src/novadax.d.ts +1 -1
  247. package/js/src/novadax.js +1 -1
  248. package/js/src/oceanex.d.ts +1 -1
  249. package/js/src/oceanex.js +1 -1
  250. package/js/src/okcoin.d.ts +1 -1
  251. package/js/src/okcoin.js +1 -1
  252. package/js/src/okx.d.ts +1 -1
  253. package/js/src/okx.js +4 -4
  254. package/js/src/p2b.d.ts +1 -1
  255. package/js/src/p2b.js +1 -3
  256. package/js/src/paymium.d.ts +1 -1
  257. package/js/src/paymium.js +1 -1
  258. package/js/src/phemex.d.ts +1 -1
  259. package/js/src/phemex.js +1 -1
  260. package/js/src/poloniex.d.ts +1 -1
  261. package/js/src/poloniex.js +51 -51
  262. package/js/src/poloniexfutures.d.ts +1 -1
  263. package/js/src/poloniexfutures.js +1 -1
  264. package/js/src/pro/bitget.d.ts +1 -1
  265. package/js/src/pro/bitget.js +1 -1
  266. package/js/src/pro/bitmart.d.ts +17 -6
  267. package/js/src/pro/bitmart.js +1028 -252
  268. package/js/src/pro/bitmex.d.ts +3 -1
  269. package/js/src/pro/bitmex.js +207 -1
  270. package/js/src/pro/krakenfutures.js +6 -6
  271. package/js/src/pro/mexc.js +1 -1
  272. package/js/src/pro/poloniex.js +1 -1
  273. package/js/src/pro/poloniexfutures.js +3 -3
  274. package/js/src/probit.d.ts +1 -1
  275. package/js/src/probit.js +27 -19
  276. package/js/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +1 -1
  277. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -1
  278. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +3 -3
  279. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +3 -3
  280. package/js/src/timex.d.ts +1 -1
  281. package/js/src/timex.js +1 -1
  282. package/js/src/tokocrypto.d.ts +1 -1
  283. package/js/src/tokocrypto.js +8 -4
  284. package/js/src/upbit.d.ts +1 -1
  285. package/js/src/upbit.js +1 -1
  286. package/js/src/wavesexchange.d.ts +1 -1
  287. package/js/src/wavesexchange.js +1 -1
  288. package/js/src/wazirx.d.ts +1 -1
  289. package/js/src/wazirx.js +1 -1
  290. package/js/src/whitebit.d.ts +1 -1
  291. package/js/src/whitebit.js +1 -1
  292. package/js/src/woo.d.ts +1 -1
  293. package/js/src/woo.js +1 -1
  294. package/js/src/yobit.d.ts +1 -1
  295. package/js/src/yobit.js +1 -1
  296. package/js/src/zaif.d.ts +1 -1
  297. package/js/src/zaif.js +1 -1
  298. package/js/src/zonda.d.ts +1 -1
  299. package/js/src/zonda.js +1 -1
  300. package/package.json +4 -3
  301. package/skip-tests.json +4 -0
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class kucoin
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class kucoin extends kucoin$1 {
16
16
  describe() {
@@ -489,11 +489,7 @@ class kucoin extends kucoin$1 {
489
489
  },
490
490
  'commonCurrencies': {
491
491
  'BIFI': 'BIFIF',
492
- 'EDGE': 'DADI',
493
- 'HOT': 'HOTNOW',
494
- 'TRY': 'Trias',
495
492
  'VAI': 'VAIOT',
496
- 'WAX': 'WAXP',
497
493
  },
498
494
  'options': {
499
495
  'version': 'v1',
@@ -1937,7 +1933,7 @@ class kucoin extends kucoin$1 {
1937
1933
  * @description create a list of trade orders
1938
1934
  * @see https://www.kucoin.com/docs/rest/spot-trading/orders/place-multiple-orders
1939
1935
  * @see https://www.kucoin.com/docs/rest/spot-trading/spot-hf-trade-pro-account/place-multiple-hf-orders
1940
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1936
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
1941
1937
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1942
1938
  * @param {bool} [params.hf] false, // true for hf orders
1943
1939
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
@@ -704,9 +704,6 @@ class kucoinfutures extends kucoinfutures$1 {
704
704
  orderbook['nonce'] = this.safeInteger(data, 'sequence');
705
705
  return orderbook;
706
706
  }
707
- async fetchL3OrderBook(symbol, limit = undefined, params = {}) {
708
- throw new errors.BadRequest(this.id + ' fetchL3OrderBook() is not supported yet');
709
- }
710
707
  async fetchTicker(symbol, params = {}) {
711
708
  /**
712
709
  * @method
@@ -11,7 +11,7 @@ var Precise = require('./base/Precise.js');
11
11
  // ---------------------------------------------------------------------------
12
12
  /**
13
13
  * @class kuna
14
- * @extends Exchange
14
+ * @augments Exchange
15
15
  * @description Use the public-key as your apiKey
16
16
  */
17
17
  class kuna extends kuna$1 {
@@ -9,7 +9,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class latoken
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class latoken extends latoken$1 {
15
15
  describe() {
@@ -1083,7 +1083,7 @@ class latoken extends latoken$1 {
1083
1083
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1084
1084
  * @param {boolean} [params.trigger] true if fetching trigger orders
1085
1085
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1086
- */
1086
+ */
1087
1087
  if (symbol === undefined) {
1088
1088
  throw new errors.ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument');
1089
1089
  }
@@ -12,7 +12,7 @@ var rsa = require('./base/functions/rsa.js');
12
12
  // ---------------------------------------------------------------------------
13
13
  /**
14
14
  * @class lbank2
15
- * @extends Exchange
15
+ * @augments Exchange
16
16
  */
17
17
  class lbank extends lbank$1 {
18
18
  describe() {
@@ -9,7 +9,7 @@ var number = require('./base/functions/number.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class luno
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class luno extends luno$1 {
15
15
  describe() {
@@ -9,7 +9,7 @@ var number = require('./base/functions/number.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class lykke
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class lykke extends lykke$1 {
15
15
  describe() {
@@ -9,7 +9,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class mercado
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class mercado extends mercado$1 {
15
15
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class mexc
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class mexc extends mexc$1 {
16
16
  describe() {
@@ -1404,7 +1404,19 @@ class mexc extends mexc$1 {
1404
1404
  }
1405
1405
  let method = this.safeString(this.options, 'fetchTradesMethod', 'spotPublicGetAggTrades');
1406
1406
  method = this.safeString(params, 'method', method); // AggTrades, HistoricalTrades, Trades
1407
- trades = await this[method](this.extend(request, params));
1407
+ params = this.omit(params, ['method']);
1408
+ if (method === 'spotPublicGetAggTrades') {
1409
+ trades = await this.spotPublicGetAggTrades(this.extend(request, params));
1410
+ }
1411
+ else if (method === 'spotPublicGetHistoricalTrades') {
1412
+ trades = await this.spotPublicGetHistoricalTrades(this.extend(request, params));
1413
+ }
1414
+ else if (method === 'spotPublicGetTrades') {
1415
+ trades = await this.spotPublicGetTrades(this.extend(request, params));
1416
+ }
1417
+ else {
1418
+ throw new errors.NotSupported(this.id + ' fetchTrades() not support this method');
1419
+ }
1408
1420
  //
1409
1421
  // /trades, /historicalTrades
1410
1422
  //
@@ -1707,12 +1719,19 @@ class mexc extends mexc$1 {
1707
1719
  }
1708
1720
  const priceType = this.safeString(params, 'price', 'default');
1709
1721
  params = this.omit(params, 'price');
1710
- const method = this.getSupportedMapping(priceType, {
1711
- 'default': 'contractPublicGetKlineSymbol',
1712
- 'index': 'contractPublicGetKlineIndexPriceSymbol',
1713
- 'mark': 'contractPublicGetKlineFairPriceSymbol',
1714
- });
1715
- const response = await this[method](this.extend(request, params));
1722
+ let response = undefined;
1723
+ if (priceType === 'default') {
1724
+ response = await this.contractPublicGetKlineSymbol(this.extend(request, params));
1725
+ }
1726
+ else if (priceType === 'index') {
1727
+ response = await this.contractPublicGetKlineIndexPriceSymbol(this.extend(request, params));
1728
+ }
1729
+ else if (priceType === 'mark') {
1730
+ response = await this.contractPublicGetKlineFairPriceSymbol(this.extend(request, params));
1731
+ }
1732
+ else {
1733
+ throw new errors.NotSupported(this.id + ' fetchOHLCV() not support this price type, [default, index, mark]');
1734
+ }
1716
1735
  //
1717
1736
  // {
1718
1737
  // "success":true,
@@ -2097,6 +2116,7 @@ class mexc extends mexc$1 {
2097
2116
  * @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2098
2117
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2099
2118
  * @param {string} [params.marginMode] only 'isolated' is supported for spot-margin trading
2119
+ * @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
2100
2120
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
2101
2121
  */
2102
2122
  await this.loadMarkets();
@@ -2254,17 +2274,6 @@ class mexc extends mexc$1 {
2254
2274
  // 'trend': 1, // Required for trigger order 1: latest price, 2: fair price, 3: index price
2255
2275
  // 'orderType': 1, // Required for trigger order 1: limit order,2:Post Only Maker,3: close or cancel instantly ,4: close or cancel completely,5: Market order
2256
2276
  };
2257
- let method = 'contractPrivatePostOrderSubmit';
2258
- const stopPrice = this.safeNumber2(params, 'triggerPrice', 'stopPrice');
2259
- params = this.omit(params, ['stopPrice', 'triggerPrice']);
2260
- if (stopPrice) {
2261
- method = 'contractPrivatePostPlanorderPlace';
2262
- request['triggerPrice'] = this.priceToPrecision(symbol, stopPrice);
2263
- request['triggerType'] = this.safeInteger(params, 'triggerType', 1);
2264
- request['executeCycle'] = this.safeInteger(params, 'executeCycle', 1);
2265
- request['trend'] = this.safeInteger(params, 'trend', 1);
2266
- request['orderType'] = this.safeInteger(params, 'orderType', 1);
2267
- }
2268
2277
  if ((type !== 5) && (type !== 6) && (type !== 'market')) {
2269
2278
  request['price'] = parseFloat(this.priceToPrecision(symbol, price));
2270
2279
  }
@@ -2285,8 +2294,20 @@ class mexc extends mexc$1 {
2285
2294
  if (clientOrderId !== undefined) {
2286
2295
  request['externalOid'] = clientOrderId;
2287
2296
  }
2288
- params = this.omit(params, ['clientOrderId', 'externalOid', 'postOnly']);
2289
- const response = await this[method](this.extend(request, params));
2297
+ const stopPrice = this.safeNumber2(params, 'triggerPrice', 'stopPrice');
2298
+ params = this.omit(params, ['clientOrderId', 'externalOid', 'postOnly', 'stopPrice', 'triggerPrice']);
2299
+ let response = undefined;
2300
+ if (stopPrice) {
2301
+ request['triggerPrice'] = this.priceToPrecision(symbol, stopPrice);
2302
+ request['triggerType'] = this.safeInteger(params, 'triggerType', 1);
2303
+ request['executeCycle'] = this.safeInteger(params, 'executeCycle', 1);
2304
+ request['trend'] = this.safeInteger(params, 'trend', 1);
2305
+ request['orderType'] = this.safeInteger(params, 'orderType', 1);
2306
+ response = await this.contractPrivatePostPlanorderPlace(this.extend(request, params));
2307
+ }
2308
+ else {
2309
+ response = await this.contractPrivatePostOrderSubmit(this.extend(request, params));
2310
+ }
2290
2311
  //
2291
2312
  // Swap
2292
2313
  // {"code":200,"data":"2ff3163e8617443cb9c6fc19d42b1ca4"}
@@ -2303,7 +2324,7 @@ class mexc extends mexc$1 {
2303
2324
  * @name mexc#createOrders
2304
2325
  * @description *spot only* *all orders must have the same symbol* create a list of trade orders
2305
2326
  * @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#batch-orders
2306
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2327
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2307
2328
  * @param {object} [params] extra parameters specific to api endpoint
2308
2329
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
2309
2330
  */
@@ -2390,14 +2411,15 @@ class mexc extends mexc$1 {
2390
2411
  request['orderId'] = id;
2391
2412
  }
2392
2413
  const [marginMode, query] = this.handleMarginModeAndParams('fetchOrder', params);
2393
- let method = 'spotPrivateGetOrder';
2394
2414
  if (marginMode !== undefined) {
2395
2415
  if (marginMode !== 'isolated') {
2396
2416
  throw new errors.BadRequest(this.id + ' fetchOrder() does not support marginMode ' + marginMode + ' for spot-margin trading');
2397
2417
  }
2398
- method = 'spotPrivateGetMarginOrder';
2418
+ data = await this.spotPrivateGetMarginOrder(this.extend(request, query));
2419
+ }
2420
+ else {
2421
+ data = await this.spotPrivateGetOrder(this.extend(request, query));
2399
2422
  }
2400
- data = await this[method](this.extend(request, query));
2401
2423
  //
2402
2424
  // spot
2403
2425
  //
@@ -2507,20 +2529,22 @@ class mexc extends mexc$1 {
2507
2529
  throw new errors.ArgumentsRequired(this.id + ' fetchOrders() requires a symbol argument for spot market');
2508
2530
  }
2509
2531
  const [marginMode, queryInner] = this.handleMarginModeAndParams('fetchOrders', params);
2510
- let method = 'spotPrivateGetAllOrders';
2511
- if (marginMode !== undefined) {
2512
- if (marginMode !== 'isolated') {
2513
- throw new errors.BadRequest(this.id + ' fetchOrders() does not support marginMode ' + marginMode + ' for spot-margin trading');
2514
- }
2515
- method = 'spotPrivateGetMarginAllOrders';
2516
- }
2517
2532
  if (since !== undefined) {
2518
2533
  request['startTime'] = since;
2519
2534
  }
2520
2535
  if (limit !== undefined) {
2521
2536
  request['limit'] = limit;
2522
2537
  }
2523
- const response = await this[method](this.extend(request, queryInner));
2538
+ let response = undefined;
2539
+ if (marginMode !== undefined) {
2540
+ if (marginMode !== 'isolated') {
2541
+ throw new errors.BadRequest(this.id + ' fetchOrders() does not support marginMode ' + marginMode + ' for spot-margin trading');
2542
+ }
2543
+ response = await this.spotPrivateGetMarginAllOrders(this.extend(request, queryInner));
2544
+ }
2545
+ else {
2546
+ response = await this.spotPrivateGetAllOrders(this.extend(request, queryInner));
2547
+ }
2524
2548
  //
2525
2549
  // spot
2526
2550
  //
@@ -2737,15 +2761,17 @@ class mexc extends mexc$1 {
2737
2761
  throw new errors.ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument for spot market');
2738
2762
  }
2739
2763
  request['symbol'] = market['id'];
2740
- let method = 'spotPrivateGetOpenOrders';
2741
2764
  const [marginMode, query] = this.handleMarginModeAndParams('fetchOpenOrders', params);
2765
+ let response = undefined;
2742
2766
  if (marginMode !== undefined) {
2743
2767
  if (marginMode !== 'isolated') {
2744
2768
  throw new errors.BadRequest(this.id + ' fetchOpenOrders() does not support marginMode ' + marginMode + ' for spot-margin trading');
2745
2769
  }
2746
- method = 'spotPrivateGetMarginOpenOrders';
2770
+ response = await this.spotPrivateGetMarginOpenOrders(this.extend(request, query));
2771
+ }
2772
+ else {
2773
+ response = await this.spotPrivateGetOpenOrders(this.extend(request, query));
2747
2774
  }
2748
- const response = await this[method](this.extend(request, query));
2749
2775
  //
2750
2776
  // spot
2751
2777
  //
@@ -2879,14 +2905,15 @@ class mexc extends mexc$1 {
2879
2905
  else {
2880
2906
  requestInner['orderId'] = id;
2881
2907
  }
2882
- let method = 'spotPrivateDeleteOrder';
2883
2908
  if (marginMode !== undefined) {
2884
2909
  if (marginMode !== 'isolated') {
2885
2910
  throw new errors.BadRequest(this.id + ' cancelOrder() does not support marginMode ' + marginMode + ' for spot-margin trading');
2886
2911
  }
2887
- method = 'spotPrivateDeleteMarginOrder';
2912
+ data = await this.spotPrivateDeleteMarginOrder(this.extend(requestInner, query));
2913
+ }
2914
+ else {
2915
+ data = await this.spotPrivateDeleteOrder(this.extend(requestInner, query));
2888
2916
  }
2889
- data = await this[method](this.extend(requestInner, query));
2890
2917
  //
2891
2918
  // spot
2892
2919
  //
@@ -2926,7 +2953,16 @@ class mexc extends mexc$1 {
2926
2953
  // TODO: PlanorderCancel endpoint has bug atm. waiting for fix.
2927
2954
  let method = this.safeString(this.options, 'cancelOrder', 'contractPrivatePostOrderCancel'); // contractPrivatePostOrderCancel, contractPrivatePostPlanorderCancel
2928
2955
  method = this.safeString(query, 'method', method);
2929
- const response = await this[method]([id]); // the request cannot be changed or extended. This is the only way to send.
2956
+ let response = undefined;
2957
+ if (method === 'contractPrivatePostOrderCancel') {
2958
+ response = await this.contractPrivatePostOrderCancel([id]); // the request cannot be changed or extended. This is the only way to send.
2959
+ }
2960
+ else if (method === 'contractPrivatePostPlanorderCancel') {
2961
+ response = await this.contractPrivatePostPlanorderCancel([id]); // the request cannot be changed or extended. This is the only way to send.
2962
+ }
2963
+ else {
2964
+ throw new errors.NotSupported(this.id + ' cancelOrder() not support this method');
2965
+ }
2930
2966
  //
2931
2967
  // {
2932
2968
  // "success": true,
@@ -3005,14 +3041,16 @@ class mexc extends mexc$1 {
3005
3041
  throw new errors.ArgumentsRequired(this.id + ' cancelAllOrders() requires a symbol argument on spot');
3006
3042
  }
3007
3043
  request['symbol'] = market['id'];
3008
- let method = 'spotPrivateDeleteOpenOrders';
3044
+ let response = undefined;
3009
3045
  if (marginMode !== undefined) {
3010
3046
  if (marginMode !== 'isolated') {
3011
3047
  throw new errors.BadRequest(this.id + ' cancelAllOrders() does not support marginMode ' + marginMode + ' for spot-margin trading');
3012
3048
  }
3013
- method = 'spotPrivateDeleteMarginOpenOrders';
3049
+ response = await this.spotPrivateDeleteMarginOpenOrders(this.extend(request, query));
3050
+ }
3051
+ else {
3052
+ response = await this.spotPrivateDeleteOpenOrders(this.extend(request, query));
3014
3053
  }
3015
- const response = await this[method](this.extend(request, query));
3016
3054
  //
3017
3055
  // spot
3018
3056
  //
@@ -3059,7 +3097,13 @@ class mexc extends mexc$1 {
3059
3097
  // the Planorder endpoints work not only for stop-market orders but also for stop-limit orders that are supposed to have separate endpoint
3060
3098
  let method = this.safeString(this.options, 'cancelAllOrders', 'contractPrivatePostOrderCancelAll');
3061
3099
  method = this.safeString(query, 'method', method);
3062
- const response = await this[method](this.extend(request, query));
3100
+ let response = undefined;
3101
+ if (method === 'contractPrivatePostOrderCancelAll') {
3102
+ response = await this.contractPrivatePostOrderCancelAll(this.extend(request, query));
3103
+ }
3104
+ else if (method === 'contractPrivatePostPlanorderCancelAll') {
3105
+ response = await this.contractPrivatePostPlanorderCancelAll(this.extend(request, query));
3106
+ }
3063
3107
  //
3064
3108
  // {
3065
3109
  // "success": true,
@@ -3573,13 +3617,10 @@ class mexc extends mexc$1 {
3573
3617
  let marketType = undefined;
3574
3618
  const request = {};
3575
3619
  [marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
3576
- let method = this.getSupportedMapping(marketType, {
3577
- 'spot': 'spotPrivateGetAccount',
3578
- 'swap': 'contractPrivateGetAccountAssets',
3579
- 'margin': 'spotPrivateGetMarginIsolatedAccount',
3580
- });
3581
3620
  const marginMode = this.safeString(params, 'marginMode');
3582
3621
  const isMargin = this.safeValue(params, 'margin', false);
3622
+ params = this.omit(params, ['margin', 'marginMode']);
3623
+ let response = undefined;
3583
3624
  if ((marginMode !== undefined) || (isMargin) || (marketType === 'margin')) {
3584
3625
  let parsedSymbols = undefined;
3585
3626
  const symbol = this.safeString(params, 'symbol');
@@ -3594,12 +3635,20 @@ class mexc extends mexc$1 {
3594
3635
  parsedSymbols = market['id'];
3595
3636
  }
3596
3637
  this.checkRequiredArgument('fetchBalance', parsedSymbols, 'symbol or symbols');
3597
- method = 'spotPrivateGetMarginIsolatedAccount';
3598
3638
  marketType = 'margin';
3599
3639
  request['symbols'] = parsedSymbols;
3640
+ params = this.omit(params, ['symbol', 'symbols']);
3641
+ response = await this.spotPrivateGetMarginIsolatedAccount(this.extend(request, params));
3642
+ }
3643
+ else if (marketType === 'spot') {
3644
+ response = await this.spotPrivateGetAccount(this.extend(request, params));
3645
+ }
3646
+ else if (marketType === 'swap') {
3647
+ response = await this.contractPrivateGetAccountAssets(this.extend(request, params));
3648
+ }
3649
+ else {
3650
+ throw new errors.NotSupported(this.id + ' fetchBalance() not support this method');
3600
3651
  }
3601
- params = this.omit(params, ['margin', 'marginMode', 'symbol', 'symbols']);
3602
- const response = await this[method](this.extend(request, params));
3603
3652
  //
3604
3653
  // spot
3605
3654
  //
@@ -5244,7 +5293,7 @@ class mexc extends mexc$1 {
5244
5293
  * @description marginMode specified by params["marginMode"], this.options["marginMode"], this.options["defaultMarginMode"], params["margin"] = true or this.options["defaultType"] = 'margin'
5245
5294
  * @param {object} [params] extra parameters specific to the exchange API endpoint
5246
5295
  * @param {bool} [params.margin] true for trading spot-margin
5247
- * @returns {array} the marginMode in lowercase
5296
+ * @returns {Array} the marginMode in lowercase
5248
5297
  */
5249
5298
  const defaultType = this.safeString(this.options, 'defaultType');
5250
5299
  const isMargin = this.safeValue(params, 'margin', false);
@@ -11,7 +11,7 @@ var totp = require('./base/functions/totp.js');
11
11
  // ---------------------------------------------------------------------------
12
12
  /**
13
13
  * @class ndax
14
- * @extends Exchange
14
+ * @augments Exchange
15
15
  */
16
16
  class ndax extends ndax$1 {
17
17
  describe() {
@@ -10,7 +10,7 @@ var md5 = require('./static_dependencies/noble-hashes/md5.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class novadax
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class novadax extends novadax$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var rsa = require('./base/functions/rsa.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class oceanex
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class oceanex extends oceanex$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class okcoin
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class okcoin extends okcoin$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class okx
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class okx extends okx$1 {
16
16
  describe() {
@@ -2863,7 +2863,7 @@ class okx extends okx$1 {
2863
2863
  * @name okx#createOrders
2864
2864
  * @description create a list of trade orders
2865
2865
  * @see https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-place-multiple-orders
2866
- * @param {array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2866
+ * @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
2867
2867
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
2868
2868
  */
2869
2869
  await this.loadMarkets();
@@ -3406,7 +3406,7 @@ class okx extends okx$1 {
3406
3406
  * @param {string} symbol unified market symbol
3407
3407
  * @param {object} [params] extra and exchange specific parameters
3408
3408
  * @returns [an order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
3409
- */
3409
+ */
3410
3410
  if (symbol === undefined) {
3411
3411
  throw new errors.ArgumentsRequired(this.id + ' fetchOrder() requires a symbol argument');
3412
3412
  }
@@ -7182,7 +7182,7 @@ class okx extends okx$1 {
7182
7182
  * EXCHANGE SPECIFIC PARAMETERS
7183
7183
  * @param {boolean} [params.autoCxl] whether any pending orders for closing out needs to be automatically canceled when close position via a market order. false or true, the default is false
7184
7184
  * @param {string} [params.tag] order tag a combination of case-sensitive alphanumerics, all numbers, or all letters of up to 16 characters
7185
- * @returns {[object]} [A list of position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
7185
+ * @returns {object[]} [A list of position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
7186
7186
  */
7187
7187
  await this.loadMarkets();
7188
7188
  const market = this.market(symbol);
@@ -9,7 +9,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class p2b
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class p2b extends p2b$1 {
15
15
  describe() {
@@ -530,7 +530,6 @@ class p2b extends p2b$1 {
530
530
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
531
531
  * @param {int} [limit] 1-100, default=50
532
532
  * @param {object} [params] extra parameters specific to the exchange API endpoint
533
- *
534
533
  * @param {int} params.lastId order id
535
534
  * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
536
535
  */
@@ -649,7 +648,6 @@ class p2b extends p2b$1 {
649
648
  * @param {int} [since] timestamp in ms of the earliest candle to fetch
650
649
  * @param {int} [limit] 1-500, default=50
651
650
  * @param {object} [params] extra parameters specific to the exchange API endpoint
652
- *
653
651
  * @param {int} [params.offset] default=0, with this value the last candles are returned
654
652
  * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
655
653
  */
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class paymium
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class paymium extends paymium$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ----------------------------------------------------------------------------
11
11
  /**
12
12
  * @class phemex
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class phemex extends phemex$1 {
16
16
  describe() {