ccxt 4.2.100 → 4.3.2

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 (330) hide show
  1. package/README.md +6 -5
  2. package/dist/cjs/ccxt.js +1 -1
  3. package/dist/cjs/src/base/Exchange.js +3 -0
  4. package/dist/cjs/src/binance.js +56 -0
  5. package/dist/cjs/src/bingx.js +2 -2
  6. package/dist/cjs/src/bitget.js +69 -5
  7. package/dist/cjs/src/bybit.js +1 -1
  8. package/dist/cjs/src/coinbase.js +2 -1
  9. package/dist/cjs/src/coinbasepro.js +1 -1
  10. package/dist/cjs/src/coinex.js +164 -206
  11. package/dist/cjs/src/cryptocom.js +5 -5
  12. package/dist/cjs/src/hyperliquid.js +74 -0
  13. package/dist/cjs/src/kraken.js +8 -3
  14. package/dist/cjs/src/kucoin.js +13 -11
  15. package/dist/cjs/src/okx.js +76 -5
  16. package/dist/cjs/src/pro/kraken.js +2 -2
  17. package/dist/cjs/src/woo.js +40 -0
  18. package/js/ccxt.d.ts +1 -1
  19. package/js/ccxt.js +1 -1
  20. package/js/src/base/Exchange.d.ts +2 -1
  21. package/js/src/base/Exchange.js +3 -0
  22. package/js/src/base/types.d.ts +5 -0
  23. package/js/src/binance.d.ts +3 -1
  24. package/js/src/binance.js +56 -0
  25. package/js/src/bingx.js +3 -3
  26. package/js/src/bitget.d.ts +1 -0
  27. package/js/src/bitget.js +69 -5
  28. package/js/src/bybit.js +1 -1
  29. package/js/src/coinbase.js +2 -1
  30. package/js/src/coinbasepro.d.ts +1 -1
  31. package/js/src/coinbasepro.js +1 -1
  32. package/js/src/coinex.js +164 -206
  33. package/js/src/cryptocom.js +5 -5
  34. package/js/src/hyperliquid.d.ts +2 -1
  35. package/js/src/hyperliquid.js +75 -1
  36. package/js/src/kraken.js +8 -3
  37. package/js/src/kucoin.js +13 -11
  38. package/js/src/okx.d.ts +1 -0
  39. package/js/src/okx.js +76 -5
  40. package/js/src/pro/kraken.js +2 -2
  41. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  42. package/js/src/woo.d.ts +1 -0
  43. package/js/src/woo.js +40 -0
  44. package/package.json +2 -1
  45. package/.dockerignore +0 -6
  46. package/.eslintignore +0 -1
  47. package/.git-templates/hooks/pre-push +0 -55
  48. package/.gitattributes +0 -7
  49. package/CHANGELOG.md +0 -6003
  50. package/CODEOWNERS +0 -1
  51. package/CONTRIBUTING.md +0 -1099
  52. package/build.sh +0 -217
  53. package/change.sh +0 -18
  54. package/cleanup.sh +0 -18
  55. package/composer-install.sh +0 -20
  56. package/dist/ccxt.browser.js +0 -327256
  57. package/dist/ccxt.browser.min.js +0 -30
  58. package/dist/ccxt.browser.min.js.LICENSE.txt +0 -12
  59. package/doc/FAQ.rst +0 -1
  60. package/doc/Makefile +0 -20
  61. package/doc/_static/css/dark.css +0 -101
  62. package/doc/_static/css/index.css +0 -128
  63. package/doc/_static/favicon.ico +0 -0
  64. package/doc/_static/javascript/binance-portal.min.js +0 -2369
  65. package/doc/_static/javascript/index.js +0 -195
  66. package/doc/_static/javascript/jquery-ui.min.js +0 -6
  67. package/doc/ccxt.pro.install.rst +0 -1
  68. package/doc/ccxt.pro.manual.rst +0 -1665
  69. package/doc/exchange-markets-by-country.rst +0 -1423
  70. package/doc/exchange-markets.rst +0 -1441
  71. package/doc/index.rst +0 -35
  72. package/doc/install.rst +0 -1
  73. package/doc/make.bat +0 -36
  74. package/doc/manual.rst +0 -7471
  75. package/doc/readme.rst +0 -2191
  76. package/doc/requirements.txt +0 -6
  77. package/examples/ccxt.pro/html/watchTicker.html +0 -51
  78. package/examples/ccxt.pro/js/binance-fetch-balance-snapshot-watch-balance-updates.js +0 -55
  79. package/examples/ccxt.pro/js/binance-https-proxy.js +0 -48
  80. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols-continuously.js +0 -38
  81. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols.js +0 -64
  82. package/examples/ccxt.pro/js/binance-watch-ticker-many-symbols.js +0 -62
  83. package/examples/ccxt.pro/js/build-ohlcv-many-symbols.js +0 -68
  84. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades-warmup.js +0 -82
  85. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades.js +0 -59
  86. package/examples/ccxt.pro/js/exchange-capabitities.js +0 -72
  87. package/examples/ccxt.pro/js/exchange-close.js +0 -46
  88. package/examples/ccxt.pro/js/gateio-swap-watch-many-orderbooks.js +0 -30
  89. package/examples/ccxt.pro/js/gateio-watch-balance.js +0 -23
  90. package/examples/ccxt.pro/js/gateio-watch-order-book.js +0 -71
  91. package/examples/ccxt.pro/js/graceful-shutdown.js +0 -43
  92. package/examples/ccxt.pro/js/many-exchanges-many-streams.js +0 -37
  93. package/examples/ccxt.pro/js/okex-create-futures-order.js +0 -48
  94. package/examples/ccxt.pro/js/okex-watch-balance-and-create-order.js +0 -54
  95. package/examples/ccxt.pro/js/okx-watch-tickers.js +0 -31
  96. package/examples/ccxt.pro/js/one-exchange-many-different-streams.js +0 -46
  97. package/examples/ccxt.pro/js/one-exchange-many-streams-2.js +0 -26
  98. package/examples/ccxt.pro/js/one-exchange-many-streams.js +0 -28
  99. package/examples/ccxt.pro/js/socks-binance-watch-orderbook.js +0 -30
  100. package/examples/ccxt.pro/js/watch-fetch-many-exchanges-many-ordersbooks.js +0 -40
  101. package/examples/ccxt.pro/js/watch-many-exchanges-many-ordersbooks.js +0 -38
  102. package/examples/ccxt.pro/js/watch-many-exchanges-many-symbols.js +0 -40
  103. package/examples/ccxt.pro/js/watch-many-orderbooks.js +0 -27
  104. package/examples/ccxt.pro/js/watch-new-trades-only.js +0 -43
  105. package/examples/ccxt.pro/js/watch-new-trades.js +0 -42
  106. package/examples/ccxt.pro/js/watch-trades-many-symbols.js +0 -29
  107. package/examples/ccxt.pro/js/watch-vs-fetch.js +0 -29
  108. package/examples/cs/Examples.sln +0 -22
  109. package/examples/cs/c#.csproj +0 -19
  110. package/examples/html/basic-cors-proxy.html +0 -46
  111. package/examples/html/basic-inheritance.html +0 -47
  112. package/examples/html/basic-poller.html +0 -52
  113. package/examples/html/basic-rate-limiting.html +0 -49
  114. package/examples/html/basic.html +0 -43
  115. package/examples/html/binance-cors-proxy.html +0 -28
  116. package/examples/html/bitmex-browser-cors-proxy.js +0 -7
  117. package/examples/html/bitmex-cors.html +0 -46
  118. package/examples/html/tradingview-charts.html +0 -61
  119. package/examples/html/webworker/index.html +0 -97
  120. package/examples/html/webworker/worker.js +0 -43
  121. package/examples/js/advanced-error-handling.js +0 -39
  122. package/examples/js/aggregate-orderbook.js +0 -54
  123. package/examples/js/arbitrage-pairs.js +0 -130
  124. package/examples/js/basic-chart.js +0 -29
  125. package/examples/js/basic-orderbook-polling.js +0 -13
  126. package/examples/js/bcc-vs-bch.js +0 -115
  127. package/examples/js/benchmark.js +0 -104
  128. package/examples/js/binance-fetch-all-deposits.js +0 -45
  129. package/examples/js/binance-fetch-ohlcv-many-symbols-async-await.js +0 -34
  130. package/examples/js/binance-fetch-ohlcv-many-symbols-promise-then-callbacks.js +0 -33
  131. package/examples/js/binance-fetchTicker-delivery-vs-future.js +0 -31
  132. package/examples/js/binance-futures-transfer-from-sub-account-to-master.js +0 -41
  133. package/examples/js/binance-margin-stop-order.js +0 -39
  134. package/examples/js/binance-server-time.js +0 -34
  135. package/examples/js/binance-universal-transfer.js +0 -16
  136. package/examples/js/bitfinex-fetch-trades.js +0 -35
  137. package/examples/js/bitfinex2-fetch-trades.js +0 -35
  138. package/examples/js/bitmex-browser-cors-proxy.js +0 -7
  139. package/examples/js/bitpanda-fetchMyTrades-reduce.js +0 -36
  140. package/examples/js/bitrue-fetch-balance.js +0 -28
  141. package/examples/js/bitstamp-private-api.js +0 -115
  142. package/examples/js/bitstamp-public-api.js +0 -39
  143. package/examples/js/bittrex-balance.js +0 -50
  144. package/examples/js/bittrex-fetch-closed-orders-history.js +0 -69
  145. package/examples/js/blockchaincom-withdrawal.js +0 -59
  146. package/examples/js/build-ohlcv-bars.js +0 -48
  147. package/examples/js/builtin-rate-limiting-rest-poller.js +0 -25
  148. package/examples/js/bybit-trailing.js +0 -62
  149. package/examples/js/bybit-updated.cjs +0 -154
  150. package/examples/js/coinbase-fetch-all-balances.js +0 -36
  151. package/examples/js/coinex-fetch-all-deposit-addresses-using-fetchDepositAddress.js +0 -47
  152. package/examples/js/coinex-futures.js +0 -75
  153. package/examples/js/coinone-fetch-tickers.js +0 -54
  154. package/examples/js/coinone-markets.js +0 -16
  155. package/examples/js/compare-two-exchanges-capabilities.js +0 -36
  156. package/examples/js/cors-proxy.js +0 -5
  157. package/examples/js/create-order-handle-errors.js +0 -55
  158. package/examples/js/create-order-position-with-takeprofit-stoploss.js +0 -71
  159. package/examples/js/create-order-with-retry.js +0 -65
  160. package/examples/js/create-order-ws-example.js +0 -25
  161. package/examples/js/create-orders-example.js +0 -17
  162. package/examples/js/create-trailing-amount-order.js +0 -36
  163. package/examples/js/create-trailing-percent-order.js +0 -36
  164. package/examples/js/credentials.json +0 -5
  165. package/examples/js/custom-proxy-agent-for-js.js +0 -10
  166. package/examples/js/custom-proxy-url.js +0 -23
  167. package/examples/js/delta-maintenance-margin-rate-max-leverage.js +0 -60
  168. package/examples/js/env-variables.js +0 -26
  169. package/examples/js/error-handling.js +0 -89
  170. package/examples/js/exchange-capabilities.js +0 -135
  171. package/examples/js/exchanges-by-volume.js +0 -60
  172. package/examples/js/exchanges.js +0 -40
  173. package/examples/js/fetch-all-balances.js +0 -219
  174. package/examples/js/fetch-all-tickers-to-files-2.js +0 -53
  175. package/examples/js/fetch-all-tickers-to-files.js +0 -77
  176. package/examples/js/fetch-balance.js +0 -28
  177. package/examples/js/fetch-create-deposit-address.js +0 -101
  178. package/examples/js/fetch-from-many-exchanges-simultaneously.js +0 -21
  179. package/examples/js/fetch-funding-rate-history.js +0 -25
  180. package/examples/js/fetch-futures/prettier.config.js +0 -5
  181. package/examples/js/fetch-futures/src/index.js +0 -25
  182. package/examples/js/fetch-ohlcv-from-to-mark-index-premium.js +0 -72
  183. package/examples/js/fetch-ohlcv-many-exchanges-continuosly.js +0 -39
  184. package/examples/js/fetch-ohlcv.js +0 -16
  185. package/examples/js/fetch-okex-futures.js +0 -22
  186. package/examples/js/fetch-orders.js +0 -27
  187. package/examples/js/fetch-ticker-from-multiple-exchanges.js +0 -35
  188. package/examples/js/fetch-ticker-where-available.js +0 -75
  189. package/examples/js/fetch-tickers/build/index.js +0 -19
  190. package/examples/js/fetch-tickers/prettier.config.js +0 -5
  191. package/examples/js/fetch-tickers/src/index.js +0 -17
  192. package/examples/js/gateio-create-batch-order.js +0 -43
  193. package/examples/js/gateio-futures.js +0 -49
  194. package/examples/js/gateio-open-close-contract.js +0 -49
  195. package/examples/js/gateio-swaps.js +0 -74
  196. package/examples/js/gdax-fetch-trades-pagination.js +0 -29
  197. package/examples/js/hitbtc2-withdraw.js +0 -61
  198. package/examples/js/how-to-import-one-exchange-esm.js +0 -10
  199. package/examples/js/huobi-futures.js +0 -71
  200. package/examples/js/huobi-open-close-contract.js +0 -63
  201. package/examples/js/huobi-swaps.js +0 -70
  202. package/examples/js/huobipro-market-buy-sell-fetch-trading-limits.js +0 -98
  203. package/examples/js/hybridCJSExample.cjs +0 -19
  204. package/examples/js/hybridESMExample.js +0 -19
  205. package/examples/js/idex-fetch-balance.js +0 -13
  206. package/examples/js/instantiate-all-at-once.js +0 -46
  207. package/examples/js/instantiate-all-from-json.js +0 -31
  208. package/examples/js/kraken-create-and-close-position.js +0 -54
  209. package/examples/js/kraken-fetch-order-trades.js +0 -33
  210. package/examples/js/kraken-margin-trading.js +0 -89
  211. package/examples/js/kucoin-rate-limit.js +0 -38
  212. package/examples/js/latoken-example.js +0 -108
  213. package/examples/js/live-orderbook.js +0 -106
  214. package/examples/js/live-ticker.js +0 -80
  215. package/examples/js/live-tickers.js +0 -74
  216. package/examples/js/load-all-contracts.js +0 -41
  217. package/examples/js/load-all-symbols-at-once.js +0 -69
  218. package/examples/js/load-all-tickers-at-once.js +0 -91
  219. package/examples/js/load-markets-to-files.js +0 -57
  220. package/examples/js/looping-over-all-symbols-of-specific-exchanges.js +0 -61
  221. package/examples/js/looping-over-specific-symbols-of-all-exchanges.js +0 -91
  222. package/examples/js/margin-loan-borrow-buy-sell-repay.js +0 -70
  223. package/examples/js/market-status-and-currency-status.js +0 -29
  224. package/examples/js/ohlcv-console-chart.js +0 -29
  225. package/examples/js/okex-fetch-closed-orders-archive.js +0 -31
  226. package/examples/js/okex-transfer.js +0 -51
  227. package/examples/js/okx-poll-fetch-my-trades.js +0 -37
  228. package/examples/js/okx-poll-rate-limit.js +0 -48
  229. package/examples/js/order-book-extra-level-depth-param.js +0 -20
  230. package/examples/js/phemex-create-order-position-with-takeprofit-stoploss.js +0 -49
  231. package/examples/js/poll-ohlcv.js +0 -43
  232. package/examples/js/poloniex-fetch-order-books.js +0 -35
  233. package/examples/js/poloniex-limits-amount-min.js +0 -62
  234. package/examples/js/proxy-round-robin.js +0 -98
  235. package/examples/js/proxy-usage.js +0 -32
  236. package/examples/js/sample-local-proxy-server-with-cors.js +0 -12
  237. package/examples/js/search-all-exchanges.js +0 -159
  238. package/examples/js/shared-load-markets.js +0 -80
  239. package/examples/js/sort-swap-markets-by-hourly-price-change.js +0 -55
  240. package/examples/js/symbols.js +0 -110
  241. package/examples/js/theocean.js +0 -41
  242. package/examples/js/tickers.js +0 -106
  243. package/examples/js/validate-paginated-data.js +0 -61
  244. package/examples/js/watch-OHLCV-For-Symbols.js +0 -15
  245. package/examples/js/watch-OHLCV.js +0 -12
  246. package/examples/js/watch-OrderBook-For-Symbols.js +0 -11
  247. package/examples/js/watch-Trades-For-Symbols.js +0 -11
  248. package/examples/js/watch-tickers.js +0 -11
  249. package/examples/js/watchOHLCVForSymbols.js +0 -15
  250. package/examples/js/watchOrderBookForSymbols.js +0 -11
  251. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts +0 -2
  252. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts.map +0 -1
  253. package/examples/js/watchPositions-many-exchanges-continuosly.js +0 -49
  254. package/examples/js/watchPositions.d.ts +0 -2
  255. package/examples/js/watchPositions.d.ts.map +0 -1
  256. package/examples/js/watchPositions.js +0 -13
  257. package/examples/js/watchPositionsForSymbols.d.ts +0 -2
  258. package/examples/js/watchPositionsForSymbols.d.ts.map +0 -1
  259. package/examples/js/watchPositionsForSymbols.js +0 -14
  260. package/examples/js/watchTradesForSymbols.js +0 -11
  261. package/examples/js/withdraw-from-one-exchange-to-another.js +0 -50
  262. package/examples/php/README.md +0 -7
  263. package/examples/py/README.md +0 -15
  264. package/examples/py/playing_with_ccxt_example.ipynb +0 -222
  265. package/examples/ts/.eslintrc +0 -111
  266. package/examples/ts/benchmark.ts +0 -134
  267. package/examples/ts/build-ohlcv-bars.ts +0 -53
  268. package/examples/ts/cli.ts +0 -397
  269. package/examples/ts/compare-two-exchanges-capabilities.ts +0 -36
  270. package/examples/ts/create-order-position-with-takeprofit-stoploss.ts +0 -89
  271. package/examples/ts/create-order-ws-example.ts +0 -33
  272. package/examples/ts/create-orders-example.ts +0 -21
  273. package/examples/ts/create-trailing-amount-order.ts +0 -37
  274. package/examples/ts/create-trailing-percent-order.ts +0 -37
  275. package/examples/ts/custom-proxy-agent-for-js.ts +0 -14
  276. package/examples/ts/fetch-futures/package-lock.json +0 -116
  277. package/examples/ts/fetch-futures/package.json +0 -34
  278. package/examples/ts/fetch-futures/prettier.config.js +0 -4
  279. package/examples/ts/fetch-futures/src/index.ts +0 -28
  280. package/examples/ts/fetch-futures/tsconfig.json +0 -28
  281. package/examples/ts/fetch-ohlcv-many-exchanges-continuosly.ts +0 -44
  282. package/examples/ts/fetch-ohlcv.ts +0 -17
  283. package/examples/ts/fetch-tickers/package-lock.json +0 -116
  284. package/examples/ts/fetch-tickers/package.json +0 -34
  285. package/examples/ts/fetch-tickers/prettier.config.js +0 -4
  286. package/examples/ts/fetch-tickers/src/index.ts +0 -21
  287. package/examples/ts/fetch-tickers/tsconfig.json +0 -28
  288. package/examples/ts/how-to-import-one-exchange-esm.ts +0 -11
  289. package/examples/ts/kraken-create-and-close-position.ts +0 -69
  290. package/examples/ts/margin-loan-borrow-buy-sell-repay.ts +0 -72
  291. package/examples/ts/nextjs-page-router/.eslintrc.json +0 -3
  292. package/examples/ts/nextjs-page-router/README.md +0 -43
  293. package/examples/ts/nextjs-page-router/next.config.js +0 -6
  294. package/examples/ts/nextjs-page-router/package-lock.json +0 -7425
  295. package/examples/ts/nextjs-page-router/package.json +0 -28
  296. package/examples/ts/nextjs-page-router/postcss.config.js +0 -6
  297. package/examples/ts/nextjs-page-router/public/favicon.ico +0 -0
  298. package/examples/ts/nextjs-page-router/src/pages/_app.tsx +0 -6
  299. package/examples/ts/nextjs-page-router/src/pages/_document.tsx +0 -13
  300. package/examples/ts/nextjs-page-router/src/pages/balance.tsx +0 -46
  301. package/examples/ts/nextjs-page-router/src/pages/index.tsx +0 -8
  302. package/examples/ts/nextjs-page-router/src/pages/tickers.tsx +0 -61
  303. package/examples/ts/nextjs-page-router/src/styles/globals.css +0 -27
  304. package/examples/ts/nextjs-page-router/tailwind.config.ts +0 -20
  305. package/examples/ts/nextjs-page-router/tsconfig.json +0 -22
  306. package/examples/ts/phemex-create-order-position-with-takeprofit-stoploss.ts +0 -62
  307. package/examples/ts/proxy-usage.ts +0 -41
  308. package/examples/ts/sample-local-proxy-server-with-cors.ts +0 -15
  309. package/examples/ts/watch-OHLCV-For-Symbols.ts +0 -17
  310. package/examples/ts/watch-OHLCV.ts +0 -14
  311. package/examples/ts/watch-OrderBook-For-Symbols.ts +0 -13
  312. package/examples/ts/watch-Trades-For-Symbols.ts +0 -13
  313. package/examples/ts/watch-tickers.ts +0 -13
  314. package/examples/ts/watchPositions-many-exchanges-continuosly.ts +0 -53
  315. package/examples/ts/watchPositions.ts +0 -15
  316. package/examples/ts/watchPositionsForSymbols.ts +0 -16
  317. package/examples/tsconfig.json +0 -27
  318. package/examples2md.js +0 -79
  319. package/gource.sh +0 -3
  320. package/index.html +0 -7
  321. package/jsdoc2md.js +0 -122
  322. package/multilang.sh +0 -164
  323. package/pro-tests.json +0 -57
  324. package/pyproject.toml +0 -8
  325. package/rollup.config.js +0 -60
  326. package/skip-tests.json +0 -1653
  327. package/test-commonjs.cjs +0 -65
  328. package/tests-manager.sh +0 -96
  329. package/tsconfig.json +0 -111
  330. package/webpack.config.js +0 -46
