ccxt 4.2.100 → 4.3.1

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 (315) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/ccxt.js +1 -1
  3. package/dist/cjs/src/binance.js +56 -0
  4. package/dist/cjs/src/bingx.js +2 -2
  5. package/dist/cjs/src/bitget.js +64 -2
  6. package/dist/cjs/src/bybit.js +1 -1
  7. package/dist/cjs/src/coinex.js +55 -60
  8. package/dist/cjs/src/kraken.js +8 -3
  9. package/dist/cjs/src/kucoin.js +13 -11
  10. package/dist/cjs/src/okx.js +76 -5
  11. package/dist/cjs/src/pro/kraken.js +2 -2
  12. package/dist/cjs/src/woo.js +40 -0
  13. package/js/ccxt.d.ts +1 -1
  14. package/js/ccxt.js +1 -1
  15. package/js/src/binance.d.ts +3 -1
  16. package/js/src/binance.js +56 -0
  17. package/js/src/bingx.js +3 -3
  18. package/js/src/bitget.d.ts +1 -0
  19. package/js/src/bitget.js +64 -2
  20. package/js/src/bybit.js +1 -1
  21. package/js/src/coinex.js +55 -60
  22. package/js/src/kraken.js +8 -3
  23. package/js/src/kucoin.js +13 -11
  24. package/js/src/okx.d.ts +1 -0
  25. package/js/src/okx.js +76 -5
  26. package/js/src/pro/kraken.js +2 -2
  27. package/js/src/woo.d.ts +1 -0
  28. package/js/src/woo.js +40 -0
  29. package/package.json +2 -1
  30. package/.dockerignore +0 -6
  31. package/.eslintignore +0 -1
  32. package/.git-templates/hooks/pre-push +0 -55
  33. package/.gitattributes +0 -7
  34. package/CHANGELOG.md +0 -6003
  35. package/CODEOWNERS +0 -1
  36. package/CONTRIBUTING.md +0 -1099
  37. package/build.sh +0 -217
  38. package/change.sh +0 -18
  39. package/cleanup.sh +0 -18
  40. package/composer-install.sh +0 -20
  41. package/dist/ccxt.browser.js +0 -327256
  42. package/dist/ccxt.browser.min.js +0 -30
  43. package/dist/ccxt.browser.min.js.LICENSE.txt +0 -12
  44. package/doc/FAQ.rst +0 -1
  45. package/doc/Makefile +0 -20
  46. package/doc/_static/css/dark.css +0 -101
  47. package/doc/_static/css/index.css +0 -128
  48. package/doc/_static/favicon.ico +0 -0
  49. package/doc/_static/javascript/binance-portal.min.js +0 -2369
  50. package/doc/_static/javascript/index.js +0 -195
  51. package/doc/_static/javascript/jquery-ui.min.js +0 -6
  52. package/doc/ccxt.pro.install.rst +0 -1
  53. package/doc/ccxt.pro.manual.rst +0 -1665
  54. package/doc/exchange-markets-by-country.rst +0 -1423
  55. package/doc/exchange-markets.rst +0 -1441
  56. package/doc/index.rst +0 -35
  57. package/doc/install.rst +0 -1
  58. package/doc/make.bat +0 -36
  59. package/doc/manual.rst +0 -7471
  60. package/doc/readme.rst +0 -2191
  61. package/doc/requirements.txt +0 -6
  62. package/examples/ccxt.pro/html/watchTicker.html +0 -51
  63. package/examples/ccxt.pro/js/binance-fetch-balance-snapshot-watch-balance-updates.js +0 -55
  64. package/examples/ccxt.pro/js/binance-https-proxy.js +0 -48
  65. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols-continuously.js +0 -38
  66. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols.js +0 -64
  67. package/examples/ccxt.pro/js/binance-watch-ticker-many-symbols.js +0 -62
  68. package/examples/ccxt.pro/js/build-ohlcv-many-symbols.js +0 -68
  69. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades-warmup.js +0 -82
  70. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades.js +0 -59
  71. package/examples/ccxt.pro/js/exchange-capabitities.js +0 -72
  72. package/examples/ccxt.pro/js/exchange-close.js +0 -46
  73. package/examples/ccxt.pro/js/gateio-swap-watch-many-orderbooks.js +0 -30
  74. package/examples/ccxt.pro/js/gateio-watch-balance.js +0 -23
  75. package/examples/ccxt.pro/js/gateio-watch-order-book.js +0 -71
  76. package/examples/ccxt.pro/js/graceful-shutdown.js +0 -43
  77. package/examples/ccxt.pro/js/many-exchanges-many-streams.js +0 -37
  78. package/examples/ccxt.pro/js/okex-create-futures-order.js +0 -48
  79. package/examples/ccxt.pro/js/okex-watch-balance-and-create-order.js +0 -54
  80. package/examples/ccxt.pro/js/okx-watch-tickers.js +0 -31
  81. package/examples/ccxt.pro/js/one-exchange-many-different-streams.js +0 -46
  82. package/examples/ccxt.pro/js/one-exchange-many-streams-2.js +0 -26
  83. package/examples/ccxt.pro/js/one-exchange-many-streams.js +0 -28
  84. package/examples/ccxt.pro/js/socks-binance-watch-orderbook.js +0 -30
  85. package/examples/ccxt.pro/js/watch-fetch-many-exchanges-many-ordersbooks.js +0 -40
  86. package/examples/ccxt.pro/js/watch-many-exchanges-many-ordersbooks.js +0 -38
  87. package/examples/ccxt.pro/js/watch-many-exchanges-many-symbols.js +0 -40
  88. package/examples/ccxt.pro/js/watch-many-orderbooks.js +0 -27
  89. package/examples/ccxt.pro/js/watch-new-trades-only.js +0 -43
  90. package/examples/ccxt.pro/js/watch-new-trades.js +0 -42
  91. package/examples/ccxt.pro/js/watch-trades-many-symbols.js +0 -29
  92. package/examples/ccxt.pro/js/watch-vs-fetch.js +0 -29
  93. package/examples/cs/Examples.sln +0 -22
  94. package/examples/cs/c#.csproj +0 -19
  95. package/examples/html/basic-cors-proxy.html +0 -46
  96. package/examples/html/basic-inheritance.html +0 -47
  97. package/examples/html/basic-poller.html +0 -52
  98. package/examples/html/basic-rate-limiting.html +0 -49
  99. package/examples/html/basic.html +0 -43
  100. package/examples/html/binance-cors-proxy.html +0 -28
  101. package/examples/html/bitmex-browser-cors-proxy.js +0 -7
  102. package/examples/html/bitmex-cors.html +0 -46
  103. package/examples/html/tradingview-charts.html +0 -61
  104. package/examples/html/webworker/index.html +0 -97
  105. package/examples/html/webworker/worker.js +0 -43
  106. package/examples/js/advanced-error-handling.js +0 -39
  107. package/examples/js/aggregate-orderbook.js +0 -54
  108. package/examples/js/arbitrage-pairs.js +0 -130
  109. package/examples/js/basic-chart.js +0 -29
  110. package/examples/js/basic-orderbook-polling.js +0 -13
  111. package/examples/js/bcc-vs-bch.js +0 -115
  112. package/examples/js/benchmark.js +0 -104
  113. package/examples/js/binance-fetch-all-deposits.js +0 -45
  114. package/examples/js/binance-fetch-ohlcv-many-symbols-async-await.js +0 -34
  115. package/examples/js/binance-fetch-ohlcv-many-symbols-promise-then-callbacks.js +0 -33
  116. package/examples/js/binance-fetchTicker-delivery-vs-future.js +0 -31
  117. package/examples/js/binance-futures-transfer-from-sub-account-to-master.js +0 -41
  118. package/examples/js/binance-margin-stop-order.js +0 -39
  119. package/examples/js/binance-server-time.js +0 -34
  120. package/examples/js/binance-universal-transfer.js +0 -16
  121. package/examples/js/bitfinex-fetch-trades.js +0 -35
  122. package/examples/js/bitfinex2-fetch-trades.js +0 -35
  123. package/examples/js/bitmex-browser-cors-proxy.js +0 -7
  124. package/examples/js/bitpanda-fetchMyTrades-reduce.js +0 -36
  125. package/examples/js/bitrue-fetch-balance.js +0 -28
  126. package/examples/js/bitstamp-private-api.js +0 -115
  127. package/examples/js/bitstamp-public-api.js +0 -39
  128. package/examples/js/bittrex-balance.js +0 -50
  129. package/examples/js/bittrex-fetch-closed-orders-history.js +0 -69
  130. package/examples/js/blockchaincom-withdrawal.js +0 -59
  131. package/examples/js/build-ohlcv-bars.js +0 -48
  132. package/examples/js/builtin-rate-limiting-rest-poller.js +0 -25
  133. package/examples/js/bybit-trailing.js +0 -62
  134. package/examples/js/bybit-updated.cjs +0 -154
  135. package/examples/js/coinbase-fetch-all-balances.js +0 -36
  136. package/examples/js/coinex-fetch-all-deposit-addresses-using-fetchDepositAddress.js +0 -47
  137. package/examples/js/coinex-futures.js +0 -75
  138. package/examples/js/coinone-fetch-tickers.js +0 -54
  139. package/examples/js/coinone-markets.js +0 -16
  140. package/examples/js/compare-two-exchanges-capabilities.js +0 -36
  141. package/examples/js/cors-proxy.js +0 -5
  142. package/examples/js/create-order-handle-errors.js +0 -55
  143. package/examples/js/create-order-position-with-takeprofit-stoploss.js +0 -71
  144. package/examples/js/create-order-with-retry.js +0 -65
  145. package/examples/js/create-order-ws-example.js +0 -25
  146. package/examples/js/create-orders-example.js +0 -17
  147. package/examples/js/create-trailing-amount-order.js +0 -36
  148. package/examples/js/create-trailing-percent-order.js +0 -36
  149. package/examples/js/credentials.json +0 -5
  150. package/examples/js/custom-proxy-agent-for-js.js +0 -10
  151. package/examples/js/custom-proxy-url.js +0 -23
  152. package/examples/js/delta-maintenance-margin-rate-max-leverage.js +0 -60
  153. package/examples/js/env-variables.js +0 -26
  154. package/examples/js/error-handling.js +0 -89
  155. package/examples/js/exchange-capabilities.js +0 -135
  156. package/examples/js/exchanges-by-volume.js +0 -60
  157. package/examples/js/exchanges.js +0 -40
  158. package/examples/js/fetch-all-balances.js +0 -219
  159. package/examples/js/fetch-all-tickers-to-files-2.js +0 -53
  160. package/examples/js/fetch-all-tickers-to-files.js +0 -77
  161. package/examples/js/fetch-balance.js +0 -28
  162. package/examples/js/fetch-create-deposit-address.js +0 -101
  163. package/examples/js/fetch-from-many-exchanges-simultaneously.js +0 -21
  164. package/examples/js/fetch-funding-rate-history.js +0 -25
  165. package/examples/js/fetch-futures/prettier.config.js +0 -5
  166. package/examples/js/fetch-futures/src/index.js +0 -25
  167. package/examples/js/fetch-ohlcv-from-to-mark-index-premium.js +0 -72
  168. package/examples/js/fetch-ohlcv-many-exchanges-continuosly.js +0 -39
  169. package/examples/js/fetch-ohlcv.js +0 -16
  170. package/examples/js/fetch-okex-futures.js +0 -22
  171. package/examples/js/fetch-orders.js +0 -27
  172. package/examples/js/fetch-ticker-from-multiple-exchanges.js +0 -35
  173. package/examples/js/fetch-ticker-where-available.js +0 -75
  174. package/examples/js/fetch-tickers/build/index.js +0 -19
  175. package/examples/js/fetch-tickers/prettier.config.js +0 -5
  176. package/examples/js/fetch-tickers/src/index.js +0 -17
  177. package/examples/js/gateio-create-batch-order.js +0 -43
  178. package/examples/js/gateio-futures.js +0 -49
  179. package/examples/js/gateio-open-close-contract.js +0 -49
  180. package/examples/js/gateio-swaps.js +0 -74
  181. package/examples/js/gdax-fetch-trades-pagination.js +0 -29
  182. package/examples/js/hitbtc2-withdraw.js +0 -61
  183. package/examples/js/how-to-import-one-exchange-esm.js +0 -10
  184. package/examples/js/huobi-futures.js +0 -71
  185. package/examples/js/huobi-open-close-contract.js +0 -63
  186. package/examples/js/huobi-swaps.js +0 -70
  187. package/examples/js/huobipro-market-buy-sell-fetch-trading-limits.js +0 -98
  188. package/examples/js/hybridCJSExample.cjs +0 -19
  189. package/examples/js/hybridESMExample.js +0 -19
  190. package/examples/js/idex-fetch-balance.js +0 -13
  191. package/examples/js/instantiate-all-at-once.js +0 -46
  192. package/examples/js/instantiate-all-from-json.js +0 -31
  193. package/examples/js/kraken-create-and-close-position.js +0 -54
  194. package/examples/js/kraken-fetch-order-trades.js +0 -33
  195. package/examples/js/kraken-margin-trading.js +0 -89
  196. package/examples/js/kucoin-rate-limit.js +0 -38
  197. package/examples/js/latoken-example.js +0 -108
  198. package/examples/js/live-orderbook.js +0 -106
  199. package/examples/js/live-ticker.js +0 -80
  200. package/examples/js/live-tickers.js +0 -74
  201. package/examples/js/load-all-contracts.js +0 -41
  202. package/examples/js/load-all-symbols-at-once.js +0 -69
  203. package/examples/js/load-all-tickers-at-once.js +0 -91
  204. package/examples/js/load-markets-to-files.js +0 -57
  205. package/examples/js/looping-over-all-symbols-of-specific-exchanges.js +0 -61
  206. package/examples/js/looping-over-specific-symbols-of-all-exchanges.js +0 -91
  207. package/examples/js/margin-loan-borrow-buy-sell-repay.js +0 -70
  208. package/examples/js/market-status-and-currency-status.js +0 -29
  209. package/examples/js/ohlcv-console-chart.js +0 -29
  210. package/examples/js/okex-fetch-closed-orders-archive.js +0 -31
  211. package/examples/js/okex-transfer.js +0 -51
  212. package/examples/js/okx-poll-fetch-my-trades.js +0 -37
  213. package/examples/js/okx-poll-rate-limit.js +0 -48
  214. package/examples/js/order-book-extra-level-depth-param.js +0 -20
  215. package/examples/js/phemex-create-order-position-with-takeprofit-stoploss.js +0 -49
  216. package/examples/js/poll-ohlcv.js +0 -43
  217. package/examples/js/poloniex-fetch-order-books.js +0 -35
  218. package/examples/js/poloniex-limits-amount-min.js +0 -62
  219. package/examples/js/proxy-round-robin.js +0 -98
  220. package/examples/js/proxy-usage.js +0 -32
  221. package/examples/js/sample-local-proxy-server-with-cors.js +0 -12
  222. package/examples/js/search-all-exchanges.js +0 -159
  223. package/examples/js/shared-load-markets.js +0 -80
  224. package/examples/js/sort-swap-markets-by-hourly-price-change.js +0 -55
  225. package/examples/js/symbols.js +0 -110
  226. package/examples/js/theocean.js +0 -41
  227. package/examples/js/tickers.js +0 -106
  228. package/examples/js/validate-paginated-data.js +0 -61
  229. package/examples/js/watch-OHLCV-For-Symbols.js +0 -15
  230. package/examples/js/watch-OHLCV.js +0 -12
  231. package/examples/js/watch-OrderBook-For-Symbols.js +0 -11
  232. package/examples/js/watch-Trades-For-Symbols.js +0 -11
  233. package/examples/js/watch-tickers.js +0 -11
  234. package/examples/js/watchOHLCVForSymbols.js +0 -15
  235. package/examples/js/watchOrderBookForSymbols.js +0 -11
  236. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts +0 -2
  237. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts.map +0 -1
  238. package/examples/js/watchPositions-many-exchanges-continuosly.js +0 -49
  239. package/examples/js/watchPositions.d.ts +0 -2
  240. package/examples/js/watchPositions.d.ts.map +0 -1
  241. package/examples/js/watchPositions.js +0 -13
  242. package/examples/js/watchPositionsForSymbols.d.ts +0 -2
  243. package/examples/js/watchPositionsForSymbols.d.ts.map +0 -1
  244. package/examples/js/watchPositionsForSymbols.js +0 -14
  245. package/examples/js/watchTradesForSymbols.js +0 -11
  246. package/examples/js/withdraw-from-one-exchange-to-another.js +0 -50
  247. package/examples/php/README.md +0 -7
  248. package/examples/py/README.md +0 -15
  249. package/examples/py/playing_with_ccxt_example.ipynb +0 -222
  250. package/examples/ts/.eslintrc +0 -111
  251. package/examples/ts/benchmark.ts +0 -134
  252. package/examples/ts/build-ohlcv-bars.ts +0 -53
  253. package/examples/ts/cli.ts +0 -397
  254. package/examples/ts/compare-two-exchanges-capabilities.ts +0 -36
  255. package/examples/ts/create-order-position-with-takeprofit-stoploss.ts +0 -89
  256. package/examples/ts/create-order-ws-example.ts +0 -33
  257. package/examples/ts/create-orders-example.ts +0 -21
  258. package/examples/ts/create-trailing-amount-order.ts +0 -37
  259. package/examples/ts/create-trailing-percent-order.ts +0 -37
  260. package/examples/ts/custom-proxy-agent-for-js.ts +0 -14
  261. package/examples/ts/fetch-futures/package-lock.json +0 -116
  262. package/examples/ts/fetch-futures/package.json +0 -34
  263. package/examples/ts/fetch-futures/prettier.config.js +0 -4
  264. package/examples/ts/fetch-futures/src/index.ts +0 -28
  265. package/examples/ts/fetch-futures/tsconfig.json +0 -28
  266. package/examples/ts/fetch-ohlcv-many-exchanges-continuosly.ts +0 -44
  267. package/examples/ts/fetch-ohlcv.ts +0 -17
  268. package/examples/ts/fetch-tickers/package-lock.json +0 -116
  269. package/examples/ts/fetch-tickers/package.json +0 -34
  270. package/examples/ts/fetch-tickers/prettier.config.js +0 -4
  271. package/examples/ts/fetch-tickers/src/index.ts +0 -21
  272. package/examples/ts/fetch-tickers/tsconfig.json +0 -28
  273. package/examples/ts/how-to-import-one-exchange-esm.ts +0 -11
  274. package/examples/ts/kraken-create-and-close-position.ts +0 -69
  275. package/examples/ts/margin-loan-borrow-buy-sell-repay.ts +0 -72
  276. package/examples/ts/nextjs-page-router/.eslintrc.json +0 -3
  277. package/examples/ts/nextjs-page-router/README.md +0 -43
  278. package/examples/ts/nextjs-page-router/next.config.js +0 -6
  279. package/examples/ts/nextjs-page-router/package-lock.json +0 -7425
  280. package/examples/ts/nextjs-page-router/package.json +0 -28
  281. package/examples/ts/nextjs-page-router/postcss.config.js +0 -6
  282. package/examples/ts/nextjs-page-router/public/favicon.ico +0 -0
  283. package/examples/ts/nextjs-page-router/src/pages/_app.tsx +0 -6
  284. package/examples/ts/nextjs-page-router/src/pages/_document.tsx +0 -13
  285. package/examples/ts/nextjs-page-router/src/pages/balance.tsx +0 -46
  286. package/examples/ts/nextjs-page-router/src/pages/index.tsx +0 -8
  287. package/examples/ts/nextjs-page-router/src/pages/tickers.tsx +0 -61
  288. package/examples/ts/nextjs-page-router/src/styles/globals.css +0 -27
  289. package/examples/ts/nextjs-page-router/tailwind.config.ts +0 -20
  290. package/examples/ts/nextjs-page-router/tsconfig.json +0 -22
  291. package/examples/ts/phemex-create-order-position-with-takeprofit-stoploss.ts +0 -62
  292. package/examples/ts/proxy-usage.ts +0 -41
  293. package/examples/ts/sample-local-proxy-server-with-cors.ts +0 -15
  294. package/examples/ts/watch-OHLCV-For-Symbols.ts +0 -17
  295. package/examples/ts/watch-OHLCV.ts +0 -14
  296. package/examples/ts/watch-OrderBook-For-Symbols.ts +0 -13
  297. package/examples/ts/watch-Trades-For-Symbols.ts +0 -13
  298. package/examples/ts/watch-tickers.ts +0 -13
  299. package/examples/ts/watchPositions-many-exchanges-continuosly.ts +0 -53
  300. package/examples/ts/watchPositions.ts +0 -15
  301. package/examples/ts/watchPositionsForSymbols.ts +0 -16
  302. package/examples/tsconfig.json +0 -27
  303. package/examples2md.js +0 -79
  304. package/gource.sh +0 -3
  305. package/index.html +0 -7
  306. package/jsdoc2md.js +0 -122
  307. package/multilang.sh +0 -164
  308. package/pro-tests.json +0 -57
  309. package/pyproject.toml +0 -8
  310. package/rollup.config.js +0 -60
  311. package/skip-tests.json +0 -1653
  312. package/test-commonjs.cjs +0 -65
  313. package/tests-manager.sh +0 -96
  314. package/tsconfig.json +0 -111
  315. package/webpack.config.js +0 -46
