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
@@ -0,0 +1,106 @@
1
+
2
+
3
+ import ccxt from '../../js/ccxt.js';
4
+ import asTable from 'as-table';
5
+ import ansicolor from 'ansicolor';
6
+ import ololog from 'ololog';
7
+
8
+ const log = ololog.configure ({ locate: false }), verbose = process.argv.includes ('--verbose');
9
+
10
+ ansicolor.nice
11
+
12
+ //-----------------------------------------------------------------------------
13
+
14
+ let printSupportedExchanges = function () {
15
+ log ('Supported exchanges:', ccxt.exchanges.join (', ').green)
16
+ }
17
+
18
+ let printUsage = function () {
19
+ log ('Usage: node', process.argv[1], 'id'.green, '[symbol]'.yellow)
20
+ printSupportedExchanges ()
21
+ }
22
+
23
+ let printSymbols = function (exchange) {
24
+ log (id.green, 'has', exchange.symbols.length, 'symbols:', exchange.symbols.join (', ').yellow)
25
+ }
26
+
27
+ let sleep = (ms) => new Promise (resolve => setTimeout (resolve, ms))
28
+
29
+ let printTicker = async (exchange, symbol) => {
30
+ let ticker = await exchange.fetchTicker (symbol)
31
+ log (exchange.id.green, symbol.yellow, 'ticker',
32
+ ticker['datetime'],
33
+ 'high: ' + ticker['high'],
34
+ 'low: ' + ticker['low'],
35
+ 'bid: ' + ticker['bid'],
36
+ 'ask: ' + ticker['ask'],
37
+ 'volume: ' + ticker['baseVolume'])
38
+ return ticker
39
+ }
40
+
41
+ //-----------------------------------------------------------------------------
42
+
43
+ let printTickers = async (id) => {
44
+
45
+ log ('Instantiating', id.green, 'exchange exchange')
46
+
47
+ // instantiate the exchange by id
48
+ let exchange = new ccxt[id] ({ verbose })
49
+
50
+ // load all markets from the exchange
51
+ let markets = await exchange.loadMarkets ()
52
+
53
+ if (process.argv.length > 3) { // if a symbol was supplied, get that symbol only
54
+
55
+ let symbol = process.argv[3]
56
+
57
+ await printTicker (exchange, symbol)
58
+
59
+ } else { // otherwise run through all symbols one by one
60
+
61
+ for (let symbol of exchange.symbols)
62
+ if ((symbol.indexOf ('.d') < 0)) { // skip darkpool symbols
63
+
64
+ const market = exchange.markets[symbol];
65
+
66
+ if (!market['active']) {
67
+ log.red (exchange.id + ' ' + symbol + ' inactive');
68
+ continue;
69
+ }
70
+
71
+ await sleep (exchange.rateLimit)
72
+ await printTicker (exchange, symbol)
73
+ }
74
+ }
75
+ }
76
+
77
+ //-----------------------------------------------------------------------------
78
+
79
+ ;(async function main () {
80
+
81
+ if (process.argv.length > 2) {
82
+
83
+ let id = process.argv[2]
84
+
85
+ // check if the exchange is supported by ccxt
86
+ let exchangeFound = ccxt.exchanges.indexOf (id) > -1
87
+
88
+ if (exchangeFound) {
89
+
90
+ await printTickers (id)
91
+
92
+ } else {
93
+
94
+ log ('Exchange ' + id.red + ' not found')
95
+ printUsage ()
96
+ }
97
+
98
+ } else {
99
+
100
+ printUsage ()
101
+
102
+ }
103
+
104
+ process.exit ()
105
+
106
+ }) ()
@@ -0,0 +1,61 @@
1
+
2
+
3
+ import ccxt from '../../js/ccxt.js';
4
+ import ololog from 'ololog'
5
+ import ansicolor from 'ansicolor';
6
+
7
+ const log = ololog.configure ({ locate: false })
8
+
9
+ ansicolor.nice
10
+
11
+ //-----------------------------------------------------------------------------
12
+
13
+ /*
14
+ * Warning: Sometimes the exchanges have gaps in their OHLCV data, so it does not mean
15
+ * that CCXT is broken if you see gaps in the chart.
16
+ */
17
+
18
+ async function fetchData(exchange, symbol, timeframe) {
19
+ await exchange.loadMarkets()
20
+ // exchange.verbose = true;
21
+ const duration = exchange.parseTimeframe (timeframe) *1000; // in milliseconds
22
+ const ohlcv = await exchange.fetchOHLCV (symbol, timeframe, undefined, undefined, {'paginate': true, 'paginationCalls': 5})
23
+ validateTimeframes(ohlcv, duration, exchange, symbol)
24
+ }
25
+
26
+ function validateTimeframes(ohlcv, duration, exchange, symbol) {
27
+ for (let j = 0; j < ohlcv.length; j++) {
28
+ const [timestamp, open, high, low, close, volume] = ohlcv[j]
29
+ if (j > 0) {
30
+ const [prevTimestamp, prevOpen, prevHigh, prevLow, prevClose, prevVolume] = ohlcv[j - 1]
31
+ if (timestamp - prevTimestamp !== duration) {
32
+ log.red ('[' + j + ']',exchange.id, symbol, 'OHLCV data is not continuous, at', exchange.iso8601 (timestamp), 'diff:', ((timestamp - prevTimestamp) / 1000), 's expected:', duration/ 1000, 's')
33
+ }
34
+ }
35
+ }
36
+ log.green(exchange.id, symbol, `All the ${ohlcv.length} candles returned are continuous`)
37
+ }
38
+
39
+ async function main () {
40
+
41
+ const exchanges = {
42
+ 'binance': 'BTC/USDT',
43
+ 'bitget': 'BTC/USDT',
44
+ 'kucoin': 'BTC/USDT',
45
+ 'kucoinfutures': 'BTC/USDT:USDT',
46
+ 'okex': 'BTC/USDT',
47
+ 'bybit': 'BTC/USDT'
48
+ }
49
+ const timeframe = '1m';
50
+ const keys = Object.keys (exchanges)
51
+ const promises = [];
52
+ for (let i = 0; i < keys.length; i++) {
53
+ const name = keys[i]
54
+ const symbol = exchanges[name]
55
+ const exchange = new ccxt[name] ({ enableRateLimit: true })
56
+ promises.push(fetchData(exchange, symbol, timeframe))
57
+ }
58
+ await Promise.all(promises)
59
+ }
60
+
61
+ main()
@@ -0,0 +1,15 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const binance = new ccxt.pro.binance({});
5
+ const subscriptions = [
6
+ ['BTC/USDT', '5m'],
7
+ ['ETH/USDT', '5m'],
8
+ ['BTC/USDT', '1h'],
9
+ ];
10
+ while (true) {
11
+ const ohlcv = await binance.watchOHLCVForSymbols(subscriptions);
12
+ console.log(ohlcv);
13
+ }
14
+ }
15
+ await example();
@@ -0,0 +1,12 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const binance = new ccxt.pro.binance({});
5
+ const symbol = 'BTC/USDT';
6
+ const timeframe = '1m';
7
+ while (true) {
8
+ const ohlcv = await binance.watchOHLCV(symbol, timeframe);
9
+ console.log(ohlcv);
10
+ }
11
+ }
12
+ await example();
@@ -0,0 +1,11 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const binance = new ccxt.pro.binance({});
5
+ const symbols = ['BTC/USDT', 'ETH/USDT', 'DOGE/USDT'];
6
+ while (true) {
7
+ const orderbook = await binance.watchOrderBookForSymbols(symbols);
8
+ console.log(orderbook['symbol'], orderbook['asks'][0], orderbook['bids'][0]);
9
+ }
10
+ }
11
+ await example();
@@ -0,0 +1,11 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const binance = new ccxt.pro.binance({});
5
+ const symbols = ['BTC/USDT', 'ETH/USDT', 'DOGE/USDT'];
6
+ while (true) {
7
+ const trades = await binance.watchTradesForSymbols(symbols);
8
+ console.log(trades);
9
+ }
10
+ }
11
+ await example();
@@ -0,0 +1,11 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const binance = new ccxt.pro.binance({});
5
+ const symbols = ['BTC/USDT', 'ETH/USDT', 'DOGE/USDT'];
6
+ while (true) {
7
+ const tickers = await binance.watchTickers(symbols);
8
+ console.log(tickers['BTC/USDT'], tickers['ETH/USDT'], tickers['DOGE/USDT']);
9
+ }
10
+ }
11
+ await example();
@@ -0,0 +1,15 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const binance = new ccxt.pro.binance({});
5
+ const subscriptions = [
6
+ ['BTC/USDT', '5m'],
7
+ ['ETH/USDT', '5m'],
8
+ ['BTC/USDT', '1h'],
9
+ ];
10
+ while (true) {
11
+ const ohlcv = await binance.watchOHLCVForSymbols(subscriptions);
12
+ console.log(ohlcv);
13
+ }
14
+ }
15
+ await example();
@@ -0,0 +1,11 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const binance = new ccxt.pro.binance({});
5
+ const symbol = ['BTC/USDT', 'ETH/USDT', 'DOGE/USDT'];
6
+ while (true) {
7
+ const orderbook = await binance.watchOrderBookForSymbols(symbol);
8
+ console.log(orderbook['symbol'], orderbook['asks'][0], orderbook['bids'][0]);
9
+ }
10
+ }
11
+ await example();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=watchPositions-many-exchanges-continuosly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchPositions-many-exchanges-continuosly.d.ts","sourceRoot":"","sources":["../ts/watchPositions-many-exchanges-continuosly.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ // watch and handle constinuosly
4
+ async function watchPositionsContinuously(exchange) {
5
+ while (true) {
6
+ try {
7
+ const positions = await exchange.watchPositions();
8
+ console.log('Fetched ', exchange.id, ' - Positions: ', positions);
9
+ }
10
+ catch (e) {
11
+ console.log(e);
12
+ break;
13
+ }
14
+ }
15
+ }
16
+ // start exchanges and fetch OHLCV loop
17
+ async function startExchange(exchangeName, config) {
18
+ const ex = new ccxt[exchangeName](config);
19
+ const promises = [];
20
+ promises.push(watchPositionsContinuously(ex));
21
+ await Promise.all(promises);
22
+ await ex.close();
23
+ }
24
+ // main function
25
+ async function example() {
26
+ const exchanges = {
27
+ 'binanceusdm': {
28
+ 'apiKey': 'YOUR_API_KEY',
29
+ 'secret': 'YOUR_API_SECRET',
30
+ },
31
+ 'okx': {
32
+ 'apiKey': 'YOUR_API_KEY',
33
+ 'secret': 'YOUR_API_SECRET',
34
+ },
35
+ 'huobi': {
36
+ 'apiKey': 'YOUR_API_KEY',
37
+ 'secret': 'YOUR_API_SECRET',
38
+ },
39
+ };
40
+ const promises = [];
41
+ const exchangeIds = Object.keys(exchanges);
42
+ for (let i = 0; i < exchangeIds.length; i++) {
43
+ const exchangeName = exchangeIds[i];
44
+ const config = exchanges[exchangeName];
45
+ promises.push(startExchange(exchangeName, config));
46
+ }
47
+ await Promise.all(promises);
48
+ }
49
+ await example();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=watchPositions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchPositions.d.ts","sourceRoot":"","sources":["../ts/watchPositions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const exchange = new ccxt.pro.binanceusdm({
5
+ 'apiKey': 'YOUR_API_KEY',
6
+ 'secret': 'YOUR_API_SECRET'
7
+ });
8
+ while (true) {
9
+ const trades = await exchange.watchPositions();
10
+ console.log(trades);
11
+ }
12
+ }
13
+ await example();
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=watchPositionsForSymbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watchPositionsForSymbols.d.ts","sourceRoot":"","sources":["../ts/watchPositionsForSymbols.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const exchange = new ccxt.pro.binanceusdm({
5
+ 'apiKey': 'YOUR_API_KEY',
6
+ 'secret': 'Your_API_SECRET'
7
+ });
8
+ const symbols = ['BTC/USDT:USDT', 'ETH/USDT:USDT', 'DOGE/USDT:USDT'];
9
+ while (true) {
10
+ const trades = await exchange.watchPositions(symbols);
11
+ console.log(trades);
12
+ }
13
+ }
14
+ await example();
@@ -0,0 +1,11 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+ // AUTO-TRANSPILE //
3
+ async function example() {
4
+ const binance = new ccxt.pro.binance({});
5
+ const symbols = ['BTC/USDT', 'ETH/USDT', 'DOGE/USDT'];
6
+ while (true) {
7
+ const trades = await binance.watchTradesForSymbols(symbols);
8
+ console.log(trades);
9
+ }
10
+ }
11
+ await example();
@@ -0,0 +1,50 @@
1
+ import ccxt from '../../js/ccxt.js';
2
+
3
+ console.log ('CCXT Version', ccxt.version)
4
+
5
+ async function main () {
6
+
7
+ const binance = new ccxt.binance ({
8
+ 'apiKey': 'YOUR_API_KEY',
9
+ 'secret': 'YOUR_SECRET',
10
+ 'options': {
11
+ 'fetchCurrencies': true,
12
+ },
13
+ })
14
+
15
+ const kucoin = new ccxt.kucoin ({
16
+ 'apiKey': 'YOUR_API_KEY',
17
+ 'secret': 'YOUR_SECRET',
18
+ 'password': 'YOUR_API_PASSWORD',
19
+ })
20
+
21
+ await binance.loadMarkets ()
22
+ await kucoin.loadMarkets ()
23
+
24
+ binance.verbose = true
25
+ kucoin.verbose = true
26
+
27
+ const code = 'COTI'
28
+ const amount = 40
29
+
30
+ // https://github.com/ccxt/ccxt/wiki/Manual#overriding-unified-api-params
31
+ // https://binance-docs.github.io/apidocs/spot/en/#deposit-address-supporting-network-user_data
32
+ const deposit = await binance.fetchDepositAddress (code, { 'network': 'ETH' })
33
+
34
+ console.log ('-----------------------------------------------------------')
35
+
36
+ console.log (depositAddress)
37
+
38
+ console.log ('-----------------------------------------------------------')
39
+
40
+ // https://github.com/ccxt/ccxt/wiki/Manual#overriding-unified-api-params
41
+ // https://docs.kucoin.com/#apply-withdraw-2
42
+ const withdrawal = await kucoin.withdraw (code, amount, deposit['address'], deposit['tag'], { 'chain': 'ERC20' })
43
+
44
+ console.log ('-----------------------------------------------------------')
45
+
46
+ console.log (withdrawal)
47
+
48
+ }
49
+
50
+ main ()
@@ -0,0 +1,7 @@
1
+ # CCXT PHP Examples
2
+
3
+ To run PHP examples from any folder type in console:
4
+
5
+ ```shell
6
+ php -f path/to/example.php # substitute for actual filename here
7
+ ```
@@ -0,0 +1,15 @@
1
+ # CCXT Python Examples
2
+
3
+ To run Python examples from any folder, type in console:
4
+
5
+ ```shell
6
+ python path/to/example.py # substitute for actual filename here
7
+ ```
8
+
9
+ Example files starting with `async-` require Python 3.6 with `async`/`await` and async generators support.
10
+
11
+ ![basic-chart](https://user-images.githubusercontent.com/1294454/29979754-6d62354c-8f4f-11e7-9e0a-22e87b4a093b.jpg)
12
+
13
+ ## See Also
14
+
15
+ [co3k-crypto-currency-note](https://github.com/co3k/co3k-crypto-currency-note/blob/master/Untitled.ipynb) – an example of using ccxt to fetch OHLCV candles from Kraken and charting them with matplotlib in a Jupyter Notebook, made by [co3k](https://github.com/co3k).