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
@@ -6,7 +6,7 @@
6
6
 
7
7
  // ---------------------------------------------------------------------------
8
8
  import Exchange from './abstract/hyperliquid.js';
9
- import { ExchangeError, ArgumentsRequired, NotSupported, InvalidOrder, OrderNotFound } from './base/errors.js';
9
+ import { ExchangeError, ArgumentsRequired, NotSupported, InvalidOrder, OrderNotFound, BadRequest } from './base/errors.js';
10
10
  import { Precise } from './base/Precise.js';
11
11
  import { TICK_SIZE, ROUND, SIGNIFICANT_DIGITS, DECIMAL_PLACES } from './base/functions/number.js';
12
12
  import { keccak_256 as keccak } from './static_dependencies/noble-hashes/sha3.js';
@@ -40,6 +40,7 @@ export default class hyperliquid extends Exchange {
40
40
  'cancelAllOrders': false,
41
41
  'cancelOrder': true,
42
42
  'cancelOrders': true,
43
+ 'cancelOrdersForSymbols': true,
43
44
  'closeAllPositions': false,
44
45
  'closePosition': false,
45
46
  'createMarketBuyOrderWithCost': false,
@@ -1222,6 +1223,79 @@ export default class hyperliquid extends Exchange {
1222
1223
  //
1223
1224
  return response;
1224
1225
  }
1226
+ async cancelOrdersForSymbols(orders, params = {}) {
1227
+ /**
1228
+ * @method
1229
+ * @name hyperliquid#cancelOrdersForSymbols
1230
+ * @description cancel multiple orders for multiple symbols
1231
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#cancel-order-s
1232
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#cancel-order-s-by-cloid
1233
+ * @param {CancellationRequest[]} orders each order should contain the parameters required by cancelOrder namely id and symbol
1234
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1235
+ * @param {string} [params.vaultAddress] the vault address
1236
+ * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1237
+ */
1238
+ this.checkRequiredCredentials();
1239
+ await this.loadMarkets();
1240
+ const nonce = this.milliseconds();
1241
+ const request = {
1242
+ 'nonce': nonce,
1243
+ // 'vaultAddress': vaultAddress,
1244
+ };
1245
+ const cancelReq = [];
1246
+ const cancelAction = {
1247
+ 'type': '',
1248
+ 'cancels': [],
1249
+ };
1250
+ let cancelByCloid = false;
1251
+ for (let i = 0; i < orders.length; i++) {
1252
+ const order = orders[i];
1253
+ const clientOrderId = this.safeString(order, 'clientOrderId');
1254
+ if (clientOrderId !== undefined) {
1255
+ cancelByCloid = true;
1256
+ }
1257
+ const id = this.safeString(order, 'id');
1258
+ const symbol = this.safeString(order, 'symbol');
1259
+ if (symbol === undefined) {
1260
+ throw new ArgumentsRequired(this.id + ' cancelOrdersForSymbols() requires a symbol argument in each order');
1261
+ }
1262
+ if (id !== undefined && cancelByCloid) {
1263
+ throw new BadRequest(this.id + ' cancelOrdersForSymbols() all orders must have either id or clientOrderId');
1264
+ }
1265
+ const assetKey = cancelByCloid ? 'asset' : 'a';
1266
+ const idKey = cancelByCloid ? 'cloid' : 'o';
1267
+ const market = this.market(symbol);
1268
+ const cancelObj = {};
1269
+ cancelObj[assetKey] = this.parseToNumeric(market['baseId']);
1270
+ cancelObj[idKey] = cancelByCloid ? clientOrderId : this.parseToNumeric(id);
1271
+ cancelReq.push(cancelObj);
1272
+ }
1273
+ cancelAction['type'] = cancelByCloid ? 'cancelByCloid' : 'cancel';
1274
+ cancelAction['cancels'] = cancelReq;
1275
+ const vaultAddress = this.formatVaultAddress(this.safeString(params, 'vaultAddress'));
1276
+ const signature = this.signL1Action(cancelAction, nonce, vaultAddress);
1277
+ request['action'] = cancelAction;
1278
+ request['signature'] = signature;
1279
+ if (vaultAddress !== undefined) {
1280
+ params = this.omit(params, 'vaultAddress');
1281
+ request['vaultAddress'] = vaultAddress;
1282
+ }
1283
+ const response = await this.privatePostExchange(this.extend(request, params));
1284
+ //
1285
+ // {
1286
+ // "status":"ok",
1287
+ // "response":{
1288
+ // "type":"cancel",
1289
+ // "data":{
1290
+ // "statuses":[
1291
+ // "success"
1292
+ // ]
1293
+ // }
1294
+ // }
1295
+ // }
1296
+ //
1297
+ return response;
1298
+ }
1225
1299
  async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
1226
1300
  /**
1227
1301
  * @method
package/js/src/kraken.js CHANGED
@@ -1380,7 +1380,7 @@ export default class kraken extends Exchange {
1380
1380
  'ordertype': type,
1381
1381
  'volume': this.amountToPrecision(symbol, amount),
1382
1382
  };
1383
- const orderRequest = this.orderRequest('createOrder()', symbol, type, request, price, params);
1383
+ const orderRequest = this.orderRequest('createOrder', symbol, type, request, price, params);
1384
1384
  const response = await this.privatePostAddOrder(this.extend(orderRequest[0], orderRequest[1]));
1385
1385
  //
1386
1386
  // {
@@ -1745,7 +1745,12 @@ export default class kraken extends Exchange {
1745
1745
  }
1746
1746
  }
1747
1747
  if (reduceOnly) {
1748
- request['reduce_only'] = 'true'; // not using boolean in this case, because the urlencodedNested transforms it into 'True' string
1748
+ if (method === 'createOrderWs') {
1749
+ request['reduce_only'] = true; // ws request can't have stringified bool
1750
+ }
1751
+ else {
1752
+ request['reduce_only'] = 'true'; // not using boolean in this case, because the urlencodedNested transforms it into 'True' string
1753
+ }
1749
1754
  }
1750
1755
  let close = this.safeValue(params, 'close');
1751
1756
  if (close !== undefined) {
@@ -1806,7 +1811,7 @@ export default class kraken extends Exchange {
1806
1811
  if (amount !== undefined) {
1807
1812
  request['volume'] = this.amountToPrecision(symbol, amount);
1808
1813
  }
1809
- const orderRequest = this.orderRequest('editOrder()', symbol, type, request, price, params);
1814
+ const orderRequest = this.orderRequest('editOrder', symbol, type, request, price, params);
1810
1815
  const response = await this.privatePostEditOrder(this.extend(orderRequest[0], orderRequest[1]));
1811
1816
  //
1812
1817
  // {
package/js/src/kucoin.js CHANGED
@@ -590,6 +590,8 @@ export default class kucoin extends Exchange {
590
590
  'BIFI': 'BIFIF',
591
591
  'VAI': 'VAIOT',
592
592
  'WAX': 'WAXP',
593
+ 'ALT': 'APTOSLAUNCHTOKEN',
594
+ 'KALT': 'ALT', // ALTLAYER
593
595
  },
594
596
  'options': {
595
597
  'version': 'v1',
@@ -1810,7 +1812,7 @@ export default class kucoin extends Exchange {
1810
1812
  }
1811
1813
  let code = undefined;
1812
1814
  if (currency !== undefined) {
1813
- code = currency['id'];
1815
+ code = this.safeCurrencyCode(currency['id']);
1814
1816
  if (code !== 'NIM') {
1815
1817
  // contains spaces
1816
1818
  this.checkAddress(address);
@@ -1860,7 +1862,7 @@ export default class kucoin extends Exchange {
1860
1862
  this.options['versions']['private']['GET']['deposit-addresses'] = version;
1861
1863
  const chains = this.safeList(response, 'data', []);
1862
1864
  const parsed = this.parseDepositAddresses(chains, [currency['code']], false, {
1863
- 'currency': currency['id'],
1865
+ 'currency': currency['code'],
1864
1866
  });
1865
1867
  return this.indexBy(parsed, 'network');
1866
1868
  }
@@ -2974,7 +2976,7 @@ export default class kucoin extends Exchange {
2974
2976
  * @method
2975
2977
  * @name kucoin#fetchTrades
2976
2978
  * @description get the list of most recent trades for a particular symbol
2977
- * @see https://docs.kucoin.com/#get-trade-histories
2979
+ * @see https://www.kucoin.com/docs/rest/spot-trading/market-data/get-trade-histories
2978
2980
  * @param {string} symbol unified symbol of the market to fetch trades for
2979
2981
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
2980
2982
  * @param {int} [limit] the maximum amount of trades to fetch
@@ -3147,7 +3149,7 @@ export default class kucoin extends Exchange {
3147
3149
  * @method
3148
3150
  * @name kucoin#fetchTradingFee
3149
3151
  * @description fetch the trading fees for a market
3150
- * @see https://docs.kucoin.com/#actual-fee-rate-of-the-trading-pair
3152
+ * @see https://www.kucoin.com/docs/rest/funding/trade-fee/trading-pair-actual-fee-spot-margin-trade_hf
3151
3153
  * @param {string} symbol unified market symbol
3152
3154
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3153
3155
  * @returns {object} a [fee structure]{@link https://docs.ccxt.com/#/?id=fee-structure}
@@ -3187,7 +3189,7 @@ export default class kucoin extends Exchange {
3187
3189
  * @method
3188
3190
  * @name kucoin#withdraw
3189
3191
  * @description make a withdrawal
3190
- * @see https://docs.kucoin.com/#apply-withdraw-2
3192
+ * @see https://www.kucoin.com/docs/rest/funding/withdrawals/apply-withdraw
3191
3193
  * @param {string} code unified currency code
3192
3194
  * @param {float} amount the amount to withdraw
3193
3195
  * @param {string} address the address to withdraw to
@@ -3362,8 +3364,8 @@ export default class kucoin extends Exchange {
3362
3364
  * @method
3363
3365
  * @name kucoin#fetchDeposits
3364
3366
  * @description fetch all deposits made to an account
3365
- * @see https://docs.kucoin.com/#get-deposit-list
3366
- * @see https://docs.kucoin.com/#get-v1-historical-deposits-list
3367
+ * @see https://www.kucoin.com/docs/rest/funding/deposit/get-deposit-list
3368
+ * @see https://www.kucoin.com/docs/rest/funding/deposit/get-v1-historical-deposits-list
3367
3369
  * @param {string} code unified currency code
3368
3370
  * @param {int} [since] the earliest time in ms to fetch deposits for
3369
3371
  * @param {int} [limit] the maximum number of deposits structures to retrieve
@@ -3446,8 +3448,8 @@ export default class kucoin extends Exchange {
3446
3448
  * @method
3447
3449
  * @name kucoin#fetchWithdrawals
3448
3450
  * @description fetch all withdrawals made from an account
3449
- * @see https://docs.kucoin.com/#get-withdrawals-list
3450
- * @see https://docs.kucoin.com/#get-v1-historical-withdrawals-list
3451
+ * @see https://www.kucoin.com/docs/rest/funding/withdrawals/get-withdrawals-list
3452
+ * @see https://www.kucoin.com/docs/rest/funding/withdrawals/get-v1-historical-withdrawals-list
3451
3453
  * @param {string} code unified currency code
3452
3454
  * @param {int} [since] the earliest time in ms to fetch withdrawals for
3453
3455
  * @param {int} [limit] the maximum number of withdrawals structures to retrieve
@@ -3721,7 +3723,7 @@ export default class kucoin extends Exchange {
3721
3723
  * @method
3722
3724
  * @name kucoin#transfer
3723
3725
  * @description transfer currency internally between wallets on the same account
3724
- * @see https://docs.kucoin.com/#inner-transfer
3726
+ * @see https://www.kucoin.com/docs/rest/funding/transfer/inner-transfer
3725
3727
  * @see https://docs.kucoin.com/futures/#transfer-funds-to-kucoin-main-account-2
3726
3728
  * @see https://docs.kucoin.com/spot-hf/#internal-funds-transfers-in-high-frequency-trading-accounts
3727
3729
  * @param {string} code unified currency code
@@ -4004,7 +4006,7 @@ export default class kucoin extends Exchange {
4004
4006
  /**
4005
4007
  * @method
4006
4008
  * @name kucoin#fetchLedger
4007
- * @see https://docs.kucoin.com/#get-account-ledgers
4009
+ * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-spot-margin
4008
4010
  * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-trade_hf
4009
4011
  * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-margin_hf
4010
4012
  * @description fetch the history of changes, actions done by the user or operations that altered balance of the user
package/js/src/okx.d.ts CHANGED
@@ -298,6 +298,7 @@ export default class okx extends Exchange {
298
298
  quoteVolume: any;
299
299
  };
300
300
  fetchConvertQuote(fromCode: string, toCode: string, amount?: Num, params?: {}): Promise<Conversion>;
301
+ createConvertTrade(id: string, fromCode: string, toCode: string, amount?: Num, params?: {}): Promise<Conversion>;
301
302
  parseConversion(conversion: any, fromCurrency?: Currency, toCurrency?: Currency): Conversion;
302
303
  fetchConvertCurrencies(params?: {}): Promise<Currencies>;
303
304
  handleErrors(httpCode: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
package/js/src/okx.js CHANGED
@@ -38,6 +38,7 @@ export default class okx extends Exchange {
38
38
  'cancelOrders': true,
39
39
  'closeAllPositions': false,
40
40
  'closePosition': true,
41
+ 'createConvertTrade': true,
41
42
  'createDepositAddress': false,
42
43
  'createMarketBuyOrderWithCost': true,
43
44
  'createMarketSellOrderWithCost': true,
@@ -7661,6 +7662,59 @@ export default class okx extends Exchange {
7661
7662
  const toCurrency = this.currency(toCurrencyId);
7662
7663
  return this.parseConversion(result, fromCurrency, toCurrency);
7663
7664
  }
7665
+ async createConvertTrade(id, fromCode, toCode, amount = undefined, params = {}) {
7666
+ /**
7667
+ * @method
7668
+ * @name okx#createConvertTrade
7669
+ * @description convert from one currency to another
7670
+ * @see https://www.okx.com/docs-v5/en/#funding-account-rest-api-convert-trade
7671
+ * @param {string} id the id of the trade that you want to make
7672
+ * @param {string} fromCode the currency that you want to sell and convert from
7673
+ * @param {string} toCode the currency that you want to buy and convert into
7674
+ * @param {float} [amount] how much you want to trade in units of the from currency
7675
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
7676
+ * @returns {object} a [conversion structure]{@link https://docs.ccxt.com/#/?id=conversion-structure}
7677
+ */
7678
+ await this.loadMarkets();
7679
+ const request = {
7680
+ 'quoteId': id,
7681
+ 'baseCcy': fromCode,
7682
+ 'quoteCcy': toCode,
7683
+ 'szCcy': fromCode,
7684
+ 'sz': this.numberToString(amount),
7685
+ 'side': 'sell',
7686
+ };
7687
+ const response = await this.privatePostAssetConvertTrade(this.extend(request, params));
7688
+ //
7689
+ // {
7690
+ // "code": "0",
7691
+ // "data": [
7692
+ // {
7693
+ // "baseCcy": "ETH",
7694
+ // "clTReqId": "",
7695
+ // "fillBaseSz": "0.01023052",
7696
+ // "fillPx": "2932.40104429",
7697
+ // "fillQuoteSz": "30",
7698
+ // "instId": "ETH-USDT",
7699
+ // "quoteCcy": "USDT",
7700
+ // "quoteId": "quoterETH-USDT16461885104612381",
7701
+ // "side": "buy",
7702
+ // "state": "fullyFilled",
7703
+ // "tradeId": "trader16461885203381437",
7704
+ // "ts": "1646188520338"
7705
+ // }
7706
+ // ],
7707
+ // "msg": ""
7708
+ // }
7709
+ //
7710
+ const data = this.safeList(response, 'data', []);
7711
+ const result = this.safeDict(data, 0, {});
7712
+ const fromCurrencyId = this.safeString(result, 'baseCcy', fromCode);
7713
+ const fromCurrency = this.currency(fromCurrencyId);
7714
+ const toCurrencyId = this.safeString(result, 'quoteCcy', toCode);
7715
+ const toCurrency = this.currency(toCurrencyId);
7716
+ return this.parseConversion(result, fromCurrency, toCurrency);
7717
+ }
7664
7718
  parseConversion(conversion, fromCurrency = undefined, toCurrency = undefined) {
7665
7719
  //
7666
7720
  // fetchConvertQuote
@@ -7681,7 +7735,24 @@ export default class okx extends Exchange {
7681
7735
  // "ttlMs": "10000"
7682
7736
  // }
7683
7737
  //
7684
- const timestamp = this.safeInteger(conversion, 'quoteTime');
7738
+ // createConvertTrade
7739
+ //
7740
+ // {
7741
+ // "baseCcy": "ETH",
7742
+ // "clTReqId": "",
7743
+ // "fillBaseSz": "0.01023052",
7744
+ // "fillPx": "2932.40104429",
7745
+ // "fillQuoteSz": "30",
7746
+ // "instId": "ETH-USDT",
7747
+ // "quoteCcy": "USDT",
7748
+ // "quoteId": "quoterETH-USDT16461885104612381",
7749
+ // "side": "buy",
7750
+ // "state": "fullyFilled",
7751
+ // "tradeId": "trader16461885203381437",
7752
+ // "ts": "1646188520338"
7753
+ // }
7754
+ //
7755
+ const timestamp = this.safeInteger2(conversion, 'quoteTime', 'ts');
7685
7756
  const fromCoin = this.safeString(conversion, 'baseCcy');
7686
7757
  const fromCode = this.safeCurrencyCode(fromCoin, fromCurrency);
7687
7758
  const to = this.safeString(conversion, 'quoteCcy');
@@ -7690,12 +7761,12 @@ export default class okx extends Exchange {
7690
7761
  'info': conversion,
7691
7762
  'timestamp': timestamp,
7692
7763
  'datetime': this.iso8601(timestamp),
7693
- 'id': this.safeString(conversion, 'clQReqId'),
7764
+ 'id': this.safeStringN(conversion, ['clQReqId', 'tradeId', 'quoteId']),
7694
7765
  'fromCurrency': fromCode,
7695
- 'fromAmount': this.safeNumber(conversion, 'baseSz'),
7766
+ 'fromAmount': this.safeNumber2(conversion, 'baseSz', 'fillBaseSz'),
7696
7767
  'toCurrency': toCode,
7697
- 'toAmount': this.safeNumber(conversion, 'quoteSz'),
7698
- 'price': this.safeNumber(conversion, 'cnvtPx'),
7768
+ 'toAmount': this.safeNumber2(conversion, 'quoteSz', 'fillQuoteSz'),
7769
+ 'price': this.safeNumber2(conversion, 'cnvtPx', 'fillPx'),
7699
7770
  'fee': undefined,
7700
7771
  };
7701
7772
  }
@@ -137,7 +137,7 @@ export default class kraken extends krakenRest {
137
137
  'pair': market['wsId'],
138
138
  'volume': this.amountToPrecision(symbol, amount),
139
139
  };
140
- [request, params] = this.orderRequest('createOrderWs()', symbol, type, request, price, params);
140
+ [request, params] = this.orderRequest('createOrderWs', symbol, type, request, price, params);
141
141
  return await this.watch(url, messageHash, this.extend(request, params), messageHash);
142
142
  }
