ccxt 4.2.11 → 4.2.13
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 +2 -2
- package/dist/ccxt.browser.js +1347 -490
- 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 +2209 -0
- package/dist/cjs/js/src/binance.js +9736 -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 +3807 -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 +8291 -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 +3424 -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 +7072 -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 +9049 -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 +761 -0
- package/dist/cjs/js/src/indodax.js +1069 -0
- package/dist/cjs/js/src/kraken.js +2857 -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 +2851 -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 +7330 -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 +4722 -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 +1608 -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 +1867 -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 +2765 -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/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/bingx.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/abstract/okx.d.ts +1 -0
- package/js/src/alpaca.js +18 -18
- package/js/src/base/Exchange.d.ts +5 -1
- package/js/src/base/Exchange.js +101 -12
- package/js/src/bigone.d.ts +3 -2
- package/js/src/bigone.js +429 -167
- package/js/src/binance.js +48 -34
- package/js/src/bingx.js +115 -38
- package/js/src/bitfinex.d.ts +2 -2
- package/js/src/bitfinex.js +2 -3
- package/js/src/bitget.js +33 -13
- package/js/src/bitmart.d.ts +2 -2
- package/js/src/bitmart.js +5 -5
- package/js/src/bitmex.js +1 -0
- package/js/src/bybit.js +2 -0
- package/js/src/coinbase.d.ts +26 -3
- package/js/src/coinbase.js +176 -26
- package/js/src/coinlist.js +3 -4
- package/js/src/coinone.js +1 -1
- 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 +96 -59
- package/js/src/gemini.js +1 -1
- package/js/src/hitbtc.d.ts +4 -4
- package/js/src/hitbtc.js +2 -3
- package/js/src/htx.d.ts +1 -0
- package/js/src/htx.js +29 -7
- package/js/src/huobijp.js +2 -3
- package/js/src/independentreserve.js +7 -5
- package/js/src/kraken.js +3 -6
- package/js/src/lbank.js +59 -33
- package/js/src/mexc.js +2 -1
- package/js/src/oceanex.js +1 -1
- package/js/src/okx.js +14 -3
- package/js/src/phemex.js +9 -2
- 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/kraken.js +1 -1
- package/js/src/pro/okx.d.ts +1 -0
- package/js/src/pro/okx.js +52 -2
- package/js/src/pro/poloniex.d.ts +2 -2
- package/js/src/probit.js +4 -2
- package/js/src/upbit.d.ts +3 -101
- package/js/src/upbit.js +12 -12
- package/js/src/wavesexchange.js +1 -1
- package/js/src/woo.d.ts +2 -0
- package/js/src/woo.js +52 -0
- package/package.json +1 -1
- package/skip-tests.json +5 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
// ----------------------------------------------------------------------------
|
|
6
|
+
// unCamelCase has to work with the following edge cases
|
|
7
|
+
//
|
|
8
|
+
// parseOHLCVs > parse_ohlcvs
|
|
9
|
+
// safeString2 > safe_string_2
|
|
10
|
+
// safeStringN > safe_string_n
|
|
11
|
+
// convertOHLCVToTradingView > convert_ohlcv_to_trading_view
|
|
12
|
+
// fetchL2OrderBook > fetch_l2_order_book
|
|
13
|
+
// stringToBase64 > string_to_base64
|
|
14
|
+
// base64ToString > base64_to_string
|
|
15
|
+
// parseHTTPResponse > parse_http_response
|
|
16
|
+
// hasFetchOHLCV > has_fetch_ohlcv
|
|
17
|
+
//
|
|
18
|
+
// @ts-nocheck
|
|
19
|
+
const unCamelCase = (s) => {
|
|
20
|
+
const exceptions = {
|
|
21
|
+
'fetchOHLCVWs': 'fetch_ohlcv_ws', // ws = websocket
|
|
22
|
+
};
|
|
23
|
+
if (exceptions[s]) {
|
|
24
|
+
return exceptions[s];
|
|
25
|
+
}
|
|
26
|
+
return s.match(/[A-Z]/) ? s.replace(/[a-z0-9][A-Z]/g, (x) => x[0] + '_' + x[1]).replace(/[A-Z0-9][A-Z0-9][a-z][^$]/g, (x) => x[0] + '_' + x[1] + x[2] + x[3]).replace(/[a-z][0-9]$/g, (x) => x[0] + '_' + x[1]).toLowerCase() : s;
|
|
27
|
+
};
|
|
28
|
+
const capitalize = (s) => {
|
|
29
|
+
return s.length ? (s.charAt(0).toUpperCase() + s.slice(1)) : s;
|
|
30
|
+
};
|
|
31
|
+
const strip = (s) => s.replace(/^\s+|\s+$/g, '');
|
|
32
|
+
// ----------------------------------------------------------------------------
|
|
33
|
+
const uuid = (a) => {
|
|
34
|
+
return a ? (a ^ Math.random() * 16 >> a / 4).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid);
|
|
35
|
+
};
|
|
36
|
+
const uuid16 = (a) => {
|
|
37
|
+
return a ? (a ^ Math.random() * 16 >> a / 4).toString(16) : ([1e5] + 1e2 + 4e2 + 8e3).replace(/[018]/g, uuid16);
|
|
38
|
+
};
|
|
39
|
+
const uuid22 = (a) => {
|
|
40
|
+
return a ? (a ^ Math.random() * 16 >> a / 4).toString(16) : ([1e7] + 1e3 + 4e3 + 8e5).replace(/[018]/g, uuid22);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.capitalize = capitalize;
|
|
44
|
+
exports.strip = strip;
|
|
45
|
+
exports.unCamelCase = unCamelCase;
|
|
46
|
+
exports.uuid = uuid;
|
|
47
|
+
exports.uuid16 = uuid16;
|
|
48
|
+
exports.uuid22 = uuid22;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var time = require('./time.js');
|
|
6
|
+
|
|
7
|
+
//@ts-nocheck
|
|
8
|
+
/* ------------------------------------------------------------------------ */
|
|
9
|
+
class Throttler {
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = {
|
|
12
|
+
'refillRate': 1.0,
|
|
13
|
+
'delay': 0.001,
|
|
14
|
+
'capacity': 1.0,
|
|
15
|
+
'maxCapacity': 2000,
|
|
16
|
+
'tokens': 0,
|
|
17
|
+
'cost': 1.0,
|
|
18
|
+
};
|
|
19
|
+
Object.assign(this.config, config);
|
|
20
|
+
this.queue = [];
|
|
21
|
+
this.running = false;
|
|
22
|
+
}
|
|
23
|
+
async loop() {
|
|
24
|
+
let lastTimestamp = time.now();
|
|
25
|
+
while (this.running) {
|
|
26
|
+
const { resolver, cost } = this.queue[0];
|
|
27
|
+
if (this.config['tokens'] >= 0) {
|
|
28
|
+
this.config['tokens'] -= cost;
|
|
29
|
+
resolver();
|
|
30
|
+
this.queue.shift();
|
|
31
|
+
// contextswitch
|
|
32
|
+
await Promise.resolve();
|
|
33
|
+
if (this.queue.length === 0) {
|
|
34
|
+
this.running = false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
await time.sleep(this.config['delay'] * 1000);
|
|
39
|
+
const current = time.now();
|
|
40
|
+
const elapsed = current - lastTimestamp;
|
|
41
|
+
lastTimestamp = current;
|
|
42
|
+
const tokens = this.config['tokens'] + (this.config['refillRate'] * elapsed);
|
|
43
|
+
this.config['tokens'] = Math.min(tokens, this.config['capacity']);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
throttle(cost = undefined) {
|
|
48
|
+
let resolver;
|
|
49
|
+
const promise = new Promise((resolve, reject) => {
|
|
50
|
+
resolver = resolve;
|
|
51
|
+
});
|
|
52
|
+
if (this.queue.length > this.config['maxCapacity']) {
|
|
53
|
+
throw new Error('throttle queue is over maxCapacity (' + this.config['maxCapacity'].toString() + '), see https://github.com/ccxt/ccxt/issues/11645#issuecomment-1195695526');
|
|
54
|
+
}
|
|
55
|
+
cost = (cost === undefined) ? this.config['cost'] : cost;
|
|
56
|
+
this.queue.push({ resolver, cost });
|
|
57
|
+
if (!this.running) {
|
|
58
|
+
this.running = true;
|
|
59
|
+
this.loop();
|
|
60
|
+
}
|
|
61
|
+
return promise;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// ----------------------------------------
|
|
65
|
+
|
|
66
|
+
exports.Throttler = Throttler;
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
// @ts-nocheck
|
|
6
|
+
const now = Date.now; // TODO: figure out how to utilize performance.now () properly – it's not as easy as it does not return a unix timestamp...
|
|
7
|
+
const microseconds = () => now() * 1000; // TODO: utilize performance.now for that purpose
|
|
8
|
+
const milliseconds = now;
|
|
9
|
+
const seconds = () => Math.floor(now() / 1000);
|
|
10
|
+
const uuidv1 = () => {
|
|
11
|
+
const biasSeconds = 12219292800; // seconds from 15th Oct 1572 to Jan 1st 1970
|
|
12
|
+
const bias = biasSeconds * 10000000; // in hundreds of nanoseconds
|
|
13
|
+
const time = microseconds() * 10 + bias;
|
|
14
|
+
const timeHex = time.toString(16);
|
|
15
|
+
const arranged = timeHex.slice(7, 15) + timeHex.slice(3, 7) + '1' + timeHex.slice(0, 3);
|
|
16
|
+
// these should be random, but we're not making more than 10 requests per microsecond so who cares
|
|
17
|
+
const clockId = '9696'; // a 14 bit number
|
|
18
|
+
const macAddress = 'ff'.repeat(6);
|
|
19
|
+
return arranged + clockId + macAddress;
|
|
20
|
+
};
|
|
21
|
+
const setTimeout_original = setTimeout;
|
|
22
|
+
const setTimeout_safe = (done, ms, setTimeout = setTimeout_original /* overrideable for mocking purposes */, targetTime = now() + ms) => {
|
|
23
|
+
// avoid MAX_INT issue https://github.com/ccxt/ccxt/issues/10761
|
|
24
|
+
if (ms >= 2147483647) {
|
|
25
|
+
throw new Error('setTimeout() function was called with unrealistic value of ' + ms.toString());
|
|
26
|
+
}
|
|
27
|
+
// The built-in setTimeout function can fire its callback earlier than specified, so we
|
|
28
|
+
// need to ensure that it does not happen: sleep recursively until `targetTime` is reached...
|
|
29
|
+
let clearInnerTimeout = () => { };
|
|
30
|
+
let active = true;
|
|
31
|
+
const id = setTimeout(() => {
|
|
32
|
+
active = true;
|
|
33
|
+
const rest = targetTime - now();
|
|
34
|
+
if (rest > 0) {
|
|
35
|
+
clearInnerTimeout = setTimeout_safe(done, rest, setTimeout, targetTime); // try sleep more
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
done();
|
|
39
|
+
}
|
|
40
|
+
}, ms);
|
|
41
|
+
return function clear() {
|
|
42
|
+
if (active) {
|
|
43
|
+
active = false; // dunno if IDs are unique on various platforms, so it's better to rely on this flag to exclude the possible cancellation of the wrong timer (if called after completion)
|
|
44
|
+
clearTimeout(id);
|
|
45
|
+
}
|
|
46
|
+
clearInnerTimeout();
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
class TimedOut extends Error {
|
|
50
|
+
constructor() {
|
|
51
|
+
const message = 'timed out';
|
|
52
|
+
super(message);
|
|
53
|
+
this.constructor = TimedOut;
|
|
54
|
+
// // @ts-expect-error
|
|
55
|
+
this.__proto__ = TimedOut.prototype;
|
|
56
|
+
this.message = message;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const iso8601 = (timestamp) => {
|
|
60
|
+
let _timestampNumber = undefined;
|
|
61
|
+
if (typeof timestamp === 'number') {
|
|
62
|
+
_timestampNumber = Math.floor(timestamp);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
_timestampNumber = parseInt(timestamp, 10);
|
|
66
|
+
}
|
|
67
|
+
// undefined, null and lots of nasty non-numeric values yield NaN
|
|
68
|
+
if (Number.isNaN(_timestampNumber) || _timestampNumber < 0) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
// last line of defence
|
|
72
|
+
try {
|
|
73
|
+
return new Date(_timestampNumber).toISOString();
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const parse8601 = (x) => {
|
|
80
|
+
if (typeof x !== 'string' || !x) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
if (x.match(/^[0-9]+$/)) {
|
|
84
|
+
// a valid number in a string, not a date.
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
if (x.indexOf('-') < 0 || x.indexOf(':') < 0) { // no date can be without a dash and a colon
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
// last line of defence
|
|
91
|
+
try {
|
|
92
|
+
const candidate = Date.parse(((x.indexOf('+') >= 0) || (x.slice(-1) === 'Z')) ? x : (x + 'Z').replace(/\s(\d\d):/, 'T$1:'));
|
|
93
|
+
if (Number.isNaN(candidate)) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
return candidate;
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
return undefined;
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const parseDate = (x) => {
|
|
103
|
+
if (typeof x !== 'string' || !x) {
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
106
|
+
if (x.indexOf('GMT') >= 0) {
|
|
107
|
+
try {
|
|
108
|
+
return Date.parse(x);
|
|
109
|
+
}
|
|
110
|
+
catch (e) {
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return parse8601(x);
|
|
115
|
+
};
|
|
116
|
+
const rfc2616 = (timestamp = undefined) => new Date(timestamp).toUTCString();
|
|
117
|
+
const mdy = (timestamp, infix = '-') => {
|
|
118
|
+
infix = infix || '';
|
|
119
|
+
const date = new Date(timestamp);
|
|
120
|
+
const Y = date.getUTCFullYear().toString();
|
|
121
|
+
let m = date.getUTCMonth() + 1;
|
|
122
|
+
let d = date.getUTCDate();
|
|
123
|
+
m = m < 10 ? ('0' + m) : m.toString();
|
|
124
|
+
d = d < 10 ? ('0' + d) : d.toString();
|
|
125
|
+
return m + infix + d + infix + Y;
|
|
126
|
+
};
|
|
127
|
+
const ymd = (timestamp, infix, fullYear = true) => {
|
|
128
|
+
infix = infix || '';
|
|
129
|
+
const date = new Date(timestamp);
|
|
130
|
+
const intYear = date.getUTCFullYear();
|
|
131
|
+
const year = fullYear ? intYear : (intYear - 2000);
|
|
132
|
+
const Y = year.toString();
|
|
133
|
+
let m = date.getUTCMonth() + 1;
|
|
134
|
+
let d = date.getUTCDate();
|
|
135
|
+
m = m < 10 ? ('0' + m) : m.toString();
|
|
136
|
+
d = d < 10 ? ('0' + d) : d.toString();
|
|
137
|
+
return Y + infix + m + infix + d;
|
|
138
|
+
};
|
|
139
|
+
const yymmdd = (timestamp, infix = '') => ymd(timestamp, infix, false);
|
|
140
|
+
const yyyymmdd = (timestamp, infix = '-') => ymd(timestamp, infix, true);
|
|
141
|
+
const ymdhms = (timestamp, infix = ' ') => {
|
|
142
|
+
const date = new Date(timestamp);
|
|
143
|
+
const Y = date.getUTCFullYear();
|
|
144
|
+
let m = date.getUTCMonth() + 1;
|
|
145
|
+
let d = date.getUTCDate();
|
|
146
|
+
let H = date.getUTCHours();
|
|
147
|
+
let M = date.getUTCMinutes();
|
|
148
|
+
let S = date.getUTCSeconds();
|
|
149
|
+
m = m < 10 ? ('0' + m) : m;
|
|
150
|
+
d = d < 10 ? ('0' + d) : d;
|
|
151
|
+
H = H < 10 ? ('0' + H) : H;
|
|
152
|
+
M = M < 10 ? ('0' + M) : M;
|
|
153
|
+
S = S < 10 ? ('0' + S) : S;
|
|
154
|
+
return Y + '-' + m + '-' + d + infix + H + ':' + M + ':' + S;
|
|
155
|
+
};
|
|
156
|
+
const sleep = (ms) => new Promise((resolve) => setTimeout_safe(resolve, ms));
|
|
157
|
+
const timeout = async (ms, promise) => {
|
|
158
|
+
let clear = () => { };
|
|
159
|
+
const expires = new Promise((resolve) => (clear = setTimeout_safe(resolve, ms)));
|
|
160
|
+
try {
|
|
161
|
+
return await Promise.race([promise, expires.then(() => {
|
|
162
|
+
throw new TimedOut();
|
|
163
|
+
})]);
|
|
164
|
+
}
|
|
165
|
+
finally {
|
|
166
|
+
clear(); // fixes https://github.com/ccxt/ccxt/issues/749
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
exports.TimedOut = TimedOut;
|
|
171
|
+
exports.iso8601 = iso8601;
|
|
172
|
+
exports.mdy = mdy;
|
|
173
|
+
exports.microseconds = microseconds;
|
|
174
|
+
exports.milliseconds = milliseconds;
|
|
175
|
+
exports.now = now;
|
|
176
|
+
exports.parse8601 = parse8601;
|
|
177
|
+
exports.parseDate = parseDate;
|
|
178
|
+
exports.rfc2616 = rfc2616;
|
|
179
|
+
exports.seconds = seconds;
|
|
180
|
+
exports.setTimeout_safe = setTimeout_safe;
|
|
181
|
+
exports.sleep = sleep;
|
|
182
|
+
exports.timeout = timeout;
|
|
183
|
+
exports.uuidv1 = uuidv1;
|
|
184
|
+
exports.ymd = ymd;
|
|
185
|
+
exports.ymdhms = ymdhms;
|
|
186
|
+
exports.yymmdd = yymmdd;
|
|
187
|
+
exports.yyyymmdd = yyyymmdd;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var index = require('../../static_dependencies/scure-base/index.js');
|
|
6
|
+
var sha1 = require('../../static_dependencies/noble-hashes/sha1.js');
|
|
7
|
+
var crypto = require('./crypto.js');
|
|
8
|
+
|
|
9
|
+
function totp(secret) {
|
|
10
|
+
const dec2hex = (s) => ((s < 15.5 ? '0' : '') + Math.round(s).toString(16));
|
|
11
|
+
const hex2dec = (s) => parseInt(s, 16);
|
|
12
|
+
const leftpad = (s, p) => (p + s).slice(-p.length); // both s and p are short strings
|
|
13
|
+
secret = secret.replace(' ', ''); // support 2fa-secrets with spaces like "4TDV WOGO" → "4TDVWOGO"
|
|
14
|
+
const epoch = Math.round(new Date().getTime() / 1000.0);
|
|
15
|
+
const time = leftpad(dec2hex(Math.floor(epoch / 30)), '0000000000000000');
|
|
16
|
+
const hmacRes = crypto.hmac(index.base16.decode(time), index.base32.decode(secret), sha1.sha1, 'hex');
|
|
17
|
+
const offset = hex2dec(hmacRes.substring(hmacRes.length - 1));
|
|
18
|
+
// eslint-disable-next-line
|
|
19
|
+
let otp = (hex2dec(hmacRes.substr(offset * 2, 8)) & hex2dec('7fffffff')) + '';
|
|
20
|
+
return otp.substring(otp.length - 6, otp.length);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
exports["default"] = totp;
|
|
24
|
+
exports.totp = totp;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
/* ------------------------------------------------------------------------ */
|
|
6
|
+
const isNumber = Number.isFinite;
|
|
7
|
+
const isInteger = Number.isInteger;
|
|
8
|
+
const isArray = Array.isArray;
|
|
9
|
+
const hasProps = (o) => ((o !== undefined) && (o !== null));
|
|
10
|
+
const isString = (s) => (typeof s === 'string');
|
|
11
|
+
const isObject = (o) => ((o !== null) && (typeof o === 'object'));
|
|
12
|
+
const isRegExp = (o) => (o instanceof RegExp);
|
|
13
|
+
const isDictionary = (o) => (isObject(o) && (Object.getPrototypeOf(o) === Object.prototype) && !isArray(o) && !isRegExp(o));
|
|
14
|
+
const isStringCoercible = (x) => ((hasProps(x) && x.toString) || isNumber(x));
|
|
15
|
+
/* ............................................. */
|
|
16
|
+
const prop = (o, k) => (isObject(o) && o[k] !== '' && o[k] !== null ? o[k] : undefined);
|
|
17
|
+
const prop2 = (o, k1, k2) => (!isObject(o)
|
|
18
|
+
? undefined
|
|
19
|
+
: (o[k1] !== undefined && o[k1] !== '' && o[k1] !== null
|
|
20
|
+
? o[k1]
|
|
21
|
+
: (o[k2] !== '' && o[k2] !== null
|
|
22
|
+
? o[k2]
|
|
23
|
+
: undefined)));
|
|
24
|
+
const getValueFromKeysInArray = (object, array) => object[array.find((k) => prop(object, k) !== undefined)];
|
|
25
|
+
/* ............................................. */
|
|
26
|
+
const asFloat = (x) => ((isNumber(x) || (isString(x) && x.length !== 0)) ? parseFloat(x) : NaN);
|
|
27
|
+
const asInteger = (x) => ((isNumber(x) || (isString(x) && x.length !== 0)) ? Math.trunc(Number(x)) : NaN);
|
|
28
|
+
/* ............................................. */
|
|
29
|
+
const safeFloat = (o, k, $default) => {
|
|
30
|
+
const n = asFloat(prop(o, k));
|
|
31
|
+
return isNumber(n) ? n : $default;
|
|
32
|
+
};
|
|
33
|
+
const safeInteger = (o, k, $default) => {
|
|
34
|
+
const n = asInteger(prop(o, k));
|
|
35
|
+
return isNumber(n) ? n : $default;
|
|
36
|
+
};
|
|
37
|
+
const safeIntegerProduct = (o, k, $factor, $default) => {
|
|
38
|
+
const n = asFloat(prop(o, k));
|
|
39
|
+
return isNumber(n) ? parseInt(n * $factor) : $default;
|
|
40
|
+
};
|
|
41
|
+
const safeTimestamp = (o, k, $default) => {
|
|
42
|
+
const n = asFloat(prop(o, k));
|
|
43
|
+
return isNumber(n) ? parseInt(n * 1000) : $default;
|
|
44
|
+
};
|
|
45
|
+
const safeValue = (o, k, $default) => {
|
|
46
|
+
const x = prop(o, k);
|
|
47
|
+
return hasProps(x) ? x : $default;
|
|
48
|
+
};
|
|
49
|
+
const safeString = (o, k, $default) => {
|
|
50
|
+
const x = prop(o, k);
|
|
51
|
+
return isStringCoercible(x) ? String(x) : $default;
|
|
52
|
+
};
|
|
53
|
+
const safeStringLower = (o, k, $default) => {
|
|
54
|
+
const x = prop(o, k);
|
|
55
|
+
return isStringCoercible(x) ? String(x).toLowerCase() : $default;
|
|
56
|
+
};
|
|
57
|
+
const safeStringUpper = (o, k, $default) => {
|
|
58
|
+
const x = prop(o, k);
|
|
59
|
+
return isStringCoercible(x) ? String(x).toUpperCase() : $default;
|
|
60
|
+
};
|
|
61
|
+
/* ............................................. */
|
|
62
|
+
const safeFloat2 = (o, k1, k2, $default) => {
|
|
63
|
+
const n = asFloat(prop2(o, k1, k2));
|
|
64
|
+
return isNumber(n) ? n : $default;
|
|
65
|
+
};
|
|
66
|
+
const safeInteger2 = (o, k1, k2, $default) => {
|
|
67
|
+
const n = asInteger(prop2(o, k1, k2));
|
|
68
|
+
return isNumber(n) ? n : $default;
|
|
69
|
+
};
|
|
70
|
+
const safeIntegerProduct2 = (o, k1, k2, $factor, $default) => {
|
|
71
|
+
const n = asInteger(prop2(o, k1, k2));
|
|
72
|
+
return isNumber(n) ? parseInt(n * $factor) : $default;
|
|
73
|
+
};
|
|
74
|
+
const safeTimestamp2 = (o, k1, k2, $default) => {
|
|
75
|
+
const n = asFloat(prop2(o, k1, k2));
|
|
76
|
+
return isNumber(n) ? parseInt(n * 1000) : $default;
|
|
77
|
+
};
|
|
78
|
+
const safeValue2 = (o, k1, k2, $default) => {
|
|
79
|
+
const x = prop2(o, k1, k2);
|
|
80
|
+
return hasProps(x) ? x : $default;
|
|
81
|
+
};
|
|
82
|
+
const safeString2 = (o, k1, k2, $default) => {
|
|
83
|
+
const x = prop2(o, k1, k2);
|
|
84
|
+
return isStringCoercible(x) ? String(x) : $default;
|
|
85
|
+
};
|
|
86
|
+
const safeStringLower2 = (o, k1, k2, $default) => {
|
|
87
|
+
const x = prop2(o, k1, k2);
|
|
88
|
+
return isStringCoercible(x) ? String(x).toLowerCase() : $default;
|
|
89
|
+
};
|
|
90
|
+
const safeStringUpper2 = (o, k1, k2, $default) => {
|
|
91
|
+
const x = prop2(o, k1, k2);
|
|
92
|
+
return isStringCoercible(x) ? String(x).toUpperCase() : $default;
|
|
93
|
+
};
|
|
94
|
+
const safeFloatN = (o, k, $default) => {
|
|
95
|
+
const n = asFloat(getValueFromKeysInArray(o, k));
|
|
96
|
+
return isNumber(n) ? n : $default;
|
|
97
|
+
};
|
|
98
|
+
const safeIntegerN = (o, k, $default) => {
|
|
99
|
+
const n = asInteger(getValueFromKeysInArray(o, k));
|
|
100
|
+
return isNumber(n) ? n : $default;
|
|
101
|
+
};
|
|
102
|
+
const safeIntegerProductN = (o, k, $factor, $default) => {
|
|
103
|
+
const n = asInteger(getValueFromKeysInArray(o, k));
|
|
104
|
+
return isNumber(n) ? parseInt(n * $factor) : $default;
|
|
105
|
+
};
|
|
106
|
+
const safeTimestampN = (o, k, $default) => {
|
|
107
|
+
const n = asFloat(getValueFromKeysInArray(o, k));
|
|
108
|
+
return isNumber(n) ? parseInt(n * 1000) : $default;
|
|
109
|
+
};
|
|
110
|
+
const safeValueN = (o, k, $default) => {
|
|
111
|
+
const x = getValueFromKeysInArray(o, k);
|
|
112
|
+
return hasProps(x) ? x : $default;
|
|
113
|
+
};
|
|
114
|
+
const safeStringN = (o, k, $default) => {
|
|
115
|
+
const x = getValueFromKeysInArray(o, k);
|
|
116
|
+
return isStringCoercible(x) ? String(x) : $default;
|
|
117
|
+
};
|
|
118
|
+
const safeStringLowerN = (o, k, $default) => {
|
|
119
|
+
const x = getValueFromKeysInArray(o, k);
|
|
120
|
+
return isStringCoercible(x) ? String(x).toLowerCase() : $default;
|
|
121
|
+
};
|
|
122
|
+
const safeStringUpperN = (o, k, $default) => {
|
|
123
|
+
const x = getValueFromKeysInArray(o, k);
|
|
124
|
+
return isStringCoercible(x) ? String(x).toUpperCase() : $default;
|
|
125
|
+
};
|
|
126
|
+
/* ------------------------------------------------------------------------ */
|
|
127
|
+
|
|
128
|
+
exports.asFloat = asFloat;
|
|
129
|
+
exports.asInteger = asInteger;
|
|
130
|
+
exports.hasProps = hasProps;
|
|
131
|
+
exports.isArray = isArray;
|
|
132
|
+
exports.isDictionary = isDictionary;
|
|
133
|
+
exports.isInteger = isInteger;
|
|
134
|
+
exports.isNumber = isNumber;
|
|
135
|
+
exports.isObject = isObject;
|
|
136
|
+
exports.isString = isString;
|
|
137
|
+
exports.isStringCoercible = isStringCoercible;
|
|
138
|
+
exports.prop = prop;
|
|
139
|
+
exports.safeFloat = safeFloat;
|
|
140
|
+
exports.safeFloat2 = safeFloat2;
|
|
141
|
+
exports.safeFloatN = safeFloatN;
|
|
142
|
+
exports.safeInteger = safeInteger;
|
|
143
|
+
exports.safeInteger2 = safeInteger2;
|
|
144
|
+
exports.safeIntegerN = safeIntegerN;
|
|
145
|
+
exports.safeIntegerProduct = safeIntegerProduct;
|
|
146
|
+
exports.safeIntegerProduct2 = safeIntegerProduct2;
|
|
147
|
+
exports.safeIntegerProductN = safeIntegerProductN;
|
|
148
|
+
exports.safeString = safeString;
|
|
149
|
+
exports.safeString2 = safeString2;
|
|
150
|
+
exports.safeStringLower = safeStringLower;
|
|
151
|
+
exports.safeStringLower2 = safeStringLower2;
|
|
152
|
+
exports.safeStringLowerN = safeStringLowerN;
|
|
153
|
+
exports.safeStringN = safeStringN;
|
|
154
|
+
exports.safeStringUpper = safeStringUpper;
|
|
155
|
+
exports.safeStringUpper2 = safeStringUpper2;
|
|
156
|
+
exports.safeStringUpperN = safeStringUpperN;
|
|
157
|
+
exports.safeTimestamp = safeTimestamp;
|
|
158
|
+
exports.safeTimestamp2 = safeTimestamp2;
|
|
159
|
+
exports.safeTimestampN = safeTimestampN;
|
|
160
|
+
exports.safeValue = safeValue;
|
|
161
|
+
exports.safeValue2 = safeValue2;
|
|
162
|
+
exports.safeValueN = safeValueN;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var platform = require('./functions/platform.js');
|
|
6
|
+
var generic = require('./functions/generic.js');
|
|
7
|
+
var string = require('./functions/string.js');
|
|
8
|
+
var type = require('./functions/type.js');
|
|
9
|
+
var number = require('./functions/number.js');
|
|
10
|
+
var encode = require('./functions/encode.js');
|
|
11
|
+
var crypto = require('./functions/crypto.js');
|
|
12
|
+
var time = require('./functions/time.js');
|
|
13
|
+
var throttle = require('./functions/throttle.js');
|
|
14
|
+
var misc = require('./functions/misc.js');
|
|
15
|
+
|
|
16
|
+
/* ------------------------------------------------------------------------ */
|
|
17
|
+
/* ------------------------------------------------------------------------ */
|
|
18
|
+
|
|
19
|
+
exports.isBrowser = platform.isBrowser;
|
|
20
|
+
exports.isElectron = platform.isElectron;
|
|
21
|
+
exports.isNode = platform.isNode;
|
|
22
|
+
exports.isWebWorker = platform.isWebWorker;
|
|
23
|
+
exports.isWindows = platform.isWindows;
|
|
24
|
+
exports.arrayConcat = generic.arrayConcat;
|
|
25
|
+
exports.clone = generic.clone;
|
|
26
|
+
exports.deepExtend = generic.deepExtend;
|
|
27
|
+
exports.extend = generic.extend;
|
|
28
|
+
exports.filterBy = generic.filterBy;
|
|
29
|
+
exports.flatten = generic.flatten;
|
|
30
|
+
exports.groupBy = generic.groupBy;
|
|
31
|
+
exports.inArray = generic.inArray;
|
|
32
|
+
exports.index = generic.index;
|
|
33
|
+
exports.indexBy = generic.indexBy;
|
|
34
|
+
exports.isEmpty = generic.isEmpty;
|
|
35
|
+
exports.keys = generic.keys;
|
|
36
|
+
exports.keysort = generic.keysort;
|
|
37
|
+
exports.merge = generic.merge;
|
|
38
|
+
exports.omit = generic.omit;
|
|
39
|
+
exports.ordered = generic.ordered;
|
|
40
|
+
exports.pluck = generic.pluck;
|
|
41
|
+
exports.sortBy = generic.sortBy;
|
|
42
|
+
exports.sortBy2 = generic.sortBy2;
|
|
43
|
+
exports.sum = generic.sum;
|
|
44
|
+
exports.toArray = generic.toArray;
|
|
45
|
+
exports.unique = generic.unique;
|
|
46
|
+
exports.values = generic.values;
|
|
47
|
+
exports.capitalize = string.capitalize;
|
|
48
|
+
exports.strip = string.strip;
|
|
49
|
+
exports.unCamelCase = string.unCamelCase;
|
|
50
|
+
exports.uuid = string.uuid;
|
|
51
|
+
exports.uuid16 = string.uuid16;
|
|
52
|
+
exports.uuid22 = string.uuid22;
|
|
53
|
+
exports.asFloat = type.asFloat;
|
|
54
|
+
exports.asInteger = type.asInteger;
|
|
55
|
+
exports.hasProps = type.hasProps;
|
|
56
|
+
exports.isArray = type.isArray;
|
|
57
|
+
exports.isDictionary = type.isDictionary;
|
|
58
|
+
exports.isInteger = type.isInteger;
|
|
59
|
+
exports.isNumber = type.isNumber;
|
|
60
|
+
exports.isObject = type.isObject;
|
|
61
|
+
exports.isString = type.isString;
|
|
62
|
+
exports.isStringCoercible = type.isStringCoercible;
|
|
63
|
+
exports.prop = type.prop;
|
|
64
|
+
exports.safeFloat = type.safeFloat;
|
|
65
|
+
exports.safeFloat2 = type.safeFloat2;
|
|
66
|
+
exports.safeFloatN = type.safeFloatN;
|
|
67
|
+
exports.safeInteger = type.safeInteger;
|
|
68
|
+
exports.safeInteger2 = type.safeInteger2;
|
|
69
|
+
exports.safeIntegerN = type.safeIntegerN;
|
|
70
|
+
exports.safeIntegerProduct = type.safeIntegerProduct;
|
|
71
|
+
exports.safeIntegerProduct2 = type.safeIntegerProduct2;
|
|
72
|
+
exports.safeIntegerProductN = type.safeIntegerProductN;
|
|
73
|
+
exports.safeString = type.safeString;
|
|
74
|
+
exports.safeString2 = type.safeString2;
|
|
75
|
+
exports.safeStringLower = type.safeStringLower;
|
|
76
|
+
exports.safeStringLower2 = type.safeStringLower2;
|
|
77
|
+
exports.safeStringLowerN = type.safeStringLowerN;
|
|
78
|
+
exports.safeStringN = type.safeStringN;
|
|
79
|
+
exports.safeStringUpper = type.safeStringUpper;
|
|
80
|
+
exports.safeStringUpper2 = type.safeStringUpper2;
|
|
81
|
+
exports.safeStringUpperN = type.safeStringUpperN;
|
|
82
|
+
exports.safeTimestamp = type.safeTimestamp;
|
|
83
|
+
exports.safeTimestamp2 = type.safeTimestamp2;
|
|
84
|
+
exports.safeTimestampN = type.safeTimestampN;
|
|
85
|
+
exports.safeValue = type.safeValue;
|
|
86
|
+
exports.safeValue2 = type.safeValue2;
|
|
87
|
+
exports.safeValueN = type.safeValueN;
|
|
88
|
+
exports.DECIMAL_PLACES = number.DECIMAL_PLACES;
|
|
89
|
+
exports.NO_PADDING = number.NO_PADDING;
|
|
90
|
+
exports.PAD_WITH_ZERO = number.PAD_WITH_ZERO;
|
|
91
|
+
exports.ROUND = number.ROUND;
|
|
92
|
+
exports.ROUND_DOWN = number.ROUND_DOWN;
|
|
93
|
+
exports.ROUND_UP = number.ROUND_UP;
|
|
94
|
+
exports.SIGNIFICANT_DIGITS = number.SIGNIFICANT_DIGITS;
|
|
95
|
+
exports.TICK_SIZE = number.TICK_SIZE;
|
|
96
|
+
exports.TRUNCATE = number.TRUNCATE;
|
|
97
|
+
exports.decimalToPrecision = number.decimalToPrecision;
|
|
98
|
+
exports.numberToString = number.numberToString;
|
|
99
|
+
exports.omitZero = number.omitZero;
|
|
100
|
+
exports.precisionConstants = number.precisionConstants;
|
|
101
|
+
exports.precisionFromString = number.precisionFromString;
|
|
102
|
+
exports.truncate = number.truncate;
|
|
103
|
+
exports.truncate_to_string = number.truncate_to_string;
|
|
104
|
+
exports.base16ToBinary = encode.base16ToBinary;
|
|
105
|
+
exports.base58ToBinary = encode.base58ToBinary;
|
|
106
|
+
exports.base64ToBinary = encode.base64ToBinary;
|
|
107
|
+
exports.base64ToString = encode.base64ToString;
|
|
108
|
+
exports.binaryConcat = encode.binaryConcat;
|
|
109
|
+
exports.binaryConcatArray = encode.binaryConcatArray;
|
|
110
|
+
exports.binaryToBase16 = encode.binaryToBase16;
|
|
111
|
+
exports.binaryToBase58 = encode.binaryToBase58;
|
|
112
|
+
exports.binaryToBase64 = encode.binaryToBase64;
|
|
113
|
+
exports.binaryToString = encode.binaryToString;
|
|
114
|
+
exports.decode = encode.decode;
|
|
115
|
+
exports.encode = encode.encode;
|
|
116
|
+
exports.isJsonEncodedObject = encode.isJsonEncodedObject;
|
|
117
|
+
exports.json = encode.json;
|
|
118
|
+
exports.numberToBE = encode.numberToBE;
|
|
119
|
+
exports.numberToLE = encode.numberToLE;
|
|
120
|
+
exports.rawencode = encode.rawencode;
|
|
121
|
+
exports.stringToBase64 = encode.stringToBase64;
|
|
122
|
+
exports.stringToBinary = encode.stringToBinary;
|
|
123
|
+
exports.urlencode = encode.urlencode;
|
|
124
|
+
exports.urlencodeBase64 = encode.urlencodeBase64;
|
|
125
|
+
exports.urlencodeNested = encode.urlencodeNested;
|
|
126
|
+
exports.urlencodeWithArrayRepeat = encode.urlencodeWithArrayRepeat;
|
|
127
|
+
exports.axolotl = crypto.axolotl;
|
|
128
|
+
exports.crc32 = crypto.crc32;
|
|
129
|
+
exports.ecdsa = crypto.ecdsa;
|
|
130
|
+
exports.eddsa = crypto.eddsa;
|
|
131
|
+
exports.hash = crypto.hash;
|
|
132
|
+
exports.hmac = crypto.hmac;
|
|
133
|
+
exports.TimedOut = time.TimedOut;
|
|
134
|
+
exports.iso8601 = time.iso8601;
|
|
135
|
+
exports.mdy = time.mdy;
|
|
136
|
+
exports.microseconds = time.microseconds;
|
|
137
|
+
exports.milliseconds = time.milliseconds;
|
|
138
|
+
exports.now = time.now;
|
|
139
|
+
exports.parse8601 = time.parse8601;
|
|
140
|
+
exports.parseDate = time.parseDate;
|
|
141
|
+
exports.rfc2616 = time.rfc2616;
|
|
142
|
+
exports.seconds = time.seconds;
|
|
143
|
+
exports.setTimeout_safe = time.setTimeout_safe;
|
|
144
|
+
exports.sleep = time.sleep;
|
|
145
|
+
exports.timeout = time.timeout;
|
|
146
|
+
exports.uuidv1 = time.uuidv1;
|
|
147
|
+
exports.ymd = time.ymd;
|
|
148
|
+
exports.ymdhms = time.ymdhms;
|
|
149
|
+
exports.yymmdd = time.yymmdd;
|
|
150
|
+
exports.yyyymmdd = time.yyyymmdd;
|
|
151
|
+
exports.Throttler = throttle.Throttler;
|
|
152
|
+
exports.aggregate = misc.aggregate;
|
|
153
|
+
exports.extractParams = misc.extractParams;
|
|
154
|
+
exports.implodeParams = misc.implodeParams;
|
|
155
|
+
exports.parseTimeframe = misc.parseTimeframe;
|
|
156
|
+
exports.roundTimeframe = misc.roundTimeframe;
|
|
157
|
+
exports.vwap = misc.vwap;
|