ccxt 4.1.85 → 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 (295) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.js +724 -388
  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 +50 -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 +1 -1
  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 +1 -1
  21. package/dist/cjs/src/bitmart.js +1 -1
  22. package/dist/cjs/src/bitmex.js +2 -2
  23. package/dist/cjs/src/bitopro.js +1 -1
  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 +2 -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/kuna.js +1 -1
  67. package/dist/cjs/src/latoken.js +2 -2
  68. package/dist/cjs/src/lbank.js +1 -1
  69. package/dist/cjs/src/luno.js +1 -1
  70. package/dist/cjs/src/lykke.js +1 -1
  71. package/dist/cjs/src/mercado.js +1 -1
  72. package/dist/cjs/src/mexc.js +102 -53
  73. package/dist/cjs/src/ndax.js +1 -1
  74. package/dist/cjs/src/novadax.js +1 -1
  75. package/dist/cjs/src/oceanex.js +1 -1
  76. package/dist/cjs/src/okcoin.js +1 -1
  77. package/dist/cjs/src/okx.js +4 -4
  78. package/dist/cjs/src/p2b.js +1 -3
  79. package/dist/cjs/src/paymium.js +1 -1
  80. package/dist/cjs/src/phemex.js +1 -1
  81. package/dist/cjs/src/poloniex.js +51 -51
  82. package/dist/cjs/src/poloniexfutures.js +1 -1
  83. package/dist/cjs/src/pro/bitget.js +1 -1
  84. package/dist/cjs/src/pro/bitmex.js +206 -0
  85. package/dist/cjs/src/pro/krakenfutures.js +6 -6
  86. package/dist/cjs/src/pro/mexc.js +1 -1
  87. package/dist/cjs/src/pro/poloniex.js +1 -1
  88. package/dist/cjs/src/pro/poloniexfutures.js +3 -3
  89. package/dist/cjs/src/probit.js +27 -19
  90. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -1
  91. package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +3 -3
  92. package/dist/cjs/src/timex.js +1 -1
  93. package/dist/cjs/src/tokocrypto.js +8 -4
  94. package/dist/cjs/src/upbit.js +1 -1
  95. package/dist/cjs/src/wavesexchange.js +1 -1
  96. package/dist/cjs/src/wazirx.js +1 -1
  97. package/dist/cjs/src/whitebit.js +1 -1
  98. package/dist/cjs/src/woo.js +1 -1
  99. package/dist/cjs/src/yobit.js +1 -1
  100. package/dist/cjs/src/zaif.js +1 -1
  101. package/dist/cjs/src/zonda.js +1 -1
  102. package/js/ccxt.d.ts +1 -1
  103. package/js/ccxt.js +1 -1
  104. package/js/src/ace.d.ts +1 -1
  105. package/js/src/ace.js +1 -1
  106. package/js/src/alpaca.d.ts +1 -1
  107. package/js/src/alpaca.js +2 -2
  108. package/js/src/ascendex.d.ts +1 -1
  109. package/js/src/ascendex.js +2 -2
  110. package/js/src/base/Exchange.d.ts +4 -0
  111. package/js/src/base/Exchange.js +50 -20
  112. package/js/src/base/types.d.ts +1 -0
  113. package/js/src/bigone.d.ts +1 -1
  114. package/js/src/bigone.js +1 -1
  115. package/js/src/binance.d.ts +1 -1
  116. package/js/src/binance.js +2 -2
  117. package/js/src/bingx.js +1 -1
  118. package/js/src/bit2c.d.ts +1 -1
  119. package/js/src/bit2c.js +1 -1
  120. package/js/src/bitbank.d.ts +1 -1
  121. package/js/src/bitbank.js +1 -1
  122. package/js/src/bitbns.d.ts +1 -1
  123. package/js/src/bitbns.js +1 -1
  124. package/js/src/bitfinex.d.ts +1 -1
  125. package/js/src/bitfinex.js +1 -1
  126. package/js/src/bitfinex2.d.ts +1 -1
  127. package/js/src/bitfinex2.js +1 -1
  128. package/js/src/bitflyer.d.ts +1 -1
  129. package/js/src/bitflyer.js +1 -1
  130. package/js/src/bitforex.d.ts +1 -1
  131. package/js/src/bitforex.js +1 -1
  132. package/js/src/bitget.d.ts +1 -1
  133. package/js/src/bitget.js +2 -3
  134. package/js/src/bithumb.d.ts +1 -1
  135. package/js/src/bithumb.js +1 -1
  136. package/js/src/bitmart.d.ts +1 -1
  137. package/js/src/bitmart.js +1 -1
  138. package/js/src/bitmex.d.ts +1 -1
  139. package/js/src/bitmex.js +2 -2
  140. package/js/src/bitopro.d.ts +1 -1
  141. package/js/src/bitopro.js +1 -1
  142. package/js/src/bitpanda.d.ts +1 -1
  143. package/js/src/bitpanda.js +1 -1
  144. package/js/src/bitrue.d.ts +1 -1
  145. package/js/src/bitrue.js +1 -1
  146. package/js/src/bitso.d.ts +1 -1
  147. package/js/src/bitso.js +1 -1
  148. package/js/src/bitstamp.d.ts +1 -1
  149. package/js/src/bitstamp.js +1 -1
  150. package/js/src/bittrex.d.ts +1 -1
  151. package/js/src/bittrex.js +1 -1
  152. package/js/src/bitvavo.d.ts +1 -1
  153. package/js/src/bitvavo.js +1 -1
  154. package/js/src/bl3p.d.ts +1 -1
  155. package/js/src/bl3p.js +1 -1
  156. package/js/src/blockchaincom.d.ts +1 -1
  157. package/js/src/blockchaincom.js +1 -1
  158. package/js/src/btcalpha.d.ts +1 -1
  159. package/js/src/btcalpha.js +1 -1
  160. package/js/src/btcbox.d.ts +1 -1
  161. package/js/src/btcbox.js +1 -1
  162. package/js/src/btcmarkets.d.ts +1 -1
  163. package/js/src/btcmarkets.js +1 -1
  164. package/js/src/btcturk.d.ts +1 -1
  165. package/js/src/btcturk.js +1 -1
  166. package/js/src/bybit.d.ts +1 -1
  167. package/js/src/bybit.js +3 -5
  168. package/js/src/cex.d.ts +1 -1
  169. package/js/src/cex.js +1 -1
  170. package/js/src/coinbase.d.ts +1 -1
  171. package/js/src/coinbase.js +1 -1
  172. package/js/src/coinbasepro.d.ts +1 -1
  173. package/js/src/coinbasepro.js +1 -1
  174. package/js/src/coincheck.d.ts +1 -1
  175. package/js/src/coincheck.js +1 -1
  176. package/js/src/coinex.d.ts +1 -1
  177. package/js/src/coinex.js +2 -2
  178. package/js/src/coinlist.d.ts +1 -1
  179. package/js/src/coinlist.js +1 -1
  180. package/js/src/coinmate.d.ts +1 -1
  181. package/js/src/coinmate.js +1 -1
  182. package/js/src/coinone.d.ts +1 -1
  183. package/js/src/coinone.js +1 -1
  184. package/js/src/coinsph.d.ts +1 -1
  185. package/js/src/coinsph.js +1 -1
  186. package/js/src/coinspot.d.ts +1 -1
  187. package/js/src/coinspot.js +1 -1
  188. package/js/src/cryptocom.d.ts +1 -1
  189. package/js/src/cryptocom.js +3 -3
  190. package/js/src/currencycom.d.ts +1 -1
  191. package/js/src/currencycom.js +1 -1
  192. package/js/src/delta.d.ts +1 -1
  193. package/js/src/delta.js +1 -1
  194. package/js/src/deribit.d.ts +1 -1
  195. package/js/src/deribit.js +1 -1
  196. package/js/src/digifinex.d.ts +1 -1
  197. package/js/src/digifinex.js +160 -112
  198. package/js/src/exmo.d.ts +1 -1
  199. package/js/src/exmo.js +1 -1
  200. package/js/src/gate.d.ts +1 -1
  201. package/js/src/gate.js +1 -1
  202. package/js/src/gemini.d.ts +1 -1
  203. package/js/src/gemini.js +1 -1
  204. package/js/src/hitbtc.d.ts +1 -1
  205. package/js/src/hitbtc.js +2 -2
  206. package/js/src/hitbtc3.d.ts +1 -1
  207. package/js/src/hitbtc3.js +1 -1
  208. package/js/src/hollaex.d.ts +1 -1
  209. package/js/src/hollaex.js +1 -1
  210. package/js/src/htx.d.ts +1 -1
  211. package/js/src/htx.js +2 -2
  212. package/js/src/huobijp.d.ts +1 -1
  213. package/js/src/huobijp.js +1 -1
  214. package/js/src/idex.d.ts +1 -1
  215. package/js/src/idex.js +1 -1
  216. package/js/src/independentreserve.d.ts +1 -1
  217. package/js/src/independentreserve.js +1 -1
  218. package/js/src/indodax.d.ts +1 -1
  219. package/js/src/indodax.js +1 -1
  220. package/js/src/kraken.d.ts +1 -1
  221. package/js/src/kraken.js +2 -2
  222. package/js/src/krakenfutures.d.ts +1 -1
  223. package/js/src/krakenfutures.js +3 -3
  224. package/js/src/kucoin.d.ts +1 -1
  225. package/js/src/kucoin.js +2 -6
  226. package/js/src/kuna.d.ts +1 -1
  227. package/js/src/kuna.js +1 -1
  228. package/js/src/latoken.d.ts +1 -1
  229. package/js/src/latoken.js +2 -2
  230. package/js/src/lbank.d.ts +1 -1
  231. package/js/src/lbank.js +1 -1
  232. package/js/src/luno.d.ts +1 -1
  233. package/js/src/luno.js +1 -1
  234. package/js/src/lykke.d.ts +1 -1
  235. package/js/src/lykke.js +1 -1
  236. package/js/src/mercado.d.ts +1 -1
  237. package/js/src/mercado.js +1 -1
  238. package/js/src/mexc.d.ts +1 -1
  239. package/js/src/mexc.js +102 -53
  240. package/js/src/ndax.d.ts +1 -1
  241. package/js/src/ndax.js +1 -1
  242. package/js/src/novadax.d.ts +1 -1
  243. package/js/src/novadax.js +1 -1
  244. package/js/src/oceanex.d.ts +1 -1
  245. package/js/src/oceanex.js +1 -1
  246. package/js/src/okcoin.d.ts +1 -1
  247. package/js/src/okcoin.js +1 -1
  248. package/js/src/okx.d.ts +1 -1
  249. package/js/src/okx.js +4 -4
  250. package/js/src/p2b.d.ts +1 -1
  251. package/js/src/p2b.js +1 -3
  252. package/js/src/paymium.d.ts +1 -1
  253. package/js/src/paymium.js +1 -1
  254. package/js/src/phemex.d.ts +1 -1
  255. package/js/src/phemex.js +1 -1
  256. package/js/src/poloniex.d.ts +1 -1
  257. package/js/src/poloniex.js +51 -51
  258. package/js/src/poloniexfutures.d.ts +1 -1
  259. package/js/src/poloniexfutures.js +1 -1
  260. package/js/src/pro/bitget.d.ts +1 -1
  261. package/js/src/pro/bitget.js +1 -1
  262. package/js/src/pro/bitmex.d.ts +3 -1
  263. package/js/src/pro/bitmex.js +207 -1
  264. package/js/src/pro/krakenfutures.js +6 -6
  265. package/js/src/pro/mexc.js +1 -1
  266. package/js/src/pro/poloniex.js +1 -1
  267. package/js/src/pro/poloniexfutures.js +3 -3
  268. package/js/src/probit.d.ts +1 -1
  269. package/js/src/probit.js +27 -19
  270. package/js/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +1 -1
  271. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -1
  272. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +3 -3
  273. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +3 -3
  274. package/js/src/timex.d.ts +1 -1
  275. package/js/src/timex.js +1 -1
  276. package/js/src/tokocrypto.d.ts +1 -1
  277. package/js/src/tokocrypto.js +8 -4
  278. package/js/src/upbit.d.ts +1 -1
  279. package/js/src/upbit.js +1 -1
  280. package/js/src/wavesexchange.d.ts +1 -1
  281. package/js/src/wavesexchange.js +1 -1
  282. package/js/src/wazirx.d.ts +1 -1
  283. package/js/src/wazirx.js +1 -1
  284. package/js/src/whitebit.d.ts +1 -1
  285. package/js/src/whitebit.js +1 -1
  286. package/js/src/woo.d.ts +1 -1
  287. package/js/src/woo.js +1 -1
  288. package/js/src/yobit.d.ts +1 -1
  289. package/js/src/yobit.js +1 -1
  290. package/js/src/zaif.d.ts +1 -1
  291. package/js/src/zaif.js +1 -1
  292. package/js/src/zonda.d.ts +1 -1
  293. package/js/src/zonda.js +1 -1
  294. package/package.json +4 -3
  295. package/skip-tests.json +4 -0
