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
package/build.sh DELETED
@@ -1,217 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -e
3
-
4
- if [ "${BASH_VERSION:0:1}" -lt 4 ]; then
5
- echo "EPROGMISMATCH: bash version must be at least 4" >&2
6
- exit 75
7
- fi
8
-
9
- if [ $# -gt 0 ]; then
10
- echo "E2BIG: too many arguments" >&2
11
- exit 7
12
- fi
13
-
14
- [[ -n "$TRAVIS_BUILD_ID" ]] && IS_TRAVIS="TRUE" || IS_TRAVIS="FALSE"
15
-
16
- msgPrefix="⬤ BUILD.SH : "
17
-
18
- function run_tests {
19
- local rest_args=
20
- local ws_args=
21
- if [ $# -eq 2 ]; then
22
- rest_args="$1"
23
- ws_args="$2"
24
- if [ -z "$rest_args" ]; then
25
- : &
26
- local rest_pid=$!
27
- fi
28
- if [ -z "$ws_args" ]; then
29
- : &
30
- local ws_pid=$!
31
- fi
32
- fi
33
-
34
- if [ -z "$rest_pid" ]; then
35
- if [ -z "$rest_args" ] || { [ -n "$rest_args" ] && [ "$rest_args" != "skip" ]; }; then
36
- # shellcheck disable=SC2086
37
- node test-commonjs.cjs && node run-tests --js --python-async --php-async --csharp --useProxy $rest_args &
38
- local rest_pid=$!
39
- fi
40
- fi
41
- if [ -z "$ws_pid" ]; then
42
- if [ -z "$ws_args" ] || { [ -n "$ws_args" ] && [ "$ws_args" != "skip" ]; }; then
43
- # shellcheck disable=SC2086
44
- node run-tests --ws --js --python-async --php-async --csharp --useProxy $ws_args &
45
- local ws_pid=$!
46
- fi
47
- fi
48
-
49
- if [ -n "$rest_pid" ] && [ -n "$ws_pid" ]; then
50
- wait $rest_pid && wait $ws_pid
51
- elif [ -n "$rest_pid" ]; then
52
- wait $rest_pid
53
- else
54
- wait $ws_pid
55
- fi
56
- }
57
-
58
- build_and_test_all () {
59
- npm run force-build
60
- if [ "$IS_TRAVIS" = "TRUE" ]; then
61
- merged_pull_request="$(git show --format="%s" -s HEAD | sed -nE 's/Merge pull request #([0-9]{5}).+$/\1/p')"
62
- echo "DEBUG: $merged_pull_request" # for debugging
63
- if [ -n "$merged_pull_request" ]; then
64
- echo "Travis is building merge commit #$merged_pull_request"
65
- # run every 3 merged pull requests
66
- # if [ $(("${merged_pull_request:0-1}" % 3)) -eq 0 ]; then
67
- # # update pyenv
68
- # (cd "$(pyenv root)" && git pull -q origin master)
69
- # # install python interpreters
70
- # pyenv install -s 3.7.17
71
- # pyenv install -s 3.8.18
72
- # pyenv install -s 3.9.18
73
- # pyenv install -s 3.10.13
74
- # pyenv install -s 3.11.6
75
- # pyenv global 3.7 3.8 3.9 3.10 3.11
76
- # cd python
77
- # if ! tox run-parallel; then
78
- # exit 1
79
- # fi
80
- # cd ..
81
- # fi
82
- fi
83
- npm run test-base
84
- npm run test-base-ws
85
- last_commit_message=$(git log -1 --pretty=%B)
86
- echo "Last commit: $last_commit_message" # for debugging
87
- if [[ "$last_commit_message" == *"skip-tests"* ]]; then
88
- echo "[SKIP-TESTS] Will skip tests!"
89
- exit
90
- fi
91
- run_tests
92
- fi
93
- exit
94
- }
95
-
96
- ### CHECK IF THIS IS A PR ###
97
- # for appveyor, when PR is from fork, APPVEYOR_REPO_BRANCH is "master" and "APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH" is branch name. if PR is from same repo, only APPVEYOR_REPO_BRANCH is set (and it is branch name)
98
- if { [ "$IS_TRAVIS" = "TRUE" ] && [ "$TRAVIS_PULL_REQUEST" = "false" ]; } || { [ "$IS_TRAVIS" != "TRUE" ] && [ -z "$APPVEYOR_PULL_REQUEST_HEAD_REPO_BRANCH" ]; }; then
99
-
100
- echo "$msgPrefix This is a master commit (not a PR), will build everything"
101
- build_and_test_all
102
- fi
103
-
104
- ##### DETECT CHANGES #####
105
- # in appveyor, there is no origin/master locally, so we need to fetch it.
106
- if [[ "$IS_TRAVIS" != "TRUE" ]]; then
107
- git remote set-branches origin 'master'
108
- git fetch --depth=1 --no-tags
109
- fi
110
-
111
- diff=$(git diff origin/master --name-only)
112
- # temporarily remove the below scripts from diff
113
- diff=$(echo "$diff" | sed -e "s/^build\.sh//")
114
- diff=$(echo "$diff" | sed -e "s/^skip\-tests\.json//")
115
- diff=$(echo "$diff" | sed -e "s/^ts\/src\/test\/static.*json//") #remove static tests and markets
116
- # diff=$(echo "$diff" | sed -e "s/^\.travis\.yml//")
117
- # diff=$(echo "$diff" | sed -e "s/^package\-lock\.json//")
118
- # diff=$(echo "$diff" | sed -e "s/python\/qa\.py//")
119
- #echo $diff
120
-
121
- critical_pattern='Client(Trait)?\.php|Exchange\.php|\/base|^build|static_dependencies|^run-tests|package(-lock)?\.json|composer\.json|ccxt\.ts|__init__.py|test' # add \/test|
122
- if [[ "$diff" =~ $critical_pattern ]]; then
123
- echo "$msgPrefix Important changes detected - doing full build & test"
124
- echo "$diff"
125
- build_and_test_all
126
- fi
127
-
128
- echo "$msgPrefix Unimportant changes detected - build & test only specific exchange(s)"
129
- readarray -t y <<<"$diff"
130
- rest_pattern='ts\/src\/([A-Za-z0-9_-]+).ts' # \w not working for some reason
131
- ws_pattern='ts\/src\/pro\/([A-Za-z0-9_-]+)\.ts'
132
-
133
- REST_EXCHANGES=()
134
- WS_EXCHANGES=()
135
- for file in "${y[@]}"; do
136
- if [[ "$file" =~ $rest_pattern ]]; then
137
- modified_exchange="${BASH_REMATCH[1]}"
138
- REST_EXCHANGES+=($modified_exchange)
139
- elif [[ "$file" =~ $ws_pattern ]]; then
140
- modified_exchange="${BASH_REMATCH[1]}"
141
- WS_EXCHANGES+=($modified_exchange)
142
- fi
143
- done
144
-
145
-
146
- ### BUILD SPECIFIC EXCHANGES ###
147
- # faster version of pre-transpile (without bundle and atomic linting)
148
- npm run export-exchanges && npm run tsBuild && npm run emitAPI
149
-
150
- # check return types
151
- npm run validate-types ${REST_EXCHANGES[*]}
152
-
153
- echo "$msgPrefix REST_EXCHANGES TO BE TRANSPILED: ${REST_EXCHANGES[*]}"
154
- PYTHON_FILES=()
155
- for exchange in "${REST_EXCHANGES[@]}"; do
156
- npm run eslint "ts/src/$exchange.ts"
157
- node build/transpile.js $exchange --force --child
158
- node --loader ts-node/esm build/csharpTranspiler.ts $exchange
159
- PYTHON_FILES+=("python/ccxt/$exchange.py")
160
- PYTHON_FILES+=("python/ccxt/async_support/$exchange.py")
161
- done
162
- echo "$msgPrefix WS_EXCHANGES TO BE TRANSPILED: ${WS_EXCHANGES[*]}"
163
- for exchange in "${WS_EXCHANGES[@]}"; do
164
- npm run eslint "ts/src/pro/$exchange.ts"
165
- node build/transpileWS.js $exchange --force --child
166
- node --loader ts-node/esm build/csharpTranspiler.ts $exchange --ws
167
- PYTHON_FILES+=("python/ccxt/pro/$exchange.py")
168
- done
169
- # faster version of post-transpile
170
- npm run check-php-syntax
171
-
172
- # only run the python linter if exchange related files are changed
173
- if [ ${#PYTHON_FILES[@]} -gt 0 ]; then
174
- echo "$msgPrefix Linting python files: ${PYTHON_FILES[*]}"
175
- ruff "${PYTHON_FILES[@]}"
176
- fi
177
-
178
-
179
- ### RUN SPECIFIC TESTS (ONLY IN TRAVIS) ###
180
- if [[ "$IS_TRAVIS" != "TRUE" ]]; then
181
- exit
182
- fi
183
- if [ ${#REST_EXCHANGES[@]} -eq 0 ] && [ ${#WS_EXCHANGES[@]} -eq 0 ]; then
184
- echo "$msgPrefix no exchanges to test, exiting"
185
- exit
186
- fi
187
-
188
- # build dotnet project
189
- npm run buildCS
190
-
191
- # run base tests (base js,py,php, brokerId )
192
- # npm run test-base
193
- npm run test-js-base && npm run test-python-base && npm run test-php-base && npm run id-tests
194
-
195
- # rest_args=${REST_EXCHANGES[*]} || "skip"
196
- rest_args=$(IFS=" " ; echo "${REST_EXCHANGES[*]}") || "skip"
197
- # ws_args=${WS_EXCHANGES[*]} || "skip"
198
- ws_args=$(IFS=" " ; echo "${WS_EXCHANGES[*]}") || "skip"
199
-
200
-
201
- #request static tests
202
- for exchange in "${REST_EXCHANGES[@]}"; do
203
- npm run request-js -- $exchange
204
- npm run request-py -- $exchange
205
- php php/test/test_async.php $exchange --requestTests
206
- npm run request-cs -- $exchange
207
- done
208
-
209
- #response static tests
210
- for exchange in "${REST_EXCHANGES[@]}"; do
211
- npm run response-js -- $exchange
212
- npm run response-py -- $exchange
213
- php php/test/test_async.php $exchange --responseTests
214
- npm run response-cs -- $exchange
215
- done
216
-
217
- run_tests "$rest_args" "$ws_args"
package/change.sh DELETED
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env bash
2
- previous_tag=0
3
- for current_tag in $(git tag --sort=-creatordate)
4
- do
5
- major_version=$(echo ${current_tag} | cut -d '.' -f 1)
6
- major_version=$(echo "$major_version" | sed -e "s/v//")
7
- if [ "$major_version" -ge 4 ] ;then
8
- if [ "$previous_tag" != 0 ]; then
9
- tag_date=$(git log -1 --pretty=format:'%ad' --date=short ${previous_tag})
10
- printf "## ${previous_tag} (${tag_date})\n\n"
11
- git log ${current_tag}...${previous_tag} --pretty=format:'* %s [%h](https://github.com/ccxt/ccxt/commits/%H)' --reverse | grep -v Merge | grep -v skip | grep -v '-'
12
- # print $commits
13
- printf "\n\n"
14
- fi
15
- previous_tag=${current_tag}
16
- fi
17
-
18
- done
package/cleanup.sh DELETED
@@ -1,18 +0,0 @@
1
- #!/usr/bin/env bash
2
- git checkout HEAD package.json
3
- git checkout HEAD package-lock.json
4
- git checkout HEAD yarn.lock
5
- git checkout HEAD README.md
6
- git checkout HEAD js
7
- git checkout HEAD cs/ccxt/api
8
- git checkout HEAD cs/ccxt/exchanges
9
- git checkout HEAD cs/tests/Generated
10
- git checkout HEAD cs/ccxt/wrappers/
11
- git checkout HEAD cs/ccxt/base/Exchange.Wrappers.cs
12
- git checkout HEAD cs/ccxt/base/Exchange.BaseMethods.cs
13
- git checkout HEAD ts/ccxt.ts
14
- git checkout HEAD ts/src/abstract
15
- git checkout HEAD python
16
- git checkout HEAD php
17
- git checkout HEAD dist
18
- git checkout HEAD examples
@@ -1,20 +0,0 @@
1
- #!/bin/sh
2
- # This script taken from the composer installation instructions at
3
- # https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
4
-
5
- EXPECTED_CHECKSUM="$(php -r 'copy("https://composer.github.io/installer.sig", "php://stdout");')"
6
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
7
- ACTUAL_CHECKSUM="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
8
-
9
- if [ "$EXPECTED_CHECKSUM" != "$ACTUAL_CHECKSUM" ]
10
- then
11
- >&2 echo 'ERROR: Invalid installer checksum'
12
- rm composer-setup.php
13
- exit 1
14
- fi
15
-
16
- php composer-setup.php --quiet
17
- RESULT=$?
18
- rm composer-setup.php
19
- exit $RESULT
20
-