ccxt 4.5.56 → 4.5.57

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 (261) hide show
  1. package/README.md +10 -9
  2. package/dist/ccxt.browser.min.js +10 -10
  3. package/dist/cjs/ccxt.js +6 -11
  4. package/dist/cjs/src/apex.js +1 -1
  5. package/dist/cjs/src/arkham.js +3 -3
  6. package/dist/cjs/src/ascendex.js +2 -2
  7. package/dist/cjs/src/aster.js +7 -4
  8. package/dist/cjs/src/backpack.js +4 -4
  9. package/dist/cjs/src/base/Exchange.js +69 -32
  10. package/dist/cjs/src/base/functions/io.js +25 -0
  11. package/dist/cjs/src/base/functions.js +1 -0
  12. package/dist/cjs/src/bigone.js +3 -3
  13. package/dist/cjs/src/binance.js +192 -194
  14. package/dist/cjs/src/bingx.js +3 -3
  15. package/dist/cjs/src/bitfinex.js +71 -58
  16. package/dist/cjs/src/bitget.js +2 -2
  17. package/dist/cjs/src/bitmart.js +13 -6
  18. package/dist/cjs/src/bitmex.js +1 -1
  19. package/dist/cjs/src/bitopro.js +1 -1
  20. package/dist/cjs/src/bitrue.js +2 -2
  21. package/dist/cjs/src/bitso.js +1 -1
  22. package/dist/cjs/src/bitstamp.js +2 -1
  23. package/dist/cjs/src/bitteam.js +1 -1
  24. package/dist/cjs/src/bittrade.js +0 -1
  25. package/dist/cjs/src/bitvavo.js +457 -34
  26. package/dist/cjs/src/blofin.js +26 -3
  27. package/dist/cjs/src/bullish.js +6 -5
  28. package/dist/cjs/src/bydfi.js +1 -1
  29. package/dist/cjs/src/cex.js +3 -3
  30. package/dist/cjs/src/coinbase.js +75 -65
  31. package/dist/cjs/src/coinbaseexchange.js +2 -2
  32. package/dist/cjs/src/coinbaseinternational.js +2 -1
  33. package/dist/cjs/src/coinex.js +74 -74
  34. package/dist/cjs/src/coinmetro.js +1 -1
  35. package/dist/cjs/src/coinsph.js +1 -1
  36. package/dist/cjs/src/cryptocom.js +46 -48
  37. package/dist/cjs/src/cryptomus.js +43 -39
  38. package/dist/cjs/src/deepcoin.js +3 -2
  39. package/dist/cjs/src/delta.js +51 -52
  40. package/dist/cjs/src/deribit.js +31 -33
  41. package/dist/cjs/src/derive.js +26 -28
  42. package/dist/cjs/src/digifinex.js +43 -44
  43. package/dist/cjs/src/exmo.js +92 -83
  44. package/dist/cjs/src/extended.js +3497 -0
  45. package/dist/cjs/src/foxbit.js +71 -75
  46. package/dist/cjs/src/gate.js +53 -53
  47. package/dist/cjs/src/gemini.js +41 -43
  48. package/dist/cjs/src/grvt.js +4 -4
  49. package/dist/cjs/src/hashkey.js +52 -54
  50. package/dist/cjs/src/hitbtc.js +3 -13
  51. package/dist/cjs/src/hollaex.js +51 -54
  52. package/dist/cjs/src/htx.js +75 -67
  53. package/dist/cjs/src/hyperliquid.js +41 -42
  54. package/dist/cjs/src/indodax.js +2 -2
  55. package/dist/cjs/src/kraken.js +57 -58
  56. package/dist/cjs/src/kucoin.js +3 -2
  57. package/dist/cjs/src/latoken.js +30 -32
  58. package/dist/cjs/src/lbank.js +56 -56
  59. package/dist/cjs/src/lighter.js +35 -37
  60. package/dist/cjs/src/luno.js +35 -43
  61. package/dist/cjs/src/mexc.js +48 -49
  62. package/dist/cjs/src/modetrade.js +50 -52
  63. package/dist/cjs/src/ndax.js +35 -37
  64. package/dist/cjs/src/okx.js +17 -2
  65. package/dist/cjs/src/onetrading.js +21 -23
  66. package/dist/cjs/src/phemex.js +43 -45
  67. package/dist/cjs/src/poloniex.js +17 -12
  68. package/dist/cjs/src/pro/alpaca.js +1 -1
  69. package/dist/cjs/src/pro/apex.js +1 -1
  70. package/dist/cjs/src/pro/arkham.js +1 -1
  71. package/dist/cjs/src/pro/backpack.js +1 -1
  72. package/dist/cjs/src/pro/binance.js +3 -3
  73. package/dist/cjs/src/pro/bitget.js +1 -1
  74. package/dist/cjs/src/pro/bithumb.js +1 -1
  75. package/dist/cjs/src/pro/bitstamp.js +1 -1
  76. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  77. package/dist/cjs/src/pro/bybit.js +1 -1
  78. package/dist/cjs/src/pro/cex.js +1 -1
  79. package/dist/cjs/src/pro/coinex.js +1 -1
  80. package/dist/cjs/src/pro/coinone.js +1 -1
  81. package/dist/cjs/src/pro/cryptocom.js +3 -1
  82. package/dist/cjs/src/pro/dydx.js +1 -1
  83. package/dist/cjs/src/pro/exmo.js +1 -1
  84. package/dist/cjs/src/pro/extended.js +865 -0
  85. package/dist/cjs/src/pro/gate.js +1 -1
  86. package/dist/cjs/src/pro/independentreserve.js +1 -1
  87. package/dist/cjs/src/pro/kucoin.js +1 -1
  88. package/dist/cjs/src/pro/luno.js +3 -3
  89. package/dist/cjs/src/pro/onetrading.js +1 -1
  90. package/dist/cjs/src/pro/toobit.js +1 -1
  91. package/dist/cjs/src/pro/weex.js +1 -1
  92. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +7 -7
  93. package/dist/cjs/src/tokocrypto.js +1 -1
  94. package/dist/cjs/src/toobit.js +2 -2
  95. package/dist/cjs/src/upbit.js +3 -3
  96. package/dist/cjs/src/weex.js +57 -62
  97. package/dist/cjs/src/whitebit.js +61 -63
  98. package/dist/cjs/src/woo.js +65 -54
  99. package/dist/cjs/src/woofipro.js +53 -47
  100. package/dist/cjs/src/xt.js +1 -1
  101. package/dist/cjs/src/zebpay.js +70 -72
  102. package/js/ccxt.d.ts +8 -14
  103. package/js/ccxt.js +6 -10
  104. package/js/src/abstract/bitvavo.d.ts +15 -7
  105. package/js/src/abstract/extended.d.ts +58 -0
  106. package/js/src/apex.js +1 -1
  107. package/js/src/arkham.js +3 -3
  108. package/js/src/ascendex.js +2 -2
  109. package/js/src/aster.js +7 -4
  110. package/js/src/backpack.js +4 -4
  111. package/js/src/base/Exchange.d.ts +10 -6
  112. package/js/src/base/Exchange.js +69 -32
  113. package/js/src/base/functions/io.d.ts +7 -0
  114. package/js/src/base/functions/io.js +24 -0
  115. package/js/src/bigone.js +3 -3
  116. package/js/src/binance.d.ts +2 -0
  117. package/js/src/binance.js +196 -198
  118. package/js/src/bingx.js +3 -3
  119. package/js/src/bitfinex.d.ts +2 -0
  120. package/js/src/bitfinex.js +71 -58
  121. package/js/src/bitget.js +2 -2
  122. package/js/src/bitmart.js +13 -6
  123. package/js/src/bitmex.js +1 -1
  124. package/js/src/bitopro.js +1 -1
  125. package/js/src/bitrue.js +2 -2
  126. package/js/src/bitso.js +1 -1
  127. package/js/src/bitstamp.js +2 -1
  128. package/js/src/bitteam.js +1 -1
  129. package/js/src/bittrade.js +0 -1
  130. package/js/src/bitvavo.d.ts +114 -21
  131. package/js/src/bitvavo.js +457 -34
  132. package/js/src/blofin.d.ts +1 -0
  133. package/js/src/blofin.js +26 -3
  134. package/js/src/bullish.js +6 -5
  135. package/js/src/bydfi.js +1 -1
  136. package/js/src/cex.js +3 -3
  137. package/js/src/coinbase.d.ts +63 -56
  138. package/js/src/coinbase.js +75 -65
  139. package/js/src/coinbaseexchange.js +2 -2
  140. package/js/src/coinbaseinternational.js +2 -1
  141. package/js/src/coinex.d.ts +1 -0
  142. package/js/src/coinex.js +74 -74
  143. package/js/src/coinmetro.d.ts +1 -1
  144. package/js/src/coinmetro.js +1 -1
  145. package/js/src/coinsph.js +1 -1
  146. package/js/src/cryptocom.d.ts +1 -0
  147. package/js/src/cryptocom.js +46 -48
  148. package/js/src/cryptomus.d.ts +2 -1
  149. package/js/src/cryptomus.js +43 -39
  150. package/js/src/deepcoin.js +3 -2
  151. package/js/src/delta.d.ts +1 -0
  152. package/js/src/delta.js +51 -52
  153. package/js/src/deribit.d.ts +1 -0
  154. package/js/src/deribit.js +31 -33
  155. package/js/src/derive.d.ts +1 -0
  156. package/js/src/derive.js +26 -28
  157. package/js/src/digifinex.d.ts +1 -0
  158. package/js/src/digifinex.js +43 -44
  159. package/js/src/exmo.d.ts +1 -0
  160. package/js/src/exmo.js +92 -83
  161. package/js/src/extended.d.ts +554 -0
  162. package/js/src/extended.js +3490 -0
  163. package/js/src/foxbit.d.ts +1 -0
  164. package/js/src/foxbit.js +71 -75
  165. package/js/src/gate.d.ts +1 -0
  166. package/js/src/gate.js +53 -53
  167. package/js/src/gemini.d.ts +2 -1
  168. package/js/src/gemini.js +41 -43
  169. package/js/src/grvt.js +4 -4
  170. package/js/src/hashkey.d.ts +1 -0
  171. package/js/src/hashkey.js +52 -54
  172. package/js/src/hitbtc.d.ts +0 -1
  173. package/js/src/hitbtc.js +3 -13
  174. package/js/src/hollaex.d.ts +1 -0
  175. package/js/src/hollaex.js +51 -54
  176. package/js/src/htx.d.ts +1 -0
  177. package/js/src/htx.js +75 -67
  178. package/js/src/hyperliquid.d.ts +1 -0
  179. package/js/src/hyperliquid.js +41 -42
  180. package/js/src/indodax.js +2 -2
  181. package/js/src/kraken.d.ts +2 -1
  182. package/js/src/kraken.js +57 -58
  183. package/js/src/kucoin.js +3 -2
  184. package/js/src/latoken.d.ts +1 -0
  185. package/js/src/latoken.js +30 -32
  186. package/js/src/lbank.d.ts +1 -0
  187. package/js/src/lbank.js +56 -56
  188. package/js/src/lighter.d.ts +1 -0
  189. package/js/src/lighter.js +35 -37
  190. package/js/src/luno.d.ts +1 -0
  191. package/js/src/luno.js +35 -43
  192. package/js/src/mexc.d.ts +2 -1
  193. package/js/src/mexc.js +48 -49
  194. package/js/src/modetrade.d.ts +1 -0
  195. package/js/src/modetrade.js +50 -52
  196. package/js/src/ndax.d.ts +1 -0
  197. package/js/src/ndax.js +35 -37
  198. package/js/src/okx.js +17 -2
  199. package/js/src/onetrading.d.ts +2 -1
  200. package/js/src/onetrading.js +21 -23
  201. package/js/src/phemex.d.ts +1 -0
  202. package/js/src/phemex.js +43 -45
  203. package/js/src/poloniex.js +17 -12
  204. package/js/src/pro/alpaca.js +1 -1
  205. package/js/src/pro/apex.js +1 -1
  206. package/js/src/pro/arkham.js +1 -1
  207. package/js/src/pro/backpack.js +1 -1
  208. package/js/src/pro/binance.js +3 -3
  209. package/js/src/pro/bitget.js +1 -1
  210. package/js/src/pro/bithumb.js +1 -1
  211. package/js/src/pro/bitstamp.js +1 -1
  212. package/js/src/pro/blockchaincom.js +1 -1
  213. package/js/src/pro/bybit.js +1 -1
  214. package/js/src/pro/cex.js +1 -1
  215. package/js/src/pro/coinex.js +1 -1
  216. package/js/src/pro/coinone.js +1 -1
  217. package/js/src/pro/cryptocom.js +3 -1
  218. package/js/src/pro/dydx.js +1 -1
  219. package/js/src/pro/exmo.js +1 -1
  220. package/js/src/pro/extended.d.ts +126 -0
  221. package/js/src/pro/extended.js +858 -0
  222. package/js/src/pro/gate.js +1 -1
  223. package/js/src/pro/independentreserve.js +1 -1
  224. package/js/src/pro/kucoin.js +1 -1
  225. package/js/src/pro/luno.d.ts +1 -1
  226. package/js/src/pro/luno.js +3 -3
  227. package/js/src/pro/onetrading.js +1 -1
  228. package/js/src/pro/toobit.js +1 -1
  229. package/js/src/pro/weex.js +1 -1
  230. package/js/src/tokocrypto.js +1 -1
  231. package/js/src/toobit.js +2 -2
  232. package/js/src/upbit.js +3 -3
  233. package/js/src/weex.d.ts +1 -0
  234. package/js/src/weex.js +57 -62
  235. package/js/src/whitebit.d.ts +1 -0
  236. package/js/src/whitebit.js +61 -63
  237. package/js/src/woo.d.ts +1 -0
  238. package/js/src/woo.js +65 -54
  239. package/js/src/woofipro.d.ts +1 -0
  240. package/js/src/woofipro.js +53 -47
  241. package/js/src/xt.js +1 -1
  242. package/js/src/zebpay.d.ts +2 -1
  243. package/js/src/zebpay.js +70 -72
  244. package/package.json +7 -7
  245. package/dist/cjs/src/gateio.js +0 -18
  246. package/dist/cjs/src/oxfun.js +0 -2933
  247. package/dist/cjs/src/pro/gateio.js +0 -18
  248. package/dist/cjs/src/pro/oxfun.js +0 -1113
  249. package/js/src/abstract/gateio.d.ts +0 -346
  250. package/js/src/abstract/gateio.js +0 -5
  251. package/js/src/abstract/oxfun.d.ts +0 -37
  252. package/js/src/gateio.d.ts +0 -4
  253. package/js/src/gateio.js +0 -11
  254. package/js/src/oxfun.d.ts +0 -442
  255. package/js/src/oxfun.js +0 -2926
  256. package/js/src/pro/gateio.d.ts +0 -4
  257. package/js/src/pro/gateio.js +0 -11
  258. package/js/src/pro/oxfun.d.ts +0 -234
  259. package/js/src/pro/oxfun.js +0 -1106
  260. /package/dist/cjs/src/abstract/{oxfun.js → extended.js} +0 -0
  261. /package/js/src/abstract/{oxfun.js → extended.js} +0 -0
