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
@@ -1,28 +0,0 @@
1
- {
2
- "name": "nextjs-page-router",
3
- "version": "0.1.0",
4
- "private": true,
5
- "scripts": {
6
- "dev": "next dev",
7
- "build": "next build",
8
- "start": "next start",
9
- "lint": "next lint"
10
- },
11
- "dependencies": {
12
- "ccxt": "^4.1.56",
13
- "next": "14.0.3",
14
- "react": "^18",
15
- "react-dom": "^18"
16
- },
17
- "devDependencies": {
18
- "@types/node": "^20",
19
- "@types/react": "^18",
20
- "@types/react-dom": "^18",
21
- "autoprefixer": "^10.0.1",
22
- "eslint": "^8",
23
- "eslint-config-next": "14.0.3",
24
- "postcss": "^8",
25
- "tailwindcss": "^3.3.0",
26
- "typescript": "^5"
27
- }
28
- }
@@ -1,6 +0,0 @@
1
- module.exports = {
2
- plugins: {
3
- tailwindcss: {},
4
- autoprefixer: {},
5
- },
6
- }
@@ -1,6 +0,0 @@
1
- import '@/styles/globals.css'
2
- import type { AppProps } from 'next/app'
3
-
4
- export default function App({ Component, pageProps }: AppProps) {
5
- return <Component {...pageProps} />
6
- }
@@ -1,13 +0,0 @@
1
- import { Html, Head, Main, NextScript } from 'next/document'
2
-
3
- export default function Document() {
4
- return (
5
- <Html lang="en">
6
- <Head />
7
- <body>
8
- <Main />
9
- <NextScript />
10
- </body>
11
- </Html>
12
- )
13
- }
@@ -1,46 +0,0 @@
1
- import ccxt, { Balances } from 'ccxt'
2
-
3
- // This is for showcase purposes in prod move this to environment variable like process.env.BINANCEUSDM_API_KEY
4
- const apiKey = ""
5
- const secret = ""
6
-
7
- export async function getServerSideProps () {
8
- const exchange = new ccxt.kraken({ apiKey, secret })
9
- const balances = await exchange.fetchBalance()
10
- // remove undefined values to prevent serializing error
11
- Object.keys(balances).forEach(key => balances[key] === undefined && delete balances[key])
12
- return {
13
- props: {
14
- balances,
15
- },
16
- }
17
- }
18
-
19
- export default function Balance({balances}: {balances: Balances}) {
20
- return (
21
- <main className={`flex min-h-screen flex-col items-center justify-between p-24`}>
22
- <table>
23
- <thead>
24
- <tr>
25
- <th>Currency</th>
26
- <th>Free</th>
27
- <th>Used</th>
28
- <th>Total</th>
29
- </tr>
30
- </thead>
31
- <tbody>
32
- {Object.keys(balances).map((currency: string) => (
33
- balances[currency].free !== undefined && (
34
- <tr key={currency}>
35
- <td>{currency}</td>
36
- <td>{balances[currency].free}</td>
37
- <td>{balances[currency].used}</td>
38
- <td>{balances[currency].total}</td>
39
- </tr>
40
- )
41
- ))}
42
- </tbody>
43
- </table>
44
- </main>
45
- )
46
- }
@@ -1,8 +0,0 @@
1
- export default function Home() {
2
- return (
3
- <main className={`flex min-h-screen flex-col items-center space-y-10`}>
4
- <a className="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-700 w-120 m-4" href="/balance">Balance - Using Server Side calls</a>
5
- <a className="px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-700 w-120 m-4" href="/tickers">Tickers - Using Client Side websockets</a>
6
- </main>
7
- )
8
- }
@@ -1,61 +0,0 @@
1
- import ccxt, { Exchange, Ticker } from 'ccxt'
2
- import { useEffect, useState } from 'react';
3
-
4
- const exchangeIds = ['binance', 'bitget', 'bybit', 'cryptocom']
5
-
6
- export default function Home() {
7
- const [exchanges, setExchanges] = useState<Record<string, Exchange>>({});
8
- const [tickers, setTickers] = useState<Record<string, Ticker>>({});
9
- const [error, setError] = useState<string>();
10
-
11
- useEffect(() => {
12
- console.log('starting exchanges...');
13
- const newExchanges: Record<string, Exchange> = exchangeIds.reduce((acc: any, exchangeId) => {
14
- acc[exchangeId] = new (ccxt.pro as any)[exchangeId];
15
- return acc;
16
- }, {});
17
- setExchanges(newExchanges);
18
- }, []);
19
-
20
- useEffect(() => {
21
- const fetchTickers = async () => {
22
- for (const exchangeId in exchanges) {
23
- try {
24
- const newTicker = await exchanges[exchangeId].watchTicker('BTC/USDT');
25
- setTickers(tickers => ({ ...tickers, [exchangeId]: newTicker }));
26
- } catch (e) {
27
- setError(exchangeId + ': ' + JSON.stringify(e) + '\n')
28
- }
29
- };
30
- };
31
- fetchTickers();
32
- }, [tickers, exchanges, error]);
33
-
34
- return (
35
- <main
36
- className={`flex min-h-screen flex-col items-center justify-between p-24`}
37
- >
38
- <div className="z-10 max-w-5xl w-full font-mono text-sm lg:flex justify-between">
39
- {exchangeIds.map((exchangeId) => (
40
- <div key={exchangeId} className="flex-1">
41
- <h3>{exchangeId}</h3>
42
- <ul>
43
- <li>{`last: ${tickers[exchangeId]?.last}`}</li>
44
- <li>{`high: ${tickers[exchangeId]?.high}`}</li>
45
- <li>{`low: ${tickers[exchangeId]?.low}`}</li>
46
- <li>{`bid: ${tickers[exchangeId]?.bid}`}</li>
47
- <li>{`ask: ${tickers[exchangeId]?.ask}`}</li>
48
- <li>{`ask volume: ${tickers[exchangeId]?.askVolume}`}</li>
49
- <li>{`bid volume: ${tickers[exchangeId]?.bidVolume}`}</li>
50
- <li>{`close: ${tickers[exchangeId]?.close}`}</li>
51
- </ul>
52
- </div>
53
- ))}
54
- </div>
55
- <div>
56
- <h3>Last error:</h3>
57
- <p>{error ? error : "None"}</p>
58
- </div>
59
- </main>
60
- )
61
- }
@@ -1,27 +0,0 @@
1
- @tailwind base;
2
- @tailwind components;
3
- @tailwind utilities;
4
-
5
- :root {
6
- --foreground-rgb: 0, 0, 0;
7
- --background-start-rgb: 214, 219, 220;
8
- --background-end-rgb: 255, 255, 255;
9
- }
10
-
11
- @media (prefers-color-scheme: dark) {
12
- :root {
13
- --foreground-rgb: 255, 255, 255;
14
- --background-start-rgb: 0, 0, 0;
15
- --background-end-rgb: 0, 0, 0;
16
- }
17
- }
18
-
19
- body {
20
- color: rgb(var(--foreground-rgb));
21
- background: linear-gradient(
22
- to bottom,
23
- transparent,
24
- rgb(var(--background-end-rgb))
25
- )
26
- rgb(var(--background-start-rgb));
27
- }
@@ -1,20 +0,0 @@
1
- import type { Config } from 'tailwindcss'
2
-
3
- const config: Config = {
4
- content: [
5
- './src/pages/**/*.{js,ts,jsx,tsx,mdx}',
6
- './src/components/**/*.{js,ts,jsx,tsx,mdx}',
7
- './src/app/**/*.{js,ts,jsx,tsx,mdx}',
8
- ],
9
- theme: {
10
- extend: {
11
- backgroundImage: {
12
- 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
13
- 'gradient-conic':
14
- 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
15
- },
16
- },
17
- },
18
- plugins: [],
19
- }
20
- export default config
@@ -1,22 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es5",
4
- "lib": ["dom", "dom.iterable", "esnext"],
5
- "allowJs": true,
6
- "skipLibCheck": true,
7
- "strict": true,
8
- "noEmit": true,
9
- "esModuleInterop": true,
10
- "module": "esnext",
11
- "moduleResolution": "bundler",
12
- "resolveJsonModule": true,
13
- "isolatedModules": true,
14
- "jsx": "preserve",
15
- "incremental": true,
16
- "paths": {
17
- "@/*": ["./src/*"]
18
- }
19
- },
20
- "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
21
- "exclude": ["node_modules"]
22
- }
@@ -1,62 +0,0 @@
1
- // @ts-nocheck
2
- import ccxt from '../../js/ccxt.js';
3
-
4
- // AUTO-TRANSPILE //
5
-
6
- // ------------------------------------------------------------------------------
7
-
8
- async function example () {
9
- const exchange = new ccxt.phemex ({
10
- 'apiKey': 'YOUR_API_KEY',
11
- 'secret': 'YOUR_API_SECRET',
12
- });
13
-
14
- const symbol = 'XRP/USDT:USDT';
15
- const side = 'buy'; // set it to 'buy' for a long position, 'sell' for a short position
16
- const order_type = 'limit'; // set it to 'market' or 'limit'
17
- const amount = 1; // how many contracts
18
- const price = 0.5; // set a price at your desired level
19
-
20
- // take profit and stop loss prices and types
21
- const take_profit_trigger_price = 0.6;
22
- const stop_loss_trigger_price = 0.4;
23
- const take_profit_limit_price = 0.7;
24
- const stop_loss_limit_price = 0.3;
25
-
26
- await exchange.loadMarkets ();
27
-
28
- // when symbol's price reaches your predefined "trigger price", stop-loss order would be activated as a "market order". but if you want it to be activated as a "limit order", then set a 'price' parameter for it
29
- const params = {
30
- 'posSide': 'Long', // "Long" / "Short" for hedge mode
31
- 'stopLoss': {
32
- 'triggerPrice': stop_loss_trigger_price,
33
- 'type': 'limit',
34
- 'price': stop_loss_limit_price,
35
- },
36
- 'takeProfit': {
37
- 'triggerPrice': take_profit_trigger_price,
38
- 'type': 'limit',
39
- 'price': take_profit_limit_price,
40
- },
41
- };
42
-
43
- console.log ('-----------------------------------------------------------------------');
44
-
45
- // exchange.verbose = True // uncomment for debugging purposes if necessary
46
-
47
- try {
48
- const created_order = await exchange.createOrder (symbol, order_type, side, amount, price, params);
49
- console.log ('Created an order', created_order);
50
-
51
- // Fetch all your open orders for this symbol
52
- const all_open_orders = await exchange.fetchOpenOrders (symbol);
53
- console.log ('Fetched all your orders for this symbol', all_open_orders);
54
-
55
- // To cancel a limit order, use "exchange.cancel_order(created_order['id'], symbol)""
56
- } catch (e) {
57
- console.log (e.toString ());
58
- }
59
- }
60
-
61
- await example ();
62
-
@@ -1,41 +0,0 @@
1
-
2
- import ccxt from '../../js/ccxt.js';
3
-
4
- // AUTO-TRANSPILE //
5
-
6
- // ABOUT CCXT PROXIES, READ MORE AT: https://docs.ccxt.com/#/README?id=proxy
7
-
8
- async function example_proxyUrl () {
9
- const myEx = new ccxt.kucoin ();
10
- myEx.proxyUrl = 'http://5.75.153.75:8090/proxy_url.php?caller=https://ccxt.com&url=';
11
- console.log (await myEx.fetch ('https://api.ipify.org/'));
12
- }
13
-
14
- async function example_httpProxy () {
15
- const myEx = new ccxt.kucoin ();
16
- myEx.httpProxy = 'http://5.75.153.75:8002'; // "httpProxy" or "httpsProxy" (depending on your proxy protocol)
17
- console.log (await myEx.fetch ('https://api.ipify.org/'));
18
- }
19
-
20
- async function example_socksProxy () {
21
- const myEx = new ccxt.kucoin ();
22
- myEx.socksProxy = 'socks5://127.0.0.1:1080'; // from protocols: socks, socks5, socks5h
23
- console.log (await myEx.fetch ('https://api.ipify.org/'));
24
- }
25
-
26
- async function example_webSockets () {
27
- const myEx = new ccxt.pro.kucoin ();
28
- myEx.httpProxy = 'http://5.75.153.75:8002'; // even though you are using WebSockets, you might also need to set up proxy for the exchange's REST requests
29
- myEx.wsProxy = 'http://5.75.153.75:8002'; // "wsProxy" or "wssProxy" or "wsSocksProxy" (depending on your proxy protocol)
30
- await myEx.loadMarkets ();
31
- while (true) {
32
- const ticker = await myEx.watchTicker ('BTC/USDT');
33
- console.log (ticker);
34
- }
35
- }
36
-
37
-
38
- await example_proxyUrl ();
39
- // await example_httpProxy ();
40
- // await example_socksProxy ();
41
- // await example_webSockets ();
@@ -1,15 +0,0 @@
1
- // @ts-nocheck
2
- // JavaScript sample Proxy with CORS support
3
-
4
- // Save this in a file like cors.js and run with:
5
- // node cors [port]
6
- // It will listen for your requests on the port you pass in command line (or port 8080 by default)
7
-
8
- import cors from 'cors-anywhere'; // npm install cors-anywhere
9
-
10
- const port = (process.argv.length > 2) ? parseInt (process.argv[2]) : 8080; // if not provided from cli, default to 8080
11
- cors.createServer ({
12
- // you can set origin, if needed by exchange
13
- // setHeaders: { 'origin': 'https://www.bitmex.com' }
14
- }).listen (port, 'localhost');
15
- console.log ('Running CORS Anywhere on localhost:' + port);
@@ -1,17 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- // AUTO-TRANSPILE //
4
-
5
- async function example () {
6
- const binance = new ccxt.pro.binance ({});
7
- const subscriptions = [
8
- [ 'BTC/USDT', '5m' ],
9
- [ 'ETH/USDT', '5m' ],
10
- [ 'BTC/USDT', '1h' ],
11
- ];
12
- while (true) {
13
- const ohlcv = await binance.watchOHLCVForSymbols (subscriptions);
14
- console.log (ohlcv);
15
- }
16
- }
17
- await example ();
@@ -1,14 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- // AUTO-TRANSPILE //
4
-
5
- async function example () {
6
- const binance = new ccxt.pro.binance ({});
7
- const symbol = 'BTC/USDT';
8
- const timeframe = '1m';
9
- while (true) {
10
- const ohlcv = await binance.watchOHLCV (symbol, timeframe);
11
- console.log (ohlcv);
12
- }
13
- }
14
- await example ();
@@ -1,13 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- // AUTO-TRANSPILE //
4
-
5
- async function example () {
6
- const binance = new ccxt.pro.binance ({});
7
- const symbols = [ 'BTC/USDT', 'ETH/USDT', 'DOGE/USDT' ];
8
- while (true) {
9
- const orderbook = await binance.watchOrderBookForSymbols (symbols);
10
- console.log (orderbook['symbol'], orderbook['asks'][0], orderbook['bids'][0]);
11
- }
12
- }
13
- await example ();
@@ -1,13 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- // AUTO-TRANSPILE //
4
-
5
- async function example () {
6
- const binance = new ccxt.pro.binance ({});
7
- const symbols = [ 'BTC/USDT', 'ETH/USDT', 'DOGE/USDT' ];
8
- while (true) {
9
- const trades = await binance.watchTradesForSymbols (symbols);
10
- console.log (trades);
11
- }
12
- }
13
- await example ();
@@ -1,13 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- // AUTO-TRANSPILE //
4
-
5
- async function example () {
6
- const binance = new ccxt.pro.binance ({});
7
- const symbols = [ 'BTC/USDT', 'ETH/USDT', 'DOGE/USDT' ];
8
- while (true) {
9
- const tickers = await binance.watchTickers (symbols);
10
- console.log (tickers['BTC/USDT'], tickers['ETH/USDT'], tickers['DOGE/USDT']);
11
- }
12
- }
13
- await example ();
@@ -1,53 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- // AUTO-TRANSPILE //
4
-
5
- // watch and handle constinuosly
6
- async function watchPositionsContinuously (exchange) {
7
- while (true) {
8
- try {
9
- const positions = await exchange.watchPositions ();
10
- console.log ('Fetched ', exchange.id, ' - Positions: ', positions);
11
- } catch (e) {
12
- console.log (e);
13
- break;
14
- }
15
- }
16
- }
17
-
18
- // start exchanges and fetch OHLCV loop
19
- async function startExchange (exchangeName, config) {
20
- const ex = new ccxt[exchangeName] (config);
21
- const promises = [];
22
- promises.push (watchPositionsContinuously (ex));
23
- await Promise.all (promises);
24
- await ex.close ();
25
- }
26
-
27
- // main function
28
- async function example () {
29
- const exchanges = {
30
- 'binanceusdm': {
31
- 'apiKey': 'YOUR_API_KEY',
32
- 'secret': 'YOUR_API_SECRET',
33
- },
34
- 'okx': {
35
- 'apiKey': 'YOUR_API_KEY',
36
- 'secret': 'YOUR_API_SECRET',
37
- },
38
- 'huobi':{
39
- 'apiKey': 'YOUR_API_KEY',
40
- 'secret': 'YOUR_API_SECRET',
41
- },
42
- };
43
- const promises = [];
44
- const exchangeIds = Object.keys (exchanges);
45
- for (let i = 0; i < exchangeIds.length; i++) {
46
- const exchangeName = exchangeIds[i];
47
- const config = exchanges[exchangeName];
48
- promises.push (startExchange (exchangeName, config));
49
- }
50
- await Promise.all (promises);
51
- }
52
-
53
- await example ();
@@ -1,15 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- // AUTO-TRANSPILE //
4
-
5
- async function example () {
6
- const exchange = new ccxt.pro.binanceusdm ({
7
- 'apiKey': 'YOUR_API_KEY',
8
- 'secret': 'YOUR_API_SECRET'
9
- });
10
- while (true) {
11
- const trades = await exchange.watchPositions ();
12
- console.log (trades);
13
- }
14
- }
15
- await example ();
@@ -1,16 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- // AUTO-TRANSPILE //
4
-
5
- async function example () {
6
- const exchange = new ccxt.pro.binanceusdm ({
7
- 'apiKey': 'YOUR_API_KEY',
8
- 'secret': 'Your_API_SECRET'
9
- });
10
- const symbols = [ 'BTC/USDT:USDT', 'ETH/USDT:USDT', 'DOGE/USDT:USDT' ];
11
- while (true) {
12
- const trades = await exchange.watchPositions (symbols);
13
- console.log (trades);
14
- }
15
- }
16
- await example ();
@@ -1,27 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2020",
4
- "lib": [],
5
- "types": ["node"],
6
- "module": "ES2022",
7
- "moduleResolution": "Node",
8
- "allowJs": true,
9
- "checkJs": false,
10
- "rootDir": "./ts",
11
- "outDir": "./js",
12
- "removeComments": false,
13
- "esModuleInterop": true,
14
- "forceConsistentCasingInFileNames": true,
15
- "strict": true,
16
- "noImplicitAny": false,
17
- "skipLibCheck": true,
18
- "strictNullChecks":false
19
- },
20
- "include": [
21
- "./ts/*.ts",
22
- ],
23
- "exclude": [
24
- "node_modules/",
25
- "./ts/cli.ts",
26
- ]
27
- }
package/examples2md.js DELETED
@@ -1,79 +0,0 @@
1
- import fs from 'fs'
2
- import path from 'path'
3
-
4
- const toTitleCase = (phrase) => {
5
- return phrase
6
- .toLowerCase()
7
- .split(' ')
8
- .map(word => word.charAt(0).toUpperCase() + word.slice(1))
9
- .join(' ');
10
- };
11
-
12
- // Define the Markdown file path
13
- const docsDir = './wiki'
14
- const examplesDir = './examples'
15
- // Copy readme file
16
- console.log ('📰 Creating Examples.md ');
17
- const readmePath = './examples/README.md';
18
- const readmeContent = fs.readFileSync(readmePath, 'utf8');
19
- // replace github links to docs links
20
- const modifiedContent = readmeContent.replaceAll('https://github.com/ccxt/ccxt/tree/master/examples', '/examples').replace (/#+ See Also[\S\s]+/, '')
21
- fs.writeFileSync(path.join(docsDir, 'Examples.md'), modifiedContent);
22
-
23
- const languagePaths = {
24
- 'javascript': './examples/js',
25
- 'python': './examples/py',
26
- 'typescript': './examples/ts',
27
- 'php': './examples/php',
28
- }
29
-
30
- // Define the Markdown content
31
-
32
- const languages = Object.keys(languagePaths);
33
-
34
- // create examples folder if doesn't exist
35
- if (!fs.existsSync('./wiki/examples')) {
36
- fs.mkdirSync('./wiki/examples');
37
- }
38
-
39
- languages.forEach(language => {
40
- console.log (`📰 Creating docs for ${language} examples`);
41
- const languageDir = languagePaths[language];
42
- // create language folder if doesn't exist
43
- const docsLanguageDir = path.join(docsDir, languageDir);
44
- if (!fs.existsSync(docsLanguageDir)) {
45
- fs.mkdirSync(docsLanguageDir);
46
- }
47
- let mdContent = `<style>ul { margin-bottom: -10px; }</style>\n\n# [<-](Examples?id=${language})\n\n`;
48
- fs.readdirSync(languageDir).forEach(file => {
49
- // add to glossary of examplex
50
- const filename = path.basename(file, path.extname(file));
51
- //ignore files that start with .
52
- if (filename.startsWith('.')) return;
53
- const fileTitle = toTitleCase (filename.replaceAll ('-', ' '));
54
- // README file: add to existing readme
55
- if (filename === 'README' && path.extname(file) === '.md') {
56
- const readmeContent = fs.readFileSync(path.join(languageDir, file), 'utf8');
57
- mdContent += readmeContent + '\n\n';
58
- return;
59
- }
60
- // Folder: add to gloassy and create link to github
61
- if (fs.statSync(path.join(languageDir, file)).isDirectory()) {
62
- mdContent += `- [📂 ${fileTitle}](https://github.com/ccxt/ccxt/tree/master/${languageDir}/${filename})\n\n`;
63
- return
64
- }
65
- // Example file: add to glossary and create markdown file
66
- mdContent += `- [${fileTitle}](${languageDir}/${filename}.md)\n\n`;
67
- // create markdown file for example code
68
- let code = fs.readFileSync(path.join(languageDir, file), 'utf8');
69
- if (language === 'python') {
70
- code = code.replace (/^.*os.path.dirname.*$/mg, '').replace (/^sys.path.append.*$\n\n?/mg, '')
71
- } else if (language === 'php') {
72
- code = code.replace (/\n^\$root = .*$\n/mg, '').replace (/^include \$root.*$/mg, 'include \'./ccxt.php\';')
73
- }
74
- code = code.replace (/\n^#\s?-+$\n\n?/mg, '')
75
- const codeMd = `- [${fileTitle}](${languageDir}/)\n\n\n \`\`\`${language.replace('typescript', 'javascript')}\n ${code} \n\`\`\``;
76
- fs.writeFileSync(path.join(docsLanguageDir, `${filename}.md`), codeMd);
77
- });
78
- fs.writeFileSync(path.join(docsLanguageDir, 'README.md'), mdContent);
79
- });
package/gource.sh DELETED
@@ -1,3 +0,0 @@
1
- #!/bin/sh
2
-
3
- gource -1920x1080 -c 4 -s 0.75 -b 000000 --colour-images --padding 1.2 --hide filenames,mouse,progress --bloom-multiplier 0.75 --bloom-intensity 1.5 --logo ccxt-logo-white.svg --highlight-users -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4
package/index.html DELETED
@@ -1,7 +0,0 @@
1
- <html xmlns="http://www.w3.org/1999/xhtml">
2
- <head>
3
- <title>CryptoCurrency eXchange Trading Library</title>
4
- <meta http-equiv="refresh" content="0;URL='http://github.com/ccxt/ccxt'" />
5
- </head>
6
- <body></body>
7
- </html>