package/README.md CHANGED
@@ -212,13 +212,13 @@ console.log(version, Object.keys(exchanges));
212
212
 
213
213
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
214
214
 
215
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.100/dist/ccxt.browser.js
216
- * unpkg: https://unpkg.com/ccxt@4.2.100/dist/ccxt.browser.js
215
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.1/dist/ccxt.browser.js
216
+ * unpkg: https://unpkg.com/ccxt@4.3.1/dist/ccxt.browser.js
217
217
 
218
218
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
219
219
 
220
220
  ```HTML
221
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.100/dist/ccxt.browser.js"></script>
221
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.1/dist/ccxt.browser.js"></script>
222
222
  ```
223
223
 
224
224
  Creates a global `ccxt` object:
package/dist/cjs/ccxt.js CHANGED
@@ -182,7 +182,7 @@ var woo$1 = require('./src/pro/woo.js');
182
182
 
183
183
  //-----------------------------------------------------------------------------
184
184
  // this is updated by vss.js when building
185
- const version = '4.2.100';
185
+ const version = '4.3.1';
186
186
  Exchange["default"].ccxtVersion = version;
187
187
  const exchanges = {
188
188
  'ace': ace,
@@ -40,6 +40,7 @@ class binance extends binance$1 {
40
40
  'cancelOrders': true,
41
41
  'closeAllPositions': false,
42
42
  'closePosition': false,
43
+ 'createConvertTrade': true,
43
44
  'createDepositAddress': false,
44
45
  'createLimitBuyOrder': true,
45
46
  'createLimitSellOrder': true,
@@ -12646,6 +12647,61 @@ class binance extends binance$1 {
12646
12647
  }
12647
12648
  return result;
12648
12649
  }
12650
+ async createConvertTrade(id, fromCode, toCode, amount = undefined, params = {}) {
12651
+ /**
12652
+ * @method
12653
+ * @name binance#createConvertTrade
12654
+ * @description convert from one currency to another
12655
+ * @see https://binance-docs.github.io/apidocs/spot/en/#busd-convert-trade
12656
+ * @param {string} id the id of the trade that you want to make
12657
+ * @param {string} fromCode the currency that you want to sell and convert from
12658
+ * @param {string} toCode the currency that you want to buy and convert into
12659
+ * @param {float} [amount] how much you want to trade in units of the from currency
12660
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
12661
+ * @returns {object} a [conversion structure]{@link https://docs.ccxt.com/#/?id=conversion-structure}
12662
+ */
12663
+ await this.loadMarkets();
12664
+ const request = {
12665
+ 'clientTranId': id,
12666
+ 'asset': fromCode,
12667
+ 'targetAsset': toCode,
12668
+ 'amount': amount,
12669
+ };
12670
+ const response = await this.sapiPostAssetConvertTransfer(this.extend(request, params));
12671
+ //
12672
+ // {
12673
+ // "tranId": 118263407119,
12674
+ // "status": "S"
12675
+ // }
12676
+ //
12677
+ const fromCurrency = this.currency(fromCode);
12678
+ const toCurrency = this.currency(toCode);
12679
+ return this.parseConversion(response, fromCurrency, toCurrency);
12680
+ }
12681
+ parseConversion(conversion, fromCurrency = undefined, toCurrency = undefined) {
12682
+ //
12683
+ // createConvertTrade
12684
+ //
12685
+ // {
12686
+ // "tranId": 118263407119,
12687
+ // "status": "S"
12688
+ // }
12689
+ //
12690
+ const fromCode = this.safeCurrencyCode(undefined, fromCurrency);
12691
+ const toCode = this.safeCurrencyCode(undefined, toCurrency);
12692
+ return {
12693
+ 'info': conversion,
12694
+ 'timestamp': undefined,
12695
+ 'datetime': undefined,
12696
+ 'id': this.safeString(conversion, 'tranId'),
12697
+ 'fromCurrency': fromCode,
12698
+ 'fromAmount': undefined,
12699
+ 'toCurrency': toCode,
12700
+ 'toAmount': undefined,
12701
+ 'price': undefined,
12702
+ 'fee': undefined,
12703
+ };
12704
+ }
12649
12705
  }
