ccxt 4.2.72 → 4.2.74

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 (379) hide show
  1. package/README.md +124 -122
  2. package/build.sh +2 -2
  3. package/dist/ccxt.browser.js +3277 -460
  4. package/dist/ccxt.browser.min.js +4 -4
  5. package/dist/cjs/ccxt.js +6 -1
  6. package/dist/cjs/src/abstract/coinbaseinternational.js +9 -0
  7. package/dist/cjs/src/base/Exchange.js +31 -7
  8. package/dist/cjs/src/bitget.js +62 -50
  9. package/dist/cjs/src/btcturk.js +3 -3
  10. package/dist/cjs/src/bybit.js +90 -30
  11. package/dist/cjs/src/coinbaseinternational.js +2019 -0
  12. package/dist/cjs/src/gate.js +1 -1
  13. package/dist/cjs/src/htx.js +16 -9
  14. package/dist/cjs/src/hyperliquid.js +9 -2
  15. package/dist/cjs/src/mexc.js +1 -1
  16. package/dist/cjs/src/okx.js +1 -1
  17. package/dist/cjs/src/pro/coinbaseinternational.js +645 -0
  18. package/dist/cjs/src/pro/krakenfutures.js +8 -7
  19. package/examples/README.md +308 -0
  20. package/examples/ccxt.pro/html/watchTicker.html +51 -0
  21. package/examples/ccxt.pro/js/binance-fetch-balance-snapshot-watch-balance-updates.js +55 -0
  22. package/examples/ccxt.pro/js/binance-https-proxy.js +48 -0
  23. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols-continuously.js +38 -0
  24. package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols.js +64 -0
  25. package/examples/ccxt.pro/js/binance-watch-ticker-many-symbols.js +62 -0
  26. package/examples/ccxt.pro/js/build-ohlcv-many-symbols.js +68 -0
  27. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades-warmup.js +82 -0
  28. package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades.js +59 -0
  29. package/examples/ccxt.pro/js/exchange-capabitities.js +72 -0
  30. package/examples/ccxt.pro/js/exchange-close.js +46 -0
  31. package/examples/ccxt.pro/js/gateio-swap-watch-many-orderbooks.js +30 -0
  32. package/examples/ccxt.pro/js/gateio-watch-balance.js +23 -0
  33. package/examples/ccxt.pro/js/gateio-watch-order-book.js +71 -0
  34. package/examples/ccxt.pro/js/graceful-shutdown.js +43 -0
  35. package/examples/ccxt.pro/js/many-exchanges-many-streams.js +37 -0
  36. package/examples/ccxt.pro/js/okex-create-futures-order.js +48 -0
  37. package/examples/ccxt.pro/js/okex-watch-balance-and-create-order.js +54 -0
  38. package/examples/ccxt.pro/js/okx-watch-tickers.js +31 -0
  39. package/examples/ccxt.pro/js/one-exchange-many-different-streams.js +46 -0
  40. package/examples/ccxt.pro/js/one-exchange-many-streams-2.js +26 -0
  41. package/examples/ccxt.pro/js/one-exchange-many-streams.js +28 -0
  42. package/examples/ccxt.pro/js/socks-binance-watch-orderbook.js +30 -0
  43. package/examples/ccxt.pro/js/watch-fetch-many-exchanges-many-ordersbooks.js +40 -0
  44. package/examples/ccxt.pro/js/watch-many-exchanges-many-ordersbooks.js +38 -0
  45. package/examples/ccxt.pro/js/watch-many-exchanges-many-symbols.js +40 -0
  46. package/examples/ccxt.pro/js/watch-many-orderbooks.js +27 -0
  47. package/examples/ccxt.pro/js/watch-new-trades-only.js +43 -0
  48. package/examples/ccxt.pro/js/watch-new-trades.js +42 -0
  49. package/examples/ccxt.pro/js/watch-trades-many-symbols.js +29 -0
  50. package/examples/ccxt.pro/js/watch-vs-fetch.js +29 -0
  51. package/examples/cs/Examples.sln +22 -0
  52. package/examples/cs/c#.csproj +19 -0
  53. package/examples/html/basic-cors-proxy.html +46 -0
  54. package/examples/html/basic-inheritance.html +47 -0
  55. package/examples/html/basic-poller.html +52 -0
  56. package/examples/html/basic-rate-limiting.html +49 -0
  57. package/examples/html/basic.html +43 -0
  58. package/examples/html/binance-cors-proxy.html +28 -0
  59. package/examples/html/bitmex-browser-cors-proxy.js +7 -0
  60. package/examples/html/bitmex-cors.html +46 -0
  61. package/examples/html/tradingview-charts.html +61 -0
  62. package/examples/html/webworker/index.html +97 -0
  63. package/examples/html/webworker/worker.js +43 -0
  64. package/examples/js/README.md +15 -0
  65. package/examples/js/advanced-error-handling.js +39 -0
  66. package/examples/js/aggregate-orderbook.js +54 -0
  67. package/examples/js/arbitrage-pairs.js +130 -0
  68. package/examples/js/basic-chart.js +29 -0
  69. package/examples/js/basic-orderbook-polling.js +13 -0
  70. package/examples/js/bcc-vs-bch.js +115 -0
  71. package/examples/js/binance-fetch-all-deposits.js +45 -0
  72. package/examples/js/binance-fetch-ohlcv-many-symbols-async-await.js +34 -0
  73. package/examples/js/binance-fetch-ohlcv-many-symbols-promise-then-callbacks.js +33 -0
  74. package/examples/js/binance-fetchTicker-delivery-vs-future.js +31 -0
  75. package/examples/js/binance-futures-transfer-from-sub-account-to-master.js +41 -0
  76. package/examples/js/binance-margin-stop-order.js +39 -0
  77. package/examples/js/binance-server-time.js +34 -0
  78. package/examples/js/binance-universal-transfer.js +16 -0
  79. package/examples/js/bitfinex-fetch-trades.js +35 -0
  80. package/examples/js/bitfinex2-fetch-trades.js +35 -0
  81. package/examples/js/bitmex-browser-cors-proxy.js +7 -0
  82. package/examples/js/bitpanda-fetchMyTrades-reduce.js +36 -0
  83. package/examples/js/bitrue-fetch-balance.js +28 -0
  84. package/examples/js/bitstamp-private-api.js +115 -0
  85. package/examples/js/bitstamp-public-api.js +39 -0
  86. package/examples/js/bittrex-balance.js +50 -0
  87. package/examples/js/bittrex-fetch-closed-orders-history.js +69 -0
  88. package/examples/js/blockchaincom-withdrawal.js +59 -0
  89. package/examples/js/build-ohlcv-bars.js +48 -0
  90. package/examples/js/builtin-rate-limiting-rest-poller.js +25 -0
  91. package/examples/js/bybit-trailing.js +62 -0
  92. package/examples/js/bybit-updated.cjs +154 -0
  93. package/examples/js/cli.js +405 -0
  94. package/examples/js/coinbase-fetch-all-balances.js +36 -0
  95. package/examples/js/coinex-fetch-all-deposit-addresses-using-fetchDepositAddress.js +47 -0
  96. package/examples/js/coinex-futures.js +75 -0
  97. package/examples/js/coinone-fetch-tickers.js +54 -0
  98. package/examples/js/coinone-markets.js +16 -0
  99. package/examples/js/compare-two-exchanges-capabilities.js +36 -0
  100. package/examples/js/cors-proxy.js +5 -0
  101. package/examples/js/create-order-handle-errors.js +55 -0
  102. package/examples/js/create-order-position-with-takeprofit-stoploss.js +71 -0
  103. package/examples/js/create-order-with-retry.js +65 -0
  104. package/examples/js/create-order-ws-example.js +25 -0
  105. package/examples/js/create-orders-example.js +17 -0
  106. package/examples/js/create-trailing-amount-order.js +36 -0
  107. package/examples/js/create-trailing-percent-order.js +36 -0
  108. package/examples/js/credentials.json +5 -0
  109. package/examples/js/custom-proxy-agent-for-js.js +10 -0
  110. package/examples/js/custom-proxy-url.js +23 -0
  111. package/examples/js/delta-maintenance-margin-rate-max-leverage.js +60 -0
  112. package/examples/js/env-variables.js +26 -0
  113. package/examples/js/error-handling.js +89 -0
  114. package/examples/js/exchange-capabilities.js +135 -0
  115. package/examples/js/exchanges-by-volume.js +60 -0
  116. package/examples/js/exchanges.js +40 -0
  117. package/examples/js/fetch-all-balances.js +219 -0
  118. package/examples/js/fetch-all-tickers-to-files-2.js +53 -0
  119. package/examples/js/fetch-all-tickers-to-files.js +77 -0
  120. package/examples/js/fetch-balance.js +28 -0
  121. package/examples/js/fetch-create-deposit-address.js +101 -0
  122. package/examples/js/fetch-from-many-exchanges-simultaneously.js +21 -0
  123. package/examples/js/fetch-funding-rate-history.js +25 -0
  124. package/examples/js/fetch-futures/prettier.config.js +5 -0
  125. package/examples/js/fetch-futures/src/index.js +25 -0
  126. package/examples/js/fetch-ohlcv-from-to-mark-index-premium.js +72 -0
  127. package/examples/js/fetch-ohlcv-many-exchanges-continuosly.js +39 -0
  128. package/examples/js/fetch-ohlcv.js +16 -0
  129. package/examples/js/fetch-okex-futures.js +22 -0
  130. package/examples/js/fetch-orders.js +27 -0
  131. package/examples/js/fetch-ticker-from-multiple-exchanges.js +35 -0
  132. package/examples/js/fetch-ticker-where-available.js +75 -0
  133. package/examples/js/fetch-tickers/build/index.js +19 -0
  134. package/examples/js/fetch-tickers/prettier.config.js +5 -0
  135. package/examples/js/fetch-tickers/src/index.js +17 -0
  136. package/examples/js/gateio-create-batch-order.js +43 -0
  137. package/examples/js/gateio-futures.js +49 -0
  138. package/examples/js/gateio-open-close-contract.js +49 -0
  139. package/examples/js/gateio-swaps.js +74 -0
  140. package/examples/js/gdax-fetch-trades-pagination.js +29 -0
  141. package/examples/js/hitbtc2-withdraw.js +61 -0
  142. package/examples/js/how-to-import-one-exchange-esm.js +10 -0
  143. package/examples/js/huobi-futures.js +71 -0
  144. package/examples/js/huobi-open-close-contract.js +63 -0
  145. package/examples/js/huobi-swaps.js +70 -0
  146. package/examples/js/huobipro-market-buy-sell-fetch-trading-limits.js +98 -0
  147. package/examples/js/hybridCJSExample.cjs +19 -0
  148. package/examples/js/hybridESMExample.js +19 -0
  149. package/examples/js/idex-fetch-balance.js +13 -0
  150. package/examples/js/instantiate-all-at-once.js +46 -0
  151. package/examples/js/instantiate-all-from-json.js +31 -0
  152. package/examples/js/kraken-create-and-close-position.js +54 -0
  153. package/examples/js/kraken-fetch-order-trades.js +33 -0
  154. package/examples/js/kraken-margin-trading.js +89 -0
  155. package/examples/js/kucoin-rate-limit.js +38 -0
  156. package/examples/js/latoken-example.js +108 -0
  157. package/examples/js/live-orderbook.js +106 -0
  158. package/examples/js/live-ticker.js +80 -0
  159. package/examples/js/live-tickers.js +74 -0
  160. package/examples/js/load-all-contracts.js +41 -0
  161. package/examples/js/load-all-symbols-at-once.js +69 -0
  162. package/examples/js/load-all-tickers-at-once.js +91 -0
  163. package/examples/js/load-markets-to-files.js +57 -0
  164. package/examples/js/looping-over-all-symbols-of-specific-exchanges.js +61 -0
  165. package/examples/js/looping-over-specific-symbols-of-all-exchanges.js +91 -0
  166. package/examples/js/margin-loan-borrow-buy-sell-repay.js +70 -0
  167. package/examples/js/market-status-and-currency-status.js +29 -0
  168. package/examples/js/ohlcv-console-chart.js +29 -0
  169. package/examples/js/okex-fetch-closed-orders-archive.js +31 -0
  170. package/examples/js/okex-transfer.js +51 -0
  171. package/examples/js/okx-poll-fetch-my-trades.js +37 -0
  172. package/examples/js/okx-poll-rate-limit.js +48 -0
  173. package/examples/js/order-book-extra-level-depth-param.js +20 -0
  174. package/examples/js/phemex-create-order-position-with-takeprofit-stoploss.js +49 -0
  175. package/examples/js/poll-ohlcv.js +43 -0
  176. package/examples/js/poloniex-fetch-order-books.js +35 -0
  177. package/examples/js/poloniex-limits-amount-min.js +62 -0
  178. package/examples/js/proxy-round-robin.js +98 -0
  179. package/examples/js/proxy-usage.js +32 -0
  180. package/examples/js/sample-local-proxy-server-with-cors.js +12 -0
  181. package/examples/js/search-all-exchanges.js +159 -0
  182. package/examples/js/shared-load-markets.js +80 -0
  183. package/examples/js/sort-swap-markets-by-hourly-price-change.js +55 -0
  184. package/examples/js/symbols.js +110 -0
  185. package/examples/js/theocean.js +41 -0
  186. package/examples/js/tickers.js +106 -0
  187. package/examples/js/validate-paginated-data.js +61 -0
  188. package/examples/js/watch-OHLCV-For-Symbols.js +15 -0
  189. package/examples/js/watch-OHLCV.js +12 -0
  190. package/examples/js/watch-OrderBook-For-Symbols.js +11 -0
  191. package/examples/js/watch-Trades-For-Symbols.js +11 -0
  192. package/examples/js/watch-tickers.js +11 -0
  193. package/examples/js/watchOHLCVForSymbols.js +15 -0
  194. package/examples/js/watchOrderBookForSymbols.js +11 -0
  195. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts +2 -0
  196. package/examples/js/watchPositions-many-exchanges-continuosly.d.ts.map +1 -0
  197. package/examples/js/watchPositions-many-exchanges-continuosly.js +49 -0
  198. package/examples/js/watchPositions.d.ts +2 -0
  199. package/examples/js/watchPositions.d.ts.map +1 -0
  200. package/examples/js/watchPositions.js +13 -0
  201. package/examples/js/watchPositionsForSymbols.d.ts +2 -0
  202. package/examples/js/watchPositionsForSymbols.d.ts.map +1 -0
  203. package/examples/js/watchPositionsForSymbols.js +14 -0
  204. package/examples/js/watchTradesForSymbols.js +11 -0
  205. package/examples/js/withdraw-from-one-exchange-to-another.js +50 -0
  206. package/examples/php/README.md +7 -0
  207. package/examples/py/README.md +15 -0
  208. package/examples/py/playing_with_ccxt_example.ipynb +222 -0
  209. package/examples/ts/.eslintrc +111 -0
  210. package/examples/ts/build-ohlcv-bars.ts +53 -0
  211. package/examples/ts/cli.ts +397 -0
  212. package/examples/ts/compare-two-exchanges-capabilities.ts +36 -0
  213. package/examples/ts/create-order-position-with-takeprofit-stoploss.ts +89 -0
  214. package/examples/ts/create-order-ws-example.ts +33 -0
  215. package/examples/ts/create-orders-example.ts +21 -0
  216. package/examples/ts/create-trailing-amount-order.ts +37 -0
  217. package/examples/ts/create-trailing-percent-order.ts +37 -0
  218. package/examples/ts/custom-proxy-agent-for-js.ts +14 -0
  219. package/examples/ts/fetch-futures/package-lock.json +116 -0
  220. package/examples/ts/fetch-futures/package.json +34 -0
  221. package/examples/ts/fetch-futures/prettier.config.js +4 -0
  222. package/examples/ts/fetch-futures/src/index.ts +28 -0
  223. package/examples/ts/fetch-futures/tsconfig.json +28 -0
  224. package/examples/ts/fetch-ohlcv-many-exchanges-continuosly.ts +44 -0
  225. package/examples/ts/fetch-ohlcv.ts +17 -0
  226. package/examples/ts/fetch-tickers/package-lock.json +116 -0
  227. package/examples/ts/fetch-tickers/package.json +34 -0
  228. package/examples/ts/fetch-tickers/prettier.config.js +4 -0
  229. package/examples/ts/fetch-tickers/src/index.ts +21 -0
  230. package/examples/ts/fetch-tickers/tsconfig.json +28 -0
  231. package/examples/ts/how-to-import-one-exchange-esm.ts +11 -0
  232. package/examples/ts/kraken-create-and-close-position.ts +69 -0
  233. package/examples/ts/margin-loan-borrow-buy-sell-repay.ts +72 -0
  234. package/examples/ts/nextjs-page-router/.eslintrc.json +3 -0
  235. package/examples/ts/nextjs-page-router/README.md +43 -0
  236. package/examples/ts/nextjs-page-router/next.config.js +6 -0
  237. package/examples/ts/nextjs-page-router/package-lock.json +7425 -0
  238. package/examples/ts/nextjs-page-router/package.json +28 -0
  239. package/examples/ts/nextjs-page-router/postcss.config.js +6 -0
  240. package/examples/ts/nextjs-page-router/public/favicon.ico +0 -0
  241. package/examples/ts/nextjs-page-router/src/pages/_app.tsx +6 -0
  242. package/examples/ts/nextjs-page-router/src/pages/_document.tsx +13 -0
  243. package/examples/ts/nextjs-page-router/src/pages/balance.tsx +46 -0
  244. package/examples/ts/nextjs-page-router/src/pages/index.tsx +8 -0
  245. package/examples/ts/nextjs-page-router/src/pages/tickers.tsx +61 -0
  246. package/examples/ts/nextjs-page-router/src/styles/globals.css +27 -0
  247. package/examples/ts/nextjs-page-router/tailwind.config.ts +20 -0
  248. package/examples/ts/nextjs-page-router/tsconfig.json +22 -0
  249. package/examples/ts/phemex-create-order-position-with-takeprofit-stoploss.ts +62 -0
  250. package/examples/ts/proxy-usage.ts +41 -0
  251. package/examples/ts/sample-local-proxy-server-with-cors.ts +15 -0
  252. package/examples/ts/watch-OHLCV-For-Symbols.ts +17 -0
  253. package/examples/ts/watch-OHLCV.ts +14 -0
  254. package/examples/ts/watch-OrderBook-For-Symbols.ts +13 -0
  255. package/examples/ts/watch-Trades-For-Symbols.ts +13 -0
  256. package/examples/ts/watch-tickers.ts +13 -0
  257. package/examples/ts/watchPositions-many-exchanges-continuosly.ts +53 -0
  258. package/examples/ts/watchPositions.ts +15 -0
  259. package/examples/ts/watchPositionsForSymbols.ts +16 -0
  260. package/examples/tsconfig.json +27 -0
  261. package/js/ccxt.d.ts +8 -2
  262. package/js/ccxt.js +6 -2
  263. package/js/src/abstract/coinbaseinternational.d.ts +42 -0
  264. package/js/src/abstract/coinbaseinternational.js +11 -0
  265. package/js/src/ace.d.ts +2 -2
  266. package/js/src/alpaca.d.ts +2 -2
  267. package/js/src/ascendex.d.ts +3 -3
  268. package/js/src/base/Exchange.d.ts +27 -24
  269. package/js/src/base/Exchange.js +31 -7
  270. package/js/src/bigone.d.ts +2 -2
  271. package/js/src/binance.d.ts +7 -7
  272. package/js/src/bingx.d.ts +4 -4
  273. package/js/src/bit2c.d.ts +2 -2
  274. package/js/src/bitbank.d.ts +2 -2
  275. package/js/src/bitbns.d.ts +2 -2
  276. package/js/src/bitfinex.d.ts +3 -3
  277. package/js/src/bitfinex2.d.ts +4 -4
  278. package/js/src/bitflyer.d.ts +2 -2
  279. package/js/src/bitget.d.ts +4 -4
  280. package/js/src/bitget.js +62 -50
  281. package/js/src/bithumb.d.ts +2 -2
  282. package/js/src/bitmart.d.ts +4 -4
  283. package/js/src/bitmex.d.ts +3 -3
  284. package/js/src/bitopro.d.ts +2 -2
  285. package/js/src/bitrue.d.ts +2 -2
  286. package/js/src/bitso.d.ts +2 -2
  287. package/js/src/bitstamp.d.ts +2 -2
  288. package/js/src/bitteam.d.ts +2 -2
  289. package/js/src/bitvavo.d.ts +4 -4
  290. package/js/src/bl3p.d.ts +2 -2
  291. package/js/src/blockchaincom.d.ts +2 -2
  292. package/js/src/blofin.d.ts +4 -4
  293. package/js/src/btcalpha.d.ts +2 -2
  294. package/js/src/btcbox.d.ts +2 -2
  295. package/js/src/btcmarkets.d.ts +2 -2
  296. package/js/src/btcturk.d.ts +2 -2
  297. package/js/src/btcturk.js +3 -3
  298. package/js/src/bybit.d.ts +8 -6
  299. package/js/src/bybit.js +90 -30
  300. package/js/src/cex.d.ts +3 -3
  301. package/js/src/coinbase.d.ts +3 -3
  302. package/js/src/coinbaseinternational.d.ts +146 -0
  303. package/js/src/coinbaseinternational.js +2020 -0
  304. package/js/src/coinbasepro.d.ts +2 -2
  305. package/js/src/coincheck.d.ts +2 -2
  306. package/js/src/coinex.d.ts +4 -4
  307. package/js/src/coinlist.d.ts +3 -3
  308. package/js/src/coinmate.d.ts +2 -2
  309. package/js/src/coinmetro.d.ts +2 -2
  310. package/js/src/coinone.d.ts +2 -2
  311. package/js/src/coinsph.d.ts +2 -2
  312. package/js/src/coinspot.d.ts +2 -2
  313. package/js/src/cryptocom.d.ts +4 -4
  314. package/js/src/currencycom.d.ts +2 -2
  315. package/js/src/delta.d.ts +3 -3
  316. package/js/src/deribit.d.ts +3 -3
  317. package/js/src/digifinex.d.ts +3 -3
  318. package/js/src/exmo.d.ts +3 -3
  319. package/js/src/gate.d.ts +4 -4
  320. package/js/src/gate.js +1 -1
  321. package/js/src/gemini.d.ts +2 -2
  322. package/js/src/hitbtc.d.ts +4 -4
  323. package/js/src/hollaex.d.ts +2 -2
  324. package/js/src/htx.d.ts +5 -5
  325. package/js/src/htx.js +16 -9
  326. package/js/src/huobijp.d.ts +2 -2
  327. package/js/src/hyperliquid.d.ts +4 -3
  328. package/js/src/hyperliquid.js +10 -3
  329. package/js/src/idex.d.ts +2 -2
  330. package/js/src/independentreserve.d.ts +2 -2
  331. package/js/src/indodax.d.ts +2 -2
  332. package/js/src/kraken.d.ts +3 -3
  333. package/js/src/krakenfutures.d.ts +4 -4
  334. package/js/src/kucoin.d.ts +4 -4
  335. package/js/src/kucoinfutures.d.ts +3 -3
  336. package/js/src/kuna.d.ts +2 -2
  337. package/js/src/latoken.d.ts +2 -2
  338. package/js/src/lbank.d.ts +2 -2
  339. package/js/src/luno.d.ts +2 -2
  340. package/js/src/lykke.d.ts +2 -2
  341. package/js/src/mercado.d.ts +2 -2
  342. package/js/src/mexc.d.ts +2 -2
  343. package/js/src/mexc.js +1 -1
  344. package/js/src/ndax.d.ts +3 -3
  345. package/js/src/novadax.d.ts +2 -2
  346. package/js/src/oceanex.d.ts +2 -2
  347. package/js/src/okcoin.d.ts +3 -3
  348. package/js/src/okx.d.ts +4 -4
  349. package/js/src/okx.js +1 -1
  350. package/js/src/onetrading.d.ts +2 -2
  351. package/js/src/p2b.d.ts +2 -2
  352. package/js/src/paymium.d.ts +2 -2
  353. package/js/src/phemex.d.ts +3 -3
  354. package/js/src/poloniex.d.ts +3 -3
  355. package/js/src/poloniexfutures.d.ts +2 -2
  356. package/js/src/pro/binance.d.ts +3 -3
  357. package/js/src/pro/bitvavo.d.ts +3 -3
  358. package/js/src/pro/cex.d.ts +3 -3
  359. package/js/src/pro/coinbaseinternational.d.ts +28 -0
  360. package/js/src/pro/coinbaseinternational.js +646 -0
  361. package/js/src/pro/cryptocom.d.ts +2 -2
  362. package/js/src/pro/hitbtc.d.ts +2 -2
  363. package/js/src/pro/kraken.d.ts +3 -3
  364. package/js/src/pro/krakenfutures.js +8 -7
  365. package/js/src/pro/okx.d.ts +3 -3
  366. package/js/src/pro/poloniex.d.ts +2 -2
  367. package/js/src/probit.d.ts +2 -2
  368. package/js/src/timex.d.ts +3 -3
  369. package/js/src/tokocrypto.d.ts +2 -2
  370. package/js/src/upbit.d.ts +2 -2
  371. package/js/src/wavesexchange.d.ts +2 -2
  372. package/js/src/wazirx.d.ts +2 -2
  373. package/js/src/whitebit.d.ts +2 -2
  374. package/js/src/woo.d.ts +5 -5
  375. package/js/src/yobit.d.ts +2 -2
  376. package/js/src/zaif.d.ts +2 -2
  377. package/js/src/zonda.d.ts +2 -2
  378. package/package.json +4 -1
  379. package/skip-tests.json +227 -424
