ccxt-ir 4.10.0 → 4.11.0
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 +4 -4
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +4 -1
- package/dist/cjs/src/abstract/bidarz.js +11 -0
- package/dist/cjs/src/bidarz.js +337 -0
- package/dist/cjs/src/bit24.js +4 -3
- package/js/ccxt.d.ts +5 -2
- package/js/ccxt.js +4 -2
- package/js/src/abstract/bidarz.d.ts +9 -0
- package/js/src/abstract/bidarz.js +11 -0
- package/js/src/bidarz.d.ts +22 -0
- package/js/src/bidarz.js +336 -0
- package/js/src/bit24.js +4 -3
- package/js/src/src/abantether.d.ts +21 -0
- package/js/src/src/abantether.js +353 -0
- package/js/src/src/abstract/abantether.d.ts +8 -0
- package/js/src/src/abstract/abantether.js +11 -0
- package/js/src/src/abstract/afratether.d.ts +9 -0
- package/js/src/src/abstract/afratether.js +11 -0
- package/js/src/src/abstract/alpaca.d.ts +77 -0
- package/js/src/src/abstract/alpaca.js +11 -0
- package/js/src/src/abstract/apex.d.ts +34 -0
- package/js/src/src/abstract/apex.js +11 -0
- package/js/src/src/abstract/arzinja.d.ts +8 -0
- package/js/src/src/abstract/arzinja.js +11 -0
- package/js/src/src/abstract/arzplus.d.ts +11 -0
- package/js/src/src/abstract/arzplus.js +11 -0
- package/js/src/src/abstract/ascendex.d.ts +80 -0
- package/js/src/src/abstract/ascendex.js +11 -0
- package/js/src/src/abstract/asretether.d.ts +8 -0
- package/js/src/src/abstract/asretether.js +11 -0
- package/js/src/src/abstract/bidarz.d.ts +9 -0
- package/js/src/src/abstract/bidarz.js +11 -0
- package/js/src/src/abstract/bigone.d.ts +48 -0
- package/js/src/src/abstract/bigone.js +11 -0
- package/js/src/src/abstract/binance.d.ts +773 -0
- package/js/src/src/abstract/binance.js +11 -0
- package/js/src/src/abstract/bingx.d.ts +165 -0
- package/js/src/src/abstract/bingx.js +11 -0
- package/js/src/src/abstract/bit24.d.ts +9 -0
- package/js/src/src/abstract/bit24.js +11 -0
- package/js/src/src/abstract/bit2c.d.ts +30 -0
- package/js/src/src/abstract/bit2c.js +11 -0
- package/js/src/src/abstract/bitbank.d.ts +35 -0
- package/js/src/src/abstract/bitbank.js +11 -0
- package/js/src/src/abstract/bitbarg.d.ts +8 -0
- package/js/src/src/abstract/bitbarg.js +11 -0
- package/js/src/src/abstract/bitbns.d.ts +43 -0
- package/js/src/src/abstract/bitbns.js +11 -0
- package/js/src/src/abstract/bitfinex.d.ts +143 -0
- package/js/src/src/abstract/bitfinex.js +11 -0
- package/js/src/src/abstract/bitflyer.d.ts +42 -0
- package/js/src/src/abstract/bitflyer.js +11 -0
- package/js/src/src/abstract/bitget.d.ts +578 -0
- package/js/src/src/abstract/bitget.js +11 -0
- package/js/src/src/abstract/bithumb.d.ts +35 -0
- package/js/src/src/abstract/bithumb.js +11 -0
- package/js/src/src/abstract/bitimen.d.ts +10 -0
- package/js/src/src/abstract/bitimen.js +11 -0
- package/js/src/src/abstract/bitir.d.ts +10 -0
- package/js/src/src/abstract/bitir.js +11 -0
- package/js/src/src/abstract/bitmart.d.ts +120 -0
- package/js/src/src/abstract/bitmart.js +11 -0
- package/js/src/src/abstract/bitmex.d.ts +100 -0
- package/js/src/src/abstract/bitmex.js +11 -0
- package/js/src/src/abstract/bitopro.d.ts +33 -0
- package/js/src/src/abstract/bitopro.js +11 -0
- package/js/src/src/abstract/bitpin.d.ts +11 -0
- package/js/src/src/abstract/bitpin.js +11 -0
- package/js/src/src/abstract/bitrue.d.ts +75 -0
- package/js/src/src/abstract/bitrue.js +11 -0
- package/js/src/src/abstract/bitso.d.ts +46 -0
- package/js/src/src/abstract/bitso.js +11 -0
- package/js/src/src/abstract/bitstamp.d.ts +262 -0
- package/js/src/src/abstract/bitstamp.js +11 -0
- package/js/src/src/abstract/bitteam.d.ts +32 -0
- package/js/src/src/abstract/bitteam.js +11 -0
- package/js/src/src/abstract/bittrade.d.ts +117 -0
- package/js/src/src/abstract/bittrade.js +11 -0
- package/js/src/src/abstract/bitunix.d.ts +9 -0
- package/js/src/src/abstract/bitunix.js +11 -0
- package/js/src/src/abstract/bitvavo.d.ts +30 -0
- package/js/src/src/abstract/bitvavo.js +11 -0
- package/js/src/src/abstract/blockchaincom.d.ts +31 -0
- package/js/src/src/abstract/blockchaincom.js +11 -0
- package/js/src/src/abstract/blofin.d.ts +70 -0
- package/js/src/src/abstract/blofin.js +11 -0
- package/js/src/src/abstract/btcalpha.d.ts +21 -0
- package/js/src/src/abstract/btcalpha.js +11 -0
- package/js/src/src/abstract/btcbox.d.ts +18 -0
- package/js/src/src/abstract/btcbox.js +11 -0
- package/js/src/src/abstract/btcmarkets.d.ts +42 -0
- package/js/src/src/abstract/btcmarkets.js +11 -0
- package/js/src/src/abstract/btcturk.d.ts +23 -0
- package/js/src/src/abstract/btcturk.js +11 -0
- package/js/src/src/abstract/bybit.d.ts +316 -0
- package/js/src/src/abstract/bybit.js +11 -0
- package/js/src/src/abstract/bydfi.d.ts +11 -0
- package/js/src/src/abstract/bydfi.js +11 -0
- package/js/src/src/abstract/cafearz.d.ts +8 -0
- package/js/src/src/abstract/cafearz.js +11 -0
- package/js/src/src/abstract/cex.d.ts +35 -0
- package/js/src/src/abstract/cex.js +11 -0
- package/js/src/src/abstract/coinbase.d.ts +97 -0
- package/js/src/src/abstract/coinbase.js +11 -0
- package/js/src/src/abstract/coinbaseexchange.d.ts +71 -0
- package/js/src/src/abstract/coinbaseexchange.js +11 -0
- package/js/src/src/abstract/coinbaseinternational.d.ts +42 -0
- package/js/src/src/abstract/coinbaseinternational.js +11 -0
- package/js/src/src/abstract/coincatch.d.ts +97 -0
- package/js/src/src/abstract/coincatch.js +11 -0
- package/js/src/src/abstract/coincheck.d.ts +36 -0
- package/js/src/src/abstract/coincheck.js +11 -0
- package/js/src/src/abstract/coinex.d.ts +240 -0
- package/js/src/src/abstract/coinex.js +11 -0
- package/js/src/src/abstract/coinmate.d.ts +65 -0
- package/js/src/src/abstract/coinmate.js +11 -0
- package/js/src/src/abstract/coinmetro.d.ts +37 -0
- package/js/src/src/abstract/coinmetro.js +11 -0
- package/js/src/src/abstract/coinone.d.ts +70 -0
- package/js/src/src/abstract/coinone.js +11 -0
- package/js/src/src/abstract/coinsph.d.ts +57 -0
- package/js/src/src/abstract/coinsph.js +11 -0
- package/js/src/src/abstract/coinspot.d.ts +31 -0
- package/js/src/src/abstract/coinspot.js +11 -0
- package/js/src/src/abstract/cryptocom.d.ts +126 -0
- package/js/src/src/abstract/cryptocom.js +11 -0
- package/js/src/src/abstract/cryptomus.d.ts +23 -0
- package/js/src/src/abstract/cryptomus.js +11 -0
- package/js/src/src/abstract/defx.d.ts +72 -0
- package/js/src/src/abstract/defx.js +11 -0
- package/js/src/src/abstract/delta.d.ts +53 -0
- package/js/src/src/abstract/delta.js +11 -0
- package/js/src/src/abstract/deribit.d.ts +129 -0
- package/js/src/src/abstract/deribit.js +11 -0
- package/js/src/src/abstract/derive.d.ts +120 -0
- package/js/src/src/abstract/derive.js +11 -0
- package/js/src/src/abstract/digifinex.d.ts +95 -0
- package/js/src/src/abstract/digifinex.js +11 -0
- package/js/src/src/abstract/ellipx.d.ts +28 -0
- package/js/src/src/abstract/ellipx.js +11 -0
- package/js/src/src/abstract/eterex.d.ts +8 -0
- package/js/src/src/abstract/eterex.js +11 -0
- package/js/src/src/abstract/excoino.d.ts +10 -0
- package/js/src/src/abstract/excoino.js +11 -0
- package/js/src/src/abstract/exir.d.ts +11 -0
- package/js/src/src/abstract/exir.js +11 -0
- package/js/src/src/abstract/exmo.d.ts +58 -0
- package/js/src/src/abstract/exmo.js +11 -0
- package/js/src/src/abstract/exnovin.d.ts +9 -0
- package/js/src/src/abstract/exnovin.js +11 -0
- package/js/src/src/abstract/farhadexchange.d.ts +8 -0
- package/js/src/src/abstract/farhadexchange.js +11 -0
- package/js/src/src/abstract/foxbit.d.ts +29 -0
- package/js/src/src/abstract/foxbit.js +11 -0
- package/js/src/src/abstract/gate.d.ts +287 -0
- package/js/src/src/abstract/gate.js +11 -0
- package/js/src/src/abstract/gemini.d.ts +62 -0
- package/js/src/src/abstract/gemini.js +11 -0
- package/js/src/src/abstract/hamtapay.d.ts +9 -0
- package/js/src/src/abstract/hamtapay.js +11 -0
- package/js/src/src/abstract/hashkey.d.ts +70 -0
- package/js/src/src/abstract/hashkey.js +11 -0
- package/js/src/src/abstract/hibachi.d.ts +29 -0
- package/js/src/src/abstract/hibachi.js +11 -0
- package/js/src/src/abstract/hitbtc.d.ts +118 -0
- package/js/src/src/abstract/hitbtc.js +11 -0
- package/js/src/src/abstract/hitobit.d.ts +11 -0
- package/js/src/src/abstract/hitobit.js +11 -0
- package/js/src/src/abstract/hollaex.d.ts +36 -0
- package/js/src/src/abstract/hollaex.js +11 -0
- package/js/src/src/abstract/htx.d.ts +551 -0
- package/js/src/src/abstract/htx.js +11 -0
- package/js/src/src/abstract/hyperliquid.d.ts +9 -0
- package/js/src/src/abstract/hyperliquid.js +11 -0
- package/js/src/src/abstract/independentreserve.d.ts +46 -0
- package/js/src/src/abstract/independentreserve.js +11 -0
- package/js/src/src/abstract/indodax.d.ts +29 -0
- package/js/src/src/abstract/indodax.js +11 -0
- package/js/src/src/abstract/iranexchange.d.ts +9 -0
- package/js/src/src/abstract/iranexchange.js +11 -0
- package/js/src/src/abstract/jibitex.d.ts +10 -0
- package/js/src/src/abstract/jibitex.js +11 -0
- package/js/src/src/abstract/kcex.d.ts +10 -0
- package/js/src/src/abstract/kcex.js +11 -0
- package/js/src/src/abstract/kifpoolme.d.ts +9 -0
- package/js/src/src/abstract/kifpoolme.js +11 -0
- package/js/src/src/abstract/kraken.d.ts +61 -0
- package/js/src/src/abstract/kraken.js +11 -0
- package/js/src/src/abstract/krakenfutures.d.ts +45 -0
- package/js/src/src/abstract/krakenfutures.js +11 -0
- package/js/src/src/abstract/kucoin.d.ts +227 -0
- package/js/src/src/abstract/kucoin.js +11 -0
- package/js/src/src/abstract/kucoinfutures.d.ts +254 -0
- package/js/src/src/abstract/kucoinfutures.js +11 -0
- package/js/src/src/abstract/latoken.d.ts +59 -0
- package/js/src/src/abstract/latoken.js +11 -0
- package/js/src/src/abstract/lbank.d.ts +65 -0
- package/js/src/src/abstract/lbank.js +11 -0
- package/js/src/src/abstract/luno.d.ts +41 -0
- package/js/src/src/abstract/luno.js +11 -0
- package/js/src/src/abstract/mazdax.d.ts +11 -0
- package/js/src/src/abstract/mazdax.js +11 -0
- package/js/src/src/abstract/mercado.d.ts +28 -0
- package/js/src/src/abstract/mercado.js +11 -0
- package/js/src/src/abstract/mexc.d.ts +183 -0
- package/js/src/src/abstract/mexc.js +11 -0
- package/js/src/src/abstract/modetrade.d.ts +122 -0
- package/js/src/src/abstract/modetrade.js +11 -0
- package/js/src/src/abstract/ndax.d.ts +100 -0
- package/js/src/src/abstract/ndax.js +11 -0
- package/js/src/src/abstract/nobitex.d.ts +10 -0
- package/js/src/src/abstract/nobitex.js +11 -0
- package/js/src/src/abstract/novadax.d.ts +32 -0
- package/js/src/src/abstract/novadax.js +11 -0
- package/js/src/src/abstract/oceanex.d.ts +30 -0
- package/js/src/src/abstract/oceanex.js +11 -0
- package/js/src/src/abstract/okcoin.d.ts +77 -0
- package/js/src/src/abstract/okcoin.js +11 -0
- package/js/src/src/abstract/okexchange.d.ts +11 -0
- package/js/src/src/abstract/okexchange.js +11 -0
- package/js/src/src/abstract/okx.d.ts +352 -0
- package/js/src/src/abstract/okx.js +11 -0
- package/js/src/src/abstract/ompfinex.d.ts +10 -0
- package/js/src/src/abstract/ompfinex.js +11 -0
- package/js/src/src/abstract/onetrading.d.ts +26 -0
- package/js/src/src/abstract/onetrading.js +11 -0
- package/js/src/src/abstract/oxfun.d.ts +37 -0
- package/js/src/src/abstract/oxfun.js +11 -0
- package/js/src/src/abstract/p2b.d.ts +25 -0
- package/js/src/src/abstract/p2b.js +11 -0
- package/js/src/src/abstract/paradex.d.ts +66 -0
- package/js/src/src/abstract/paradex.js +11 -0
- package/js/src/src/abstract/paymium.d.ts +31 -0
- package/js/src/src/abstract/paymium.js +11 -0
- package/js/src/src/abstract/phemex.d.ts +120 -0
- package/js/src/src/abstract/phemex.js +11 -0
- package/js/src/src/abstract/pingi.d.ts +9 -0
- package/js/src/src/abstract/pingi.js +11 -0
- package/js/src/src/abstract/poloniex.d.ts +108 -0
- package/js/src/src/abstract/poloniex.js +11 -0
- package/js/src/src/abstract/pooleno.d.ts +8 -0
- package/js/src/src/abstract/pooleno.js +11 -0
- package/js/src/src/abstract/probit.d.ts +26 -0
- package/js/src/src/abstract/probit.js +11 -0
- package/js/src/src/abstract/raastin.d.ts +11 -0
- package/js/src/src/abstract/raastin.js +11 -0
- package/js/src/src/abstract/ramzinex.d.ts +10 -0
- package/js/src/src/abstract/ramzinex.js +11 -0
- package/js/src/src/abstract/sarmayex.d.ts +8 -0
- package/js/src/src/abstract/sarmayex.js +11 -0
- package/js/src/src/abstract/sarrafex.d.ts +10 -0
- package/js/src/src/abstract/sarrafex.js +11 -0
- package/js/src/src/abstract/tabdeal.d.ts +10 -0
- package/js/src/src/abstract/tabdeal.js +11 -0
- package/js/src/src/abstract/tehran_exchange.d.ts +9 -0
- package/js/src/src/abstract/tehran_exchange.js +11 -0
- package/js/src/src/abstract/tetherland.d.ts +8 -0
- package/js/src/src/abstract/tetherland.js +11 -0
- package/js/src/src/abstract/timex.d.ts +65 -0
- package/js/src/src/abstract/timex.js +11 -0
- package/js/src/src/abstract/tokocrypto.d.ts +40 -0
- package/js/src/src/abstract/tokocrypto.js +11 -0
- package/js/src/src/abstract/toobit.d.ts +10 -0
- package/js/src/src/abstract/toobit.js +11 -0
- package/js/src/src/abstract/tradeogre.d.ts +21 -0
- package/js/src/src/abstract/tradeogre.js +11 -0
- package/js/src/src/abstract/twox.d.ts +8 -0
- package/js/src/src/abstract/twox.js +11 -0
- package/js/src/src/abstract/ubitex.d.ts +10 -0
- package/js/src/src/abstract/ubitex.js +11 -0
- package/js/src/src/abstract/upbit.d.ts +58 -0
- package/js/src/src/abstract/upbit.js +11 -0
- package/js/src/src/abstract/vertex.d.ts +22 -0
- package/js/src/src/abstract/vertex.js +11 -0
- package/js/src/src/abstract/wallex.d.ts +11 -0
- package/js/src/src/abstract/wallex.js +11 -0
- package/js/src/src/abstract/wavesexchange.d.ts +157 -0
- package/js/src/src/abstract/wavesexchange.js +11 -0
- package/js/src/src/abstract/whitebit.d.ts +117 -0
- package/js/src/src/abstract/whitebit.js +11 -0
- package/js/src/src/abstract/woo.d.ts +144 -0
- package/js/src/src/abstract/woo.js +11 -0
- package/js/src/src/abstract/woofipro.d.ts +122 -0
- package/js/src/src/abstract/woofipro.js +11 -0
- package/js/src/src/abstract/xt.d.ts +160 -0
- package/js/src/src/abstract/xt.js +11 -0
- package/js/src/src/abstract/yobit.d.ts +19 -0
- package/js/src/src/abstract/yobit.js +11 -0
- package/js/src/src/abstract/zaif.d.ts +41 -0
- package/js/src/src/abstract/zaif.js +11 -0
- package/js/src/src/abstract/zonda.d.ts +56 -0
- package/js/src/src/abstract/zonda.js +11 -0
- package/js/src/src/afratether.d.ts +21 -0
- package/js/src/src/afratether.js +356 -0
- package/js/src/src/alpaca.d.ts +332 -0
- package/js/src/src/alpaca.js +1908 -0
- package/js/src/src/apex.d.ts +333 -0
- package/js/src/src/apex.js +1942 -0
- package/js/src/src/arzinja.d.ts +21 -0
- package/js/src/src/arzinja.js +298 -0
- package/js/src/src/arzplus.d.ts +26 -0
- package/js/src/src/arzplus.js +581 -0
- package/js/src/src/ascendex.d.ts +424 -0
- package/js/src/src/ascendex.js +3699 -0
- package/js/src/src/asretether.d.ts +21 -0
- package/js/src/src/asretether.js +324 -0
- package/js/src/src/base/Exchange.d.ts +926 -0
- package/js/src/src/base/Exchange.js +7399 -0
- package/js/src/src/base/Precise.d.ts +42 -0
- package/js/src/src/base/Precise.js +275 -0
- package/js/src/src/base/errors.d.ts +168 -0
- package/js/src/src/base/errors.js +255 -0
- package/js/src/src/base/functions/crypto.d.ts +16 -0
- package/js/src/src/base/functions/crypto.js +131 -0
- package/js/src/src/base/functions/encode.d.ts +4 -0
- package/js/src/src/base/functions/encode.js +32 -0
- package/js/src/src/base/functions/generic.d.ts +29 -0
- package/js/src/src/base/functions/generic.js +203 -0
- package/js/src/src/base/functions/misc.d.ts +9 -0
- package/js/src/src/base/functions/misc.js +101 -0
- package/js/src/src/base/functions/number.d.ts +27 -0
- package/js/src/src/base/functions/number.js +313 -0
- package/js/src/src/base/functions/platform.d.ts +7 -0
- package/js/src/src/base/functions/platform.js +27 -0
- package/js/src/src/base/functions/rsa.d.ts +5 -0
- package/js/src/src/base/functions/rsa.js +49 -0
- package/js/src/src/base/functions/string.d.ts +7 -0
- package/js/src/src/base/functions/string.js +44 -0
- package/js/src/src/base/functions/throttle.d.ts +6 -0
- package/js/src/src/base/functions/throttle.js +67 -0
- package/js/src/src/base/functions/time.d.ts +21 -0
- package/js/src/src/base/functions/time.js +171 -0
- package/js/src/src/base/functions/totp.d.ts +3 -0
- package/js/src/src/base/functions/totp.js +25 -0
- package/js/src/src/base/functions/type.d.ts +37 -0
- package/js/src/src/base/functions/type.js +179 -0
- package/js/src/src/base/functions.d.ts +10 -0
- package/js/src/src/base/functions.js +18 -0
- package/js/src/src/base/types.d.ts +586 -0
- package/js/src/src/base/types.js +7 -0
- package/js/src/src/base/ws/Cache.d.ts +27 -0
- package/js/src/src/base/ws/Cache.js +260 -0
- package/js/src/src/base/ws/Client.d.ts +53 -0
- package/js/src/src/base/ws/Client.js +307 -0
- package/js/src/src/base/ws/Future.d.ts +8 -0
- package/js/src/src/base/ws/Future.js +35 -0
- package/js/src/src/base/ws/OrderBook.d.ts +25 -0
- package/js/src/src/base/ws/OrderBook.js +130 -0
- package/js/src/src/base/ws/OrderBookSide.d.ts +40 -0
- package/js/src/src/base/ws/OrderBookSide.js +286 -0
- package/js/src/src/base/ws/WsClient.d.ts +11 -0
- package/js/src/src/base/ws/WsClient.js +69 -0
- package/js/src/src/bequant.d.ts +4 -0
- package/js/src/src/bequant.js +35 -0
- package/js/src/src/bidarz.d.ts +16 -0
- package/js/src/src/bidarz.js +327 -0
- package/js/src/src/bigone.d.ts +296 -0
- package/js/src/src/bigone.js +2340 -0
- package/js/src/src/binance.d.ts +1667 -0
- package/js/src/src/binance.js +14400 -0
- package/js/src/src/binancecoinm.d.ts +6 -0
- package/js/src/src/binancecoinm.js +51 -0
- package/js/src/src/binanceus.d.ts +4 -0
- package/js/src/src/binanceus.js +225 -0
- package/js/src/src/binanceusdm.d.ts +6 -0
- package/js/src/src/binanceusdm.js +63 -0
- package/js/src/src/bingx.d.ts +778 -0
- package/js/src/src/bingx.js +6705 -0
- package/js/src/src/bit24.d.ts +24 -0
- package/js/src/src/bit24.js +520 -0
- package/js/src/src/bit2c.d.ts +146 -0
- package/js/src/src/bit2c.js +1029 -0
- package/js/src/src/bitbank.d.ts +181 -0
- package/js/src/src/bitbank.js +1146 -0
- package/js/src/src/bitbarg.d.ts +21 -0
- package/js/src/src/bitbarg.js +312 -0
- package/js/src/src/bitbns.d.ts +184 -0
- package/js/src/src/bitbns.js +1288 -0
- package/js/src/src/bitfinex.d.ts +516 -0
- package/js/src/src/bitfinex.js +3951 -0
- package/js/src/src/bitflyer.d.ts +229 -0
- package/js/src/src/bitflyer.js +1209 -0
- package/js/src/src/bitget.d.ts +1109 -0
- package/js/src/src/bitget.js +11033 -0
- package/js/src/src/bithumb.d.ts +165 -0
- package/js/src/src/bithumb.js +1257 -0
- package/js/src/src/bitimen.d.ts +23 -0
- package/js/src/src/bitimen.js +424 -0
- package/js/src/src/bitir.d.ts +23 -0
- package/js/src/src/bitir.js +521 -0
- package/js/src/src/bitmart.d.ts +736 -0
- package/js/src/src/bitmart.js +5639 -0
- package/js/src/src/bitmex.d.ts +395 -0
- package/js/src/src/bitmex.js +3088 -0
- package/js/src/src/bitopro.d.ts +295 -0
- package/js/src/src/bitopro.js +1892 -0
- package/js/src/src/bitpin.d.ts +23 -0
- package/js/src/src/bitpin.js +487 -0
- package/js/src/src/bitrue.d.ts +384 -0
- package/js/src/src/bitrue.js +3382 -0
- package/js/src/src/bitso.d.ts +270 -0
- package/js/src/src/bitso.js +1881 -0
- package/js/src/src/bitstamp.d.ts +355 -0
- package/js/src/src/bitstamp.js +2445 -0
- package/js/src/src/bitteam.d.ts +229 -0
- package/js/src/src/bitteam.js +2420 -0
- package/js/src/src/bittrade.d.ts +298 -0
- package/js/src/src/bittrade.js +2050 -0
- package/js/src/src/bitunix.d.ts +21 -0
- package/js/src/src/bitunix.js +326 -0
- package/js/src/src/bitvavo.d.ts +311 -0
- package/js/src/src/bitvavo.js +2204 -0
- package/js/src/src/blockchaincom.d.ts +256 -0
- package/js/src/src/blockchaincom.js +1259 -0
- package/js/src/src/blofin.d.ts +439 -0
- package/js/src/src/blofin.js +2576 -0
- package/js/src/src/btcalpha.d.ts +209 -0
- package/js/src/src/btcalpha.js +1056 -0
- package/js/src/src/btcbox.d.ts +144 -0
- package/js/src/src/btcbox.js +834 -0
- package/js/src/src/btcmarkets.d.ts +253 -0
- package/js/src/src/btcmarkets.js +1418 -0
- package/js/src/src/btcturk.d.ts +161 -0
- package/js/src/src/btcturk.js +1058 -0
- package/js/src/src/bybit.d.ts +1097 -0
- package/js/src/src/bybit.js +9382 -0
- package/js/src/src/bydfi.d.ts +23 -0
- package/js/src/src/bydfi.js +434 -0
- package/js/src/src/cafearz.d.ts +21 -0
- package/js/src/src/cafearz.js +346 -0
- package/js/src/src/cex.d.ts +286 -0
- package/js/src/src/cex.js +1799 -0
- package/js/src/src/coinbase.d.ts +623 -0
- package/js/src/src/coinbase.js +5220 -0
- package/js/src/src/coinbaseadvanced.d.ts +4 -0
- package/js/src/src/coinbaseadvanced.js +18 -0
- package/js/src/src/coinbaseexchange.d.ts +334 -0
- package/js/src/src/coinbaseexchange.js +2127 -0
- package/js/src/src/coinbaseinternational.d.ts +443 -0
- package/js/src/src/coinbaseinternational.js +2336 -0
- package/js/src/src/coincatch.d.ts +786 -0
- package/js/src/src/coincatch.js +5492 -0
- package/js/src/src/coincheck.d.ts +147 -0
- package/js/src/src/coincheck.js +962 -0
- package/js/src/src/coinex.d.ts +719 -0
- package/js/src/src/coinex.js +6166 -0
- package/js/src/src/coinmate.d.ts +202 -0
- package/js/src/src/coinmate.js +1215 -0
- package/js/src/src/coinmetro.d.ts +244 -0
- package/js/src/src/coinmetro.js +2024 -0
- package/js/src/src/coinone.d.ts +158 -0
- package/js/src/src/coinone.js +1278 -0
- package/js/src/src/coinsph.d.ts +310 -0
- package/js/src/src/coinsph.js +2203 -0
- package/js/src/src/coinspot.d.ts +108 -0
- package/js/src/src/coinspot.js +653 -0
- package/js/src/src/cryptocom.d.ts +463 -0
- package/js/src/src/cryptocom.js +3549 -0
- package/js/src/src/cryptomus.d.ts +158 -0
- package/js/src/src/cryptomus.js +1169 -0
- package/js/src/src/defx.d.ts +348 -0
- package/js/src/src/defx.js +2139 -0
- package/js/src/src/delta.d.ts +407 -0
- package/js/src/src/delta.js +3654 -0
- package/js/src/src/deribit.d.ts +516 -0
- package/js/src/src/deribit.js +3790 -0
- package/js/src/src/derive.d.ts +324 -0
- package/js/src/src/derive.js +2655 -0
- package/js/src/src/digifinex.d.ts +544 -0
- package/js/src/src/digifinex.js +4453 -0
- package/js/src/src/ellipx.d.ts +237 -0
- package/js/src/src/ellipx.js +2071 -0
- package/js/src/src/eterex.d.ts +21 -0
- package/js/src/src/eterex.js +299 -0
- package/js/src/src/excoino.d.ts +23 -0
- package/js/src/src/excoino.js +426 -0
- package/js/src/src/exir.d.ts +23 -0
- package/js/src/src/exir.js +403 -0
- package/js/src/src/exmo.d.ts +426 -0
- package/js/src/src/exmo.js +2825 -0
- package/js/src/src/exnovin.d.ts +22 -0
- package/js/src/src/exnovin.js +378 -0
- package/js/src/src/farhadexchange.d.ts +21 -0
- package/js/src/src/farhadexchange.js +280 -0
- package/js/src/src/fmfwio.d.ts +4 -0
- package/js/src/src/fmfwio.js +35 -0
- package/js/src/src/foxbit.d.ts +352 -0
- package/js/src/src/foxbit.js +2016 -0
- package/js/src/src/gate.d.ts +1071 -0
- package/js/src/src/gate.js +8282 -0
- package/js/src/src/gateio.d.ts +4 -0
- package/js/src/src/gateio.js +17 -0
- package/js/src/src/gemini.d.ts +257 -0
- package/js/src/src/gemini.js +2006 -0
- package/js/src/src/hamtapay.d.ts +21 -0
- package/js/src/src/hamtapay.js +303 -0
- package/js/src/src/hashkey.d.ts +628 -0
- package/js/src/src/hashkey.js +4363 -0
- package/js/src/src/hibachi.d.ts +346 -0
- package/js/src/src/hibachi.js +2137 -0
- package/js/src/src/hitbtc.d.ts +558 -0
- package/js/src/src/hitbtc.js +3847 -0
- package/js/src/src/hitobit.d.ts +23 -0
- package/js/src/src/hitobit.js +412 -0
- package/js/src/src/hollaex.d.ts +305 -0
- package/js/src/src/hollaex.js +2046 -0
- package/js/src/src/htx.d.ts +961 -0
- package/js/src/src/htx.js +9668 -0
- package/js/src/src/huobi.d.ts +4 -0
- package/js/src/src/huobi.js +17 -0
- package/js/src/src/hyperliquid.d.ts +651 -0
- package/js/src/src/hyperliquid.js +3937 -0
- package/js/src/src/independentreserve.d.ts +169 -0
- package/js/src/src/independentreserve.js +1115 -0
- package/js/src/src/indodax.d.ts +217 -0
- package/js/src/src/indodax.js +1454 -0
- package/js/src/src/iranexchange.d.ts +21 -0
- package/js/src/src/iranexchange.js +399 -0
- package/js/src/src/jibitex.d.ts +23 -0
- package/js/src/src/jibitex.js +416 -0
- package/js/src/src/kcex.d.ts +21 -0
- package/js/src/src/kcex.js +335 -0
- package/js/src/src/kifpoolme.d.ts +23 -0
- package/js/src/src/kifpoolme.js +410 -0
- package/js/src/src/kraken.d.ts +484 -0
- package/js/src/src/kraken.js +3518 -0
- package/js/src/src/krakenfutures.d.ts +362 -0
- package/js/src/src/krakenfutures.js +2885 -0
- package/js/src/src/kucoin.d.ts +759 -0
- package/js/src/src/kucoin.js +5153 -0
- package/js/src/src/kucoinfutures.d.ts +521 -0
- package/js/src/src/kucoinfutures.js +3381 -0
- package/js/src/src/latoken.d.ts +274 -0
- package/js/src/src/latoken.js +1824 -0
- package/js/src/src/lbank.d.ts +350 -0
- package/js/src/src/lbank.js +3146 -0
- package/js/src/src/luno.d.ts +252 -0
- package/js/src/src/luno.js +1479 -0
- package/js/src/src/mazdax.d.ts +23 -0
- package/js/src/src/mazdax.js +534 -0
- package/js/src/src/mercado.d.ts +160 -0
- package/js/src/src/mercado.js +1011 -0
- package/js/src/src/mexc.d.ts +768 -0
- package/js/src/src/mexc.js +6102 -0
- package/js/src/src/modetrade.d.ts +496 -0
- package/js/src/src/modetrade.js +2936 -0
- package/js/src/src/myokx.d.ts +4 -0
- package/js/src/src/myokx.js +54 -0
- package/js/src/src/ndax.d.ts +285 -0
- package/js/src/src/ndax.js +2598 -0
- package/js/src/src/nobitex.d.ts +23 -0
- package/js/src/src/nobitex.js +454 -0
- package/js/src/src/novadax.d.ts +279 -0
- package/js/src/src/novadax.js +1676 -0
- package/js/src/src/oceanex.d.ts +231 -0
- package/js/src/src/oceanex.js +1123 -0
- package/js/src/src/okcoin.d.ts +346 -0
- package/js/src/src/okcoin.js +3211 -0
- package/js/src/src/okexchange.d.ts +23 -0
- package/js/src/src/okexchange.js +373 -0
- package/js/src/src/okx.d.ts +1125 -0
- package/js/src/src/okx.js +9009 -0
- package/js/src/src/okxus.d.ts +4 -0
- package/js/src/src/okxus.js +54 -0
- package/js/src/src/ompfinex.d.ts +23 -0
- package/js/src/src/ompfinex.js +510 -0
- package/js/src/src/onetrading.d.ts +228 -0
- package/js/src/src/onetrading.js +1769 -0
- package/js/src/src/oxfun.d.ts +442 -0
- package/js/src/src/oxfun.js +2920 -0
- package/js/src/src/p2b.d.ts +189 -0
- package/js/src/src/p2b.js +1344 -0
- package/js/src/src/paradex.d.ts +389 -0
- package/js/src/src/paradex.js +2607 -0
- package/js/src/src/paymium.d.ts +133 -0
- package/js/src/src/paymium.js +644 -0
- package/js/src/src/phemex.d.ts +497 -0
- package/js/src/src/phemex.js +5333 -0
- package/js/src/src/pingi.d.ts +22 -0
- package/js/src/src/pingi.js +446 -0
- package/js/src/src/poloniex.d.ts +441 -0
- package/js/src/src/poloniex.js +3681 -0
- package/js/src/src/pooleno.d.ts +21 -0
- package/js/src/src/pooleno.js +347 -0
- package/js/src/src/pro/alpaca.d.ts +95 -0
- package/js/src/src/pro/alpaca.js +724 -0
- package/js/src/src/pro/apex.d.ts +160 -0
- package/js/src/src/pro/apex.js +1044 -0
- package/js/src/src/pro/ascendex.d.ts +99 -0
- package/js/src/src/pro/ascendex.js +1012 -0
- package/js/src/src/pro/bequant.d.ts +4 -0
- package/js/src/src/pro/bequant.js +42 -0
- package/js/src/src/pro/binance.d.ts +796 -0
- package/js/src/src/pro/binance.js +4373 -0
- package/js/src/src/pro/binancecoinm.d.ts +4 -0
- package/js/src/src/pro/binancecoinm.js +32 -0
- package/js/src/src/pro/binanceus.d.ts +4 -0
- package/js/src/src/pro/binanceus.js +52 -0
- package/js/src/src/pro/binanceusdm.d.ts +4 -0
- package/js/src/src/pro/binanceusdm.js +37 -0
- package/js/src/src/pro/bingx.d.ts +151 -0
- package/js/src/src/pro/bingx.js +1568 -0
- package/js/src/src/pro/bitfinex.d.ts +99 -0
- package/js/src/src/pro/bitfinex.js +1165 -0
- package/js/src/src/pro/bitget.d.ts +257 -0
- package/js/src/src/pro/bitget.js +2327 -0
- package/js/src/src/pro/bithumb.d.ts +59 -0
- package/js/src/src/pro/bithumb.js +395 -0
- package/js/src/src/pro/bitmart.d.ts +168 -0
- package/js/src/src/pro/bitmart.js +1686 -0
- package/js/src/src/pro/bitmex.d.ts +170 -0
- package/js/src/src/pro/bitmex.js +1760 -0
- package/js/src/src/pro/bitopro.d.ts +69 -0
- package/js/src/src/pro/bitopro.js +477 -0
- package/js/src/src/pro/bitrue.d.ts +40 -0
- package/js/src/src/pro/bitrue.js +461 -0
- package/js/src/src/pro/bitstamp.d.ts +53 -0
- package/js/src/src/pro/bitstamp.js +587 -0
- package/js/src/src/pro/bittrade.d.ts +66 -0
- package/js/src/src/pro/bittrade.js +606 -0
- package/js/src/src/pro/bitvavo.d.ts +321 -0
- package/js/src/src/pro/bitvavo.js +1451 -0
- package/js/src/src/pro/blockchaincom.d.ts +89 -0
- package/js/src/src/pro/blockchaincom.js +777 -0
- package/js/src/src/pro/blofin.d.ts +174 -0
- package/js/src/src/pro/blofin.js +743 -0
- package/js/src/src/pro/bybit.d.ts +397 -0
- package/js/src/src/pro/bybit.js +2519 -0
- package/js/src/src/pro/cex.d.ts +220 -0
- package/js/src/src/pro/cex.js +1535 -0
- package/js/src/src/pro/coinbase.d.ts +119 -0
- package/js/src/src/pro/coinbase.js +736 -0
- package/js/src/src/pro/coinbaseadvanced.d.ts +4 -0
- package/js/src/src/pro/coinbaseadvanced.js +18 -0
- package/js/src/src/pro/coinbaseexchange.d.ts +133 -0
- package/js/src/src/pro/coinbaseexchange.js +969 -0
- package/js/src/src/pro/coinbaseinternational.d.ts +143 -0
- package/js/src/src/pro/coinbaseinternational.js +804 -0
- package/js/src/src/pro/coincatch.d.ts +207 -0
- package/js/src/src/pro/coincatch.js +1562 -0
- package/js/src/src/pro/coincheck.d.ts +33 -0
- package/js/src/src/pro/coincheck.js +210 -0
- package/js/src/src/pro/coinex.d.ts +147 -0
- package/js/src/src/pro/coinex.js +1426 -0
- package/js/src/src/pro/coinone.d.ts +51 -0
- package/js/src/src/pro/coinone.js +413 -0
- package/js/src/src/pro/cryptocom.d.ts +300 -0
- package/js/src/src/pro/cryptocom.js +1414 -0
- package/js/src/src/pro/defx.d.ts +236 -0
- package/js/src/src/pro/defx.js +865 -0
- package/js/src/src/pro/deribit.d.ts +163 -0
- package/js/src/src/pro/deribit.js +1066 -0
- package/js/src/src/pro/derive.d.ts +100 -0
- package/js/src/src/pro/derive.js +753 -0
- package/js/src/src/pro/exmo.d.ts +97 -0
- package/js/src/src/pro/exmo.js +903 -0
- package/js/src/src/pro/gate.d.ts +360 -0
- package/js/src/src/pro/gate.js +2119 -0
- package/js/src/src/pro/gateio.d.ts +4 -0
- package/js/src/src/pro/gateio.js +17 -0
- package/js/src/src/pro/gemini.d.ts +106 -0
- package/js/src/src/pro/gemini.js +932 -0
- package/js/src/src/pro/hashkey.d.ts +121 -0
- package/js/src/src/pro/hashkey.js +843 -0
- package/js/src/src/pro/hitbtc.d.ts +235 -0
- package/js/src/src/pro/hitbtc.js +1400 -0
- package/js/src/src/pro/hollaex.d.ts +77 -0
- package/js/src/src/pro/hollaex.js +604 -0
- package/js/src/src/pro/htx.d.ts +141 -0
- package/js/src/src/pro/htx.js +2415 -0
- package/js/src/src/pro/huobi.d.ts +4 -0
- package/js/src/src/pro/huobi.js +17 -0
- package/js/src/src/pro/hyperliquid.d.ts +218 -0
- package/js/src/src/pro/hyperliquid.js +1126 -0
- package/js/src/src/pro/independentreserve.d.ts +36 -0
- package/js/src/src/pro/independentreserve.js +287 -0
- package/js/src/src/pro/kraken.d.ts +233 -0
- package/js/src/src/pro/kraken.js +1785 -0
- package/js/src/src/pro/krakenfutures.d.ts +178 -0
- package/js/src/src/pro/krakenfutures.js +1592 -0
- package/js/src/src/pro/kucoin.d.ts +221 -0
- package/js/src/src/pro/kucoin.js +1430 -0
- package/js/src/src/pro/kucoinfutures.d.ts +205 -0
- package/js/src/src/pro/kucoinfutures.js +1295 -0
- package/js/src/src/pro/lbank.d.ts +134 -0
- package/js/src/src/pro/lbank.js +950 -0
- package/js/src/src/pro/luno.d.ts +44 -0
- package/js/src/src/pro/luno.js +322 -0
- package/js/src/src/pro/mexc.d.ts +210 -0
- package/js/src/src/pro/mexc.js +2009 -0
- package/js/src/src/pro/modetrade.d.ts +155 -0
- package/js/src/src/pro/modetrade.js +1335 -0
- package/js/src/src/pro/myokx.d.ts +4 -0
- package/js/src/src/pro/myokx.js +39 -0
- package/js/src/src/pro/ndax.d.ts +60 -0
- package/js/src/src/pro/ndax.js +545 -0
- package/js/src/src/pro/okcoin.d.ts +91 -0
- package/js/src/src/pro/okcoin.js +763 -0
- package/js/src/src/pro/okx.d.ts +408 -0
- package/js/src/src/pro/okx.js +2479 -0
- package/js/src/src/pro/okxus.d.ts +4 -0
- package/js/src/src/pro/okxus.js +39 -0
- package/js/src/src/pro/onetrading.d.ts +107 -0
- package/js/src/src/pro/onetrading.js +1343 -0
- package/js/src/src/pro/oxfun.d.ts +234 -0
- package/js/src/src/pro/oxfun.js +1112 -0
- package/js/src/src/pro/p2b.d.ts +104 -0
- package/js/src/src/pro/p2b.js +506 -0
- package/js/src/src/pro/paradex.d.ts +54 -0
- package/js/src/src/pro/paradex.js +370 -0
- package/js/src/src/pro/phemex.d.ts +129 -0
- package/js/src/src/pro/phemex.js +1569 -0
- package/js/src/src/pro/poloniex.d.ts +214 -0
- package/js/src/src/pro/poloniex.js +1318 -0
- package/js/src/src/pro/probit.d.ts +91 -0
- package/js/src/src/pro/probit.js +593 -0
- package/js/src/src/pro/tradeogre.d.ts +49 -0
- package/js/src/src/pro/tradeogre.js +284 -0
- package/js/src/src/pro/upbit.d.ts +124 -0
- package/js/src/src/pro/upbit.js +689 -0
- package/js/src/src/pro/vertex.d.ts +104 -0
- package/js/src/src/pro/vertex.js +999 -0
- package/js/src/src/pro/whitebit.d.ts +123 -0
- package/js/src/src/pro/whitebit.js +971 -0
- package/js/src/src/pro/woo.d.ts +161 -0
- package/js/src/src/pro/woo.js +1351 -0
- package/js/src/src/pro/woofipro.d.ts +155 -0
- package/js/src/src/pro/woofipro.js +1335 -0
- package/js/src/src/pro/xt.d.ts +165 -0
- package/js/src/src/pro/xt.js +1230 -0
- package/js/src/src/probit.d.ts +283 -0
- package/js/src/src/probit.js +1935 -0
- package/js/src/src/protobuf/mexc/compiled.cjs +7186 -0
- package/js/src/src/protobuf/mexc/compiled.d.cts +8 -0
- package/js/src/src/raastin.d.ts +24 -0
- package/js/src/src/raastin.js +494 -0
- package/js/src/src/ramzinex.d.ts +23 -0
- package/js/src/src/ramzinex.js +510 -0
- package/js/src/src/sarmayex.d.ts +21 -0
- package/js/src/src/sarmayex.js +376 -0
- package/js/src/src/sarrafex.d.ts +23 -0
- package/js/src/src/sarrafex.js +501 -0
- package/js/src/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
- package/js/src/src/static_dependencies/ethers/abi-coder.js +148 -0
- package/js/src/src/static_dependencies/ethers/address/address.d.ts +55 -0
- package/js/src/src/static_dependencies/ethers/address/address.js +162 -0
- package/js/src/src/static_dependencies/ethers/address/checks.d.ts +80 -0
- package/js/src/src/static_dependencies/ethers/address/checks.js +119 -0
- package/js/src/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
- package/js/src/src/static_dependencies/ethers/address/contract-address.js +73 -0
- package/js/src/src/static_dependencies/ethers/address/index.d.ts +48 -0
- package/js/src/src/static_dependencies/ethers/address/index.js +24 -0
- package/js/src/src/static_dependencies/ethers/bytes32.d.ts +14 -0
- package/js/src/src/static_dependencies/ethers/bytes32.js +45 -0
- package/js/src/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
- package/js/src/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
- package/js/src/src/static_dependencies/ethers/coders/address.d.ts +12 -0
- package/js/src/src/static_dependencies/ethers/coders/address.js +34 -0
- package/js/src/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
- package/js/src/src/static_dependencies/ethers/coders/anonymous.js +27 -0
- package/js/src/src/static_dependencies/ethers/coders/array.d.ts +24 -0
- package/js/src/src/static_dependencies/ethers/coders/array.js +162 -0
- package/js/src/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
- package/js/src/src/static_dependencies/ethers/coders/boolean.js +26 -0
- package/js/src/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
- package/js/src/src/static_dependencies/ethers/coders/bytes.js +39 -0
- package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
- package/js/src/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
- package/js/src/src/static_dependencies/ethers/coders/null.d.ts +11 -0
- package/js/src/src/static_dependencies/ethers/coders/null.js +29 -0
- package/js/src/src/static_dependencies/ethers/coders/number.d.ts +15 -0
- package/js/src/src/static_dependencies/ethers/coders/number.js +48 -0
- package/js/src/src/static_dependencies/ethers/coders/string.d.ts +12 -0
- package/js/src/src/static_dependencies/ethers/coders/string.js +26 -0
- package/js/src/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
- package/js/src/src/static_dependencies/ethers/coders/tuple.js +67 -0
- package/js/src/src/static_dependencies/ethers/fragments.d.ts +458 -0
- package/js/src/src/static_dependencies/ethers/fragments.js +1252 -0
- package/js/src/src/static_dependencies/ethers/hash/index.d.ts +10 -0
- package/js/src/src/static_dependencies/ethers/hash/index.js +15 -0
- package/js/src/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
- package/js/src/src/static_dependencies/ethers/hash/solidity.js +107 -0
- package/js/src/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
- package/js/src/src/static_dependencies/ethers/hash/typed-data.js +490 -0
- package/js/src/src/static_dependencies/ethers/index.d.ts +19 -0
- package/js/src/src/static_dependencies/ethers/index.js +22 -0
- package/js/src/src/static_dependencies/ethers/interface.d.ts +380 -0
- package/js/src/src/static_dependencies/ethers/interface.js +990 -0
- package/js/src/src/static_dependencies/ethers/typed.d.ts +569 -0
- package/js/src/src/static_dependencies/ethers/typed.js +608 -0
- package/js/src/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
- package/js/src/src/static_dependencies/ethers/utils/base58.js +68 -0
- package/js/src/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
- package/js/src/src/static_dependencies/ethers/utils/base64.js +58 -0
- package/js/src/src/static_dependencies/ethers/utils/data.d.ts +92 -0
- package/js/src/src/static_dependencies/ethers/utils/data.js +175 -0
- package/js/src/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
- package/js/src/src/static_dependencies/ethers/utils/errors.js +227 -0
- package/js/src/src/static_dependencies/ethers/utils/events.d.ts +76 -0
- package/js/src/src/static_dependencies/ethers/utils/events.js +52 -0
- package/js/src/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
- package/js/src/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
- package/js/src/src/static_dependencies/ethers/utils/index.d.ts +30 -0
- package/js/src/src/static_dependencies/ethers/utils/index.js +38 -0
- package/js/src/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
- package/js/src/src/static_dependencies/ethers/utils/maths.js +220 -0
- package/js/src/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
- package/js/src/src/static_dependencies/ethers/utils/properties.js +59 -0
- package/js/src/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
- package/js/src/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
- package/js/src/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
- package/js/src/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
- package/js/src/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
- package/js/src/src/static_dependencies/ethers/utils/rlp.js +14 -0
- package/js/src/src/static_dependencies/ethers/utils/units.d.ts +23 -0
- package/js/src/src/static_dependencies/ethers/utils/units.js +88 -0
- package/js/src/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
- package/js/src/src/static_dependencies/ethers/utils/utf8.js +225 -0
- package/js/src/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
- package/js/src/src/static_dependencies/ethers/utils/uuid.js +35 -0
- package/js/src/src/static_dependencies/fflake/browser.d.ts +222 -0
- package/js/src/src/static_dependencies/fflake/browser.js +2578 -0
- package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.d.ts +116 -0
- package/js/src/src/static_dependencies/jsencrypt/JSEncrypt.js +194 -0
- package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.d.ts +142 -0
- package/js/src/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +307 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.d.ts +51 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +565 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.d.ts +5 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +94 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.d.ts +3 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +70 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.d.ts +9 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +91 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.d.ts +3 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +25 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +101 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1757 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.d.ts +10 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +50 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.d.ts +3 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +80 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.d.ts +23 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +377 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.d.ts +7 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsbn/util.js +64 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.d.ts +24 -0
- package/js/src/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1627 -0
- package/js/src/src/static_dependencies/noble-curves/_shortw_utils.d.ts +60 -0
- package/js/src/src/static_dependencies/noble-curves/_shortw_utils.js +22 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/curve.d.ts +67 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/curve.js +157 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/edwards.d.ts +79 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/edwards.js +432 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.d.ts +56 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +171 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/modular.d.ts +68 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/modular.js +351 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.d.ts +25 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/montgomery.js +162 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.d.ts +29 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/poseidon.js +115 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/utils.d.ts +53 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/utils.js +227 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +204 -0
- package/js/src/src/static_dependencies/noble-curves/abstract/weierstrass.js +1016 -0
- package/js/src/src/static_dependencies/noble-curves/ed25519.d.ts +53 -0
- package/js/src/src/static_dependencies/noble-curves/ed25519.js +402 -0
- package/js/src/src/static_dependencies/noble-curves/p256.d.ts +103 -0
- package/js/src/src/static_dependencies/noble-curves/p256.js +47 -0
- package/js/src/src/static_dependencies/noble-curves/secp256k1.d.ts +91 -0
- package/js/src/src/static_dependencies/noble-curves/secp256k1.js +257 -0
- package/js/src/src/static_dependencies/noble-hashes/_assert.d.ts +21 -0
- package/js/src/src/static_dependencies/noble-hashes/_assert.js +48 -0
- package/js/src/src/static_dependencies/noble-hashes/_sha2.d.ts +23 -0
- package/js/src/src/static_dependencies/noble-hashes/_sha2.js +119 -0
- package/js/src/src/static_dependencies/noble-hashes/_u64.d.ts +35 -0
- package/js/src/src/static_dependencies/noble-hashes/_u64.js +66 -0
- package/js/src/src/static_dependencies/noble-hashes/crypto.d.ts +1 -0
- package/js/src/src/static_dependencies/noble-hashes/crypto.js +7 -0
- package/js/src/src/static_dependencies/noble-hashes/hmac.d.ts +26 -0
- package/js/src/src/static_dependencies/noble-hashes/hmac.js +82 -0
- package/js/src/src/static_dependencies/noble-hashes/md5.d.ts +18 -0
- package/js/src/src/static_dependencies/noble-hashes/md5.js +242 -0
- package/js/src/src/static_dependencies/noble-hashes/sha1.d.ts +21 -0
- package/js/src/src/static_dependencies/noble-hashes/sha1.js +90 -0
- package/js/src/src/static_dependencies/noble-hashes/sha256.d.ts +34 -0
- package/js/src/src/static_dependencies/noble-hashes/sha256.js +129 -0
- package/js/src/src/static_dependencies/noble-hashes/sha3.d.ts +97 -0
- package/js/src/src/static_dependencies/noble-hashes/sha3.js +211 -0
- package/js/src/src/static_dependencies/noble-hashes/sha512.d.ts +66 -0
- package/js/src/src/static_dependencies/noble-hashes/sha512.js +236 -0
- package/js/src/src/static_dependencies/noble-hashes/utils.d.ts +77 -0
- package/js/src/src/static_dependencies/noble-hashes/utils.js +147 -0
- package/js/src/src/static_dependencies/proxies/agent-base/helpers.d.ts +14 -0
- package/js/src/src/static_dependencies/proxies/agent-base/helpers.js +42 -0
- package/js/src/src/static_dependencies/proxies/agent-base/index.d.ts +33 -0
- package/js/src/src/static_dependencies/proxies/agent-base/index.js +82 -0
- package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.d.ts +40 -0
- package/js/src/src/static_dependencies/proxies/http-proxy-agent/index.js +119 -0
- package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.d.ts +45 -0
- package/js/src/src/static_dependencies/proxies/https-proxy-agent/index.js +150 -0
- package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +15 -0
- package/js/src/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +95 -0
- package/js/src/src/static_dependencies/qs/formats.cjs +22 -0
- package/js/src/src/static_dependencies/qs/formats.d.cts +14 -0
- package/js/src/src/static_dependencies/qs/index.cjs +15 -0
- package/js/src/src/static_dependencies/qs/index.d.cts +10 -0
- package/js/src/src/static_dependencies/qs/parse.cjs +208 -0
- package/js/src/src/static_dependencies/qs/parse.d.cts +8 -0
- package/js/src/src/static_dependencies/qs/stringify.cjs +192 -0
- package/js/src/src/static_dependencies/qs/stringify.d.cts +8 -0
- package/js/src/src/static_dependencies/qs/utils.cjs +202 -0
- package/js/src/src/static_dependencies/qs/utils.d.cts +15 -0
- package/js/src/src/static_dependencies/scure-base/index.d.ts +92 -0
- package/js/src/src/static_dependencies/scure-base/index.js +420 -0
- package/js/src/src/static_dependencies/scure-starknet/index.d.ts +79 -0
- package/js/src/src/static_dependencies/scure-starknet/index.js +323 -0
- package/js/src/src/static_dependencies/starknet/constants.d.ts +61 -0
- package/js/src/src/static_dependencies/starknet/constants.js +67 -0
- package/js/src/src/static_dependencies/starknet/index.d.ts +3 -0
- package/js/src/src/static_dependencies/starknet/index.js +9 -0
- package/js/src/src/static_dependencies/starknet/types/cairoEnum.d.ts +2 -0
- package/js/src/src/static_dependencies/starknet/types/cairoEnum.js +7 -0
- package/js/src/src/static_dependencies/starknet/types/calldata.d.ts +19 -0
- package/js/src/src/static_dependencies/starknet/types/calldata.js +28 -0
- package/js/src/src/static_dependencies/starknet/types/index.d.ts +13 -0
- package/js/src/src/static_dependencies/starknet/types/index.js +16 -0
- package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.d.ts +71 -0
- package/js/src/src/static_dependencies/starknet/types/lib/contract/abi.js +13 -0
- package/js/src/src/static_dependencies/starknet/types/lib/contract/index.d.ts +24 -0
- package/js/src/src/static_dependencies/starknet/types/lib/contract/index.js +16 -0
- package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.d.ts +33 -0
- package/js/src/src/static_dependencies/starknet/types/lib/contract/legacy.js +7 -0
- package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.d.ts +52 -0
- package/js/src/src/static_dependencies/starknet/types/lib/contract/sierra.js +7 -0
- package/js/src/src/static_dependencies/starknet/types/lib/index.d.ts +248 -0
- package/js/src/src/static_dependencies/starknet/types/lib/index.js +52 -0
- package/js/src/src/static_dependencies/starknet/types/typedData.d.ts +44 -0
- package/js/src/src/static_dependencies/starknet/types/typedData.js +19 -0
- package/js/src/src/static_dependencies/starknet/utils/assert.d.ts +7 -0
- package/js/src/src/static_dependencies/starknet/utils/assert.js +17 -0
- package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.d.ts +6 -0
- package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +43 -0
- package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.d.ts +72 -0
- package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +117 -0
- package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.d.ts +76 -0
- package/js/src/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +136 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.d.ts +32 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/byteArray.js +59 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.d.ts +183 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/cairo.js +229 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.d.ts +38 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +57 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.d.ts +35 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +64 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.d.ts +34 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +63 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.d.ts +3 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/enum/index.js +9 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.d.ts +9 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/formatter.js +67 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/index.d.ts +89 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/index.js +280 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +5 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/parser/index.js +30 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.d.ts +20 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/parser/interface.js +8 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.d.ts +24 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +36 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.d.ts +23 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +40 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.d.ts +2 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +155 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.d.ts +11 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/requestParser.js +248 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.d.ts +11 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/responseParser.js +214 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.d.ts +6 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/tuple.js +113 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/validate.d.ts +6 -0
- package/js/src/src/static_dependencies/starknet/utils/calldata/validate.js +208 -0
- package/js/src/src/static_dependencies/starknet/utils/encode.d.ts +207 -0
- package/js/src/src/static_dependencies/starknet/utils/encode.js +282 -0
- package/js/src/src/static_dependencies/starknet/utils/hash/classHash.d.ts +57 -0
- package/js/src/src/static_dependencies/starknet/utils/hash/classHash.js +223 -0
- package/js/src/src/static_dependencies/starknet/utils/hash/index.d.ts +6 -0
- package/js/src/src/static_dependencies/starknet/utils/hash/index.js +13 -0
- package/js/src/src/static_dependencies/starknet/utils/merkle.d.ts +35 -0
- package/js/src/src/static_dependencies/starknet/utils/merkle.js +84 -0
- package/js/src/src/static_dependencies/starknet/utils/num.d.ts +182 -0
- package/js/src/src/static_dependencies/starknet/utils/num.js +244 -0
- package/js/src/src/static_dependencies/starknet/utils/selector.d.ts +48 -0
- package/js/src/src/static_dependencies/starknet/utils/selector.js +85 -0
- package/js/src/src/static_dependencies/starknet/utils/shortString.d.ts +57 -0
- package/js/src/src/static_dependencies/starknet/utils/shortString.js +96 -0
- package/js/src/src/static_dependencies/starknet/utils/typedData.d.ts +54 -0
- package/js/src/src/static_dependencies/starknet/utils/typedData.js +321 -0
- package/js/src/src/static_dependencies/watchable/src/types.d.ts +28 -0
- package/js/src/src/static_dependencies/watchable/src/types.js +8 -0
- package/js/src/src/static_dependencies/watchable/src/unpromise.d.ts +120 -0
- package/js/src/src/static_dependencies/watchable/src/unpromise.js +297 -0
- package/js/src/src/static_dependencies/zklink/zklink-sdk-web.d.ts +1279 -0
- package/js/src/src/static_dependencies/zklink/zklink-sdk-web.js +4282 -0
- package/js/src/src/tabdeal.d.ts +23 -0
- package/js/src/src/tabdeal.js +387 -0
- package/js/src/src/tehran_exchange.d.ts +21 -0
- package/js/src/src/tehran_exchange.js +333 -0
- package/js/src/src/tetherland.d.ts +21 -0
- package/js/src/src/tetherland.js +367 -0
- package/js/src/src/timex.d.ts +247 -0
- package/js/src/src/timex.js +1792 -0
- package/js/src/src/tokocrypto.d.ts +261 -0
- package/js/src/src/tokocrypto.js +2641 -0
- package/js/src/src/toobit.d.ts +22 -0
- package/js/src/src/toobit.js +445 -0
- package/js/src/src/tradeogre.d.ts +149 -0
- package/js/src/src/tradeogre.js +878 -0
- package/js/src/src/twox.d.ts +21 -0
- package/js/src/src/twox.js +371 -0
- package/js/src/src/ubitex.d.ts +23 -0
- package/js/src/src/ubitex.js +433 -0
- package/js/src/src/upbit.d.ts +377 -0
- package/js/src/src/upbit.js +2340 -0
- package/js/src/src/vertex.d.ts +346 -0
- package/js/src/src/vertex.js +3146 -0
- package/js/src/src/wallex.d.ts +23 -0
- package/js/src/src/wallex.js +467 -0
- package/js/src/src/wavesexchange.d.ts +244 -0
- package/js/src/src/wavesexchange.js +2747 -0
- package/js/src/src/whitebit.d.ts +571 -0
- package/js/src/src/whitebit.js +3437 -0
- package/js/src/src/woo.d.ts +727 -0
- package/js/src/src/woo.js +4183 -0
- package/js/src/src/woofipro.d.ts +497 -0
- package/js/src/src/woofipro.js +2941 -0
- package/js/src/src/xt.d.ts +568 -0
- package/js/src/src/xt.js +5184 -0
- package/js/src/src/yobit.d.ts +197 -0
- package/js/src/src/yobit.js +1453 -0
- package/js/src/src/zaif.d.ts +136 -0
- package/js/src/src/zaif.js +821 -0
- package/js/src/src/zonda.d.ts +214 -0
- package/js/src/src/zonda.js +1984 -0
- package/js/test.js +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,1126 @@
|
|
|
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
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
import hyperliquidRest from '../hyperliquid.js';
|
|
9
|
+
import { ArrayCache, ArrayCacheByTimestamp, ArrayCacheBySymbolById } from '../base/ws/Cache.js';
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
export default class hyperliquid extends hyperliquidRest {
|
|
12
|
+
describe() {
|
|
13
|
+
return this.deepExtend(super.describe(), {
|
|
14
|
+
'has': {
|
|
15
|
+
'ws': true,
|
|
16
|
+
'cancelOrderWs': true,
|
|
17
|
+
'cancelOrdersWs': true,
|
|
18
|
+
'createOrderWs': true,
|
|
19
|
+
'createOrdersWs': true,
|
|
20
|
+
'editOrderWs': true,
|
|
21
|
+
'watchBalance': false,
|
|
22
|
+
'watchMyTrades': true,
|
|
23
|
+
'watchOHLCV': true,
|
|
24
|
+
'watchOrderBook': true,
|
|
25
|
+
'watchOrders': true,
|
|
26
|
+
'watchTicker': true,
|
|
27
|
+
'watchTickers': true,
|
|
28
|
+
'watchTrades': true,
|
|
29
|
+
'watchTradesForSymbols': false,
|
|
30
|
+
'watchPosition': false,
|
|
31
|
+
},
|
|
32
|
+
'urls': {
|
|
33
|
+
'api': {
|
|
34
|
+
'ws': {
|
|
35
|
+
'public': 'wss://api.hyperliquid.xyz/ws',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
'test': {
|
|
39
|
+
'ws': {
|
|
40
|
+
'public': 'wss://api.hyperliquid-testnet.xyz/ws',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
'options': {},
|
|
45
|
+
'streaming': {
|
|
46
|
+
'ping': this.ping,
|
|
47
|
+
'keepAlive': 20000,
|
|
48
|
+
},
|
|
49
|
+
'exceptions': {
|
|
50
|
+
'ws': {
|
|
51
|
+
'exact': {},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @method
|
|
58
|
+
* @name hyperliquid#createOrdersWs
|
|
59
|
+
* @description create a list of trade orders using WebSocket post request
|
|
60
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order
|
|
61
|
+
* @param {Array} orders list of orders to create, each object should contain the parameters required by createOrder, namely symbol, type, side, amount, price and params
|
|
62
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
63
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
64
|
+
*/
|
|
65
|
+
async createOrdersWs(orders, params = {}) {
|
|
66
|
+
await this.loadMarkets();
|
|
67
|
+
const url = this.urls['api']['ws']['public'];
|
|
68
|
+
const ordersRequest = this.createOrdersRequest(orders, params);
|
|
69
|
+
const wrapped = this.wrapAsPostAction(ordersRequest);
|
|
70
|
+
const request = this.safeDict(wrapped, 'request', {});
|
|
71
|
+
const requestId = this.safeString(wrapped, 'requestId');
|
|
72
|
+
const response = await this.watch(url, requestId, request, requestId);
|
|
73
|
+
const responseOjb = this.safeDict(response, 'response', {});
|
|
74
|
+
const data = this.safeDict(responseOjb, 'data', {});
|
|
75
|
+
const statuses = this.safeList(data, 'statuses', []);
|
|
76
|
+
return this.parseOrders(statuses, undefined);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* @method
|
|
80
|
+
* @name hyperliquid#createOrderWs
|
|
81
|
+
* @description create a trade order using WebSocket post request
|
|
82
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#place-an-order
|
|
83
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
84
|
+
* @param {string} type 'market' or 'limit'
|
|
85
|
+
* @param {string} side 'buy' or 'sell'
|
|
86
|
+
* @param {float} amount how much of currency you want to trade in units of base currency
|
|
87
|
+
* @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
88
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
89
|
+
* @param {string} [params.timeInForce] 'Gtc', 'Ioc', 'Alo'
|
|
90
|
+
* @param {bool} [params.postOnly] true or false whether the order is post-only
|
|
91
|
+
* @param {bool} [params.reduceOnly] true or false whether the order is reduce-only
|
|
92
|
+
* @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
|
|
93
|
+
* @param {string} [params.clientOrderId] client order id, (optional 128 bit hex string e.g. 0x1234567890abcdef1234567890abcdef)
|
|
94
|
+
* @param {string} [params.slippage] the slippage for market order
|
|
95
|
+
* @param {string} [params.vaultAddress] the vault address for order
|
|
96
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
97
|
+
*/
|
|
98
|
+
async createOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
|
|
99
|
+
await this.loadMarkets();
|
|
100
|
+
const [order, globalParams] = this.parseCreateEditOrderArgs(undefined, symbol, type, side, amount, price, params);
|
|
101
|
+
const orders = await this.createOrdersWs([order], globalParams);
|
|
102
|
+
const parsedOrder = orders[0];
|
|
103
|
+
return parsedOrder;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* @method
|
|
107
|
+
* @name hyperliquid#editOrderWs
|
|
108
|
+
* @description edit a trade order
|
|
109
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#modify-multiple-orders
|
|
110
|
+
* @param {string} id cancel order id
|
|
111
|
+
* @param {string} symbol unified symbol of the market to create an order in
|
|
112
|
+
* @param {string} type 'market' or 'limit'
|
|
113
|
+
* @param {string} side 'buy' or 'sell'
|
|
114
|
+
* @param {float} amount how much of currency you want to trade in units of base currency
|
|
115
|
+
* @param {float} [price] the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
|
|
116
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
117
|
+
* @param {string} [params.timeInForce] 'Gtc', 'Ioc', 'Alo'
|
|
118
|
+
* @param {bool} [params.postOnly] true or false whether the order is post-only
|
|
119
|
+
* @param {bool} [params.reduceOnly] true or false whether the order is reduce-only
|
|
120
|
+
* @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
|
|
121
|
+
* @param {string} [params.clientOrderId] client order id, (optional 128 bit hex string e.g. 0x1234567890abcdef1234567890abcdef)
|
|
122
|
+
* @param {string} [params.vaultAddress] the vault address for order
|
|
123
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
124
|
+
*/
|
|
125
|
+
async editOrderWs(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
|
|
126
|
+
await this.loadMarkets();
|
|
127
|
+
const market = this.market(symbol);
|
|
128
|
+
const url = this.urls['api']['ws']['public'];
|
|
129
|
+
const [order, globalParams] = this.parseCreateEditOrderArgs(id, symbol, type, side, amount, price, params);
|
|
130
|
+
const postRequest = this.editOrdersRequest([order], globalParams);
|
|
131
|
+
const wrapped = this.wrapAsPostAction(postRequest);
|
|
132
|
+
const request = this.safeDict(wrapped, 'request', {});
|
|
133
|
+
const requestId = this.safeString(wrapped, 'requestId');
|
|
134
|
+
const response = await this.watch(url, requestId, request, requestId);
|
|
135
|
+
// response is the same as in this.editOrder
|
|
136
|
+
const responseObject = this.safeDict(response, 'response', {});
|
|
137
|
+
const dataObject = this.safeDict(responseObject, 'data', {});
|
|
138
|
+
const statuses = this.safeList(dataObject, 'statuses', []);
|
|
139
|
+
const first = this.safeDict(statuses, 0, {});
|
|
140
|
+
const parsedOrder = this.parseOrder(first, market);
|
|
141
|
+
return parsedOrder;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* @method
|
|
145
|
+
* @name hyperliquid#cancelOrdersWs
|
|
146
|
+
* @description cancel multiple orders using WebSocket post request
|
|
147
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/post-requests
|
|
148
|
+
* @param {string[]} ids list of order ids to cancel
|
|
149
|
+
* @param {string} symbol unified symbol of the market the orders were made in
|
|
150
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
151
|
+
* @param {string[]} [params.clientOrderId] list of client order ids to cancel instead of order ids
|
|
152
|
+
* @param {string} [params.vaultAddress] the vault address for order cancellation
|
|
153
|
+
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
154
|
+
*/
|
|
155
|
+
async cancelOrdersWs(ids, symbol = undefined, params = {}) {
|
|
156
|
+
this.checkRequiredCredentials();
|
|
157
|
+
await this.loadMarkets();
|
|
158
|
+
const request = this.cancelOrdersRequest(ids, symbol, params);
|
|
159
|
+
const url = this.urls['api']['ws']['public'];
|
|
160
|
+
const wrapped = this.wrapAsPostAction(request);
|
|
161
|
+
const wsRequest = this.safeDict(wrapped, 'request', {});
|
|
162
|
+
const requestId = this.safeString(wrapped, 'requestId');
|
|
163
|
+
const response = await this.watch(url, requestId, wsRequest, requestId);
|
|
164
|
+
const responseObj = this.safeDict(response, 'response', {});
|
|
165
|
+
const data = this.safeDict(responseObj, 'data', {});
|
|
166
|
+
const statuses = this.safeList(data, 'statuses', []);
|
|
167
|
+
const orders = [];
|
|
168
|
+
for (let i = 0; i < statuses.length; i++) {
|
|
169
|
+
const status = statuses[i];
|
|
170
|
+
orders.push(this.safeOrder({
|
|
171
|
+
'info': status,
|
|
172
|
+
'status': status,
|
|
173
|
+
}));
|
|
174
|
+
}
|
|
175
|
+
return orders;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* @method
|
|
179
|
+
* @name hyperliquid#cancelOrderWs
|
|
180
|
+
* @description cancel a single order using WebSocket post request
|
|
181
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/post-requests
|
|
182
|
+
* @param {string} id order id to cancel
|
|
183
|
+
* @param {string} symbol unified symbol of the market the order was made in
|
|
184
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
185
|
+
* @param {string} [params.clientOrderId] client order id to cancel instead of order id
|
|
186
|
+
* @param {string} [params.vaultAddress] the vault address for order cancellation
|
|
187
|
+
* @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
188
|
+
*/
|
|
189
|
+
async cancelOrderWs(id, symbol = undefined, params = {}) {
|
|
190
|
+
const orders = await this.cancelOrdersWs([id], symbol, params);
|
|
191
|
+
return this.safeDict(orders, 0);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* @method
|
|
195
|
+
* @name hyperliquid#watchOrderBook
|
|
196
|
+
* @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
197
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
198
|
+
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
199
|
+
* @param {int} [limit] the maximum amount of order book entries to return
|
|
200
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
201
|
+
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
202
|
+
*/
|
|
203
|
+
async watchOrderBook(symbol, limit = undefined, params = {}) {
|
|
204
|
+
await this.loadMarkets();
|
|
205
|
+
const market = this.market(symbol);
|
|
206
|
+
symbol = market['symbol'];
|
|
207
|
+
const messageHash = 'orderbook:' + symbol;
|
|
208
|
+
const url = this.urls['api']['ws']['public'];
|
|
209
|
+
const request = {
|
|
210
|
+
'method': 'subscribe',
|
|
211
|
+
'subscription': {
|
|
212
|
+
'type': 'l2Book',
|
|
213
|
+
'coin': market['swap'] ? market['baseName'] : market['id'],
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
const message = this.extend(request, params);
|
|
217
|
+
const orderbook = await this.watch(url, messageHash, message, messageHash);
|
|
218
|
+
return orderbook.limit();
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* @method
|
|
222
|
+
* @name hyperliquid#unWatchOrderBook
|
|
223
|
+
* @description unWatches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
224
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
225
|
+
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
226
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
227
|
+
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
228
|
+
*/
|
|
229
|
+
async unWatchOrderBook(symbol, params = {}) {
|
|
230
|
+
await this.loadMarkets();
|
|
231
|
+
const market = this.market(symbol);
|
|
232
|
+
symbol = market['symbol'];
|
|
233
|
+
const subMessageHash = 'orderbook:' + symbol;
|
|
234
|
+
const messageHash = 'unsubscribe:' + subMessageHash;
|
|
235
|
+
const url = this.urls['api']['ws']['public'];
|
|
236
|
+
const id = this.nonce().toString();
|
|
237
|
+
const request = {
|
|
238
|
+
'id': id,
|
|
239
|
+
'method': 'unsubscribe',
|
|
240
|
+
'subscription': {
|
|
241
|
+
'type': 'l2Book',
|
|
242
|
+
'coin': market['swap'] ? market['baseName'] : market['id'],
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
const message = this.extend(request, params);
|
|
246
|
+
return await this.watch(url, messageHash, message, messageHash);
|
|
247
|
+
}
|
|
248
|
+
handleOrderBook(client, message) {
|
|
249
|
+
//
|
|
250
|
+
// {
|
|
251
|
+
// "channel": "l2Book",
|
|
252
|
+
// "data": {
|
|
253
|
+
// "coin": "BTC",
|
|
254
|
+
// "time": 1710131872708,
|
|
255
|
+
// "levels": [
|
|
256
|
+
// [
|
|
257
|
+
// {
|
|
258
|
+
// "px": "68674.0",
|
|
259
|
+
// "sz": "0.97139",
|
|
260
|
+
// "n": 4
|
|
261
|
+
// }
|
|
262
|
+
// ],
|
|
263
|
+
// [
|
|
264
|
+
// {
|
|
265
|
+
// "px": "68675.0",
|
|
266
|
+
// "sz": "0.04396",
|
|
267
|
+
// "n": 1
|
|
268
|
+
// }
|
|
269
|
+
// ]
|
|
270
|
+
// ]
|
|
271
|
+
// }
|
|
272
|
+
// }
|
|
273
|
+
//
|
|
274
|
+
const entry = this.safeDict(message, 'data', {});
|
|
275
|
+
const coin = this.safeString(entry, 'coin');
|
|
276
|
+
const marketId = this.coinToMarketId(coin);
|
|
277
|
+
const market = this.market(marketId);
|
|
278
|
+
const symbol = market['symbol'];
|
|
279
|
+
const rawData = this.safeList(entry, 'levels', []);
|
|
280
|
+
const data = {
|
|
281
|
+
'bids': this.safeList(rawData, 0, []),
|
|
282
|
+
'asks': this.safeList(rawData, 1, []),
|
|
283
|
+
};
|
|
284
|
+
const timestamp = this.safeInteger(entry, 'time');
|
|
285
|
+
const snapshot = this.parseOrderBook(data, symbol, timestamp, 'bids', 'asks', 'px', 'sz');
|
|
286
|
+
if (!(symbol in this.orderbooks)) {
|
|
287
|
+
const ob = this.orderBook(snapshot);
|
|
288
|
+
this.orderbooks[symbol] = ob;
|
|
289
|
+
}
|
|
290
|
+
const orderbook = this.orderbooks[symbol];
|
|
291
|
+
orderbook.reset(snapshot);
|
|
292
|
+
const messageHash = 'orderbook:' + symbol;
|
|
293
|
+
client.resolve(orderbook, messageHash);
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* @method
|
|
297
|
+
* @name hyperliquid#watchTicker
|
|
298
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
299
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
300
|
+
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
301
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
302
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
303
|
+
*/
|
|
304
|
+
async watchTicker(symbol, params = {}) {
|
|
305
|
+
const market = this.market(symbol);
|
|
306
|
+
symbol = market['symbol'];
|
|
307
|
+
const tickers = await this.watchTickers([symbol], params);
|
|
308
|
+
return tickers[symbol];
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* @method
|
|
312
|
+
* @name hyperliquid#watchTickers
|
|
313
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
314
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
315
|
+
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
316
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
317
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
318
|
+
*/
|
|
319
|
+
async watchTickers(symbols = undefined, params = {}) {
|
|
320
|
+
await this.loadMarkets();
|
|
321
|
+
symbols = this.marketSymbols(symbols, undefined, true);
|
|
322
|
+
const messageHash = 'tickers';
|
|
323
|
+
const url = this.urls['api']['ws']['public'];
|
|
324
|
+
const request = {
|
|
325
|
+
'method': 'subscribe',
|
|
326
|
+
'subscription': {
|
|
327
|
+
'type': 'webData2',
|
|
328
|
+
'user': '0x0000000000000000000000000000000000000000',
|
|
329
|
+
},
|
|
330
|
+
};
|
|
331
|
+
const tickers = await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
332
|
+
if (this.newUpdates) {
|
|
333
|
+
return this.filterByArrayTickers(tickers, 'symbol', symbols);
|
|
334
|
+
}
|
|
335
|
+
return this.tickers;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* @method
|
|
339
|
+
* @name hyperliquid#unWatchTickers
|
|
340
|
+
* @description unWatches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
341
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
342
|
+
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
343
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
344
|
+
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
345
|
+
*/
|
|
346
|
+
async unWatchTickers(symbols = undefined, params = {}) {
|
|
347
|
+
await this.loadMarkets();
|
|
348
|
+
symbols = this.marketSymbols(symbols, undefined, true);
|
|
349
|
+
const subMessageHash = 'tickers';
|
|
350
|
+
const messageHash = 'unsubscribe:' + subMessageHash;
|
|
351
|
+
const url = this.urls['api']['ws']['public'];
|
|
352
|
+
const request = {
|
|
353
|
+
'method': 'unsubscribe',
|
|
354
|
+
'subscription': {
|
|
355
|
+
'type': 'webData2',
|
|
356
|
+
'user': '0x0000000000000000000000000000000000000000',
|
|
357
|
+
},
|
|
358
|
+
};
|
|
359
|
+
return await this.watch(url, messageHash, this.extend(request, params), messageHash);
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* @method
|
|
363
|
+
* @name hyperliquid#watchMyTrades
|
|
364
|
+
* @description watches information on multiple trades made by the user
|
|
365
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
366
|
+
* @param {string} symbol unified market symbol of the market orders were made in
|
|
367
|
+
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
368
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
369
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
370
|
+
* @param {string} [params.user] user address, will default to this.walletAddress if not provided
|
|
371
|
+
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
372
|
+
*/
|
|
373
|
+
async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
374
|
+
let userAddress = undefined;
|
|
375
|
+
[userAddress, params] = this.handlePublicAddress('watchMyTrades', params);
|
|
376
|
+
await this.loadMarkets();
|
|
377
|
+
let messageHash = 'myTrades';
|
|
378
|
+
if (symbol !== undefined) {
|
|
379
|
+
symbol = this.symbol(symbol);
|
|
380
|
+
messageHash += ':' + symbol;
|
|
381
|
+
}
|
|
382
|
+
const url = this.urls['api']['ws']['public'];
|
|
383
|
+
const request = {
|
|
384
|
+
'method': 'subscribe',
|
|
385
|
+
'subscription': {
|
|
386
|
+
'type': 'userFills',
|
|
387
|
+
'user': userAddress,
|
|
388
|
+
},
|
|
389
|
+
};
|
|
390
|
+
const message = this.extend(request, params);
|
|
391
|
+
const trades = await this.watch(url, messageHash, message, messageHash);
|
|
392
|
+
if (this.newUpdates) {
|
|
393
|
+
limit = trades.getLimit(symbol, limit);
|
|
394
|
+
}
|
|
395
|
+
return this.filterBySymbolSinceLimit(trades, symbol, since, limit, true);
|
|
396
|
+
}
|
|
397
|
+
handleWsTickers(client, message) {
|
|
398
|
+
//
|
|
399
|
+
// {
|
|
400
|
+
// "channel": "webData2",
|
|
401
|
+
// "data": {
|
|
402
|
+
// "meta": {
|
|
403
|
+
// "universe": [
|
|
404
|
+
// {
|
|
405
|
+
// "szDecimals": 5,
|
|
406
|
+
// "name": "BTC",
|
|
407
|
+
// "maxLeverage": 50,
|
|
408
|
+
// "onlyIsolated": false
|
|
409
|
+
// },
|
|
410
|
+
// ...
|
|
411
|
+
// ],
|
|
412
|
+
// },
|
|
413
|
+
// "assetCtxs": [
|
|
414
|
+
// {
|
|
415
|
+
// "funding": "0.00003005",
|
|
416
|
+
// "openInterest": "2311.50778",
|
|
417
|
+
// "prevDayPx": "63475.0",
|
|
418
|
+
// "dayNtlVlm": "468043329.64289033",
|
|
419
|
+
// "premium": "0.00094264",
|
|
420
|
+
// "oraclePx": "64712.0",
|
|
421
|
+
// "markPx": "64774.0",
|
|
422
|
+
// "midPx": "64773.5",
|
|
423
|
+
// "impactPxs": [
|
|
424
|
+
// "64773.0",
|
|
425
|
+
// "64774.0"
|
|
426
|
+
// ]
|
|
427
|
+
// },
|
|
428
|
+
// ...
|
|
429
|
+
// ],
|
|
430
|
+
// "spotAssetCtxs": [
|
|
431
|
+
// {
|
|
432
|
+
// "prevDayPx": "0.20937",
|
|
433
|
+
// "dayNtlVlm": "11188888.61984999",
|
|
434
|
+
// "markPx": "0.19722",
|
|
435
|
+
// "midPx": "0.197145",
|
|
436
|
+
// "circulatingSupply": "598760557.12072003",
|
|
437
|
+
// "coin": "PURR/USDC"
|
|
438
|
+
// },
|
|
439
|
+
// ...
|
|
440
|
+
// ],
|
|
441
|
+
// }
|
|
442
|
+
// }
|
|
443
|
+
//
|
|
444
|
+
// spot
|
|
445
|
+
const rawData = this.safeDict(message, 'data', {});
|
|
446
|
+
const spotAssets = this.safeList(rawData, 'spotAssetCtxs', []);
|
|
447
|
+
const parsedTickers = [];
|
|
448
|
+
for (let i = 0; i < spotAssets.length; i++) {
|
|
449
|
+
const assetObject = spotAssets[i];
|
|
450
|
+
const marketId = this.safeString(assetObject, 'coin');
|
|
451
|
+
const market = this.safeMarket(marketId, undefined, undefined, 'spot');
|
|
452
|
+
const ticker = this.parseWsTicker(assetObject, market);
|
|
453
|
+
parsedTickers.push(ticker);
|
|
454
|
+
}
|
|
455
|
+
// perpetuals
|
|
456
|
+
const meta = this.safeDict(rawData, 'meta', {});
|
|
457
|
+
const universe = this.safeList(meta, 'universe', []);
|
|
458
|
+
const assetCtxs = this.safeList(rawData, 'assetCtxs', []);
|
|
459
|
+
for (let i = 0; i < universe.length; i++) {
|
|
460
|
+
const data = this.extend(this.safeDict(universe, i, {}), this.safeDict(assetCtxs, i, {}));
|
|
461
|
+
const id = data['name'] + '/USDC:USDC';
|
|
462
|
+
const market = this.safeMarket(id, undefined, undefined, 'swap');
|
|
463
|
+
const ticker = this.parseWsTicker(data, market);
|
|
464
|
+
parsedTickers.push(ticker);
|
|
465
|
+
}
|
|
466
|
+
const tickers = this.indexBy(parsedTickers, 'symbol');
|
|
467
|
+
client.resolve(tickers, 'tickers');
|
|
468
|
+
}
|
|
469
|
+
parseWsTicker(rawTicker, market = undefined) {
|
|
470
|
+
return this.parseTicker(rawTicker, market);
|
|
471
|
+
}
|
|
472
|
+
handleMyTrades(client, message) {
|
|
473
|
+
//
|
|
474
|
+
// {
|
|
475
|
+
// "channel": "userFills",
|
|
476
|
+
// "data": {
|
|
477
|
+
// "isSnapshot": true,
|
|
478
|
+
// "user": "0x15f43d1f2dee81424afd891943262aa90f22cc2a",
|
|
479
|
+
// "fills": [
|
|
480
|
+
// {
|
|
481
|
+
// "coin": "BTC",
|
|
482
|
+
// "px": "72528.0",
|
|
483
|
+
// "sz": "0.11693",
|
|
484
|
+
// "side": "A",
|
|
485
|
+
// "time": 1710208712815,
|
|
486
|
+
// "startPosition": "0.11693",
|
|
487
|
+
// "dir": "Close Long",
|
|
488
|
+
// "closedPnl": "-0.81851",
|
|
489
|
+
// "hash": "0xc5adaf35f8402750c218040b0a7bc301130051521273b6f398b3caad3e1f3f5f",
|
|
490
|
+
// "oid": 7484888874,
|
|
491
|
+
// "crossed": true,
|
|
492
|
+
// "fee": "2.968244",
|
|
493
|
+
// "liquidationMarkPx": null,
|
|
494
|
+
// "tid": 567547935839686,
|
|
495
|
+
// "cloid": null
|
|
496
|
+
// }
|
|
497
|
+
// ]
|
|
498
|
+
// }
|
|
499
|
+
// }
|
|
500
|
+
//
|
|
501
|
+
const entry = this.safeDict(message, 'data', {});
|
|
502
|
+
if (this.myTrades === undefined) {
|
|
503
|
+
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
504
|
+
this.myTrades = new ArrayCacheBySymbolById(limit);
|
|
505
|
+
}
|
|
506
|
+
const trades = this.myTrades;
|
|
507
|
+
const symbols = {};
|
|
508
|
+
const data = this.safeList(entry, 'fills', []);
|
|
509
|
+
const dataLength = data.length;
|
|
510
|
+
if (dataLength === 0) {
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
for (let i = 0; i < data.length; i++) {
|
|
514
|
+
const rawTrade = data[i];
|
|
515
|
+
const parsed = this.parseWsTrade(rawTrade);
|
|
516
|
+
const symbol = parsed['symbol'];
|
|
517
|
+
symbols[symbol] = true;
|
|
518
|
+
trades.append(parsed);
|
|
519
|
+
}
|
|
520
|
+
const keys = Object.keys(symbols);
|
|
521
|
+
for (let i = 0; i < keys.length; i++) {
|
|
522
|
+
const currentMessageHash = 'myTrades:' + keys[i];
|
|
523
|
+
client.resolve(trades, currentMessageHash);
|
|
524
|
+
}
|
|
525
|
+
// non-symbol specific
|
|
526
|
+
const messageHash = 'myTrades';
|
|
527
|
+
client.resolve(trades, messageHash);
|
|
528
|
+
}
|
|
529
|
+
async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
530
|
+
// s
|
|
531
|
+
// @method
|
|
532
|
+
// @name hyperliquid#watchTrades
|
|
533
|
+
// @description watches information on multiple trades made in a market
|
|
534
|
+
// @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
535
|
+
// @param {string} symbol unified market symbol of the market trades were made in
|
|
536
|
+
// @param {int} [since] the earliest time in ms to fetch trades for
|
|
537
|
+
// @param {int} [limit] the maximum number of trade structures to retrieve
|
|
538
|
+
// @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
539
|
+
// @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
|
|
540
|
+
//
|
|
541
|
+
await this.loadMarkets();
|
|
542
|
+
const market = this.market(symbol);
|
|
543
|
+
symbol = market['symbol'];
|
|
544
|
+
const messageHash = 'trade:' + symbol;
|
|
545
|
+
const url = this.urls['api']['ws']['public'];
|
|
546
|
+
const request = {
|
|
547
|
+
'method': 'subscribe',
|
|
548
|
+
'subscription': {
|
|
549
|
+
'type': 'trades',
|
|
550
|
+
'coin': market['swap'] ? market['baseName'] : market['id'],
|
|
551
|
+
},
|
|
552
|
+
};
|
|
553
|
+
const message = this.extend(request, params);
|
|
554
|
+
const trades = await this.watch(url, messageHash, message, messageHash);
|
|
555
|
+
if (this.newUpdates) {
|
|
556
|
+
limit = trades.getLimit(symbol, limit);
|
|
557
|
+
}
|
|
558
|
+
return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
|
|
559
|
+
}
|
|
560
|
+
/**
|
|
561
|
+
* @method
|
|
562
|
+
* @name hyperliquid#unWatchTrades
|
|
563
|
+
* @description unWatches information on multiple trades made in a market
|
|
564
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
565
|
+
* @param {string} symbol unified market symbol of the market trades were made in
|
|
566
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
567
|
+
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
|
|
568
|
+
*/
|
|
569
|
+
async unWatchTrades(symbol, params = {}) {
|
|
570
|
+
await this.loadMarkets();
|
|
571
|
+
const market = this.market(symbol);
|
|
572
|
+
symbol = market['symbol'];
|
|
573
|
+
const subMessageHash = 'trade:' + symbol;
|
|
574
|
+
const messageHash = 'unsubscribe:' + subMessageHash;
|
|
575
|
+
const url = this.urls['api']['ws']['public'];
|
|
576
|
+
const request = {
|
|
577
|
+
'method': 'unsubscribe',
|
|
578
|
+
'subscription': {
|
|
579
|
+
'type': 'trades',
|
|
580
|
+
'coin': market['swap'] ? market['baseName'] : market['id'],
|
|
581
|
+
},
|
|
582
|
+
};
|
|
583
|
+
const message = this.extend(request, params);
|
|
584
|
+
return await this.watch(url, messageHash, message, messageHash);
|
|
585
|
+
}
|
|
586
|
+
handleTrades(client, message) {
|
|
587
|
+
//
|
|
588
|
+
// {
|
|
589
|
+
// "channel": "trades",
|
|
590
|
+
// "data": [
|
|
591
|
+
// {
|
|
592
|
+
// "coin": "BTC",
|
|
593
|
+
// "side": "A",
|
|
594
|
+
// "px": "68517.0",
|
|
595
|
+
// "sz": "0.005",
|
|
596
|
+
// "time": 1710125266669,
|
|
597
|
+
// "hash": "0xc872699f116e012186620407fc08a802015e0097c5cce74710697f7272e6e959",
|
|
598
|
+
// "tid": 981894269203506
|
|
599
|
+
// }
|
|
600
|
+
// ]
|
|
601
|
+
// }
|
|
602
|
+
//
|
|
603
|
+
const entry = this.safeList(message, 'data', []);
|
|
604
|
+
const first = this.safeDict(entry, 0, {});
|
|
605
|
+
const coin = this.safeString(first, 'coin');
|
|
606
|
+
const marketId = this.coinToMarketId(coin);
|
|
607
|
+
const market = this.market(marketId);
|
|
608
|
+
const symbol = market['symbol'];
|
|
609
|
+
if (!(symbol in this.trades)) {
|
|
610
|
+
const limit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
611
|
+
const stored = new ArrayCache(limit);
|
|
612
|
+
this.trades[symbol] = stored;
|
|
613
|
+
}
|
|
614
|
+
const trades = this.trades[symbol];
|
|
615
|
+
for (let i = 0; i < entry.length; i++) {
|
|
616
|
+
const data = this.safeDict(entry, i);
|
|
617
|
+
const trade = this.parseWsTrade(data);
|
|
618
|
+
trades.append(trade);
|
|
619
|
+
}
|
|
620
|
+
const messageHash = 'trade:' + symbol;
|
|
621
|
+
client.resolve(trades, messageHash);
|
|
622
|
+
}
|
|
623
|
+
parseWsTrade(trade, market = undefined) {
|
|
624
|
+
//
|
|
625
|
+
// fetchMyTrades
|
|
626
|
+
//
|
|
627
|
+
// {
|
|
628
|
+
// "coin": "BTC",
|
|
629
|
+
// "px": "72528.0",
|
|
630
|
+
// "sz": "0.11693",
|
|
631
|
+
// "side": "A",
|
|
632
|
+
// "time": 1710208712815,
|
|
633
|
+
// "startPosition": "0.11693",
|
|
634
|
+
// "dir": "Close Long",
|
|
635
|
+
// "closedPnl": "-0.81851",
|
|
636
|
+
// "hash": "0xc5adaf35f8402750c218040b0a7bc301130051521273b6f398b3caad3e1f3f5f",
|
|
637
|
+
// "oid": 7484888874,
|
|
638
|
+
// "crossed": true,
|
|
639
|
+
// "fee": "2.968244",
|
|
640
|
+
// "liquidationMarkPx": null,
|
|
641
|
+
// "tid": 567547935839686,
|
|
642
|
+
// "cloid": null
|
|
643
|
+
// }
|
|
644
|
+
//
|
|
645
|
+
// fetchTrades
|
|
646
|
+
//
|
|
647
|
+
// {
|
|
648
|
+
// "coin": "BTC",
|
|
649
|
+
// "side": "A",
|
|
650
|
+
// "px": "68517.0",
|
|
651
|
+
// "sz": "0.005",
|
|
652
|
+
// "time": 1710125266669,
|
|
653
|
+
// "hash": "0xc872699f116e012186620407fc08a802015e0097c5cce74710697f7272e6e959",
|
|
654
|
+
// "tid": 981894269203506
|
|
655
|
+
// }
|
|
656
|
+
//
|
|
657
|
+
const timestamp = this.safeInteger(trade, 'time');
|
|
658
|
+
const price = this.safeString(trade, 'px');
|
|
659
|
+
const amount = this.safeString(trade, 'sz');
|
|
660
|
+
const coin = this.safeString(trade, 'coin');
|
|
661
|
+
const marketId = this.coinToMarketId(coin);
|
|
662
|
+
market = this.safeMarket(marketId, undefined);
|
|
663
|
+
const symbol = market['symbol'];
|
|
664
|
+
const id = this.safeString(trade, 'tid');
|
|
665
|
+
let side = this.safeString(trade, 'side');
|
|
666
|
+
if (side !== undefined) {
|
|
667
|
+
side = (side === 'A') ? 'sell' : 'buy';
|
|
668
|
+
}
|
|
669
|
+
const fee = this.safeString(trade, 'fee');
|
|
670
|
+
return this.safeTrade({
|
|
671
|
+
'info': trade,
|
|
672
|
+
'timestamp': timestamp,
|
|
673
|
+
'datetime': this.iso8601(timestamp),
|
|
674
|
+
'symbol': symbol,
|
|
675
|
+
'id': id,
|
|
676
|
+
'order': this.safeString(trade, 'oid'),
|
|
677
|
+
'type': undefined,
|
|
678
|
+
'side': side,
|
|
679
|
+
'takerOrMaker': undefined,
|
|
680
|
+
'price': price,
|
|
681
|
+
'amount': amount,
|
|
682
|
+
'cost': undefined,
|
|
683
|
+
'fee': { 'cost': fee, 'currency': 'USDC' },
|
|
684
|
+
}, market);
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* @method
|
|
688
|
+
* @name hyperliquid#watchOHLCV
|
|
689
|
+
* @description watches historical candlestick data containing the open, high, low, close price, and the volume of a market
|
|
690
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
691
|
+
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
692
|
+
* @param {string} timeframe the length of time each candle represents
|
|
693
|
+
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
694
|
+
* @param {int} [limit] the maximum amount of candles to fetch
|
|
695
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
696
|
+
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
697
|
+
*/
|
|
698
|
+
async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
699
|
+
await this.loadMarkets();
|
|
700
|
+
const market = this.market(symbol);
|
|
701
|
+
symbol = market['symbol'];
|
|
702
|
+
const url = this.urls['api']['ws']['public'];
|
|
703
|
+
const request = {
|
|
704
|
+
'method': 'subscribe',
|
|
705
|
+
'subscription': {
|
|
706
|
+
'type': 'candle',
|
|
707
|
+
'coin': market['swap'] ? market['baseName'] : market['id'],
|
|
708
|
+
'interval': timeframe,
|
|
709
|
+
},
|
|
710
|
+
};
|
|
711
|
+
const messageHash = 'candles:' + timeframe + ':' + symbol;
|
|
712
|
+
const message = this.extend(request, params);
|
|
713
|
+
const ohlcv = await this.watch(url, messageHash, message, messageHash);
|
|
714
|
+
if (this.newUpdates) {
|
|
715
|
+
limit = ohlcv.getLimit(symbol, limit);
|
|
716
|
+
}
|
|
717
|
+
return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
|
|
718
|
+
}
|
|
719
|
+
/**
|
|
720
|
+
* @method
|
|
721
|
+
* @name hyperliquid#unWatchOHLCV
|
|
722
|
+
* @description watches historical candlestick data containing the open, high, low, close price, and the volume of a market
|
|
723
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
724
|
+
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
725
|
+
* @param {string} timeframe the length of time each candle represents
|
|
726
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
727
|
+
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
728
|
+
*/
|
|
729
|
+
async unWatchOHLCV(symbol, timeframe = '1m', params = {}) {
|
|
730
|
+
await this.loadMarkets();
|
|
731
|
+
const market = this.market(symbol);
|
|
732
|
+
symbol = market['symbol'];
|
|
733
|
+
const url = this.urls['api']['ws']['public'];
|
|
734
|
+
const request = {
|
|
735
|
+
'method': 'unsubscribe',
|
|
736
|
+
'subscription': {
|
|
737
|
+
'type': 'candle',
|
|
738
|
+
'coin': market['swap'] ? market['baseName'] : market['id'],
|
|
739
|
+
'interval': timeframe,
|
|
740
|
+
},
|
|
741
|
+
};
|
|
742
|
+
const subMessageHash = 'candles:' + timeframe + ':' + symbol;
|
|
743
|
+
const messagehash = 'unsubscribe:' + subMessageHash;
|
|
744
|
+
const message = this.extend(request, params);
|
|
745
|
+
return await this.watch(url, messagehash, message, messagehash);
|
|
746
|
+
}
|
|
747
|
+
handleOHLCV(client, message) {
|
|
748
|
+
//
|
|
749
|
+
// {
|
|
750
|
+
// channel: 'candle',
|
|
751
|
+
// data: {
|
|
752
|
+
// t: 1710146280000,
|
|
753
|
+
// T: 1710146339999,
|
|
754
|
+
// s: 'BTC',
|
|
755
|
+
// i: '1m',
|
|
756
|
+
// o: '71400.0',
|
|
757
|
+
// c: '71411.0',
|
|
758
|
+
// h: '71422.0',
|
|
759
|
+
// l: '71389.0',
|
|
760
|
+
// v: '1.20407',
|
|
761
|
+
// n: 20
|
|
762
|
+
// }
|
|
763
|
+
// }
|
|
764
|
+
//
|
|
765
|
+
const data = this.safeDict(message, 'data', {});
|
|
766
|
+
const base = this.safeString(data, 's');
|
|
767
|
+
const marketId = this.coinToMarketId(base);
|
|
768
|
+
const symbol = this.safeSymbol(marketId);
|
|
769
|
+
const timeframe = this.safeString(data, 'i');
|
|
770
|
+
if (!(symbol in this.ohlcvs)) {
|
|
771
|
+
this.ohlcvs[symbol] = {};
|
|
772
|
+
}
|
|
773
|
+
if (!(timeframe in this.ohlcvs[symbol])) {
|
|
774
|
+
const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
|
|
775
|
+
const stored = new ArrayCacheByTimestamp(limit);
|
|
776
|
+
this.ohlcvs[symbol][timeframe] = stored;
|
|
777
|
+
}
|
|
778
|
+
const ohlcv = this.ohlcvs[symbol][timeframe];
|
|
779
|
+
const parsed = this.parseOHLCV(data);
|
|
780
|
+
ohlcv.append(parsed);
|
|
781
|
+
const messageHash = 'candles:' + timeframe + ':' + symbol;
|
|
782
|
+
client.resolve(ohlcv, messageHash);
|
|
783
|
+
}
|
|
784
|
+
handleWsPost(client, message) {
|
|
785
|
+
// {
|
|
786
|
+
// channel: "post",
|
|
787
|
+
// data: {
|
|
788
|
+
// id: <number>,
|
|
789
|
+
// response: {
|
|
790
|
+
// type: "info" | "action" | "error",
|
|
791
|
+
// payload: { ... }
|
|
792
|
+
// }
|
|
793
|
+
// }
|
|
794
|
+
const data = this.safeDict(message, 'data');
|
|
795
|
+
const id = this.safeString(data, 'id');
|
|
796
|
+
const response = this.safeDict(data, 'response');
|
|
797
|
+
const payload = this.safeDict(response, 'payload');
|
|
798
|
+
client.resolve(payload, id);
|
|
799
|
+
}
|
|
800
|
+
/**
|
|
801
|
+
* @method
|
|
802
|
+
* @name hyperliquid#watchOrders
|
|
803
|
+
* @description watches information on multiple orders made by the user
|
|
804
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
805
|
+
* @param {string} symbol unified market symbol of the market orders were made in
|
|
806
|
+
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
807
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
808
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
809
|
+
* @param {string} [params.user] user address, will default to this.walletAddress if not provided
|
|
810
|
+
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
811
|
+
*/
|
|
812
|
+
async watchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
813
|
+
await this.loadMarkets();
|
|
814
|
+
let userAddress = undefined;
|
|
815
|
+
[userAddress, params] = this.handlePublicAddress('watchOrders', params);
|
|
816
|
+
let market = undefined;
|
|
817
|
+
let messageHash = 'order';
|
|
818
|
+
if (symbol !== undefined) {
|
|
819
|
+
market = this.market(symbol);
|
|
820
|
+
symbol = market['symbol'];
|
|
821
|
+
messageHash = messageHash + ':' + symbol;
|
|
822
|
+
}
|
|
823
|
+
const url = this.urls['api']['ws']['public'];
|
|
824
|
+
const request = {
|
|
825
|
+
'method': 'subscribe',
|
|
826
|
+
'subscription': {
|
|
827
|
+
'type': 'orderUpdates',
|
|
828
|
+
'user': userAddress,
|
|
829
|
+
},
|
|
830
|
+
};
|
|
831
|
+
const message = this.extend(request, params);
|
|
832
|
+
const orders = await this.watch(url, messageHash, message, messageHash);
|
|
833
|
+
if (this.newUpdates) {
|
|
834
|
+
limit = orders.getLimit(symbol, limit);
|
|
835
|
+
}
|
|
836
|
+
return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
|
|
837
|
+
}
|
|
838
|
+
handleOrder(client, message) {
|
|
839
|
+
//
|
|
840
|
+
// {
|
|
841
|
+
// channel: 'orderUpdates',
|
|
842
|
+
// data: [
|
|
843
|
+
// {
|
|
844
|
+
// order: {
|
|
845
|
+
// coin: 'BTC',
|
|
846
|
+
// side: 'B',
|
|
847
|
+
// limitPx: '30000.0',
|
|
848
|
+
// sz: '0.001',
|
|
849
|
+
// oid: 7456484275,
|
|
850
|
+
// timestamp: 1710163596492,
|
|
851
|
+
// origSz: '0.001'
|
|
852
|
+
// },
|
|
853
|
+
// status: 'open',
|
|
854
|
+
// statusTimestamp: 1710163596492
|
|
855
|
+
// }
|
|
856
|
+
// ]
|
|
857
|
+
// }
|
|
858
|
+
//
|
|
859
|
+
const data = this.safeList(message, 'data', []);
|
|
860
|
+
if (this.orders === undefined) {
|
|
861
|
+
const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
|
|
862
|
+
this.orders = new ArrayCacheBySymbolById(limit);
|
|
863
|
+
}
|
|
864
|
+
const dataLength = data.length;
|
|
865
|
+
if (dataLength === 0) {
|
|
866
|
+
return;
|
|
867
|
+
}
|
|
868
|
+
const stored = this.orders;
|
|
869
|
+
const messageHash = 'order';
|
|
870
|
+
const marketSymbols = {};
|
|
871
|
+
for (let i = 0; i < data.length; i++) {
|
|
872
|
+
const rawOrder = data[i];
|
|
873
|
+
const order = this.parseOrder(rawOrder);
|
|
874
|
+
stored.append(order);
|
|
875
|
+
const symbol = this.safeString(order, 'symbol');
|
|
876
|
+
marketSymbols[symbol] = true;
|
|
877
|
+
}
|
|
878
|
+
const keys = Object.keys(marketSymbols);
|
|
879
|
+
for (let i = 0; i < keys.length; i++) {
|
|
880
|
+
const symbol = keys[i];
|
|
881
|
+
const innerMessageHash = messageHash + ':' + symbol;
|
|
882
|
+
client.resolve(stored, innerMessageHash);
|
|
883
|
+
}
|
|
884
|
+
client.resolve(stored, messageHash);
|
|
885
|
+
}
|
|
886
|
+
handleErrorMessage(client, message) {
|
|
887
|
+
//
|
|
888
|
+
// {
|
|
889
|
+
// "channel": "post",
|
|
890
|
+
// "data": {
|
|
891
|
+
// "id": 1,
|
|
892
|
+
// "response": {
|
|
893
|
+
// "type": "action",
|
|
894
|
+
// "payload": {
|
|
895
|
+
// "status": "ok",
|
|
896
|
+
// "response": {
|
|
897
|
+
// "type": "order",
|
|
898
|
+
// "data": {
|
|
899
|
+
// "statuses": [
|
|
900
|
+
// {
|
|
901
|
+
// "error": "Order price cannot be more than 80% away from the reference price"
|
|
902
|
+
// }
|
|
903
|
+
// ]
|
|
904
|
+
// }
|
|
905
|
+
// }
|
|
906
|
+
// }
|
|
907
|
+
// }
|
|
908
|
+
// }
|
|
909
|
+
// }
|
|
910
|
+
//
|
|
911
|
+
// {
|
|
912
|
+
// "channel": "error",
|
|
913
|
+
// "data": "Error parsing JSON into valid websocket request: { \"type\": \"allMids\" }"
|
|
914
|
+
// }
|
|
915
|
+
//
|
|
916
|
+
const channel = this.safeString(message, 'channel', '');
|
|
917
|
+
if (channel === 'error') {
|
|
918
|
+
const ret_msg = this.safeString(message, 'data', '');
|
|
919
|
+
const errorMsg = this.id + ' ' + ret_msg;
|
|
920
|
+
client.reject(errorMsg);
|
|
921
|
+
return true;
|
|
922
|
+
}
|
|
923
|
+
const data = this.safeDict(message, 'data', {});
|
|
924
|
+
const id = this.safeString(message, 'id');
|
|
925
|
+
const response = this.safeDict(data, 'response', {});
|
|
926
|
+
const payload = this.safeDict(response, 'payload', {});
|
|
927
|
+
const status = this.safeString(payload, 'status');
|
|
928
|
+
if (status !== undefined && status !== 'ok') {
|
|
929
|
+
const errorMsg = this.id + ' ' + this.json(payload);
|
|
930
|
+
client.reject(errorMsg, id);
|
|
931
|
+
return true;
|
|
932
|
+
}
|
|
933
|
+
const type = this.safeString(payload, 'type');
|
|
934
|
+
if (type === 'error') {
|
|
935
|
+
const error = this.id + ' ' + this.json(payload);
|
|
936
|
+
client.reject(error, id);
|
|
937
|
+
return true;
|
|
938
|
+
}
|
|
939
|
+
try {
|
|
940
|
+
this.handleErrors(0, '', '', '', {}, this.json(payload), payload, {}, {});
|
|
941
|
+
}
|
|
942
|
+
catch (e) {
|
|
943
|
+
client.reject(e, id);
|
|
944
|
+
return true;
|
|
945
|
+
}
|
|
946
|
+
return false;
|
|
947
|
+
}
|
|
948
|
+
handleOrderBookUnsubscription(client, subscription) {
|
|
949
|
+
//
|
|
950
|
+
// "subscription":{
|
|
951
|
+
// "type":"l2Book",
|
|
952
|
+
// "coin":"BTC",
|
|
953
|
+
// "nSigFigs":5,
|
|
954
|
+
// "mantissa":null
|
|
955
|
+
// }
|
|
956
|
+
//
|
|
957
|
+
const coin = this.safeString(subscription, 'coin');
|
|
958
|
+
const marketId = this.coinToMarketId(coin);
|
|
959
|
+
const symbol = this.safeSymbol(marketId);
|
|
960
|
+
const subMessageHash = 'orderbook:' + symbol;
|
|
961
|
+
const messageHash = 'unsubscribe:' + subMessageHash;
|
|
962
|
+
this.cleanUnsubscription(client, subMessageHash, messageHash);
|
|
963
|
+
if (symbol in this.orderbooks) {
|
|
964
|
+
delete this.orderbooks[symbol];
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
handleTradesUnsubscription(client, subscription) {
|
|
968
|
+
//
|
|
969
|
+
const coin = this.safeString(subscription, 'coin');
|
|
970
|
+
const marketId = this.coinToMarketId(coin);
|
|
971
|
+
const symbol = this.safeSymbol(marketId);
|
|
972
|
+
const subMessageHash = 'trade:' + symbol;
|
|
973
|
+
const messageHash = 'unsubscribe:' + subMessageHash;
|
|
974
|
+
this.cleanUnsubscription(client, subMessageHash, messageHash);
|
|
975
|
+
if (symbol in this.trades) {
|
|
976
|
+
delete this.trades[symbol];
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
handleTickersUnsubscription(client, subscription) {
|
|
980
|
+
//
|
|
981
|
+
const subMessageHash = 'tickers';
|
|
982
|
+
const messageHash = 'unsubscribe:' + subMessageHash;
|
|
983
|
+
this.cleanUnsubscription(client, subMessageHash, messageHash);
|
|
984
|
+
const symbols = Object.keys(this.tickers);
|
|
985
|
+
for (let i = 0; i < symbols.length; i++) {
|
|
986
|
+
delete this.tickers[symbols[i]];
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
handleOHLCVUnsubscription(client, subscription) {
|
|
990
|
+
const coin = this.safeString(subscription, 'coin');
|
|
991
|
+
const marketId = this.coinToMarketId(coin);
|
|
992
|
+
const symbol = this.safeSymbol(marketId);
|
|
993
|
+
const interval = this.safeString(subscription, 'interval');
|
|
994
|
+
const timeframe = this.findTimeframe(interval);
|
|
995
|
+
const subMessageHash = 'candles:' + timeframe + ':' + symbol;
|
|
996
|
+
const messageHash = 'unsubscribe:' + subMessageHash;
|
|
997
|
+
this.cleanUnsubscription(client, subMessageHash, messageHash);
|
|
998
|
+
if (symbol in this.ohlcvs) {
|
|
999
|
+
if (timeframe in this.ohlcvs[symbol]) {
|
|
1000
|
+
delete this.ohlcvs[symbol][timeframe];
|
|
1001
|
+
}
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
handleSubscriptionResponse(client, message) {
|
|
1005
|
+
// {
|
|
1006
|
+
// "channel":"subscriptionResponse",
|
|
1007
|
+
// "data":{
|
|
1008
|
+
// "method":"unsubscribe",
|
|
1009
|
+
// "subscription":{
|
|
1010
|
+
// "type":"l2Book",
|
|
1011
|
+
// "coin":"BTC",
|
|
1012
|
+
// "nSigFigs":5,
|
|
1013
|
+
// "mantissa":null
|
|
1014
|
+
// }
|
|
1015
|
+
// }
|
|
1016
|
+
// }
|
|
1017
|
+
//
|
|
1018
|
+
// {
|
|
1019
|
+
// "channel":"subscriptionResponse",
|
|
1020
|
+
// "data":{
|
|
1021
|
+
// "method":"unsubscribe",
|
|
1022
|
+
// "subscription":{
|
|
1023
|
+
// "type":"trades",
|
|
1024
|
+
// "coin":"PURR/USDC"
|
|
1025
|
+
// }
|
|
1026
|
+
// }
|
|
1027
|
+
// }
|
|
1028
|
+
//
|
|
1029
|
+
const data = this.safeDict(message, 'data', {});
|
|
1030
|
+
const method = this.safeString(data, 'method');
|
|
1031
|
+
if (method === 'unsubscribe') {
|
|
1032
|
+
const subscription = this.safeDict(data, 'subscription', {});
|
|
1033
|
+
const type = this.safeString(subscription, 'type');
|
|
1034
|
+
if (type === 'l2Book') {
|
|
1035
|
+
this.handleOrderBookUnsubscription(client, subscription);
|
|
1036
|
+
}
|
|
1037
|
+
else if (type === 'trades') {
|
|
1038
|
+
this.handleTradesUnsubscription(client, subscription);
|
|
1039
|
+
}
|
|
1040
|
+
else if (type === 'webData2') {
|
|
1041
|
+
this.handleTickersUnsubscription(client, subscription);
|
|
1042
|
+
}
|
|
1043
|
+
else if (type === 'candle') {
|
|
1044
|
+
this.handleOHLCVUnsubscription(client, subscription);
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
handleMessage(client, message) {
|
|
1049
|
+
//
|
|
1050
|
+
// {
|
|
1051
|
+
// "channel":"subscriptionResponse",
|
|
1052
|
+
// "data":{
|
|
1053
|
+
// "method":"unsubscribe",
|
|
1054
|
+
// "subscription":{
|
|
1055
|
+
// "type":"l2Book",
|
|
1056
|
+
// "coin":"BTC",
|
|
1057
|
+
// "nSigFigs":5,
|
|
1058
|
+
// "mantissa":null
|
|
1059
|
+
// }
|
|
1060
|
+
// }
|
|
1061
|
+
// }
|
|
1062
|
+
//
|
|
1063
|
+
if (this.handleErrorMessage(client, message)) {
|
|
1064
|
+
return;
|
|
1065
|
+
}
|
|
1066
|
+
const topic = this.safeString(message, 'channel', '');
|
|
1067
|
+
const methods = {
|
|
1068
|
+
'pong': this.handlePong,
|
|
1069
|
+
'trades': this.handleTrades,
|
|
1070
|
+
'l2Book': this.handleOrderBook,
|
|
1071
|
+
'candle': this.handleOHLCV,
|
|
1072
|
+
'orderUpdates': this.handleOrder,
|
|
1073
|
+
'userFills': this.handleMyTrades,
|
|
1074
|
+
'webData2': this.handleWsTickers,
|
|
1075
|
+
'post': this.handleWsPost,
|
|
1076
|
+
'subscriptionResponse': this.handleSubscriptionResponse,
|
|
1077
|
+
};
|
|
1078
|
+
const exacMethod = this.safeValue(methods, topic);
|
|
1079
|
+
if (exacMethod !== undefined) {
|
|
1080
|
+
exacMethod.call(this, client, message);
|
|
1081
|
+
return;
|
|
1082
|
+
}
|
|
1083
|
+
const keys = Object.keys(methods);
|
|
1084
|
+
for (let i = 0; i < keys.length; i++) {
|
|
1085
|
+
const key = keys[i];
|
|
1086
|
+
if (topic.indexOf(keys[i]) >= 0) {
|
|
1087
|
+
const method = methods[key];
|
|
1088
|
+
method.call(this, client, message);
|
|
1089
|
+
return;
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
}
|
|
1093
|
+
ping(client) {
|
|
1094
|
+
return {
|
|
1095
|
+
'method': 'ping',
|
|
1096
|
+
};
|
|
1097
|
+
}
|
|
1098
|
+
handlePong(client, message) {
|
|
1099
|
+
//
|
|
1100
|
+
// {
|
|
1101
|
+
// "channel": "pong"
|
|
1102
|
+
// }
|
|
1103
|
+
//
|
|
1104
|
+
client.lastPong = this.safeInteger(message, 'pong');
|
|
1105
|
+
return message;
|
|
1106
|
+
}
|
|
1107
|
+
requestId() {
|
|
1108
|
+
const requestId = this.sum(this.safeInteger(this.options, 'requestId', 0), 1);
|
|
1109
|
+
this.options['requestId'] = requestId;
|
|
1110
|
+
return requestId;
|
|
1111
|
+
}
|
|
1112
|
+
wrapAsPostAction(request) {
|
|
1113
|
+
const requestId = this.requestId();
|
|
1114
|
+
return {
|
|
1115
|
+
'requestId': requestId,
|
|
1116
|
+
'request': {
|
|
1117
|
+
'method': 'post',
|
|
1118
|
+
'id': requestId,
|
|
1119
|
+
'request': {
|
|
1120
|
+
'type': 'action',
|
|
1121
|
+
'payload': request,
|
|
1122
|
+
},
|
|
1123
|
+
},
|
|
1124
|
+
};
|
|
1125
|
+
}
|
|
1126
|
+
}
|