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,39 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- console.log ('CCXT Version:', ccxt.version)
6
-
7
- async function main () {
8
-
9
- const exchange = new ccxt.binance({
10
- 'apiKey': 'YOUR_API_KEY',
11
- 'secret': 'YOUR_API_SECRET',
12
- 'options': {
13
- 'defaultType': 'margin',
14
- },
15
- })
16
-
17
- const markets = await exchange.loadMarkets ()
18
-
19
- exchange.verbose = true // uncomment for debugging purposes if necessary
20
-
21
- const symbol = 'BTC/USDT'
22
- const type = 'STOP_LOSS_LIMIT'
23
- const side = 'buy'
24
- const amount = YOUR_AMOUNT_HERE
25
- const price = YOUR_PRICE_HERE
26
- const params = {
27
- 'stopPrice': YOUR_STOP_PRICE_HERE,
28
- 'timeInForce': 'GTC',
29
- }
30
-
31
- try {
32
- const order = await exchange.createOrder (symbol, type, side, amount, price, params)
33
- console.log (order)
34
- } catch (e) {
35
- console.log (e.constructor.name, e.message)
36
- }
37
- }
38
-
39
- main ()
@@ -1,34 +0,0 @@
1
-
2
- import ccxt from '../../js/ccxt.js';
3
- import ololog from 'ololog'
4
-
5
- const log = ololog.configure ({ locate: false })
6
-
7
- const binance = new ccxt['binance'] ()
8
- const recvWindow = binance.options.recvWindow
9
- const aheadWindow = 1000
10
-
11
- async function test () {
12
- const localStartTime = Date.now ()
13
- const { serverTime } = await binance.publicGetTime ()
14
- const localFinishTime = Date.now ()
15
- const estimatedLandingTime = (localFinishTime + localStartTime) / 2
16
-
17
- const diff = serverTime - estimatedLandingTime
18
-
19
- log (`request departure time: ${binance.iso8601 (localStartTime)}`)
20
- log (`response arrival time: ${binance.iso8601 (localFinishTime)}`)
21
- log (`server time: ${binance.iso8601 (serverTime)}`)
22
- log (`request landing time (est): ${binance.iso8601 (estimatedLandingTime)}, ${Math.abs (diff)} ms ${Math.sign (diff) > 0 ? 'behind' : 'ahead of'} server`)
23
- log ('\n')
24
-
25
- if (diff < -aheadWindow) {
26
- log.error.red (`your request will likely be rejected if local time is ahead of the server's time for more than ${aheadWindow} ms \n`)
27
- }
28
-
29
- if (diff > recvWindow) {
30
- log.error.red (`your request will likely be rejected if local time is behind server time for more than ${recvWindow} ms\n`)
31
- }
32
- }
33
-
34
- test ();
@@ -1,16 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- (async () => {
4
-
5
- // apiKey must have universal transfer permissions
6
- const binance = new ccxt.binance ({
7
- "apiKey": "",
8
- "secret": "",
9
- })
10
-
11
- console.log (await binance.transfer ('USDT', 1, 'spot', 'future'))
12
- const transfers = await binance.fetchTransfers ();
13
- console.log ('got ', transfers.length, ' transfers')
14
- console.log (await binance.transfer ('USDT', 1, 'spot', 'cross')) // For transfer to cross margin wallet
15
- console.log (await binance.transfer ('USDT', 1, 'spot', 'ADA/USDT')) // For transfer to an isolated margin wallet
16
- }) ()
@@ -1,35 +0,0 @@
1
-
2
-
3
- // ----------------------------------------------------------------------------
4
-
5
- import ccxt from '../../js/ccxt.js';
6
- import log from 'ololog';
7
- import asTable from 'as-table';
8
-
9
- // ----------------------------------------------------------------------------
10
-
11
- const // ----------------------------------------------------------------------------
12
- table = asTable.configure ({ delimiter: ' | ' });(async () => {
13
-
14
- const exchange = new ccxt.bitfinex ({
15
- 'verbose': process.argv.includes ('--verbose'),
16
- 'timeout': 60000,
17
- })
18
-
19
- try {
20
-
21
- const response = await exchange.fetchTrades ('ETH/BTC', 1518983548636 - 2 * 24 * 60 * 60 * 1000)
22
- log (table (response))
23
- log (response.length.toString (), 'trades')
24
- log.green ('Succeeded.')
25
-
26
- } catch (e) {
27
-
28
- log.dim ('--------------------------------------------------------')
29
- log (e.constructor.name, e.message)
30
- log.dim ('--------------------------------------------------------')
31
- log.dim (exchange.last_http_response)
32
- log.error ('Failed.')
33
- }
34
-
35
- }) ()
@@ -1,35 +0,0 @@
1
-
2
-
3
- // ----------------------------------------------------------------------------
4
-
5
- import ccxt from '../../js/ccxt.js';
6
- import asTable from 'as-table';
7
- import log from 'ololog';
8
-
9
- // ----------------------------------------------------------------------------
10
-
11
- const // ----------------------------------------------------------------------------
12
- table = asTable.configure ({ delimiter: ' | ' });(async () => {
13
-
14
- const exchange = new ccxt.bitfinex2 ({
15
- 'verbose': process.argv.includes ('--verbose'),
16
- 'timeout': 60000,
17
- })
18
-
19
- try {
20
-
21
- const response = await exchange.fetchTrades ('ETH/BTC', 1518983548636 - 2 * 24 * 60 * 60 * 1000)
22
- log (table (response))
23
- log (response.length.toString (), 'trades')
24
- log.green ('Succeeded.')
25
-
26
- } catch (e) {
27
-
28
- log.dim ('--------------------------------------------------------')
29
- log (e.constructor.name, e.message)
30
- log.dim ('--------------------------------------------------------')
31
- log.dim (exchange.last_http_response)
32
- log.error ('Failed.')
33
- }
34
-
35
- }) ()
@@ -1,7 +0,0 @@
1
- // JavaScript CORS Proxy
2
- // Save this in a file like cors.js and run with `node cors [port]`
3
- // It will listen for your requests on the port you pass in command line or port 8080 by default
4
- let port = (process.argv.length > 2) ? parseInt (process.argv[2]) : 8080 // default
5
- require ('cors-anywhere').createServer ({
6
- setHeaders: { 'origin': 'https://www.bitmex.com' }
7
- }).listen (port, '0.0.0.0')
@@ -1,36 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
-
3
- const bitpanda = new ccxt.bitpanda ({
4
- "apiKey": "INSERTYOURAPIKEY"
5
- })
6
-
7
-
8
- // output
9
- `
10
- fetching USDT/EUR trades on bitpanda
11
- ---------------------------------------------
12
- maker volume 6621.81 USDT maker fee 5.62 USDT
13
- taker volume 2544.82 USDT taker fee 3.27 USDT
14
-
15
- sold 9166.63 USDT for 7802.38 EUR
16
- bought 0.00 USDT for 0.00 EUR
17
- `
18
-
19
- ;(async () => {
20
- const market = {
21
- symbol: 'USDT/EUR',
22
- base: 'USDT',
23
- quote: 'EUR',
24
- }
25
- console.log ('fetching', market.symbol, 'trades on bitpanda')
26
- console.log ('---------------------------------------------')
27
- const trades = await bitpanda.fetchMyTrades ('USDT/EUR')
28
- const makers = trades.filter (x => x.takerOrMaker === 'maker')
29
- const takers = trades.filter (x => x.takerOrMaker === 'taker')
30
- console.log ('maker volume', makers.reduce ((a, b) => a + b.amount, 0).toFixed (2), market.base, 'maker fee', makers.reduce ((a, b) => a + b.fee['cost'], 0).toFixed (2), market.base)
31
- console.log ('taker volume', takers.reduce ((a, b) => a + b.amount, 0).toFixed (2), market.base, 'taker fee', takers.reduce ((a, b) => a + b.fee['cost'], 0).toFixed (2), market.base)
32
- const sells = trades.filter (x => x.side === 'sell')
33
- const buys = trades.filter (x => x.side === 'buy')
34
- console.log ('\nsold', sells.reduce ((a, b) => a + b.amount, 0).toFixed (2), market.base, 'for', sells.reduce ((a, b) => a + b.cost, 0).toFixed (2), market.quote)
35
- console.log ('bought', buys.reduce ((a, b) => a + b.amount, 0).toFixed (2), market.base, 'for', buys.reduce ((a, b) => a + b.cost, 0).toFixed (2), market.quote)
36
- }) ()
@@ -1,28 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
-
5
- async function main () {
6
-
7
- console.log ('CCXT Version:', ccxt.version)
8
-
9
- const exchange = new ccxt.bitrue ({
10
- "apiKey": "YOUR_API_KEY",
11
- "secret": "YOUR_SECRET",
12
- })
13
-
14
- await exchange.loadMarkets ()
15
-
16
- exchange.verbose = true
17
-
18
- try {
19
-
20
- const balance = await exchange.fetchBalance ()
21
- console.log (balance)
22
-
23
- } catch (e) {
24
- console.log (e.constructor.name, e.message);
25
- }
26
- }
27
-
28
- main ()
@@ -1,115 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import asTable from 'as-table';
5
- import ololog from 'ololog'
6
- import ansicolor from 'ansicolor';
7
-
8
- const log = ololog.configure({ locate: false })
9
-
10
- ansicolor.nice
11
-
12
- ;(async () => {
13
- let apiUrl = 'https://www.bitstamp.net/api';
14
-
15
- // instantiate the exchange
16
- let exchange = new ccxt.bitstamp({
17
- 'apiKey': 'APIKEY',
18
- 'secret': 'APISECRET',
19
- 'uid': 'ACCOUNTID',
20
- 'urls': {
21
- 'api': {
22
- 'public': apiUrl,
23
- 'private': apiUrl,
24
- 'v1': apiUrl
25
- }
26
- }
27
- })
28
-
29
- try {
30
- // fetch account balance from the exchange
31
- let balance = await exchange.fetchBalance()
32
- log('balance'.green, balance.total)
33
-
34
- // fetch fees
35
- let singleFee = await exchange.fetchTradingFee('BTC/USD')
36
- log('fee'.green, 'BTC/USD', singleFee)
37
- let tradingFees = await exchange.fetchTradingFees()
38
- log('tradingFees'.green, tradingFees)
39
- let fundingFees = await exchange.fetchFundingFees()
40
- log('fundingFees'.green, fundingFees)
41
- let fees = await exchange.fetchFees()
42
- log('fees'.green, fees)
43
-
44
- // my trades
45
- let myTrades = await exchange.fetchMyTrades('BTC/USD', undefined, 5)
46
- log('myTrades'.green, asTable(myTrades))
47
-
48
- // user transactions
49
- let transactions = await exchange.fetchTransactions()
50
- log('Transactions'.green, asTable(transactions))
51
-
52
- // ledger
53
- let ledger = await exchange.fetchLedger()
54
- log('Ledger'.green, asTable(ledger))
55
-
56
- // deposits
57
- let deposits = await exchange.fetchDeposits()
58
- log('Deposits'.green, asTable(deposits))
59
-
60
- // create new limit order
61
- let newOrder = await exchange.createOrder('BTC/USD', 'limit', 'buy', 0.01, 8000)
62
- console.log('New limit order'.green, newOrder);
63
-
64
- // open orders
65
- let openOrders = await exchange.fetchOpenOrders()
66
- log('Open orders'.green, asTable(openOrders))
67
-
68
- // order data
69
- let orderData = await exchange.fetchOrder(newOrder.id)
70
- console.log('Order data'.green, orderData);
71
-
72
- // cancel order
73
- let canceledOrder = await exchange.cancelOrder(newOrder.id)
74
- console.log('Canceled order'.green, canceledOrder);
75
-
76
- // create market order
77
- let marketOrder = await exchange.createOrder('BTC/USD', 'market', 'buy', 0.01)
78
- console.log('New market order'.green, marketOrder);
79
-
80
- // open orders
81
- let secondOpenOrders = await exchange.fetchOpenOrders()
82
- log('Open orders'.green, asTable(secondOpenOrders))
83
-
84
- // deposit address
85
- let paxDeposit = await exchange.fetchDepositAddress("XLM")
86
- log('Pax deposit address'.green, paxDeposit)
87
-
88
- // withdrawal
89
- let ethWithdraw = await exchange.withdraw("ETH", 0.01, "0x6c28cb9dd2f4e3bb6f56c822bc306f3b8a3e7c08")
90
- log('ETH withdrawal'.green, ethWithdraw)
91
-
92
- // withdrawals
93
- let withdrawals = await exchange.fetchWithdrawals()
94
- log('Withdrawals'.green, asTable(withdrawals))
95
-
96
- } catch (e) {
97
-
98
- if (e instanceof ccxt.DDoSProtection || e.message.includes('ECONNRESET')) {
99
- log.bright.yellow('[DDoS Protection] ' + e.message)
100
- } else if (e instanceof ccxt.RequestTimeout) {
101
- log.bright.yellow('[Request Timeout] ' + e.message)
102
- } else if (e instanceof ccxt.AuthenticationError) {
103
- log.bright.yellow('[Authentication Error] ' + e.message)
104
- } else if (e instanceof ccxt.ExchangeNotAvailable) {
105
- log.bright.yellow('[Exchange Not Available Error] ' + e.message)
106
- } else if (e instanceof ccxt.ExchangeError) {
107
- log.bright.yellow('[Exchange Error] ' + e.message)
108
- } else if (e instanceof ccxt.NetworkError) {
109
- log.bright.yellow('[Network Error] ' + e.message)
110
- } else {
111
- throw e;
112
- }
113
- }
114
-
115
- })()
@@ -1,39 +0,0 @@
1
-
2
- import ccxt from '../../js/ccxt.js';
3
- import log from 'ololog';
4
- import asTable from 'as-table';
5
-
6
-
7
- const table = asTable.configure ({ delimiter: ' | ' }), id = 'bitstamp', exchange = new ccxt[id] ({ enableRateLimit: true }), symbol = 'BTC/USD';(async function main () {
8
-
9
- // Markets data
10
- const markets = await exchange.fetchMarkets ()
11
- console.log('Total number of markets: ', Object.keys(markets).length);
12
-
13
- // Currencies
14
- const currencies = await exchange.fetchCurrencies ()
15
- console.log('Currencies: ', JSON.stringify(currencies));
16
-
17
- // Order book data
18
- const orderbook = await exchange.fetchOrderBook (symbol)
19
- console.log ('Order book ', symbol, orderbook.asks[0], orderbook.bids[0])
20
-
21
- // Ticker
22
- const ticker = await exchange.fetchTicker (symbol)
23
- console.log ('Ticker ', symbol, " bid ", ticker.bid, " ask ", ticker.ask)
24
-
25
- // Trades
26
- const response = await exchange.fetchTrades (symbol, null, 10)
27
- log (table (response))
28
-
29
- // OHLC data
30
- const candles = await exchange.fetchOHLCV (symbol, '1m', undefined, 10);
31
- const first = candles[0]
32
- const last = candles[candles.length - 1]
33
- console.log (
34
- 'Fetched', candles.length, symbol, 'candles',
35
- 'from', exchange.iso8601 (first[0]),
36
- 'to', exchange.iso8601 (last[0])
37
- )
38
-
39
- }) ()
@@ -1,50 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import asTable from 'as-table';
5
- import ansicolor from 'ansicolor';
6
- import ololog from 'ololog'
7
-
8
- const log = ololog.configure ({ locate: false })
9
-
10
- ansicolor.nice
11
-
12
- let sleep = (ms) => new Promise (resolve => setTimeout (resolve, ms))
13
-
14
- ;(async () => {
15
-
16
- // instantiate the exchange
17
- let exchange = new ccxt.bittrex ({
18
- "apiKey": "471b47a06c384e81b24072e9a8739064",
19
- "secret": "694025686e9445589787e8ca212b4cff",
20
- })
21
-
22
-
23
- try {
24
-
25
- // fetch account balance from the exchange
26
- let balance = await exchange.fetchBalance ()
27
-
28
- // output the result
29
- log (exchange.name.green, 'balance', balance)
30
-
31
- } catch (e) {
32
-
33
- if (e instanceof ccxt.DDoSProtection || e.message.includes ('ECONNRESET')) {
34
- log.bright.yellow ('[DDoS Protection] ' + e.message)
35
- } else if (e instanceof ccxt.RequestTimeout) {
36
- log.bright.yellow ('[Request Timeout] ' + e.message)
37
- } else if (e instanceof ccxt.AuthenticationError) {
38
- log.bright.yellow ('[Authentication Error] ' + e.message)
39
- } else if (e instanceof ccxt.ExchangeNotAvailable) {
40
- log.bright.yellow ('[Exchange Not Available Error] ' + e.message)
41
- } else if (e instanceof ccxt.ExchangeError) {
42
- log.bright.yellow ('[Exchange Error] ' + e.message)
43
- } else if (e instanceof ccxt.NetworkError) {
44
- log.bright.yellow ('[Network Error] ' + e.message)
45
- } else {
46
- throw e;
47
- }
48
- }
49
-
50
- }) ()
@@ -1,69 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- import ololog from 'ololog';
3
- import asTable from 'as-table';
4
-
5
-
6
- const { noLocate } = ololog;
7
- const log = noLocate;
8
-
9
- const exchange = new ccxt.bittrex ({
10
- 'enableRateLimit': true,
11
- 'apiKey': 'YOUR_API_KEY',
12
- 'secret': 'YOUR_API_SECRET',
13
- });(async () => {
14
-
15
- await exchange.loadMarkets ()
16
-
17
- const symbol = 'ETH/BTC'
18
- , market = exchange.markets[symbol]
19
- , startingDate = '2017-01-01T00:00:00'
20
- , now = exchange.milliseconds ()
21
-
22
- log.bright.green ('\nFetching history for:', symbol, '\n')
23
-
24
- let allOrders = []
25
- let since = exchange.parse8601 (startingDate)
26
-
27
- while (since < now) {
28
-
29
- try {
30
-
31
- log.bright.blue ('Fetching history for', symbol, 'since', exchange.iso8601 (since))
32
- const orders = await exchange.fetchClosedOrders (symbol, since)
33
- log.green.dim ('Fetched', orders.length, 'orders')
34
-
35
- allOrders = allOrders.concat (orders)
36
-
37
- if (orders.length) {
38
-
39
- const lastOrder = orders[orders.length - 1]
40
- since = lastOrder['timestamp'] + 1
41
-
42
- } else {
43
-
44
- break // no more orders left for this symbol, move to next one
45
- }
46
-
47
- } catch (e) {
48
-
49
- log.red.unlimited (e)
50
-
51
- }
52
- }
53
-
54
- // omit the following keys for a compact table output
55
- // otherwise it won't fit into the screen width
56
- const omittedKeys = [
57
- 'info',
58
- 'timestamp',
59
- 'lastTradeTimestamp',
60
- 'fee',
61
- ]
62
-
63
- log.yellow (asTable (allOrders.map (order => exchange.omit (order, omittedKeys))))
64
- log.green ('Fetched', allOrders.length, symbol, 'orders in total')
65
-
66
- // do whatever you want to do with them, calculate profit loss, etc...
67
-
68
- }) ()
69
-
@@ -1,59 +0,0 @@
1
- "use strict";
2
-
3
- const ccxt = require('../../ccxt.js')
4
- const asTable = require('as-table')
5
- const log = require('ololog').configure({ locate: false })
6
-
7
-
8
- const exchange = new ccxt.blockchaincom({
9
- 'secret': 'YOUR_API_SECRET',
10
- })
11
-
12
- // blockchaincom specific internal beneficiary id
13
- const address = 'BENEFICIARY_ID';
14
-
15
-
16
- (async () => {
17
-
18
- const markets = await exchange.loadMarkets ()
19
-
20
- try {
21
- const code = 'USDT'
22
- const amount = 5
23
-
24
- // fetch withdrawal beneficiary ids
25
- const whiteList = await exchange.privateGetWhitelistCurrency({'currency': code})
26
- log('Withdrawl Whitelist', whiteList)
27
- //
28
- // [
29
- // {
30
- // "whitelistId":"adcd73fb-9ba6-41o7-8c0d-7013482cb88f", // unique id for each beneficiary, to be passed in as address into withdraw ()
31
- // "name":"John Doe",
32
- // "currency":"USDT"
33
- // }
34
- // ]
35
- //
36
-
37
- // withdrawal
38
- let withdrawal = await exchange.withdraw(code, amount, address, undefined);
39
- log('Withdrawal', withdrawal)
40
-
41
- } catch (e) {
42
- if (e instanceof ccxt.DDoSProtection || e.message.includes('ECONNRESET')) {
43
- log('[DDoS Protection] ' + e.message)
44
- } else if (e instanceof ccxt.RequestTimeout) {
45
- log('[Request Timeout] ' + e.message)
46
- } else if (e instanceof ccxt.AuthenticationError) {
47
- log('[Authentication Error] ' + e.message)
48
- } else if (e instanceof ccxt.ExchangeNotAvailable) {
49
- log('[Exchange Not Available Error] ' + e.message)
50
- } else if (e instanceof ccxt.ExchangeError) {
51
- log('[Exchange Error] ' + e.message)
52
- } else if (e instanceof ccxt.NetworkError) {
53
- log('[Network Error] ' + e.message)
54
- } else {
55
- throw e;
56
- }
57
- }
58
-
59
- })()
@@ -1,48 +0,0 @@
1
- import ccxt from '../../js/ccxt.js';
2
- // AUTO-TRANSPILE //
3
- // Bulding OHLCV array from trades (executions) data is a bit tricky. For example, if you want to build 100 ohlcv bars of 1-minute timeframe, then you have to fetch the 100 minutes of trading data. So, higher timeframe bars require more trading data (i.e. building 100 bars of 1-day timeframe OHLCV would require massive amount of trading data, which might not be desirable for user, because of data-usage rate limits)
4
- async function example_with_fetch_trades() {
5
- const exch = new ccxt.binance({});
6
- const timeframe = '1m';
7
- const symbol = 'OGN/USDT';
8
- const since = exch.milliseconds() - 1000 * 60 * 30; // last 30 mins
9
- const limit = 1000;
10
- const trades = await exch.fetchTrades(symbol, since, limit);
11
- const generatedBars = exch.buildOHLCVC(trades, timeframe, since, limit);
12
- // you can ignore 6th index ("count" field) from ohlcv entries, which is not part of OHLCV standard structure and is just added internally by `buildOHLCVC` method
13
- console.log('[REST] Constructed', generatedBars.length, 'bars from trades: ', generatedBars);
14
- }
15
- async function example_with_watch_trades() {
16
- const exch = new ccxt.pro.binance({});
17
- const timeframe = '1m';
18
- const symbol = 'DOGE/USDT';
19
- const limit = 1000;
20
- const since = exch.milliseconds() - 10 * 60 * 1000 * 1000; // last 10 hrs
21
- let collectedTrades = [];
22
- const collectedBars = [];
23
- while (true) {
24
- const wsTrades = await exch.watchTrades(symbol, since, limit, {});
25
- collectedTrades = collectedTrades.concat(wsTrades);
26
- const generatedBars = exch.buildOHLCVC(collectedTrades, timeframe, since, limit);
27
- // Note: first bar would be partially constructed bar and its 'open' & 'high' & 'low' prices (except 'close' price) would probably have different values compared to real bar on chart, because the first obtained trade timestamp might be somewhere in the middle of timeframe period, so the pre-period would be missing because we would not have trades data. To fix that, you can get older data with `fetchTrades` to fill up bars till start bar.
28
- for (let i = 0; i < generatedBars.length; i++) {
29
- const bar = generatedBars[i];
30
- const barTimestamp = bar[0];
31
- const collectedBarsLength = collectedBars.length;
32
- const lastCollectedBarTimestamp = collectedBarsLength > 0 ? collectedBars[collectedBarsLength - 1][0] : 0;
33
- if (barTimestamp === lastCollectedBarTimestamp) {
34
- // if timestamps are same, just updarte the last bar
35
- collectedBars[collectedBarsLength - 1] = bar;
36
- }
37
- else if (barTimestamp > lastCollectedBarTimestamp) {
38
- collectedBars.push(bar);
39
- // remove the trades from saved array, which were till last collected bar's open timestamp
40
- collectedTrades = exch.filterBySinceLimit(collectedTrades, barTimestamp);
41
- }
42
- }
43
- // Note: first bar would carry incomplete values, please read comment in "buildOHLCVCFromWatchTrades" method definition for further explanation
44
- console.log('[WS] Constructed', collectedBars.length, 'bars from', symbol, 'trades: ', collectedBars);
45
- }
46
- }
47
- await example_with_fetch_trades();
48
- await example_with_watch_trades();
@@ -1,25 +0,0 @@
1
-
2
-
3
- import ccxt from '../../js/ccxt.js';
4
- import log from 'ololog';
5
- import { nice as ansi } from 'ansicolor';
6
- import asTable from 'as-table';
7
-
8
- const exchange = new ccxt.coinbasepro ()
9
- const repeat = 100
10
-
11
- async function test (symbol) {
12
-
13
- for (let i = 0; i < repeat; i++) {
14
- let ticker = await exchange.fetchTicker (symbol)
15
- log (exchange.id.green, exchange.iso8601 (exchange.milliseconds ()), ticker['datetime'], symbol.green, ticker['last'])
16
- }
17
- }
18
-
19
- const concurrent = [
20
- test ('BTC/USD'),
21
- test ('ETH/BTC'),
22
- test ('ETH/USD')
23
- ]
24
-
25
- Promise.all (concurrent)