ccxt 4.4.98 → 4.4.100
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 +7 -6
- package/dist/373.ccxt.browser.js +7630 -0
- package/dist/373.ccxt.browser.min.js +1 -0
- package/dist/ccxt.browser.min.js +8 -8
- package/dist/cjs/ccxt.js +289 -286
- package/dist/cjs/src/abstract/alpaca.js +4 -2
- package/dist/cjs/src/abstract/apex.js +4 -2
- package/dist/cjs/src/abstract/ascendex.js +4 -2
- package/dist/cjs/src/abstract/bigone.js +4 -2
- package/dist/cjs/src/abstract/binance.js +4 -2
- package/dist/cjs/src/abstract/bingx.js +4 -2
- package/dist/cjs/src/abstract/bit2c.js +4 -2
- package/dist/cjs/src/abstract/bitbank.js +4 -2
- package/dist/cjs/src/abstract/bitbns.js +4 -2
- package/dist/cjs/src/abstract/bitfinex.js +4 -2
- package/dist/cjs/src/abstract/bitflyer.js +4 -2
- package/dist/cjs/src/abstract/bitget.js +4 -2
- package/dist/cjs/src/abstract/bithumb.js +4 -2
- package/dist/cjs/src/abstract/bitmart.js +4 -2
- package/dist/cjs/src/abstract/bitmex.js +4 -2
- package/dist/cjs/src/abstract/bitopro.js +4 -2
- package/dist/cjs/src/abstract/bitrue.js +4 -2
- package/dist/cjs/src/abstract/bitso.js +4 -2
- package/dist/cjs/src/abstract/bitstamp.js +4 -2
- package/dist/cjs/src/abstract/bitteam.js +4 -2
- package/dist/cjs/src/abstract/bittrade.js +4 -2
- package/dist/cjs/src/abstract/bitvavo.js +4 -2
- package/dist/cjs/src/abstract/blockchaincom.js +4 -2
- package/dist/cjs/src/abstract/blofin.js +4 -2
- package/dist/cjs/src/abstract/btcalpha.js +4 -2
- package/dist/cjs/src/abstract/btcbox.js +4 -2
- package/dist/cjs/src/abstract/btcmarkets.js +4 -2
- package/dist/cjs/src/abstract/btcturk.js +4 -2
- package/dist/cjs/src/abstract/bybit.js +4 -2
- package/dist/cjs/src/abstract/cex.js +4 -2
- package/dist/cjs/src/abstract/coinbase.js +4 -2
- package/dist/cjs/src/abstract/coinbaseexchange.js +4 -2
- package/dist/cjs/src/abstract/coinbaseinternational.js +4 -2
- package/dist/cjs/src/abstract/coincatch.js +4 -2
- package/dist/cjs/src/abstract/coincheck.js +4 -2
- package/dist/cjs/src/abstract/coinex.js +4 -2
- package/dist/cjs/src/abstract/coinmate.js +4 -2
- package/dist/cjs/src/abstract/coinmetro.js +4 -2
- package/dist/cjs/src/abstract/coinone.js +4 -2
- package/dist/cjs/src/abstract/coinsph.js +4 -2
- package/dist/cjs/src/abstract/coinspot.js +4 -2
- package/dist/cjs/src/abstract/cryptocom.js +4 -2
- package/dist/cjs/src/abstract/cryptomus.js +4 -2
- package/dist/cjs/src/abstract/defx.js +4 -2
- package/dist/cjs/src/abstract/delta.js +4 -2
- package/dist/cjs/src/abstract/deribit.js +4 -2
- package/dist/cjs/src/abstract/derive.js +4 -2
- package/dist/cjs/src/abstract/digifinex.js +4 -2
- package/dist/cjs/src/abstract/ellipx.js +4 -2
- package/dist/cjs/src/abstract/exmo.js +4 -2
- package/dist/cjs/src/abstract/foxbit.js +4 -2
- package/dist/cjs/src/abstract/gate.js +4 -2
- package/dist/cjs/src/abstract/gemini.js +4 -2
- package/dist/cjs/src/abstract/hashkey.js +4 -2
- package/dist/cjs/src/abstract/hibachi.js +11 -0
- package/dist/cjs/src/abstract/hitbtc.js +4 -2
- package/dist/cjs/src/abstract/hollaex.js +4 -2
- package/dist/cjs/src/abstract/htx.js +4 -2
- package/dist/cjs/src/abstract/hyperliquid.js +4 -2
- package/dist/cjs/src/abstract/independentreserve.js +4 -2
- package/dist/cjs/src/abstract/indodax.js +4 -2
- package/dist/cjs/src/abstract/kraken.js +4 -2
- package/dist/cjs/src/abstract/krakenfutures.js +4 -2
- package/dist/cjs/src/abstract/kucoin.js +4 -2
- package/dist/cjs/src/abstract/kucoinfutures.js +5 -3
- package/dist/cjs/src/abstract/latoken.js +4 -2
- package/dist/cjs/src/abstract/lbank.js +4 -2
- package/dist/cjs/src/abstract/luno.js +4 -2
- package/dist/cjs/src/abstract/mercado.js +4 -2
- package/dist/cjs/src/abstract/mexc.js +4 -2
- package/dist/cjs/src/abstract/modetrade.js +4 -2
- package/dist/cjs/src/abstract/ndax.js +4 -2
- package/dist/cjs/src/abstract/novadax.js +4 -2
- package/dist/cjs/src/abstract/oceanex.js +4 -2
- package/dist/cjs/src/abstract/okcoin.js +4 -2
- package/dist/cjs/src/abstract/okx.js +4 -2
- package/dist/cjs/src/abstract/onetrading.js +4 -2
- package/dist/cjs/src/abstract/oxfun.js +4 -2
- package/dist/cjs/src/abstract/p2b.js +4 -2
- package/dist/cjs/src/abstract/paradex.js +4 -2
- package/dist/cjs/src/abstract/paymium.js +4 -2
- package/dist/cjs/src/abstract/phemex.js +4 -2
- package/dist/cjs/src/abstract/poloniex.js +4 -2
- package/dist/cjs/src/abstract/probit.js +4 -2
- package/dist/cjs/src/abstract/timex.js +4 -2
- package/dist/cjs/src/abstract/tokocrypto.js +4 -2
- package/dist/cjs/src/abstract/tradeogre.js +4 -2
- package/dist/cjs/src/abstract/upbit.js +4 -2
- package/dist/cjs/src/abstract/vertex.js +4 -2
- package/dist/cjs/src/abstract/wavesexchange.js +4 -2
- package/dist/cjs/src/abstract/whitebit.js +4 -2
- package/dist/cjs/src/abstract/woo.js +4 -2
- package/dist/cjs/src/abstract/woofipro.js +4 -2
- package/dist/cjs/src/abstract/xt.js +4 -2
- package/dist/cjs/src/abstract/yobit.js +4 -2
- package/dist/cjs/src/abstract/zaif.js +4 -2
- package/dist/cjs/src/abstract/zonda.js +4 -2
- package/dist/cjs/src/alpaca.js +5 -3
- package/dist/cjs/src/apex.js +5 -3
- package/dist/cjs/src/ascendex.js +5 -3
- package/dist/cjs/src/base/Exchange.js +51 -11
- package/dist/cjs/src/base/Precise.js +0 -6
- package/dist/cjs/src/base/errors.js +0 -6
- package/dist/cjs/src/base/functions/crypto.js +1 -1
- package/dist/cjs/src/base/functions/encode.js +3 -3
- package/dist/cjs/src/base/functions/misc.js +0 -1
- package/dist/cjs/src/base/functions/number.js +0 -6
- package/dist/cjs/src/base/functions/platform.js +0 -6
- package/dist/cjs/src/base/functions/rsa.js +0 -1
- package/dist/cjs/src/base/functions/string.js +0 -6
- package/dist/cjs/src/base/functions/throttle.js +1 -1
- package/dist/cjs/src/base/functions/time.js +0 -6
- package/dist/cjs/src/base/functions/totp.js +0 -1
- package/dist/cjs/src/base/functions/type.js +0 -6
- package/dist/cjs/src/base/functions.js +1 -1
- package/dist/cjs/src/base/ws/Cache.js +0 -6
- package/dist/cjs/src/base/ws/Client.js +8 -3
- package/dist/cjs/src/base/ws/Future.js +1 -1
- package/dist/cjs/src/base/ws/OrderBook.js +1 -1
- package/dist/cjs/src/base/ws/OrderBookSide.js +0 -6
- package/dist/cjs/src/base/ws/WsClient.js +5 -3
- package/dist/cjs/src/bequant.js +5 -3
- package/dist/cjs/src/bigone.js +5 -3
- package/dist/cjs/src/binance.js +14 -9
- package/dist/cjs/src/binancecoinm.js +5 -3
- package/dist/cjs/src/binanceus.js +5 -3
- package/dist/cjs/src/binanceusdm.js +5 -3
- package/dist/cjs/src/bingx.js +37 -5
- package/dist/cjs/src/bit2c.js +5 -3
- package/dist/cjs/src/bitbank.js +5 -3
- package/dist/cjs/src/bitbns.js +5 -3
- package/dist/cjs/src/bitfinex.js +8 -3
- package/dist/cjs/src/bitflyer.js +5 -3
- package/dist/cjs/src/bitget.js +2177 -552
- package/dist/cjs/src/bithumb.js +5 -3
- package/dist/cjs/src/bitmart.js +5 -3
- package/dist/cjs/src/bitmex.js +6 -3
- package/dist/cjs/src/bitopro.js +5 -3
- package/dist/cjs/src/bitrue.js +5 -3
- package/dist/cjs/src/bitso.js +5 -3
- package/dist/cjs/src/bitstamp.js +5 -3
- package/dist/cjs/src/bitteam.js +5 -3
- package/dist/cjs/src/bittrade.js +5 -3
- package/dist/cjs/src/bitvavo.js +4 -2
- package/dist/cjs/src/blockchaincom.js +5 -3
- package/dist/cjs/src/blofin.js +5 -3
- package/dist/cjs/src/btcalpha.js +5 -3
- package/dist/cjs/src/btcbox.js +5 -3
- package/dist/cjs/src/btcmarkets.js +5 -3
- package/dist/cjs/src/btcturk.js +5 -3
- package/dist/cjs/src/bybit.js +11 -4
- package/dist/cjs/src/cex.js +5 -3
- package/dist/cjs/src/coinbase.js +4 -2
- package/dist/cjs/src/coinbaseadvanced.js +5 -3
- package/dist/cjs/src/coinbaseexchange.js +4 -2
- package/dist/cjs/src/coinbaseinternational.js +4 -2
- package/dist/cjs/src/coincatch.js +5 -3
- package/dist/cjs/src/coincheck.js +5 -3
- package/dist/cjs/src/coinex.js +73 -7
- package/dist/cjs/src/coinmate.js +5 -3
- package/dist/cjs/src/coinmetro.js +5 -3
- package/dist/cjs/src/coinone.js +5 -3
- package/dist/cjs/src/coinsph.js +4 -3
- package/dist/cjs/src/coinspot.js +5 -3
- package/dist/cjs/src/cryptocom.js +6 -4
- package/dist/cjs/src/cryptomus.js +5 -3
- package/dist/cjs/src/defx.js +5 -3
- package/dist/cjs/src/delta.js +5 -3
- package/dist/cjs/src/deribit.js +5 -3
- package/dist/cjs/src/derive.js +5 -3
- package/dist/cjs/src/digifinex.js +5 -3
- package/dist/cjs/src/ellipx.js +5 -3
- package/dist/cjs/src/exmo.js +5 -3
- package/dist/cjs/src/fmfwio.js +5 -3
- package/dist/cjs/src/foxbit.js +8 -7
- package/dist/cjs/src/gate.js +27 -5
- package/dist/cjs/src/gateio.js +5 -3
- package/dist/cjs/src/gemini.js +5 -3
- package/dist/cjs/src/hashkey.js +5 -3
- package/dist/cjs/src/hibachi.js +2138 -0
- package/dist/cjs/src/hitbtc.js +4 -3
- package/dist/cjs/src/hollaex.js +5 -3
- package/dist/cjs/src/htx.js +6 -3
- package/dist/cjs/src/huobi.js +5 -3
- package/dist/cjs/src/hyperliquid.js +84 -31
- package/dist/cjs/src/independentreserve.js +5 -3
- package/dist/cjs/src/indodax.js +5 -3
- package/dist/cjs/src/kraken.js +5 -3
- package/dist/cjs/src/krakenfutures.js +6 -3
- package/dist/cjs/src/kucoin.js +5 -3
- package/dist/cjs/src/kucoinfutures.js +6 -3
- package/dist/cjs/src/latoken.js +5 -3
- package/dist/cjs/src/lbank.js +6 -4
- package/dist/cjs/src/luno.js +5 -3
- package/dist/cjs/src/mercado.js +5 -3
- package/dist/cjs/src/mexc.js +12 -3
- package/dist/cjs/src/modetrade.js +101 -3
- package/dist/cjs/src/myokx.js +5 -3
- package/dist/cjs/src/ndax.js +5 -3
- package/dist/cjs/src/novadax.js +39 -3
- package/dist/cjs/src/oceanex.js +5 -3
- package/dist/cjs/src/okcoin.js +5 -3
- package/dist/cjs/src/okx.js +5 -3
- package/dist/cjs/src/okxus.js +5 -3
- package/dist/cjs/src/onetrading.js +38 -3
- package/dist/cjs/src/oxfun.js +5 -3
- package/dist/cjs/src/p2b.js +37 -3
- package/dist/cjs/src/paradex.js +6 -3
- package/dist/cjs/src/paymium.js +5 -3
- package/dist/cjs/src/phemex.js +4 -2
- package/dist/cjs/src/poloniex.js +5 -3
- package/dist/cjs/src/pro/alpaca.js +5 -3
- package/dist/cjs/src/pro/apex.js +5 -3
- package/dist/cjs/src/pro/ascendex.js +5 -3
- package/dist/cjs/src/pro/bequant.js +6 -4
- package/dist/cjs/src/pro/binance.js +8 -8
- package/dist/cjs/src/pro/binancecoinm.js +6 -4
- package/dist/cjs/src/pro/binanceus.js +6 -4
- package/dist/cjs/src/pro/binanceusdm.js +5 -3
- package/dist/cjs/src/pro/bingx.js +5 -3
- package/dist/cjs/src/pro/bitfinex.js +5 -3
- package/dist/cjs/src/pro/bitget.js +6 -4
- package/dist/cjs/src/pro/bithumb.js +5 -3
- package/dist/cjs/src/pro/bitmart.js +5 -3
- package/dist/cjs/src/pro/bitmex.js +6 -4
- package/dist/cjs/src/pro/bitopro.js +4 -2
- package/dist/cjs/src/pro/bitrue.js +5 -3
- package/dist/cjs/src/pro/bitstamp.js +6 -4
- package/dist/cjs/src/pro/bittrade.js +4 -2
- package/dist/cjs/src/pro/bitvavo.js +8 -4
- package/dist/cjs/src/pro/blockchaincom.js +5 -3
- package/dist/cjs/src/pro/blofin.js +5 -3
- package/dist/cjs/src/pro/bybit.js +6 -3
- package/dist/cjs/src/pro/cex.js +6 -3
- package/dist/cjs/src/pro/coinbase.js +5 -3
- package/dist/cjs/src/pro/coinbaseadvanced.js +5 -3
- package/dist/cjs/src/pro/coinbaseexchange.js +7 -5
- package/dist/cjs/src/pro/coinbaseinternational.js +5 -3
- package/dist/cjs/src/pro/coincatch.js +5 -3
- package/dist/cjs/src/pro/coincheck.js +5 -3
- package/dist/cjs/src/pro/coinex.js +6 -4
- package/dist/cjs/src/pro/coinone.js +5 -3
- package/dist/cjs/src/pro/cryptocom.js +5 -3
- package/dist/cjs/src/pro/defx.js +5 -3
- package/dist/cjs/src/pro/deribit.js +5 -3
- package/dist/cjs/src/pro/derive.js +4 -2
- package/dist/cjs/src/pro/exmo.js +5 -3
- package/dist/cjs/src/pro/gate.js +6 -4
- package/dist/cjs/src/pro/gateio.js +5 -3
- package/dist/cjs/src/pro/gemini.js +5 -3
- package/dist/cjs/src/pro/hashkey.js +5 -3
- package/dist/cjs/src/pro/hitbtc.js +5 -3
- package/dist/cjs/src/pro/hollaex.js +5 -3
- package/dist/cjs/src/pro/htx.js +6 -4
- package/dist/cjs/src/pro/huobi.js +5 -3
- package/dist/cjs/src/pro/hyperliquid.js +108 -15
- package/dist/cjs/src/pro/independentreserve.js +5 -3
- package/dist/cjs/src/pro/kraken.js +5 -3
- package/dist/cjs/src/pro/krakenfutures.js +7 -4
- package/dist/cjs/src/pro/kucoin.js +7 -4
- package/dist/cjs/src/pro/kucoinfutures.js +7 -4
- package/dist/cjs/src/pro/lbank.js +4 -3
- package/dist/cjs/src/pro/luno.js +5 -3
- package/dist/cjs/src/pro/mexc.js +343 -160
- package/dist/cjs/src/pro/modetrade.js +4 -2
- package/dist/cjs/src/pro/myokx.js +5 -3
- package/dist/cjs/src/pro/ndax.js +5 -3
- package/dist/cjs/src/pro/okcoin.js +5 -3
- package/dist/cjs/src/pro/okx.js +10 -7
- package/dist/cjs/src/pro/okxus.js +5 -3
- package/dist/cjs/src/pro/onetrading.js +5 -3
- package/dist/cjs/src/pro/oxfun.js +6 -4
- package/dist/cjs/src/pro/p2b.js +5 -3
- package/dist/cjs/src/pro/paradex.js +5 -3
- package/dist/cjs/src/pro/phemex.js +5 -3
- package/dist/cjs/src/pro/poloniex.js +5 -3
- package/dist/cjs/src/pro/probit.js +5 -3
- package/dist/cjs/src/pro/tradeogre.js +5 -3
- package/dist/cjs/src/pro/upbit.js +5 -3
- package/dist/cjs/src/pro/vertex.js +4 -2
- package/dist/cjs/src/pro/whitebit.js +5 -3
- package/dist/cjs/src/pro/woo.js +4 -2
- package/dist/cjs/src/pro/woofipro.js +4 -2
- package/dist/cjs/src/pro/xt.js +5 -3
- package/dist/cjs/src/probit.js +40 -3
- package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +7180 -0
- package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +1 -7
- package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +2 -8
- package/dist/cjs/src/static_dependencies/ethers/coders/address.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/array.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/null.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/number.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/string.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/fragments.js +2 -8
- package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +2 -8
- package/dist/cjs/src/static_dependencies/ethers/index.js +10 -1
- package/dist/cjs/src/static_dependencies/ethers/interface.js +2 -8
- package/dist/cjs/src/static_dependencies/ethers/typed.js +2 -8
- package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +13 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/data.js +6 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +9 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/events.js +2 -8
- package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +2 -8
- package/dist/cjs/src/static_dependencies/ethers/utils/index.js +7 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +5 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +8 -1
- package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
- package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
- package/dist/cjs/src/static_dependencies/node-fetch/body.js +5 -1
- package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +0 -1
- package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +0 -6
- package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -1
- package/dist/cjs/src/static_dependencies/node-fetch/headers.js +5 -1
- package/dist/cjs/src/static_dependencies/node-fetch/index.js +14 -8
- package/dist/cjs/src/static_dependencies/node-fetch/request.js +7 -1
- package/dist/cjs/src/static_dependencies/node-fetch/response.js +8 -2
- package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
- package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
- package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +0 -6
- package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +0 -1
- package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +0 -1
- package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -1
- package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -1
- package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
- package/dist/cjs/src/static_dependencies/qs/index.cjs.js +3 -1
- package/dist/cjs/src/static_dependencies/scure-base/index.js +0 -6
- package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +2 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +3 -2
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +8 -8
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +4 -3
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +1 -2
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +4 -3
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +4 -2
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +32 -27
- package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +3 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/num.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +3 -3
- package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +0 -6
- package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
- package/dist/cjs/src/timex.js +4 -3
- package/dist/cjs/src/tokocrypto.js +5 -3
- package/dist/cjs/src/tradeogre.js +5 -3
- package/dist/cjs/src/upbit.js +5 -3
- package/dist/cjs/src/vertex.js +5 -3
- package/dist/cjs/src/wavesexchange.js +5 -3
- package/dist/cjs/src/whitebit.js +5 -3
- package/dist/cjs/src/woo.js +5 -3
- package/dist/cjs/src/woofipro.js +101 -3
- package/dist/cjs/src/xt.js +5 -3
- package/dist/cjs/src/yobit.js +5 -3
- package/dist/cjs/src/zaif.js +5 -3
- package/dist/cjs/src/zonda.js +5 -3
- package/js/ccxt.d.ts +5 -2
- package/js/ccxt.js +4 -8
- package/js/src/abstract/alpaca.js +0 -6
- package/js/src/abstract/apex.js +0 -6
- package/js/src/abstract/ascendex.js +0 -6
- package/js/src/abstract/bequant.js +0 -6
- package/js/src/abstract/bigone.js +0 -6
- package/js/src/abstract/binance.js +0 -6
- package/js/src/abstract/binancecoinm.js +0 -6
- package/js/src/abstract/binanceus.js +0 -6
- package/js/src/abstract/binanceusdm.js +0 -6
- package/js/src/abstract/bingx.d.ts +1 -0
- package/js/src/abstract/bingx.js +0 -6
- package/js/src/abstract/bit2c.js +0 -6
- package/js/src/abstract/bitbank.js +0 -6
- package/js/src/abstract/bitbns.js +0 -6
- package/js/src/abstract/bitfinex.js +0 -6
- package/js/src/abstract/bitflyer.js +0 -6
- package/js/src/abstract/bitget.d.ts +6 -0
- package/js/src/abstract/bitget.js +0 -6
- package/js/src/abstract/bithumb.js +0 -6
- package/js/src/abstract/bitmart.js +0 -6
- package/js/src/abstract/bitmex.js +0 -6
- package/js/src/abstract/bitopro.js +0 -6
- package/js/src/abstract/bitrue.js +0 -6
- package/js/src/abstract/bitso.js +0 -6
- package/js/src/abstract/bitstamp.js +0 -6
- package/js/src/abstract/bitteam.js +0 -6
- package/js/src/abstract/bittrade.js +0 -6
- package/js/src/abstract/bitvavo.js +0 -6
- package/js/src/abstract/blockchaincom.js +0 -6
- package/js/src/abstract/blofin.js +0 -6
- package/js/src/abstract/btcalpha.js +0 -6
- package/js/src/abstract/btcbox.js +0 -6
- package/js/src/abstract/btcmarkets.js +0 -6
- package/js/src/abstract/btcturk.js +0 -6
- package/js/src/abstract/bybit.js +0 -6
- package/js/src/abstract/cex.js +0 -6
- package/js/src/abstract/coinbase.js +0 -6
- package/js/src/abstract/coinbaseadvanced.js +0 -6
- package/js/src/abstract/coinbaseexchange.js +0 -6
- package/js/src/abstract/coinbaseinternational.js +0 -6
- package/js/src/abstract/coincatch.js +0 -6
- package/js/src/abstract/coincheck.js +0 -6
- package/js/src/abstract/coinex.js +0 -6
- package/js/src/abstract/coinmate.js +0 -6
- package/js/src/abstract/coinmetro.js +0 -6
- package/js/src/abstract/coinone.js +0 -6
- package/js/src/abstract/coinsph.js +0 -6
- package/js/src/abstract/coinspot.js +0 -6
- package/js/src/abstract/cryptocom.js +0 -6
- package/js/src/abstract/cryptomus.js +0 -6
- package/js/src/abstract/defx.js +0 -6
- package/js/src/abstract/delta.js +0 -6
- package/js/src/abstract/deribit.js +0 -6
- package/js/src/abstract/derive.js +0 -6
- package/js/src/abstract/digifinex.js +0 -6
- package/js/src/abstract/ellipx.js +0 -6
- package/js/src/abstract/exmo.js +0 -6
- package/js/src/abstract/fmfwio.js +0 -6
- package/js/src/abstract/foxbit.js +0 -6
- package/js/src/abstract/gate.js +0 -6
- package/js/src/abstract/gateio.js +0 -6
- package/js/src/abstract/gemini.js +0 -6
- package/js/src/abstract/hashkey.js +0 -6
- package/js/src/abstract/hibachi.d.ts +29 -0
- package/js/src/abstract/hibachi.js +5 -0
- package/js/src/abstract/hitbtc.js +0 -6
- package/js/src/abstract/hollaex.js +0 -6
- package/js/src/abstract/htx.js +0 -6
- package/js/src/abstract/huobi.js +0 -6
- package/js/src/abstract/hyperliquid.js +0 -6
- package/js/src/abstract/independentreserve.js +0 -6
- package/js/src/abstract/indodax.js +0 -6
- package/js/src/abstract/kraken.js +0 -6
- package/js/src/abstract/krakenfutures.js +0 -6
- package/js/src/abstract/kucoin.js +0 -6
- package/js/src/abstract/kucoinfutures.js +0 -6
- package/js/src/abstract/latoken.js +0 -6
- package/js/src/abstract/lbank.js +0 -6
- package/js/src/abstract/luno.js +0 -6
- package/js/src/abstract/mercado.js +0 -6
- package/js/src/abstract/mexc.js +0 -6
- package/js/src/abstract/modetrade.js +0 -6
- package/js/src/abstract/myokx.js +0 -6
- package/js/src/abstract/ndax.js +0 -6
- package/js/src/abstract/novadax.js +0 -6
- package/js/src/abstract/oceanex.js +0 -6
- package/js/src/abstract/okcoin.js +0 -6
- package/js/src/abstract/okx.js +0 -6
- package/js/src/abstract/okxus.js +0 -6
- package/js/src/abstract/onetrading.js +0 -6
- package/js/src/abstract/oxfun.js +0 -6
- package/js/src/abstract/p2b.js +0 -6
- package/js/src/abstract/paradex.js +0 -6
- package/js/src/abstract/paymium.js +0 -6
- package/js/src/abstract/phemex.js +0 -6
- package/js/src/abstract/poloniex.js +0 -6
- package/js/src/abstract/probit.js +0 -6
- package/js/src/abstract/timex.js +0 -6
- package/js/src/abstract/tokocrypto.js +0 -6
- package/js/src/abstract/tradeogre.js +0 -6
- package/js/src/abstract/upbit.js +0 -6
- package/js/src/abstract/vertex.js +0 -6
- package/js/src/abstract/wavesexchange.js +0 -6
- package/js/src/abstract/whitebit.js +0 -6
- package/js/src/abstract/woo.js +0 -6
- package/js/src/abstract/woofipro.js +0 -6
- package/js/src/abstract/xt.js +0 -6
- package/js/src/abstract/yobit.js +0 -6
- package/js/src/abstract/zaif.js +0 -6
- package/js/src/abstract/zonda.js +0 -6
- package/js/src/alpaca.d.ts +1 -1
- package/js/src/alpaca.js +0 -6
- package/js/src/apex.d.ts +1 -1
- package/js/src/apex.js +0 -6
- package/js/src/ascendex.d.ts +1 -1
- package/js/src/ascendex.js +0 -6
- package/js/src/base/Exchange.d.ts +9 -7
- package/js/src/base/Exchange.js +50 -16
- package/js/src/base/Precise.js +0 -6
- package/js/src/base/errorHierarchy.js +0 -6
- package/js/src/base/errors.js +0 -6
- package/js/src/base/functions/crypto.js +0 -6
- package/js/src/base/functions/encode.js +0 -6
- package/js/src/base/functions/generic.js +0 -6
- package/js/src/base/functions/misc.js +0 -6
- package/js/src/base/functions/number.js +0 -6
- package/js/src/base/functions/platform.js +0 -6
- package/js/src/base/functions/rsa.js +0 -6
- package/js/src/base/functions/string.js +0 -6
- package/js/src/base/functions/throttle.js +0 -6
- package/js/src/base/functions/time.js +0 -6
- package/js/src/base/functions/totp.js +0 -6
- package/js/src/base/functions/type.js +0 -6
- package/js/src/base/functions.js +0 -6
- package/js/src/base/types.d.ts +2 -1
- package/js/src/base/types.js +0 -6
- package/js/src/base/ws/Cache.js +0 -6
- package/js/src/base/ws/Client.d.ts +1 -0
- package/js/src/base/ws/Client.js +5 -7
- package/js/src/base/ws/Future.js +0 -6
- package/js/src/base/ws/OrderBook.js +0 -6
- package/js/src/base/ws/OrderBookSide.js +0 -6
- package/js/src/base/ws/WsClient.js +0 -6
- package/js/src/base/ws/functions.js +0 -6
- package/js/src/bequant.js +0 -6
- package/js/src/bigone.d.ts +1 -1
- package/js/src/bigone.js +0 -6
- package/js/src/binance.d.ts +2 -2
- package/js/src/binance.js +9 -12
- package/js/src/binancecoinm.js +0 -6
- package/js/src/binanceus.js +0 -6
- package/js/src/binanceusdm.js +0 -6
- package/js/src/bingx.d.ts +3 -2
- package/js/src/bingx.js +32 -8
- package/js/src/bit2c.js +0 -6
- package/js/src/bitbank.d.ts +1 -1
- package/js/src/bitbank.js +0 -6
- package/js/src/bitbns.js +0 -6
- package/js/src/bitfinex.d.ts +1 -1
- package/js/src/bitfinex.js +3 -6
- package/js/src/bitflyer.d.ts +1 -1
- package/js/src/bitflyer.js +0 -6
- package/js/src/bitget.d.ts +77 -9
- package/js/src/bitget.js +2172 -555
- package/js/src/bithumb.d.ts +1 -1
- package/js/src/bithumb.js +0 -6
- package/js/src/bitmart.d.ts +2 -2
- package/js/src/bitmart.js +0 -6
- package/js/src/bitmex.d.ts +2 -2
- package/js/src/bitmex.js +1 -6
- package/js/src/bitopro.d.ts +1 -1
- package/js/src/bitopro.js +0 -6
- package/js/src/bitrue.d.ts +2 -2
- package/js/src/bitrue.js +0 -6
- package/js/src/bitso.d.ts +1 -1
- package/js/src/bitso.js +0 -6
- package/js/src/bitstamp.d.ts +1 -1
- package/js/src/bitstamp.js +0 -6
- package/js/src/bitteam.js +0 -6
- package/js/src/bittrade.d.ts +1 -1
- package/js/src/bittrade.js +0 -6
- package/js/src/bitvavo.d.ts +1 -1
- package/js/src/bitvavo.js +0 -6
- package/js/src/blockchaincom.d.ts +1 -1
- package/js/src/blockchaincom.js +0 -6
- package/js/src/blofin.d.ts +1 -1
- package/js/src/blofin.js +0 -6
- package/js/src/btcalpha.js +0 -6
- package/js/src/btcbox.js +0 -6
- package/js/src/btcmarkets.d.ts +1 -1
- package/js/src/btcmarkets.js +0 -6
- package/js/src/btcturk.js +0 -6
- package/js/src/bybit.d.ts +2 -2
- package/js/src/bybit.js +6 -7
- package/js/src/cex.js +0 -6
- package/js/src/coinbase.d.ts +1 -1
- package/js/src/coinbase.js +0 -6
- package/js/src/coinbaseadvanced.js +0 -6
- package/js/src/coinbaseexchange.d.ts +1 -1
- package/js/src/coinbaseexchange.js +0 -6
- package/js/src/coinbaseinternational.d.ts +1 -1
- package/js/src/coinbaseinternational.js +0 -6
- package/js/src/coincatch.d.ts +2 -2
- package/js/src/coincatch.js +0 -6
- package/js/src/coincheck.js +0 -6
- package/js/src/coinex.d.ts +13 -3
- package/js/src/coinex.js +68 -10
- package/js/src/coinmate.d.ts +1 -1
- package/js/src/coinmate.js +0 -6
- package/js/src/coinmetro.js +0 -6
- package/js/src/coinone.js +0 -6
- package/js/src/coinsph.d.ts +1 -1
- package/js/src/coinsph.js +0 -6
- package/js/src/coinspot.js +0 -6
- package/js/src/cryptocom.d.ts +1 -1
- package/js/src/cryptocom.js +1 -7
- package/js/src/cryptomus.js +0 -6
- package/js/src/defx.d.ts +2 -2
- package/js/src/defx.js +0 -6
- package/js/src/delta.d.ts +1 -1
- package/js/src/delta.js +0 -6
- package/js/src/deribit.d.ts +1 -1
- package/js/src/deribit.js +0 -6
- package/js/src/derive.js +0 -6
- package/js/src/digifinex.d.ts +2 -2
- package/js/src/digifinex.js +0 -6
- package/js/src/ellipx.d.ts +1 -1
- package/js/src/ellipx.js +0 -6
- package/js/src/exmo.d.ts +1 -1
- package/js/src/exmo.js +0 -6
- package/js/src/fmfwio.js +0 -6
- package/js/src/foxbit.d.ts +1 -1
- package/js/src/foxbit.js +3 -9
- package/js/src/gate.d.ts +2 -2
- package/js/src/gate.js +22 -8
- package/js/src/gateio.js +0 -6
- package/js/src/gemini.d.ts +1 -1
- package/js/src/gemini.js +0 -6
- package/js/src/hashkey.d.ts +3 -3
- package/js/src/hashkey.js +0 -6
- package/js/src/hibachi.d.ts +346 -0
- package/js/src/hibachi.js +2131 -0
- package/js/src/hitbtc.d.ts +2 -2
- package/js/src/hitbtc.js +0 -6
- package/js/src/hollaex.d.ts +1 -1
- package/js/src/hollaex.js +0 -6
- package/js/src/htx.d.ts +3 -3
- package/js/src/htx.js +1 -6
- package/js/src/huobi.js +0 -6
- package/js/src/hyperliquid.d.ts +12 -2
- package/js/src/hyperliquid.js +79 -34
- package/js/src/independentreserve.d.ts +1 -1
- package/js/src/independentreserve.js +0 -6
- package/js/src/indodax.d.ts +1 -1
- package/js/src/indodax.js +0 -6
- package/js/src/kraken.d.ts +1 -1
- package/js/src/kraken.js +0 -6
- package/js/src/krakenfutures.d.ts +1 -1
- package/js/src/krakenfutures.js +1 -6
- package/js/src/kucoin.d.ts +2 -2
- package/js/src/kucoin.js +0 -6
- package/js/src/kucoinfutures.d.ts +3 -2
- package/js/src/kucoinfutures.js +1 -6
- package/js/src/latoken.js +0 -6
- package/js/src/lbank.d.ts +1 -1
- package/js/src/lbank.js +1 -7
- package/js/src/luno.js +0 -6
- package/js/src/mercado.d.ts +1 -1
- package/js/src/mercado.js +0 -6
- package/js/src/mexc.d.ts +2 -2
- package/js/src/mexc.js +7 -6
- package/js/src/modetrade.d.ts +26 -3
- package/js/src/modetrade.js +96 -6
- package/js/src/myokx.js +0 -6
- package/js/src/ndax.d.ts +1 -1
- package/js/src/ndax.js +0 -6
- package/js/src/novadax.d.ts +1 -1
- package/js/src/novadax.js +34 -6
- package/js/src/oceanex.js +0 -6
- package/js/src/okcoin.d.ts +1 -1
- package/js/src/okcoin.js +0 -6
- package/js/src/okx.d.ts +2 -2
- package/js/src/okx.js +0 -6
- package/js/src/okxus.js +0 -6
- package/js/src/onetrading.js +33 -6
- package/js/src/oxfun.d.ts +1 -1
- package/js/src/oxfun.js +0 -6
- package/js/src/p2b.js +32 -6
- package/js/src/paradex.d.ts +1 -1
- package/js/src/paradex.js +1 -6
- package/js/src/paymium.js +0 -6
- package/js/src/phemex.d.ts +2 -2
- package/js/src/phemex.js +0 -6
- package/js/src/poloniex.d.ts +2 -2
- package/js/src/poloniex.js +0 -6
- package/js/src/pro/alpaca.d.ts +2 -2
- package/js/src/pro/alpaca.js +0 -6
- package/js/src/pro/apex.d.ts +2 -2
- package/js/src/pro/apex.js +0 -6
- package/js/src/pro/ascendex.d.ts +2 -2
- package/js/src/pro/ascendex.js +0 -6
- package/js/src/pro/bequant.js +0 -6
- package/js/src/pro/binance.d.ts +2 -2
- package/js/src/pro/binance.js +4 -12
- package/js/src/pro/binancecoinm.js +0 -6
- package/js/src/pro/binanceus.js +0 -6
- package/js/src/pro/binanceusdm.js +0 -6
- package/js/src/pro/bingx.js +0 -6
- package/js/src/pro/bitfinex.js +0 -6
- package/js/src/pro/bitget.d.ts +2 -2
- package/js/src/pro/bitget.js +1 -7
- package/js/src/pro/bithumb.d.ts +2 -2
- package/js/src/pro/bithumb.js +0 -6
- package/js/src/pro/bitmart.d.ts +2 -2
- package/js/src/pro/bitmart.js +0 -6
- package/js/src/pro/bitmex.d.ts +3 -3
- package/js/src/pro/bitmex.js +1 -7
- package/js/src/pro/bitopro.js +0 -6
- package/js/src/pro/bitrue.js +0 -6
- package/js/src/pro/bitstamp.d.ts +2 -2
- package/js/src/pro/bitstamp.js +1 -7
- package/js/src/pro/bittrade.d.ts +2 -2
- package/js/src/pro/bittrade.js +0 -6
- package/js/src/pro/bitvavo.d.ts +2 -2
- package/js/src/pro/bitvavo.js +3 -7
- package/js/src/pro/blockchaincom.js +0 -6
- package/js/src/pro/blofin.js +0 -6
- package/js/src/pro/bybit.d.ts +4 -4
- package/js/src/pro/bybit.js +1 -6
- package/js/src/pro/cex.d.ts +2 -2
- package/js/src/pro/cex.js +1 -6
- package/js/src/pro/coinbase.js +0 -6
- package/js/src/pro/coinbaseadvanced.js +0 -6
- package/js/src/pro/coinbaseexchange.d.ts +4 -4
- package/js/src/pro/coinbaseexchange.js +2 -8
- package/js/src/pro/coinbaseinternational.d.ts +2 -2
- package/js/src/pro/coinbaseinternational.js +0 -6
- package/js/src/pro/coincatch.d.ts +2 -2
- package/js/src/pro/coincatch.js +0 -6
- package/js/src/pro/coincheck.js +0 -6
- package/js/src/pro/coinex.js +1 -7
- package/js/src/pro/coinone.d.ts +2 -2
- package/js/src/pro/coinone.js +0 -6
- package/js/src/pro/cryptocom.d.ts +2 -2
- package/js/src/pro/cryptocom.js +0 -6
- package/js/src/pro/defx.js +0 -6
- package/js/src/pro/deribit.js +0 -6
- package/js/src/pro/derive.d.ts +2 -2
- package/js/src/pro/derive.js +0 -6
- package/js/src/pro/exmo.js +0 -6
- package/js/src/pro/gate.d.ts +3 -3
- package/js/src/pro/gate.js +1 -7
- package/js/src/pro/gateio.js +0 -6
- package/js/src/pro/gemini.js +0 -6
- package/js/src/pro/hashkey.js +0 -6
- package/js/src/pro/hitbtc.js +0 -6
- package/js/src/pro/hollaex.d.ts +2 -2
- package/js/src/pro/hollaex.js +0 -6
- package/js/src/pro/htx.d.ts +2 -2
- package/js/src/pro/htx.js +1 -7
- package/js/src/pro/huobi.js +0 -6
- package/js/src/pro/hyperliquid.d.ts +28 -2
- package/js/src/pro/hyperliquid.js +103 -18
- package/js/src/pro/independentreserve.js +0 -6
- package/js/src/pro/kraken.d.ts +2 -2
- package/js/src/pro/kraken.js +0 -6
- package/js/src/pro/krakenfutures.d.ts +3 -3
- package/js/src/pro/krakenfutures.js +2 -7
- package/js/src/pro/kucoin.d.ts +2 -2
- package/js/src/pro/kucoin.js +2 -7
- package/js/src/pro/kucoinfutures.d.ts +2 -2
- package/js/src/pro/kucoinfutures.js +2 -7
- package/js/src/pro/lbank.js +0 -6
- package/js/src/pro/luno.js +0 -6
- package/js/src/pro/mexc.d.ts +9 -6
- package/js/src/pro/mexc.js +338 -163
- package/js/src/pro/modetrade.d.ts +2 -2
- package/js/src/pro/modetrade.js +0 -6
- package/js/src/pro/myokx.js +0 -6
- package/js/src/pro/ndax.js +0 -6
- package/js/src/pro/okcoin.d.ts +2 -2
- package/js/src/pro/okcoin.js +0 -6
- package/js/src/pro/okx.d.ts +4 -4
- package/js/src/pro/okx.js +5 -10
- package/js/src/pro/okxus.js +0 -6
- package/js/src/pro/onetrading.d.ts +2 -2
- package/js/src/pro/onetrading.js +0 -6
- package/js/src/pro/oxfun.js +1 -7
- package/js/src/pro/p2b.d.ts +2 -2
- package/js/src/pro/p2b.js +0 -6
- package/js/src/pro/paradex.d.ts +2 -2
- package/js/src/pro/paradex.js +0 -6
- package/js/src/pro/phemex.js +0 -6
- package/js/src/pro/poloniex.d.ts +2 -2
- package/js/src/pro/poloniex.js +0 -6
- package/js/src/pro/probit.d.ts +2 -2
- package/js/src/pro/probit.js +0 -6
- package/js/src/pro/tradeogre.js +0 -6
- package/js/src/pro/upbit.js +0 -6
- package/js/src/pro/vertex.d.ts +2 -2
- package/js/src/pro/vertex.js +0 -6
- package/js/src/pro/whitebit.d.ts +2 -2
- package/js/src/pro/whitebit.js +0 -6
- package/js/src/pro/woo.d.ts +2 -2
- package/js/src/pro/woo.js +0 -6
- package/js/src/pro/woofipro.d.ts +2 -2
- package/js/src/pro/woofipro.js +0 -6
- package/js/src/pro/xt.js +0 -6
- package/js/src/probit.d.ts +1 -1
- package/js/src/probit.js +35 -6
- package/js/src/protobuf/mexc/compiled.cjs +7180 -0
- package/js/src/protobuf/mexc/compiled.d.cts +2 -0
- package/js/src/static_dependencies/ethers/abi-coder.js +0 -6
- package/js/src/static_dependencies/ethers/address/address.js +0 -6
- package/js/src/static_dependencies/ethers/address/checks.js +0 -6
- package/js/src/static_dependencies/ethers/address/contract-address.js +0 -6
- package/js/src/static_dependencies/ethers/address/index.js +0 -6
- package/js/src/static_dependencies/ethers/bytes32.js +0 -6
- package/js/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
- package/js/src/static_dependencies/ethers/coders/address.js +0 -6
- package/js/src/static_dependencies/ethers/coders/anonymous.js +0 -6
- package/js/src/static_dependencies/ethers/coders/array.js +0 -6
- package/js/src/static_dependencies/ethers/coders/boolean.js +0 -6
- package/js/src/static_dependencies/ethers/coders/bytes.js +0 -6
- package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -6
- package/js/src/static_dependencies/ethers/coders/null.js +0 -6
- package/js/src/static_dependencies/ethers/coders/number.js +0 -6
- package/js/src/static_dependencies/ethers/coders/string.js +0 -6
- package/js/src/static_dependencies/ethers/coders/tuple.js +0 -6
- package/js/src/static_dependencies/ethers/fragments.js +0 -6
- package/js/src/static_dependencies/ethers/hash/index.js +0 -6
- package/js/src/static_dependencies/ethers/hash/solidity.js +0 -6
- package/js/src/static_dependencies/ethers/hash/typed-data.js +0 -6
- package/js/src/static_dependencies/ethers/index.js +0 -6
- package/js/src/static_dependencies/ethers/interface.js +0 -6
- package/js/src/static_dependencies/ethers/typed.js +0 -6
- package/js/src/static_dependencies/ethers/utils/base58.js +0 -6
- package/js/src/static_dependencies/ethers/utils/base64-browser.js +0 -6
- package/js/src/static_dependencies/ethers/utils/base64.js +0 -6
- package/js/src/static_dependencies/ethers/utils/data.js +0 -6
- package/js/src/static_dependencies/ethers/utils/errors.js +0 -6
- package/js/src/static_dependencies/ethers/utils/events.js +0 -6
- package/js/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
- package/js/src/static_dependencies/ethers/utils/index.js +0 -6
- package/js/src/static_dependencies/ethers/utils/maths.js +0 -6
- package/js/src/static_dependencies/ethers/utils/properties.js +0 -6
- package/js/src/static_dependencies/ethers/utils/rlp-decode.js +0 -6
- package/js/src/static_dependencies/ethers/utils/rlp-encode.js +0 -6
- package/js/src/static_dependencies/ethers/utils/rlp.js +0 -6
- package/js/src/static_dependencies/ethers/utils/units.js +0 -6
- package/js/src/static_dependencies/ethers/utils/utf8.js +0 -6
- package/js/src/static_dependencies/ethers/utils/uuid.js +0 -6
- package/js/src/static_dependencies/fflake/browser.js +0 -6
- package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -6
- package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -6
- package/js/src/static_dependencies/jsencrypt/index.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
- package/js/src/static_dependencies/messagepack/msgpack.js +0 -6
- package/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -6
- package/js/src/static_dependencies/noble-curves/bn.js +0 -6
- package/js/src/static_dependencies/noble-curves/ed25519.js +0 -6
- package/js/src/static_dependencies/noble-curves/ed448.js +0 -6
- package/js/src/static_dependencies/noble-curves/index.js +0 -6
- package/js/src/static_dependencies/noble-curves/jubjub.js +0 -6
- package/js/src/static_dependencies/noble-curves/p256.js +0 -6
- package/js/src/static_dependencies/noble-curves/p384.js +0 -6
- package/js/src/static_dependencies/noble-curves/p521.js +0 -6
- package/js/src/static_dependencies/noble-curves/pasta.js +0 -6
- package/js/src/static_dependencies/noble-curves/secp256k1.js +0 -6
- package/js/src/static_dependencies/noble-hashes/_assert.js +0 -6
- package/js/src/static_dependencies/noble-hashes/_blake2.js +0 -6
- package/js/src/static_dependencies/noble-hashes/_sha2.js +0 -6
- package/js/src/static_dependencies/noble-hashes/_u64.js +0 -6
- package/js/src/static_dependencies/noble-hashes/argon2.js +0 -6
- package/js/src/static_dependencies/noble-hashes/blake2b.js +0 -6
- package/js/src/static_dependencies/noble-hashes/blake2s.js +0 -6
- package/js/src/static_dependencies/noble-hashes/blake3.js +0 -6
- package/js/src/static_dependencies/noble-hashes/crypto.js +0 -6
- package/js/src/static_dependencies/noble-hashes/cryptoNode.js +0 -6
- package/js/src/static_dependencies/noble-hashes/eskdf.js +0 -6
- package/js/src/static_dependencies/noble-hashes/hkdf.js +0 -6
- package/js/src/static_dependencies/noble-hashes/hmac.js +0 -6
- package/js/src/static_dependencies/noble-hashes/index.js +0 -6
- package/js/src/static_dependencies/noble-hashes/md5.js +0 -6
- package/js/src/static_dependencies/noble-hashes/pbkdf2.js +0 -6
- package/js/src/static_dependencies/noble-hashes/ripemd160.js +0 -6
- package/js/src/static_dependencies/noble-hashes/scrypt.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha1.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha256.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha3-addons.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha3.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha512.js +0 -6
- package/js/src/static_dependencies/noble-hashes/utils.js +0 -6
- package/js/src/static_dependencies/node-fetch/body.js +0 -6
- package/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -6
- package/js/src/static_dependencies/node-fetch/errors/base.js +0 -6
- package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -6
- package/js/src/static_dependencies/node-fetch/headers.js +0 -6
- package/js/src/static_dependencies/node-fetch/index.js +0 -6
- package/js/src/static_dependencies/node-fetch/request.js +0 -6
- package/js/src/static_dependencies/node-fetch/response.js +0 -6
- package/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
- package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
- package/js/src/static_dependencies/node-fetch/utils/is.js +0 -6
- package/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -6
- package/js/src/static_dependencies/proxies/agent-base/helpers.js +0 -6
- package/js/src/static_dependencies/proxies/agent-base/index.js +0 -6
- package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -6
- package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -6
- package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
- package/js/src/static_dependencies/qs/formats.cjs +0 -6
- package/js/src/static_dependencies/qs/index.cjs +0 -6
- package/js/src/static_dependencies/qs/parse.cjs +0 -6
- package/js/src/static_dependencies/qs/stringify.cjs +0 -6
- package/js/src/static_dependencies/qs/utils.cjs +0 -6
- package/js/src/static_dependencies/scure-base/index.js +0 -6
- package/js/src/static_dependencies/scure-starknet/index.js +0 -6
- package/js/src/static_dependencies/starknet/constants.js +0 -6
- package/js/src/static_dependencies/starknet/index.js +0 -6
- package/js/src/static_dependencies/starknet/types/cairoEnum.js +0 -6
- package/js/src/static_dependencies/starknet/types/calldata.js +0 -6
- package/js/src/static_dependencies/starknet/types/index.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/index.js +0 -6
- package/js/src/static_dependencies/starknet/types/typedData.js +0 -6
- package/js/src/static_dependencies/starknet/utils/address.js +0 -6
- package/js/src/static_dependencies/starknet/utils/assert.js +0 -6
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +0 -6
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +0 -6
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/index.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/validate.js +0 -6
- package/js/src/static_dependencies/starknet/utils/encode.js +0 -6
- package/js/src/static_dependencies/starknet/utils/hash/classHash.js +0 -6
- package/js/src/static_dependencies/starknet/utils/hash/index.js +0 -6
- package/js/src/static_dependencies/starknet/utils/merkle.js +0 -6
- package/js/src/static_dependencies/starknet/utils/num.js +0 -6
- package/js/src/static_dependencies/starknet/utils/selector.js +0 -6
- package/js/src/static_dependencies/starknet/utils/shortString.js +0 -6
- package/js/src/static_dependencies/starknet/utils/starknetId.js +0 -6
- package/js/src/static_dependencies/starknet/utils/typedData.js +0 -6
- package/js/src/static_dependencies/starknet/utils/uint256.js +0 -6
- package/js/src/static_dependencies/starknet/utils/url.js +0 -6
- package/js/src/static_dependencies/watchable/src/index.js +0 -6
- package/js/src/static_dependencies/watchable/src/types.js +0 -6
- package/js/src/static_dependencies/watchable/src/unpromise.js +0 -6
- package/js/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
- package/js/src/timex.js +0 -6
- package/js/src/tokocrypto.d.ts +1 -1
- package/js/src/tokocrypto.js +0 -6
- package/js/src/tradeogre.js +0 -6
- package/js/src/upbit.d.ts +1 -1
- package/js/src/upbit.js +0 -6
- package/js/src/vertex.d.ts +1 -1
- package/js/src/vertex.js +0 -6
- package/js/src/wavesexchange.d.ts +1 -1
- package/js/src/wavesexchange.js +0 -6
- package/js/src/whitebit.d.ts +2 -2
- package/js/src/whitebit.js +0 -6
- package/js/src/woo.d.ts +4 -4
- package/js/src/woo.js +0 -6
- package/js/src/woofipro.d.ts +26 -3
- package/js/src/woofipro.js +96 -6
- package/js/src/xt.d.ts +3 -3
- package/js/src/xt.js +0 -6
- package/js/src/yobit.d.ts +1 -1
- package/js/src/yobit.js +0 -6
- package/js/src/zaif.d.ts +1 -1
- package/js/src/zaif.js +0 -6
- package/js/src/zonda.d.ts +1 -1
- package/js/src/zonda.js +0 -6
- package/package.json +4 -3
package/js/src/pro/mexc.js
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
// ----------------------------------------------------------------------------
|
|
2
|
-
|
|
3
|
-
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
4
|
-
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
|
-
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
|
6
|
-
|
|
7
1
|
// ---------------------------------------------------------------------------
|
|
8
2
|
import mexcRest from '../mexc.js';
|
|
9
3
|
import { ArgumentsRequired, AuthenticationError, NotSupported } from '../base/errors.js';
|
|
@@ -44,13 +38,14 @@ export default class mexc extends mexcRest {
|
|
|
44
38
|
'urls': {
|
|
45
39
|
'api': {
|
|
46
40
|
'ws': {
|
|
47
|
-
'spot': 'wss://wbs.mexc.com/ws',
|
|
41
|
+
'spot': 'wss://wbs-api.mexc.com/ws',
|
|
48
42
|
'swap': 'wss://contract.mexc.com/edge',
|
|
49
43
|
},
|
|
50
44
|
},
|
|
51
45
|
},
|
|
52
46
|
'options': {
|
|
53
47
|
'listenKeyRefreshRate': 1200000,
|
|
48
|
+
'decompressBinary': false,
|
|
54
49
|
// TODO add reset connection after #16754 is merged
|
|
55
50
|
'timeframes': {
|
|
56
51
|
'1m': 'Min1',
|
|
@@ -94,15 +89,7 @@ export default class mexc extends mexcRest {
|
|
|
94
89
|
const market = this.market(symbol);
|
|
95
90
|
const messageHash = 'ticker:' + market['symbol'];
|
|
96
91
|
if (market['spot']) {
|
|
97
|
-
|
|
98
|
-
[miniTicker, params] = this.handleOptionAndParams(params, 'watchTicker', 'miniTicker');
|
|
99
|
-
let channel = undefined;
|
|
100
|
-
if (miniTicker) {
|
|
101
|
-
channel = 'spot@public.miniTicker.v3.api@' + market['id'] + '@UTC+8';
|
|
102
|
-
}
|
|
103
|
-
else {
|
|
104
|
-
channel = 'spot@public.bookTicker.v3.api@' + market['id'];
|
|
105
|
-
}
|
|
92
|
+
const channel = 'spot@public.aggre.bookTicker.v3.api.pb@100ms@' + market['id'];
|
|
106
93
|
return await this.watchSpotPublic(channel, messageHash, params);
|
|
107
94
|
}
|
|
108
95
|
else {
|
|
@@ -182,9 +169,9 @@ export default class mexc extends mexcRest {
|
|
|
182
169
|
// }
|
|
183
170
|
//
|
|
184
171
|
this.handleBidAsk(client, message);
|
|
185
|
-
const rawTicker = this.
|
|
172
|
+
const rawTicker = this.safeDictN(message, ['d', 'data', 'publicAggreBookTicker']);
|
|
186
173
|
const marketId = this.safeString2(message, 's', 'symbol');
|
|
187
|
-
const timestamp = this.
|
|
174
|
+
const timestamp = this.safeInteger2(message, 't', 'sendtime');
|
|
188
175
|
const market = this.safeMarket(marketId);
|
|
189
176
|
const symbol = market['symbol'];
|
|
190
177
|
let ticker = undefined;
|
|
@@ -227,34 +214,33 @@ export default class mexc extends mexcRest {
|
|
|
227
214
|
const url = (isSpot) ? this.urls['api']['ws']['spot'] : this.urls['api']['ws']['swap'];
|
|
228
215
|
const request = {};
|
|
229
216
|
if (isSpot) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
request['
|
|
257
|
-
request['params'] = topics;
|
|
217
|
+
throw new NotSupported(this.id + ' watchTickers does not support spot markets');
|
|
218
|
+
// let miniTicker = false;
|
|
219
|
+
// [ miniTicker, params ] = this.handleOptionAndParams (params, 'watchTickers', 'miniTicker');
|
|
220
|
+
// const topics = [];
|
|
221
|
+
// if (!miniTicker) {
|
|
222
|
+
// if (symbols === undefined) {
|
|
223
|
+
// throw new ArgumentsRequired (this.id + ' watchTickers required symbols argument for the bookTicker channel');
|
|
224
|
+
// }
|
|
225
|
+
// const marketIds = this.marketIds (symbols);
|
|
226
|
+
// for (let i = 0; i < marketIds.length; i++) {
|
|
227
|
+
// const marketId = marketIds[i];
|
|
228
|
+
// messageHashes.push ('ticker:' + symbols[i]);
|
|
229
|
+
// const channel = 'spot@public.bookTicker.v3.api@' + marketId;
|
|
230
|
+
// topics.push (channel);
|
|
231
|
+
// }
|
|
232
|
+
// } else {
|
|
233
|
+
// topics.push ('spot@public.miniTickers.v3.api@UTC+8');
|
|
234
|
+
// if (symbols === undefined) {
|
|
235
|
+
// messageHashes.push ('spot:ticker');
|
|
236
|
+
// } else {
|
|
237
|
+
// for (let i = 0; i < symbols.length; i++) {
|
|
238
|
+
// messageHashes.push ('ticker:' + symbols[i]);
|
|
239
|
+
// }
|
|
240
|
+
// }
|
|
241
|
+
// }
|
|
242
|
+
// request['method'] = 'SUBSCRIPTION';
|
|
243
|
+
// request['params'] = topics;
|
|
258
244
|
}
|
|
259
245
|
else {
|
|
260
246
|
request['method'] = 'sub.tickers';
|
|
@@ -359,6 +345,11 @@ export default class mexc extends mexcRest {
|
|
|
359
345
|
client.resolve(result, topic);
|
|
360
346
|
}
|
|
361
347
|
parseWsTicker(ticker, market = undefined) {
|
|
348
|
+
// protobuf ticker
|
|
349
|
+
// "bidprice": "93387.28", // Best bid price
|
|
350
|
+
// "bidquantity": "3.73485", // Best bid quantity
|
|
351
|
+
// "askprice": "93387.29", // Best ask price
|
|
352
|
+
// "askquantity": "7.669875" // Best ask quantity
|
|
362
353
|
//
|
|
363
354
|
// spot
|
|
364
355
|
//
|
|
@@ -373,7 +364,7 @@ export default class mexc extends mexcRest {
|
|
|
373
364
|
//
|
|
374
365
|
// {
|
|
375
366
|
// "s": "BTCUSDT",
|
|
376
|
-
// "p": "
|
|
367
|
+
// "p": "76521",
|
|
377
368
|
// "r": "0.0012",
|
|
378
369
|
// "tr": "0.0012",
|
|
379
370
|
// "h": "77196.3",
|
|
@@ -399,10 +390,10 @@ export default class mexc extends mexcRest {
|
|
|
399
390
|
'low': this.safeNumber(ticker, 'l'),
|
|
400
391
|
'close': price,
|
|
401
392
|
'last': price,
|
|
402
|
-
'bid': this.
|
|
403
|
-
'bidVolume': this.
|
|
404
|
-
'ask': this.
|
|
405
|
-
'askVolume': this.
|
|
393
|
+
'bid': this.safeNumber2(ticker, 'b', 'bidPrice'),
|
|
394
|
+
'bidVolume': this.safeNumber2(ticker, 'B', 'bidQuantity'),
|
|
395
|
+
'ask': this.safeNumber2(ticker, 'a', 'askPrice'),
|
|
396
|
+
'askVolume': this.safeNumber2(ticker, 'A', 'askQuantity'),
|
|
406
397
|
'vwap': undefined,
|
|
407
398
|
'previousClose': undefined,
|
|
408
399
|
'change': undefined,
|
|
@@ -439,7 +430,7 @@ export default class mexc extends mexcRest {
|
|
|
439
430
|
for (let i = 0; i < symbols.length; i++) {
|
|
440
431
|
if (isSpot) {
|
|
441
432
|
const market = this.market(symbols[i]);
|
|
442
|
-
topics.push('spot@public.bookTicker.v3.api@' + market['id']);
|
|
433
|
+
topics.push('spot@public.aggre.bookTicker.v3.api.pb@100ms@' + market['id']);
|
|
443
434
|
}
|
|
444
435
|
messageHashes.push('bidask:' + symbols[i]);
|
|
445
436
|
}
|
|
@@ -547,7 +538,7 @@ export default class mexc extends mexcRest {
|
|
|
547
538
|
/**
|
|
548
539
|
* @method
|
|
549
540
|
* @name mexc#watchOHLCV
|
|
550
|
-
* @see https://
|
|
541
|
+
* @see https://www.mexc.com/api-docs/spot-v3/websocket-market-streams#trade-streams
|
|
551
542
|
* @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
552
543
|
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
553
544
|
* @param {string} timeframe the length of time each candle represents
|
|
@@ -565,7 +556,7 @@ export default class mexc extends mexcRest {
|
|
|
565
556
|
const messageHash = 'candles:' + symbol + ':' + timeframe;
|
|
566
557
|
let ohlcv = undefined;
|
|
567
558
|
if (market['spot']) {
|
|
568
|
-
const channel = 'spot@public.kline.v3.api@' + market['id'] + '@' + timeframeId;
|
|
559
|
+
const channel = 'spot@public.kline.v3.api.pb@' + market['id'] + '@' + timeframeId;
|
|
569
560
|
ohlcv = await this.watchSpotPublic(channel, messageHash, params);
|
|
570
561
|
}
|
|
571
562
|
else {
|
|
@@ -627,17 +618,47 @@ export default class mexc extends mexcRest {
|
|
|
627
618
|
// "symbol": "BTC_USDT",
|
|
628
619
|
// "ts": 1651230713067
|
|
629
620
|
// }
|
|
621
|
+
// protobuf
|
|
622
|
+
// {
|
|
623
|
+
// "channel":"spot@public.kline.v3.api.pb@BTCUSDT@Min1",
|
|
624
|
+
// "symbol":"BTCUSDT",
|
|
625
|
+
// "symbolId":"2fb942154ef44a4ab2ef98c8afb6a4a7",
|
|
626
|
+
// "createTime":"1754737941062",
|
|
627
|
+
// "publicSpotKline":{
|
|
628
|
+
// "interval":"Min1",
|
|
629
|
+
// "windowStart":"1754737920",
|
|
630
|
+
// "openingPrice":"117317.31",
|
|
631
|
+
// "closingPrice":"117325.26",
|
|
632
|
+
// "highestPrice":"117341",
|
|
633
|
+
// "lowestPrice":"117317.3",
|
|
634
|
+
// "volume":"3.12599854",
|
|
635
|
+
// "amount":"366804.43",
|
|
636
|
+
// "windowEnd":"1754737980"
|
|
637
|
+
// }
|
|
638
|
+
// }
|
|
630
639
|
//
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
640
|
+
let parsed = undefined;
|
|
641
|
+
let symbol = undefined;
|
|
642
|
+
let timeframe = undefined;
|
|
643
|
+
if ('publicSpotKline' in message) {
|
|
644
|
+
symbol = this.symbol(this.safeString(message, 'symbol'));
|
|
645
|
+
const data = this.safeDict(message, 'publicSpotKline', {});
|
|
646
|
+
const timeframeId = this.safeString(data, 'interval');
|
|
647
|
+
timeframe = this.findTimeframe(timeframeId, this.options['timeframes']);
|
|
648
|
+
parsed = this.parseWsOHLCV(data, this.safeMarket(symbol));
|
|
649
|
+
}
|
|
650
|
+
else {
|
|
651
|
+
const d = this.safeValue2(message, 'd', 'data', {});
|
|
652
|
+
const rawOhlcv = this.safeValue(d, 'k', d);
|
|
653
|
+
const timeframeId = this.safeString2(rawOhlcv, 'i', 'interval');
|
|
654
|
+
const timeframes = this.safeValue(this.options, 'timeframes', {});
|
|
655
|
+
timeframe = this.findTimeframe(timeframeId, timeframes);
|
|
656
|
+
const marketId = this.safeString2(message, 's', 'symbol');
|
|
657
|
+
const market = this.safeMarket(marketId);
|
|
658
|
+
symbol = market['symbol'];
|
|
659
|
+
parsed = this.parseWsOHLCV(rawOhlcv, market);
|
|
660
|
+
}
|
|
639
661
|
const messageHash = 'candles:' + symbol + ':' + timeframe;
|
|
640
|
-
const parsed = this.parseWsOHLCV(rawOhlcv, market);
|
|
641
662
|
this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
|
|
642
663
|
let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
|
|
643
664
|
if (stored === undefined) {
|
|
@@ -680,25 +701,37 @@ export default class mexc extends mexcRest {
|
|
|
680
701
|
// "rh": 27301.8,
|
|
681
702
|
// "rl": 27301.8
|
|
682
703
|
// }
|
|
704
|
+
// protobuf
|
|
705
|
+
//
|
|
706
|
+
// "interval":"Min1",
|
|
707
|
+
// "windowStart":"1754737920",
|
|
708
|
+
// "openingPrice":"117317.31",
|
|
709
|
+
// "closingPrice":"117325.26",
|
|
710
|
+
// "highestPrice":"117341",
|
|
711
|
+
// "lowestPrice":"117317.3",
|
|
712
|
+
// "volume":"3.12599854",
|
|
713
|
+
// "amount":"366804.43",
|
|
714
|
+
// "windowEnd":"1754737980"
|
|
683
715
|
//
|
|
684
716
|
return [
|
|
685
|
-
this.
|
|
686
|
-
this.
|
|
687
|
-
this.
|
|
688
|
-
this.
|
|
689
|
-
this.
|
|
690
|
-
this.safeNumber2(ohlcv, 'v', '
|
|
717
|
+
this.safeTimestamp2(ohlcv, 't', 'windowStart'),
|
|
718
|
+
this.safeNumber2(ohlcv, 'o', 'openingPrice'),
|
|
719
|
+
this.safeNumber2(ohlcv, 'h', 'highestPrice'),
|
|
720
|
+
this.safeNumber2(ohlcv, 'l', 'lowestPrice'),
|
|
721
|
+
this.safeNumber2(ohlcv, 'c', 'closingPrice'),
|
|
722
|
+
this.safeNumber2(ohlcv, 'v', 'volume'),
|
|
691
723
|
];
|
|
692
724
|
}
|
|
693
725
|
/**
|
|
694
726
|
* @method
|
|
695
727
|
* @name mexc#watchOrderBook
|
|
696
|
-
* @see https://
|
|
728
|
+
* @see https://www.mexc.com/api-docs/spot-v3/websocket-market-streams#trade-streams
|
|
697
729
|
* @see https://mexcdevelop.github.io/apidocs/contract_v1_en/#public-channels
|
|
698
730
|
* @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
699
731
|
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
700
732
|
* @param {int} [limit] the maximum amount of order book entries to return
|
|
701
733
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
734
|
+
* @param {string} [params.frequency] the frequency of the order book updates, default is '10ms', can be '100ms' or '10ms
|
|
702
735
|
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
703
736
|
*/
|
|
704
737
|
async watchOrderBook(symbol, limit = undefined, params = {}) {
|
|
@@ -708,7 +741,9 @@ export default class mexc extends mexcRest {
|
|
|
708
741
|
const messageHash = 'orderbook:' + symbol;
|
|
709
742
|
let orderbook = undefined;
|
|
710
743
|
if (market['spot']) {
|
|
711
|
-
|
|
744
|
+
let frequency = undefined;
|
|
745
|
+
[frequency, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'frequency', '100ms');
|
|
746
|
+
const channel = 'spot@public.aggre.depth.v3.api.pb@' + frequency + '@' + market['id'];
|
|
712
747
|
orderbook = await this.watchSpotPublic(channel, messageHash, params);
|
|
713
748
|
}
|
|
714
749
|
else {
|
|
@@ -734,13 +769,13 @@ export default class mexc extends mexcRest {
|
|
|
734
769
|
// return the first index of the cache that can be applied to the orderbook or -1 if not possible
|
|
735
770
|
const nonce = this.safeInteger(orderbook, 'nonce');
|
|
736
771
|
const firstDelta = this.safeValue(cache, 0);
|
|
737
|
-
const firstDeltaNonce = this.
|
|
772
|
+
const firstDeltaNonce = this.safeIntegerN(firstDelta, ['r', 'version', 'fromVersion']);
|
|
738
773
|
if (nonce < firstDeltaNonce - 1) {
|
|
739
774
|
return -1;
|
|
740
775
|
}
|
|
741
776
|
for (let i = 0; i < cache.length; i++) {
|
|
742
777
|
const delta = cache[i];
|
|
743
|
-
const deltaNonce = this.
|
|
778
|
+
const deltaNonce = this.safeIntegerN(delta, ['r', 'version', 'fromVersion']);
|
|
744
779
|
if (deltaNonce >= nonce) {
|
|
745
780
|
return i;
|
|
746
781
|
}
|
|
@@ -790,8 +825,31 @@ export default class mexc extends mexcRest {
|
|
|
790
825
|
// "symbol":"BTC_USDT",
|
|
791
826
|
// "ts":1651239652372
|
|
792
827
|
// }
|
|
828
|
+
// protofbuf
|
|
829
|
+
// {
|
|
830
|
+
// "channel":"spot@public.aggre.depth.v3.api.pb@100ms@BTCUSDT",
|
|
831
|
+
// "symbol":"BTCUSDT",
|
|
832
|
+
// "sendTime":"1754741322152",
|
|
833
|
+
// "publicAggreDepths":{
|
|
834
|
+
// "asks":[
|
|
835
|
+
// {
|
|
836
|
+
// "price":"117145.49",
|
|
837
|
+
// "quantity":"0"
|
|
838
|
+
// }
|
|
839
|
+
// ],
|
|
840
|
+
// "bids":[
|
|
841
|
+
// {
|
|
842
|
+
// "price":"117053.41",
|
|
843
|
+
// "quantity":"1.86837271"
|
|
844
|
+
// }
|
|
845
|
+
// ],
|
|
846
|
+
// "eventType":"spot@public.aggre.depth.v3.api.pb@100ms",
|
|
847
|
+
// "fromVersion":"43296363236",
|
|
848
|
+
// "toVersion":"43296363255"
|
|
849
|
+
// }
|
|
850
|
+
// }
|
|
793
851
|
//
|
|
794
|
-
const data = this.
|
|
852
|
+
const data = this.safeDictN(message, ['d', 'data', 'publicAggreDepths']);
|
|
795
853
|
const marketId = this.safeString2(message, 's', 'symbol');
|
|
796
854
|
const symbol = this.safeSymbol(marketId);
|
|
797
855
|
const messageHash = 'orderbook:' + symbol;
|
|
@@ -813,9 +871,10 @@ export default class mexc extends mexcRest {
|
|
|
813
871
|
}
|
|
814
872
|
try {
|
|
815
873
|
this.handleDelta(storedOrderBook, data);
|
|
816
|
-
const timestamp = this.
|
|
874
|
+
const timestamp = this.safeIntegerN(message, ['t', 'ts', 'sendTime']);
|
|
817
875
|
storedOrderBook['timestamp'] = timestamp;
|
|
818
876
|
storedOrderBook['datetime'] = this.iso8601(timestamp);
|
|
877
|
+
storedOrderBook['nonce'] = this.safeInteger(data, 'fromVersion');
|
|
819
878
|
}
|
|
820
879
|
catch (e) {
|
|
821
880
|
delete client.subscriptions[messageHash];
|
|
@@ -836,15 +895,15 @@ export default class mexc extends mexcRest {
|
|
|
836
895
|
bookside.storeArray(bidask);
|
|
837
896
|
}
|
|
838
897
|
else {
|
|
839
|
-
const price = this.
|
|
840
|
-
const amount = this.
|
|
898
|
+
const price = this.safeFloat2(bidask, 'p', 'price');
|
|
899
|
+
const amount = this.safeFloat2(bidask, 'v', 'quantity');
|
|
841
900
|
bookside.store(price, amount);
|
|
842
901
|
}
|
|
843
902
|
}
|
|
844
903
|
}
|
|
845
904
|
handleDelta(orderbook, delta) {
|
|
846
905
|
const existingNonce = this.safeInteger(orderbook, 'nonce');
|
|
847
|
-
const deltaNonce = this.
|
|
906
|
+
const deltaNonce = this.safeIntegerN(delta, ['r', 'version', 'fromVersion']);
|
|
848
907
|
if (deltaNonce < existingNonce) {
|
|
849
908
|
// even when doing < comparison, this happens: https://app.travis-ci.com/github/ccxt/ccxt/builds/269234741#L1809
|
|
850
909
|
// so, we just skip old updates
|
|
@@ -861,7 +920,7 @@ export default class mexc extends mexcRest {
|
|
|
861
920
|
/**
|
|
862
921
|
* @method
|
|
863
922
|
* @name mexc#watchTrades
|
|
864
|
-
* @see https://
|
|
923
|
+
* @see https://www.mexc.com/api-docs/spot-v3/websocket-market-streams#trade-streams
|
|
865
924
|
* @see https://mexcdevelop.github.io/apidocs/contract_v1_en/#public-channels
|
|
866
925
|
* @description get the list of most recent trades for a particular symbol
|
|
867
926
|
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
@@ -877,7 +936,7 @@ export default class mexc extends mexcRest {
|
|
|
877
936
|
const messageHash = 'trades:' + symbol;
|
|
878
937
|
let trades = undefined;
|
|
879
938
|
if (market['spot']) {
|
|
880
|
-
const channel = 'spot@public.deals.v3.api@' + market['id'];
|
|
939
|
+
const channel = 'spot@public.aggre.deals.v3.api.pb@100ms@' + market['id'];
|
|
881
940
|
trades = await this.watchSpotPublic(channel, messageHash, params);
|
|
882
941
|
}
|
|
883
942
|
else {
|
|
@@ -893,6 +952,23 @@ export default class mexc extends mexcRest {
|
|
|
893
952
|
return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
|
|
894
953
|
}
|
|
895
954
|
handleTrades(client, message) {
|
|
955
|
+
// protobuf
|
|
956
|
+
// {
|
|
957
|
+
// "channel": "spot@public.aggre.deals.v3.api.pb@100ms@BTCUSDT",
|
|
958
|
+
// "publicdeals": {
|
|
959
|
+
// "dealsList": [
|
|
960
|
+
// {
|
|
961
|
+
// "price": "93220.00", // Trade price
|
|
962
|
+
// "quantity": "0.04438243", // Trade quantity
|
|
963
|
+
// "tradetype": 2, // Trade type (1: Buy, 2: Sell)
|
|
964
|
+
// "time": 1736409765051 // Trade time
|
|
965
|
+
// }
|
|
966
|
+
// ],
|
|
967
|
+
// "eventtype": "spot@public.aggre.deals.v3.api.pb@100ms" // Event type
|
|
968
|
+
// },
|
|
969
|
+
// "symbol": "BTCUSDT", // Trading pair
|
|
970
|
+
// "sendtime": 1736409765052 // Event time
|
|
971
|
+
// }
|
|
896
972
|
//
|
|
897
973
|
// {
|
|
898
974
|
// "c": "spot@public.deals.v3.api@BTCUSDT",
|
|
@@ -934,8 +1010,8 @@ export default class mexc extends mexcRest {
|
|
|
934
1010
|
stored = new ArrayCache(limit);
|
|
935
1011
|
this.trades[symbol] = stored;
|
|
936
1012
|
}
|
|
937
|
-
const d = this.
|
|
938
|
-
const trades = this.
|
|
1013
|
+
const d = this.safeDictN(message, ['d', 'data', 'publicAggreDeals']);
|
|
1014
|
+
const trades = this.safeList2(d, 'deals', 'dealsList', [d]);
|
|
939
1015
|
for (let j = 0; j < trades.length; j++) {
|
|
940
1016
|
let parsedTrade = undefined;
|
|
941
1017
|
if (market['spot']) {
|
|
@@ -951,7 +1027,7 @@ export default class mexc extends mexcRest {
|
|
|
951
1027
|
/**
|
|
952
1028
|
* @method
|
|
953
1029
|
* @name mexc#watchMyTrades
|
|
954
|
-
* @see https://
|
|
1030
|
+
* @see https://www.mexc.com/api-docs/spot-v3/websocket-user-data-streams#spot-account-deals
|
|
955
1031
|
* @see https://mexcdevelop.github.io/apidocs/contract_v1_en/#private-channels
|
|
956
1032
|
* @description watches information on multiple trades made by the user
|
|
957
1033
|
* @param {string} symbol unified market symbol of the market trades were made in
|
|
@@ -973,7 +1049,7 @@ export default class mexc extends mexcRest {
|
|
|
973
1049
|
[type, params] = this.handleMarketTypeAndParams('watchMyTrades', market, params);
|
|
974
1050
|
let trades = undefined;
|
|
975
1051
|
if (type === 'spot') {
|
|
976
|
-
const channel = 'spot@private.deals.v3.api';
|
|
1052
|
+
const channel = 'spot@private.deals.v3.api.pb';
|
|
977
1053
|
trades = await this.watchSpotPrivate(channel, messageHash, params);
|
|
978
1054
|
}
|
|
979
1055
|
else {
|
|
@@ -1002,11 +1078,27 @@ export default class mexc extends mexcRest {
|
|
|
1002
1078
|
// "s": "BTCUSDT",
|
|
1003
1079
|
// "t": 1678670940700
|
|
1004
1080
|
// }
|
|
1081
|
+
// {
|
|
1082
|
+
// channel: "spot@private.deals.v3.api.pb",
|
|
1083
|
+
// symbol: "MXUSDT",
|
|
1084
|
+
// sendTime: 1736417034332,
|
|
1085
|
+
// privateDeals {
|
|
1086
|
+
// price: "3.6962",
|
|
1087
|
+
// quantity: "1",
|
|
1088
|
+
// amount: "3.6962",
|
|
1089
|
+
// tradeType: 2,
|
|
1090
|
+
// tradeId: "505979017439002624X1",
|
|
1091
|
+
// orderId: "C02__505979017439002624115",
|
|
1092
|
+
// feeAmount: "0.0003998377369698171",
|
|
1093
|
+
// feeCurrency: "MX",
|
|
1094
|
+
// time: 1736417034280
|
|
1095
|
+
// }
|
|
1096
|
+
// }
|
|
1005
1097
|
//
|
|
1006
1098
|
const messageHash = 'myTrades';
|
|
1007
|
-
const data = this.
|
|
1099
|
+
const data = this.safeDictN(message, ['d', 'data', 'privateDeals']);
|
|
1008
1100
|
const futuresMarketId = this.safeString(data, 'symbol');
|
|
1009
|
-
const marketId = this.
|
|
1101
|
+
const marketId = this.safeString2(message, 's', 'symbol', futuresMarketId);
|
|
1010
1102
|
const market = this.safeMarket(marketId);
|
|
1011
1103
|
const symbol = market['symbol'];
|
|
1012
1104
|
let trade = undefined;
|
|
@@ -1029,7 +1121,7 @@ export default class mexc extends mexcRest {
|
|
|
1029
1121
|
}
|
|
1030
1122
|
parseWsTrade(trade, market = undefined) {
|
|
1031
1123
|
//
|
|
1032
|
-
// public trade
|
|
1124
|
+
// public trade (protobuf)
|
|
1033
1125
|
// {
|
|
1034
1126
|
// "p": "20382.70",
|
|
1035
1127
|
// "v": "0.043800",
|
|
@@ -1049,7 +1141,6 @@ export default class mexc extends mexcRest {
|
|
|
1049
1141
|
// "v": "5"
|
|
1050
1142
|
// }
|
|
1051
1143
|
//
|
|
1052
|
-
//
|
|
1053
1144
|
// d: {
|
|
1054
1145
|
// p: '1.0005',
|
|
1055
1146
|
// v: '5.71',
|
|
@@ -1064,23 +1155,37 @@ export default class mexc extends mexcRest {
|
|
|
1064
1155
|
// n: '0.005712855',
|
|
1065
1156
|
// N: 'USDT'
|
|
1066
1157
|
// }
|
|
1067
|
-
|
|
1068
|
-
|
|
1158
|
+
// protobuf
|
|
1159
|
+
//
|
|
1160
|
+
// {
|
|
1161
|
+
// price: "3.6962",
|
|
1162
|
+
// quantity: "1",
|
|
1163
|
+
// amount: "3.6962",
|
|
1164
|
+
// tradeType: 2,
|
|
1165
|
+
// tradeId: "505979017439002624X1",
|
|
1166
|
+
// orderId: "C02__505979017439002624115",
|
|
1167
|
+
// feeAmount: "0.0003998377369698171",
|
|
1168
|
+
// feeCurrency: "MX",
|
|
1169
|
+
// time: 1736417034280
|
|
1170
|
+
// }
|
|
1171
|
+
//
|
|
1172
|
+
let timestamp = this.safeInteger2(trade, 'T', 'time');
|
|
1173
|
+
let tradeId = this.safeString2(trade, 't', 'tradeId');
|
|
1069
1174
|
if (timestamp === undefined) {
|
|
1070
1175
|
timestamp = this.safeInteger(trade, 't');
|
|
1071
1176
|
tradeId = undefined;
|
|
1072
1177
|
}
|
|
1073
|
-
const priceString = this.
|
|
1074
|
-
const amountString = this.
|
|
1075
|
-
const rawSide = this.
|
|
1178
|
+
const priceString = this.safeString2(trade, 'p', 'price');
|
|
1179
|
+
const amountString = this.safeString2(trade, 'v', 'quantity');
|
|
1180
|
+
const rawSide = this.safeString2(trade, 'S', 'tradeType');
|
|
1076
1181
|
const side = (rawSide === '1') ? 'buy' : 'sell';
|
|
1077
1182
|
const isMaker = this.safeInteger(trade, 'm');
|
|
1078
|
-
const feeAmount = this.
|
|
1079
|
-
const feeCurrencyId = this.
|
|
1183
|
+
const feeAmount = this.safeString2(trade, 'n', 'feeAmount');
|
|
1184
|
+
const feeCurrencyId = this.safeString2(trade, 'N', 'feeCurrency');
|
|
1080
1185
|
return this.safeTrade({
|
|
1081
1186
|
'info': trade,
|
|
1082
1187
|
'id': tradeId,
|
|
1083
|
-
'order': this.
|
|
1188
|
+
'order': this.safeString2(trade, 'i', 'orderId'),
|
|
1084
1189
|
'timestamp': timestamp,
|
|
1085
1190
|
'datetime': this.iso8601(timestamp),
|
|
1086
1191
|
'symbol': this.safeSymbol(undefined, market),
|
|
@@ -1089,7 +1194,7 @@ export default class mexc extends mexcRest {
|
|
|
1089
1194
|
'takerOrMaker': (isMaker) ? 'maker' : 'taker',
|
|
1090
1195
|
'price': priceString,
|
|
1091
1196
|
'amount': amountString,
|
|
1092
|
-
'cost':
|
|
1197
|
+
'cost': this.safeString(trade, 'amount'),
|
|
1093
1198
|
'fee': {
|
|
1094
1199
|
'cost': feeAmount,
|
|
1095
1200
|
'currency': this.safeCurrencyCode(feeCurrencyId),
|
|
@@ -1099,7 +1204,7 @@ export default class mexc extends mexcRest {
|
|
|
1099
1204
|
/**
|
|
1100
1205
|
* @method
|
|
1101
1206
|
* @name mexc#watchOrders
|
|
1102
|
-
* @see https://
|
|
1207
|
+
* @see https://www.mexc.com/api-docs/spot-v3/websocket-user-data-streams#spot-account-orders
|
|
1103
1208
|
* @see https://mexcdevelop.github.io/apidocs/spot_v3_en/#margin-account-orders
|
|
1104
1209
|
* @description watches information on multiple orders made by the user
|
|
1105
1210
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
@@ -1122,7 +1227,7 @@ export default class mexc extends mexcRest {
|
|
|
1122
1227
|
[type, params] = this.handleMarketTypeAndParams('watchOrders', market, params);
|
|
1123
1228
|
let orders = undefined;
|
|
1124
1229
|
if (type === 'spot') {
|
|
1125
|
-
const channel =
|
|
1230
|
+
const channel = 'spot@private.orders.v3.api.pb';
|
|
1126
1231
|
orders = await this.watchSpotPrivate(channel, messageHash, params);
|
|
1127
1232
|
}
|
|
1128
1233
|
else {
|
|
@@ -1198,11 +1303,18 @@ export default class mexc extends mexcRest {
|
|
|
1198
1303
|
// "s": "MXUSDT",
|
|
1199
1304
|
// "t":1661938138193
|
|
1200
1305
|
// }
|
|
1306
|
+
// protobuf
|
|
1307
|
+
// {
|
|
1308
|
+
// channel: "spot@private.orders.v3.api.pb",
|
|
1309
|
+
// symbol: "MXUSDT",
|
|
1310
|
+
// sendTime: 1736417034281,
|
|
1311
|
+
// privateOrders {}
|
|
1312
|
+
// }
|
|
1201
1313
|
//
|
|
1202
1314
|
const messageHash = 'orders';
|
|
1203
|
-
const data = this.
|
|
1315
|
+
const data = this.safeDictN(message, ['d', 'data', 'privateOrders']);
|
|
1204
1316
|
const futuresMarketId = this.safeString(data, 'symbol');
|
|
1205
|
-
const marketId = this.
|
|
1317
|
+
const marketId = this.safeString2(message, 's', 'symbol', futuresMarketId);
|
|
1206
1318
|
const market = this.safeMarket(marketId);
|
|
1207
1319
|
const symbol = market['symbol'];
|
|
1208
1320
|
let parsed = undefined;
|
|
@@ -1273,11 +1385,28 @@ export default class mexc extends mexcRest {
|
|
|
1273
1385
|
// "s":1,
|
|
1274
1386
|
// "i":"e03a5c7441e44ed899466a7140b71391",
|
|
1275
1387
|
// }
|
|
1388
|
+
// protofbuf spot order
|
|
1389
|
+
// {
|
|
1390
|
+
// "id":"C02__583905164440776704043",
|
|
1391
|
+
// "price":"0.001053",
|
|
1392
|
+
// "quantity":"2000",
|
|
1393
|
+
// "amount":"0",
|
|
1394
|
+
// "avgPrice":"0.001007",
|
|
1395
|
+
// "orderType":5,
|
|
1396
|
+
// "tradeType":1,
|
|
1397
|
+
// "remainAmount":"0.092",
|
|
1398
|
+
// "remainQuantity":"0",
|
|
1399
|
+
// "lastDealQuantity":"2000",
|
|
1400
|
+
// "cumulativeQuantity":"2000",
|
|
1401
|
+
// "cumulativeAmount":"2.014",
|
|
1402
|
+
// "status":2,
|
|
1403
|
+
// "createTime":"1754996075502"
|
|
1404
|
+
// }
|
|
1276
1405
|
//
|
|
1277
|
-
const timestamp = this.safeInteger(order, '
|
|
1278
|
-
const side = this.safeString(order, '
|
|
1279
|
-
const status = this.safeString(order, '
|
|
1280
|
-
const type = this.safeString(order, '
|
|
1406
|
+
const timestamp = this.safeInteger(order, 'createTime');
|
|
1407
|
+
const side = this.safeString(order, 'tradeType');
|
|
1408
|
+
const status = this.safeString(order, 'status');
|
|
1409
|
+
const type = this.safeString(order, 'orderType');
|
|
1281
1410
|
let fee = undefined;
|
|
1282
1411
|
const feeCurrency = this.safeString(order, 'N');
|
|
1283
1412
|
if (feeCurrency !== undefined) {
|
|
@@ -1287,8 +1416,8 @@ export default class mexc extends mexcRest {
|
|
|
1287
1416
|
};
|
|
1288
1417
|
}
|
|
1289
1418
|
return this.safeOrder({
|
|
1290
|
-
'id': this.safeString(order, '
|
|
1291
|
-
'clientOrderId': this.safeString(order, '
|
|
1419
|
+
'id': this.safeString(order, 'id'),
|
|
1420
|
+
'clientOrderId': this.safeString(order, 'clientOrderId'),
|
|
1292
1421
|
'timestamp': timestamp,
|
|
1293
1422
|
'datetime': this.iso8601(timestamp),
|
|
1294
1423
|
'lastTradeTimestamp': undefined,
|
|
@@ -1297,14 +1426,14 @@ export default class mexc extends mexcRest {
|
|
|
1297
1426
|
'type': this.parseWsOrderType(type),
|
|
1298
1427
|
'timeInForce': this.parseWsTimeInForce(type),
|
|
1299
1428
|
'side': (side === '1') ? 'buy' : 'sell',
|
|
1300
|
-
'price': this.safeString(order, '
|
|
1429
|
+
'price': this.safeString(order, 'price'),
|
|
1301
1430
|
'stopPrice': undefined,
|
|
1302
|
-
'triggerPrice':
|
|
1303
|
-
'average': this.safeString(order, '
|
|
1304
|
-
'amount': this.safeString(order, '
|
|
1305
|
-
'cost': this.safeString(order, '
|
|
1306
|
-
'filled': this.safeString(order, '
|
|
1307
|
-
'remaining': this.safeString(order, '
|
|
1431
|
+
'triggerPrice': undefined,
|
|
1432
|
+
'average': this.safeString(order, 'avgPrice'),
|
|
1433
|
+
'amount': this.safeString(order, 'quantity'),
|
|
1434
|
+
'cost': this.safeString(order, 'amount'),
|
|
1435
|
+
'filled': this.safeString(order, 'cumulativeQuantity'),
|
|
1436
|
+
'remaining': this.safeString(order, 'remainQuantity'),
|
|
1308
1437
|
'fee': fee,
|
|
1309
1438
|
'trades': undefined,
|
|
1310
1439
|
'info': order,
|
|
@@ -1327,7 +1456,7 @@ export default class mexc extends mexcRest {
|
|
|
1327
1456
|
parseWsOrderType(type) {
|
|
1328
1457
|
const types = {
|
|
1329
1458
|
'1': 'limit',
|
|
1330
|
-
'2':
|
|
1459
|
+
'2': 'limit',
|
|
1331
1460
|
'3': undefined,
|
|
1332
1461
|
'4': undefined,
|
|
1333
1462
|
'5': 'market',
|
|
@@ -1349,7 +1478,7 @@ export default class mexc extends mexcRest {
|
|
|
1349
1478
|
/**
|
|
1350
1479
|
* @method
|
|
1351
1480
|
* @name mexc#watchBalance
|
|
1352
|
-
* @see https://
|
|
1481
|
+
* @see https://www.mexc.com/api-docs/spot-v3/websocket-user-data-streams#spot-account-update
|
|
1353
1482
|
* @description watch balance and get the amount of funds available for trading or funds locked in orders
|
|
1354
1483
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1355
1484
|
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
|
|
@@ -1360,7 +1489,7 @@ export default class mexc extends mexcRest {
|
|
|
1360
1489
|
[type, params] = this.handleMarketTypeAndParams('watchBalance', undefined, params);
|
|
1361
1490
|
const messageHash = 'balance:' + type;
|
|
1362
1491
|
if (type === 'spot') {
|
|
1363
|
-
const channel = 'spot@private.account.v3.api';
|
|
1492
|
+
const channel = 'spot@private.account.v3.api.pb';
|
|
1364
1493
|
return await this.watchSpotPrivate(channel, messageHash, params);
|
|
1365
1494
|
}
|
|
1366
1495
|
else {
|
|
@@ -1399,23 +1528,23 @@ export default class mexc extends mexcRest {
|
|
|
1399
1528
|
// "ts": 1680059188190
|
|
1400
1529
|
// }
|
|
1401
1530
|
//
|
|
1402
|
-
const c = this.
|
|
1531
|
+
const c = this.safeString2(message, 'c', 'channel');
|
|
1403
1532
|
const type = (c === undefined) ? 'swap' : 'spot';
|
|
1404
1533
|
const messageHash = 'balance:' + type;
|
|
1405
|
-
const data = this.
|
|
1534
|
+
const data = this.safeDictN(message, ['d', 'data', 'privateAccount']);
|
|
1406
1535
|
const futuresTimestamp = this.safeInteger(message, 'ts');
|
|
1407
|
-
const timestamp = this.
|
|
1536
|
+
const timestamp = this.safeInteger2(data, 'c', 'time', futuresTimestamp);
|
|
1408
1537
|
if (!(type in this.balance)) {
|
|
1409
1538
|
this.balance[type] = {};
|
|
1410
1539
|
}
|
|
1411
1540
|
this.balance[type]['info'] = data;
|
|
1412
1541
|
this.balance[type]['timestamp'] = timestamp;
|
|
1413
1542
|
this.balance[type]['datetime'] = this.iso8601(timestamp);
|
|
1414
|
-
const currencyId = this.
|
|
1543
|
+
const currencyId = this.safeStringN(data, ['a', 'currency', 'vcoinName']);
|
|
1415
1544
|
const code = this.safeCurrencyCode(currencyId);
|
|
1416
1545
|
const account = this.account();
|
|
1417
|
-
account['
|
|
1418
|
-
account['used'] = this.
|
|
1546
|
+
account['total'] = this.safeStringN(data, ['f', 'availableBalance', 'balanceAmount']);
|
|
1547
|
+
account['used'] = this.safeStringN(data, ['l', 'frozenBalance', 'frozenAmount']);
|
|
1419
1548
|
this.balance[type][code] = account;
|
|
1420
1549
|
this.balance[type] = this.safeBalance(this.balance[type]);
|
|
1421
1550
|
client.resolve(this.balance[type], messageHash);
|
|
@@ -1435,14 +1564,7 @@ export default class mexc extends mexcRest {
|
|
|
1435
1564
|
let url = undefined;
|
|
1436
1565
|
let channel = undefined;
|
|
1437
1566
|
if (market['spot']) {
|
|
1438
|
-
|
|
1439
|
-
[miniTicker, params] = this.handleOptionAndParams(params, 'watchTicker', 'miniTicker');
|
|
1440
|
-
if (miniTicker) {
|
|
1441
|
-
channel = 'spot@public.miniTicker.v3.api@' + market['id'] + '@UTC+8';
|
|
1442
|
-
}
|
|
1443
|
-
else {
|
|
1444
|
-
channel = 'spot@public.bookTicker.v3.api@' + market['id'];
|
|
1445
|
-
}
|
|
1567
|
+
channel = 'spot@public.aggre.bookTicker.v3.api.pb@100ms@' + market['id'];
|
|
1446
1568
|
url = this.urls['api']['ws']['spot'];
|
|
1447
1569
|
params['unsubscribed'] = true;
|
|
1448
1570
|
await this.watchSpotPublic(channel, messageHash, params);
|
|
@@ -1482,34 +1604,33 @@ export default class mexc extends mexcRest {
|
|
|
1482
1604
|
const url = (isSpot) ? this.urls['api']['ws']['spot'] : this.urls['api']['ws']['swap'];
|
|
1483
1605
|
const request = {};
|
|
1484
1606
|
if (isSpot) {
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
}
|
|
1500
|
-
else {
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
request['
|
|
1512
|
-
request['params'] = topics;
|
|
1607
|
+
throw new NotSupported(this.id + ' watchTickers does not support spot markets');
|
|
1608
|
+
// let miniTicker = false;
|
|
1609
|
+
// [ miniTicker, params ] = this.handleOptionAndParams (params, 'watchTickers', 'miniTicker');
|
|
1610
|
+
// const topics = [];
|
|
1611
|
+
// if (!miniTicker) {
|
|
1612
|
+
// if (symbols === undefined) {
|
|
1613
|
+
// throw new ArgumentsRequired (this.id + ' watchTickers required symbols argument for the bookTicker channel');
|
|
1614
|
+
// }
|
|
1615
|
+
// const marketIds = this.marketIds (symbols);
|
|
1616
|
+
// for (let i = 0; i < marketIds.length; i++) {
|
|
1617
|
+
// const marketId = marketIds[i];
|
|
1618
|
+
// messageHashes.push ('unsubscribe:ticker:' + symbols[i]);
|
|
1619
|
+
// const channel = 'spot@public.bookTicker.v3.api@' + marketId;
|
|
1620
|
+
// topics.push (channel);
|
|
1621
|
+
// }
|
|
1622
|
+
// } else {
|
|
1623
|
+
// topics.push ('spot@public.miniTickers.v3.api@UTC+8');
|
|
1624
|
+
// if (symbols === undefined) {
|
|
1625
|
+
// messageHashes.push ('unsubscribe:spot:ticker');
|
|
1626
|
+
// } else {
|
|
1627
|
+
// for (let i = 0; i < symbols.length; i++) {
|
|
1628
|
+
// messageHashes.push ('unsubscribe:ticker:' + symbols[i]);
|
|
1629
|
+
// }
|
|
1630
|
+
// }
|
|
1631
|
+
// }
|
|
1632
|
+
// request['method'] = 'UNSUBSCRIPTION';
|
|
1633
|
+
// request['params'] = topics;
|
|
1513
1634
|
}
|
|
1514
1635
|
else {
|
|
1515
1636
|
request['method'] = 'unsub.tickers';
|
|
@@ -1547,7 +1668,7 @@ export default class mexc extends mexcRest {
|
|
|
1547
1668
|
for (let i = 0; i < symbols.length; i++) {
|
|
1548
1669
|
if (isSpot) {
|
|
1549
1670
|
const market = this.market(symbols[i]);
|
|
1550
|
-
topics.push('spot@public.bookTicker.v3.api@' + market['id']);
|
|
1671
|
+
topics.push('spot@public.aggre.bookTicker.v3.api.pb@100ms@' + market['id']);
|
|
1551
1672
|
}
|
|
1552
1673
|
messageHashes.push('unsubscribe:bidask:' + symbols[i]);
|
|
1553
1674
|
}
|
|
@@ -1581,7 +1702,7 @@ export default class mexc extends mexcRest {
|
|
|
1581
1702
|
let url = undefined;
|
|
1582
1703
|
if (market['spot']) {
|
|
1583
1704
|
url = this.urls['api']['ws']['spot'];
|
|
1584
|
-
const channel = 'spot@public.kline.v3.api@' + market['id'] + '@' + timeframeId;
|
|
1705
|
+
const channel = 'spot@public.kline.v3.api.pb@' + market['id'] + '@' + timeframeId;
|
|
1585
1706
|
params['unsubscribed'] = true;
|
|
1586
1707
|
await this.watchSpotPublic(channel, messageHash, params);
|
|
1587
1708
|
}
|
|
@@ -1604,6 +1725,7 @@ export default class mexc extends mexcRest {
|
|
|
1604
1725
|
* @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
1605
1726
|
* @param {string} symbol unified array of symbols
|
|
1606
1727
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1728
|
+
* @param {string} [params.frequency] the frequency of the order book updates, default is '10ms', can be '100ms' or '10ms
|
|
1607
1729
|
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
1608
1730
|
*/
|
|
1609
1731
|
async unWatchOrderBook(symbol, params = {}) {
|
|
@@ -1614,7 +1736,9 @@ export default class mexc extends mexcRest {
|
|
|
1614
1736
|
let url = undefined;
|
|
1615
1737
|
if (market['spot']) {
|
|
1616
1738
|
url = this.urls['api']['ws']['spot'];
|
|
1617
|
-
|
|
1739
|
+
let frequency = undefined;
|
|
1740
|
+
[frequency, params] = this.handleOptionAndParams(params, 'watchOrderBook', 'frequency', '100ms');
|
|
1741
|
+
const channel = 'spot@public.aggre.depth.v3.api.pb@' + frequency + '@' + market['id'];
|
|
1618
1742
|
params['unsubscribed'] = true;
|
|
1619
1743
|
await this.watchSpotPublic(channel, messageHash, params);
|
|
1620
1744
|
}
|
|
@@ -1647,7 +1771,7 @@ export default class mexc extends mexcRest {
|
|
|
1647
1771
|
let url = undefined;
|
|
1648
1772
|
if (market['spot']) {
|
|
1649
1773
|
url = this.urls['api']['ws']['spot'];
|
|
1650
|
-
const channel = 'spot@public.deals.v3.api@' + market['id'];
|
|
1774
|
+
const channel = 'spot@public.aggre.deals.v3.api.pb@100ms@' + market['id'];
|
|
1651
1775
|
params['unsubscribed'] = true;
|
|
1652
1776
|
await this.watchSpotPublic(channel, messageHash, params);
|
|
1653
1777
|
}
|
|
@@ -1770,6 +1894,7 @@ export default class mexc extends mexcRest {
|
|
|
1770
1894
|
const channel = this.safeString(parts, 1);
|
|
1771
1895
|
const methods = {
|
|
1772
1896
|
'public.increase.depth.v3.api': this.handleOrderBookSubscription,
|
|
1897
|
+
'public.aggre.depth.v3.api.pb': this.handleOrderBookSubscription,
|
|
1773
1898
|
};
|
|
1774
1899
|
const method = this.safeValue(methods, channel);
|
|
1775
1900
|
if (method !== undefined) {
|
|
@@ -1777,12 +1902,62 @@ export default class mexc extends mexcRest {
|
|
|
1777
1902
|
}
|
|
1778
1903
|
}
|
|
1779
1904
|
}
|
|
1905
|
+
handleProtobufMessage(client, message) {
|
|
1906
|
+
// protobuf message decoded
|
|
1907
|
+
// {
|
|
1908
|
+
// "channel":"spot@public.kline.v3.api.pb@BTCUSDT@Min1",
|
|
1909
|
+
// "symbol":"BTCUSDT",
|
|
1910
|
+
// "symbolId":"2fb942154ef44a4ab2ef98c8afb6a4a7",
|
|
1911
|
+
// "createTime":"1754737941062",
|
|
1912
|
+
// "publicSpotKline":{
|
|
1913
|
+
// "interval":"Min1",
|
|
1914
|
+
// "windowStart":"1754737920",
|
|
1915
|
+
// "openingPrice":"117317.31",
|
|
1916
|
+
// "closingPrice":"117325.26",
|
|
1917
|
+
// "highestPrice":"117341",
|
|
1918
|
+
// "lowestPrice":"117317.3",
|
|
1919
|
+
// "volume":"3.12599854",
|
|
1920
|
+
// "amount":"366804.43",
|
|
1921
|
+
// "windowEnd":"1754737980"
|
|
1922
|
+
// }
|
|
1923
|
+
// }
|
|
1924
|
+
const channel = this.safeString(message, 'channel');
|
|
1925
|
+
const channelParts = channel.split('@');
|
|
1926
|
+
const channelId = this.safeString(channelParts, 1);
|
|
1927
|
+
if (channelId === 'public.kline.v3.api.pb') {
|
|
1928
|
+
this.handleOHLCV(client, message);
|
|
1929
|
+
}
|
|
1930
|
+
else if (channelId === 'public.aggre.deals.v3.api.pb') {
|
|
1931
|
+
this.handleTrades(client, message);
|
|
1932
|
+
}
|
|
1933
|
+
else if (channelId === 'public.aggre.bookTicker.v3.api.pb') {
|
|
1934
|
+
this.handleTicker(client, message);
|
|
1935
|
+
}
|
|
1936
|
+
else if (channelId === 'public.aggre.depth.v3.api.pb') {
|
|
1937
|
+
this.handleOrderBook(client, message);
|
|
1938
|
+
}
|
|
1939
|
+
else if (channelId === 'private.account.v3.api.pb') {
|
|
1940
|
+
this.handleBalance(client, message);
|
|
1941
|
+
}
|
|
1942
|
+
else if (channelId === 'private.deals.v3.api.pb') {
|
|
1943
|
+
this.handleMyTrade(client, message);
|
|
1944
|
+
}
|
|
1945
|
+
else if (channelId === 'private.orders.v3.api.pb') {
|
|
1946
|
+
this.handleOrder(client, message);
|
|
1947
|
+
}
|
|
1948
|
+
return true;
|
|
1949
|
+
}
|
|
1780
1950
|
handleMessage(client, message) {
|
|
1781
1951
|
if (typeof message === 'string') {
|
|
1782
1952
|
if (message === 'Invalid listen key') {
|
|
1783
1953
|
const error = new AuthenticationError(this.id + ' invalid listen key');
|
|
1784
1954
|
client.reject(error);
|
|
1955
|
+
return;
|
|
1785
1956
|
}
|
|
1957
|
+
}
|
|
1958
|
+
if (this.isBinaryMessage(message)) {
|
|
1959
|
+
message = this.decodeProtoMsg(message);
|
|
1960
|
+
this.handleProtobufMessage(client, message);
|
|
1786
1961
|
return;
|
|
1787
1962
|
}
|
|
1788
1963
|
if ('msg' in message) {
|