@@ -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': {
@@ -817,65 +812,59 @@ class coinex extends coinex$1 {
817
812
  // Spot fetchTicker, fetchTickers
818
813
  //
819
814
  // {
820
- // "vol": "293.19415130",
821
- // "low": "38200.00",
822
- // "open": "39514.99",
823
- // "high": "39530.00",
824
- // "last": "38649.57",
825
- // "buy": "38640.20",
826
- // "buy_amount": "0.22800000",
827
- // "sell": "38640.21",
828
- // "sell_amount": "0.02828439"
815
+ // "close": "62393.47",
816
+ // "high": "64106.41",
817
+ // "last": "62393.47",
818
+ // "low": "59650.01",
819
+ // "market": "BTCUSDT",
820
+ // "open": "61616.15",
821
+ // "period": 86400,
822
+ // "value": "28711273.4065667262",
823
+ // "volume": "461.76557205",
824
+ // "volume_buy": "11.41506354",
825
+ // "volume_sell": "7.3240169"
829
826
  // }
830
827
  //
831
828
  // Swap fetchTicker, fetchTickers
832
829
  //
833
830
  // {
834
- // "vol": "7714.2175",
835
- // "low": "38200.00",
836
- // "open": "39569.23",
837
- // "high": "39569.23",
838
- // "last": "38681.37",
839
- // "buy": "38681.36",
831
+ // "close": "62480.08",
832
+ // "high": "64100",
833
+ // "index_price": "62443.05",
834
+ // "last": "62480.08",
835
+ // "low": "59600",
836
+ // "mark_price": "62443.05",
837
+ // "market": "BTCUSDT",
838
+ // "open": "61679.98",
840
839
  // "period": 86400,
841
- // "funding_time": 462,
842
- // "position_amount": "296.7552",
843
- // "funding_rate_last": "0.00009395",
844
- // "funding_rate_next": "0.00000649",
845
- // "funding_rate_predict": "-0.00007176",
846
- // "insurance": "16464465.09431942163278132918",
847
- // "sign_price": "38681.93",
848
- // "index_price": "38681.69500000",
849
- // "sell_total": "16.6039",
850
- // "buy_total": "19.8481",
851
- // "buy_amount": "4.6315",
852
- // "sell": "38681.37",
853
- // "sell_amount": "11.4044"
840
+ // "value": "180226025.69791713065326633165",
841
+ // "volume": "2900.2218",
842
+ // "volume_buy": "7.3847",
843
+ // "volume_sell": "6.1249"
854
844
  // }
855
845
  //
856
- const timestamp = this.safeInteger(ticker, 'date');
857
- const symbol = this.safeSymbol(undefined, market);
858
- ticker = this.safeValue(ticker, 'ticker', {});
859
- const last = this.safeString(ticker, 'last');
846
+ const marketType = ('mark_price' in ticker) ? 'swap' : 'spot';
847
+ const marketId = this.safeString(ticker, 'market');
848
+ const symbol = this.safeSymbol(marketId, market, undefined, marketType);
860
849
  return this.safeTicker({
861
850
  'symbol': symbol,
862
- 'timestamp': timestamp,
863
- 'datetime': this.iso8601(timestamp),
851
+ 'timestamp': undefined,
852
+ 'datetime': undefined,
864
853
  'high': this.safeString(ticker, 'high'),
865
854
  'low': this.safeString(ticker, 'low'),
866
- 'bid': this.safeString(ticker, 'buy'),
867
- 'bidVolume': this.safeString(ticker, 'buy_amount'),
868
- 'ask': this.safeString(ticker, 'sell'),
869
- 'askVolume': this.safeString(ticker, 'sell_amount'),
855
+ 'bid': undefined,
856
+ 'bidVolume': this.safeString(ticker, 'volume_buy'),
857
+ 'ask': undefined,
858
+ 'askVolume': this.safeString(ticker, 'volume_sell'),
870
859
  'vwap': undefined,
871
860
  'open': this.safeString(ticker, 'open'),
872
- 'close': last,
873
- 'last': last,
861
+ 'close': this.safeString(ticker, 'close'),
862
+ 'last': this.safeString(ticker, 'last'),
874
863
  'previousClose': undefined,
875
864
  'change': undefined,
876
865
  'percentage': undefined,
877
866
  'average': undefined,
878
- 'baseVolume': this.safeString2(ticker, 'vol', 'volume'),
867
+ 'baseVolume': this.safeString(ticker, 'volume'),
879
868
  'quoteVolume': undefined,
880
869
  'info': ticker,
881
870
  }, market);
@@ -885,8 +874,8 @@ class coinex extends coinex$1 {
885
874
  * @method
886
875
  * @name coinex#fetchTicker
887
876
  * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
888
- * @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot001_market007_single_market_ticker
889
- * @see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http008_market_ticker
877
+ * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-ticker
878
+ * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-ticker
890
879
  * @param {string} symbol unified symbol of the market to fetch the ticker for
891
880
  * @param {object} [params] extra parameters specific to the exchange API endpoint
892
881
  * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
@@ -898,30 +887,31 @@ class coinex extends coinex$1 {
898
887
  };
899
888
  let response = undefined;
900
889
  if (market['swap']) {
901
- response = await this.v1PerpetualPublicGetMarketTicker(this.extend(request, params));
890
+ response = await this.v2PublicGetFuturesTicker(this.extend(request, params));
902
891
  }
903
892
  else {
904
- response = await this.v1PublicGetMarketTicker(this.extend(request, params));
893
+ response = await this.v2PublicGetSpotTicker(this.extend(request, params));
905
894
  }
906
895
  //
907
896
  // Spot
908
897
  //
909
898
  // {
910
899
  // "code": 0,
911
- // "data": {
912
- // "date": 1651306913414,
913
- // "ticker": {
914
- // "vol": "293.19415130",
915
- // "low": "38200.00",
916
- // "open": "39514.99",
917
- // "high": "39530.00",
918
- // "last": "38649.57",
919
- // "buy": "38640.20",
920
- // "buy_amount": "0.22800000",
921
- // "sell": "38640.21",
922
- // "sell_amount": "0.02828439"
900
+ // "data": [
901
+ // {
902
+ // "close": "62393.47",
903
+ // "high": "64106.41",
904
+ // "last": "62393.47",
905
+ // "low": "59650.01",
906
+ // "market": "BTCUSDT",
907
+ // "open": "61616.15",
908
+ // "period": 86400,
909
+ // "value": "28711273.4065667262",
910
+ // "volume": "461.76557205",
911
+ // "volume_buy": "11.41506354",
912
+ // "volume_sell": "7.3240169"
923
913
  // }
924
- // },
914
+ // ],
925
915
  // "message": "OK"
926
916
  // }
927
917
  //
@@ -929,43 +919,37 @@ class coinex extends coinex$1 {
929
919
  //
930
920
  // {
931
921
  // "code": 0,
932
- // "data": {
933
- // "date": 1651306641500,
934
- // "ticker": {
935
- // "vol": "7714.2175",
936
- // "low": "38200.00",
937
- // "open": "39569.23",
938
- // "high": "39569.23",
939
- // "last": "38681.37",
940
- // "buy": "38681.36",
922
+ // "data": [
923
+ // {
924
+ // "close": "62480.08",
925
+ // "high": "64100",
926
+ // "index_price": "62443.05",
927
+ // "last": "62480.08",
928
+ // "low": "59600",
929
+ // "mark_price": "62443.05",
930
+ // "market": "BTCUSDT",
931
+ // "open": "61679.98",
941
932
  // "period": 86400,
942
- // "funding_time": 462,
943
- // "position_amount": "296.7552",
944
- // "funding_rate_last": "0.00009395",
945
- // "funding_rate_next": "0.00000649",
946
- // "funding_rate_predict": "-0.00007176",
947
- // "insurance": "16464465.09431942163278132918",
948
- // "sign_price": "38681.93",
949
- // "index_price": "38681.69500000",
950
- // "sell_total": "16.6039",
951
- // "buy_total": "19.8481",
952
- // "buy_amount": "4.6315",
953
- // "sell": "38681.37",
954
- // "sell_amount": "11.4044"
933
+ // "value": "180226025.69791713065326633165",
934
+ // "volume": "2900.2218",
935
+ // "volume_buy": "7.3847",
936
+ // "volume_sell": "6.1249"
955
937
  // }
956
- // },
938
+ // ],
957
939
  // "message": "OK"
958
940
  // }
959
941
  //
960
- return this.parseTicker(response['data'], market);
942
+ const data = this.safeList(response, 'data', []);
943
+ const result = this.safeDict(data, 0, {});
944
+ return this.parseTicker(result, market);
961
945
  }
962
946
  async fetchTickers(symbols = undefined, params = {}) {
963
947
  /**
964
948
  * @method
965
949
  * @name coinex#fetchTickers
966
950
  * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
967
- * @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot001_market008_all_market_ticker
968
- * @see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http009_market_ticker_all
951
+ * @see https://docs.coinex.com/api/v2/spot/market/http/list-market-ticker
952
+ * @see https://docs.coinex.com/api/v2/futures/market/http/list-market-ticker
969
953
  * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
970
954
  * @param {object} [params] extra parameters specific to the exchange API endpoint
971
955
  * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
@@ -980,86 +964,60 @@ class coinex extends coinex$1 {
980
964
  const [marketType, query] = this.handleMarketTypeAndParams('fetchTickers', market, params);
981
965
  let response = undefined;
982
966
  if (marketType === 'swap') {
983
- response = await this.v1PerpetualPublicGetMarketTickerAll(query);
967
+ response = await this.v2PublicGetFuturesTicker(query);
984
968
  }
985
969
  else {
986
- response = await this.v1PublicGetMarketTickerAll();
970
+ response = await this.v2PublicGetSpotTicker(query);
987
971
  }
988
972
  //
989
973
  // Spot
990
974
  //
991
975
  // {
992
976
  // "code": 0,
993
- // "data": {
994
- // "date": 1651519857284,
995
- // "ticker": {
996
- // "PSPUSDT": {
997
- // "vol": "127131.55227034",
998
- // "low": "0.0669",
999
- // "open": "0.0688",
1000
- // "high": "0.0747",
1001
- // "last": "0.0685",
1002
- // "buy": "0.0676",
1003
- // "buy_amount": "702.70117866",
1004
- // "sell": "0.0690",
1005
- // "sell_amount": "686.76861562"
1006
- // },
977
+ // "data": [
978
+ // {
979
+ // "close": "62393.47",
980
+ // "high": "64106.41",
981
+ // "last": "62393.47",
982
+ // "low": "59650.01",
983
+ // "market": "BTCUSDT",
984
+ // "open": "61616.15",
985
+ // "period": 86400,
986
+ // "value": "28711273.4065667262",
987
+ // "volume": "461.76557205",
988
+ // "volume_buy": "11.41506354",
989
+ // "volume_sell": "7.3240169"
1007
990
  // }
1008
- // },
1009
- // "message": "Ok"
991
+ // ],
992
+ // "message": "OK"
1010
993
  // }
1011
994
  //
1012
995
  // Swap
1013
996
  //
1014
997
  // {
1015
998
  // "code": 0,
1016
- // "data": {
1017
- // "date": 1651520268644,
1018
- // "ticker": {
1019
- // "KAVAUSDT": {
1020
- // "vol": "834924",
1021
- // "low": "3.9418",
1022
- // "open": "4.1834",
1023
- // "high": "4.4328",
1024
- // "last": "4.0516",
1025
- // "buy": "4.0443",
1026
- // "period": 86400,
1027
- // "funding_time": 262,
1028
- // "position_amount": "16111",
1029
- // "funding_rate_last": "-0.00069514",
1030
- // "funding_rate_next": "-0.00061009",
1031
- // "funding_rate_predict": "-0.00055812",
1032
- // "insurance": "16532425.53026084124483989548",
1033
- // "sign_price": "4.0516",
1034
- // "index_price": "4.0530",
1035
- // "sell_total": "59446",
1036
- // "buy_total": "62423",
1037
- // "buy_amount": "959",
1038
- // "sell": "4.0466",
1039
- // "sell_amount": "141"
1040
- // },
999
+ // "data": [
1000
+ // {
1001
+ // "close": "62480.08",
1002
+ // "high": "64100",
1003
+ // "index_price": "62443.05",
1004
+ // "last": "62480.08",
1005
+ // "low": "59600",
1006
+ // "mark_price": "62443.05",
1007
+ // "market": "BTCUSDT",
1008
+ // "open": "61679.98",
1009
+ // "period": 86400,
1010
+ // "value": "180226025.69791713065326633165",
1011
+ // "volume": "2900.2218",
1012
+ // "volume_buy": "7.3847",
1013
+ // "volume_sell": "6.1249"
1041
1014
  // }
1042
- // },
1043
- // "message": "Ok"
1015
+ // ],
1016
+ // "message": "OK"
1044
1017
  // }
1045
1018
  //
1046
- const data = this.safeValue(response, 'data');
1047
- const timestamp = this.safeInteger(data, 'date');
1048
- const tickers = this.safeValue(data, 'ticker', {});
1049
- const marketIds = Object.keys(tickers);
1050
- const result = {};
1051
- for (let i = 0; i < marketIds.length; i++) {
1052
- const marketId = marketIds[i];
1053
- const marketInner = this.safeMarket(marketId, undefined, undefined, marketType);
1054
- const symbol = marketInner['symbol'];
1055
- const ticker = this.parseTicker({
1056
- 'date': timestamp,
1057
- 'ticker': tickers[marketId],
1058
- }, marketInner);
1059
- ticker['symbol'] = symbol;
1060
- result[symbol] = ticker;
1061
- }
1062
- return this.filterByArrayTickers(result, 'symbol', symbols);
1019
+ const data = this.safeList(response, 'data', []);
1020
+ return this.parseTickers(data, symbols);
1063
1021
  }
1064
1022
  async fetchTime(params = {}) {
1065
1023
  /**
@@ -1625,7 +1625,7 @@ class cryptocom extends cryptocom$1 {
1625
1625
  */
1626
1626
  [tag, params] = this.handleWithdrawTagAndParams(tag, params);
1627
1627
  await this.loadMarkets();
1628
- const currency = this.currency(code);
1628
+ const currency = this.safeCurrency(code); // for instance, USDC is not inferred from markets but it's still available
1629
1629
  const request = {
1630
1630
  'currency': currency['id'],
1631
1631
  'amount': amount,
@@ -1671,7 +1671,7 @@ class cryptocom extends cryptocom$1 {
1671
1671
  * @returns {object} a dictionary of [address structures]{@link https://docs.ccxt.com/#/?id=address-structure} indexed by the network
1672
1672
  */
1673
1673
  await this.loadMarkets();
1674
- const currency = this.currency(code);
1674
+ const currency = this.safeCurrency(code);
1675
1675
  const request = {
1676
1676
  'currency': currency['id'],
1677
1677
  };
@@ -1770,7 +1770,7 @@ class cryptocom extends cryptocom$1 {
1770
1770
  let currency = undefined;
1771
1771
  const request = {};
1772
1772
  if (code !== undefined) {
1773
- currency = this.currency(code);
1773
+ currency = this.safeCurrency(code);
1774
1774
  request['currency'] = currency['id'];
1775
1775
  }
1776
1776
  if (since !== undefined) {
@@ -1829,7 +1829,7 @@ class cryptocom extends cryptocom$1 {
1829
1829
  let currency = undefined;
1830
1830
  const request = {};
1831
1831
  if (code !== undefined) {
1832
- currency = this.currency(code);
1832
+ currency = this.safeCurrency(code);
1833
1833
  request['currency'] = currency['id'];
1834
1834
  }
1835
1835
  if (since !== undefined) {
@@ -2345,7 +2345,7 @@ class cryptocom extends cryptocom$1 {
2345
2345
  const request = {};
2346
2346
  let currency = undefined;
2347
2347
  if (code !== undefined) {
2348
- currency = this.currency(code);
2348
+ currency = this.safeCurrency(code);
2349
2349
  }
2350
2350
  if (since !== undefined) {
2351
2351
  request['start_time'] = since;