ccxt 4.2.10 → 4.2.12
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 +5 -5
- package/build.sh +4 -4
- package/dist/ccxt.browser.js +695 -282
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/_virtual/agent.js +7 -0
- package/dist/cjs/_virtual/parse-proxy-response.js +7 -0
- package/dist/cjs/_virtual/promisify.js +7 -0
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/js/ccxt.js +474 -0
- package/dist/cjs/js/src/abstract/ace.js +9 -0
- package/dist/cjs/js/src/abstract/alpaca.js +9 -0
- package/dist/cjs/js/src/abstract/ascendex.js +9 -0
- package/dist/cjs/js/src/abstract/bigone.js +9 -0
- package/dist/cjs/js/src/abstract/binance.js +9 -0
- package/dist/cjs/js/src/abstract/bingx.js +9 -0
- package/dist/cjs/js/src/abstract/bit2c.js +9 -0
- package/dist/cjs/js/src/abstract/bitbank.js +9 -0
- package/dist/cjs/js/src/abstract/bitbns.js +9 -0
- package/dist/cjs/js/src/abstract/bitfinex.js +9 -0
- package/dist/cjs/js/src/abstract/bitfinex2.js +9 -0
- package/dist/cjs/js/src/abstract/bitflyer.js +9 -0
- package/dist/cjs/js/src/abstract/bitforex.js +9 -0
- package/dist/cjs/js/src/abstract/bitget.js +9 -0
- package/dist/cjs/js/src/abstract/bithumb.js +9 -0
- package/dist/cjs/js/src/abstract/bitmart.js +9 -0
- package/dist/cjs/js/src/abstract/bitmex.js +9 -0
- package/dist/cjs/js/src/abstract/bitopro.js +9 -0
- package/dist/cjs/js/src/abstract/bitpanda.js +9 -0
- package/dist/cjs/js/src/abstract/bitrue.js +9 -0
- package/dist/cjs/js/src/abstract/bitso.js +9 -0
- package/dist/cjs/js/src/abstract/bitstamp.js +9 -0
- package/dist/cjs/js/src/abstract/bitteam.js +9 -0
- package/dist/cjs/js/src/abstract/bitvavo.js +9 -0
- package/dist/cjs/js/src/abstract/bl3p.js +9 -0
- package/dist/cjs/js/src/abstract/blockchaincom.js +9 -0
- package/dist/cjs/js/src/abstract/btcalpha.js +9 -0
- package/dist/cjs/js/src/abstract/btcbox.js +9 -0
- package/dist/cjs/js/src/abstract/btcmarkets.js +9 -0
- package/dist/cjs/js/src/abstract/btcturk.js +9 -0
- package/dist/cjs/js/src/abstract/bybit.js +9 -0
- package/dist/cjs/js/src/abstract/cex.js +9 -0
- package/dist/cjs/js/src/abstract/coinbase.js +9 -0
- package/dist/cjs/js/src/abstract/coinbasepro.js +9 -0
- package/dist/cjs/js/src/abstract/coincheck.js +9 -0
- package/dist/cjs/js/src/abstract/coinex.js +9 -0
- package/dist/cjs/js/src/abstract/coinlist.js +9 -0
- package/dist/cjs/js/src/abstract/coinmate.js +9 -0
- package/dist/cjs/js/src/abstract/coinone.js +9 -0
- package/dist/cjs/js/src/abstract/coinsph.js +9 -0
- package/dist/cjs/js/src/abstract/coinspot.js +9 -0
- package/dist/cjs/js/src/abstract/cryptocom.js +9 -0
- package/dist/cjs/js/src/abstract/currencycom.js +9 -0
- package/dist/cjs/js/src/abstract/delta.js +9 -0
- package/dist/cjs/js/src/abstract/deribit.js +9 -0
- package/dist/cjs/js/src/abstract/digifinex.js +9 -0
- package/dist/cjs/js/src/abstract/exmo.js +9 -0
- package/dist/cjs/js/src/abstract/gate.js +9 -0
- package/dist/cjs/js/src/abstract/gemini.js +9 -0
- package/dist/cjs/js/src/abstract/hitbtc.js +9 -0
- package/dist/cjs/js/src/abstract/hollaex.js +9 -0
- package/dist/cjs/js/src/abstract/htx.js +9 -0
- package/dist/cjs/js/src/abstract/huobijp.js +9 -0
- package/dist/cjs/js/src/abstract/idex.js +9 -0
- package/dist/cjs/js/src/abstract/independentreserve.js +9 -0
- package/dist/cjs/js/src/abstract/indodax.js +9 -0
- package/dist/cjs/js/src/abstract/kraken.js +9 -0
- package/dist/cjs/js/src/abstract/krakenfutures.js +9 -0
- package/dist/cjs/js/src/abstract/kucoin.js +9 -0
- package/dist/cjs/js/src/abstract/kucoinfutures.js +9 -0
- package/dist/cjs/js/src/abstract/kuna.js +9 -0
- package/dist/cjs/js/src/abstract/latoken.js +9 -0
- package/dist/cjs/js/src/abstract/lbank.js +9 -0
- package/dist/cjs/js/src/abstract/luno.js +9 -0
- package/dist/cjs/js/src/abstract/lykke.js +9 -0
- package/dist/cjs/js/src/abstract/mercado.js +9 -0
- package/dist/cjs/js/src/abstract/mexc.js +9 -0
- package/dist/cjs/js/src/abstract/ndax.js +9 -0
- package/dist/cjs/js/src/abstract/novadax.js +9 -0
- package/dist/cjs/js/src/abstract/oceanex.js +9 -0
- package/dist/cjs/js/src/abstract/okcoin.js +9 -0
- package/dist/cjs/js/src/abstract/okx.js +9 -0
- package/dist/cjs/js/src/abstract/p2b.js +9 -0
- package/dist/cjs/js/src/abstract/paymium.js +9 -0
- package/dist/cjs/js/src/abstract/phemex.js +9 -0
- package/dist/cjs/js/src/abstract/poloniex.js +9 -0
- package/dist/cjs/js/src/abstract/poloniexfutures.js +9 -0
- package/dist/cjs/js/src/abstract/probit.js +9 -0
- package/dist/cjs/js/src/abstract/timex.js +9 -0
- package/dist/cjs/js/src/abstract/tokocrypto.js +9 -0
- package/dist/cjs/js/src/abstract/upbit.js +9 -0
- package/dist/cjs/js/src/abstract/wavesexchange.js +9 -0
- package/dist/cjs/js/src/abstract/wazirx.js +9 -0
- package/dist/cjs/js/src/abstract/whitebit.js +9 -0
- package/dist/cjs/js/src/abstract/woo.js +9 -0
- package/dist/cjs/js/src/abstract/yobit.js +9 -0
- package/dist/cjs/js/src/abstract/zaif.js +9 -0
- package/dist/cjs/js/src/abstract/zonda.js +9 -0
- package/dist/cjs/js/src/ace.js +1058 -0
- package/dist/cjs/js/src/alpaca.js +1125 -0
- package/dist/cjs/js/src/ascendex.js +3360 -0
- package/dist/cjs/js/src/base/Exchange.js +5110 -0
- package/dist/cjs/js/src/base/Precise.js +263 -0
- package/dist/cjs/js/src/base/errors.js +299 -0
- package/dist/cjs/js/src/base/functions/crypto.js +78 -0
- package/dist/cjs/js/src/base/functions/encode.js +44 -0
- package/dist/cjs/js/src/base/functions/generic.js +193 -0
- package/dist/cjs/js/src/base/functions/misc.js +96 -0
- package/dist/cjs/js/src/base/functions/number.js +297 -0
- package/dist/cjs/js/src/base/functions/platform.js +28 -0
- package/dist/cjs/js/src/base/functions/rsa.js +34 -0
- package/dist/cjs/js/src/base/functions/string.js +48 -0
- package/dist/cjs/js/src/base/functions/throttle.js +66 -0
- package/dist/cjs/js/src/base/functions/time.js +187 -0
- package/dist/cjs/js/src/base/functions/totp.js +24 -0
- package/dist/cjs/js/src/base/functions/type.js +162 -0
- package/dist/cjs/js/src/base/functions.js +157 -0
- package/dist/cjs/js/src/base/ws/Cache.js +254 -0
- package/dist/cjs/js/src/base/ws/Client.js +299 -0
- package/dist/cjs/js/src/base/ws/Future.js +34 -0
- package/dist/cjs/js/src/base/ws/OrderBook.js +107 -0
- package/dist/cjs/js/src/base/ws/OrderBookSide.js +281 -0
- package/dist/cjs/js/src/base/ws/WsClient.js +69 -0
- package/dist/cjs/js/src/bequant.js +33 -0
- package/dist/cjs/js/src/bigone.js +2142 -0
- package/dist/cjs/js/src/binance.js +9729 -0
- package/dist/cjs/js/src/binancecoinm.js +45 -0
- package/dist/cjs/js/src/binanceus.js +84 -0
- package/dist/cjs/js/src/binanceusdm.js +58 -0
- package/dist/cjs/js/src/bingx.js +3737 -0
- package/dist/cjs/js/src/bit2c.js +916 -0
- package/dist/cjs/js/src/bitbank.js +1000 -0
- package/dist/cjs/js/src/bitbay.js +17 -0
- package/dist/cjs/js/src/bitbns.js +1220 -0
- package/dist/cjs/js/src/bitcoincom.js +17 -0
- package/dist/cjs/js/src/bitfinex.js +1670 -0
- package/dist/cjs/js/src/bitfinex2.js +2990 -0
- package/dist/cjs/js/src/bitflyer.js +1045 -0
- package/dist/cjs/js/src/bitforex.js +852 -0
- package/dist/cjs/js/src/bitget.js +8284 -0
- package/dist/cjs/js/src/bithumb.js +1090 -0
- package/dist/cjs/js/src/bitmart.js +4454 -0
- package/dist/cjs/js/src/bitmex.js +2884 -0
- package/dist/cjs/js/src/bitopro.js +1724 -0
- package/dist/cjs/js/src/bitpanda.js +2002 -0
- package/dist/cjs/js/src/bitrue.js +3253 -0
- package/dist/cjs/js/src/bitso.js +1753 -0
- package/dist/cjs/js/src/bitstamp.js +2188 -0
- package/dist/cjs/js/src/bitteam.js +2309 -0
- package/dist/cjs/js/src/bitvavo.js +1968 -0
- package/dist/cjs/js/src/bl3p.js +447 -0
- package/dist/cjs/js/src/blockchaincom.js +1160 -0
- package/dist/cjs/js/src/btcalpha.js +929 -0
- package/dist/cjs/js/src/btcbox.js +565 -0
- package/dist/cjs/js/src/btcmarkets.js +1237 -0
- package/dist/cjs/js/src/btcturk.js +929 -0
- package/dist/cjs/js/src/bybit.js +7646 -0
- package/dist/cjs/js/src/cex.js +1693 -0
- package/dist/cjs/js/src/coinbase.js +3274 -0
- package/dist/cjs/js/src/coinbasepro.js +1866 -0
- package/dist/cjs/js/src/coincheck.js +843 -0
- package/dist/cjs/js/src/coinex.js +5414 -0
- package/dist/cjs/js/src/coinlist.js +2329 -0
- package/dist/cjs/js/src/coinmate.js +989 -0
- package/dist/cjs/js/src/coinone.js +1185 -0
- package/dist/cjs/js/src/coinsph.js +1933 -0
- package/dist/cjs/js/src/coinspot.js +548 -0
- package/dist/cjs/js/src/cryptocom.js +3007 -0
- package/dist/cjs/js/src/currencycom.js +2015 -0
- package/dist/cjs/js/src/delta.js +3256 -0
- package/dist/cjs/js/src/deribit.js +3306 -0
- package/dist/cjs/js/src/digifinex.js +4307 -0
- package/dist/cjs/js/src/exmo.js +2645 -0
- package/dist/cjs/js/src/fmfwio.js +34 -0
- package/dist/cjs/js/src/gate.js +7054 -0
- package/dist/cjs/js/src/gateio.js +16 -0
- package/dist/cjs/js/src/gemini.js +1801 -0
- package/dist/cjs/js/src/hitbtc.js +3660 -0
- package/dist/cjs/js/src/hitbtc3.js +19 -0
- package/dist/cjs/js/src/hollaex.js +1882 -0
- package/dist/cjs/js/src/htx.js +9024 -0
- package/dist/cjs/js/src/huobi.js +16 -0
- package/dist/cjs/js/src/huobijp.js +1918 -0
- package/dist/cjs/js/src/idex.js +1770 -0
- package/dist/cjs/js/src/independentreserve.js +759 -0
- package/dist/cjs/js/src/indodax.js +1069 -0
- package/dist/cjs/js/src/kraken.js +2861 -0
- package/dist/cjs/js/src/krakenfutures.js +2407 -0
- package/dist/cjs/js/src/kucoin.js +4489 -0
- package/dist/cjs/js/src/kucoinfutures.js +2475 -0
- package/dist/cjs/js/src/kuna.js +1949 -0
- package/dist/cjs/js/src/latoken.js +1729 -0
- package/dist/cjs/js/src/lbank.js +2825 -0
- package/dist/cjs/js/src/luno.js +1044 -0
- package/dist/cjs/js/src/lykke.js +1303 -0
- package/dist/cjs/js/src/mercado.js +897 -0
- package/dist/cjs/js/src/mexc.js +5407 -0
- package/dist/cjs/js/src/ndax.js +2450 -0
- package/dist/cjs/js/src/novadax.js +1556 -0
- package/dist/cjs/js/src/oceanex.js +964 -0
- package/dist/cjs/js/src/okcoin.js +3115 -0
- package/dist/cjs/js/src/okx.js +7329 -0
- package/dist/cjs/js/src/p2b.js +1243 -0
- package/dist/cjs/js/src/paymium.js +597 -0
- package/dist/cjs/js/src/phemex.js +4715 -0
- package/dist/cjs/js/src/poloniex.js +2356 -0
- package/dist/cjs/js/src/poloniexfutures.js +1794 -0
- package/dist/cjs/js/src/pro/alpaca.js +714 -0
- package/dist/cjs/js/src/pro/ascendex.js +957 -0
- package/dist/cjs/js/src/pro/bequant.js +33 -0
- package/dist/cjs/js/src/pro/binance.js +2796 -0
- package/dist/cjs/js/src/pro/binancecoinm.js +23 -0
- package/dist/cjs/js/src/pro/binanceus.js +51 -0
- package/dist/cjs/js/src/pro/binanceusdm.js +32 -0
- package/dist/cjs/js/src/pro/bingx.js +944 -0
- package/dist/cjs/js/src/pro/bitcoincom.js +29 -0
- package/dist/cjs/js/src/pro/bitfinex.js +672 -0
- package/dist/cjs/js/src/pro/bitfinex2.js +1159 -0
- package/dist/cjs/js/src/pro/bitget.js +1733 -0
- package/dist/cjs/js/src/pro/bitmart.js +1486 -0
- package/dist/cjs/js/src/pro/bitmex.js +1576 -0
- package/dist/cjs/js/src/pro/bitopro.js +327 -0
- package/dist/cjs/js/src/pro/bitpanda.js +1341 -0
- package/dist/cjs/js/src/pro/bitrue.js +462 -0
- package/dist/cjs/js/src/pro/bitstamp.js +547 -0
- package/dist/cjs/js/src/pro/bitvavo.js +704 -0
- package/dist/cjs/js/src/pro/blockchaincom.js +794 -0
- package/dist/cjs/js/src/pro/bybit.js +1843 -0
- package/dist/cjs/js/src/pro/cex.js +1510 -0
- package/dist/cjs/js/src/pro/coinbase.js +561 -0
- package/dist/cjs/js/src/pro/coinbasepro.js +968 -0
- package/dist/cjs/js/src/pro/coinex.js +1095 -0
- package/dist/cjs/js/src/pro/cryptocom.js +1020 -0
- package/dist/cjs/js/src/pro/currencycom.js +563 -0
- package/dist/cjs/js/src/pro/deribit.js +825 -0
- package/dist/cjs/js/src/pro/exmo.js +658 -0
- package/dist/cjs/js/src/pro/gate.js +1316 -0
- package/dist/cjs/js/src/pro/gateio.js +16 -0
- package/dist/cjs/js/src/pro/gemini.js +649 -0
- package/dist/cjs/js/src/pro/hitbtc.js +1293 -0
- package/dist/cjs/js/src/pro/hollaex.js +597 -0
- package/dist/cjs/js/src/pro/htx.js +2383 -0
- package/dist/cjs/js/src/pro/huobi.js +16 -0
- package/dist/cjs/js/src/pro/huobijp.js +606 -0
- package/dist/cjs/js/src/pro/idex.js +714 -0
- package/dist/cjs/js/src/pro/independentreserve.js +280 -0
- package/dist/cjs/js/src/pro/kraken.js +1364 -0
- package/dist/cjs/js/src/pro/krakenfutures.js +1500 -0
- package/dist/cjs/js/src/pro/kucoin.js +1052 -0
- package/dist/cjs/js/src/pro/kucoinfutures.js +981 -0
- package/dist/cjs/js/src/pro/luno.js +322 -0
- package/dist/cjs/js/src/pro/mexc.js +1170 -0
- package/dist/cjs/js/src/pro/ndax.js +545 -0
- package/dist/cjs/js/src/pro/okcoin.js +760 -0
- package/dist/cjs/js/src/pro/okx.js +1558 -0
- package/dist/cjs/js/src/pro/phemex.js +1511 -0
- package/dist/cjs/js/src/pro/poloniex.js +1253 -0
- package/dist/cjs/js/src/pro/poloniexfutures.js +1014 -0
- package/dist/cjs/js/src/pro/probit.js +586 -0
- package/dist/cjs/js/src/pro/upbit.js +234 -0
- package/dist/cjs/js/src/pro/wazirx.js +776 -0
- package/dist/cjs/js/src/pro/whitebit.js +927 -0
- package/dist/cjs/js/src/pro/woo.js +769 -0
- package/dist/cjs/js/src/probit.js +1865 -0
- package/dist/cjs/js/src/static_dependencies/fflake/browser.js +401 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncrypt.js +195 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +308 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +554 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +16 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1760 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +52 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +81 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +376 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +70 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1580 -0
- package/dist/cjs/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +74 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/_shortw_utils.js +24 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/curve.js +158 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/edwards.js +429 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +176 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/modular.js +324 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/montgomery.js +163 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/utils.js +245 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +1018 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/ed25519.js +383 -0
- package/dist/cjs/js/src/static_dependencies/noble-curves/secp256k1.js +258 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/_assert.js +53 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/_sha2.js +120 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/_u64.js +69 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/crypto.js +7 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/hmac.js +83 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/md5.js +240 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/sha1.js +91 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/sha256.js +130 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/sha3.js +214 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/sha512.js +239 -0
- package/dist/cjs/js/src/static_dependencies/noble-hashes/utils.js +93 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/body.js +354 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/errors/abort-error.js +16 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/errors/base.js +20 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/errors/fetch-error.js +30 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/headers.js +239 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/index.js +372 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/request.js +273 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/response.js +139 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/utils/get-search.js +14 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is-redirect.js +16 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/utils/is.js +81 -0
- package/dist/cjs/js/src/static_dependencies/node-fetch/utils/referrer.js +292 -0
- package/dist/cjs/js/src/static_dependencies/proxies/agent-base/index.js +103 -0
- package/dist/cjs/js/src/static_dependencies/proxies/http-proxy-agent/index.js +140 -0
- package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/index.js +175 -0
- package/dist/cjs/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
- package/dist/cjs/js/src/static_dependencies/qs/index.cjs.js +7 -0
- package/dist/cjs/js/src/static_dependencies/scure-base/index.js +383 -0
- package/dist/cjs/js/src/timex.js +1562 -0
- package/dist/cjs/js/src/tokocrypto.js +2542 -0
- package/dist/cjs/js/src/upbit.js +1844 -0
- package/dist/cjs/js/src/wavesexchange.js +2607 -0
- package/dist/cjs/js/src/wazirx.js +953 -0
- package/dist/cjs/js/src/whitebit.js +2309 -0
- package/dist/cjs/js/src/woo.js +2715 -0
- package/dist/cjs/js/src/yobit.js +1314 -0
- package/dist/cjs/js/src/zaif.js +736 -0
- package/dist/cjs/js/src/zonda.js +1883 -0
- package/dist/cjs/src/base/Exchange.js +11 -0
- package/dist/cjs/src/bingx.js +0 -10
- package/dist/cjs/src/bitget.js +14 -5
- package/dist/cjs/src/bybit.js +1 -1
- package/dist/cjs/src/kucoin.js +29 -5
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bigone.d.ts +18 -0
- package/js/src/abstract/binance.d.ts +2 -0
- package/js/src/abstract/binancecoinm.d.ts +2 -0
- package/js/src/abstract/binanceus.d.ts +2 -0
- package/js/src/abstract/binanceusdm.d.ts +2 -0
- package/js/src/abstract/bybit.d.ts +1 -0
- package/js/src/abstract/gate.d.ts +11 -0
- package/js/src/abstract/gateio.d.ts +11 -0
- package/js/src/alpaca.js +18 -18
- package/js/src/base/Exchange.d.ts +6 -1
- package/js/src/base/Exchange.js +112 -12
- package/js/src/bigone.d.ts +1 -2
- package/js/src/bigone.js +340 -145
- package/js/src/binance.js +15 -8
- package/js/src/bingx.d.ts +0 -1
- package/js/src/bingx.js +9 -12
- package/js/src/bitfinex.d.ts +2 -2
- package/js/src/bitfinex.js +2 -3
- package/js/src/bitget.js +35 -13
- package/js/src/bitmart.d.ts +2 -2
- package/js/src/bitmart.js +3 -3
- package/js/src/bitmex.js +1 -0
- package/js/src/bybit.js +3 -1
- package/js/src/coinlist.js +2 -3
- package/js/src/coinsph.js +2 -3
- package/js/src/deribit.js +1 -0
- package/js/src/gate.d.ts +4 -4
- package/js/src/gate.js +22 -3
- package/js/src/hitbtc.d.ts +4 -4
- package/js/src/hitbtc.js +2 -3
- package/js/src/htx.js +4 -7
- package/js/src/huobijp.js +2 -3
- package/js/src/kraken.js +1 -0
- package/js/src/kucoin.js +29 -5
- package/js/src/mexc.js +2 -1
- package/js/src/okx.js +13 -3
- package/js/src/pro/binance.d.ts +2 -23
- package/js/src/pro/binance.js +58 -22
- package/js/src/pro/coinbase.d.ts +2 -2
- package/js/src/pro/coinbase.js +4 -1
- package/js/src/pro/coinbasepro.d.ts +2 -2
- package/js/src/pro/hitbtc.d.ts +2 -2
- package/js/src/pro/poloniex.d.ts +2 -2
- package/js/src/upbit.d.ts +3 -101
- package/js/src/upbit.js +12 -12
- package/js/src/woo.js +2 -0
- package/package.json +11 -11
- package/skip-tests.json +5 -0
- package/tests-manager.sh +2 -2
package/js/src/kucoin.js
CHANGED
|
@@ -3448,10 +3448,12 @@ export default class kucoin extends Exchange {
|
|
|
3448
3448
|
* @name kucoin#fetchBalance
|
|
3449
3449
|
* @description query for balance and get the amount of funds available for trading or funds locked in orders
|
|
3450
3450
|
* @see https://docs.kucoin.com/#list-accounts
|
|
3451
|
+
* @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-list-spot-margin-trade_hf
|
|
3451
3452
|
* @see https://docs.kucoin.com/#query-isolated-margin-account-info
|
|
3452
3453
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3453
3454
|
* @param {object} [params.marginMode] 'cross' or 'isolated', margin type for fetching margin balance
|
|
3454
3455
|
* @param {object} [params.type] extra parameters specific to the exchange API endpoint
|
|
3456
|
+
* @param {object} [params.hf] *default if false* if true, the result includes the balance of the high frequency account
|
|
3455
3457
|
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
|
|
3456
3458
|
*/
|
|
3457
3459
|
await this.loadMarkets();
|
|
@@ -3463,8 +3465,13 @@ export default class kucoin extends Exchange {
|
|
|
3463
3465
|
const defaultType = this.safeString2(this.options, 'fetchBalance', 'defaultType', 'spot');
|
|
3464
3466
|
const requestedType = this.safeString(params, 'type', defaultType);
|
|
3465
3467
|
const accountsByType = this.safeValue(this.options, 'accountsByType');
|
|
3466
|
-
|
|
3468
|
+
let type = this.safeString(accountsByType, requestedType, requestedType);
|
|
3467
3469
|
params = this.omit(params, 'type');
|
|
3470
|
+
const isHf = this.safeValue(params, 'hf', false);
|
|
3471
|
+
if (isHf) {
|
|
3472
|
+
type = 'trade_hf';
|
|
3473
|
+
}
|
|
3474
|
+
params = this.omit(params, 'hf');
|
|
3468
3475
|
const [marginMode, query] = this.handleMarginModeAndParams('fetchBalance', params);
|
|
3469
3476
|
let response = undefined;
|
|
3470
3477
|
const request = {};
|
|
@@ -3546,7 +3553,7 @@ export default class kucoin extends Exchange {
|
|
|
3546
3553
|
'datetime': undefined,
|
|
3547
3554
|
};
|
|
3548
3555
|
if (isolated) {
|
|
3549
|
-
const assets = this.safeValue(data, 'assets',
|
|
3556
|
+
const assets = this.safeValue(data, 'assets', data);
|
|
3550
3557
|
for (let i = 0; i < assets.length; i++) {
|
|
3551
3558
|
const entry = assets[i];
|
|
3552
3559
|
const marketId = this.safeString(entry, 'symbol');
|
|
@@ -3877,12 +3884,14 @@ export default class kucoin extends Exchange {
|
|
|
3877
3884
|
* @method
|
|
3878
3885
|
* @name kucoin#fetchLedger
|
|
3879
3886
|
* @see https://docs.kucoin.com/#get-account-ledgers
|
|
3887
|
+
* @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-trade_hf
|
|
3888
|
+
* @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-ledgers-margin_hf
|
|
3880
3889
|
* @description fetch the history of changes, actions done by the user or operations that altered balance of the user
|
|
3881
|
-
* @see https://docs.kucoin.com/#get-account-ledgers
|
|
3882
3890
|
* @param {string} code unified currency code, default is undefined
|
|
3883
3891
|
* @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
|
|
3884
3892
|
* @param {int} [limit] max number of ledger entrys to return, default is undefined
|
|
3885
3893
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3894
|
+
* @param {boolean} [params.hf] default false, when true will fetch ledger entries for the high frequency trading account
|
|
3886
3895
|
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
3887
3896
|
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
3888
3897
|
* @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
|
|
@@ -3891,6 +3900,8 @@ export default class kucoin extends Exchange {
|
|
|
3891
3900
|
await this.loadAccounts();
|
|
3892
3901
|
let paginate = false;
|
|
3893
3902
|
[paginate, params] = this.handleOptionAndParams(params, 'fetchLedger', 'paginate');
|
|
3903
|
+
const isHf = this.safeValue(params, 'hf');
|
|
3904
|
+
params = this.omit(params, 'hf');
|
|
3894
3905
|
if (paginate) {
|
|
3895
3906
|
return await this.fetchPaginatedCallDynamic('fetchLedger', code, since, limit, params);
|
|
3896
3907
|
}
|
|
@@ -3911,7 +3922,20 @@ export default class kucoin extends Exchange {
|
|
|
3911
3922
|
request['currency'] = currency['id'];
|
|
3912
3923
|
}
|
|
3913
3924
|
[request, params] = this.handleUntilOption('endAt', request, params);
|
|
3914
|
-
|
|
3925
|
+
let marginMode = undefined;
|
|
3926
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchLedger', params);
|
|
3927
|
+
let response = undefined;
|
|
3928
|
+
if (isHf) {
|
|
3929
|
+
if (marginMode !== undefined) {
|
|
3930
|
+
response = await this.privateGetHfMarginAccountLedgers(this.extend(request, params));
|
|
3931
|
+
}
|
|
3932
|
+
else {
|
|
3933
|
+
response = await this.privateGetHfAccountsLedgers(this.extend(request, params));
|
|
3934
|
+
}
|
|
3935
|
+
}
|
|
3936
|
+
else {
|
|
3937
|
+
response = await this.privateGetAccountsLedgers(this.extend(request, params));
|
|
3938
|
+
}
|
|
3915
3939
|
//
|
|
3916
3940
|
// {
|
|
3917
3941
|
// "code":"200000",
|
|
@@ -3950,7 +3974,7 @@ export default class kucoin extends Exchange {
|
|
|
3950
3974
|
// }
|
|
3951
3975
|
//
|
|
3952
3976
|
const data = this.safeValue(response, 'data');
|
|
3953
|
-
const items = this.safeValue(data, 'items');
|
|
3977
|
+
const items = this.safeValue(data, 'items', data);
|
|
3954
3978
|
return this.parseLedger(items, currency, since, limit);
|
|
3955
3979
|
}
|
|
3956
3980
|
calculateRateLimiterCost(api, method, path, params, config = {}) {
|
package/js/src/mexc.js
CHANGED
|
@@ -1328,7 +1328,8 @@ export default class mexc extends Exchange {
|
|
|
1328
1328
|
// ]
|
|
1329
1329
|
// }
|
|
1330
1330
|
//
|
|
1331
|
-
|
|
1331
|
+
const spotTimestamp = this.safeInteger(response, 'timestamp');
|
|
1332
|
+
orderbook = this.parseOrderBook(response, symbol, spotTimestamp);
|
|
1332
1333
|
orderbook['nonce'] = this.safeInteger(response, 'lastUpdateId');
|
|
1333
1334
|
}
|
|
1334
1335
|
else if (market['swap']) {
|
package/js/src/okx.js
CHANGED
|
@@ -41,6 +41,7 @@ export default class okx extends Exchange {
|
|
|
41
41
|
'createDepositAddress': false,
|
|
42
42
|
'createMarketBuyOrderWithCost': true,
|
|
43
43
|
'createMarketSellOrderWithCost': true,
|
|
44
|
+
'createTrailingPercentOrder': true,
|
|
44
45
|
'createOrder': true,
|
|
45
46
|
'createOrders': true,
|
|
46
47
|
'createPostOnlyOrder': true,
|
|
@@ -160,8 +161,7 @@ export default class okx extends Exchange {
|
|
|
160
161
|
'referral': {
|
|
161
162
|
// old reflink 0% discount https://www.okx.com/join/1888677
|
|
162
163
|
// new reflink 20% discount https://www.okx.com/join/CCXT2023
|
|
163
|
-
|
|
164
|
-
'url': 'https://www.okx.com/activities/ccxt-trade-and-earn?channelid=CCXT2023',
|
|
164
|
+
'url': 'https://www.okx.com/join/CCXT2023',
|
|
165
165
|
'discount': 0.2,
|
|
166
166
|
},
|
|
167
167
|
'test': {
|
|
@@ -1218,10 +1218,20 @@ export default class okx extends Exchange {
|
|
|
1218
1218
|
for (let i = 0; i < data.length; i++) {
|
|
1219
1219
|
const event = data[i];
|
|
1220
1220
|
const state = this.safeString(event, 'state');
|
|
1221
|
+
update['eta'] = this.safeInteger(event, 'end');
|
|
1222
|
+
update['url'] = this.safeString(event, 'href');
|
|
1221
1223
|
if (state === 'ongoing') {
|
|
1222
|
-
update['eta'] = this.safeInteger(event, 'end');
|
|
1223
1224
|
update['status'] = 'maintenance';
|
|
1224
1225
|
}
|
|
1226
|
+
else if (state === 'scheduled') {
|
|
1227
|
+
update['status'] = 'ok';
|
|
1228
|
+
}
|
|
1229
|
+
else if (state === 'completed') {
|
|
1230
|
+
update['status'] = 'ok';
|
|
1231
|
+
}
|
|
1232
|
+
else if (state === 'canceled') {
|
|
1233
|
+
update['status'] = 'ok';
|
|
1234
|
+
}
|
|
1225
1235
|
}
|
|
1226
1236
|
return update;
|
|
1227
1237
|
}
|
package/js/src/pro/binance.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import Client from '../base/ws/Client.js';
|
|
|
4
4
|
export default class binance extends binanceRest {
|
|
5
5
|
describe(): any;
|
|
6
6
|
requestId(url: any): any;
|
|
7
|
-
stream(type: any, subscriptionHash: any): string;
|
|
7
|
+
stream(type: any, subscriptionHash: any, numSubscriptions?: number): string;
|
|
8
8
|
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
9
9
|
watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
|
|
10
10
|
fetchOrderBookSnapshot(client: any, message: any, subscription: any): Promise<void>;
|
|
@@ -22,28 +22,7 @@ export default class binance extends binanceRest {
|
|
|
22
22
|
handleOHLCV(client: Client, message: any): void;
|
|
23
23
|
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
24
24
|
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
25
|
-
parseWsTicker(message: any, marketType: any):
|
|
26
|
-
symbol: string;
|
|
27
|
-
timestamp: any;
|
|
28
|
-
datetime: string;
|
|
29
|
-
high: number;
|
|
30
|
-
low: number;
|
|
31
|
-
bid: number;
|
|
32
|
-
bidVolume: number;
|
|
33
|
-
ask: number;
|
|
34
|
-
askVolume: number;
|
|
35
|
-
vwap: number;
|
|
36
|
-
open: number;
|
|
37
|
-
close: number;
|
|
38
|
-
last: number;
|
|
39
|
-
previousClose: number;
|
|
40
|
-
change: number;
|
|
41
|
-
percentage: number;
|
|
42
|
-
average: any;
|
|
43
|
-
baseVolume: number;
|
|
44
|
-
quoteVolume: number;
|
|
45
|
-
info: any;
|
|
46
|
-
};
|
|
25
|
+
parseWsTicker(message: any, marketType: any): Ticker;
|
|
47
26
|
handleTicker(client: Client, message: any): void;
|
|
48
27
|
handleTickers(client: Client, message: any): void;
|
|
49
28
|
signParams(params?: {}): any;
|
package/js/src/pro/binance.js
CHANGED
|
@@ -73,6 +73,12 @@ export default class binance extends binanceRest {
|
|
|
73
73
|
'future': 50,
|
|
74
74
|
'delivery': 50, // max 200
|
|
75
75
|
},
|
|
76
|
+
'subscriptionLimitByStream': {
|
|
77
|
+
'spot': 200,
|
|
78
|
+
'margin': 200,
|
|
79
|
+
'future': 200,
|
|
80
|
+
'delivery': 200,
|
|
81
|
+
},
|
|
76
82
|
'streamBySubscriptionsHash': {},
|
|
77
83
|
'streamIndex': -1,
|
|
78
84
|
// get updates every 1000ms or 100ms
|
|
@@ -121,7 +127,7 @@ export default class binance extends binanceRest {
|
|
|
121
127
|
this.options['requestId'][url] = newValue;
|
|
122
128
|
return newValue;
|
|
123
129
|
}
|
|
124
|
-
stream(type, subscriptionHash) {
|
|
130
|
+
stream(type, subscriptionHash, numSubscriptions = 1) {
|
|
125
131
|
const streamBySubscriptionsHash = this.safeValue(this.options, 'streamBySubscriptionsHash', {});
|
|
126
132
|
let stream = this.safeString(streamBySubscriptionsHash, subscriptionHash);
|
|
127
133
|
if (stream === undefined) {
|
|
@@ -133,6 +139,17 @@ export default class binance extends binanceRest {
|
|
|
133
139
|
this.options['streamIndex'] = streamIndex;
|
|
134
140
|
stream = this.numberToString(normalizedIndex);
|
|
135
141
|
this.options['streamBySubscriptionsHash'][subscriptionHash] = stream;
|
|
142
|
+
const subscriptionsByStreams = this.safeValue(this.options, 'numSubscriptionsByStream');
|
|
143
|
+
if (subscriptionsByStreams === undefined) {
|
|
144
|
+
this.options['numSubscriptionsByStream'] = {};
|
|
145
|
+
}
|
|
146
|
+
const subscriptionsByStream = this.safeInteger(this.options['numSubscriptionsByStream'], stream, 0);
|
|
147
|
+
const newNumSubscriptions = subscriptionsByStream + numSubscriptions;
|
|
148
|
+
const subscriptionLimitByStream = this.safeInteger(this.options, 'subscriptionLimitByStream', 200);
|
|
149
|
+
if (newNumSubscriptions > subscriptionLimitByStream) {
|
|
150
|
+
throw new BadRequest(this.id + ' reached the limit of subscriptions by stream. Increase the number of streams, or increase the stream limit or subscription limit by stream if the exchange allows.');
|
|
151
|
+
}
|
|
152
|
+
this.options['numSubscriptionsByStream'][stream] = subscriptionsByStream + numSubscriptions;
|
|
136
153
|
}
|
|
137
154
|
return stream;
|
|
138
155
|
}
|
|
@@ -203,8 +220,14 @@ export default class binance extends binanceRest {
|
|
|
203
220
|
type = firstMarket['linear'] ? 'future' : 'delivery';
|
|
204
221
|
}
|
|
205
222
|
const name = 'depth';
|
|
206
|
-
|
|
207
|
-
|
|
223
|
+
let streamHash = 'multipleOrderbook';
|
|
224
|
+
if (symbols !== undefined) {
|
|
225
|
+
const symbolsLength = symbols.length;
|
|
226
|
+
if (symbolsLength > 200) {
|
|
227
|
+
throw new BadRequest(this.id + ' watchOrderBookForSymbols() accepts 200 symbols at most. To watch more symbols call watchOrderBookForSymbols() multiple times');
|
|
228
|
+
}
|
|
229
|
+
streamHash += '::' + symbols.join(',');
|
|
230
|
+
}
|
|
208
231
|
const watchOrderBookRate = this.safeString(this.options, 'watchOrderBookRate', '100');
|
|
209
232
|
const subParams = [];
|
|
210
233
|
const messageHashes = [];
|
|
@@ -216,6 +239,9 @@ export default class binance extends binanceRest {
|
|
|
216
239
|
const symbolHash = messageHash + '@' + watchOrderBookRate + 'ms';
|
|
217
240
|
subParams.push(symbolHash);
|
|
218
241
|
}
|
|
242
|
+
const messageHashesLength = messageHashes.length;
|
|
243
|
+
const url = this.urls['api']['ws'][type] + '/' + this.stream(type, streamHash, messageHashesLength);
|
|
244
|
+
const requestId = this.requestId(url);
|
|
219
245
|
const request = {
|
|
220
246
|
'method': 'SUBSCRIBE',
|
|
221
247
|
'params': subParams,
|
|
@@ -459,6 +485,14 @@ export default class binance extends binanceRest {
|
|
|
459
485
|
*/
|
|
460
486
|
await this.loadMarkets();
|
|
461
487
|
symbols = this.marketSymbols(symbols, undefined, false, true, true);
|
|
488
|
+
let streamHash = 'multipleTrades';
|
|
489
|
+
if (symbols !== undefined) {
|
|
490
|
+
const symbolsLength = symbols.length;
|
|
491
|
+
if (symbolsLength > 200) {
|
|
492
|
+
throw new BadRequest(this.id + ' watchTradesForSymbols() accepts 200 symbols at most. To watch more symbols call watchTradesForSymbols() multiple times');
|
|
493
|
+
}
|
|
494
|
+
streamHash += '::' + symbols.join(',');
|
|
495
|
+
}
|
|
462
496
|
const options = this.safeValue(this.options, 'watchTradesForSymbols', {});
|
|
463
497
|
const name = this.safeString(options, 'name', 'trade');
|
|
464
498
|
const firstMarket = this.market(symbols[0]);
|
|
@@ -474,7 +508,8 @@ export default class binance extends binanceRest {
|
|
|
474
508
|
subParams.push(currentMessageHash);
|
|
475
509
|
}
|
|
476
510
|
const query = this.omit(params, 'type');
|
|
477
|
-
const
|
|
511
|
+
const subParamsLength = subParams.length;
|
|
512
|
+
const url = this.urls['api']['ws'][type] + '/' + this.stream(type, streamHash, subParamsLength);
|
|
478
513
|
const requestId = this.requestId(url);
|
|
479
514
|
const request = {
|
|
480
515
|
'method': 'SUBSCRIBE',
|
|
@@ -958,30 +993,30 @@ export default class binance extends binanceRest {
|
|
|
958
993
|
}
|
|
959
994
|
const marketId = this.safeString(message, 's');
|
|
960
995
|
const symbol = this.safeSymbol(marketId, undefined, undefined, marketType);
|
|
961
|
-
const
|
|
962
|
-
const
|
|
996
|
+
const market = this.safeMarket(marketId, undefined, undefined, marketType);
|
|
997
|
+
const last = this.safeString(message, 'c');
|
|
998
|
+
return this.safeTicker({
|
|
963
999
|
'symbol': symbol,
|
|
964
1000
|
'timestamp': timestamp,
|
|
965
1001
|
'datetime': this.iso8601(timestamp),
|
|
966
|
-
'high': this.
|
|
967
|
-
'low': this.
|
|
968
|
-
'bid': this.
|
|
969
|
-
'bidVolume': this.
|
|
970
|
-
'ask': this.
|
|
971
|
-
'askVolume': this.
|
|
972
|
-
'vwap': this.
|
|
973
|
-
'open': this.
|
|
1002
|
+
'high': this.safeString(message, 'h'),
|
|
1003
|
+
'low': this.safeString(message, 'l'),
|
|
1004
|
+
'bid': this.safeString(message, 'b'),
|
|
1005
|
+
'bidVolume': this.safeString(message, 'B'),
|
|
1006
|
+
'ask': this.safeString(message, 'a'),
|
|
1007
|
+
'askVolume': this.safeString(message, 'A'),
|
|
1008
|
+
'vwap': this.safeString(message, 'w'),
|
|
1009
|
+
'open': this.safeString(message, 'o'),
|
|
974
1010
|
'close': last,
|
|
975
1011
|
'last': last,
|
|
976
|
-
'previousClose': this.
|
|
977
|
-
'change': this.
|
|
978
|
-
'percentage': this.
|
|
1012
|
+
'previousClose': this.safeString(message, 'x'),
|
|
1013
|
+
'change': this.safeString(message, 'p'),
|
|
1014
|
+
'percentage': this.safeString(message, 'P'),
|
|
979
1015
|
'average': undefined,
|
|
980
|
-
'baseVolume': this.
|
|
981
|
-
'quoteVolume': this.
|
|
1016
|
+
'baseVolume': this.safeString(message, 'v'),
|
|
1017
|
+
'quoteVolume': this.safeString(message, 'q'),
|
|
982
1018
|
'info': message,
|
|
983
|
-
};
|
|
984
|
-
return ticker;
|
|
1019
|
+
}, market);
|
|
985
1020
|
}
|
|
986
1021
|
handleTicker(client, message) {
|
|
987
1022
|
//
|
|
@@ -2246,7 +2281,8 @@ export default class binance extends binanceRest {
|
|
|
2246
2281
|
market = this.getMarketFromSymbols(symbols);
|
|
2247
2282
|
messageHash = '::' + symbols.join(',');
|
|
2248
2283
|
}
|
|
2249
|
-
let type =
|
|
2284
|
+
let type = undefined;
|
|
2285
|
+
[type, params] = this.handleMarketTypeAndParams('watchPositions', market, params);
|
|
2250
2286
|
if (type === 'spot' || type === 'margin') {
|
|
2251
2287
|
type = 'future';
|
|
2252
2288
|
}
|
package/js/src/pro/coinbase.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import coinbaseRest from '../coinbase.js';
|
|
2
|
-
import { Ticker, Int, Trade, OrderBook, Order } from '../base/types.js';
|
|
2
|
+
import { Strings, Tickers, Ticker, Int, Trade, OrderBook, Order } from '../base/types.js';
|
|
3
3
|
export default class coinbase extends coinbaseRest {
|
|
4
4
|
describe(): any;
|
|
5
5
|
subscribe(name: any, symbol?: any, params?: {}): Promise<any>;
|
|
6
6
|
watchTicker(symbol: any, params?: {}): Promise<Ticker>;
|
|
7
|
-
watchTickers(symbols?:
|
|
7
|
+
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
8
8
|
handleTickers(client: any, message: any): any;
|
|
9
9
|
parseWsTicker(ticker: any, market?: any): Ticker;
|
|
10
10
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
package/js/src/pro/coinbase.js
CHANGED
|
@@ -117,7 +117,10 @@ export default class coinbase extends coinbaseRest {
|
|
|
117
117
|
}
|
|
118
118
|
const name = 'ticker_batch';
|
|
119
119
|
const tickers = await this.subscribe(name, symbols, params);
|
|
120
|
-
|
|
120
|
+
if (this.newUpdates) {
|
|
121
|
+
return tickers;
|
|
122
|
+
}
|
|
123
|
+
return this.tickers;
|
|
121
124
|
}
|
|
122
125
|
handleTickers(client, message) {
|
|
123
126
|
//
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import coinbaseproRest from '../coinbasepro.js';
|
|
2
|
-
import type { Int, Ticker, Str, Strings, OrderBook, Trade, Order } from '../base/types.js';
|
|
2
|
+
import type { Tickers, Int, Ticker, Str, Strings, OrderBook, Trade, Order } from '../base/types.js';
|
|
3
3
|
import Client from '../base/ws/Client.js';
|
|
4
4
|
export default class coinbasepro extends coinbaseproRest {
|
|
5
5
|
describe(): any;
|
|
@@ -12,7 +12,7 @@ export default class coinbasepro extends coinbaseproRest {
|
|
|
12
12
|
subscribe(name: any, symbol?: any, messageHashStart?: any, params?: {}): Promise<any>;
|
|
13
13
|
subscribeMultiple(name: any, symbols?: any[], messageHashStart?: any, params?: {}): Promise<any>;
|
|
14
14
|
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
15
|
-
watchTickers(symbols?: Strings, params?: {}): Promise<
|
|
15
|
+
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
16
16
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
17
17
|
watchTradesForSymbols(symbols: string[], since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
18
18
|
watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
package/js/src/pro/hitbtc.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import hitbtcRest from '../hitbtc.js';
|
|
2
|
-
import type { Int, OHLCV, OrderSide, OrderType, Strings } from '../base/types.js';
|
|
2
|
+
import type { Tickers, Int, OHLCV, OrderSide, OrderType, Strings } from '../base/types.js';
|
|
3
3
|
import Client from '../base/ws/Client.js';
|
|
4
4
|
import { Str, OrderBook, Order, Trade, Ticker, Balances } from '../base/types';
|
|
5
5
|
export default class hitbtc extends hitbtcRest {
|
|
@@ -13,7 +13,7 @@ export default class hitbtc extends hitbtcRest {
|
|
|
13
13
|
handleDelta(bookside: any, delta: any): void;
|
|
14
14
|
handleDeltas(bookside: any, deltas: any): void;
|
|
15
15
|
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
16
|
-
watchTickers(symbols?:
|
|
16
|
+
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
17
17
|
handleTicker(client: Client, message: any): any;
|
|
18
18
|
parseWsTicker(ticker: any, market?: any): Ticker;
|
|
19
19
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
package/js/src/pro/poloniex.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import poloniexRest from '../poloniex.js';
|
|
2
|
-
import type { Int, OHLCV, OrderSide, OrderType, Str, Strings, OrderBook, Order, Trade, Ticker, Balances } from '../base/types.js';
|
|
2
|
+
import type { Tickers, Int, OHLCV, OrderSide, OrderType, Str, Strings, OrderBook, Order, Trade, Ticker, Balances } from '../base/types.js';
|
|
3
3
|
import Client from '../base/ws/Client.js';
|
|
4
4
|
export default class poloniex extends poloniexRest {
|
|
5
5
|
describe(): any;
|
|
@@ -13,7 +13,7 @@ export default class poloniex extends poloniexRest {
|
|
|
13
13
|
handleOrderRequest(client: Client, message: any): void;
|
|
14
14
|
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
15
15
|
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
16
|
-
watchTickers(symbols?:
|
|
16
|
+
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
17
17
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
18
18
|
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
19
19
|
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
package/js/src/upbit.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export default class upbit extends Exchange {
|
|
|
17
17
|
limits: {
|
|
18
18
|
withdraw: {
|
|
19
19
|
min: number;
|
|
20
|
-
max:
|
|
20
|
+
max: number;
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
}>;
|
|
@@ -31,111 +31,13 @@ export default class upbit extends Exchange {
|
|
|
31
31
|
precision: any;
|
|
32
32
|
limits: {
|
|
33
33
|
withdraw: {
|
|
34
|
-
min: number;
|
|
35
|
-
max: any;
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
}>;
|
|
39
|
-
fetchMarket(symbol: string, params?: {}): Promise<{
|
|
40
|
-
id: string;
|
|
41
|
-
symbol: string;
|
|
42
|
-
base: string;
|
|
43
|
-
quote: string;
|
|
44
|
-
settle: any;
|
|
45
|
-
baseId: string;
|
|
46
|
-
quoteId: string;
|
|
47
|
-
settleId: any;
|
|
48
|
-
type: string;
|
|
49
|
-
spot: boolean;
|
|
50
|
-
margin: boolean;
|
|
51
|
-
swap: boolean;
|
|
52
|
-
future: boolean;
|
|
53
|
-
option: boolean;
|
|
54
|
-
active: boolean;
|
|
55
|
-
contract: boolean;
|
|
56
|
-
linear: any;
|
|
57
|
-
inverse: any;
|
|
58
|
-
taker: number;
|
|
59
|
-
maker: number;
|
|
60
|
-
contractSize: any;
|
|
61
|
-
expiry: any;
|
|
62
|
-
expiryDatetime: any;
|
|
63
|
-
strike: any;
|
|
64
|
-
optionType: any;
|
|
65
|
-
precision: {
|
|
66
|
-
amount: number;
|
|
67
|
-
price: number;
|
|
68
|
-
};
|
|
69
|
-
limits: {
|
|
70
|
-
leverage: {
|
|
71
|
-
min: any;
|
|
72
|
-
max: any;
|
|
73
|
-
};
|
|
74
|
-
amount: {
|
|
75
|
-
min: number;
|
|
76
|
-
max: any;
|
|
77
|
-
};
|
|
78
|
-
price: {
|
|
79
|
-
min: any;
|
|
80
|
-
max: any;
|
|
81
|
-
};
|
|
82
|
-
cost: {
|
|
83
|
-
min: number;
|
|
84
|
-
max: number;
|
|
85
|
-
};
|
|
86
|
-
info: any;
|
|
87
|
-
};
|
|
88
|
-
}>;
|
|
89
|
-
fetchMarketById(id: string, params?: {}): Promise<{
|
|
90
|
-
id: string;
|
|
91
|
-
symbol: string;
|
|
92
|
-
base: string;
|
|
93
|
-
quote: string;
|
|
94
|
-
settle: any;
|
|
95
|
-
baseId: string;
|
|
96
|
-
quoteId: string;
|
|
97
|
-
settleId: any;
|
|
98
|
-
type: string;
|
|
99
|
-
spot: boolean;
|
|
100
|
-
margin: boolean;
|
|
101
|
-
swap: boolean;
|
|
102
|
-
future: boolean;
|
|
103
|
-
option: boolean;
|
|
104
|
-
active: boolean;
|
|
105
|
-
contract: boolean;
|
|
106
|
-
linear: any;
|
|
107
|
-
inverse: any;
|
|
108
|
-
taker: number;
|
|
109
|
-
maker: number;
|
|
110
|
-
contractSize: any;
|
|
111
|
-
expiry: any;
|
|
112
|
-
expiryDatetime: any;
|
|
113
|
-
strike: any;
|
|
114
|
-
optionType: any;
|
|
115
|
-
precision: {
|
|
116
|
-
amount: number;
|
|
117
|
-
price: number;
|
|
118
|
-
};
|
|
119
|
-
limits: {
|
|
120
|
-
leverage: {
|
|
121
|
-
min: any;
|
|
122
|
-
max: any;
|
|
123
|
-
};
|
|
124
|
-
amount: {
|
|
125
|
-
min: number;
|
|
126
|
-
max: any;
|
|
127
|
-
};
|
|
128
|
-
price: {
|
|
129
|
-
min: any;
|
|
130
|
-
max: any;
|
|
131
|
-
};
|
|
132
|
-
cost: {
|
|
133
34
|
min: number;
|
|
134
35
|
max: number;
|
|
135
36
|
};
|
|
136
|
-
info: any;
|
|
137
37
|
};
|
|
138
38
|
}>;
|
|
39
|
+
fetchMarket(symbol: string, params?: {}): Promise<import("./base/types.js").MarketInterface>;
|
|
40
|
+
fetchMarketById(id: string, params?: {}): Promise<import("./base/types.js").MarketInterface>;
|
|
139
41
|
fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
|
|
140
42
|
parseMarket(market: any): Market;
|
|
141
43
|
parseBalance(response: any): Balances;
|
package/js/src/upbit.js
CHANGED
|
@@ -264,11 +264,11 @@ export default class upbit extends Exchange {
|
|
|
264
264
|
else if ((locked !== undefined) && locked) {
|
|
265
265
|
active = false;
|
|
266
266
|
}
|
|
267
|
-
const maxOnetimeWithdrawal = this.
|
|
268
|
-
const maxDailyWithdrawal = this.
|
|
269
|
-
const remainingDailyWithdrawal = this.
|
|
267
|
+
const maxOnetimeWithdrawal = this.safeString(withdrawLimits, 'onetime');
|
|
268
|
+
const maxDailyWithdrawal = this.safeString(withdrawLimits, 'daily', maxOnetimeWithdrawal);
|
|
269
|
+
const remainingDailyWithdrawal = this.safeString(withdrawLimits, 'remaining_daily', maxDailyWithdrawal);
|
|
270
270
|
let maxWithdrawLimit = undefined;
|
|
271
|
-
if (remainingDailyWithdrawal
|
|
271
|
+
if (Precise.stringGt(remainingDailyWithdrawal, '0')) {
|
|
272
272
|
maxWithdrawLimit = remainingDailyWithdrawal;
|
|
273
273
|
}
|
|
274
274
|
else {
|
|
@@ -287,7 +287,7 @@ export default class upbit extends Exchange {
|
|
|
287
287
|
'limits': {
|
|
288
288
|
'withdraw': {
|
|
289
289
|
'min': this.safeNumber(withdrawLimits, 'minimum'),
|
|
290
|
-
'max': maxWithdrawLimit,
|
|
290
|
+
'max': this.parseNumber(maxWithdrawLimit),
|
|
291
291
|
},
|
|
292
292
|
},
|
|
293
293
|
};
|
|
@@ -347,10 +347,10 @@ export default class upbit extends Exchange {
|
|
|
347
347
|
const base = this.safeCurrencyCode(baseId);
|
|
348
348
|
const quote = this.safeCurrencyCode(quoteId);
|
|
349
349
|
const state = this.safeString(marketInfo, 'state');
|
|
350
|
-
const bidFee = this.
|
|
351
|
-
const askFee = this.
|
|
352
|
-
const fee =
|
|
353
|
-
return {
|
|
350
|
+
const bidFee = this.safeString(response, 'bid_fee');
|
|
351
|
+
const askFee = this.safeString(response, 'ask_fee');
|
|
352
|
+
const fee = this.parseNumber(Precise.stringMax(bidFee, askFee));
|
|
353
|
+
return this.safeMarketStructure({
|
|
354
354
|
'id': marketId,
|
|
355
355
|
'symbol': base + '/' + quote,
|
|
356
356
|
'base': base,
|
|
@@ -399,7 +399,7 @@ export default class upbit extends Exchange {
|
|
|
399
399
|
},
|
|
400
400
|
'info': response,
|
|
401
401
|
},
|
|
402
|
-
};
|
|
402
|
+
});
|
|
403
403
|
}
|
|
404
404
|
async fetchMarkets(params = {}) {
|
|
405
405
|
/**
|
|
@@ -428,7 +428,7 @@ export default class upbit extends Exchange {
|
|
|
428
428
|
const [quoteId, baseId] = id.split('-');
|
|
429
429
|
const base = this.safeCurrencyCode(baseId);
|
|
430
430
|
const quote = this.safeCurrencyCode(quoteId);
|
|
431
|
-
return {
|
|
431
|
+
return this.safeMarketStructure({
|
|
432
432
|
'id': id,
|
|
433
433
|
'symbol': base + '/' + quote,
|
|
434
434
|
'base': base,
|
|
@@ -478,7 +478,7 @@ export default class upbit extends Exchange {
|
|
|
478
478
|
},
|
|
479
479
|
'created': undefined,
|
|
480
480
|
'info': market,
|
|
481
|
-
};
|
|
481
|
+
});
|
|
482
482
|
}
|
|
483
483
|
parseBalance(response) {
|
|
484
484
|
const result = {
|
package/js/src/woo.js
CHANGED
|
@@ -44,6 +44,8 @@ export default class woo extends Exchange {
|
|
|
44
44
|
'createMarketOrder': false,
|
|
45
45
|
'createMarketOrderWithCost': false,
|
|
46
46
|
'createMarketSellOrderWithCost': false,
|
|
47
|
+
'createTrailingAmountOrder': true,
|
|
48
|
+
'createTrailingPercentOrder': true,
|
|
47
49
|
'createOrder': true,
|
|
48
50
|
'createReduceOnlyOrder': true,
|
|
49
51
|
'createStopLimitOrder': false,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccxt",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.12",
|
|
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",
|
|
@@ -35,17 +35,17 @@
|
|
|
35
35
|
"pre-transpile": "npm run export-exchanges && npm run vss && npm run tsBuild && npm run emitAPI && npm run validate-types && npm run tsBuildExamples && npm run copy-python-files && npm run check-js-syntax && npm run bundle",
|
|
36
36
|
"pre-transpile-pr": "npm run export-exchanges && npm run tsBuild && npm run emitAPI && npm run check-js-syntax",
|
|
37
37
|
"post-transpile": "npm run check-python-syntax && npm run check-php-syntax",
|
|
38
|
-
"test-ws": "npm run build && node run-tests --ws",
|
|
39
|
-
"test": "npm run build && npm run commonjs-test && npm run static-tests && node run-tests",
|
|
40
|
-
"fast-test": "npm run commonjs-test && node run-tests --js",
|
|
38
|
+
"test-ws": "npm run build && node run-tests --ws --useProxy",
|
|
39
|
+
"test": "npm run build && npm run commonjs-test && npm run static-tests && node run-tests --useProxy",
|
|
40
|
+
"fast-test": "npm run commonjs-test && node run-tests --js --useProxy",
|
|
41
41
|
"commonjs-test": "node test-commonjs.cjs",
|
|
42
|
-
"fast-test-ws": "node run-tests --ws --js",
|
|
43
|
-
"test-js": "npm run commonjs-test && node run-tests --js",
|
|
44
|
-
"test-js-ws": "node run-tests --ws --js",
|
|
45
|
-
"test-py": "node run-tests --python",
|
|
46
|
-
"test-py-ws": "node run-tests --ws --python",
|
|
47
|
-
"test-php": "node run-tests --php",
|
|
48
|
-
"test-php-ws": "node run-tests --ws --php",
|
|
42
|
+
"fast-test-ws": "node run-tests --ws --js --useProxy",
|
|
43
|
+
"test-js": "npm run commonjs-test && node run-tests --js --useProxy",
|
|
44
|
+
"test-js-ws": "node run-tests --ws --js --useProxy",
|
|
45
|
+
"test-py": "node run-tests --python --useProxy",
|
|
46
|
+
"test-py-ws": "node run-tests --ws --python --useProxy",
|
|
47
|
+
"test-php": "node run-tests --php --useProxy",
|
|
48
|
+
"test-php-ws": "node run-tests --ws --php --useProxy",
|
|
49
49
|
"test-base": "npm run test-js-base && npm run test-python-base && npm run test-php-base && npm run id-tests && npm run static-tests",
|
|
50
50
|
"test-base-ws": "npm run test-js-base-ws && npm run test-python-base-ws && npm run test-php-base-ws",
|
|
51
51
|
"test-js-base": "node ./js/src/test/base/test.base.js",
|