ccxt 4.3.18 → 4.3.20

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 (173) hide show
  1. package/README.md +7 -5
  2. package/dist/cjs/ccxt.js +6 -1
  3. package/dist/cjs/src/abstract/woofipro.js +9 -0
  4. package/dist/cjs/src/ascendex.js +3 -4
  5. package/dist/cjs/src/base/Exchange.js +45 -2
  6. package/dist/cjs/src/base/functions/crypto.js +10 -3
  7. package/dist/cjs/src/base/functions/encode.js +6 -3
  8. package/dist/cjs/src/base/functions/number.js +8 -5
  9. package/dist/cjs/src/base/functions/rsa.js +5 -5
  10. package/dist/cjs/src/bigone.js +1 -1
  11. package/dist/cjs/src/bitfinex.js +25 -1
  12. package/dist/cjs/src/bitfinex2.js +59 -51
  13. package/dist/cjs/src/bitget.js +4 -5
  14. package/dist/cjs/src/bitmart.js +3 -3
  15. package/dist/cjs/src/bitstamp.js +1 -3
  16. package/dist/cjs/src/bybit.js +39 -9
  17. package/dist/cjs/src/coinex.js +360 -560
  18. package/dist/cjs/src/coinlist.js +1 -2
  19. package/dist/cjs/src/deribit.js +1 -1
  20. package/dist/cjs/src/hollaex.js +3 -3
  21. package/dist/cjs/src/indodax.js +1 -1
  22. package/dist/cjs/src/latoken.js +1 -1
  23. package/dist/cjs/src/mexc.js +1 -1
  24. package/dist/cjs/src/novadax.js +0 -1
  25. package/dist/cjs/src/okx.js +17 -0
  26. package/dist/cjs/src/phemex.js +17 -6
  27. package/dist/cjs/src/poloniex.js +1 -2
  28. package/dist/cjs/src/pro/bitget.js +136 -192
  29. package/dist/cjs/src/pro/coinbaseinternational.js +9 -1
  30. package/dist/cjs/src/pro/htx.js +12 -7
  31. package/dist/cjs/src/pro/okx.js +85 -0
  32. package/dist/cjs/src/pro/woofipro.js +1263 -0
  33. package/dist/cjs/src/wavesexchange.js +2 -2
  34. package/dist/cjs/src/woo.js +17 -3
  35. package/dist/cjs/src/woofipro.js +2698 -0
  36. package/js/ccxt.d.ts +8 -2
  37. package/js/ccxt.js +6 -2
  38. package/js/src/abstract/bitget.d.ts +3 -0
  39. package/js/src/abstract/bybit.d.ts +1 -0
  40. package/js/src/abstract/okx.d.ts +1 -0
  41. package/js/src/abstract/woofipro.d.ts +122 -0
  42. package/js/src/abstract/woofipro.js +11 -0
  43. package/js/src/ace.d.ts +2 -2
  44. package/js/src/ascendex.d.ts +5 -15
  45. package/js/src/ascendex.js +3 -4
  46. package/js/src/base/Exchange.d.ts +26 -17
  47. package/js/src/base/Exchange.js +45 -2
  48. package/js/src/base/functions/crypto.d.ts +1 -1
  49. package/js/src/base/functions/crypto.js +10 -3
  50. package/js/src/base/functions/encode.d.ts +1 -1
  51. package/js/src/base/functions/encode.js +6 -3
  52. package/js/src/base/functions/number.d.ts +1 -1
  53. package/js/src/base/functions/number.js +8 -5
  54. package/js/src/base/functions/rsa.js +6 -6
  55. package/js/src/base/types.d.ts +4 -0
  56. package/js/src/bigone.d.ts +4 -14
  57. package/js/src/bigone.js +1 -1
  58. package/js/src/binance.d.ts +13 -71
  59. package/js/src/binancecoinm.d.ts +2 -22
  60. package/js/src/binanceusdm.d.ts +2 -22
  61. package/js/src/bingx.d.ts +4 -14
  62. package/js/src/bit2c.d.ts +2 -2
  63. package/js/src/bitbank.d.ts +2 -2
  64. package/js/src/bitbns.d.ts +2 -2
  65. package/js/src/bitfinex.d.ts +6 -16
  66. package/js/src/bitfinex.js +25 -1
  67. package/js/src/bitfinex2.d.ts +6 -16
  68. package/js/src/bitfinex2.js +59 -51
  69. package/js/src/bitflyer.d.ts +2 -2
  70. package/js/src/bitget.d.ts +7 -17
  71. package/js/src/bitget.js +4 -5
  72. package/js/src/bithumb.d.ts +3 -3
  73. package/js/src/bitmart.d.ts +5 -14
  74. package/js/src/bitmart.js +3 -3
  75. package/js/src/bitmex.d.ts +4 -4
  76. package/js/src/bitopro.d.ts +2 -2
  77. package/js/src/bitrue.d.ts +5 -5
  78. package/js/src/bitso.d.ts +2 -2
  79. package/js/src/bitstamp.d.ts +3 -3
  80. package/js/src/bitstamp.js +1 -3
  81. package/js/src/bitteam.d.ts +2 -2
  82. package/js/src/bitvavo.d.ts +5 -5
  83. package/js/src/bl3p.d.ts +2 -2
  84. package/js/src/blockchaincom.d.ts +2 -2
  85. package/js/src/blofin.d.ts +4 -14
  86. package/js/src/btcalpha.d.ts +2 -2
  87. package/js/src/btcbox.d.ts +2 -2
  88. package/js/src/btcmarkets.d.ts +2 -2
  89. package/js/src/btcturk.d.ts +2 -2
  90. package/js/src/bybit.d.ts +9 -56
  91. package/js/src/bybit.js +39 -9
  92. package/js/src/cex.d.ts +2 -2
  93. package/js/src/coinbase.d.ts +4 -4
  94. package/js/src/coinbasepro.d.ts +3 -3
  95. package/js/src/coincheck.d.ts +2 -2
  96. package/js/src/coinex.d.ts +7 -17
  97. package/js/src/coinex.js +360 -560
  98. package/js/src/coinlist.d.ts +5 -15
  99. package/js/src/coinlist.js +1 -2
  100. package/js/src/coinmate.d.ts +2 -2
  101. package/js/src/coinmetro.d.ts +3 -3
  102. package/js/src/coinone.d.ts +2 -2
  103. package/js/src/coinsph.d.ts +2 -2
  104. package/js/src/coinspot.d.ts +2 -2
  105. package/js/src/cryptocom.d.ts +2 -2
  106. package/js/src/currencycom.d.ts +3 -3
  107. package/js/src/delta.d.ts +5 -43
  108. package/js/src/deribit.d.ts +7 -55
  109. package/js/src/deribit.js +1 -1
  110. package/js/src/digifinex.d.ts +5 -15
  111. package/js/src/exmo.d.ts +2 -2
  112. package/js/src/gate.d.ts +6 -54
  113. package/js/src/gemini.d.ts +2 -2
  114. package/js/src/hitbtc.d.ts +4 -14
  115. package/js/src/hollaex.d.ts +3 -3
  116. package/js/src/hollaex.js +3 -3
  117. package/js/src/htx.d.ts +4 -14
  118. package/js/src/huobijp.d.ts +4 -4
  119. package/js/src/hyperliquid.d.ts +1 -1
  120. package/js/src/idex.d.ts +3 -3
  121. package/js/src/independentreserve.d.ts +2 -2
  122. package/js/src/indodax.d.ts +2 -2
  123. package/js/src/indodax.js +1 -1
  124. package/js/src/kraken.d.ts +4 -14
  125. package/js/src/krakenfutures.d.ts +4 -14
  126. package/js/src/kucoin.d.ts +5 -15
  127. package/js/src/kucoinfutures.d.ts +4 -14
  128. package/js/src/kuna.d.ts +2 -2
  129. package/js/src/latoken.d.ts +5 -15
  130. package/js/src/latoken.js +1 -1
  131. package/js/src/lbank.d.ts +2 -2
  132. package/js/src/luno.d.ts +2 -2
  133. package/js/src/lykke.d.ts +2 -2
  134. package/js/src/mercado.d.ts +2 -2
  135. package/js/src/mexc.d.ts +8 -28
  136. package/js/src/mexc.js +1 -1
  137. package/js/src/ndax.d.ts +2 -2
  138. package/js/src/novadax.d.ts +4 -15
  139. package/js/src/novadax.js +0 -1
  140. package/js/src/okcoin.d.ts +4 -14
  141. package/js/src/okx.d.ts +10 -68
  142. package/js/src/okx.js +17 -0
  143. package/js/src/onetrading.d.ts +2 -2
  144. package/js/src/paymium.d.ts +4 -14
  145. package/js/src/phemex.d.ts +5 -15
  146. package/js/src/phemex.js +17 -6
  147. package/js/src/poloniex.d.ts +3 -13
  148. package/js/src/poloniex.js +1 -2
  149. package/js/src/poloniexfutures.d.ts +2 -2
  150. package/js/src/pro/bitget.js +137 -193
  151. package/js/src/pro/coinbaseinternational.d.ts +3 -3
  152. package/js/src/pro/coinbaseinternational.js +9 -1
  153. package/js/src/pro/htx.js +12 -7
  154. package/js/src/pro/okx.d.ts +4 -1
  155. package/js/src/pro/okx.js +85 -0
  156. package/js/src/pro/woofipro.d.ts +47 -0
  157. package/js/src/pro/woofipro.js +1264 -0
  158. package/js/src/probit.d.ts +3 -3
  159. package/js/src/timex.d.ts +2 -2
  160. package/js/src/tokocrypto.d.ts +3 -3
  161. package/js/src/upbit.d.ts +2 -2
  162. package/js/src/wavesexchange.d.ts +3 -3
  163. package/js/src/wavesexchange.js +2 -2
  164. package/js/src/wazirx.d.ts +2 -2
  165. package/js/src/whitebit.d.ts +3 -13
  166. package/js/src/woo.d.ts +7 -17
  167. package/js/src/woo.js +17 -3
  168. package/js/src/woofipro.d.ts +131 -0
  169. package/js/src/woofipro.js +2699 -0
  170. package/js/src/yobit.d.ts +2 -2
  171. package/js/src/zaif.d.ts +2 -2
  172. package/js/src/zonda.d.ts +4 -14
  173. package/package.json +1 -1