@@ -8,7 +8,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
8
8
 
9
9
  /**
10
10
  * @class coinsph
11
- * @extends Exchange
11
+ * @augments Exchange
12
12
  */
13
13
  class coinsph extends coinsph$1 {
14
14
  describe() {
@@ -10,7 +10,7 @@ var Precise = require('./base/Precise.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class coinspot
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class coinspot extends coinspot$1 {
16
16
  describe() {
@@ -9,7 +9,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class cryptocom
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class cryptocom extends cryptocom$1 {
15
15
  describe() {
@@ -1166,7 +1166,7 @@ class cryptocom extends cryptocom$1 {
1166
1166
  * @description create a list of trade orders
1167
1167
  * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-create-order-list-list
1168
1168
  * @see https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html#private-create-order-list-oco
1169
- * @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
1169
+ * @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
1170
1170
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1171
1171
  */
1172
1172
  await this.loadMarkets();
@@ -2228,7 +2228,7 @@ class cryptocom extends cryptocom$1 {
2228
2228
  * @method
2229
2229
  * @description marginMode specified by params["marginMode"], this.options["marginMode"], this.options["defaultMarginMode"], params["margin"] = true or this.options["defaultType"] = 'margin'
2230
2230
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2231
- * @returns {array} the marginMode in lowercase
2231
+ * @returns {Array} the marginMode in lowercase
2232
2232
  */
2233
2233
  const defaultType = this.safeString(this.options, 'defaultType');
2234
2234
  const isMargin = this.safeValue(params, 'margin', false);
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class currencycom
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class currencycom extends currencycom$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class delta
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class delta extends delta$1 {
16
16
  describe() {
@@ -11,7 +11,7 @@ var totp = require('./base/functions/totp.js');
11
11
  // ---------------------------------------------------------------------------
12
12
  /**
13
13
  * @class deribit
14
- * @extends Exchange
14
+ * @augments Exchange
15
15
  */
16
16
  class deribit extends deribit$1 {
17
17
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class digifinex
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class digifinex extends digifinex$1 {
16
16
  describe() {
@@ -530,9 +530,15 @@ class digifinex extends digifinex$1 {
530
530
  async fetchMarketsV2(params = {}) {
531
531
  const defaultType = this.safeString(this.options, 'defaultType');
532
532
  const [marginMode, query] = this.handleMarginModeAndParams('fetchMarketsV2', params);
533
- const method = (marginMode !== undefined) ? 'publicSpotGetMarginSymbols' : 'publicSpotGetTradesSymbols';
534
- let promises = [this[method](query), this.publicSwapGetPublicInstruments(params)];
535
- promises = await Promise.all(promises);
533
+ const promisesRaw = [];
534
+ if (marginMode !== undefined) {
535
+ promisesRaw.push(this.publicSpotGetMarginSymbols(query));
536
+ }
537
+ else {
538
+ promisesRaw.push(this.publicSpotGetTradesSymbols(query));
539
+ }
540
+ promisesRaw.push(this.publicSwapGetPublicInstruments(params));
541
+ const promises = await Promise.all(promisesRaw);
536
542
  const spotMarkets = promises[0];
537
543
  const swapMarkets = promises[1];
538
544
  //
@@ -810,17 +816,21 @@ class digifinex extends digifinex$1 {
810
816
  await this.loadMarkets();
811
817
  let marketType = undefined;
812
818
  [marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
813
- let method = this.getSupportedMapping(marketType, {
814
- 'spot': 'privateSpotGetSpotAssets',
815
- 'margin': 'privateSpotGetMarginAssets',
816
- 'swap': 'privateSwapGetAccountBalance',
817
- });
818
819
  const [marginMode, query] = this.handleMarginModeAndParams('fetchBalance', params);
819
- if (marginMode !== undefined) {
820
- method = 'privateSpotGetMarginAssets';
820
+ let response = undefined;
821
+ if (marginMode !== undefined || marketType === 'margin') {
821
822
  marketType = 'margin';
823
+ response = await this.privateSpotGetMarginAssets(query);
824
+ }
825
+ else if (marketType === 'spot') {
826
+ response = await this.privateSpotGetSpotAssets(query);
827
+ }
828
+ else if (marketType === 'swap') {
829
+ response = await this.privateSwapGetAccountBalance(query);
830
+ }
831
+ else {
832
+ throw new errors.NotSupported(this.id + ' fetchBalance() not support this market type');
822
833
  }
823
- const response = await this[method](query);
824
834
  //
825
835
  // spot and margin
826
836
  //
@@ -877,19 +887,18 @@ class digifinex extends digifinex$1 {
877
887
  const market = this.market(symbol);
878
888
  const [marketType, query] = this.handleMarketTypeAndParams('fetchOrderBook', market, params);
879
889
  const request = {};
880
- let method = undefined;
890
+ if (limit !== undefined) {
891
+ request['limit'] = limit;
892
+ }
893
+ let response = undefined;
881
894
  if (marketType === 'swap') {
882
- method = 'publicSwapGetPublicDepth';
883
895
  request['instrument_id'] = market['id'];
896
+ response = await this.publicSwapGetPublicDepth(this.extend(request, query));
884
897
  }
885
898
  else {
886
- method = 'publicSpotGetOrderBook';
887
899
  request['symbol'] = market['id'];
900
+ response = await this.publicSpotGetOrderBook(this.extend(request, query));
888
901
  }
889
- if (limit !== undefined) {
890
- request['limit'] = limit;
891
- }
892
- const response = await this[method](this.extend(request, query));
893
902
  //
894
903
  // spot
895
904
  //
@@ -960,12 +969,14 @@ class digifinex extends digifinex$1 {
960
969
  }
961
970
  let type = undefined;
962
971
  [type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
963
- let method = 'publicSpotGetTicker';
964
972
  const request = {};
973
+ let response = undefined;
965
974
  if (type === 'swap') {
966
- method = 'publicSwapGetPublicTickers';
975
+ response = await this.publicSwapGetPublicTickers(this.extend(request, params));
976
+ }
977
+ else {
978
+ response = await this.publicSpotGetTicker(this.extend(request, params));
967
979
  }
968
- const response = await this[method](this.extend(request, params));
969
980
  //
970
981
  // spot
971
982
  //
@@ -1040,16 +1051,16 @@ class digifinex extends digifinex$1 {
1040
1051
  */
1041
1052
  await this.loadMarkets();
1042
1053
  const market = this.market(symbol);
1043
- let method = 'publicSpotGetTicker';
1044
1054
  const request = {};
1055
+ let response = undefined;
1045
1056
  if (market['swap']) {
1046
- method = 'publicSwapGetPublicTicker';
1047
1057
  request['instrument_id'] = market['id'];
1058
+ response = await this.publicSwapGetPublicTicker(this.extend(request, params));
1048
1059
  }
1049
1060
  else {
1050
1061
  request['symbol'] = market['id'];
1062
+ response = await this.publicSpotGetTicker(this.extend(request, params));
1051
1063
  }
1052
- const response = await this[method](this.extend(request, params));
1053
1064
  //
1054
1065
  // spot
1055
1066
  //
@@ -1378,19 +1389,19 @@ class digifinex extends digifinex$1 {
1378
1389
  */
1379
1390
  await this.loadMarkets();
1380
1391
  const market = this.market(symbol);
1381
- let method = 'publicSpotGetTrades';
1382
1392
  const request = {};
1393
+ if (limit !== undefined) {
1394
+ request['limit'] = market['swap'] ? Math.min(limit, 100) : limit;
1395
+ }
1396
+ let response = undefined;
1383
1397
  if (market['swap']) {
1384
- method = 'publicSwapGetPublicTrades';
1385
1398
  request['instrument_id'] = market['id'];
1399
+ response = await this.publicSwapGetPublicTrades(this.extend(request, params));
1386
1400
  }
1387
1401
  else {
1388
1402
  request['symbol'] = market['id'];
1403
+ response = await this.publicSpotGetTrades(this.extend(request, params));
1389
1404
  }
1390
- if (limit !== undefined) {
1391
- request['limit'] = market['swap'] ? Math.min(limit, 100) : limit;
1392
- }
1393
- const response = await this[method](this.extend(request, params));
1394
1405
  //
1395
1406
  // spot
1396
1407
  //
@@ -1483,15 +1494,15 @@ class digifinex extends digifinex$1 {
1483
1494
  */
1484
1495
  await this.loadMarkets();
1485
1496
  const market = this.market(symbol);
1486
- let method = 'publicSpotGetKline';
1487
1497
  const request = {};
1498
+ let response = undefined;
1488
1499
  if (market['swap']) {
1489
- method = 'publicSwapGetPublicCandles';
1490
1500
  request['instrument_id'] = market['id'];
1491
1501
  request['granularity'] = timeframe;
1492
1502
  if (limit !== undefined) {
1493
1503
  request['limit'] = limit;
1494
1504
  }
1505
+ response = await this.publicSwapGetPublicCandles(this.extend(request, params));
1495
1506
  }
1496
1507
  else {
1497
1508
  request['symbol'] = market['id'];
@@ -1509,8 +1520,8 @@ class digifinex extends digifinex$1 {
1509
1520
  const duration = this.parseTimeframe(timeframe);
1510
1521
  request['start_time'] = this.sum(endTime, -limit * duration);
1511
1522
  }
1523
+ response = await this.publicSpotGetKline(this.extend(request, params));
1512
1524
  }
1513
- const response = await this[method](this.extend(request, params));
1514
1525
  //
1515
1526
  // spot
1516
1527
  //
@@ -1615,7 +1626,7 @@ class digifinex extends digifinex$1 {
1615
1626
  * @description create a list of trade orders (all orders should be of the same symbol)
1616
1627
  * @see https://docs.digifinex.com/en-ww/spot/v3/rest.html#create-multiple-order
1617
1628
  * @see https://docs.digifinex.com/en-ww/swap/v2/rest.html#batchorder
1618
- * @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
1629
+ * @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
1619
1630
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1620
1631
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1621
1632
  */
@@ -1858,19 +1869,9 @@ class digifinex extends digifinex$1 {
1858
1869
  if (symbol !== undefined) {
1859
1870
  market = this.market(symbol);
1860
1871
  }
1872
+ id = id.toString();
1861
1873
  let marketType = undefined;
1862
1874
  [marketType, params] = this.handleMarketTypeAndParams('cancelOrder', market, params);
1863
- let method = this.getSupportedMapping(marketType, {
1864
- 'spot': 'privateSpotPostSpotOrderCancel',
1865
- 'margin': 'privateSpotPostMarginOrderCancel',
1866
- 'swap': 'privateSwapPostTradeCancelOrder',
1867
- });
1868
- const [marginMode, query] = this.handleMarginModeAndParams('cancelOrder', params);
1869
- if (marginMode !== undefined) {
1870
- method = 'privateSpotPostMarginOrderCancel';
1871
- marketType = 'margin';
1872
- }
1873
- id = id.toString();
1874
1875
  const request = {
1875
1876
  'order_id': id,
1876
1877
  };
@@ -1883,7 +1884,21 @@ class digifinex extends digifinex$1 {
1883
1884
  else {
1884
1885
  request['market'] = marketType;
1885
1886
  }
1886
- const response = await this[method](this.extend(request, query));
1887
+ const [marginMode, query] = this.handleMarginModeAndParams('cancelOrder', params);
1888
+ let response = undefined;
1889
+ if (marginMode !== undefined || marketType === 'margin') {
1890
+ marketType = 'margin';
1891
+ response = await this.privateSpotPostMarginOrderCancel(this.extend(request, query));
1892
+ }
1893
+ else if (marketType === 'spot') {
1894
+ response = await this.privateSpotPostSpotOrderCancel(this.extend(request, query));
1895
+ }
1896
+ else if (marketType === 'swap') {
1897
+ response = await this.privateSwapPostTradeCancelOrder(this.extend(request, query));
1898
+ }
1899
+ else {
1900
+ throw new errors.NotSupported(this.id + ' cancelOrder() not support this market type');
1901
+ }
1887
1902
  //
1888
1903
  // spot and margin
1889
1904
  //
@@ -2130,16 +2145,7 @@ class digifinex extends digifinex$1 {
2130
2145
  }
2131
2146
  let marketType = undefined;
2132
2147
  [marketType, params] = this.handleMarketTypeAndParams('fetchOpenOrders', market, params);
2133
- let method = this.getSupportedMapping(marketType, {
2134
- 'spot': 'privateSpotGetSpotOrderCurrent',
2135
- 'margin': 'privateSpotGetMarginOrderCurrent',
2136
- 'swap': 'privateSwapGetTradeOpenOrders',
2137
- });
2138
2148
  const [marginMode, query] = this.handleMarginModeAndParams('fetchOpenOrders', params);
2139
- if (marginMode !== undefined) {
2140
- method = 'privateSpotGetMarginOrderCurrent';
2141
- marketType = 'margin';
2142
- }
2143
2149
  const request = {};
2144
2150
  const swap = (marketType === 'swap');
2145
2151
  if (swap) {
@@ -2157,7 +2163,20 @@ class digifinex extends digifinex$1 {
2157
2163
  const marketIdRequest = swap ? 'instrument_id' : 'symbol';
2158
2164
  request[marketIdRequest] = market['id'];
2159
2165
  }
2160
- const response = await this[method](this.extend(request, query));
2166
+ let response = undefined;
2167
+ if (marginMode !== undefined || marketType === 'margin') {
2168
+ marketType = 'margin';
2169
+ response = await this.privateSpotGetMarginOrderCurrent(this.extend(request, query));
2170
+ }
2171
+ else if (marketType === 'spot') {
2172
+ response = await this.privateSpotGetSpotOrderCurrent(this.extend(request, query));
2173
+ }
2174
+ else if (marketType === 'swap') {
2175
+ response = await this.privateSwapGetTradeOpenOrders(this.extend(request, query));
2176
+ }
2177
+ else {
2178
+ throw new errors.NotSupported(this.id + ' fetchOpenOrders() not support this market type');
2179
+ }
2161
2180
  //
2162
2181
  // spot and margin
2163
2182
  //
@@ -2232,16 +2251,7 @@ class digifinex extends digifinex$1 {
2232
2251
  }
2233
2252
  let marketType = undefined;
2234
2253
  [marketType, params] = this.handleMarketTypeAndParams('fetchOrders', market, params);
2235
- let method = this.getSupportedMapping(marketType, {
2236
- 'spot': 'privateSpotGetSpotOrderHistory',
2237
- 'margin': 'privateSpotGetMarginOrderHistory',
2238
- 'swap': 'privateSwapGetTradeHistoryOrders',
2239
- });
2240
2254
  const [marginMode, query] = this.handleMarginModeAndParams('fetchOrders', params);
2241
- if (marginMode !== undefined) {
2242
- method = 'privateSpotGetMarginOrderHistory';
2243
- marketType = 'margin';
2244
- }
2245
2255
  const request = {};
2246
2256
  if (marketType === 'swap') {
2247
2257
  if (since !== undefined) {
@@ -2261,7 +2271,20 @@ class digifinex extends digifinex$1 {
2261
2271
  if (limit !== undefined) {
2262
2272
  request['limit'] = limit;
2263
2273
  }
2264
- const response = await this[method](this.extend(request, query));
2274
+ let response = undefined;
2275
+ if (marginMode !== undefined || marketType === 'margin') {
2276
+ marketType = 'margin';
2277
+ response = await this.privateSpotGetMarginOrderHistory(this.extend(request, query));
2278
+ }
2279
+ else if (marketType === 'spot') {
2280
+ response = await this.privateSpotGetSpotOrderHistory(this.extend(request, query));
2281
+ }
2282
+ else if (marketType === 'swap') {
2283
+ response = await this.privateSwapGetTradeHistoryOrders(this.extend(request, query));
2284
+ }
2285
+ else {
2286
+ throw new errors.NotSupported(this.id + ' fetchOrders() not support this market type');
2287
+ }
2265
2288
  //
2266
2289
  // spot and margin
2267
2290
  //
@@ -2335,16 +2358,7 @@ class digifinex extends digifinex$1 {
2335
2358
  }
2336
2359
  let marketType = undefined;
2337
2360
  [marketType, params] = this.handleMarketTypeAndParams('fetchOrder', market, params);
2338
- let method = this.getSupportedMapping(marketType, {
2339
- 'spot': 'privateSpotGetSpotOrder',
2340
- 'margin': 'privateSpotGetMarginOrder',
2341
- 'swap': 'privateSwapGetTradeOrderInfo',
2342
- });
2343
2361
  const [marginMode, query] = this.handleMarginModeAndParams('fetchOrder', params);
2344
- if (marginMode !== undefined) {
2345
- method = 'privateSpotGetMarginOrder';
2346
- marketType = 'margin';
2347
- }
2348
2362
  const request = {
2349
2363
  'order_id': id,
2350
2364
  };
@@ -2356,7 +2370,20 @@ class digifinex extends digifinex$1 {
2356
2370
  else {
2357
2371
  request['market'] = marketType;
2358
2372
  }
2359
- const response = await this[method](this.extend(request, query));
2373
+ let response = undefined;
2374
+ if ((marginMode !== undefined) || (marketType === 'margin')) {
2375
+ marketType = 'margin';
2376
+ response = await this.privateSpotGetMarginOrder(this.extend(request, query));
2377
+ }
2378
+ else if (marketType === 'spot') {
2379
+ response = await this.privateSpotGetSpotOrder(this.extend(request, query));
2380
+ }
2381
+ else if (marketType === 'swap') {
2382
+ response = await this.privateSwapGetTradeOrderInfo(this.extend(request, query));
2383
+ }
2384
+ else {
2385
+ throw new errors.NotSupported(this.id + ' fetchOrder() not support this market type');
2386
+ }
2360
2387
  //
2361
2388
  // spot and margin
2362
2389
  //
@@ -2433,16 +2460,7 @@ class digifinex extends digifinex$1 {
2433
2460
  }
2434
2461
  let marketType = undefined;
2435
2462
  [marketType, params] = this.handleMarketTypeAndParams('fetchMyTrades', market, params);
2436
- let method = this.getSupportedMapping(marketType, {
2437
- 'spot': 'privateSpotGetSpotMytrades',
2438
- 'margin': 'privateSpotGetMarginMytrades',
2439
- 'swap': 'privateSwapGetTradeHistoryTrades',
2440
- });
2441
2463
  const [marginMode, query] = this.handleMarginModeAndParams('fetchMyTrades', params);
2442
- if (marginMode !== undefined) {
2443
- method = 'privateSpotGetMarginMytrades';
2444
- marketType = 'margin';
2445
- }
2446
2464
  if (marketType === 'swap') {
2447
2465
  if (since !== undefined) {
2448
2466
  request['start_timestamp'] = since;
@@ -2461,7 +2479,20 @@ class digifinex extends digifinex$1 {
2461
2479
  if (limit !== undefined) {
2462
2480
  request['limit'] = limit;
2463
2481
  }
2464
- const response = await this[method](this.extend(request, query));
2482
+ let response = undefined;
2483
+ if (marginMode !== undefined || marketType === 'margin') {
2484
+ marketType = 'margin';
2485
+ response = await this.privateSpotGetMarginMytrades(this.extend(request, query));
2486
+ }
2487
+ else if (marketType === 'spot') {
2488
+ response = await this.privateSpotGetSpotMytrades(this.extend(request, query));
2489
+ }
2490
+ else if (marketType === 'swap') {
2491
+ response = await this.privateSwapGetTradeHistoryTrades(this.extend(request, query));
2492
+ }
2493
+ else {
2494
+ throw new errors.NotSupported(this.id + ' fetchMyTrades() not support this market type');
2495
+ }
2465
2496
  //
2466
2497
  // spot and margin
2467
2498
  //
@@ -2579,16 +2610,7 @@ class digifinex extends digifinex$1 {
2579
2610
  const request = {};
2580
2611
  let marketType = undefined;
2581
2612
  [marketType, params] = this.handleMarketTypeAndParams('fetchLedger', undefined, params);
2582
- let method = this.getSupportedMapping(marketType, {
2583
- 'spot': 'privateSpotGetSpotFinancelog',
2584
- 'margin': 'privateSpotGetMarginFinancelog',
2585
- 'swap': 'privateSwapGetAccountFinanceRecord',
2586
- });
2587
2613
  const [marginMode, query] = this.handleMarginModeAndParams('fetchLedger', params);
2588
- if (marginMode !== undefined) {
2589
- method = 'privateSpotGetMarginFinancelog';
2590
- marketType = 'margin';
2591
- }
2592
2614
  if (marketType === 'swap') {
2593
2615
  if (since !== undefined) {
2594
2616
  request['start_timestamp'] = since;
@@ -2609,7 +2631,20 @@ class digifinex extends digifinex$1 {
2609
2631
  if (limit !== undefined) {
2610
2632
  request['limit'] = limit;
2611
2633
  }
2612
- const response = await this[method](this.extend(request, query));
2634
+ let response = undefined;
2635
+ if (marginMode !== undefined || marketType === 'margin') {
2636
+ marketType = 'margin';
2637
+ response = await this.privateSpotGetMarginFinancelog(this.extend(request, query));
2638
+ }
2639
+ else if (marketType === 'spot') {
2640
+ response = await this.privateSpotGetSpotFinancelog(this.extend(request, query));
2641
+ }
2642
+ else if (marketType === 'swap') {
2643
+ response = await this.privateSwapGetAccountFinanceRecord(this.extend(request, query));
2644
+ }
2645
+ else {
2646
+ throw new errors.NotSupported(this.id + ' fetchLedger() not support this market type');
2647
+ }
2613
2648
  //
2614
2649
  // spot and margin
2615
2650
  //
@@ -2726,8 +2761,13 @@ class digifinex extends digifinex$1 {
2726
2761
  if (limit !== undefined) {
2727
2762
  request['size'] = Math.min(500, limit);
2728
2763
  }
2729
- const method = (type === 'deposit') ? 'privateSpotGetDepositHistory' : 'privateSpotGetWithdrawHistory';
2730
- const response = await this[method](this.extend(request, params));
2764
+ let response = undefined;
2765
+ if (type === 'deposit') {
2766
+ response = await this.privateSpotGetDepositHistory(this.extend(request, params));
2767
+ }
2768
+ else {
2769
+ response = await this.privateSpotGetWithdrawHistory(this.extend(request, params));
2770
+ }
2731
2771
  //
2732
2772
  // {
2733
2773
  // "code": 200,
@@ -3361,12 +3401,16 @@ class digifinex extends digifinex$1 {
3361
3401
  const marketIdRequest = (marketType === 'swap') ? 'instrument_id' : 'symbol';
3362
3402
  request[marketIdRequest] = market['id'];
3363
3403
  }
3364
- const method = this.getSupportedMapping(marketType, {
3365
- 'spot': 'privateSpotGetMarginPositions',
3366
- 'margin': 'privateSpotGetMarginPositions',
3367
- 'swap': 'privateSwapGetAccountPositions',
3368
- });
3369
- const response = await this[method](this.extend(request, query));
3404
+ let response = undefined;
3405
+ if (marketType === 'spot' || marketType === 'margin') {
3406
+ response = await this.privateSpotGetMarginPositions(this.extend(request, query));
3407
+ }
3408
+ else if (marketType === 'swap') {
3409
+ response = await this.privateSwapGetAccountPositions(this.extend(request, query));
3410
+ }
3411
+ else {
3412
+ throw new errors.NotSupported(this.id + ' fetchPositions() not support this market type');
3413
+ }
3370
3414
  //
3371
3415
  // swap
3372
3416
  //
@@ -3448,14 +3492,18 @@ class digifinex extends digifinex$1 {
3448
3492
  if (marginMode !== undefined) {
3449
3493
  marketType = 'margin';
3450
3494
  }
3451
- const method = this.getSupportedMapping(marketType, {
3452
- 'spot': 'privateSpotGetMarginPositions',
3453
- 'margin': 'privateSpotGetMarginPositions',
3454
- 'swap': 'privateSwapGetAccountPositions',
3455
- });
3456
3495
  const marketIdRequest = (marketType === 'swap') ? 'instrument_id' : 'symbol';
3457
3496
  request[marketIdRequest] = market['id'];
3458
- const response = await this[method](this.extend(request, query));
3497
+ let response = undefined;
3498
+ if (marketType === 'spot' || marketType === 'margin') {
3499
+ response = await this.privateSpotGetMarginPositions(this.extend(request, query));
3500
+ }
3501
+ else if (marketType === 'swap') {
3502
+ response = await this.privateSwapGetAccountPositions(this.extend(request, query));
3503
+ }
3504
+ else {
3505
+ throw new errors.NotSupported(this.id + ' fetchPosition() not support this market type');
3506
+ }
3459
3507
  //
3460
3508
  // swap
3461
3509
  //
@@ -3870,7 +3918,7 @@ class digifinex extends digifinex$1 {
3870
3918
  * @method
3871
3919
  * @description marginMode specified by params["marginMode"], this.options["marginMode"], this.options["defaultMarginMode"], params["margin"] = true or this.options["defaultType"] = 'margin'
3872
3920
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3873
- * @returns {array} the marginMode in lowercase
3921
+ * @returns {Array} the marginMode in lowercase
3874
3922
  */
3875
3923
  const defaultType = this.safeString(this.options, 'defaultType');
3876
3924
  const isMargin = this.safeValue(params, 'margin', false);
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class exmo
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class exmo extends exmo$1 {
16
16
  describe() {
@@ -9,7 +9,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
9
9
  // ---------------------------------------------------------------------------
10
10
  /**
11
11
  * @class gate
12
- * @extends Exchange
12
+ * @augments Exchange
13
13
  */
14
14
  class gate extends gate$1 {
15
15
  describe() {
@@ -10,7 +10,7 @@ var sha512 = require('./static_dependencies/noble-hashes/sha512.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class gemini
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class gemini extends gemini$1 {
16
16
  describe() {
@@ -8,7 +8,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
8
8
 
9
9
  /**
10
10
  * @class hitbtc
11
- * @extends Exchange
11
+ * @augments Exchange
12
12
  */
13
13
  class hitbtc extends hitbtc$1 {
14
14
  describe() {
@@ -3534,7 +3534,7 @@ class hitbtc extends hitbtc$1 {
3534
3534
  * @method
3535
3535
  * @description marginMode specified by params["marginMode"], this.options["marginMode"], this.options["defaultMarginMode"], params["margin"] = true or this.options["defaultType"] = 'margin'
3536
3536
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3537
- * @returns {array} the marginMode in lowercase
3537
+ * @returns {Array} the marginMode in lowercase
3538
3538
  */
3539
3539
  const defaultType = this.safeString(this.options, 'defaultType');
3540
3540
  const isMargin = this.safeValue(params, 'margin', false);
@@ -5,7 +5,7 @@ var hitbtc = require('./hitbtc.js');
5
5
  // ---------------------------------------------------------------------------
6
6
  /**
7
7
  * @class hitbtc3
8
- * @extends Exchange
8
+ * @augments Exchange
9
9
  */
10
10
  class hitbtc3 extends hitbtc {
11
11
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class hollaex
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class hollaex extends hollaex$1 {
16
16
  describe() {
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class huobi
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class htx extends htx$1 {
16
16
  describe() {
@@ -5256,7 +5256,7 @@ class htx extends htx$1 {
5256
5256
  * @see https://huobiapi.github.io/docs/coin_margined_swap/v1/en/#place-a-batch-of-orders
5257
5257
  * @see https://huobiapi.github.io/docs/usdt_swap/v1/en/#isolated-place-a-batch-of-orders
5258
5258
  * @see https://huobiapi.github.io/docs/usdt_swap/v1/en/#cross-place-a-batch-of-orders
5259
- * @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
5259
+ * @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
5260
5260
  * @param {object} [params] extra parameters specific to the exchange API endpoint
5261
5261
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
5262
5262
  */
@@ -10,7 +10,7 @@ var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
10
10
  // ---------------------------------------------------------------------------
11
11
  /**
12
12
  * @class huobijp
13
- * @extends Exchange
13
+ * @augments Exchange
14
14
  */
15
15
  class huobijp extends huobijp$1 {
16
16
  describe() {