package/js/src/bybit.js CHANGED
@@ -82,6 +82,7 @@ export default class bybit extends Exchange {
82
82
  'fetchIsolatedBorrowRates': false,
83
83
  'fetchLedger': true,
84
84
  'fetchLeverage': true,
85
+ 'fetchLeverageTiers': true,
85
86
  'fetchMarketLeverageTiers': true,
86
87
  'fetchMarkets': true,
87
88
  'fetchMarkOHLCV': true,
@@ -7272,36 +7273,6 @@ export default class bybit extends Exchange {
7272
7273
  request['symbol'] = market['id'];
7273
7274
  return await this.fetchDerivativesMarketLeverageTiers(symbol, params);
7274
7275
  }
7275
- parseMarketLeverageTiers(info, market = undefined) {
7276
- //
7277
- // {
7278
- // "id": 1,
7279
- // "symbol": "BTCUSD",
7280
- // "riskLimitValue": "150",
7281
- // "maintenanceMargin": "0.5",
7282
- // "initialMargin": "1",
7283
- // "isLowestRisk": 1,
7284
- // "maxLeverage": "100.00"
7285
- // }
7286
- //
7287
- let minNotional = 0;
7288
- const tiers = [];
7289
- for (let i = 0; i < info.length; i++) {
7290
- const item = info[i];
7291
- const maxNotional = this.safeNumber(item, 'riskLimitValue');
7292
- tiers.push({
7293
- 'tier': this.sum(i, 1),
7294
- 'currency': market['base'],
7295
- 'minNotional': minNotional,
7296
- 'maxNotional': maxNotional,
7297
- 'maintenanceMarginRate': this.safeNumber(item, 'maintenanceMargin'),
7298
- 'maxLeverage': this.safeNumber(item, 'maxLeverage'),
7299
- 'info': item,
7300
- });
7301
- minNotional = maxNotional;
7302
- }
7303
- return tiers;
7304
- }
7305
7276
  parseTradingFee(fee, market = undefined) {
7306
7277
  //
7307
7278
  // {
@@ -8006,6 +7977,95 @@ export default class bybit extends Exchange {
8006
7977
  'datetime': this.iso8601(timestamp),
8007
7978
  });
8008
7979
  }