12650
12706
 
12651
12707
  module.exports = binance;
@@ -384,7 +384,7 @@ class bingx extends bingx$1 {
384
384
  '100400': errors.BadRequest,
385
385
  '100421': errors.BadSymbol,
386
386
  '100440': errors.ExchangeError,
387
- '100500': errors.ExchangeError,
387
+ '100500': errors.ExchangeNotAvailable,
388
388
  '100503': errors.ExchangeError,
389
389
  '80001': errors.BadRequest,
390
390
  '80012': errors.InsufficientFunds,
@@ -3976,7 +3976,7 @@ class bingx extends bingx$1 {
3976
3976
  let market = undefined;
3977
3977
  if (symbol !== undefined) {
3978
3978
  market = this.market(symbol);
3979
- request['symbol'] = symbol;
3979
+ request['symbol'] = market['id'];
3980
3980
  }
3981
3981
  if (since !== undefined) {
3982
3982
  request['startTime'] = since;
@@ -37,6 +37,7 @@ class bitget extends bitget$1 {
37
37
  'cancelOrders': true,
38
38
  'closeAllPositions': true,
39
39
  'closePosition': true,
40
+ 'createConvertTrade': true,
40
41
  'createDepositAddress': false,
41
42
  'createMarketBuyOrderWithCost': true,
42
43
  'createMarketOrderWithCost': false,
@@ -8458,8 +8459,8 @@ class bitget extends bitget$1 {
8458
8459
  */
8459
8460
  await this.loadMarkets();
8460
8461
  const request = {
8461
- 'fromCoin': fromCode.toUpperCase(),
8462
- 'toCoin': toCode.toUpperCase(),
8462
+ 'fromCoin': fromCode,
8463
+ 'toCoin': toCode,
8463
8464
  'fromCoinSize': this.numberToString(amount),
8464
8465
  };
8465
8466
  const response = await this.privateConvertGetV2ConvertQuotedPrice(this.extend(request, params));
@@ -8486,6 +8487,58 @@ class bitget extends bitget$1 {
8486
8487
  const toCurrency = this.currency(toCurrencyId);
8487
8488
  return this.parseConversion(data, fromCurrency, toCurrency);
8488
8489
  }
8490
+ async createConvertTrade(id, fromCode, toCode, amount = undefined, params = {}) {
8491
+ /**
8492
+ * @method
8493
+ * @name bitget#createConvertTrade
8494
+ * @description convert from one currency to another
8495
+ * @see https://www.bitget.com/api-doc/common/convert/Trade
8496
+ * @param {string} id the id of the trade that you want to make
8497
+ * @param {string} fromCode the currency that you want to sell and convert from
8498
+ * @param {string} toCode the currency that you want to buy and convert into
8499
+ * @param {float} amount how much you want to trade in units of the from currency
8500
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
8501
+ * @param {string} params.price the price of the conversion, obtained from fetchConvertQuote()
8502
+ * @param {string} params.toAmount the amount you want to trade in units of the toCurrency, obtained from fetchConvertQuote()
8503
+ * @returns {object} a [conversion structure]{@link https://docs.ccxt.com/#/?id=conversion-structure}
8504
+ */
8505
+ await this.loadMarkets();
8506
+ const price = this.safeString2(params, 'price', 'cnvtPrice');
8507
+ if (price === undefined) {
8508
+ throw new errors.ArgumentsRequired(this.id + ' createConvertTrade() requires a price parameter');
8509
+ }
8510
+ const toAmount = this.safeString2(params, 'toAmount', 'toCoinSize');
8511
+ if (toAmount === undefined) {
8512
+ throw new errors.ArgumentsRequired(this.id + ' createConvertTrade() requires a toAmount parameter');
8513
+ }
8514
+ params = this.omit(params, ['price', 'toAmount']);
8515
+ const request = {
8516
+ 'traceId': id,
8517
+ 'fromCoin': fromCode,
8518
+ 'toCoin': toCode,
8519
+ 'fromCoinSize': this.numberToString(amount),
8520
+ 'toCoinSize': toAmount,
8521
+ 'cnvtPrice': price,
8522
+ };
8523
+ const response = await this.privateConvertPostV2ConvertTrade(this.extend(request, params));
8524
+ //
8525
+ // {
8526
+ // "code": "00000",
8527
+ // "msg": "success",
8528
+ // "requestTime": 1712123746203,
8529
+ // "data": {
8530
+ // "cnvtPrice": "0.99940076",
8531
+ // "toCoin": "USDC",
8532
+ // "toCoinSize": "4.99700379",
8533
+ // "ts": "1712123746217"
8534
+ // }
8535
+ // }
8536
+ //
8537
+ const data = this.safeDict(response, 'data', {});
8538
+ const toCurrencyId = this.safeString(data, 'toCoin', toCode);
8539
+ const toCurrency = this.currency(toCurrencyId);
8540
+ return this.parseConversion(data, undefined, toCurrency);
8541
+ }
8489
8542
  parseConversion(conversion, fromCurrency = undefined, toCurrency = undefined) {
8490
8543
  //
8491
8544
  // fetchConvertQuote
@@ -8500,6 +8553,15 @@ class bitget extends bitget$1 {
8500
8553
  // "fee": "0"
8501
8554
  // }
8502
8555
  //
8556
+ // createConvertTrade
8557
+ //
8558
+ // {
8559
+ // "cnvtPrice": "0.99940076",
8560
+ // "toCoin": "USDC",
8561
+ // "toCoinSize": "4.99700379",
8562
+ // "ts": "1712123746217"
8563
+ // }
8564
+ //
8503
8565
  const timestamp = this.safeInteger(conversion, 'ts');
8504
8566
  const fromCoin = this.safeString(conversion, 'fromCoin');
8505
8567
  const fromCode = this.safeCurrencyCode(fromCoin, fromCurrency);
@@ -5378,7 +5378,7 @@ class bybit extends bybit$1 {
5378
5378
  const coin = this.safeString(result, 'coin');
5379
5379
  currency = this.currency(coin);
5380
5380
  const parsed = this.parseDepositAddresses(chains, [currency['code']], false, {
5381
- 'currency': currency['id'],
5381
+ 'currency': currency['code'],
5382
5382
  });
5383
5383
  return this.indexBy(parsed, 'network');
5384
5384
  }
@@ -612,55 +612,52 @@ class coinex extends coinex$1 {
612
612
  * @method
613
613
  * @name coinex#fetchMarkets
614
614
  * @description retrieves data on all markets for coinex
615
- * @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot001_market002_all_market_info
616
- * @see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http006_market_list
615
+ * @see https://docs.coinex.com/api/v2/spot/market/http/list-market
616
+ * @see https://docs.coinex.com/api/v2/futures/market/http/list-market
617
617
  * @param {object} [params] extra parameters specific to the exchange API endpoint
618
618
  * @returns {object[]} an array of objects representing market data
619
619
  */
620
- let promises = [
620
+ const promisesUnresolved = [
621
621
  this.fetchSpotMarkets(params),
622
622
  this.fetchContractMarkets(params),
623
623
  ];
624
- promises = await Promise.all(promises);
624
+ const promises = await Promise.all(promisesUnresolved);
625
625
  const spotMarkets = promises[0];
626
626
  const swapMarkets = promises[1];
627
627
  return this.arrayConcat(spotMarkets, swapMarkets);
628
628
  }
629
629
  async fetchSpotMarkets(params) {
630
- const response = await this.v1PublicGetMarketInfo(params);
630
+ const response = await this.v2PublicGetSpotMarket(params);
631
631
  //
632
632
  // {
633
633
  // "code": 0,
634
- // "data": {
635
- // "WAVESBTC": {
636
- // "name": "WAVESBTC",
637
- // "min_amount": "1",
638
- // "maker_fee_rate": "0.001",
639
- // "taker_fee_rate": "0.001",
640
- // "pricing_name": "BTC",
641
- // "pricing_decimal": 8,
642
- // "trading_name": "WAVES",
643
- // "trading_decimal": 8
644
- // }
645
- // }
634
+ // "data": [
635
+ // {
636
+ // "base_ccy": "SORA",
637
+ // "base_ccy_precision": 8,
638
+ // "is_amm_available": true,
639
+ // "is_margin_available": false,
640
+ // "maker_fee_rate": "0.003",
641
+ // "market": "SORAUSDT",
642
+ // "min_amount": "500",
643
+ // "quote_ccy": "USDT",
644
+ // "quote_ccy_precision": 6,
645
+ // "taker_fee_rate": "0.003"
646
+ // },
647
+ // ],
648
+ // "message": "OK"
646
649
  // }
647
650
  //
648
- const markets = this.safeValue(response, 'data', {});
651
+ const markets = this.safeList(response, 'data', []);
649
652
  const result = [];
650
- const keys = Object.keys(markets);
651
- for (let i = 0; i < keys.length; i++) {
652
- const key = keys[i];
653
- const market = markets[key];
654
- const id = this.safeString(market, 'name');
655
- const tradingName = this.safeString(market, 'trading_name');
656
- const baseId = tradingName;
657
- const quoteId = this.safeString(market, 'pricing_name');
653
+ for (let i = 0; i < markets.length; i++) {
654
+ const market = markets[i];
655
+ const id = this.safeString(market, 'market');
656
+ const baseId = this.safeString(market, 'base_ccy');
657
+ const quoteId = this.safeString(market, 'quote_ccy');
658
658
  const base = this.safeCurrencyCode(baseId);
659
659
  const quote = this.safeCurrencyCode(quoteId);
660
- let symbol = base + '/' + quote;
661
- if (tradingName === id) {
662
- symbol = id;
663
- }
660
+ const symbol = base + '/' + quote;
664
661
  result.push({
665
662
  'id': id,
666
663
  'symbol': symbol,
@@ -688,8 +685,8 @@ class coinex extends coinex$1 {
688
685
  'strike': undefined,
689
686
  'optionType': undefined,
690
687
  'precision': {
691
- 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'trading_decimal'))),
692
- 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'pricing_decimal'))),
688
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'base_ccy_precision'))),
689
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'quote_ccy_precision'))),
693
690
  },
694
691
  'limits': {
695
692
  'leverage': {
@@ -716,45 +713,43 @@ class coinex extends coinex$1 {
716
713
  return result;
717
714
  }
718
715
  async fetchContractMarkets(params) {
719
- const response = await this.v1PerpetualPublicGetMarketList(params);
716
+ const response = await this.v2PublicGetFuturesMarket(params);
720
717
  //
721
718
  // {
722
719
  // "code": 0,
723
720
  // "data": [
724
721
  // {
725
- // "name": "BTCUSD",
726
- // "type": 2, // 1: USDT-M Contracts, 2: Coin-M Contracts
727
- // "leverages": ["3", "5", "8", "10", "15", "20", "30", "50", "100"],
728
- // "stock": "BTC",
729
- // "money": "USD",
730
- // "fee_prec": 5,
731
- // "stock_prec": 8,
732
- // "money_prec": 1,
733
- // "amount_prec": 0,
734
- // "amount_min": "10",
735
- // "multiplier": "1",
736
- // "tick_size": "0.1", // Min. Price Increment
737
- // "available": true
722
+ // "base_ccy": "BTC",
723
+ // "base_ccy_precision": 8,
724
+ // "contract_type": "inverse",
725
+ // "leverage": ["1","2","3","5","8","10","15","20","30","50","100"],
726
+ // "maker_fee_rate": "0",
727
+ // "market": "BTCUSD",
728
+ // "min_amount": "10",
729
+ // "open_interest_volume": "2566879",
730
+ // "quote_ccy": "USD",
731
+ // "quote_ccy_precision": 2,
732
+ // "taker_fee_rate": "0"
738
733
  // },
739
734
  // ],
740
735
  // "message": "OK"
741
736
  // }
742
737
  //
743
- const markets = this.safeValue(response, 'data', []);
738
+ const markets = this.safeList(response, 'data', []);
744
739
  const result = [];
745
740
  for (let i = 0; i < markets.length; i++) {
746
741
  const entry = markets[i];
747
742
  const fees = this.fees;
748
- const leverages = this.safeValue(entry, 'leverages', []);
749
- const subType = this.safeInteger(entry, 'type');
750
- const linear = (subType === 1);
751
- const inverse = (subType === 2);
752
- const id = this.safeString(entry, 'name');
753
- const baseId = this.safeString(entry, 'stock');
754
- const quoteId = this.safeString(entry, 'money');
743
+ const leverages = this.safeList(entry, 'leverage', []);
744
+ const subType = this.safeString(entry, 'contract_type');
745
+ const linear = (subType === 'linear');
746
+ const inverse = (subType === 'inverse');
747
+ const id = this.safeString(entry, 'market');
748
+ const baseId = this.safeString(entry, 'base_ccy');
749
+ const quoteId = this.safeString(entry, 'quote_ccy');
755
750
  const base = this.safeCurrencyCode(baseId);
756
751
  const quote = this.safeCurrencyCode(quoteId);
757
- const settleId = (subType === 1) ? 'USDT' : baseId;
752
+ const settleId = (subType === 'linear') ? 'USDT' : baseId;
758
753
  const settle = this.safeCurrencyCode(settleId);
759
754
  const symbol = base + '/' + quote + ':' + settle;
760
755
  const leveragesLength = leverages.length;
@@ -773,20 +768,20 @@ class coinex extends coinex$1 {
773
768
  'swap': true,
774
769
  'future': false,
775
770
  'option': false,
776
- 'active': this.safeValue(entry, 'available'),
771
+ 'active': undefined,
777
772
  'contract': true,
778
773
  'linear': linear,
779
774
  'inverse': inverse,
780
775
  'taker': fees['trading']['taker'],
781
776
  'maker': fees['trading']['maker'],
782
- 'contractSize': this.safeNumber(entry, 'multiplier'),
777
+ 'contractSize': this.parseNumber('1'),
783
778
  'expiry': undefined,
784
779
  'expiryDatetime': undefined,
785
780
  'strike': undefined,
786
781
  'optionType': undefined,
787
782
  'precision': {
788
- 'amount': this.parseNumber(this.parsePrecision(this.safeString(entry, 'amount_prec'))),
789
- 'price': this.parseNumber(this.parsePrecision(this.safeString(entry, 'money_prec'))),
783
+ 'amount': this.parseNumber(this.parsePrecision(this.safeString(entry, 'base_ccy_precision'))),
784
+ 'price': this.parseNumber(this.parsePrecision(this.safeString(entry, 'quote_ccy_precision'))),
790
785
  },
791
786
  'limits': {
792
787
  'leverage': {
@@ -794,7 +789,7 @@ class coinex extends coinex$1 {
794
789
  'max': this.safeNumber(leverages, leveragesLength - 1),
795
790
  },
796
791
  'amount': {
797
- 'min': this.safeNumber(entry, 'amount_min'),
792
+ 'min': this.safeNumber(entry, 'min_amount'),
798
793
  'max': undefined,
799
794
  },
800
795
  'price': {
@@ -1377,7 +1377,7 @@ class kraken extends kraken$1 {
1377
1377
  'ordertype': type,
1378
1378
  'volume': this.amountToPrecision(symbol, amount),
1379
1379
  };
1380
- const orderRequest = this.orderRequest('createOrder()', symbol, type, request, price, params);
1380
+ const orderRequest = this.orderRequest('createOrder', symbol, type, request, price, params);
1381
1381
  const response = await this.privatePostAddOrder(this.extend(orderRequest[0], orderRequest[1]));
1382
1382
  //
1383
1383
  // {
@@ -1742,7 +1742,12 @@ class kraken extends kraken$1 {
1742
1742
  }
1743
1743
  }
1744
1744
  if (reduceOnly) {
1745
- request['reduce_only'] = 'true'; // not using boolean in this case, because the urlencodedNested transforms it into 'True' string
1745
+ if (method === 'createOrderWs') {
1746
+ request['reduce_only'] = true; // ws request can't have stringified bool
1747
+ }
1748
+ else {
1749
+ request['reduce_only'] = 'true'; // not using boolean in this case, because the urlencodedNested transforms it into 'True' string
1750
+ }
1746
1751
  }
1747
1752
  let close = this.safeValue(params, 'close');
1748
1753
  if (close !== undefined) {
@@ -1803,7 +1808,7 @@ class kraken extends kraken$1 {
1803
1808
  if (amount !== undefined) {
1804
1809
  request['volume'] = this.amountToPrecision(symbol, amount);
1805
1810
  }
1806
- const orderRequest = this.orderRequest('editOrder()', symbol, type, request, price, params);
1811
+ const orderRequest = this.orderRequest('editOrder', symbol, type, request, price, params);
1807
1812
  const response = await this.privatePostEditOrder(this.extend(orderRequest[0], orderRequest[1]));
1808
1813
  //
1809
1814
  // {
@@ -587,6 +587,8 @@ class kucoin extends kucoin$1 {
587
587
  'BIFI': 'BIFIF',
588
588
  'VAI': 'VAIOT',
589
589
  'WAX': 'WAXP',
590
+ 'ALT': 'APTOSLAUNCHTOKEN',
591
+ 'KALT': 'ALT', // ALTLAYER
590
592
  },
591
593
  'options': {
592
594
  'version': 'v1',
@@ -1807,7 +1809,7 @@ class kucoin extends kucoin$1 {
1807
1809
  }
1808
1810
  let code = undefined;
1809
1811
  if (currency !== undefined) {
1810
- code = currency['id'];
1812
+ code = this.safeCurrencyCode(currency['id']);
1811
1813
  if (code !== 'NIM') {
1812
1814
  // contains spaces
1813
1815
  this.checkAddress(address);
@@ -1857,7 +1859,7 @@ class kucoin extends kucoin$1 {
1857
1859
  this.options['versions']['private']['GET']['deposit-addresses'] = version;
1858
1860
  const chains = this.safeList(response, 'data', []);
1859
1861
  const parsed = this.parseDepositAddresses(chains, [currency['code']], false, {
1860
- 'currency': currency['id'],
1862
+ 'currency': currency['code'],
1861
1863
  });
1862
1864
  return this.indexBy(parsed, 'network');
1863
1865
  }
@@ -2971,7 +2973,7 @@ class kucoin extends kucoin$1 {
2971
2973
  * @method
2972
2974
  * @name kucoin#fetchTrades
2973
2975
  * @description get the list of most recent trades for a particular symbol
2974
- * @see https://docs.kucoin.com/#get-trade-histories
2976
+ * @see https://www.kucoin.com/docs/rest/spot-trading/market-data/get-trade-histories
2975
2977
  * @param {string} symbol unified symbol of the market to fetch trades for
2976
2978
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
2977
2979
  * @param {int} [limit] the maximum amount of trades to fetch
@@ -3144,7 +3146,7 @@ class kucoin extends kucoin$1 {
3144
3146
  * @method
3145
3147
  * @name kucoin#fetchTradingFee
3146
3148
  * @description fetch the trading fees for a market
3147
- * @see https://docs.kucoin.com/#actual-fee-rate-of-the-trading-pair
3149
+ * @see https://www.kucoin.com/docs/rest/funding/trade-fee/trading-pair-actual-fee-spot-margin-trade_hf
3148
3150
  * @param {string} symbol unified market symbol
3149
3151
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3150
3152
  * @returns {object} a [fee structure]{@link https://docs.ccxt.com/#/?id=fee-structure}
@@ -3184,7 +3186,7 @@ class kucoin extends kucoin$1 {
3184
3186
  * @method
3185
3187
  * @name kucoin#withdraw
3186
3188
  * @description make a withdrawal
3187
- * @see https://docs.kucoin.com/#apply-withdraw-2
3189
+ * @see https://www.kucoin.com/docs/rest/funding/withdrawals/apply-withdraw
3188
3190
  * @param {string} code unified currency code
3189
3191
  * @param {float} amount the amount to withdraw
3190
3192
  * @param {string} address the address to withdraw to
@@ -3359,8 +3361,8 @@ class kucoin extends kucoin$1 {
3359
3361
  * @method
3360
3362
  * @name kucoin#fetchDeposits
3361
3363
  * @description fetch all deposits made to an account
3362
- * @see https://docs.kucoin.com/#get-deposit-list
3363
- * @see https://docs.kucoin.com/#get-v1-historical-deposits-list
3364
+ * @see https://www.kucoin.com/docs/rest/funding/deposit/get-deposit-list
3365
+ * @see https://www.kucoin.com/docs/rest/funding/deposit/get-v1-historical-deposits-list
3364
3366
  * @param {string} code unified currency code
3365
3367
  * @param {int} [since] the earliest time in ms to fetch deposits for
3366
3368
  * @param {int} [limit] the maximum number of deposits structures to retrieve
@@ -3443,8 +3445,8 @@ class kucoin extends kucoin$1 {
3443
3445
  * @method
3444
3446
  * @name kucoin#fetchWithdrawals
3445
3447
  * @description fetch all withdrawals made from an account
3446
- * @see https://docs.kucoin.com/#get-withdrawals-list
3447
- * @see https://docs.kucoin.com/#get-v1-historical-withdrawals-list
3448
+ * @see https://www.kucoin.com/docs/rest/funding/withdrawals/get-withdrawals-list
3449
+ * @see https://www.kucoin.com/docs/rest/funding/withdrawals/get-v1-historical-withdrawals-list
3448
3450
  * @param {string} code unified currency code
3449
3451
  * @param {int} [since] the earliest time in ms to fetch withdrawals for
3450
3452
  * @param {int} [limit] the maximum number of withdrawals structures to retrieve
@@ -3718,7 +3720,7 @@ class kucoin extends kucoin$1 {
3718
3720
  * @method
3719
3721
  * @name kucoin#transfer
3720
3722
  * @description transfer currency internally between wallets on the same account
3721
- * @see https://docs.kucoin.com/#inner-transfer
3723
+ * @see https://www.kucoin.com/docs/rest/funding/transfer/inner-transfer
3722
3724
  * @see https://docs.kucoin.com/futures/#transfer-funds-to-kucoin-main-account-2
3723
3725
  * @see https://docs.kucoin.com/spot-hf/#internal-funds-transfers-in-high-frequency-trading-accounts
3724
3726
  * @param {string} code unified currency code
@@ -4001,7 +4003,7 @@ class kucoin extends kucoin$1 {
4001
4003
  /**
4002
4004
  * @method
4003
4005
  * @name kucoin#fetchLedger
4004
- * @see https://docs.kucoin.com/#get-account-ledgers
4006
+ * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-spot-margin
4005
4007
  * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-trade_hf
4006
4008
  * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-margin_hf
4007
4009
  * @description fetch the history of changes, actions done by the user or operations that altered balance of the user