ccxt 4.5.49 → 4.5.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/abstract/aftermath.js +1 -1
- package/dist/cjs/src/abstract/alpaca.js +1 -1
- package/dist/cjs/src/abstract/apex.js +1 -1
- package/dist/cjs/src/abstract/arkham.js +1 -1
- package/dist/cjs/src/abstract/ascendex.js +1 -1
- package/dist/cjs/src/abstract/aster.js +1 -1
- package/dist/cjs/src/abstract/backpack.js +1 -1
- package/dist/cjs/src/abstract/bigone.js +1 -1
- package/dist/cjs/src/abstract/binance.js +1 -1
- package/dist/cjs/src/abstract/bingx.js +1 -1
- package/dist/cjs/src/abstract/bit2c.js +1 -1
- package/dist/cjs/src/abstract/bitbank.js +1 -1
- package/dist/cjs/src/abstract/bitbns.js +1 -1
- package/dist/cjs/src/abstract/bitfinex.js +1 -1
- package/dist/cjs/src/abstract/bitflyer.js +1 -1
- package/dist/cjs/src/abstract/bitget.js +1 -1
- package/dist/cjs/src/abstract/bithumb.js +1 -1
- package/dist/cjs/src/abstract/bitmart.js +1 -1
- package/dist/cjs/src/abstract/bitmex.js +1 -1
- package/dist/cjs/src/abstract/bitopro.js +1 -1
- package/dist/cjs/src/abstract/bitrue.js +1 -1
- package/dist/cjs/src/abstract/bitso.js +1 -1
- package/dist/cjs/src/abstract/bitstamp.js +1 -1
- package/dist/cjs/src/abstract/bitteam.js +1 -1
- package/dist/cjs/src/abstract/bittrade.js +1 -1
- package/dist/cjs/src/abstract/bitvavo.js +1 -1
- package/dist/cjs/src/abstract/blockchaincom.js +1 -1
- package/dist/cjs/src/abstract/blofin.js +1 -1
- package/dist/cjs/src/abstract/btcbox.js +1 -1
- package/dist/cjs/src/abstract/btcmarkets.js +1 -1
- package/dist/cjs/src/abstract/btcturk.js +1 -1
- package/dist/cjs/src/abstract/bullish.js +1 -1
- package/dist/cjs/src/abstract/bybit.js +1 -1
- package/dist/cjs/src/abstract/bydfi.js +1 -1
- package/dist/cjs/src/abstract/cex.js +1 -1
- package/dist/cjs/src/abstract/coinbase.js +1 -1
- package/dist/cjs/src/abstract/coinbaseexchange.js +1 -1
- package/dist/cjs/src/abstract/coinbaseinternational.js +1 -1
- package/dist/cjs/src/abstract/coincheck.js +1 -1
- package/dist/cjs/src/abstract/coinex.js +1 -1
- package/dist/cjs/src/abstract/coinmate.js +1 -1
- package/dist/cjs/src/abstract/coinmetro.js +1 -1
- package/dist/cjs/src/abstract/coinone.js +1 -1
- package/dist/cjs/src/abstract/coinsph.js +1 -1
- package/dist/cjs/src/abstract/coinspot.js +1 -1
- package/dist/cjs/src/abstract/cryptocom.js +1 -1
- package/dist/cjs/src/abstract/cryptomus.js +1 -1
- package/dist/cjs/src/abstract/deepcoin.js +1 -1
- package/dist/cjs/src/abstract/delta.js +1 -1
- package/dist/cjs/src/abstract/deribit.js +1 -1
- package/dist/cjs/src/abstract/derive.js +1 -1
- package/dist/cjs/src/abstract/digifinex.js +1 -1
- package/dist/cjs/src/abstract/dydx.js +1 -1
- package/dist/cjs/src/abstract/exmo.js +1 -1
- package/dist/cjs/src/abstract/foxbit.js +1 -1
- package/dist/cjs/src/abstract/gate.js +1 -1
- package/dist/cjs/src/abstract/gemini.js +1 -1
- package/dist/cjs/src/abstract/grvt.js +1 -1
- package/dist/cjs/src/abstract/hashkey.js +1 -1
- package/dist/cjs/src/abstract/hibachi.js +1 -1
- package/dist/cjs/src/abstract/hitbtc.js +1 -1
- package/dist/cjs/src/abstract/hollaex.js +1 -1
- package/dist/cjs/src/abstract/htx.js +1 -1
- package/dist/cjs/src/abstract/hyperliquid.js +1 -1
- package/dist/cjs/src/abstract/independentreserve.js +1 -1
- package/dist/cjs/src/abstract/indodax.js +1 -1
- package/dist/cjs/src/abstract/kraken.js +1 -1
- package/dist/cjs/src/abstract/krakenfutures.js +1 -1
- package/dist/cjs/src/abstract/kucoin.js +1 -1
- package/dist/cjs/src/abstract/latoken.js +1 -1
- package/dist/cjs/src/abstract/lbank.js +1 -1
- package/dist/cjs/src/abstract/lighter.js +1 -1
- package/dist/cjs/src/abstract/luno.js +1 -1
- package/dist/cjs/src/abstract/mercado.js +1 -1
- package/dist/cjs/src/abstract/mexc.js +1 -1
- package/dist/cjs/src/abstract/modetrade.js +1 -1
- package/dist/cjs/src/abstract/ndax.js +1 -1
- package/dist/cjs/src/abstract/novadax.js +1 -1
- package/dist/cjs/src/abstract/okx.js +1 -1
- package/dist/cjs/src/abstract/onetrading.js +1 -1
- package/dist/cjs/src/abstract/oxfun.js +1 -1
- package/dist/cjs/src/abstract/p2b.js +1 -1
- package/dist/cjs/src/abstract/pacifica.js +1 -1
- package/dist/cjs/src/abstract/paradex.js +1 -1
- package/dist/cjs/src/abstract/paymium.js +1 -1
- package/dist/cjs/src/abstract/phemex.js +1 -1
- package/dist/cjs/src/abstract/poloniex.js +1 -1
- package/dist/cjs/src/abstract/tokocrypto.js +1 -1
- package/dist/cjs/src/abstract/toobit.js +1 -1
- package/dist/cjs/src/abstract/upbit.js +1 -1
- package/dist/cjs/src/abstract/wavesexchange.js +1 -1
- package/dist/cjs/src/abstract/weex.js +1 -1
- package/dist/cjs/src/abstract/whitebit.js +1 -1
- package/dist/cjs/src/abstract/woo.js +1 -1
- package/dist/cjs/src/abstract/woofipro.js +1 -1
- package/dist/cjs/src/abstract/xt.js +1 -1
- package/dist/cjs/src/abstract/yobit.js +1 -1
- package/dist/cjs/src/abstract/zaif.js +1 -1
- package/dist/cjs/src/abstract/zebpay.js +1 -1
- package/dist/cjs/src/abstract/zonda.js +1 -1
- package/dist/cjs/src/aftermath.js +0 -1
- package/dist/cjs/src/alpaca.js +1 -1
- package/dist/cjs/src/apex.js +1 -1
- package/dist/cjs/src/arkham.js +1 -1
- package/dist/cjs/src/ascendex.js +1 -1
- package/dist/cjs/src/aster.js +1 -1
- package/dist/cjs/src/backpack.js +1 -1
- package/dist/cjs/src/base/Exchange.js +51 -13
- package/dist/cjs/src/base/Precise.js +0 -6
- package/dist/cjs/src/base/errors.js +0 -6
- package/dist/cjs/src/base/functions/crypto.js +1 -1
- package/dist/cjs/src/base/functions/encode.js +1 -1
- package/dist/cjs/src/base/functions/io.js +1 -1
- package/dist/cjs/src/base/functions/misc.js +0 -1
- package/dist/cjs/src/base/functions/number.js +0 -6
- package/dist/cjs/src/base/functions/platform.js +0 -6
- package/dist/cjs/src/base/functions/rsa.js +0 -1
- package/dist/cjs/src/base/functions/string.js +0 -6
- package/dist/cjs/src/base/functions/throttle.js +1 -1
- package/dist/cjs/src/base/functions/time.js +0 -6
- package/dist/cjs/src/base/functions/totp.js +0 -1
- package/dist/cjs/src/base/functions/type.js +0 -6
- package/dist/cjs/src/base/functions.js +1 -1
- package/dist/cjs/src/base/ws/Cache.js +0 -6
- package/dist/cjs/src/base/ws/Client.js +0 -1
- package/dist/cjs/src/base/ws/Future.js +1 -1
- package/dist/cjs/src/base/ws/OrderBook.js +1 -1
- package/dist/cjs/src/base/ws/OrderBookSide.js +0 -6
- package/dist/cjs/src/base/ws/WsClient.js +1 -1
- package/dist/cjs/src/bequant.js +1 -1
- package/dist/cjs/src/bigone.js +1 -1
- package/dist/cjs/src/binance.js +23 -11
- package/dist/cjs/src/binancecoinm.js +1 -1
- package/dist/cjs/src/binanceus.js +1 -1
- package/dist/cjs/src/binanceusdm.js +1 -1
- package/dist/cjs/src/bingx.js +1 -1
- package/dist/cjs/src/bit2c.js +1 -1
- package/dist/cjs/src/bitbank.js +1 -1
- package/dist/cjs/src/bitbns.js +1 -1
- package/dist/cjs/src/bitfinex.js +1 -1
- package/dist/cjs/src/bitflyer.js +1 -1
- package/dist/cjs/src/bitget.js +7 -4
- package/dist/cjs/src/bithumb.js +1 -1
- package/dist/cjs/src/bitmart.js +1 -1
- package/dist/cjs/src/bitmex.js +1 -1
- package/dist/cjs/src/bitopro.js +1 -1
- package/dist/cjs/src/bitrue.js +1 -1
- package/dist/cjs/src/bitso.js +1 -1
- package/dist/cjs/src/bitstamp.js +1 -1
- package/dist/cjs/src/bitteam.js +1 -1
- package/dist/cjs/src/bittrade.js +1 -1
- package/dist/cjs/src/blockchaincom.js +1 -1
- package/dist/cjs/src/blofin.js +26 -31
- package/dist/cjs/src/btcbox.js +1 -1
- package/dist/cjs/src/btcmarkets.js +1 -1
- package/dist/cjs/src/btcturk.js +1 -1
- package/dist/cjs/src/bullish.js +1 -1
- package/dist/cjs/src/bybit.js +1 -1
- package/dist/cjs/src/bydfi.js +2 -3
- package/dist/cjs/src/cex.js +1 -1
- package/dist/cjs/src/coinbaseadvanced.js +1 -1
- package/dist/cjs/src/coincheck.js +1 -1
- package/dist/cjs/src/coinex.js +1 -1
- package/dist/cjs/src/coinmate.js +1 -1
- package/dist/cjs/src/coinmetro.js +1 -1
- package/dist/cjs/src/coinone.js +1 -1
- package/dist/cjs/src/coinsph.js +0 -1
- package/dist/cjs/src/coinspot.js +1 -1
- package/dist/cjs/src/cryptocom.js +1 -1
- package/dist/cjs/src/cryptomus.js +1 -1
- package/dist/cjs/src/deepcoin.js +1 -2
- package/dist/cjs/src/delta.js +1 -1
- package/dist/cjs/src/deribit.js +1 -1
- package/dist/cjs/src/derive.js +1 -1
- package/dist/cjs/src/digifinex.js +1 -1
- package/dist/cjs/src/dydx.js +1 -1
- package/dist/cjs/src/exmo.js +1 -1
- package/dist/cjs/src/fmfwio.js +1 -1
- package/dist/cjs/src/foxbit.js +1 -1
- package/dist/cjs/src/gate.js +1 -2
- package/dist/cjs/src/gateio.js +1 -1
- package/dist/cjs/src/gemini.js +1 -1
- package/dist/cjs/src/grvt.js +15 -15
- package/dist/cjs/src/hashkey.js +1 -1
- package/dist/cjs/src/hibachi.js +2 -2
- package/dist/cjs/src/hitbtc.js +0 -1
- package/dist/cjs/src/hollaex.js +1 -1
- package/dist/cjs/src/htx.js +1 -1
- package/dist/cjs/src/huobi.js +1 -1
- package/dist/cjs/src/hyperliquid.js +1 -1
- package/dist/cjs/src/independentreserve.js +1 -1
- package/dist/cjs/src/indodax.js +1 -1
- package/dist/cjs/src/kraken.js +1 -1
- package/dist/cjs/src/krakenfutures.js +1 -1
- package/dist/cjs/src/kucoin.js +246 -111
- package/dist/cjs/src/kucoinfutures.js +1 -2
- package/dist/cjs/src/latoken.js +1 -1
- package/dist/cjs/src/lbank.js +1 -1
- package/dist/cjs/src/lighter.js +313 -142
- package/dist/cjs/src/luno.js +1 -1
- package/dist/cjs/src/mercado.js +1 -1
- package/dist/cjs/src/mexc.js +1 -1
- package/dist/cjs/src/modetrade.js +1 -1
- package/dist/cjs/src/myokx.js +1 -1
- package/dist/cjs/src/ndax.js +1 -1
- package/dist/cjs/src/novadax.js +1 -1
- package/dist/cjs/src/okx.js +47 -2
- package/dist/cjs/src/okxus.js +1 -1
- package/dist/cjs/src/onetrading.js +1 -1
- package/dist/cjs/src/oxfun.js +1 -1
- package/dist/cjs/src/p2b.js +1 -1
- package/dist/cjs/src/pacifica.js +1 -1
- package/dist/cjs/src/paradex.js +1 -1
- package/dist/cjs/src/paymium.js +1 -1
- package/dist/cjs/src/poloniex.js +1 -1
- package/dist/cjs/src/pro/alpaca.js +1 -1
- package/dist/cjs/src/pro/apex.js +1 -1
- package/dist/cjs/src/pro/arkham.js +1 -1
- package/dist/cjs/src/pro/ascendex.js +1 -1
- package/dist/cjs/src/pro/aster.js +24 -43
- package/dist/cjs/src/pro/backpack.js +1 -1
- package/dist/cjs/src/pro/bequant.js +1 -1
- package/dist/cjs/src/pro/binance.js +1 -1
- package/dist/cjs/src/pro/binancecoinm.js +1 -1
- package/dist/cjs/src/pro/binanceus.js +1 -1
- package/dist/cjs/src/pro/binanceusdm.js +1 -1
- package/dist/cjs/src/pro/bingx.js +1 -1
- package/dist/cjs/src/pro/bitfinex.js +1 -1
- package/dist/cjs/src/pro/bitget.js +1 -1
- package/dist/cjs/src/pro/bithumb.js +1 -1
- package/dist/cjs/src/pro/bitmart.js +1 -1
- package/dist/cjs/src/pro/bitmex.js +1 -1
- package/dist/cjs/src/pro/bitrue.js +1 -1
- package/dist/cjs/src/pro/bitstamp.js +1 -1
- package/dist/cjs/src/pro/bitvavo.js +1 -1
- package/dist/cjs/src/pro/blockchaincom.js +1 -1
- package/dist/cjs/src/pro/blofin.js +1 -1
- package/dist/cjs/src/pro/bullish.js +1 -1
- package/dist/cjs/src/pro/bybit.js +1 -1
- package/dist/cjs/src/pro/bydfi.js +1 -1
- package/dist/cjs/src/pro/cex.js +1 -1
- package/dist/cjs/src/pro/coinbase.js +1 -1
- package/dist/cjs/src/pro/coinbaseadvanced.js +1 -1
- package/dist/cjs/src/pro/coinbaseexchange.js +1 -1
- package/dist/cjs/src/pro/coinbaseinternational.js +1 -1
- package/dist/cjs/src/pro/coincheck.js +1 -1
- package/dist/cjs/src/pro/coinex.js +1 -1
- package/dist/cjs/src/pro/coinone.js +1 -1
- package/dist/cjs/src/pro/cryptocom.js +1 -1
- package/dist/cjs/src/pro/deepcoin.js +1 -1
- package/dist/cjs/src/pro/deribit.js +1 -1
- package/dist/cjs/src/pro/dydx.js +1 -1
- package/dist/cjs/src/pro/exmo.js +1 -1
- package/dist/cjs/src/pro/gate.js +78 -7
- package/dist/cjs/src/pro/gateio.js +1 -1
- package/dist/cjs/src/pro/gemini.js +1 -1
- package/dist/cjs/src/pro/grvt.js +5 -6
- package/dist/cjs/src/pro/hashkey.js +1 -1
- package/dist/cjs/src/pro/hitbtc.js +1 -1
- package/dist/cjs/src/pro/hollaex.js +1 -1
- package/dist/cjs/src/pro/htx.js +1 -1
- package/dist/cjs/src/pro/huobi.js +1 -1
- package/dist/cjs/src/pro/hyperliquid.js +362 -2
- package/dist/cjs/src/pro/independentreserve.js +1 -1
- package/dist/cjs/src/pro/kraken.js +1 -1
- package/dist/cjs/src/pro/krakenfutures.js +1 -1
- package/dist/cjs/src/pro/kucoin.js +1191 -104
- package/dist/cjs/src/pro/kucoinfutures.js +1 -2
- package/dist/cjs/src/pro/lbank.js +0 -1
- package/dist/cjs/src/pro/lighter.js +2 -1
- package/dist/cjs/src/pro/luno.js +1 -1
- package/dist/cjs/src/pro/mexc.js +1 -1
- package/dist/cjs/src/pro/myokx.js +1 -1
- package/dist/cjs/src/pro/ndax.js +1 -1
- package/dist/cjs/src/pro/okx.js +1 -1
- package/dist/cjs/src/pro/okxus.js +1 -1
- package/dist/cjs/src/pro/onetrading.js +1 -1
- package/dist/cjs/src/pro/oxfun.js +1 -1
- package/dist/cjs/src/pro/p2b.js +1 -1
- package/dist/cjs/src/pro/pacifica.js +1 -1
- package/dist/cjs/src/pro/paradex.js +1 -1
- package/dist/cjs/src/pro/phemex.js +1 -1
- package/dist/cjs/src/pro/poloniex.js +1 -1
- package/dist/cjs/src/pro/toobit.js +1 -1
- package/dist/cjs/src/pro/upbit.js +1 -1
- package/dist/cjs/src/pro/weex.js +1 -1
- package/dist/cjs/src/pro/whitebit.js +1 -1
- package/dist/cjs/src/pro/xt.js +1 -1
- package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +1 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
- package/dist/cjs/src/static_dependencies/dydx-v4-client/onboarding.js +0 -1
- package/dist/cjs/src/static_dependencies/dydx-v4-client/registry.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/coders/address.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/array.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/null.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/number.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/string.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +0 -1
- package/dist/cjs/src/static_dependencies/ethers/fragments.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/index.js +10 -1
- package/dist/cjs/src/static_dependencies/ethers/interface.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/typed.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +13 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/data.js +6 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +9 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/events.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/utils/index.js +7 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +5 -1
- package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +0 -6
- package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +8 -1
- package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
- package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-curves/_shortw_utils.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/curve.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/edwards.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/modular.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/montgomery.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/poseidon.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-curves/abstract/weierstrass.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/ed25519.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/p256.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-curves/secp256k1.js +1 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/_assert.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +0 -6
- package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/pbkdf2.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/ripemd160.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +0 -1
- package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
- package/dist/cjs/src/static_dependencies/node-fetch/body.js +5 -1
- package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +0 -1
- package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +0 -6
- package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -1
- package/dist/cjs/src/static_dependencies/node-fetch/headers.js +5 -1
- package/dist/cjs/src/static_dependencies/node-fetch/index.js +7 -1
- package/dist/cjs/src/static_dependencies/node-fetch/request.js +7 -1
- package/dist/cjs/src/static_dependencies/node-fetch/response.js +5 -1
- package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
- package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
- package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +0 -6
- package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +0 -1
- package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +0 -1
- package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -1
- package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -1
- package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
- package/dist/cjs/src/static_dependencies/qs/formats.js +0 -6
- package/dist/cjs/src/static_dependencies/qs/index.js +0 -1
- package/dist/cjs/src/static_dependencies/qs/parse.js +0 -1
- package/dist/cjs/src/static_dependencies/qs/stringify.js +0 -1
- package/dist/cjs/src/static_dependencies/qs/utils.js +0 -6
- package/dist/cjs/src/static_dependencies/scure-base/index.js +0 -6
- package/dist/cjs/src/static_dependencies/scure-bip32/index.js +19 -1
- package/dist/cjs/src/static_dependencies/scure-bip39/index.js +1 -1
- package/dist/cjs/src/static_dependencies/scure-bip39/wordlists/english.js +0 -6
- package/dist/cjs/src/static_dependencies/scure-starknet/index.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/constants.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/types/calldata.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/index.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +4 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +3 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/num.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +0 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
- package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +0 -6
- package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
- package/dist/cjs/src/tokocrypto.js +1 -1
- package/dist/cjs/src/toobit.js +1 -1
- package/dist/cjs/src/upbit.js +1 -1
- package/dist/cjs/src/wavesexchange.js +1 -1
- package/dist/cjs/src/weex.js +2 -2
- package/dist/cjs/src/whitebit.js +3 -1
- package/dist/cjs/src/woo.js +1 -1
- package/dist/cjs/src/woofipro.js +1 -1
- package/dist/cjs/src/xt.js +1 -1
- package/dist/cjs/src/yobit.js +1 -1
- package/dist/cjs/src/zaif.js +1 -1
- package/dist/cjs/src/zebpay.js +1 -1
- package/dist/cjs/src/zonda.js +1 -1
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -7
- package/js/src/abstract/aftermath.js +0 -6
- package/js/src/abstract/alpaca.js +0 -6
- package/js/src/abstract/apex.js +0 -6
- package/js/src/abstract/arkham.js +0 -6
- package/js/src/abstract/ascendex.js +0 -6
- package/js/src/abstract/aster.js +0 -6
- package/js/src/abstract/backpack.js +0 -6
- package/js/src/abstract/bequant.js +0 -6
- package/js/src/abstract/bigone.js +0 -6
- package/js/src/abstract/binance.js +0 -6
- package/js/src/abstract/binancecoinm.js +0 -6
- package/js/src/abstract/binanceus.js +0 -6
- package/js/src/abstract/binanceusdm.js +0 -6
- package/js/src/abstract/bingx.js +0 -6
- package/js/src/abstract/bit2c.js +0 -6
- package/js/src/abstract/bitbank.js +0 -6
- package/js/src/abstract/bitbns.js +0 -6
- package/js/src/abstract/bitfinex.js +0 -6
- package/js/src/abstract/bitflyer.js +0 -6
- package/js/src/abstract/bitget.js +0 -6
- package/js/src/abstract/bithumb.js +0 -6
- package/js/src/abstract/bitmart.js +0 -6
- package/js/src/abstract/bitmex.js +0 -6
- package/js/src/abstract/bitopro.js +0 -6
- package/js/src/abstract/bitrue.js +0 -6
- package/js/src/abstract/bitso.js +0 -6
- package/js/src/abstract/bitstamp.js +0 -6
- package/js/src/abstract/bitteam.js +0 -6
- package/js/src/abstract/bittrade.js +0 -6
- package/js/src/abstract/bitvavo.js +0 -6
- package/js/src/abstract/blockchaincom.js +0 -6
- package/js/src/abstract/blofin.js +0 -6
- package/js/src/abstract/btcbox.js +0 -6
- package/js/src/abstract/btcmarkets.js +0 -6
- package/js/src/abstract/btcturk.js +0 -6
- package/js/src/abstract/bullish.js +0 -6
- package/js/src/abstract/bybit.js +0 -6
- package/js/src/abstract/bydfi.js +0 -6
- package/js/src/abstract/cex.js +0 -6
- package/js/src/abstract/coinbase.js +0 -6
- package/js/src/abstract/coinbaseadvanced.js +0 -6
- package/js/src/abstract/coinbaseexchange.js +0 -6
- package/js/src/abstract/coinbaseinternational.js +0 -6
- package/js/src/abstract/coincheck.js +0 -6
- package/js/src/abstract/coinex.js +0 -6
- package/js/src/abstract/coinmate.js +0 -6
- package/js/src/abstract/coinmetro.js +0 -6
- package/js/src/abstract/coinone.js +0 -6
- package/js/src/abstract/coinsph.js +0 -6
- package/js/src/abstract/coinspot.js +0 -6
- package/js/src/abstract/cryptocom.js +0 -6
- package/js/src/abstract/cryptomus.js +0 -6
- package/js/src/abstract/deepcoin.js +0 -6
- package/js/src/abstract/delta.js +0 -6
- package/js/src/abstract/deribit.js +0 -6
- package/js/src/abstract/derive.js +0 -6
- package/js/src/abstract/digifinex.js +0 -6
- package/js/src/abstract/dydx.js +0 -6
- package/js/src/abstract/exmo.js +0 -6
- package/js/src/abstract/fmfwio.js +0 -6
- package/js/src/abstract/foxbit.js +0 -6
- package/js/src/abstract/gate.js +0 -6
- package/js/src/abstract/gateio.js +0 -6
- package/js/src/abstract/gemini.js +0 -6
- package/js/src/abstract/grvt.js +0 -6
- package/js/src/abstract/hashkey.js +0 -6
- package/js/src/abstract/hibachi.js +0 -6
- package/js/src/abstract/hitbtc.js +0 -6
- package/js/src/abstract/hollaex.js +0 -6
- package/js/src/abstract/htx.js +0 -6
- package/js/src/abstract/huobi.js +0 -6
- package/js/src/abstract/hyperliquid.js +0 -6
- package/js/src/abstract/independentreserve.js +0 -6
- package/js/src/abstract/indodax.js +0 -6
- package/js/src/abstract/kraken.js +0 -6
- package/js/src/abstract/krakenfutures.js +0 -6
- package/js/src/abstract/kucoin.d.ts +5 -0
- package/js/src/abstract/kucoin.js +0 -6
- package/js/src/abstract/kucoinfutures.d.ts +5 -0
- package/js/src/abstract/kucoinfutures.js +0 -6
- package/js/src/abstract/latoken.js +0 -6
- package/js/src/abstract/lbank.js +0 -6
- package/js/src/abstract/lighter.js +0 -6
- package/js/src/abstract/luno.js +0 -6
- package/js/src/abstract/mercado.js +0 -6
- package/js/src/abstract/mexc.js +0 -6
- package/js/src/abstract/modetrade.js +0 -6
- package/js/src/abstract/myokx.d.ts +34 -0
- package/js/src/abstract/myokx.js +0 -6
- package/js/src/abstract/ndax.js +0 -6
- package/js/src/abstract/novadax.js +0 -6
- package/js/src/abstract/okx.d.ts +34 -0
- package/js/src/abstract/okx.js +0 -6
- package/js/src/abstract/okxus.d.ts +34 -0
- package/js/src/abstract/okxus.js +0 -6
- package/js/src/abstract/onetrading.js +0 -6
- package/js/src/abstract/oxfun.js +0 -6
- package/js/src/abstract/p2b.js +0 -6
- package/js/src/abstract/pacifica.js +0 -6
- package/js/src/abstract/paradex.js +0 -6
- package/js/src/abstract/paymium.js +0 -6
- package/js/src/abstract/phemex.js +0 -6
- package/js/src/abstract/poloniex.js +0 -6
- package/js/src/abstract/tokocrypto.js +0 -6
- package/js/src/abstract/toobit.js +0 -6
- package/js/src/abstract/upbit.js +0 -6
- package/js/src/abstract/wavesexchange.js +0 -6
- package/js/src/abstract/weex.js +0 -6
- package/js/src/abstract/whitebit.js +0 -6
- package/js/src/abstract/woo.js +0 -6
- package/js/src/abstract/woofipro.js +0 -6
- package/js/src/abstract/xt.js +0 -6
- package/js/src/abstract/yobit.js +0 -6
- package/js/src/abstract/zaif.js +0 -6
- package/js/src/abstract/zebpay.js +0 -6
- package/js/src/abstract/zonda.js +0 -6
- package/js/src/aftermath.js +0 -6
- package/js/src/alpaca.js +0 -6
- package/js/src/apex.js +0 -6
- package/js/src/arkham.js +0 -6
- package/js/src/ascendex.js +0 -6
- package/js/src/aster.js +0 -6
- package/js/src/backpack.js +0 -6
- package/js/src/base/Exchange.d.ts +6 -1
- package/js/src/base/Exchange.js +51 -19
- package/js/src/base/Precise.js +0 -6
- package/js/src/base/errorHierarchy.js +0 -6
- package/js/src/base/errors.js +0 -6
- package/js/src/base/functions/crypto.js +0 -6
- package/js/src/base/functions/encode.js +0 -6
- package/js/src/base/functions/generic.js +0 -6
- package/js/src/base/functions/io.js +0 -6
- package/js/src/base/functions/misc.js +0 -6
- package/js/src/base/functions/number.js +0 -6
- package/js/src/base/functions/platform.js +0 -6
- package/js/src/base/functions/rsa.js +0 -6
- package/js/src/base/functions/string.js +0 -6
- package/js/src/base/functions/throttle.js +0 -6
- package/js/src/base/functions/time.js +0 -6
- package/js/src/base/functions/totp.js +0 -6
- package/js/src/base/functions/type.js +0 -6
- package/js/src/base/functions.js +0 -6
- package/js/src/base/types.js +0 -6
- package/js/src/base/ws/Cache.js +0 -6
- package/js/src/base/ws/Client.js +0 -6
- package/js/src/base/ws/Future.js +0 -6
- package/js/src/base/ws/OrderBook.js +0 -6
- package/js/src/base/ws/OrderBookSide.js +0 -6
- package/js/src/base/ws/WsClient.js +0 -6
- package/js/src/base/ws/functions.js +0 -6
- package/js/src/bequant.js +0 -6
- package/js/src/bigone.js +0 -6
- package/js/src/binance.d.ts +1 -1
- package/js/src/binance.js +22 -16
- package/js/src/binancecoinm.js +0 -6
- package/js/src/binanceus.js +0 -6
- package/js/src/binanceusdm.js +0 -6
- package/js/src/bingx.js +0 -6
- package/js/src/bit2c.js +0 -6
- package/js/src/bitbank.js +0 -6
- package/js/src/bitbns.js +0 -6
- package/js/src/bitfinex.js +0 -6
- package/js/src/bitflyer.js +0 -6
- package/js/src/bitget.js +6 -9
- package/js/src/bithumb.js +0 -6
- package/js/src/bitmart.js +0 -6
- package/js/src/bitmex.js +0 -6
- package/js/src/bitopro.js +0 -6
- package/js/src/bitrue.js +0 -6
- package/js/src/bitso.js +0 -6
- package/js/src/bitstamp.js +0 -6
- package/js/src/bitteam.js +0 -6
- package/js/src/bittrade.js +0 -6
- package/js/src/bitvavo.js +0 -6
- package/js/src/blockchaincom.js +0 -6
- package/js/src/blofin.js +25 -36
- package/js/src/btcbox.js +0 -6
- package/js/src/btcmarkets.js +0 -6
- package/js/src/btcturk.js +0 -6
- package/js/src/bullish.js +0 -6
- package/js/src/bybit.js +0 -6
- package/js/src/bydfi.js +1 -7
- package/js/src/cex.js +0 -6
- package/js/src/coinbase.js +0 -6
- package/js/src/coinbaseadvanced.js +0 -6
- package/js/src/coinbaseexchange.js +0 -6
- package/js/src/coinbaseinternational.js +0 -6
- package/js/src/coincheck.js +0 -6
- package/js/src/coinex.js +0 -6
- package/js/src/coinmate.js +0 -6
- package/js/src/coinmetro.js +0 -6
- package/js/src/coinone.js +0 -6
- package/js/src/coinsph.js +0 -6
- package/js/src/coinspot.js +0 -6
- package/js/src/cryptocom.js +0 -6
- package/js/src/cryptomus.js +0 -6
- package/js/src/deepcoin.js +1 -7
- package/js/src/delta.js +0 -6
- package/js/src/deribit.js +0 -6
- package/js/src/derive.js +0 -6
- package/js/src/digifinex.js +0 -6
- package/js/src/dydx.js +0 -6
- package/js/src/exmo.js +0 -6
- package/js/src/fmfwio.js +0 -6
- package/js/src/foxbit.js +0 -6
- package/js/src/gate.js +0 -7
- package/js/src/gateio.js +0 -6
- package/js/src/gemini.js +0 -6
- package/js/src/grvt.js +14 -20
- package/js/src/hashkey.js +0 -6
- package/js/src/hibachi.js +1 -7
- package/js/src/hitbtc.js +0 -6
- package/js/src/hollaex.js +0 -6
- package/js/src/htx.js +0 -6
- package/js/src/huobi.js +0 -6
- package/js/src/hyperliquid.js +0 -6
- package/js/src/independentreserve.js +0 -6
- package/js/src/indodax.js +0 -6
- package/js/src/kraken.js +0 -6
- package/js/src/krakenfutures.js +0 -6
- package/js/src/kucoin.d.ts +27 -11
- package/js/src/kucoin.js +245 -116
- package/js/src/kucoinfutures.js +0 -7
- package/js/src/latoken.js +0 -6
- package/js/src/lbank.js +0 -6
- package/js/src/lighter.d.ts +11 -2
- package/js/src/lighter.js +313 -148
- package/js/src/luno.js +0 -6
- package/js/src/mercado.js +0 -6
- package/js/src/mexc.js +0 -6
- package/js/src/modetrade.js +0 -6
- package/js/src/myokx.js +0 -6
- package/js/src/ndax.js +0 -6
- package/js/src/novadax.js +0 -6
- package/js/src/okx.js +46 -7
- package/js/src/okxus.js +0 -6
- package/js/src/onetrading.js +0 -6
- package/js/src/oxfun.js +0 -6
- package/js/src/p2b.js +0 -6
- package/js/src/pacifica.js +0 -6
- package/js/src/paradex.js +0 -6
- package/js/src/paymium.js +0 -6
- package/js/src/phemex.js +0 -6
- package/js/src/poloniex.js +0 -6
- package/js/src/pro/aftermath.js +0 -6
- package/js/src/pro/alpaca.js +0 -6
- package/js/src/pro/apex.js +0 -6
- package/js/src/pro/arkham.js +0 -6
- package/js/src/pro/ascendex.js +0 -6
- package/js/src/pro/aster.d.ts +1 -1
- package/js/src/pro/aster.js +23 -48
- package/js/src/pro/backpack.js +0 -6
- package/js/src/pro/bequant.js +0 -6
- package/js/src/pro/binance.js +1 -7
- package/js/src/pro/binancecoinm.js +0 -6
- package/js/src/pro/binanceus.js +0 -6
- package/js/src/pro/binanceusdm.js +0 -6
- package/js/src/pro/bingx.js +0 -6
- package/js/src/pro/bitfinex.js +0 -6
- package/js/src/pro/bitget.js +0 -6
- package/js/src/pro/bithumb.js +0 -6
- package/js/src/pro/bitmart.js +0 -6
- package/js/src/pro/bitmex.js +0 -6
- package/js/src/pro/bitopro.js +0 -6
- package/js/src/pro/bitrue.js +0 -6
- package/js/src/pro/bitstamp.js +0 -6
- package/js/src/pro/bittrade.js +0 -6
- package/js/src/pro/bitvavo.js +0 -6
- package/js/src/pro/blockchaincom.js +0 -6
- package/js/src/pro/blofin.js +0 -6
- package/js/src/pro/bullish.js +0 -6
- package/js/src/pro/bybit.js +0 -6
- package/js/src/pro/bydfi.js +0 -6
- package/js/src/pro/cex.js +0 -6
- package/js/src/pro/coinbase.js +0 -6
- package/js/src/pro/coinbaseadvanced.js +0 -6
- package/js/src/pro/coinbaseexchange.js +0 -6
- package/js/src/pro/coinbaseinternational.js +0 -6
- package/js/src/pro/coincheck.js +0 -6
- package/js/src/pro/coinex.js +0 -6
- package/js/src/pro/coinone.js +0 -6
- package/js/src/pro/cryptocom.js +0 -6
- package/js/src/pro/deepcoin.js +0 -6
- package/js/src/pro/deribit.js +0 -6
- package/js/src/pro/derive.js +0 -6
- package/js/src/pro/dydx.js +0 -6
- package/js/src/pro/exmo.js +0 -6
- package/js/src/pro/gate.d.ts +1 -0
- package/js/src/pro/gate.js +77 -12
- package/js/src/pro/gateio.js +0 -6
- package/js/src/pro/gemini.js +0 -6
- package/js/src/pro/grvt.js +4 -11
- package/js/src/pro/hashkey.js +0 -6
- package/js/src/pro/hitbtc.js +0 -6
- package/js/src/pro/hollaex.js +0 -6
- package/js/src/pro/htx.js +0 -6
- package/js/src/pro/huobi.js +0 -6
- package/js/src/pro/hyperliquid.d.ts +48 -1
- package/js/src/pro/hyperliquid.js +362 -8
- package/js/src/pro/independentreserve.js +0 -6
- package/js/src/pro/kraken.js +0 -6
- package/js/src/pro/krakenfutures.js +0 -6
- package/js/src/pro/kucoin.d.ts +65 -6
- package/js/src/pro/kucoin.js +1190 -109
- package/js/src/pro/kucoinfutures.js +0 -7
- package/js/src/pro/lbank.js +0 -6
- package/js/src/pro/lighter.js +1 -6
- package/js/src/pro/luno.js +0 -6
- package/js/src/pro/mexc.js +0 -6
- package/js/src/pro/modetrade.js +0 -6
- package/js/src/pro/myokx.js +0 -6
- package/js/src/pro/ndax.js +0 -6
- package/js/src/pro/okx.js +0 -6
- package/js/src/pro/okxus.js +0 -6
- package/js/src/pro/onetrading.js +0 -6
- package/js/src/pro/oxfun.js +0 -6
- package/js/src/pro/p2b.js +0 -6
- package/js/src/pro/pacifica.js +0 -6
- package/js/src/pro/paradex.js +0 -6
- package/js/src/pro/phemex.js +0 -6
- package/js/src/pro/poloniex.js +0 -6
- package/js/src/pro/toobit.js +0 -6
- package/js/src/pro/upbit.js +0 -6
- package/js/src/pro/weex.js +0 -6
- package/js/src/pro/whitebit.js +0 -6
- package/js/src/pro/woo.js +0 -6
- package/js/src/pro/woofipro.js +0 -6
- package/js/src/pro/xt.js +0 -6
- package/js/src/protobuf/mexc/compiled.cjs +0 -6
- package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +0 -6
- package/js/src/static_dependencies/dydx-v4-client/onboarding.js +0 -6
- package/js/src/static_dependencies/dydx-v4-client/registry.js +0 -6
- package/js/src/static_dependencies/ethers/abi-coder.js +0 -6
- package/js/src/static_dependencies/ethers/address/address.js +0 -6
- package/js/src/static_dependencies/ethers/address/checks.js +0 -6
- package/js/src/static_dependencies/ethers/address/contract-address.js +0 -6
- package/js/src/static_dependencies/ethers/address/index.js +0 -6
- package/js/src/static_dependencies/ethers/bytes32.js +0 -6
- package/js/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
- package/js/src/static_dependencies/ethers/coders/address.js +0 -6
- package/js/src/static_dependencies/ethers/coders/anonymous.js +0 -6
- package/js/src/static_dependencies/ethers/coders/array.js +0 -6
- package/js/src/static_dependencies/ethers/coders/boolean.js +0 -6
- package/js/src/static_dependencies/ethers/coders/bytes.js +0 -6
- package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -6
- package/js/src/static_dependencies/ethers/coders/null.js +0 -6
- package/js/src/static_dependencies/ethers/coders/number.js +0 -6
- package/js/src/static_dependencies/ethers/coders/string.js +0 -6
- package/js/src/static_dependencies/ethers/coders/tuple.js +0 -6
- package/js/src/static_dependencies/ethers/fragments.js +0 -6
- package/js/src/static_dependencies/ethers/hash/index.js +0 -6
- package/js/src/static_dependencies/ethers/hash/solidity.js +0 -6
- package/js/src/static_dependencies/ethers/hash/typed-data.js +0 -6
- package/js/src/static_dependencies/ethers/index.js +0 -6
- package/js/src/static_dependencies/ethers/interface.js +0 -6
- package/js/src/static_dependencies/ethers/typed.js +0 -6
- package/js/src/static_dependencies/ethers/utils/base58.js +0 -6
- package/js/src/static_dependencies/ethers/utils/base64-browser.js +0 -6
- package/js/src/static_dependencies/ethers/utils/base64.js +0 -6
- package/js/src/static_dependencies/ethers/utils/data.js +0 -6
- package/js/src/static_dependencies/ethers/utils/errors.js +0 -6
- package/js/src/static_dependencies/ethers/utils/events.js +0 -6
- package/js/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
- package/js/src/static_dependencies/ethers/utils/index.js +0 -6
- package/js/src/static_dependencies/ethers/utils/maths.js +0 -6
- package/js/src/static_dependencies/ethers/utils/properties.js +0 -6
- package/js/src/static_dependencies/ethers/utils/rlp-decode.js +0 -6
- package/js/src/static_dependencies/ethers/utils/rlp-encode.js +0 -6
- package/js/src/static_dependencies/ethers/utils/rlp.js +0 -6
- package/js/src/static_dependencies/ethers/utils/units.js +0 -6
- package/js/src/static_dependencies/ethers/utils/utf8.js +0 -6
- package/js/src/static_dependencies/ethers/utils/uuid.js +0 -6
- package/js/src/static_dependencies/fflake/browser.js +0 -6
- package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -6
- package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -6
- package/js/src/static_dependencies/jsencrypt/index.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -6
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
- package/js/src/static_dependencies/messagepack/msgpack.js +0 -6
- package/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
- package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -6
- package/js/src/static_dependencies/noble-curves/bn.js +0 -6
- package/js/src/static_dependencies/noble-curves/ed25519.js +0 -6
- package/js/src/static_dependencies/noble-curves/ed448.js +0 -6
- package/js/src/static_dependencies/noble-curves/index.js +0 -6
- package/js/src/static_dependencies/noble-curves/jubjub.js +0 -6
- package/js/src/static_dependencies/noble-curves/p256.js +0 -6
- package/js/src/static_dependencies/noble-curves/p384.js +0 -6
- package/js/src/static_dependencies/noble-curves/p521.js +0 -6
- package/js/src/static_dependencies/noble-curves/pasta.js +0 -6
- package/js/src/static_dependencies/noble-curves/secp256k1.js +0 -6
- package/js/src/static_dependencies/noble-hashes/_assert.js +0 -6
- package/js/src/static_dependencies/noble-hashes/_blake2.js +0 -6
- package/js/src/static_dependencies/noble-hashes/_sha2.js +0 -6
- package/js/src/static_dependencies/noble-hashes/_u64.js +0 -6
- package/js/src/static_dependencies/noble-hashes/argon2.js +0 -6
- package/js/src/static_dependencies/noble-hashes/blake2b.js +0 -6
- package/js/src/static_dependencies/noble-hashes/blake2s.js +0 -6
- package/js/src/static_dependencies/noble-hashes/blake3.js +0 -6
- package/js/src/static_dependencies/noble-hashes/crypto.js +0 -6
- package/js/src/static_dependencies/noble-hashes/cryptoNode.js +0 -6
- package/js/src/static_dependencies/noble-hashes/eskdf.js +0 -6
- package/js/src/static_dependencies/noble-hashes/hkdf.js +0 -6
- package/js/src/static_dependencies/noble-hashes/hmac.js +0 -6
- package/js/src/static_dependencies/noble-hashes/index.js +0 -6
- package/js/src/static_dependencies/noble-hashes/md5.js +0 -6
- package/js/src/static_dependencies/noble-hashes/pbkdf2.js +0 -6
- package/js/src/static_dependencies/noble-hashes/ripemd160.js +0 -6
- package/js/src/static_dependencies/noble-hashes/scrypt.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha1.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha256.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha3-addons.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha3.js +0 -6
- package/js/src/static_dependencies/noble-hashes/sha512.js +0 -6
- package/js/src/static_dependencies/noble-hashes/utils.js +0 -6
- package/js/src/static_dependencies/node-fetch/body.js +0 -6
- package/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -6
- package/js/src/static_dependencies/node-fetch/errors/base.js +0 -6
- package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -6
- package/js/src/static_dependencies/node-fetch/headers.js +0 -6
- package/js/src/static_dependencies/node-fetch/index.js +0 -6
- package/js/src/static_dependencies/node-fetch/request.js +0 -6
- package/js/src/static_dependencies/node-fetch/response.js +0 -6
- package/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
- package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
- package/js/src/static_dependencies/node-fetch/utils/is.js +0 -6
- package/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -6
- package/js/src/static_dependencies/proxies/agent-base/helpers.js +0 -6
- package/js/src/static_dependencies/proxies/agent-base/index.js +0 -6
- package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -6
- package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -6
- package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
- package/js/src/static_dependencies/qs/formats.js +0 -6
- package/js/src/static_dependencies/qs/index.js +0 -6
- package/js/src/static_dependencies/qs/parse.js +0 -6
- package/js/src/static_dependencies/qs/stringify.js +0 -6
- package/js/src/static_dependencies/qs/utils.js +0 -6
- package/js/src/static_dependencies/scure-base/index.js +0 -6
- package/js/src/static_dependencies/scure-bip32/index.js +0 -6
- package/js/src/static_dependencies/scure-bip39/index.js +0 -6
- package/js/src/static_dependencies/scure-bip39/wordlists/english.js +0 -6
- package/js/src/static_dependencies/scure-starknet/index.js +0 -6
- package/js/src/static_dependencies/starknet/constants.js +0 -6
- package/js/src/static_dependencies/starknet/index.js +0 -6
- package/js/src/static_dependencies/starknet/types/cairoEnum.js +0 -6
- package/js/src/static_dependencies/starknet/types/calldata.js +0 -6
- package/js/src/static_dependencies/starknet/types/index.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +0 -6
- package/js/src/static_dependencies/starknet/types/lib/index.js +0 -6
- package/js/src/static_dependencies/starknet/types/typedData.js +0 -6
- package/js/src/static_dependencies/starknet/utils/address.js +0 -6
- package/js/src/static_dependencies/starknet/utils/assert.js +0 -6
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +0 -6
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +0 -6
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/index.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +0 -6
- package/js/src/static_dependencies/starknet/utils/calldata/validate.js +0 -6
- package/js/src/static_dependencies/starknet/utils/encode.js +0 -6
- package/js/src/static_dependencies/starknet/utils/hash/classHash.js +0 -6
- package/js/src/static_dependencies/starknet/utils/hash/index.js +0 -6
- package/js/src/static_dependencies/starknet/utils/merkle.js +0 -6
- package/js/src/static_dependencies/starknet/utils/num.js +0 -6
- package/js/src/static_dependencies/starknet/utils/selector.js +0 -6
- package/js/src/static_dependencies/starknet/utils/shortString.js +0 -6
- package/js/src/static_dependencies/starknet/utils/starknetId.js +0 -6
- package/js/src/static_dependencies/starknet/utils/typedData.js +0 -6
- package/js/src/static_dependencies/starknet/utils/uint256.js +0 -6
- package/js/src/static_dependencies/starknet/utils/url.js +0 -6
- package/js/src/static_dependencies/watchable/src/index.js +0 -6
- package/js/src/static_dependencies/watchable/src/types.js +0 -6
- package/js/src/static_dependencies/watchable/src/unpromise.js +0 -6
- package/js/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
- package/js/src/tokocrypto.js +0 -6
- package/js/src/toobit.js +0 -6
- package/js/src/upbit.js +0 -6
- package/js/src/wavesexchange.js +0 -6
- package/js/src/weex.js +1 -7
- package/js/src/whitebit.js +2 -6
- package/js/src/woo.js +0 -6
- package/js/src/woofipro.js +0 -6
- package/js/src/xt.js +0 -6
- package/js/src/yobit.js +0 -6
- package/js/src/zaif.js +0 -6
- package/js/src/zebpay.js +0 -6
- package/js/src/zonda.js +0 -6
- package/package.json +1 -1
package/dist/cjs/src/lighter.js
CHANGED
|
@@ -6,8 +6,11 @@ var lighter$1 = require('./abstract/lighter.js');
|
|
|
6
6
|
var errors = require('./base/errors.js');
|
|
7
7
|
var number = require('./base/functions/number.js');
|
|
8
8
|
var Precise = require('./base/Precise.js');
|
|
9
|
+
var crypto = require('./base/functions/crypto.js');
|
|
10
|
+
var sha3 = require('./static_dependencies/noble-hashes/sha3.js');
|
|
11
|
+
var secp256k1 = require('./static_dependencies/noble-curves/secp256k1.js');
|
|
9
12
|
|
|
10
|
-
//
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
11
14
|
// ---------------------------------------------------------------------------
|
|
12
15
|
/**
|
|
13
16
|
* @class lighter
|
|
@@ -24,6 +27,7 @@ class lighter extends lighter$1["default"] {
|
|
|
24
27
|
'certified': false,
|
|
25
28
|
'pro': true,
|
|
26
29
|
'dex': true,
|
|
30
|
+
'quoteJsonNumbers': false,
|
|
27
31
|
'has': {
|
|
28
32
|
'CORS': undefined,
|
|
29
33
|
'spot': false,
|
|
@@ -246,6 +250,7 @@ class lighter extends lighter$1["default"] {
|
|
|
246
250
|
'httpExceptions': {},
|
|
247
251
|
'exceptions': {
|
|
248
252
|
'exact': {
|
|
253
|
+
'21146': errors.ExchangeError,
|
|
249
254
|
'21500': errors.ExchangeError,
|
|
250
255
|
'21501': errors.ExchangeError,
|
|
251
256
|
'21502': errors.ExchangeError,
|
|
@@ -339,11 +344,16 @@ class lighter extends lighter$1["default"] {
|
|
|
339
344
|
'commonCurrencies': {},
|
|
340
345
|
'options': {
|
|
341
346
|
'defaultType': 'swap',
|
|
347
|
+
'builderFee': true,
|
|
342
348
|
'chainId': 304,
|
|
343
349
|
'accountIndex': undefined,
|
|
344
350
|
'apiKeyIndex': undefined,
|
|
351
|
+
'lighterPrivateKey': undefined,
|
|
345
352
|
'wasmExecPath': undefined,
|
|
346
353
|
'libraryPath': undefined,
|
|
354
|
+
'integratorAccountIndex': 718718,
|
|
355
|
+
'integratorMakerFee': 1000,
|
|
356
|
+
'integratorTakerFee': 1000,
|
|
347
357
|
'authDeadlineExpiry': 28800,
|
|
348
358
|
'authDeadlineMinimumRemaining': 60,
|
|
349
359
|
},
|
|
@@ -369,16 +379,66 @@ class lighter extends lighter$1["default"] {
|
|
|
369
379
|
});
|
|
370
380
|
}
|
|
371
381
|
async loadAccount(chainId, privateKey, apiKeyIndex, accountIndex, params = {}) {
|
|
372
|
-
|
|
382
|
+
this.initAuthObject(accountIndex, apiKeyIndex);
|
|
383
|
+
const cachedAuths = this.safeDict(this.options['auths'][accountIndex], apiKeyIndex);
|
|
384
|
+
let signer = this.safeValue(cachedAuths, 'signer');
|
|
373
385
|
if (signer !== undefined) {
|
|
374
386
|
return signer;
|
|
375
387
|
}
|
|
376
388
|
let libraryPath = undefined;
|
|
377
389
|
[libraryPath, params] = this.handleOptionAndParams(params, 'loadAccount', 'libraryPath');
|
|
378
|
-
|
|
379
|
-
|
|
390
|
+
const lighterPrivateKeyIsSet = (privateKey !== undefined) && (privateKey !== '');
|
|
391
|
+
if (lighterPrivateKeyIsSet && (libraryPath !== undefined) && (apiKeyIndex !== undefined) && (accountIndex !== undefined)) {
|
|
392
|
+
// load lighter library, and create lighter client
|
|
393
|
+
signer = await this.loadLighterLibrary(libraryPath, chainId, privateKey, this.parseToInt(apiKeyIndex), this.parseToInt(accountIndex), true);
|
|
394
|
+
this.options['auths'][accountIndex][apiKeyIndex]['signer'] = signer;
|
|
395
|
+
return signer;
|
|
396
|
+
}
|
|
397
|
+
const privateKeyIsSet = (this.privateKey !== undefined) && (this.privateKey !== '');
|
|
398
|
+
if (privateKeyIsSet && (apiKeyIndex !== undefined) && (accountIndex !== undefined)) {
|
|
399
|
+
if (this.privateKey.length > 66) {
|
|
400
|
+
throw new errors.NotSupported(this.id + ' after the latest update (v4.5.50), CCXT now expects the l1 private key to be provided in the credentials. Please check for more details: https://github.com/ccxt/ccxt/wiki/FAQ#how-to-use-the-lighter-exchange-in-ccxt');
|
|
401
|
+
}
|
|
402
|
+
// load lighter library without creating lighter client
|
|
403
|
+
signer = await this.loadLighterLibrary(libraryPath, chainId, '', this.parseToInt(apiKeyIndex), this.parseToInt(accountIndex), false);
|
|
404
|
+
this.options['auths'][accountIndex][apiKeyIndex]['signer'] = signer;
|
|
405
|
+
const res = await this.changeApiKey();
|
|
406
|
+
await this.handleBuilderFeeApproval(this.parseToInt(accountIndex), this.parseToInt(apiKeyIndex));
|
|
407
|
+
return res;
|
|
408
|
+
}
|
|
380
409
|
return signer;
|
|
381
410
|
}
|
|
411
|
+
initAuthObject(strAccountIndex, strApiKeyIndex) {
|
|
412
|
+
if (!('auths' in this.options)) {
|
|
413
|
+
this.options['auths'] = {};
|
|
414
|
+
}
|
|
415
|
+
if (!(strAccountIndex in this.options['auths'])) {
|
|
416
|
+
this.options['auths'][strAccountIndex] = {};
|
|
417
|
+
}
|
|
418
|
+
if (!(strApiKeyIndex in this.options['auths'][strAccountIndex])) {
|
|
419
|
+
this.options['auths'][strAccountIndex][strApiKeyIndex] = {
|
|
420
|
+
'signer': undefined,
|
|
421
|
+
'lighterPrivateKey': undefined,
|
|
422
|
+
'deadline': undefined,
|
|
423
|
+
'token': undefined,
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
getLighterPrivateKey(strAccountIndex, strApiKeyIndex) {
|
|
428
|
+
if (!('auths' in this.options)) {
|
|
429
|
+
return undefined;
|
|
430
|
+
}
|
|
431
|
+
if (!(strAccountIndex in this.options['auths'])) {
|
|
432
|
+
return undefined;
|
|
433
|
+
}
|
|
434
|
+
if (!(strApiKeyIndex in this.options['auths'][strAccountIndex])) {
|
|
435
|
+
return undefined;
|
|
436
|
+
}
|
|
437
|
+
if (!('lighterPrivateKey' in this.options['auths'][strAccountIndex][strApiKeyIndex])) {
|
|
438
|
+
return undefined;
|
|
439
|
+
}
|
|
440
|
+
return this.options['auths'][strAccountIndex][strApiKeyIndex]['lighterPrivateKey'];
|
|
441
|
+
}
|
|
382
442
|
/**
|
|
383
443
|
* @method
|
|
384
444
|
* @name lighter#preLoadLighterLibrary
|
|
@@ -387,31 +447,47 @@ class lighter extends lighter$1["default"] {
|
|
|
387
447
|
* @returns {boolean} true if the signer was loaded, false otherwise
|
|
388
448
|
*/
|
|
389
449
|
async preLoadLighterLibrary(params = {}) {
|
|
390
|
-
let
|
|
450
|
+
let apiKeyIndex = undefined;
|
|
451
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'loadAccount', 'apiKeyIndex', 'api_key_index');
|
|
452
|
+
let accountIndex = undefined;
|
|
453
|
+
[accountIndex, params] = await this.handleAccountIndex(params, 'loadAccount', 'accountIndex', 'account_index');
|
|
454
|
+
if (accountIndex === undefined) {
|
|
455
|
+
throw new errors.ArgumentsRequired(this.id + ' requires accountIndex or account_index');
|
|
456
|
+
}
|
|
457
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
458
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
459
|
+
this.initAuthObject(strAccountIndex, strApiKeyIndex);
|
|
460
|
+
let signer = this.safeDict(this.options['auths'][strAccountIndex][strApiKeyIndex], 'signer');
|
|
391
461
|
if (signer !== undefined) {
|
|
392
462
|
return true;
|
|
393
463
|
}
|
|
394
|
-
|
|
395
|
-
|
|
464
|
+
signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex);
|
|
465
|
+
await this.handleBuilderFeeApproval(accountIndex, apiKeyIndex);
|
|
466
|
+
return (signer !== undefined);
|
|
467
|
+
}
|
|
468
|
+
handleApiKeyIndex(params, methodName1, optionName1, optionName2, defaultValue = undefined) {
|
|
396
469
|
let apiKeyIndex = undefined;
|
|
397
|
-
[apiKeyIndex, params] = this.handleOptionAndParams2(params,
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
signer = await this.loadLighterLibrary(libraryPath, this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex);
|
|
403
|
-
this.options['signer'] = signer;
|
|
404
|
-
return true;
|
|
470
|
+
[apiKeyIndex, params] = this.handleOptionAndParams2(params, methodName1, optionName1, optionName2, defaultValue);
|
|
471
|
+
if ((apiKeyIndex === undefined) || (apiKeyIndex < 4) || (apiKeyIndex > 254)) {
|
|
472
|
+
// apiKeyIndex = this.randNumber (2);
|
|
473
|
+
apiKeyIndex = 254;
|
|
474
|
+
this.options['apiKeyIndex'] = apiKeyIndex; // default to a value to avoid overriding other keys
|
|
405
475
|
}
|
|
406
|
-
return
|
|
476
|
+
return [this.parseToInt(apiKeyIndex), params];
|
|
407
477
|
}
|
|
408
478
|
async handleAccountIndex(params, methodName1, optionName1, optionName2, defaultValue = undefined) {
|
|
409
479
|
let accountIndex = undefined;
|
|
410
480
|
[accountIndex, params] = this.handleOptionAndParams2(params, methodName1, optionName1, optionName2, defaultValue);
|
|
411
481
|
if (accountIndex === undefined) {
|
|
412
|
-
|
|
482
|
+
let walletAddress = this.walletAddress;
|
|
483
|
+
if (this.privateKey !== undefined) {
|
|
484
|
+
if (this.privateKey.length > 66) {
|
|
485
|
+
throw new errors.NotSupported(this.id + ' after the latest update (v4.5.50), CCXT now expects the l1 private key to be provided in the credentials. Please check for more details: https://github.com/ccxt/ccxt/wiki/FAQ#how-to-use-the-lighter-exchange-in-ccxt');
|
|
486
|
+
}
|
|
487
|
+
walletAddress = this.ethGetAddressFromPrivateKey(this.privateKey);
|
|
488
|
+
}
|
|
413
489
|
if (walletAddress === undefined || walletAddress === '') {
|
|
414
|
-
throw new errors.ArgumentsRequired(this.id + ' ' + methodName1 + '() requires an ' + optionName1 + '/' + optionName2 + ' parameter or walletAddress to fetch accountIndex');
|
|
490
|
+
throw new errors.ArgumentsRequired(this.id + ' ' + methodName1 + '() requires an ' + optionName1 + '/' + optionName2 + ' parameter or walletAddress to fetch accountIndex. Alternatively set privateKey in credentials to enable automatic walletAddress detection.');
|
|
415
491
|
}
|
|
416
492
|
const res = await this.publicGetAccountsByL1Address({ 'l1_address': walletAddress });
|
|
417
493
|
//
|
|
@@ -451,19 +527,18 @@ class lighter extends lighter$1["default"] {
|
|
|
451
527
|
}
|
|
452
528
|
async createSubAccount(name, params = {}) {
|
|
453
529
|
let apiKeyIndex = undefined;
|
|
454
|
-
[apiKeyIndex, params] = this.
|
|
455
|
-
if (apiKeyIndex === undefined) {
|
|
456
|
-
throw new errors.ArgumentsRequired(this.id + ' createSubAccount() requires an apiKeyIndex parameter');
|
|
457
|
-
}
|
|
530
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'createSubAccount', 'apiKeyIndex', 'api_key_index');
|
|
458
531
|
let accountIndex = undefined;
|
|
459
532
|
[accountIndex, params] = await this.handleAccountIndex(params, 'createSubAccount', 'accountIndex', 'account_index');
|
|
460
|
-
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex);
|
|
533
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
461
534
|
const signRaw = {
|
|
462
535
|
'nonce': nonce,
|
|
463
536
|
'api_key_index': apiKeyIndex,
|
|
464
537
|
'account_index': accountIndex,
|
|
465
538
|
};
|
|
466
|
-
const
|
|
539
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
540
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
541
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
467
542
|
const [txType, txInfo] = this.lighterSignCreateSubAccount(signer, this.extend(signRaw, params));
|
|
468
543
|
const request = {
|
|
469
544
|
'tx_type': txType,
|
|
@@ -473,15 +548,15 @@ class lighter extends lighter$1["default"] {
|
|
|
473
548
|
}
|
|
474
549
|
createAuth(params = {}) {
|
|
475
550
|
// don't omit [accountIndex, apiKeyIndex], request may need them
|
|
476
|
-
let apiKeyIndex = this.
|
|
551
|
+
let apiKeyIndex = this.safeString2(params, 'apiKeyIndex', 'api_key_index');
|
|
477
552
|
if (apiKeyIndex === undefined) {
|
|
478
553
|
const res = this.handleOptionAndParams2({}, 'createAuth', 'apiKeyIndex', 'api_key_index');
|
|
479
|
-
apiKeyIndex = this.
|
|
554
|
+
apiKeyIndex = this.safeString(res, 0);
|
|
480
555
|
}
|
|
481
|
-
let accountIndex = this.
|
|
556
|
+
let accountIndex = this.safeString2(params, 'accountIndex', 'account_index');
|
|
482
557
|
if (accountIndex === undefined) {
|
|
483
558
|
const res = this.handleOptionAndParams2({}, 'createAuth', 'accountIndex', 'account_index');
|
|
484
|
-
accountIndex = this.
|
|
559
|
+
accountIndex = this.safeString(res, 0);
|
|
485
560
|
}
|
|
486
561
|
const auths = this.safeDict(this.options, 'auths');
|
|
487
562
|
const accountAuths = this.safeDict(auths, accountIndex);
|
|
@@ -496,20 +571,12 @@ class lighter extends lighter$1["default"] {
|
|
|
496
571
|
const deadline = this.seconds() + this.safeInteger(this.options, 'authDeadlineExpiry');
|
|
497
572
|
const request = {
|
|
498
573
|
'deadline': deadline,
|
|
499
|
-
'api_key_index': apiKeyIndex,
|
|
500
|
-
'account_index': accountIndex,
|
|
501
|
-
};
|
|
502
|
-
const token = this.lighterCreateAuthToken(this.safeValue(this.options, 'signer'), request);
|
|
503
|
-
if (!('auths' in this.options)) {
|
|
504
|
-
this.options['auths'] = {};
|
|
505
|
-
}
|
|
506
|
-
if (!(accountIndex in this.options['auths'])) {
|
|
507
|
-
this.options['auths'][accountIndex] = {};
|
|
508
|
-
}
|
|
509
|
-
this.options['auths'][accountIndex][apiKeyIndex] = {
|
|
510
|
-
'deadline': deadline,
|
|
511
|
-
'token': token,
|
|
574
|
+
'api_key_index': this.parseToInt(apiKeyIndex),
|
|
575
|
+
'account_index': this.parseToInt(accountIndex),
|
|
512
576
|
};
|
|
577
|
+
const token = this.lighterCreateAuthToken(this.options['auths'][accountIndex][apiKeyIndex]['signer'], request);
|
|
578
|
+
this.options['auths'][accountIndex][apiKeyIndex]['deadline'] = deadline;
|
|
579
|
+
this.options['auths'][accountIndex][apiKeyIndex]['token'] = token;
|
|
513
580
|
return token;
|
|
514
581
|
}
|
|
515
582
|
pow(n, m) {
|
|
@@ -529,6 +596,104 @@ class lighter extends lighter$1["default"] {
|
|
|
529
596
|
}
|
|
530
597
|
return r;
|
|
531
598
|
}
|
|
599
|
+
hashMessage(message) {
|
|
600
|
+
const binaryMessage = this.encode(message);
|
|
601
|
+
const binaryMessageLength = this.binaryLength(binaryMessage);
|
|
602
|
+
const x19 = this.base16ToBinary('19');
|
|
603
|
+
const newline = this.base16ToBinary('0a');
|
|
604
|
+
const prefix = this.binaryConcat(x19, this.encode('Ethereum Signed Message:'), newline, this.encode(this.numberToString(binaryMessageLength)));
|
|
605
|
+
return '0x' + this.hash(this.binaryConcat(prefix, binaryMessage), sha3.keccak_256, 'hex');
|
|
606
|
+
}
|
|
607
|
+
signHash(hash, privateKey) {
|
|
608
|
+
this.checkRequiredCredentials();
|
|
609
|
+
const signature = crypto.ecdsa(hash.slice(-64), privateKey.slice(-64), secp256k1.secp256k1, undefined);
|
|
610
|
+
const r = signature['r'];
|
|
611
|
+
const s = signature['s'];
|
|
612
|
+
const v = this.intToBase16(this.sum(27, signature['v']));
|
|
613
|
+
return '0x' + r.padStart(64, '0') + s.padStart(64, '0') + v;
|
|
614
|
+
}
|
|
615
|
+
signL1AndPrepareTxInfo(txInfo, message, privateKey) {
|
|
616
|
+
const hashMessage = this.hashMessage(message);
|
|
617
|
+
const signature = this.signHash(hashMessage, privateKey);
|
|
618
|
+
const decTxInfo = this.parseJson(txInfo);
|
|
619
|
+
decTxInfo['L1Sig'] = signature;
|
|
620
|
+
return this.json(decTxInfo);
|
|
621
|
+
}
|
|
622
|
+
async handleBuilderFeeApproval(accountIndex, apiKeyIndex) {
|
|
623
|
+
const buildFee = this.safeBool(this.options, 'builderFee', true);
|
|
624
|
+
if (!buildFee) {
|
|
625
|
+
return false;
|
|
626
|
+
}
|
|
627
|
+
const approvedBuilderFee = this.safeBool(this.options, 'approvedBuilderFee', false);
|
|
628
|
+
if (approvedBuilderFee) {
|
|
629
|
+
return true;
|
|
630
|
+
}
|
|
631
|
+
try {
|
|
632
|
+
const builder = this.safeInteger(this.options, 'integratorAccountIndex', 718718);
|
|
633
|
+
const takerFeeRate = this.safeInteger(this.options, 'integratorTakerFee', 1000);
|
|
634
|
+
const makerFeeRate = this.safeInteger(this.options, 'integratorMakerFee', 1000);
|
|
635
|
+
await this.approveBuilderFee(builder, takerFeeRate, makerFeeRate, accountIndex, apiKeyIndex);
|
|
636
|
+
this.options['approvedBuilderFee'] = true;
|
|
637
|
+
}
|
|
638
|
+
catch (e) {
|
|
639
|
+
this.options['builderFee'] = false;
|
|
640
|
+
}
|
|
641
|
+
return true;
|
|
642
|
+
}
|
|
643
|
+
async approveBuilderFee(builder, takerFeeRate, makerFeeRate, accountIndex, apiKeyIndex, params = {}) {
|
|
644
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
645
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
646
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
647
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, this.extend(params, { 'skipNonce': false }));
|
|
648
|
+
const expiry = this.milliseconds() + 365 * 864000;
|
|
649
|
+
const signRaw = {
|
|
650
|
+
'integrator_account_index': builder,
|
|
651
|
+
'integrator_taker_fee': takerFeeRate,
|
|
652
|
+
'integrator_maker_fee': makerFeeRate,
|
|
653
|
+
'approval_expiry': expiry,
|
|
654
|
+
'nonce': nonce,
|
|
655
|
+
'api_key_index': apiKeyIndex,
|
|
656
|
+
'account_index': accountIndex,
|
|
657
|
+
};
|
|
658
|
+
const [txType, txInfo, messageToSign] = this.lighterSignApproveIntegrator(signer, this.extend(signRaw, params));
|
|
659
|
+
const newTxInfo = this.signL1AndPrepareTxInfo(txInfo, messageToSign, this.privateKey);
|
|
660
|
+
const request = {
|
|
661
|
+
'tx_type': txType,
|
|
662
|
+
'tx_info': newTxInfo,
|
|
663
|
+
};
|
|
664
|
+
const response = await this.publicPostSendTx(request);
|
|
665
|
+
return response;
|
|
666
|
+
}
|
|
667
|
+
async changeApiKey(params = {}) {
|
|
668
|
+
let apiKeyIndex = undefined;
|
|
669
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'changeApiKey', 'apiKeyIndex', 'api_key_index');
|
|
670
|
+
let accountIndex = undefined;
|
|
671
|
+
[accountIndex, params] = await this.handleAccountIndex(params, 'changeApiKey', 'accountIndex', 'account_index');
|
|
672
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
673
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
674
|
+
const signerNotLoad = this.options['auths'][strAccountIndex][strApiKeyIndex]['signer'];
|
|
675
|
+
const [privateKey, publicKey] = this.lighterGenerateApiKey(signerNotLoad);
|
|
676
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, this.extend(params, { 'skipNonce': false }));
|
|
677
|
+
const signRaw = {
|
|
678
|
+
'pubkey': this.encode(publicKey),
|
|
679
|
+
'nonce': nonce,
|
|
680
|
+
'api_key_index': apiKeyIndex,
|
|
681
|
+
'account_index': accountIndex,
|
|
682
|
+
};
|
|
683
|
+
// create lighter client
|
|
684
|
+
const signer = this.lighterCreateClient(signerNotLoad, this.options['chainId'], privateKey, apiKeyIndex, accountIndex);
|
|
685
|
+
const [txType, txInfo, messageToSign] = this.lighterSignChangePubkey(signer, this.extend(signRaw, params));
|
|
686
|
+
const newTxInfo = this.signL1AndPrepareTxInfo(txInfo, messageToSign, this.privateKey);
|
|
687
|
+
const request = {
|
|
688
|
+
'tx_type': txType,
|
|
689
|
+
'tx_info': newTxInfo,
|
|
690
|
+
};
|
|
691
|
+
await this.publicPostSendTx(request);
|
|
692
|
+
this.options['auths'][strAccountIndex][strApiKeyIndex]['lighterPrivateKey'] = privateKey;
|
|
693
|
+
this.options['auths'][strAccountIndex][strApiKeyIndex]['signer'] = signer; // reassign signer in go
|
|
694
|
+
await this.handleBuilderFeeApproval(accountIndex, apiKeyIndex);
|
|
695
|
+
return signer;
|
|
696
|
+
}
|
|
532
697
|
setSandboxMode(enable) {
|
|
533
698
|
super.setSandboxMode(enable);
|
|
534
699
|
this.options['sandboxMode'] = enable;
|
|
@@ -566,14 +731,13 @@ class lighter extends lighter$1["default"] {
|
|
|
566
731
|
let apiKeyIndex = undefined;
|
|
567
732
|
let accountIndex = undefined;
|
|
568
733
|
let orderExpiry = undefined;
|
|
569
|
-
[apiKeyIndex, params] = this.
|
|
570
|
-
if (apiKeyIndex === undefined) {
|
|
571
|
-
throw new errors.ArgumentsRequired(this.id + ' createOrder() requires an apiKeyIndex parameter');
|
|
572
|
-
}
|
|
734
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'createOrder', 'apiKeyIndex', 'api_key_index');
|
|
573
735
|
[accountIndex, params] = this.handleOptionAndParams2(params, 'createOrder', 'accountIndex', 'account_index');
|
|
574
736
|
[nonce, params] = this.handleOptionAndParams(params, 'createOrder', 'nonce');
|
|
575
737
|
[orderExpiry, params] = this.handleOptionAndParams(params, 'createOrder', 'orderExpiry', 0);
|
|
576
|
-
|
|
738
|
+
if (nonce !== undefined) {
|
|
739
|
+
request['nonce'] = nonce;
|
|
740
|
+
}
|
|
577
741
|
request['api_key_index'] = apiKeyIndex;
|
|
578
742
|
request['account_index'] = this.parseToInt(accountIndex);
|
|
579
743
|
const triggerPrice = this.safeString2(params, 'triggerPrice', 'stopPrice');
|
|
@@ -659,6 +823,11 @@ class lighter extends lighter$1["default"] {
|
|
|
659
823
|
request['base_amount'] = this.parseToInt(Precise["default"].stringMul(amountStr, amountScale));
|
|
660
824
|
request['avg_execution_price'] = this.parseToInt(Precise["default"].stringMul(priceStr, priceScale));
|
|
661
825
|
request['trigger_price'] = this.parseToInt(Precise["default"].stringMul(triggerPriceStr, priceScale));
|
|
826
|
+
if (this.safeBool(this.options, 'builderFee', true)) {
|
|
827
|
+
request['integrator_account_index'] = this.options['integratorAccountIndex'];
|
|
828
|
+
request['integrator_taker_fee'] = this.options['integratorTakerFee'];
|
|
829
|
+
request['integrator_maker_fee'] = this.options['integratorMakerFee'];
|
|
830
|
+
}
|
|
662
831
|
const orders = [];
|
|
663
832
|
orders.push(this.extend(request, params));
|
|
664
833
|
if (hasStopLoss || hasTakeProfit) {
|
|
@@ -708,6 +877,12 @@ class lighter extends lighter$1["default"] {
|
|
|
708
877
|
if (nonceInOptions !== undefined) {
|
|
709
878
|
return nonceInOptions;
|
|
710
879
|
}
|
|
880
|
+
// avoid skipNonce for l1 operations
|
|
881
|
+
let skipNonce = true;
|
|
882
|
+
[skipNonce, params] = this.handleOptionAndParams(params, 'fetchNonce', 'skipNonce', true);
|
|
883
|
+
if (skipNonce) {
|
|
884
|
+
return this.milliseconds();
|
|
885
|
+
}
|
|
711
886
|
const response = await this.publicGetNextNonce({ 'account_index': accountIndex, 'api_key_index': apiKeyIndex });
|
|
712
887
|
return this.safeInteger(response, 'nonce');
|
|
713
888
|
}
|
|
@@ -747,17 +922,14 @@ class lighter extends lighter$1["default"] {
|
|
|
747
922
|
if (totalOrderRequests > 0) {
|
|
748
923
|
order = orderRequests[0];
|
|
749
924
|
apiKeyIndex = order['api_key_index'];
|
|
750
|
-
if (order['nonce'] === undefined) {
|
|
751
|
-
const nonceInOptions = this.safeInteger(this.options, 'nonce');
|
|
752
|
-
if (nonceInOptions !== undefined) {
|
|
753
|
-
order['nonce'] = nonceInOptions;
|
|
754
|
-
}
|
|
755
|
-
else {
|
|
756
|
-
order['nonce'] = await this.fetchNonce(accountIndex, apiKeyIndex);
|
|
757
|
-
}
|
|
758
|
-
}
|
|
759
925
|
}
|
|
760
|
-
const
|
|
926
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
927
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
928
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
929
|
+
// the nonce could be updated
|
|
930
|
+
if (this.safeInteger(order, 'nonce') === undefined) {
|
|
931
|
+
order['nonce'] = await this.fetchNonce(accountIndex, apiKeyIndex);
|
|
932
|
+
}
|
|
761
933
|
let txType = undefined;
|
|
762
934
|
let txInfo = undefined;
|
|
763
935
|
if (totalOrderRequests < 2) {
|
|
@@ -771,6 +943,11 @@ class lighter extends lighter$1["default"] {
|
|
|
771
943
|
'api_key_index': apiKeyIndex,
|
|
772
944
|
'account_index': accountIndex,
|
|
773
945
|
};
|
|
946
|
+
if (this.safeBool(this.options, 'builderFee', true)) {
|
|
947
|
+
signingPayload['integrator_account_index'] = order['integrator_account_index'];
|
|
948
|
+
signingPayload['integrator_taker_fee'] = order['integrator_taker_fee'];
|
|
949
|
+
signingPayload['integrator_maker_fee'] = order['integrator_maker_fee'];
|
|
950
|
+
}
|
|
774
951
|
[txType, txInfo] = this.lighterSignCreateGroupedOrders(signer, signingPayload);
|
|
775
952
|
}
|
|
776
953
|
const request = {
|
|
@@ -804,17 +981,16 @@ class lighter extends lighter$1["default"] {
|
|
|
804
981
|
* @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure}
|
|
805
982
|
*/
|
|
806
983
|
async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
|
|
807
|
-
let apiKeyIndex = undefined;
|
|
808
|
-
[apiKeyIndex, params] = this.handleOptionAndParams2(params, 'editOrder', 'apiKeyIndex', 'api_key_index');
|
|
809
|
-
if (apiKeyIndex === undefined) {
|
|
810
|
-
throw new errors.ArgumentsRequired(this.id + ' editOrder() requires an apiKeyIndex parameter');
|
|
811
|
-
}
|
|
812
984
|
await this.loadMarkets();
|
|
985
|
+
let apiKeyIndex = undefined;
|
|
986
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'editOrder', 'apiKeyIndex', 'api_key_index');
|
|
813
987
|
let accountIndex = undefined;
|
|
814
988
|
[accountIndex, params] = await this.handleAccountIndex(params, 'editOrder', 'accountIndex', 'account_index');
|
|
989
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
990
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
991
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
815
992
|
const market = this.market(symbol);
|
|
816
993
|
const marketInfo = this.safeDict(market, 'info');
|
|
817
|
-
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex);
|
|
818
994
|
const amountScale = this.pow('10', marketInfo['size_decimals']);
|
|
819
995
|
const priceScale = this.pow('10', marketInfo['price_decimals']);
|
|
820
996
|
const triggerPrice = this.safeStringN(params, ['stopPrice', 'triggerPrice', 'stopLossPrice', 'takeProfitPrice']);
|
|
@@ -829,6 +1005,7 @@ class lighter extends lighter$1["default"] {
|
|
|
829
1005
|
else {
|
|
830
1006
|
amountStr = this.amountToPrecision(symbol, amount);
|
|
831
1007
|
}
|
|
1008
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
832
1009
|
const signRaw = {
|
|
833
1010
|
'market_index': this.parseToInt(market['id']),
|
|
834
1011
|
'index': this.parseToInt(id),
|
|
@@ -838,8 +1015,10 @@ class lighter extends lighter$1["default"] {
|
|
|
838
1015
|
'nonce': nonce,
|
|
839
1016
|
'api_key_index': apiKeyIndex,
|
|
840
1017
|
'account_index': accountIndex,
|
|
1018
|
+
'integrator_account_index': this.options['integratorAccountIndex'],
|
|
1019
|
+
'integrator_taker_fee': this.options['integratorTakerFee'],
|
|
1020
|
+
'integrator_maker_fee': this.options['integratorMakerFee'],
|
|
841
1021
|
};
|
|
842
|
-
const signer = await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
843
1022
|
const [txType, txInfo] = this.lighterSignModifyOrder(signer, this.extend(signRaw, params));
|
|
844
1023
|
const request = {
|
|
845
1024
|
'tx_type': txType,
|
|
@@ -1074,7 +1253,9 @@ class lighter extends lighter$1["default"] {
|
|
|
1074
1253
|
*/
|
|
1075
1254
|
async fetchCurrencies(params = {}) {
|
|
1076
1255
|
const response = await this.publicGetAssetDetails(params);
|
|
1077
|
-
|
|
1256
|
+
if (this.checkRequiredCredentials(false)) {
|
|
1257
|
+
await this.preLoadLighterLibrary();
|
|
1258
|
+
}
|
|
1078
1259
|
//
|
|
1079
1260
|
// {
|
|
1080
1261
|
// "code": 200,
|
|
@@ -1906,11 +2087,10 @@ class lighter extends lighter$1["default"] {
|
|
|
1906
2087
|
let accountIndex = undefined;
|
|
1907
2088
|
[accountIndex, params] = await this.handleAccountIndex(params, 'fetchOpenOrders', 'accountIndex', 'account_index');
|
|
1908
2089
|
let apiKeyIndex = undefined;
|
|
1909
|
-
[apiKeyIndex, params] = this.
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2090
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'fetchOpenOrders', 'apiKeyIndex', 'api_key_index');
|
|
2091
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
2092
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
2093
|
+
await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
1914
2094
|
const market = this.market(symbol);
|
|
1915
2095
|
const request = {
|
|
1916
2096
|
'market_id': market['id'],
|
|
@@ -1982,11 +2162,10 @@ class lighter extends lighter$1["default"] {
|
|
|
1982
2162
|
let accountIndex = undefined;
|
|
1983
2163
|
[accountIndex, params] = await this.handleAccountIndex(params, 'fetchClosedOrders', 'accountIndex', 'account_index');
|
|
1984
2164
|
let apiKeyIndex = undefined;
|
|
1985
|
-
[apiKeyIndex, params] = this.
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2165
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'fetchClosedOrders', 'apiKeyIndex', 'api_key_index');
|
|
2166
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
2167
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
2168
|
+
await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
1990
2169
|
const market = this.market(symbol);
|
|
1991
2170
|
const request = {
|
|
1992
2171
|
'market_id': market['id'],
|
|
@@ -2240,16 +2419,16 @@ class lighter extends lighter$1["default"] {
|
|
|
2240
2419
|
* @returns {object} a [transfer structure]{@link https://docs.ccxt.com/?id=transfer-structure}
|
|
2241
2420
|
*/
|
|
2242
2421
|
async transfer(code, amount, fromAccount, toAccount, params = {}) {
|
|
2243
|
-
let apiKeyIndex = undefined;
|
|
2244
|
-
[apiKeyIndex, params] = this.handleOptionAndParams2(params, 'transfer', 'apiKeyIndex', 'api_key_index');
|
|
2245
|
-
if (apiKeyIndex === undefined) {
|
|
2246
|
-
throw new errors.ArgumentsRequired(this.id + ' transfer() requires an apiKeyIndex parameter');
|
|
2247
|
-
}
|
|
2248
2422
|
await this.loadMarkets();
|
|
2423
|
+
let apiKeyIndex = undefined;
|
|
2424
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'transfer', 'apiKeyIndex', 'api_key_index');
|
|
2249
2425
|
let accountIndex = undefined;
|
|
2250
2426
|
[accountIndex, params] = await this.handleAccountIndex(params, 'transfer', 'accountIndex', 'account_index');
|
|
2251
2427
|
let toAccountIndex = undefined;
|
|
2252
2428
|
[toAccountIndex, params] = this.handleOptionAndParams2(params, 'transfer', 'toAccountIndex', 'to_account_index', accountIndex);
|
|
2429
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
2430
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
2431
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
2253
2432
|
const currency = this.currency(code);
|
|
2254
2433
|
if (currency['code'] === 'USDC') {
|
|
2255
2434
|
amount = this.parseToInt(Precise["default"].stringMul(this.pow('10', '6'), this.currencyToPrecision(code, amount)));
|
|
@@ -2262,9 +2441,9 @@ class lighter extends lighter$1["default"] {
|
|
|
2262
2441
|
}
|
|
2263
2442
|
const fromRouteType = (fromAccount === 'perp') ? 0 : 1; // 0: perp, 1: spot
|
|
2264
2443
|
const toRouteType = (toAccount === 'perp') ? 0 : 1;
|
|
2265
|
-
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex);
|
|
2266
2444
|
const memo = this.safeString(params, 'memo', '0x000000000000000000000000000000');
|
|
2267
2445
|
params = this.omit(params, ['memo']);
|
|
2446
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
2268
2447
|
const signRaw = {
|
|
2269
2448
|
'to_account_index': toAccountIndex,
|
|
2270
2449
|
'asset_index': this.parseToInt(currency['id']),
|
|
@@ -2277,7 +2456,6 @@ class lighter extends lighter$1["default"] {
|
|
|
2277
2456
|
'api_key_index': apiKeyIndex,
|
|
2278
2457
|
'account_index': accountIndex,
|
|
2279
2458
|
};
|
|
2280
|
-
const signer = await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2281
2459
|
const [txType, txInfo] = this.lighterSignTransfer(signer, this.extend(signRaw, params));
|
|
2282
2460
|
const request = {
|
|
2283
2461
|
'tx_type': txType,
|
|
@@ -2300,6 +2478,7 @@ class lighter extends lighter$1["default"] {
|
|
|
2300
2478
|
* @returns {object[]} a list of [transfer structures]{@link https://docs.ccxt.com/?id=transfer-structure}
|
|
2301
2479
|
*/
|
|
2302
2480
|
async fetchTransfers(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
2481
|
+
await this.loadMarkets();
|
|
2303
2482
|
let paginate = false;
|
|
2304
2483
|
[paginate, params] = this.handleOptionAndParams(params, 'fetchTransfers', 'paginate');
|
|
2305
2484
|
if (paginate) {
|
|
@@ -2311,11 +2490,10 @@ class lighter extends lighter$1["default"] {
|
|
|
2311
2490
|
'account_index': accountIndex,
|
|
2312
2491
|
};
|
|
2313
2492
|
let apiKeyIndex = undefined;
|
|
2314
|
-
[apiKeyIndex, params] = this.
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2493
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'fetchTransfers', 'apiKeyIndex', 'api_key_index');
|
|
2494
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
2495
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
2496
|
+
await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
2319
2497
|
let currency = undefined;
|
|
2320
2498
|
if (code !== undefined) {
|
|
2321
2499
|
currency = this.currency(code);
|
|
@@ -2402,6 +2580,7 @@ class lighter extends lighter$1["default"] {
|
|
|
2402
2580
|
* @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/?id=transaction-structure}
|
|
2403
2581
|
*/
|
|
2404
2582
|
async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
2583
|
+
await this.loadMarkets();
|
|
2405
2584
|
let paginate = false;
|
|
2406
2585
|
[paginate, params] = this.handleOptionAndParams(params, 'fetchDeposits', 'paginate');
|
|
2407
2586
|
if (paginate) {
|
|
@@ -2412,7 +2591,6 @@ class lighter extends lighter$1["default"] {
|
|
|
2412
2591
|
if (address === undefined) {
|
|
2413
2592
|
throw new errors.ArgumentsRequired(this.id + ' fetchDeposits() requires an address parameter');
|
|
2414
2593
|
}
|
|
2415
|
-
await this.loadMarkets();
|
|
2416
2594
|
let accountIndex = undefined;
|
|
2417
2595
|
[accountIndex, params] = await this.handleAccountIndex(params, 'fetchDeposits', 'accountIndex', 'account_index');
|
|
2418
2596
|
const request = {
|
|
@@ -2420,11 +2598,10 @@ class lighter extends lighter$1["default"] {
|
|
|
2420
2598
|
'l1_address': address,
|
|
2421
2599
|
};
|
|
2422
2600
|
let apiKeyIndex = undefined;
|
|
2423
|
-
[apiKeyIndex, params] = this.
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2601
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'fetchDeposits', 'apiKeyIndex', 'api_key_index');
|
|
2602
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
2603
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
2604
|
+
await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
2428
2605
|
let currency = undefined;
|
|
2429
2606
|
if (code !== undefined) {
|
|
2430
2607
|
currency = this.currency(code);
|
|
@@ -2481,11 +2658,10 @@ class lighter extends lighter$1["default"] {
|
|
|
2481
2658
|
'account_index': accountIndex,
|
|
2482
2659
|
};
|
|
2483
2660
|
let apiKeyIndex = undefined;
|
|
2484
|
-
[apiKeyIndex, params] = this.
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2661
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'fetchWithdrawals', 'apiKeyIndex', 'api_key_index');
|
|
2662
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
2663
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
2664
|
+
await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
2489
2665
|
let currency = undefined;
|
|
2490
2666
|
if (code !== undefined) {
|
|
2491
2667
|
currency = this.currency(code);
|
|
@@ -2595,14 +2771,14 @@ class lighter extends lighter$1["default"] {
|
|
|
2595
2771
|
* @returns {object} a [transaction structure]{@link https://docs.ccxt.com/?id=transaction-structure}
|
|
2596
2772
|
*/
|
|
2597
2773
|
async withdraw(code, amount, address, tag = undefined, params = {}) {
|
|
2598
|
-
let apiKeyIndex = undefined;
|
|
2599
|
-
[apiKeyIndex, params] = this.handleOptionAndParams2(params, 'withdraw', 'apiKeyIndex', 'api_key_index');
|
|
2600
|
-
if (apiKeyIndex === undefined) {
|
|
2601
|
-
throw new errors.ArgumentsRequired(this.id + ' withdraw() requires an apiKeyIndex parameter');
|
|
2602
|
-
}
|
|
2603
2774
|
await this.loadMarkets();
|
|
2775
|
+
let apiKeyIndex = undefined;
|
|
2776
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'withdraw', 'apiKeyIndex', 'api_key_index');
|
|
2604
2777
|
let accountIndex = undefined;
|
|
2605
2778
|
[accountIndex, params] = await this.handleAccountIndex(params, 'withdraw', 'accountIndex', 'account_index');
|
|
2779
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
2780
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
2781
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
2606
2782
|
const currency = this.currency(code);
|
|
2607
2783
|
if (currency['code'] === 'USDC') {
|
|
2608
2784
|
amount = this.parseToInt(Precise["default"].stringMul(this.pow('10', '6'), this.currencyToPrecision(code, amount)));
|
|
@@ -2615,7 +2791,7 @@ class lighter extends lighter$1["default"] {
|
|
|
2615
2791
|
}
|
|
2616
2792
|
const routeType = this.safeInteger(params, 'routeType', 0); // 0: perp, 1: spot
|
|
2617
2793
|
params = this.omit(params, 'routeType');
|
|
2618
|
-
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex);
|
|
2794
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
2619
2795
|
const signRaw = {
|
|
2620
2796
|
'asset_index': this.parseToInt(currency['id']),
|
|
2621
2797
|
'route_type': routeType,
|
|
@@ -2624,7 +2800,6 @@ class lighter extends lighter$1["default"] {
|
|
|
2624
2800
|
'api_key_index': apiKeyIndex,
|
|
2625
2801
|
'account_index': accountIndex,
|
|
2626
2802
|
};
|
|
2627
|
-
const signer = await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2628
2803
|
const [txType, txInfo] = this.lighterSignWithdraw(signer, this.extend(signRaw, params));
|
|
2629
2804
|
const request = {
|
|
2630
2805
|
'tx_type': txType,
|
|
@@ -2657,11 +2832,10 @@ class lighter extends lighter$1["default"] {
|
|
|
2657
2832
|
let accountIndex = undefined;
|
|
2658
2833
|
[accountIndex, params] = await this.handleAccountIndex(params, 'fetchMyTrades', 'accountIndex', 'account_index');
|
|
2659
2834
|
let apiKeyIndex = undefined;
|
|
2660
|
-
[apiKeyIndex, params] = this.
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2835
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'fetchMyTrades', 'apiKeyIndex', 'api_key_index');
|
|
2836
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
2837
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
2838
|
+
await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
2665
2839
|
const request = {
|
|
2666
2840
|
'sort_by': 'timestamp',
|
|
2667
2841
|
'limit': 100,
|
|
@@ -2837,22 +3011,22 @@ class lighter extends lighter$1["default"] {
|
|
|
2837
3011
|
return await this.modifyLeverageAndMarginMode(leverage, marginMode, symbol, params);
|
|
2838
3012
|
}
|
|
2839
3013
|
async modifyLeverageAndMarginMode(leverage, marginMode, symbol = undefined, params = {}) {
|
|
3014
|
+
await this.loadMarkets();
|
|
2840
3015
|
if ((marginMode !== 'cross') && (marginMode !== 'isolated')) {
|
|
2841
3016
|
throw new errors.BadRequest(this.id + ' modifyLeverageAndMarginMode() requires a marginMode parameter that must be either cross or isolated');
|
|
2842
3017
|
}
|
|
2843
3018
|
let apiKeyIndex = undefined;
|
|
2844
|
-
[apiKeyIndex, params] = this.
|
|
2845
|
-
if (apiKeyIndex === undefined) {
|
|
2846
|
-
throw new errors.ArgumentsRequired(this.id + ' modifyLeverageAndMarginMode() requires an apiKeyIndex parameter');
|
|
2847
|
-
}
|
|
3019
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'modifyLeverageAndMarginMode', 'apiKeyIndex', 'api_key_index');
|
|
2848
3020
|
if (symbol === undefined) {
|
|
2849
3021
|
throw new errors.ArgumentsRequired(this.id + ' modifyLeverageAndMarginMode() requires a symbol argument');
|
|
2850
3022
|
}
|
|
2851
|
-
await this.loadMarkets();
|
|
2852
3023
|
let accountIndex = undefined;
|
|
2853
3024
|
[accountIndex, params] = await this.handleAccountIndex(params, 'modifyLeverageAndMarginMode', 'accountIndex', 'account_index');
|
|
3025
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
3026
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
3027
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
2854
3028
|
const market = this.market(symbol);
|
|
2855
|
-
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex);
|
|
3029
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
2856
3030
|
const signRaw = {
|
|
2857
3031
|
'market_index': this.parseToInt(market['id']),
|
|
2858
3032
|
'initial_margin_fraction': this.parseToInt(10000 / leverage),
|
|
@@ -2861,7 +3035,6 @@ class lighter extends lighter$1["default"] {
|
|
|
2861
3035
|
'api_key_index': apiKeyIndex,
|
|
2862
3036
|
'account_index': accountIndex,
|
|
2863
3037
|
};
|
|
2864
|
-
const signer = await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2865
3038
|
const [txType, txInfo] = this.lighterSignUpdateLeverage(signer, this.extend(signRaw, params));
|
|
2866
3039
|
const request = {
|
|
2867
3040
|
'tx_type': txType,
|
|
@@ -2881,21 +3054,21 @@ class lighter extends lighter$1["default"] {
|
|
|
2881
3054
|
* @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure}
|
|
2882
3055
|
*/
|
|
2883
3056
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
3057
|
+
await this.loadMarkets();
|
|
2884
3058
|
let apiKeyIndex = undefined;
|
|
2885
|
-
[apiKeyIndex, params] = this.
|
|
2886
|
-
if (apiKeyIndex === undefined) {
|
|
2887
|
-
throw new errors.ArgumentsRequired(this.id + ' cancelOrder() requires an apiKeyIndex parameter');
|
|
2888
|
-
}
|
|
3059
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'cancelOrder', 'apiKeyIndex', 'api_key_index');
|
|
2889
3060
|
if (symbol === undefined) {
|
|
2890
3061
|
throw new errors.ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
|
|
2891
3062
|
}
|
|
3063
|
+
const market = this.market(symbol);
|
|
2892
3064
|
const clientOrderId = this.safeString2(params, 'client_order_index', 'clientOrderId');
|
|
2893
3065
|
params = this.omit(params, ['client_order_index', 'clientOrderId']);
|
|
2894
|
-
await this.loadMarkets();
|
|
2895
3066
|
let accountIndex = undefined;
|
|
2896
3067
|
[accountIndex, params] = await this.handleAccountIndex(params, 'cancelOrder', 'accountIndex', 'account_index');
|
|
2897
|
-
const
|
|
2898
|
-
const
|
|
3068
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
3069
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
3070
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
3071
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
2899
3072
|
const signRaw = {
|
|
2900
3073
|
'market_index': this.parseToInt(market['id']),
|
|
2901
3074
|
'nonce': nonce,
|
|
@@ -2911,7 +3084,6 @@ class lighter extends lighter$1["default"] {
|
|
|
2911
3084
|
else {
|
|
2912
3085
|
throw new errors.ArgumentsRequired(this.id + ' cancelOrder requires order id or client order id');
|
|
2913
3086
|
}
|
|
2914
|
-
const signer = await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2915
3087
|
const [txType, txInfo] = this.lighterSignCancelOrder(signer, this.extend(signRaw, params));
|
|
2916
3088
|
const request = {
|
|
2917
3089
|
'tx_type': txType,
|
|
@@ -2931,13 +3103,14 @@ class lighter extends lighter$1["default"] {
|
|
|
2931
3103
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
|
|
2932
3104
|
*/
|
|
2933
3105
|
async cancelAllOrders(symbol = undefined, params = {}) {
|
|
3106
|
+
await this.loadMarkets();
|
|
2934
3107
|
let apiKeyIndex = undefined;
|
|
2935
|
-
[apiKeyIndex, params] = this.
|
|
2936
|
-
if (apiKeyIndex === undefined) {
|
|
2937
|
-
throw new errors.ArgumentsRequired(this.id + ' cancelAllOrders() requires an apiKeyIndex parameter');
|
|
2938
|
-
}
|
|
3108
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'cancelAllOrders', 'apiKeyIndex', 'api_key_index');
|
|
2939
3109
|
let accountIndex = undefined;
|
|
2940
3110
|
[accountIndex, params] = await this.handleAccountIndex(params, 'cancelAllOrders', 'accountIndex', 'account_index');
|
|
3111
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
3112
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
3113
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
2941
3114
|
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
2942
3115
|
const signRaw = {
|
|
2943
3116
|
'time_in_force': 0,
|
|
@@ -2946,7 +3119,6 @@ class lighter extends lighter$1["default"] {
|
|
|
2946
3119
|
'api_key_index': apiKeyIndex,
|
|
2947
3120
|
'account_index': accountIndex,
|
|
2948
3121
|
};
|
|
2949
|
-
const signer = await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2950
3122
|
const [txType, txInfo] = this.lighterSignCancelAllOrders(signer, this.extend(signRaw, params));
|
|
2951
3123
|
const request = {
|
|
2952
3124
|
'tx_type': txType,
|
|
@@ -2964,17 +3136,18 @@ class lighter extends lighter$1["default"] {
|
|
|
2964
3136
|
* @returns {object} the api result
|
|
2965
3137
|
*/
|
|
2966
3138
|
async cancelAllOrdersAfter(timeout, params = {}) {
|
|
3139
|
+
await this.loadMarkets();
|
|
2967
3140
|
if ((timeout < 300000) || (timeout > 1296000000)) {
|
|
2968
3141
|
throw new errors.BadRequest(this.id + ' timeout should be between 5 minutes and 15 days.');
|
|
2969
3142
|
}
|
|
2970
3143
|
let apiKeyIndex = undefined;
|
|
2971
|
-
[apiKeyIndex, params] = this.
|
|
2972
|
-
if (apiKeyIndex === undefined) {
|
|
2973
|
-
throw new errors.ArgumentsRequired(this.id + ' cancelAllOrdersAfter() requires an apiKeyIndex parameter');
|
|
2974
|
-
}
|
|
3144
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'cancelOrder', 'apiKeyIndex', 'api_key_index');
|
|
2975
3145
|
let accountIndex = undefined;
|
|
2976
3146
|
[accountIndex, params] = await this.handleAccountIndex(params, 'cancelAllOrdersAfter', 'accountIndex', 'account_index');
|
|
2977
|
-
const
|
|
3147
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
3148
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
3149
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
3150
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
2978
3151
|
const signRaw = {
|
|
2979
3152
|
'time_in_force': 1,
|
|
2980
3153
|
'time': this.milliseconds() + timeout,
|
|
@@ -2982,7 +3155,6 @@ class lighter extends lighter$1["default"] {
|
|
|
2982
3155
|
'api_key_index': apiKeyIndex,
|
|
2983
3156
|
'account_index': accountIndex,
|
|
2984
3157
|
};
|
|
2985
|
-
const signer = await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
2986
3158
|
const [txType, txInfo] = this.lighterSignCancelAllOrders(signer, this.extend(signRaw, params));
|
|
2987
3159
|
const request = {
|
|
2988
3160
|
'tx_type': txType,
|
|
@@ -3033,11 +3205,9 @@ class lighter extends lighter$1["default"] {
|
|
|
3033
3205
|
* @returns {object} A [margin structure]{@link https://docs.ccxt.com/?id=add-margin-structure}
|
|
3034
3206
|
*/
|
|
3035
3207
|
async setMargin(symbol, amount, params = {}) {
|
|
3208
|
+
await this.loadMarkets();
|
|
3036
3209
|
let apiKeyIndex = undefined;
|
|
3037
|
-
[apiKeyIndex, params] = this.
|
|
3038
|
-
if (apiKeyIndex === undefined) {
|
|
3039
|
-
throw new errors.ArgumentsRequired(this.id + ' setMargin() requires an apiKeyIndex parameter');
|
|
3040
|
-
}
|
|
3210
|
+
[apiKeyIndex, params] = this.handleApiKeyIndex(params, 'setMargin', 'apiKeyIndex', 'api_key_index');
|
|
3041
3211
|
const direction = this.safeInteger(params, 'direction'); // 1 increase margin 0 decrease margin
|
|
3042
3212
|
if (direction === undefined) {
|
|
3043
3213
|
throw new errors.ArgumentsRequired(this.id + ' setMargin() requires a direction parameter either 1 (increase margin) or 0 (decrease margin)');
|
|
@@ -3048,11 +3218,13 @@ class lighter extends lighter$1["default"] {
|
|
|
3048
3218
|
if (symbol === undefined) {
|
|
3049
3219
|
throw new errors.ArgumentsRequired(this.id + ' setMargin() requires a symbol argument');
|
|
3050
3220
|
}
|
|
3051
|
-
await this.loadMarkets();
|
|
3052
3221
|
let accountIndex = undefined;
|
|
3053
3222
|
[accountIndex, params] = await this.handleAccountIndex(params, 'setMargin', 'accountIndex', 'account_index');
|
|
3223
|
+
const strAccountIndex = this.numberToString(accountIndex);
|
|
3224
|
+
const strApiKeyIndex = this.numberToString(apiKeyIndex);
|
|
3225
|
+
const signer = await this.loadAccount(this.options['chainId'], this.getLighterPrivateKey(strAccountIndex, strApiKeyIndex), strApiKeyIndex, strAccountIndex, params);
|
|
3054
3226
|
const market = this.market(symbol);
|
|
3055
|
-
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex);
|
|
3227
|
+
const nonce = await this.fetchNonce(accountIndex, apiKeyIndex, params);
|
|
3056
3228
|
const signRaw = {
|
|
3057
3229
|
'market_index': this.parseToInt(market['id']),
|
|
3058
3230
|
'usdc_amount': this.parseToInt(Precise["default"].stringMul(this.pow('10', '6'), this.currencyToPrecision('USDC', amount))),
|
|
@@ -3061,7 +3233,6 @@ class lighter extends lighter$1["default"] {
|
|
|
3061
3233
|
'api_key_index': apiKeyIndex,
|
|
3062
3234
|
'account_index': accountIndex,
|
|
3063
3235
|
};
|
|
3064
|
-
const signer = await this.loadAccount(this.options['chainId'], this.privateKey, apiKeyIndex, accountIndex, params);
|
|
3065
3236
|
const [txType, txInfo] = this.lighterSignUpdateMargin(signer, this.extend(signRaw, params));
|
|
3066
3237
|
const request = {
|
|
3067
3238
|
'tx_type': txType,
|