143
143
  handleCreateEditOrder(client, message) {
@@ -193,7 +193,7 @@ export default class kraken extends krakenRest {
193
193
  'pair': market['wsId'],
194
194
  'volume': this.amountToPrecision(symbol, amount),
195
195
  };
196
- [request, params] = this.orderRequest('editOrderWs()', symbol, type, request, price, params);
196
+ [request, params] = this.orderRequest('editOrderWs', symbol, type, request, price, params);
197
197
  return await this.watch(url, messageHash, this.extend(request, params), messageHash);
198
198
  }
199
199
  async cancelOrdersWs(ids, symbol = undefined, params = {}) {
@@ -15,7 +15,7 @@ export declare class BigInteger {
15
15
  protected intValue(): number;
16
16
  protected byteValue(): number;
17
17
  protected shortValue(): number;
18
- protected signum(): 1 | 0 | -1;
18
+ protected signum(): 0 | 1 | -1;
19
19
  toByteArray(): number[];
20
20
  protected equals(a: BigInteger): boolean;
21
21
  protected min(a: BigInteger): BigInteger;
package/js/src/woo.d.ts CHANGED
@@ -175,6 +175,7 @@ export default class woo extends Exchange {
175
175
  fetchPositions(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Position[]>;
176
176
  parsePosition(position: any, market?: Market): import("./base/types.js").Position;
177
177
  fetchConvertQuote(fromCode: string, toCode: string, amount?: Num, params?: {}): Promise<Conversion>;
178
+ createConvertTrade(id: string, fromCode: string, toCode: string, amount?: Num, params?: {}): Promise<Conversion>;
178
179
  parseConversion(conversion: any, fromCurrency?: Currency, toCurrency?: Currency): Conversion;
179
180
  fetchConvertCurrencies(params?: {}): Promise<Currencies>;
180
181
  defaultNetworkCodeForCurrency(code: any): any;
package/js/src/woo.js CHANGED
@@ -39,6 +39,7 @@ export default class woo extends Exchange {
39
39
  'cancelWithdraw': false,
40
40
  'closeAllPositions': false,
41
41
  'closePosition': false,
42
+ 'createConvertTrade': true,
42
43
  'createDepositAddress': false,
43
44
  'createMarketBuyOrderWithCost': true,
44
45
  'createMarketOrder': false,
@@ -3032,6 +3033,37 @@ export default class woo extends Exchange {
3032
3033
  const toCurrency = this.currency(toCurrencyId);
3033
3034
  return this.parseConversion(data, fromCurrency, toCurrency);
3034
3035
  }
3036
+ async createConvertTrade(id, fromCode, toCode, amount = undefined, params = {}) {
3037
+ /**
3038
+ * @method
3039
+ * @name woo#createConvertTrade
3040
+ * @description convert from one currency to another
3041
+ * @see https://docs.woo.org/#send-quote-rft
3042
+ * @param {string} id the id of the trade that you want to make
3043
+ * @param {string} fromCode the currency that you want to sell and convert from
3044
+ * @param {string} toCode the currency that you want to buy and convert into
3045
+ * @param {float} [amount] how much you want to trade in units of the from currency
3046
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
3047
+ * @returns {object} a [conversion structure]{@link https://docs.ccxt.com/#/?id=conversion-structure}
3048
+ */
3049
+ await this.loadMarkets();
3050
+ const request = {
3051
+ 'quoteId': id,
3052
+ };
3053
+ const response = await this.v3PrivatePostConvertRft(this.extend(request, params));
3054
+ //
3055
+ // {
3056
+ // "success": true,
3057
+ // "data": {
3058
+ // "quoteId": 123123123,
3059
+ // "counterPartyId": "",
3060
+ // "rftAccepted": 1 // 1 -> success; 2 -> processing; 3 -> fail
3061
+ // }
3062
+ // }
3063
+ //
3064
+ const data = this.safeDict(response, 'data', {});
3065
+ return this.parseConversion(data);
3066
+ }
3035
3067
  parseConversion(conversion, fromCurrency = undefined, toCurrency = undefined) {
3036
3068
  //
3037
3069
  // fetchConvertQuote
@@ -3048,6 +3080,14 @@ export default class woo extends Exchange {
3048
3080
  // "message": 1659084466000
3049
3081
  // }
3050
3082
  //
3083
+ // createConvertTrade
3084
+ //
3085
+ // {
3086
+ // "quoteId": 123123123,
3087
+ // "counterPartyId": "",
3088
+ // "rftAccepted": 1 // 1 -> success; 2 -> processing; 3 -> fail
3089
+ // }
3090
+ //
3051
3091
  const timestamp = this.safeInteger(conversion, 'expireTimestamp');
3052
3092
  const fromCoin = this.safeString(conversion, 'sellToken');
3053
3093
  const fromCode = this.safeCurrencyCode(fromCoin, fromCurrency);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.2.100",
3
+ "version": "4.3.2",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",
@@ -51,6 +51,7 @@
51
51
  "test": "npm run build && npm run commonjs-test && npm run static-tests && node run-tests --useProxy",
52
52
  "fast-test": "npm run commonjs-test && node run-tests --js --useProxy",
53
53
  "commonjs-test": "node test-commonjs.cjs",
54
+ "package-test": "./package-test.sh",
54
55
  "fast-test-ws": "node run-tests --ws --js",
55
56
  "test-base": "npm run test-js-base && npm run test-python-base && npm run test-php-base && npm run test-cs-base && npm run id-tests && npm run static-tests",
56
57
  "test-base-ws": "npm run test-js-base-ws && npm run test-python-base-ws && npm run test-php-base-ws && npm run test-cs-base-ws",
package/.dockerignore DELETED
@@ -1,6 +0,0 @@
1
- .git
2
- .dockerignore
3
- Dockerfile
4
- node_modules
5
- *.swp
6
- *.pyc
package/.eslintignore DELETED
@@ -1 +0,0 @@
1
- build/*
@@ -1,55 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Check if changes are relevant
4
- CHECK_DIRECTORIES="ts/ python/ccxt/ php/ build/"
5
-
6
- MODIFIED_FILES=$(git diff --name-only upstream/master)
7
- HAS_RELEVANT_CHANGES=false
8
-
9
- for DIR in $CHECK_DIRECTORIES; do
10
- if echo "$MODIFIED_FILES" | grep -qE "^$DIR"; then
11
- HAS_RELEVANT_CHANGES=true
12
- break
13
- fi
14
- done
15
-
16
- if [ "$HAS_RELEVANT_CHANGES" = "false" ]; then
17
- echo "No relevant changes, skipping checks..."
18
- exit 0
19
- fi
20
-
21
- # Lint TS files
22
- MODIFIED_TS_FILES=$(git diff --name-only upstream/master -- 'ts/**/*.ts')
23
-
24
- ESLINT_EXIT_CODE=0
25
- # Run eslint on the modified files
26
- if [ "$MODIFIED_TS_FILES" != "" ]; then
27
- eslint $MODIFIED_TS_FILES
28
- ESLINT_EXIT_CODE=$?
29
- fi
30
-
31
- if [ $ESLINT_EXIT_CODE -ne 0 ]; then
32
- echo "ESLint failed, check the TypeScript files..."
33
- exit $ESLINT_EXIT_CODE
34
- fi
35
-
36
- # Run python linting
37
- ruff ./python/ccxt
38
- PYTHON_EXIT_CODE=$?
39
-
40
- if [ $PYTHON_EXIT_CODE -ne 0 ]; then
41
- echo "Python linting failed, check the Python files..."
42
- exit $PYTHON_EXIT_CODE
43
- fi
44
-
45
- # Run PHP linting
46
- npm run check-php-syntax
47
- PHP_EXIT_CODE=$?
48
-
49
- if [ $PHP_EXIT_CODE -ne 0 ]; then
50
- echo "PHP linting failed, check the PHP files..."
51
- exit $PHP_EXIT_CODE
52
- fi
53
-
54
- echo "All checks passed, pushing..."
55
- exit 0
package/.gitattributes DELETED
@@ -1,7 +0,0 @@
1
- *.* text eol=lf
2
- php/test/*.php linguist-generated=true
3
- php/*.php linguist-generated=true
4
- php/abstract/*.php linguist-generated=true
5
- php/async/abstract/*.php linguist-generated=true
6
- php/pro/*.php linguist-generated=true
7
- *.png binary