@@ -2549,7 +2549,7 @@ class bitmart extends bitmart$1 {
2549
2549
  else if (isMarketOrder) {
2550
2550
  // for market buy it requires the amount of quote currency to spend
2551
2551
  if (side === 'buy') {
2552
- let notional = this.safeNumber2(params, 'cost', 'notional');
2552
+ let notional = this.safeString2(params, 'cost', 'notional');
2553
2553
  params = this.omit(params, 'cost');
2554
2554
  let createMarketBuyOrderRequiresPrice = true;
2555
2555
  [createMarketBuyOrderRequiresPrice, params] = this.handleOptionAndParams(params, 'createOrder', 'createMarketBuyOrderRequiresPrice', true);
@@ -2560,11 +2560,11 @@ class bitmart extends bitmart$1 {
2560
2560
  else {
2561
2561
  const amountString = this.numberToString(amount);
2562
2562
  const priceString = this.numberToString(price);
2563
- notional = this.parseNumber(Precise["default"].stringMul(amountString, priceString));
2563
+ notional = Precise["default"].stringMul(amountString, priceString);
2564
2564
  }
2565
2565
  }
2566
2566
  else {
2567
- notional = (notional === undefined) ? amount : notional;
2567
+ notional = (notional === undefined) ? this.numberToString(amount) : notional;
2568
2568
  }
2569
2569
  request['notional'] = this.decimalToPrecision(notional, number.TRUNCATE, market['precision']['price'], this.precisionMode);
2570
2570
  }
@@ -2151,10 +2151,8 @@ class bitstamp extends bitstamp$1 {
2151
2151
  */
2152
2152
  await this.loadMarkets();
2153
2153
  const currency = this.currency(code);
2154
- amount = this.currencyToPrecision(code, amount);
2155
- amount = this.parseToNumeric(amount);
2156
2154
  const request = {
2157
- 'amount': amount,
2155
+ 'amount': this.parseToNumeric(this.currencyToPrecision(code, amount)),
2158
2156
  'currency': currency['id'].toUpperCase(),
2159
2157
  };
2160
2158
  let response = undefined;
@@ -346,6 +346,7 @@ class bybit extends bybit$1 {
346
346
  'v5/asset/coin/query-info': 28,
347
347
  'v5/asset/withdraw/query-record': 10,
348
348
  'v5/asset/withdraw/withdrawable-amount': 5,
349
+ 'v5/asset/withdraw/vasp/list': 5,
349
350
  // user
350
351
  'v5/user/query-sub-members': 5,
351
352
  'v5/user/query-api': 5,
@@ -8147,6 +8148,35 @@ class bybit extends bybit$1 {
8147
8148
  'datetime': this.iso8601(timestamp),
8148
8149
  });
8149
8150
  }
8151
+ async getLeverageTiersPaginated(symbol = undefined, params = {}) {
8152
+ await this.loadMarkets();
8153
+ let market = undefined;
8154
+ if (symbol !== undefined) {
8155
+ market = this.market(symbol);
8156
+ }
8157
+ let paginate = false;
8158
+ [paginate, params] = this.handleOptionAndParams(params, 'getLeverageTiersPaginated', 'paginate');
8159
+ if (paginate) {
8160
+ return await this.fetchPaginatedCallCursor('getLeverageTiersPaginated', symbol, undefined, undefined, params, 'nextPageCursor', 'cursor', undefined, 100);
8161
+ }
8162
+ let subType = undefined;
8163
+ [subType, params] = this.handleSubTypeAndParams('getLeverageTiersPaginated', market, params, 'linear');
8164
+ const request = {
8165
+ 'category': subType,
8166
+ };
8167
+ const response = await this.publicGetV5MarketRiskLimit(this.extend(request, params));
8168
+ const result = this.addPaginationCursorToResult(response);
8169
+ const first = this.safeDict(result, 0);
8170
+ const total = result.length;
8171
+ const lastIndex = total - 1;
8172
+ const last = this.safeDict(result, lastIndex);
8173
+ const cursorValue = this.safeString(first, 'nextPageCursor');
8174
+ last['info'] = {
8175
+ 'nextPageCursor': cursorValue,
8176
+ };
8177
+ result[lastIndex] = last;
8178
+ return result;
8179
+ }
8150
8180
  async fetchLeverageTiers(symbols = undefined, params = {}) {
8151
8181
  /**
8152
8182
  * @method
@@ -8156,24 +8186,20 @@ class bybit extends bybit$1 {
8156
8186
  * @param {string[]} [symbols] a list of unified market symbols
8157
8187
  * @param {object} [params] extra parameters specific to the exchange API endpoint
8158
8188
  * @param {string} [params.subType] market subType, ['linear', 'inverse'], default is 'linear'
8189
+ * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
8159
8190
  * @returns {object} a dictionary of [leverage tiers structures]{@link https://docs.ccxt.com/#/?id=leverage-tiers-structure}, indexed by market symbols
8160
8191
  */
8161
8192
  await this.loadMarkets();
8162
8193
  let market = undefined;
8194
+ let symbol = undefined;
8163
8195
  if (symbols !== undefined) {
8164
8196
  market = this.market(symbols[0]);
8165
8197
  if (market['spot']) {
8166
8198
  throw new errors.NotSupported(this.id + ' fetchLeverageTiers() is not supported for spot market');
8167
8199
  }
8200
+ symbol = market['symbol'];
8168
8201
  }
8169
- let subType = undefined;
8170
- [subType, params] = this.handleSubTypeAndParams('fetchTickers', market, params, 'linear');
8171
- const request = {
8172
- 'category': subType,
8173
- };
8174
- const response = await this.publicGetV5MarketRiskLimit(this.extend(request, params));
8175
- const result = this.safeDict(response, 'result', {});
8176
- const data = this.safeList(result, 'list', []);
8202
+ const data = await this.getLeverageTiersPaginated(symbol, this.extend({ 'paginate': true, 'paginationCalls': 20 }, params));
8177
8203
  symbols = this.marketSymbols(symbols);
8178
8204
  return this.parseLeverageTiers(data, symbols, 'symbol');
8179
8205
  }
@@ -8199,9 +8225,13 @@ class bybit extends bybit$1 {
8199
8225
  for (let i = 0; i < keys.length; i++) {
8200
8226
  const marketId = keys[i];
8201
8227
  const entry = grouped[marketId];
8228
+ for (let j = 0; j < entry.length; j++) {
8229
+ const id = this.safeInteger(entry[j], 'id');
8230
+ entry[j]['id'] = id;
8231
+ }
8202
8232
  const market = this.safeMarket(marketId, undefined, undefined, 'contract');
8203
8233
  const symbol = market['symbol'];
8204
- tiers[symbol] = this.parseMarketLeverageTiers(entry, market);
8234
+ tiers[symbol] = this.parseMarketLeverageTiers(this.sortBy(entry, 'id'), market);
8205
8235
  }
8206
8236
  return tiers;
8207
8237
  }