ccxt 4.2.100 → 4.3.1
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.
- package/README.md +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/binance.js +56 -0
- package/dist/cjs/src/bingx.js +2 -2
- package/dist/cjs/src/bitget.js +64 -2
- package/dist/cjs/src/bybit.js +1 -1
- package/dist/cjs/src/coinex.js +55 -60
- package/dist/cjs/src/kraken.js +8 -3
- package/dist/cjs/src/kucoin.js +13 -11
- package/dist/cjs/src/okx.js +76 -5
- package/dist/cjs/src/pro/kraken.js +2 -2
- package/dist/cjs/src/woo.js +40 -0
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/binance.d.ts +3 -1
- package/js/src/binance.js +56 -0
- package/js/src/bingx.js +3 -3
- package/js/src/bitget.d.ts +1 -0
- package/js/src/bitget.js +64 -2
- package/js/src/bybit.js +1 -1
- package/js/src/coinex.js +55 -60
- package/js/src/kraken.js +8 -3
- package/js/src/kucoin.js +13 -11
- package/js/src/okx.d.ts +1 -0
- package/js/src/okx.js +76 -5
- package/js/src/pro/kraken.js +2 -2
- package/js/src/woo.d.ts +1 -0
- package/js/src/woo.js +40 -0
- package/package.json +2 -1
- package/.dockerignore +0 -6
- package/.eslintignore +0 -1
- package/.git-templates/hooks/pre-push +0 -55
- package/.gitattributes +0 -7
- package/CHANGELOG.md +0 -6003
- package/CODEOWNERS +0 -1
- package/CONTRIBUTING.md +0 -1099
- package/build.sh +0 -217
- package/change.sh +0 -18
- package/cleanup.sh +0 -18
- package/composer-install.sh +0 -20
- package/dist/ccxt.browser.js +0 -327256
- package/dist/ccxt.browser.min.js +0 -30
- package/dist/ccxt.browser.min.js.LICENSE.txt +0 -12
- package/doc/FAQ.rst +0 -1
- package/doc/Makefile +0 -20
- package/doc/_static/css/dark.css +0 -101
- package/doc/_static/css/index.css +0 -128
- package/doc/_static/favicon.ico +0 -0
- package/doc/_static/javascript/binance-portal.min.js +0 -2369
- package/doc/_static/javascript/index.js +0 -195
- package/doc/_static/javascript/jquery-ui.min.js +0 -6
- package/doc/ccxt.pro.install.rst +0 -1
- package/doc/ccxt.pro.manual.rst +0 -1665
- package/doc/exchange-markets-by-country.rst +0 -1423
- package/doc/exchange-markets.rst +0 -1441
- package/doc/index.rst +0 -35
- package/doc/install.rst +0 -1
- package/doc/make.bat +0 -36
- package/doc/manual.rst +0 -7471
- package/doc/readme.rst +0 -2191
- package/doc/requirements.txt +0 -6
- package/examples/ccxt.pro/html/watchTicker.html +0 -51
- package/examples/ccxt.pro/js/binance-fetch-balance-snapshot-watch-balance-updates.js +0 -55
- package/examples/ccxt.pro/js/binance-https-proxy.js +0 -48
- package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols-continuously.js +0 -38
- package/examples/ccxt.pro/js/binance-watch-ohlcv-many-symbols.js +0 -64
- package/examples/ccxt.pro/js/binance-watch-ticker-many-symbols.js +0 -62
- package/examples/ccxt.pro/js/build-ohlcv-many-symbols.js +0 -68
- package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades-warmup.js +0 -82
- package/examples/ccxt.pro/js/calculate-ohlcvs-from-trades.js +0 -59
- package/examples/ccxt.pro/js/exchange-capabitities.js +0 -72
- package/examples/ccxt.pro/js/exchange-close.js +0 -46
- package/examples/ccxt.pro/js/gateio-swap-watch-many-orderbooks.js +0 -30
- package/examples/ccxt.pro/js/gateio-watch-balance.js +0 -23
- package/examples/ccxt.pro/js/gateio-watch-order-book.js +0 -71
- package/examples/ccxt.pro/js/graceful-shutdown.js +0 -43
- package/examples/ccxt.pro/js/many-exchanges-many-streams.js +0 -37
- package/examples/ccxt.pro/js/okex-create-futures-order.js +0 -48
- package/examples/ccxt.pro/js/okex-watch-balance-and-create-order.js +0 -54
- package/examples/ccxt.pro/js/okx-watch-tickers.js +0 -31
- package/examples/ccxt.pro/js/one-exchange-many-different-streams.js +0 -46
- package/examples/ccxt.pro/js/one-exchange-many-streams-2.js +0 -26
- package/examples/ccxt.pro/js/one-exchange-many-streams.js +0 -28
- package/examples/ccxt.pro/js/socks-binance-watch-orderbook.js +0 -30
- package/examples/ccxt.pro/js/watch-fetch-many-exchanges-many-ordersbooks.js +0 -40
- package/examples/ccxt.pro/js/watch-many-exchanges-many-ordersbooks.js +0 -38
- package/examples/ccxt.pro/js/watch-many-exchanges-many-symbols.js +0 -40
- package/examples/ccxt.pro/js/watch-many-orderbooks.js +0 -27
- package/examples/ccxt.pro/js/watch-new-trades-only.js +0 -43
- package/examples/ccxt.pro/js/watch-new-trades.js +0 -42
- package/examples/ccxt.pro/js/watch-trades-many-symbols.js +0 -29
- package/examples/ccxt.pro/js/watch-vs-fetch.js +0 -29
- package/examples/cs/Examples.sln +0 -22
- package/examples/cs/c#.csproj +0 -19
- package/examples/html/basic-cors-proxy.html +0 -46
- package/examples/html/basic-inheritance.html +0 -47
- package/examples/html/basic-poller.html +0 -52
- package/examples/html/basic-rate-limiting.html +0 -49
- package/examples/html/basic.html +0 -43
- package/examples/html/binance-cors-proxy.html +0 -28
- package/examples/html/bitmex-browser-cors-proxy.js +0 -7
- package/examples/html/bitmex-cors.html +0 -46
- package/examples/html/tradingview-charts.html +0 -61
- package/examples/html/webworker/index.html +0 -97
- package/examples/html/webworker/worker.js +0 -43
- package/examples/js/advanced-error-handling.js +0 -39
- package/examples/js/aggregate-orderbook.js +0 -54
- package/examples/js/arbitrage-pairs.js +0 -130
- package/examples/js/basic-chart.js +0 -29
- package/examples/js/basic-orderbook-polling.js +0 -13
- package/examples/js/bcc-vs-bch.js +0 -115
- package/examples/js/benchmark.js +0 -104
- package/examples/js/binance-fetch-all-deposits.js +0 -45
- package/examples/js/binance-fetch-ohlcv-many-symbols-async-await.js +0 -34
- package/examples/js/binance-fetch-ohlcv-many-symbols-promise-then-callbacks.js +0 -33
- package/examples/js/binance-fetchTicker-delivery-vs-future.js +0 -31
- package/examples/js/binance-futures-transfer-from-sub-account-to-master.js +0 -41
- package/examples/js/binance-margin-stop-order.js +0 -39
- package/examples/js/binance-server-time.js +0 -34
- package/examples/js/binance-universal-transfer.js +0 -16
- package/examples/js/bitfinex-fetch-trades.js +0 -35
- package/examples/js/bitfinex2-fetch-trades.js +0 -35
- package/examples/js/bitmex-browser-cors-proxy.js +0 -7
- package/examples/js/bitpanda-fetchMyTrades-reduce.js +0 -36
- package/examples/js/bitrue-fetch-balance.js +0 -28
- package/examples/js/bitstamp-private-api.js +0 -115
- package/examples/js/bitstamp-public-api.js +0 -39
- package/examples/js/bittrex-balance.js +0 -50
- package/examples/js/bittrex-fetch-closed-orders-history.js +0 -69
- package/examples/js/blockchaincom-withdrawal.js +0 -59
- package/examples/js/build-ohlcv-bars.js +0 -48
- package/examples/js/builtin-rate-limiting-rest-poller.js +0 -25
- package/examples/js/bybit-trailing.js +0 -62
- package/examples/js/bybit-updated.cjs +0 -154
- package/examples/js/coinbase-fetch-all-balances.js +0 -36
- package/examples/js/coinex-fetch-all-deposit-addresses-using-fetchDepositAddress.js +0 -47
- package/examples/js/coinex-futures.js +0 -75
- package/examples/js/coinone-fetch-tickers.js +0 -54
- package/examples/js/coinone-markets.js +0 -16
- package/examples/js/compare-two-exchanges-capabilities.js +0 -36
- package/examples/js/cors-proxy.js +0 -5
- package/examples/js/create-order-handle-errors.js +0 -55
- package/examples/js/create-order-position-with-takeprofit-stoploss.js +0 -71
- package/examples/js/create-order-with-retry.js +0 -65
- package/examples/js/create-order-ws-example.js +0 -25
- package/examples/js/create-orders-example.js +0 -17
- package/examples/js/create-trailing-amount-order.js +0 -36
- package/examples/js/create-trailing-percent-order.js +0 -36
- package/examples/js/credentials.json +0 -5
- package/examples/js/custom-proxy-agent-for-js.js +0 -10
- package/examples/js/custom-proxy-url.js +0 -23
- package/examples/js/delta-maintenance-margin-rate-max-leverage.js +0 -60
- package/examples/js/env-variables.js +0 -26
- package/examples/js/error-handling.js +0 -89
- package/examples/js/exchange-capabilities.js +0 -135
- package/examples/js/exchanges-by-volume.js +0 -60
- package/examples/js/exchanges.js +0 -40
- package/examples/js/fetch-all-balances.js +0 -219
- package/examples/js/fetch-all-tickers-to-files-2.js +0 -53
- package/examples/js/fetch-all-tickers-to-files.js +0 -77
- package/examples/js/fetch-balance.js +0 -28
- package/examples/js/fetch-create-deposit-address.js +0 -101
- package/examples/js/fetch-from-many-exchanges-simultaneously.js +0 -21
- package/examples/js/fetch-funding-rate-history.js +0 -25
- package/examples/js/fetch-futures/prettier.config.js +0 -5
- package/examples/js/fetch-futures/src/index.js +0 -25
- package/examples/js/fetch-ohlcv-from-to-mark-index-premium.js +0 -72
- package/examples/js/fetch-ohlcv-many-exchanges-continuosly.js +0 -39
- package/examples/js/fetch-ohlcv.js +0 -16
- package/examples/js/fetch-okex-futures.js +0 -22
- package/examples/js/fetch-orders.js +0 -27
- package/examples/js/fetch-ticker-from-multiple-exchanges.js +0 -35
- package/examples/js/fetch-ticker-where-available.js +0 -75
- package/examples/js/fetch-tickers/build/index.js +0 -19
- package/examples/js/fetch-tickers/prettier.config.js +0 -5
- package/examples/js/fetch-tickers/src/index.js +0 -17
- package/examples/js/gateio-create-batch-order.js +0 -43
- package/examples/js/gateio-futures.js +0 -49
- package/examples/js/gateio-open-close-contract.js +0 -49
- package/examples/js/gateio-swaps.js +0 -74
- package/examples/js/gdax-fetch-trades-pagination.js +0 -29
- package/examples/js/hitbtc2-withdraw.js +0 -61
- package/examples/js/how-to-import-one-exchange-esm.js +0 -10
- package/examples/js/huobi-futures.js +0 -71
- package/examples/js/huobi-open-close-contract.js +0 -63
- package/examples/js/huobi-swaps.js +0 -70
- package/examples/js/huobipro-market-buy-sell-fetch-trading-limits.js +0 -98
- package/examples/js/hybridCJSExample.cjs +0 -19
- package/examples/js/hybridESMExample.js +0 -19
- package/examples/js/idex-fetch-balance.js +0 -13
- package/examples/js/instantiate-all-at-once.js +0 -46
- package/examples/js/instantiate-all-from-json.js +0 -31
- package/examples/js/kraken-create-and-close-position.js +0 -54
- package/examples/js/kraken-fetch-order-trades.js +0 -33
- package/examples/js/kraken-margin-trading.js +0 -89
- package/examples/js/kucoin-rate-limit.js +0 -38
- package/examples/js/latoken-example.js +0 -108
- package/examples/js/live-orderbook.js +0 -106
- package/examples/js/live-ticker.js +0 -80
- package/examples/js/live-tickers.js +0 -74
- package/examples/js/load-all-contracts.js +0 -41
- package/examples/js/load-all-symbols-at-once.js +0 -69
- package/examples/js/load-all-tickers-at-once.js +0 -91
- package/examples/js/load-markets-to-files.js +0 -57
- package/examples/js/looping-over-all-symbols-of-specific-exchanges.js +0 -61
- package/examples/js/looping-over-specific-symbols-of-all-exchanges.js +0 -91
- package/examples/js/margin-loan-borrow-buy-sell-repay.js +0 -70
- package/examples/js/market-status-and-currency-status.js +0 -29
- package/examples/js/ohlcv-console-chart.js +0 -29
- package/examples/js/okex-fetch-closed-orders-archive.js +0 -31
- package/examples/js/okex-transfer.js +0 -51
- package/examples/js/okx-poll-fetch-my-trades.js +0 -37
- package/examples/js/okx-poll-rate-limit.js +0 -48
- package/examples/js/order-book-extra-level-depth-param.js +0 -20
- package/examples/js/phemex-create-order-position-with-takeprofit-stoploss.js +0 -49
- package/examples/js/poll-ohlcv.js +0 -43
- package/examples/js/poloniex-fetch-order-books.js +0 -35
- package/examples/js/poloniex-limits-amount-min.js +0 -62
- package/examples/js/proxy-round-robin.js +0 -98
- package/examples/js/proxy-usage.js +0 -32
- package/examples/js/sample-local-proxy-server-with-cors.js +0 -12
- package/examples/js/search-all-exchanges.js +0 -159
- package/examples/js/shared-load-markets.js +0 -80
- package/examples/js/sort-swap-markets-by-hourly-price-change.js +0 -55
- package/examples/js/symbols.js +0 -110
- package/examples/js/theocean.js +0 -41
- package/examples/js/tickers.js +0 -106
- package/examples/js/validate-paginated-data.js +0 -61
- package/examples/js/watch-OHLCV-For-Symbols.js +0 -15
- package/examples/js/watch-OHLCV.js +0 -12
- package/examples/js/watch-OrderBook-For-Symbols.js +0 -11
- package/examples/js/watch-Trades-For-Symbols.js +0 -11
- package/examples/js/watch-tickers.js +0 -11
- package/examples/js/watchOHLCVForSymbols.js +0 -15
- package/examples/js/watchOrderBookForSymbols.js +0 -11
- package/examples/js/watchPositions-many-exchanges-continuosly.d.ts +0 -2
- package/examples/js/watchPositions-many-exchanges-continuosly.d.ts.map +0 -1
- package/examples/js/watchPositions-many-exchanges-continuosly.js +0 -49
- package/examples/js/watchPositions.d.ts +0 -2
- package/examples/js/watchPositions.d.ts.map +0 -1
- package/examples/js/watchPositions.js +0 -13
- package/examples/js/watchPositionsForSymbols.d.ts +0 -2
- package/examples/js/watchPositionsForSymbols.d.ts.map +0 -1
- package/examples/js/watchPositionsForSymbols.js +0 -14
- package/examples/js/watchTradesForSymbols.js +0 -11
- package/examples/js/withdraw-from-one-exchange-to-another.js +0 -50
- package/examples/php/README.md +0 -7
- package/examples/py/README.md +0 -15
- package/examples/py/playing_with_ccxt_example.ipynb +0 -222
- package/examples/ts/.eslintrc +0 -111
- package/examples/ts/benchmark.ts +0 -134
- package/examples/ts/build-ohlcv-bars.ts +0 -53
- package/examples/ts/cli.ts +0 -397
- package/examples/ts/compare-two-exchanges-capabilities.ts +0 -36
- package/examples/ts/create-order-position-with-takeprofit-stoploss.ts +0 -89
- package/examples/ts/create-order-ws-example.ts +0 -33
- package/examples/ts/create-orders-example.ts +0 -21
- package/examples/ts/create-trailing-amount-order.ts +0 -37
- package/examples/ts/create-trailing-percent-order.ts +0 -37
- package/examples/ts/custom-proxy-agent-for-js.ts +0 -14
- package/examples/ts/fetch-futures/package-lock.json +0 -116
- package/examples/ts/fetch-futures/package.json +0 -34
- package/examples/ts/fetch-futures/prettier.config.js +0 -4
- package/examples/ts/fetch-futures/src/index.ts +0 -28
- package/examples/ts/fetch-futures/tsconfig.json +0 -28
- package/examples/ts/fetch-ohlcv-many-exchanges-continuosly.ts +0 -44
- package/examples/ts/fetch-ohlcv.ts +0 -17
- package/examples/ts/fetch-tickers/package-lock.json +0 -116
- package/examples/ts/fetch-tickers/package.json +0 -34
- package/examples/ts/fetch-tickers/prettier.config.js +0 -4
- package/examples/ts/fetch-tickers/src/index.ts +0 -21
- package/examples/ts/fetch-tickers/tsconfig.json +0 -28
- package/examples/ts/how-to-import-one-exchange-esm.ts +0 -11
- package/examples/ts/kraken-create-and-close-position.ts +0 -69
- package/examples/ts/margin-loan-borrow-buy-sell-repay.ts +0 -72
- package/examples/ts/nextjs-page-router/.eslintrc.json +0 -3
- package/examples/ts/nextjs-page-router/README.md +0 -43
- package/examples/ts/nextjs-page-router/next.config.js +0 -6
- package/examples/ts/nextjs-page-router/package-lock.json +0 -7425
- package/examples/ts/nextjs-page-router/package.json +0 -28
- package/examples/ts/nextjs-page-router/postcss.config.js +0 -6
- package/examples/ts/nextjs-page-router/public/favicon.ico +0 -0
- package/examples/ts/nextjs-page-router/src/pages/_app.tsx +0 -6
- package/examples/ts/nextjs-page-router/src/pages/_document.tsx +0 -13
- package/examples/ts/nextjs-page-router/src/pages/balance.tsx +0 -46
- package/examples/ts/nextjs-page-router/src/pages/index.tsx +0 -8
- package/examples/ts/nextjs-page-router/src/pages/tickers.tsx +0 -61
- package/examples/ts/nextjs-page-router/src/styles/globals.css +0 -27
- package/examples/ts/nextjs-page-router/tailwind.config.ts +0 -20
- package/examples/ts/nextjs-page-router/tsconfig.json +0 -22
- package/examples/ts/phemex-create-order-position-with-takeprofit-stoploss.ts +0 -62
- package/examples/ts/proxy-usage.ts +0 -41
- package/examples/ts/sample-local-proxy-server-with-cors.ts +0 -15
- package/examples/ts/watch-OHLCV-For-Symbols.ts +0 -17
- package/examples/ts/watch-OHLCV.ts +0 -14
- package/examples/ts/watch-OrderBook-For-Symbols.ts +0 -13
- package/examples/ts/watch-Trades-For-Symbols.ts +0 -13
- package/examples/ts/watch-tickers.ts +0 -13
- package/examples/ts/watchPositions-many-exchanges-continuosly.ts +0 -53
- package/examples/ts/watchPositions.ts +0 -15
- package/examples/ts/watchPositionsForSymbols.ts +0 -16
- package/examples/tsconfig.json +0 -27
- package/examples2md.js +0 -79
- package/gource.sh +0 -3
- package/index.html +0 -7
- package/jsdoc2md.js +0 -122
- package/multilang.sh +0 -164
- package/pro-tests.json +0 -57
- package/pyproject.toml +0 -8
- package/rollup.config.js +0 -60
- package/skip-tests.json +0 -1653
- package/test-commonjs.cjs +0 -65
- package/tests-manager.sh +0 -96
- package/tsconfig.json +0 -111
- package/webpack.config.js +0 -46
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
|
|
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
|
-
|
|
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
|
|
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['
|
|
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://
|
|
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://
|
|
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://
|
|
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://
|
|
3366
|
-
* @see https://
|
|
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://
|
|
3450
|
-
* @see https://
|
|
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://
|
|
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://
|
|
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
|
-
|
|
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.
|
|
7764
|
+
'id': this.safeStringN(conversion, ['clQReqId', 'tradeId', 'quoteId']),
|
|
7694
7765
|
'fromCurrency': fromCode,
|
|
7695
|
-
'fromAmount': this.
|
|
7766
|
+
'fromAmount': this.safeNumber2(conversion, 'baseSz', 'fillBaseSz'),
|
|
7696
7767
|
'toCurrency': toCode,
|
|
7697
|
-
'toAmount': this.
|
|
7698
|
-
'price': this.
|
|
7768
|
+
'toAmount': this.safeNumber2(conversion, 'quoteSz', 'fillQuoteSz'),
|
|
7769
|
+
'price': this.safeNumber2(conversion, 'cnvtPx', 'fillPx'),
|
|
7699
7770
|
'fee': undefined,
|
|
7700
7771
|
};
|
|
7701
7772
|
}
|
package/js/src/pro/kraken.js
CHANGED
|
@@ -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
|
|
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
|
|
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 = {}) {
|
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.
|
|
3
|
+
"version": "4.3.1",
|
|
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
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