7980
+ async fetchLeverageTiers(symbols = undefined, params = {}) {
7981
+ /**
7982
+ * @method
7983
+ * @name bybit#fetchLeverageTiers
7984
+ * @see https://bybit-exchange.github.io/docs/v5/market/risk-limit
7985
+ * @description retrieve information on the maximum leverage, for different trade sizes
7986
+ * @param {string[]} [symbols] a list of unified market symbols
7987
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
7988
+ * @param {string} [params.subType] market subType, ['linear', 'inverse'], default is 'linear'
7989
+ * @returns {object} a dictionary of [leverage tiers structures]{@link https://docs.ccxt.com/#/?id=leverage-tiers-structure}, indexed by market symbols
7990
+ */
7991
+ await this.loadMarkets();
7992
+ let market = undefined;
7993
+ if (symbols !== undefined) {
7994
+ market = this.market(symbols[0]);
7995
+ if (market['spot']) {
7996
+ throw new NotSupported(this.id + ' fetchLeverageTiers() is not supported for spot market');
7997
+ }
7998
+ }
7999
+ let subType = undefined;
8000
+ [subType, params] = this.handleSubTypeAndParams('fetchTickers', market, params, 'linear');
8001
+ const request = {
8002
+ 'category': subType,
8003
+ };
8004
+ const response = await this.publicGetV5MarketRiskLimit(this.extend(request, params));
8005
+ const result = this.safeDict(response, 'result', {});
8006
+ const data = this.safeList(result, 'list', []);
8007
+ symbols = this.marketSymbols(symbols);
8008
+ return this.parseLeverageTiers(data, symbols, 'symbol');
8009
+ }
8010
+ parseLeverageTiers(response, symbols = undefined, marketIdKey = undefined) {
8011
+ //
8012
+ // [
8013
+ // {
8014
+ // "id": 1,
8015
+ // "symbol": "BTCUSD",
8016
+ // "riskLimitValue": "150",
8017
+ // "maintenanceMargin": "0.5",
8018
+ // "initialMargin": "1",
8019
+ // "isLowestRisk": 1,
8020
+ // "maxLeverage": "100.00"
8021
+ // }
8022
+ // ]
8023
+ //
8024
+ const tiers = {};
8025
+ const marketIds = this.marketIds(symbols);
8026
+ const filteredResults = this.filterByArray(response, marketIdKey, marketIds, false);
8027
+ const grouped = this.groupBy(filteredResults, marketIdKey);
8028
+ const keys = Object.keys(grouped);
8029
+ for (let i = 0; i < keys.length; i++) {
8030
+ const marketId = keys[i];
8031
+ const entry = grouped[marketId];
8032
+ const market = this.safeMarket(marketId, undefined, undefined, 'contract');
8033
+ const symbol = market['symbol'];
8034
+ tiers[symbol] = this.parseMarketLeverageTiers(entry, market);
8035
+ }
8036
+ return tiers;
8037
+ }
8038
+ parseMarketLeverageTiers(info, market = undefined) {
8039
+ //
8040
+ // [
8041
+ // {
8042
+ // "id": 1,
8043
+ // "symbol": "BTCUSD",
8044
+ // "riskLimitValue": "150",
8045
+ // "maintenanceMargin": "0.5",
8046
+ // "initialMargin": "1",
8047
+ // "isLowestRisk": 1,
8048
+ // "maxLeverage": "100.00"
8049
+ // }
8050
+ // ]
8051
+ //
8052
+ const tiers = [];
8053
+ for (let i = 0; i < info.length; i++) {
8054
+ const tier = info[i];
8055
+ const marketId = this.safeString(info, 'symbol');
8056
+ market = this.safeMarket(marketId);
8057
+ tiers.push({
8058
+ 'tier': this.safeInteger(tier, 'id'),
8059
+ 'currency': market['settle'],
8060
+ 'minNotional': undefined,
8061
+ 'maxNotional': undefined,
8062
+ 'maintenanceMarginRate': this.safeNumber(tier, 'maintenanceMargin'),
8063
+ 'maxLeverage': this.safeNumber(tier, 'maxLeverage'),
8064
+ 'info': tier,
8065
+ });
8066
+ }
8067
+ return tiers;
8068
+ }
8009
8069
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
8010
8070
  let url = this.implodeHostname(this.urls['api'][api]) + '/' + path;