@@ -1464,6 +1464,7 @@ class blofin extends blofin$1["default"] {
1464
1464
  * @param {object} [params.stopLoss] *stopLoss object in params* containing the triggerPrice at which the attached stop loss order will be triggered
1465
1465
  * @param {float} [params.stopLoss.triggerPrice] stop loss trigger price
1466
1466
  * @param {float} [params.stopLoss.price] stop loss order price (if not provided the order will be a market order)
1467
+ * @param {float} [params.tpsl] whether to force to send the order to the combined TPSL oco order endpoint
1467
1468
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure}
1468
1469
  */
1469
1470
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
@@ -1472,7 +1473,9 @@ class blofin extends blofin$1["default"] {
1472
1473
  const isStopLossPriceDefined = this.safeString(params, 'stopLossPrice') !== undefined;
1473
1474
  const isTakeProfitPriceDefined = this.safeString(params, 'takeProfitPrice') !== undefined;
1474
1475
  const isTriggerOrder = this.safeString(params, 'triggerPrice') !== undefined;
1475
- const isCombinedSlTp = (isStopLossPriceDefined && isTakeProfitPriceDefined);
1476
+ let isTpslEndpoint = false;
1477
+ [isTpslEndpoint, params] = this.handleOptionAndParams(params, 'createOrder', 'tpsl', false);
1478
+ const isCombinedSlTp = (isStopLossPriceDefined && isTakeProfitPriceDefined) || isTpslEndpoint;
1476
1479
  const isSlOrTp = isStopLossPriceDefined || isTakeProfitPriceDefined;
1477
1480
  let response = undefined;
1478
1481
  const reduceOnly = this.safeBool(params, 'reduceOnly');
@@ -1527,11 +1530,31 @@ class blofin extends blofin$1["default"] {
1527
1530
  const takeProfitPrice = this.safeString(params, 'takeProfitPrice');
1528
1531
  if (stopLossPrice !== undefined) {
1529
1532
  request['slTriggerPrice'] = this.priceToPrecision(symbol, stopLossPrice);
1530
- request['slOrderPrice'] = (type === 'market') ? '-1' : this.priceToPrecision(symbol, price);
1533
+ if (type === 'market') {
1534
+ request['slOrderPrice'] = '-1';
1535
+ }
1536
+ else {
1537
+ const slLimitPrice = this.safeString(params, 'stopLossLimitPrice');
1538
+ if (slLimitPrice === undefined) {
1539
+ throw new errors.ArgumentsRequired(this.id + ' createTpslOrder() requires a "stopLossLimitPrice" parameter (instead of "price" argument) for stop loss orders when the order type is not market');
1540
+ }
1541
+ request['slOrderPrice'] = this.priceToPrecision(symbol, slLimitPrice);
1542
+ params = this.omit(params, 'stopLossLimitPrice');
1543
+ }
1531
1544
  }
1532
1545
  if (takeProfitPrice !== undefined) {
1533
1546
  request['tpTriggerPrice'] = this.priceToPrecision(symbol, takeProfitPrice);
1534
- request['tpOrderPrice'] = (type === 'market') ? '-1' : this.priceToPrecision(symbol, price);
1547
+ if (type === 'market') {
1548
+ request['tpOrderPrice'] = '-1';
1549
+ }
1550
+ else {
1551
+ const tpLimitPrice = this.safeString(params, 'takeProfitLimitPrice');
1552
+ if (tpLimitPrice === undefined) {
1553
+ throw new errors.ArgumentsRequired(this.id + ' createTpslOrder() requires a "takeProfitLimitPrice" parameter (instead of "price" argument) for take profit orders when the order type is not market');
1554
+ }
1555
+ request['tpOrderPrice'] = this.priceToPrecision(symbol, tpLimitPrice);
1556
+ params = this.omit(params, 'takeProfitLimitPrice');
1557
+ }
1535
1558
  }
1536
1559
  request['marginMode'] = marginMode;
1537
1560
  params = this.omit(params, ['stopLossPrice', 'takeProfitPrice', 'reduceOnly', 'hedged']);
@@ -2099,7 +2099,7 @@ class bullish extends bullish$1["default"] {
2099
2099
  let networkCode = undefined;
2100
2100
  [networkCode, params] = this.handleNetworkCodeAndParams(params);
2101
2101
  if (networkCode !== undefined) {
2102
- request['network'] = this.networkCodeToId(networkCode);
2102
+ request['network'] = this.networkCodeToId(networkCode, code);
2103
2103
  }
2104
2104
  else {
2105
2105
  throw new errors.ArgumentsRequired(this.id + ' withdraw() requires a network parameter');
@@ -2173,7 +2173,7 @@ class bullish extends bullish$1["default"] {
2173
2173
  'txid': txid,
2174
2174
  'timestamp': timestamp,
2175
2175
  'datetime': this.iso8601(timestamp),
2176
- 'network': this.networkIdToCode(network),
2176
+ 'network': this.networkIdToCode(network, code),
2177
2177
  'addressFrom': sourceAddress,
2178
2178
  'address': address,
2179
2179
  'addressTo': address,
@@ -2370,7 +2370,7 @@ class bullish extends bullish$1["default"] {
2370
2370
  for (let i = 0; i < safeResponse.length; i++) {
2371
2371
  const entry = this.safeDict(safeResponse, i, {});
2372
2372
  const networkId = this.safeString(entry, 'network');
2373
- const networkCode = this.networkIdToCode(networkId);
2373
+ const networkCode = this.networkIdToCode(networkId, code);
2374
2374
  if (network === networkCode) {
2375
2375
  data = entry;
2376
2376
  break;
@@ -2386,10 +2386,11 @@ class bullish extends bullish$1["default"] {
2386
2386
  parseDepositAddress(depositAddress, currency = undefined) {
2387
2387
  const id = this.safeString(depositAddress, 'symbol');
2388
2388
  const network = this.safeString(depositAddress, 'network');
2389
+ const code = this.safeCurrencyCode(id, currency);
2389
2390
  return {
2390
2391
  'info': depositAddress,
2391
- 'currency': this.safeCurrencyCode(id, currency),
2392
- 'network': this.networkIdToCode(network),
2392
+ 'currency': code,
2393
+ 'network': this.networkIdToCode(network, code),
2393
2394
  'address': this.safeString(depositAddress, 'address'),
2394
2395
  'tag': undefined,
2395
2396
  };
@@ -2819,7 +2819,7 @@ class bydfi extends bydfi$1["default"] {
2819
2819
  'txid': this.safeString(transaction, 'txId'),
2820
2820
  'type': undefined,
2821
2821
  'currency': code,
2822
- 'network': this.networkIdToCode(this.safeString(transaction, 'network')),
2822
+ 'network': this.networkIdToCode(this.safeString(transaction, 'network'), code),
2823
2823
  'amount': this.safeNumber(transaction, 'amount'),
2824
2824
  'status': this.parseTransactionStatus(rawStatus),
2825
2825
  'timestamp': timestamp,
@@ -373,7 +373,7 @@ class cex extends cex$1["default"] {
373
373
  for (let j = 0; j < keys.length; j++) {
374
374
  const networkId = keys[j];
375
375
  const rawNetwork = rawNetworks[networkId];
376
- const networkCode = this.networkIdToCode(networkId);
376
+ const networkCode = this.networkIdToCode(networkId, code);
377
377
  const deposit = this.safeString(rawNetwork, 'deposit') === 'enabled';
378
378
  const withdraw = this.safeString(rawNetwork, 'withdrawal') === 'enabled';
379
379
  networks[networkCode] = {
@@ -1701,7 +1701,7 @@ class cex extends cex$1["default"] {
1701
1701
  const request = {
1702
1702
  'accountId': accountId,
1703
1703
  'currency': currency['id'],
1704
- 'blockchain': this.networkCodeToId(networkCode),
1704
+ 'blockchain': this.networkCodeToId(networkCode, currency['code']),
1705
1705
  };
1706
1706
  const response = await this.privatePostGetDepositAddress(this.extend(request, params));
1707
1707
  //
@@ -1726,7 +1726,7 @@ class cex extends cex$1["default"] {
1726
1726
  return {
1727
1727
  'info': depositAddress,
1728
1728
  'currency': currency['code'],
1729
- 'network': this.networkIdToCode(this.safeString(depositAddress, 'blockchain')),
1729
+ 'network': this.networkIdToCode(this.safeString(depositAddress, 'blockchain'), currency['code']),
1730
1730
  'address': address,
1731
1731
  'tag': undefined,
1732
1732
  };