8011
8071
  if (api === 'public') {
package/js/src/cex.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/cex.js';
2
- import type { Balances, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
2
+ import type { Balances, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
3
3
  /**
4
4
  * @class cex
5
5
  * @augments Exchange
@@ -20,7 +20,7 @@ export default class cex extends Exchange {
20
20
  parseTrade(trade: any, market?: Market): Trade;
21
21
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
22
22
  fetchTradingFees(params?: {}): Promise<{}>;
23
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
23
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
24
24
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
25
25
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
26
26
  parseOrder(order: any, market?: Market): Order;
@@ -29,7 +29,7 @@ export default class cex extends Exchange {
29
29
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
30
30
  fetchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
31
31
  parseOrderStatus(status: any): string;
32
- editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
32
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
33
33
  fetchDepositAddress(code: string, params?: {}): Promise<{
34
34
  currency: string;
35
35
  address: string;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/coinbase.js';
2
- import type { Int, OrderSide, OrderType, Order, Trade, OHLCV, Ticker, OrderBook, Str, Transaction, Balances, Tickers, Strings, Market, Currency } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Order, Trade, OHLCV, Ticker, OrderBook, Str, Transaction, Balances, Tickers, Strings, Market, Currency, Num } from './base/types.js';
3
3
  /**
4
4
  * @class coinbase
5
5
  * @augments Exchange
@@ -70,14 +70,14 @@ export default class coinbase extends Exchange {
70
70
  };
71
71
  prepareAccountRequestWithCurrencyCode(code?: Str, limit?: Int, params?: {}): Promise<{}[]>;
72
72
  createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
73
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
73
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
74
74
  parseOrder(order: any, market?: Market): Order;
75
75
  parseOrderStatus(status: any): string;
76
76
  parseOrderType(type: any): string;
77
77
  parseTimeInForce(timeInForce: any): string;
78
78
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<import("./base/types.js").Dictionary<any>>;
79
79
  cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<Order[]>;
80
- editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
80
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
81
81
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
82
82
  fetchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
83
83
  fetchOrdersByStatus(status: any, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
@@ -0,0 +1,146 @@
1
+ import Exchange from './abstract/coinbaseinternational.js';
2
+ import type { Int, OrderSide, OrderType, Order, Trade, Ticker, Str, Transaction, Balances, Tickers, Strings, Market, Currency, TransferEntry, Position, FundingRateHistory } from './base/types.js';
3
+ /**
4
+ * @class coinbaseinternational
5
+ * @augments Exchange
6
+ */
7
+ export default class coinbaseinternational extends Exchange {
8
+ describe(): any;
9
+ handlePortfolioAndParams(methodName: string, params?: {}): Promise<any[]>;
10
+ handleNetworkIdAndParams(currencyCode: string, methodName: string, params: any): Promise<any[]>;
11
+ fetchAccounts(params?: {}): Promise<any[]>;
12
+ parseAccount(account: any): {
13
+ id: string;
14
+ type: any;
15
+ code: any;
16
+ info: any;
17
+ };
18
+ fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
19
+ parseFundingRateHistory(info: any, market?: Market): FundingRateHistory;
20
+ parseFundingRate(contract: any, market?: Market): {
21
+ info: any;
22
+ symbol: string;
23
+ markPrice: number;
24
+ indexPrice: any;
25
+ interestRate: any;
26
+ estimatedSettlePrice: any;
27
+ timestamp: number;
28
+ datetime: string;
29
+ fundingRate: number;
30
+ fundingTimestamp: number;
31
+ fundingDatetime: string;
32
+ nextFundingRate: any;
33
+ nextFundingTimestamp: any;
34
+ nextFundingDatetime: any;
35
+ previousFundingRate: any;
36
+ previousFundingTimestamp: any;
37
+ previousFundingDatetime: any;
38
+ };
39
+ createDepositAddress(code: string, params?: {}): Promise<{
40
+ currency: string;
41
+ tag: string;
42
+ address: string;
43
+ info: any;
44
+ }>;
45
+ findDefaultNetwork(networks: any): unknown;
46
+ loadCurrencyNetworks(code: any, params?: {}): Promise<void>;
47
+ parseNetworks(networks: any, params?: {}): {};
48
+ parseNetwork(network: any, params?: {}): {
49
+ info: any;
50
+ id: string;
51
+ name: string;
52
+ network: string;
53
+ active: boolean;
54
+ deposit: boolean;
55
+ withdraw: boolean;
56
+ fee: number;
57
+ precision: number;
58
+ limits: {
59
+ withdraw: {
60
+ min: number;
61
+ max: number;
62
+ };
63
+ deposit: {
64
+ min: number;
65
+ max: number;
66
+ };
67
+ };
68
+ };
69
+ setMargin(symbol: string, amount: number, params?: {}): Promise<any>;
70
+ fetchDepositsWithdrawals(code?: string, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
71
+ fetchPosition(symbol: string, params?: {}): Promise<Position>;
72
+ parsePosition(position: any, market?: Market): Position;
73
+ fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
74
+ fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
75
+ fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
76
+ parseTransactionStatus(status: any): string;
77
+ parseTransaction(transaction: any, currency?: Currency): Transaction;
78
+ parseTrade(trade: any, market?: Market): Trade;
79
+ fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
80
+ parseMarket(market: any): Market;
81
+ fetchCurrencies(params?: {}): Promise<any>;
82
+ parseCurrency(currency: any): {
83
+ id: string;
84
+ name: string;
85
+ code: string;
86
+ precision: any;
87
+ info: any;
88
+ active: boolean;
89
+ deposit: any;
90
+ withdraw: any;
91
+ networks: any;
92
+ fee: any;
93
+ fees: any;
94
+ limits: {
95
+ amount?: import("./base/types.js").MinMax;
96
+ cost?: import("./base/types.js").MinMax;
97
+ leverage?: import("./base/types.js").MinMax;
98
+ price?: import("./base/types.js").MinMax;
99
+ };
100
+ };
101
+ fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
102
+ fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
103
+ parseTicker(ticker: object, market?: Market): Ticker;
104
+ fetchBalance(params?: {}): Promise<Balances>;
105
+ parseBalance(response: any): Balances;
106
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
107
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
108
+ parseOrder(order: any, market?: Market): Order;
109
+ parseOrderStatus(status: any): string;
110
+ parseOrderType(type: any): string;
111
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
112
+ cancelAllOrders(symbol?: string, params?: {}): Promise<Order[]>;
113
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
114
+ fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
115
+ fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
116
+ fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
117
+ withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
118
+ safeNetwork(network: any): {
119
+ info: any;
120
+ id: string;
121
+ name: string;
122
+ network: string;
123
+ active: boolean;
124
+ deposit: boolean;
125
+ withdraw: boolean;
126
+ fee: number;
127
+ precision: number;
128
+ limits: {
129
+ withdraw: {
130
+ min: number;
131
+ max: number;
132
+ };
133
+ deposit: {
134
+ min: number;
135
+ max: number;
136
+ };
137
+ };
138
+ };
139
+ sign(path: any, api?: any[], method?: string, params?: {}, headers?: any, body?: any): {
140
+ url: string;
141
+ method: string;
142
+ body: any;
143
+ headers: any;
144
+ };
145
+ handleErrors(code: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
146
+ }