ccxt 4.4.70 → 4.4.72
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 -8
- package/dist/ccxt.browser.min.js +7 -7
- package/dist/cjs/ccxt.js +1 -6
- package/dist/cjs/src/abstract/ace.js +1 -1
- package/dist/cjs/src/abstract/alpaca.js +1 -1
- package/dist/cjs/src/abstract/ascendex.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/bitfinex1.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/bitvavo.js +1 -1
- package/dist/cjs/src/abstract/bl3p.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/btcalpha.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/bybit.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/coincatch.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/coinlist.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/defx.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/ellipx.js +1 -1
- package/dist/cjs/src/abstract/exmo.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/hashkey.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/huobijp.js +1 -1
- package/dist/cjs/src/abstract/hyperliquid.js +1 -1
- package/dist/cjs/src/abstract/idex.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/kucoinfutures.js +1 -1
- package/dist/cjs/src/abstract/kuna.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/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/ndax.js +1 -1
- package/dist/cjs/src/abstract/novadax.js +1 -1
- package/dist/cjs/src/abstract/oceanex.js +1 -1
- package/dist/cjs/src/abstract/okcoin.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/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/poloniexfutures.js +1 -1
- package/dist/cjs/src/abstract/probit.js +1 -1
- package/dist/cjs/src/abstract/timex.js +1 -1
- package/dist/cjs/src/abstract/tokocrypto.js +1 -1
- package/dist/cjs/src/abstract/tradeogre.js +1 -1
- package/dist/cjs/src/abstract/upbit.js +1 -1
- package/dist/cjs/src/abstract/vertex.js +1 -1
- package/dist/cjs/src/abstract/wavesexchange.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/zonda.js +1 -1
- package/dist/cjs/src/ace.js +1 -1
- package/dist/cjs/src/alpaca.js +1 -1
- package/dist/cjs/src/ascendex.js +2 -2
- package/dist/cjs/src/base/Exchange.js +33 -1
- package/dist/cjs/src/base/Precise.js +6 -0
- package/dist/cjs/src/base/errors.js +6 -0
- 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/misc.js +1 -0
- package/dist/cjs/src/base/functions/number.js +6 -0
- package/dist/cjs/src/base/functions/platform.js +6 -0
- package/dist/cjs/src/base/functions/rsa.js +1 -0
- package/dist/cjs/src/base/functions/string.js +6 -0
- package/dist/cjs/src/base/functions/throttle.js +1 -1
- package/dist/cjs/src/base/functions/time.js +6 -0
- package/dist/cjs/src/base/functions/totp.js +1 -0
- package/dist/cjs/src/base/functions/type.js +6 -0
- package/dist/cjs/src/base/functions.js +1 -1
- package/dist/cjs/src/base/ws/Cache.js +6 -0
- package/dist/cjs/src/base/ws/Client.js +1 -0
- 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 +6 -0
- 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 +108 -103
- 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 +66 -44
- 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/bitcoincom.js +1 -1
- package/dist/cjs/src/bitfinex.js +1 -1
- package/dist/cjs/src/bitfinex1.js +1 -1
- package/dist/cjs/src/bitflyer.js +1 -1
- package/dist/cjs/src/bitget.js +2 -6
- package/dist/cjs/src/bithumb.js +1 -1
- package/dist/cjs/src/bitmart.js +16 -2
- package/dist/cjs/src/bitmex.js +1 -1
- package/dist/cjs/src/bitopro.js +2 -1
- package/dist/cjs/src/bitpanda.js +1 -1
- package/dist/cjs/src/bitrue.js +2 -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/bl3p.js +1 -1
- package/dist/cjs/src/blockchaincom.js +1 -1
- package/dist/cjs/src/blofin.js +1 -1
- package/dist/cjs/src/btcalpha.js +1 -1
- 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/bybit.js +1 -1
- package/dist/cjs/src/cex.js +3 -1
- package/dist/cjs/src/coinbase.js +2 -1
- package/dist/cjs/src/coinbaseadvanced.js +1 -1
- package/dist/cjs/src/coinbaseexchange.js +2 -0
- package/dist/cjs/src/coinbaseinternational.js +1 -0
- package/dist/cjs/src/coincatch.js +1 -1
- package/dist/cjs/src/coincheck.js +1 -1
- package/dist/cjs/src/coinex.js +1 -1
- package/dist/cjs/src/coinlist.js +1 -0
- 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 +1 -0
- 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/defx.js +1 -1
- package/dist/cjs/src/delta.js +1 -1
- package/dist/cjs/src/deribit.js +3 -1
- package/dist/cjs/src/derive.js +14 -8
- package/dist/cjs/src/digifinex.js +1 -1
- package/dist/cjs/src/ellipx.js +1 -1
- package/dist/cjs/src/exmo.js +1 -1
- package/dist/cjs/src/fmfwio.js +1 -1
- package/dist/cjs/src/gate.js +5 -1
- package/dist/cjs/src/gateio.js +1 -1
- package/dist/cjs/src/gemini.js +2 -1
- package/dist/cjs/src/hashkey.js +5 -3
- package/dist/cjs/src/hitbtc.js +1 -0
- 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/huobijp.js +1 -1
- package/dist/cjs/src/hyperliquid.js +41 -1
- package/dist/cjs/src/idex.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 +84 -7
- package/dist/cjs/src/krakenfutures.js +5 -1
- package/dist/cjs/src/kucoin.js +5 -3
- package/dist/cjs/src/kucoinfutures.js +1 -1
- package/dist/cjs/src/kuna.js +1 -1
- package/dist/cjs/src/latoken.js +1 -1
- package/dist/cjs/src/lbank.js +1 -1
- package/dist/cjs/src/luno.js +1 -1
- package/dist/cjs/src/mercado.js +1 -1
- package/dist/cjs/src/mexc.js +9 -5
- 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/oceanex.js +1 -1
- package/dist/cjs/src/okcoin.js +5 -1
- package/dist/cjs/src/okx.js +81 -79
- 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/paradex.js +70 -10
- package/dist/cjs/src/paymium.js +1 -1
- package/dist/cjs/src/poloniex.js +1313 -82
- package/dist/cjs/src/poloniexfutures.js +1 -1
- package/dist/cjs/src/pro/alpaca.js +1 -1
- package/dist/cjs/src/pro/ascendex.js +1 -1
- package/dist/cjs/src/pro/bequant.js +1 -1
- package/dist/cjs/src/pro/binance.js +94 -94
- 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 +64 -53
- package/dist/cjs/src/pro/bitcoincom.js +1 -1
- package/dist/cjs/src/pro/bitfinex.js +1 -1
- package/dist/cjs/src/pro/bitfinex1.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 +20 -8
- package/dist/cjs/src/pro/bitmex.js +1 -1
- package/dist/cjs/src/pro/bitpanda.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/bybit.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/coincatch.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/defx.js +1 -1
- package/dist/cjs/src/pro/deribit.js +1 -1
- package/dist/cjs/src/pro/derive.js +2 -2
- package/dist/cjs/src/pro/exmo.js +1 -1
- package/dist/cjs/src/pro/gate.js +1 -1
- package/dist/cjs/src/pro/gateio.js +1 -1
- package/dist/cjs/src/pro/gemini.js +1 -1
- 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 +1 -1
- package/dist/cjs/src/pro/idex.js +1 -1
- 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 +2 -2
- package/dist/cjs/src/pro/kucoin.js +1 -1
- package/dist/cjs/src/pro/kucoinfutures.js +1 -1
- package/dist/cjs/src/pro/lbank.js +1 -0
- 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/okcoin.js +1 -1
- package/dist/cjs/src/pro/okx.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/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/poloniexfutures.js +1 -1
- package/dist/cjs/src/pro/probit.js +1 -1
- package/dist/cjs/src/pro/upbit.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/probit.js +1 -1
- package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/address/address.js +1 -1
- package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/address.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/array.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/null.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/number.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/string.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +1 -0
- package/dist/cjs/src/static_dependencies/ethers/fragments.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/index.js +1 -10
- package/dist/cjs/src/static_dependencies/ethers/interface.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/typed.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +1 -13
- package/dist/cjs/src/static_dependencies/ethers/utils/data.js +1 -6
- package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +1 -9
- package/dist/cjs/src/static_dependencies/ethers/utils/events.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/utils/index.js +1 -7
- package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +1 -5
- package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +6 -0
- package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +1 -8
- package/dist/cjs/src/static_dependencies/fflake/browser.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/JSEncrypt.js +1 -0
- package/dist/cjs/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +1 -0
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +1 -0
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +1 -1
- package/dist/cjs/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
- 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 +6 -0
- 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 +6 -0
- package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +6 -0
- 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 +1 -0
- 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 +6 -0
- 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 +6 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/_sha2.js +1 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/_u64.js +6 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/crypto.js +6 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/hmac.js +1 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/md5.js +1 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/sha1.js +1 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/sha256.js +1 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/sha3.js +1 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/sha512.js +1 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +1 -1
- package/dist/cjs/src/static_dependencies/node-fetch/body.js +1 -5
- package/dist/cjs/src/static_dependencies/node-fetch/errors/abort-error.js +1 -0
- package/dist/cjs/src/static_dependencies/node-fetch/errors/base.js +6 -0
- package/dist/cjs/src/static_dependencies/node-fetch/errors/fetch-error.js +1 -0
- package/dist/cjs/src/static_dependencies/node-fetch/headers.js +1 -5
- package/dist/cjs/src/static_dependencies/node-fetch/index.js +1 -7
- package/dist/cjs/src/static_dependencies/node-fetch/request.js +1 -7
- package/dist/cjs/src/static_dependencies/node-fetch/response.js +1 -5
- package/dist/cjs/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
- package/dist/cjs/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
- package/dist/cjs/src/static_dependencies/node-fetch/utils/is.js +6 -0
- package/dist/cjs/src/static_dependencies/node-fetch/utils/referrer.js +1 -0
- package/dist/cjs/src/static_dependencies/proxies/agent-base/index.js +1 -0
- package/dist/cjs/src/static_dependencies/proxies/http-proxy-agent/index.js +1 -0
- package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/index.js +1 -0
- package/dist/cjs/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
- package/dist/cjs/src/static_dependencies/scure-base/index.js +6 -0
- 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 +6 -0
- package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
- package/dist/cjs/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
- package/dist/cjs/src/static_dependencies/starknet/types/lib/index.js +6 -0
- package/dist/cjs/src/static_dependencies/starknet/types/typedData.js +6 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/assert.js +6 -0
- 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 +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/cairo.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/formatter.js +1 -0
- 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 +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/requestParser.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/responseParser.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/tuple.js +1 -1
- package/dist/cjs/src/static_dependencies/starknet/utils/calldata/validate.js +1 -4
- package/dist/cjs/src/static_dependencies/starknet/utils/encode.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +1 -3
- package/dist/cjs/src/static_dependencies/starknet/utils/merkle.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/num.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/selector.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/shortString.js +1 -0
- package/dist/cjs/src/static_dependencies/starknet/utils/typedData.js +1 -1
- package/dist/cjs/src/static_dependencies/watchable/src/unpromise.js +6 -0
- package/dist/cjs/src/timex.js +1 -0
- package/dist/cjs/src/tokocrypto.js +1 -1
- package/dist/cjs/src/tradeogre.js +1 -1
- package/dist/cjs/src/upbit.js +1 -1
- package/dist/cjs/src/vertex.js +1 -1
- package/dist/cjs/src/wavesexchange.js +1 -1
- package/dist/cjs/src/whitebit.js +102 -4
- package/dist/cjs/src/woo.js +4 -2
- package/dist/cjs/src/woofipro.js +2 -2
- package/dist/cjs/src/xt.js +1 -1
- package/dist/cjs/src/yobit.js +2 -1
- package/dist/cjs/src/zaif.js +1 -1
- package/dist/cjs/src/zonda.js +1 -1
- package/js/ccxt.d.ts +3 -9
- package/js/ccxt.js +8 -6
- package/js/src/abstract/ace.js +6 -0
- package/js/src/abstract/alpaca.js +6 -0
- package/js/src/abstract/ascendex.js +6 -0
- package/js/src/abstract/bequant.js +6 -0
- package/js/src/abstract/bigone.js +6 -0
- package/js/src/abstract/binance.js +6 -0
- package/js/src/abstract/binancecoinm.js +6 -0
- package/js/src/abstract/binanceus.js +6 -0
- package/js/src/abstract/binanceusdm.js +6 -0
- package/js/src/abstract/bingx.d.ts +1 -0
- package/js/src/abstract/bingx.js +6 -0
- package/js/src/abstract/bit2c.js +6 -0
- package/js/src/abstract/bitbank.js +6 -0
- package/js/src/abstract/bitbns.js +6 -0
- package/js/src/abstract/bitcoincom.js +6 -0
- package/js/src/abstract/bitfinex.js +6 -0
- package/js/src/abstract/bitfinex1.js +6 -0
- package/js/src/abstract/bitflyer.js +6 -0
- package/js/src/abstract/bitget.js +6 -0
- package/js/src/abstract/bithumb.js +6 -0
- package/js/src/abstract/bitmart.d.ts +1 -0
- package/js/src/abstract/bitmart.js +6 -0
- package/js/src/abstract/bitmex.js +6 -0
- package/js/src/abstract/bitopro.js +6 -0
- package/js/src/abstract/bitpanda.js +6 -0
- package/js/src/abstract/bitrue.js +6 -0
- package/js/src/abstract/bitso.js +6 -0
- package/js/src/abstract/bitstamp.js +6 -0
- package/js/src/abstract/bitteam.js +6 -0
- package/js/src/abstract/bitvavo.js +6 -0
- package/js/src/abstract/bl3p.js +6 -0
- package/js/src/abstract/blockchaincom.js +6 -0
- package/js/src/abstract/blofin.js +6 -0
- package/js/src/abstract/btcalpha.js +6 -0
- package/js/src/abstract/btcbox.js +6 -0
- package/js/src/abstract/btcmarkets.js +6 -0
- package/js/src/abstract/btcturk.js +6 -0
- package/js/src/abstract/bybit.js +6 -0
- package/js/src/abstract/cex.js +6 -0
- package/js/src/abstract/coinbase.js +6 -0
- package/js/src/abstract/coinbaseadvanced.js +6 -0
- package/js/src/abstract/coinbaseexchange.js +6 -0
- package/js/src/abstract/coinbaseinternational.js +6 -0
- package/js/src/abstract/coincatch.js +6 -0
- package/js/src/abstract/coincheck.js +6 -0
- package/js/src/abstract/coinex.js +6 -0
- package/js/src/abstract/coinlist.js +6 -0
- package/js/src/abstract/coinmate.js +6 -0
- package/js/src/abstract/coinmetro.js +6 -0
- package/js/src/abstract/coinone.js +6 -0
- package/js/src/abstract/coinsph.js +6 -0
- package/js/src/abstract/coinspot.js +6 -0
- package/js/src/abstract/cryptocom.js +6 -0
- package/js/src/abstract/cryptomus.js +6 -0
- package/js/src/abstract/defx.js +6 -0
- package/js/src/abstract/delta.js +6 -0
- package/js/src/abstract/deribit.js +6 -0
- package/js/src/abstract/derive.js +6 -0
- package/js/src/abstract/digifinex.js +6 -0
- package/js/src/abstract/ellipx.js +6 -0
- package/js/src/abstract/exmo.js +6 -0
- package/js/src/abstract/fmfwio.js +6 -0
- package/js/src/abstract/gate.js +6 -0
- package/js/src/abstract/gateio.js +6 -0
- package/js/src/abstract/gemini.js +6 -0
- package/js/src/abstract/hashkey.js +6 -0
- package/js/src/abstract/hitbtc.js +6 -0
- package/js/src/abstract/hollaex.js +6 -0
- package/js/src/abstract/htx.js +6 -0
- package/js/src/abstract/huobi.js +6 -0
- package/js/src/abstract/huobijp.js +6 -0
- package/js/src/abstract/hyperliquid.js +6 -0
- package/js/src/abstract/idex.js +6 -0
- package/js/src/abstract/independentreserve.js +6 -0
- package/js/src/abstract/indodax.js +6 -0
- package/js/src/abstract/kraken.js +6 -0
- package/js/src/abstract/krakenfutures.js +6 -0
- package/js/src/abstract/kucoin.js +6 -0
- package/js/src/abstract/kucoinfutures.js +6 -0
- package/js/src/abstract/kuna.js +6 -0
- package/js/src/abstract/latoken.js +6 -0
- package/js/src/abstract/lbank.js +6 -0
- package/js/src/abstract/luno.js +6 -0
- package/js/src/abstract/mercado.js +6 -0
- package/js/src/abstract/mexc.js +6 -0
- package/js/src/abstract/myokx.js +6 -0
- package/js/src/abstract/ndax.js +6 -0
- package/js/src/abstract/novadax.js +6 -0
- package/js/src/abstract/oceanex.js +6 -0
- package/js/src/abstract/okcoin.js +6 -0
- package/js/src/abstract/okx.js +6 -0
- package/js/src/abstract/onetrading.js +6 -0
- package/js/src/abstract/oxfun.js +6 -0
- package/js/src/abstract/p2b.js +6 -0
- package/js/src/abstract/paradex.js +6 -0
- package/js/src/abstract/paymium.js +6 -0
- package/js/src/abstract/phemex.js +6 -0
- package/js/src/abstract/poloniex.d.ts +36 -0
- package/js/src/abstract/poloniex.js +6 -0
- package/js/src/abstract/poloniexfutures.js +6 -0
- package/js/src/abstract/probit.js +6 -0
- package/js/src/abstract/timex.js +6 -0
- package/js/src/abstract/tokocrypto.js +6 -0
- package/js/src/abstract/tradeogre.js +6 -0
- package/js/src/abstract/upbit.js +6 -0
- package/js/src/abstract/vertex.js +6 -0
- package/js/src/abstract/wavesexchange.js +6 -0
- package/js/src/abstract/whitebit.js +6 -0
- package/js/src/abstract/woo.js +6 -0
- package/js/src/abstract/woofipro.js +6 -0
- package/js/src/abstract/xt.js +6 -0
- package/js/src/abstract/yobit.js +6 -0
- package/js/src/abstract/zaif.js +6 -0
- package/js/src/abstract/zonda.js +6 -0
- package/js/src/ace.js +6 -0
- package/js/src/alpaca.js +6 -0
- package/js/src/ascendex.js +7 -1
- package/js/src/base/Exchange.d.ts +14 -5
- package/js/src/base/Exchange.js +39 -1
- package/js/src/base/Precise.js +6 -0
- package/js/src/base/errorHierarchy.js +6 -0
- package/js/src/base/errors.js +6 -0
- package/js/src/base/functions/crypto.js +6 -0
- package/js/src/base/functions/encode.js +6 -0
- package/js/src/base/functions/generic.js +6 -0
- package/js/src/base/functions/misc.js +6 -0
- package/js/src/base/functions/number.js +6 -0
- package/js/src/base/functions/platform.js +6 -0
- package/js/src/base/functions/rsa.js +6 -0
- package/js/src/base/functions/string.js +6 -0
- package/js/src/base/functions/throttle.js +6 -0
- package/js/src/base/functions/time.js +6 -0
- package/js/src/base/functions/totp.js +6 -0
- package/js/src/base/functions/type.js +6 -0
- package/js/src/base/functions.js +6 -0
- package/js/src/base/types.d.ts +31 -6
- package/js/src/base/types.js +6 -0
- package/js/src/base/ws/Cache.js +6 -0
- package/js/src/base/ws/Client.js +6 -0
- package/js/src/base/ws/Future.js +6 -0
- package/js/src/base/ws/OrderBook.js +6 -0
- package/js/src/base/ws/OrderBookSide.js +6 -0
- package/js/src/base/ws/WsClient.js +6 -0
- package/js/src/base/ws/functions.js +6 -0
- package/js/src/bequant.js +6 -0
- package/js/src/bigone.js +6 -0
- package/js/src/binance.d.ts +98 -97
- package/js/src/binance.js +113 -102
- package/js/src/binancecoinm.js +6 -0
- package/js/src/binanceus.js +6 -0
- package/js/src/binanceusdm.js +6 -0
- package/js/src/bingx.js +71 -43
- package/js/src/bit2c.js +6 -0
- package/js/src/bitbank.js +6 -0
- package/js/src/bitbns.js +6 -0
- package/js/src/bitcoincom.js +6 -0
- package/js/src/bitfinex.js +6 -0
- package/js/src/bitfinex1.js +6 -0
- package/js/src/bitflyer.js +6 -0
- package/js/src/bitget.js +7 -5
- package/js/src/bithumb.js +6 -0
- package/js/src/bitmart.d.ts +1 -0
- package/js/src/bitmart.js +21 -1
- package/js/src/bitmex.js +6 -0
- package/js/src/bitopro.js +7 -0
- package/js/src/bitpanda.js +6 -0
- package/js/src/bitrue.js +7 -0
- package/js/src/bitso.js +6 -0
- package/js/src/bitstamp.js +6 -0
- package/js/src/bitteam.js +6 -0
- package/js/src/bitvavo.js +6 -0
- package/js/src/bl3p.d.ts +2 -8
- package/js/src/bl3p.js +6 -0
- package/js/src/blockchaincom.js +6 -0
- package/js/src/blofin.js +6 -0
- package/js/src/btcalpha.js +6 -0
- package/js/src/btcbox.js +6 -0
- package/js/src/btcmarkets.js +6 -0
- package/js/src/btcturk.js +6 -0
- package/js/src/bybit.js +6 -0
- package/js/src/cex.js +8 -0
- package/js/src/coinbase.d.ts +1 -6
- package/js/src/coinbase.js +8 -1
- package/js/src/coinbaseadvanced.js +6 -0
- package/js/src/coinbaseexchange.d.ts +2 -7
- package/js/src/coinbaseexchange.js +8 -0
- package/js/src/coinbaseinternational.d.ts +2 -7
- package/js/src/coinbaseinternational.js +7 -0
- package/js/src/coincatch.js +6 -0
- package/js/src/coincheck.js +6 -0
- package/js/src/coinex.js +6 -0
- package/js/src/coinlist.js +6 -0
- package/js/src/coinmate.js +6 -0
- package/js/src/coinmetro.js +6 -0
- package/js/src/coinone.js +6 -0
- package/js/src/coinsph.js +6 -0
- package/js/src/coinspot.js +6 -0
- package/js/src/cryptocom.js +6 -0
- package/js/src/cryptomus.js +6 -0
- package/js/src/defx.js +6 -0
- package/js/src/delta.js +6 -0
- package/js/src/deribit.d.ts +1 -6
- package/js/src/deribit.js +8 -0
- package/js/src/derive.js +19 -7
- package/js/src/digifinex.js +6 -0
- package/js/src/ellipx.js +6 -0
- package/js/src/exmo.js +6 -0
- package/js/src/fmfwio.js +6 -0
- package/js/src/gate.js +10 -0
- package/js/src/gateio.js +6 -0
- package/js/src/gemini.d.ts +1 -6
- package/js/src/gemini.js +7 -0
- package/js/src/hashkey.js +10 -2
- package/js/src/hitbtc.d.ts +1 -7
- package/js/src/hitbtc.js +6 -0
- package/js/src/hollaex.js +6 -0
- package/js/src/htx.js +6 -0
- package/js/src/huobi.js +6 -0
- package/js/src/huobijp.js +6 -0
- package/js/src/hyperliquid.d.ts +11 -0
- package/js/src/hyperliquid.js +46 -0
- package/js/src/idex.js +6 -0
- package/js/src/independentreserve.js +6 -0
- package/js/src/indodax.js +6 -0
- package/js/src/kraken.d.ts +1 -0
- package/js/src/kraken.js +89 -6
- package/js/src/krakenfutures.js +10 -0
- package/js/src/kucoin.js +10 -2
- package/js/src/kucoinfutures.js +6 -0
- package/js/src/kuna.js +6 -0
- package/js/src/latoken.js +6 -0
- package/js/src/lbank.js +6 -0
- package/js/src/luno.js +6 -0
- package/js/src/mercado.js +6 -0
- package/js/src/mexc.js +14 -4
- package/js/src/myokx.js +6 -0
- package/js/src/ndax.js +6 -0
- package/js/src/novadax.js +6 -0
- package/js/src/oceanex.js +6 -0
- package/js/src/okcoin.js +10 -0
- package/js/src/okx.js +86 -78
- package/js/src/onetrading.js +6 -0
- package/js/src/oxfun.js +6 -0
- package/js/src/p2b.js +6 -0
- package/js/src/paradex.js +75 -9
- package/js/src/paymium.js +6 -0
- package/js/src/phemex.js +6 -0
- package/js/src/poloniex.d.ts +110 -8
- package/js/src/poloniex.js +1318 -81
- package/js/src/poloniexfutures.js +6 -0
- package/js/src/pro/alpaca.js +6 -0
- package/js/src/pro/ascendex.js +6 -0
- package/js/src/pro/bequant.js +6 -0
- package/js/src/pro/binance.d.ts +94 -94
- package/js/src/pro/binance.js +100 -94
- package/js/src/pro/binancecoinm.js +6 -0
- package/js/src/pro/binanceus.js +6 -0
- package/js/src/pro/binanceusdm.js +6 -0
- package/js/src/pro/bingx.js +69 -52
- package/js/src/pro/bitcoincom.js +6 -0
- package/js/src/pro/bitfinex.js +6 -0
- package/js/src/pro/bitfinex1.js +6 -0
- package/js/src/pro/bitget.js +6 -0
- package/js/src/pro/bithumb.js +6 -0
- package/js/src/pro/bitmart.js +25 -7
- package/js/src/pro/bitmex.js +6 -0
- package/js/src/pro/bitopro.js +6 -0
- package/js/src/pro/bitpanda.js +6 -0
- package/js/src/pro/bitrue.js +6 -0
- package/js/src/pro/bitstamp.js +6 -0
- package/js/src/pro/bitvavo.js +6 -0
- package/js/src/pro/blockchaincom.js +6 -0
- package/js/src/pro/blofin.js +6 -0
- package/js/src/pro/bybit.js +6 -0
- package/js/src/pro/cex.js +6 -0
- package/js/src/pro/coinbase.js +6 -0
- package/js/src/pro/coinbaseadvanced.js +6 -0
- package/js/src/pro/coinbaseexchange.js +6 -0
- package/js/src/pro/coinbaseinternational.js +6 -0
- package/js/src/pro/coincatch.js +6 -0
- package/js/src/pro/coincheck.js +6 -0
- package/js/src/pro/coinex.js +6 -0
- package/js/src/pro/coinone.js +6 -0
- package/js/src/pro/cryptocom.js +6 -0
- package/js/src/pro/defx.js +6 -0
- package/js/src/pro/deribit.js +6 -0
- package/js/src/pro/derive.js +8 -2
- package/js/src/pro/exmo.js +6 -0
- package/js/src/pro/gate.js +6 -0
- package/js/src/pro/gateio.js +6 -0
- package/js/src/pro/gemini.js +6 -0
- package/js/src/pro/hashkey.js +6 -0
- package/js/src/pro/hitbtc.js +6 -0
- package/js/src/pro/hollaex.js +6 -0
- package/js/src/pro/htx.js +6 -0
- package/js/src/pro/huobi.js +6 -0
- package/js/src/pro/huobijp.js +6 -0
- package/js/src/pro/hyperliquid.js +6 -0
- package/js/src/pro/idex.js +6 -0
- package/js/src/pro/independentreserve.js +6 -0
- package/js/src/pro/kraken.js +6 -0
- package/js/src/pro/krakenfutures.js +7 -1
- package/js/src/pro/kucoin.js +6 -0
- package/js/src/pro/kucoinfutures.js +6 -0
- package/js/src/pro/lbank.js +6 -0
- package/js/src/pro/luno.js +6 -0
- package/js/src/pro/mexc.js +6 -0
- package/js/src/pro/myokx.js +6 -0
- package/js/src/pro/ndax.js +6 -0
- package/js/src/pro/okcoin.js +6 -0
- package/js/src/pro/okx.js +6 -0
- package/js/src/pro/onetrading.js +6 -0
- package/js/src/pro/oxfun.js +6 -0
- package/js/src/pro/p2b.js +6 -0
- package/js/src/pro/paradex.js +6 -0
- package/js/src/pro/phemex.js +6 -0
- package/js/src/pro/poloniex.js +6 -0
- package/js/src/pro/poloniexfutures.js +6 -0
- package/js/src/pro/probit.js +6 -0
- package/js/src/pro/upbit.js +6 -0
- package/js/src/pro/vertex.js +6 -0
- package/js/src/pro/whitebit.js +6 -0
- package/js/src/pro/woo.js +6 -0
- package/js/src/pro/woofipro.js +6 -0
- package/js/src/pro/xt.js +6 -0
- package/js/src/probit.js +6 -0
- package/js/src/static_dependencies/ethers/abi-coder.js +6 -0
- package/js/src/static_dependencies/ethers/address/address.js +6 -0
- package/js/src/static_dependencies/ethers/address/checks.js +6 -0
- package/js/src/static_dependencies/ethers/address/contract-address.js +6 -0
- package/js/src/static_dependencies/ethers/address/index.js +6 -0
- package/js/src/static_dependencies/ethers/bytes32.js +6 -0
- package/js/src/static_dependencies/ethers/coders/abstract-coder.js +6 -0
- package/js/src/static_dependencies/ethers/coders/address.js +6 -0
- package/js/src/static_dependencies/ethers/coders/anonymous.js +6 -0
- package/js/src/static_dependencies/ethers/coders/array.js +6 -0
- package/js/src/static_dependencies/ethers/coders/boolean.js +6 -0
- package/js/src/static_dependencies/ethers/coders/bytes.js +6 -0
- package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +6 -0
- package/js/src/static_dependencies/ethers/coders/null.js +6 -0
- package/js/src/static_dependencies/ethers/coders/number.js +6 -0
- package/js/src/static_dependencies/ethers/coders/string.js +6 -0
- package/js/src/static_dependencies/ethers/coders/tuple.js +6 -0
- package/js/src/static_dependencies/ethers/fragments.js +6 -0
- package/js/src/static_dependencies/ethers/hash/index.js +6 -0
- package/js/src/static_dependencies/ethers/hash/solidity.js +6 -0
- package/js/src/static_dependencies/ethers/hash/typed-data.js +6 -0
- package/js/src/static_dependencies/ethers/index.js +6 -0
- package/js/src/static_dependencies/ethers/interface.js +6 -0
- package/js/src/static_dependencies/ethers/typed.js +6 -0
- package/js/src/static_dependencies/ethers/utils/base58.js +6 -0
- package/js/src/static_dependencies/ethers/utils/base64-browser.js +6 -0
- package/js/src/static_dependencies/ethers/utils/base64.js +6 -0
- package/js/src/static_dependencies/ethers/utils/data.js +6 -0
- package/js/src/static_dependencies/ethers/utils/errors.js +6 -0
- package/js/src/static_dependencies/ethers/utils/events.js +6 -0
- package/js/src/static_dependencies/ethers/utils/fixednumber.js +6 -0
- package/js/src/static_dependencies/ethers/utils/index.js +6 -0
- package/js/src/static_dependencies/ethers/utils/maths.js +6 -0
- package/js/src/static_dependencies/ethers/utils/properties.js +6 -0
- package/js/src/static_dependencies/ethers/utils/rlp-decode.js +6 -0
- package/js/src/static_dependencies/ethers/utils/rlp-encode.js +6 -0
- package/js/src/static_dependencies/ethers/utils/rlp.js +6 -0
- package/js/src/static_dependencies/ethers/utils/units.js +6 -0
- package/js/src/static_dependencies/ethers/utils/utf8.js +6 -0
- package/js/src/static_dependencies/ethers/utils/uuid.js +6 -0
- package/js/src/static_dependencies/fflake/browser.js +6 -0
- package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +6 -0
- package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +6 -0
- package/js/src/static_dependencies/jsencrypt/index.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +6 -0
- package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +6 -0
- package/js/src/static_dependencies/messagepack/msgpack.js +6 -0
- package/js/src/static_dependencies/noble-curves/_shortw_utils.js +6 -0
- package/js/src/static_dependencies/noble-curves/abstract/curve.js +6 -0
- package/js/src/static_dependencies/noble-curves/abstract/edwards.js +6 -0
- package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +6 -0
- package/js/src/static_dependencies/noble-curves/abstract/modular.js +6 -0
- package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +6 -0
- package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +6 -0
- package/js/src/static_dependencies/noble-curves/abstract/utils.js +6 -0
- package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +6 -0
- package/js/src/static_dependencies/noble-curves/bn.js +6 -0
- package/js/src/static_dependencies/noble-curves/ed25519.js +6 -0
- package/js/src/static_dependencies/noble-curves/ed448.js +6 -0
- package/js/src/static_dependencies/noble-curves/index.js +6 -0
- package/js/src/static_dependencies/noble-curves/jubjub.js +6 -0
- package/js/src/static_dependencies/noble-curves/p256.js +6 -0
- package/js/src/static_dependencies/noble-curves/p384.js +6 -0
- package/js/src/static_dependencies/noble-curves/p521.js +6 -0
- package/js/src/static_dependencies/noble-curves/pasta.js +6 -0
- package/js/src/static_dependencies/noble-curves/secp256k1.js +6 -0
- package/js/src/static_dependencies/noble-hashes/_assert.js +6 -0
- package/js/src/static_dependencies/noble-hashes/_blake2.js +6 -0
- package/js/src/static_dependencies/noble-hashes/_sha2.js +6 -0
- package/js/src/static_dependencies/noble-hashes/_u64.js +6 -0
- package/js/src/static_dependencies/noble-hashes/argon2.js +6 -0
- package/js/src/static_dependencies/noble-hashes/blake2b.js +6 -0
- package/js/src/static_dependencies/noble-hashes/blake2s.js +6 -0
- package/js/src/static_dependencies/noble-hashes/blake3.js +6 -0
- package/js/src/static_dependencies/noble-hashes/crypto.js +6 -0
- package/js/src/static_dependencies/noble-hashes/cryptoNode.js +6 -0
- package/js/src/static_dependencies/noble-hashes/eskdf.js +6 -0
- package/js/src/static_dependencies/noble-hashes/hkdf.js +6 -0
- package/js/src/static_dependencies/noble-hashes/hmac.js +6 -0
- package/js/src/static_dependencies/noble-hashes/index.js +6 -0
- package/js/src/static_dependencies/noble-hashes/md5.js +6 -0
- package/js/src/static_dependencies/noble-hashes/pbkdf2.js +6 -0
- package/js/src/static_dependencies/noble-hashes/ripemd160.js +6 -0
- package/js/src/static_dependencies/noble-hashes/scrypt.js +6 -0
- package/js/src/static_dependencies/noble-hashes/sha1.js +6 -0
- package/js/src/static_dependencies/noble-hashes/sha256.js +6 -0
- package/js/src/static_dependencies/noble-hashes/sha3-addons.js +6 -0
- package/js/src/static_dependencies/noble-hashes/sha3.js +6 -0
- package/js/src/static_dependencies/noble-hashes/sha512.js +6 -0
- package/js/src/static_dependencies/noble-hashes/utils.js +6 -0
- package/js/src/static_dependencies/node-fetch/body.js +6 -0
- package/js/src/static_dependencies/node-fetch/errors/abort-error.js +6 -0
- package/js/src/static_dependencies/node-fetch/errors/base.js +6 -0
- package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +6 -0
- package/js/src/static_dependencies/node-fetch/headers.js +6 -0
- package/js/src/static_dependencies/node-fetch/index.js +6 -0
- package/js/src/static_dependencies/node-fetch/request.js +6 -0
- package/js/src/static_dependencies/node-fetch/response.js +6 -0
- package/js/src/static_dependencies/node-fetch/utils/get-search.js +6 -0
- package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +6 -0
- package/js/src/static_dependencies/node-fetch/utils/is.js +6 -0
- package/js/src/static_dependencies/node-fetch/utils/referrer.js +6 -0
- package/js/src/static_dependencies/proxies/agent-base/helpers.js +6 -0
- package/js/src/static_dependencies/proxies/agent-base/index.js +6 -0
- package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +6 -0
- package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +6 -0
- package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +6 -0
- package/js/src/static_dependencies/qs/formats.cjs +6 -0
- package/js/src/static_dependencies/qs/index.cjs +6 -0
- package/js/src/static_dependencies/qs/parse.cjs +6 -0
- package/js/src/static_dependencies/qs/stringify.cjs +6 -0
- package/js/src/static_dependencies/qs/utils.cjs +6 -0
- package/js/src/static_dependencies/scure-base/index.js +6 -0
- package/js/src/static_dependencies/scure-starknet/index.js +6 -0
- package/js/src/static_dependencies/starknet/constants.js +6 -0
- package/js/src/static_dependencies/starknet/index.js +6 -0
- package/js/src/static_dependencies/starknet/types/cairoEnum.js +6 -0
- package/js/src/static_dependencies/starknet/types/calldata.js +6 -0
- package/js/src/static_dependencies/starknet/types/index.js +6 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +6 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/index.js +6 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +6 -0
- package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +6 -0
- package/js/src/static_dependencies/starknet/types/lib/index.js +6 -0
- package/js/src/static_dependencies/starknet/types/typedData.js +6 -0
- package/js/src/static_dependencies/starknet/utils/address.js +6 -0
- package/js/src/static_dependencies/starknet/utils/assert.js +6 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +6 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +6 -0
- package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/index.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +6 -0
- package/js/src/static_dependencies/starknet/utils/calldata/validate.js +6 -0
- package/js/src/static_dependencies/starknet/utils/encode.js +6 -0
- package/js/src/static_dependencies/starknet/utils/hash/classHash.js +6 -0
- package/js/src/static_dependencies/starknet/utils/hash/index.js +6 -0
- package/js/src/static_dependencies/starknet/utils/merkle.js +6 -0
- package/js/src/static_dependencies/starknet/utils/num.js +6 -0
- package/js/src/static_dependencies/starknet/utils/selector.js +6 -0
- package/js/src/static_dependencies/starknet/utils/shortString.js +6 -0
- package/js/src/static_dependencies/starknet/utils/starknetId.js +6 -0
- package/js/src/static_dependencies/starknet/utils/typedData.js +6 -0
- package/js/src/static_dependencies/starknet/utils/uint256.js +6 -0
- package/js/src/static_dependencies/starknet/utils/url.js +6 -0
- package/js/src/static_dependencies/watchable/src/index.js +6 -0
- package/js/src/static_dependencies/watchable/src/types.js +6 -0
- package/js/src/static_dependencies/watchable/src/unpromise.js +6 -0
- package/js/src/timex.js +6 -0
- package/js/src/tokocrypto.js +6 -0
- package/js/src/tradeogre.js +6 -0
- package/js/src/upbit.js +6 -0
- package/js/src/vertex.js +6 -0
- package/js/src/wavesexchange.js +6 -0
- package/js/src/whitebit.d.ts +36 -1
- package/js/src/whitebit.js +107 -3
- package/js/src/woo.js +9 -1
- package/js/src/woofipro.js +7 -1
- package/js/src/xt.js +6 -0
- package/js/src/yobit.d.ts +1 -6
- package/js/src/yobit.js +7 -0
- package/js/src/zaif.js +6 -0
- package/js/src/zonda.js +6 -0
- package/package.json +1 -1
package/dist/cjs/src/poloniex.js
CHANGED
|
@@ -6,7 +6,7 @@ var Precise = require('./base/Precise.js');
|
|
|
6
6
|
var number = require('./base/functions/number.js');
|
|
7
7
|
var sha256 = require('./static_dependencies/noble-hashes/sha256.js');
|
|
8
8
|
|
|
9
|
-
//
|
|
9
|
+
// ----------------------------------------------------------------------------
|
|
10
10
|
// ---------------------------------------------------------------------------
|
|
11
11
|
/**
|
|
12
12
|
* @class poloniex
|
|
@@ -26,21 +26,25 @@ class poloniex extends poloniex$1 {
|
|
|
26
26
|
'CORS': undefined,
|
|
27
27
|
'spot': true,
|
|
28
28
|
'margin': undefined,
|
|
29
|
-
'swap':
|
|
30
|
-
'future':
|
|
29
|
+
'swap': true,
|
|
30
|
+
'future': true,
|
|
31
31
|
'option': false,
|
|
32
|
+
'addMargin': true,
|
|
32
33
|
'cancelAllOrders': true,
|
|
33
34
|
'cancelOrder': true,
|
|
35
|
+
'cancelOrders': undefined,
|
|
34
36
|
'createDepositAddress': true,
|
|
35
37
|
'createMarketBuyOrderWithCost': true,
|
|
36
38
|
'createMarketOrderWithCost': false,
|
|
37
39
|
'createMarketSellOrderWithCost': false,
|
|
38
40
|
'createOrder': true,
|
|
41
|
+
'createOrders': undefined,
|
|
39
42
|
'createStopOrder': true,
|
|
40
43
|
'createTriggerOrder': true,
|
|
41
44
|
'editOrder': true,
|
|
42
45
|
'fetchBalance': true,
|
|
43
46
|
'fetchClosedOrder': false,
|
|
47
|
+
'fetchClosedOrders': true,
|
|
44
48
|
'fetchCurrencies': true,
|
|
45
49
|
'fetchDepositAddress': true,
|
|
46
50
|
'fetchDepositAddresses': false,
|
|
@@ -54,7 +58,10 @@ class poloniex extends poloniex$1 {
|
|
|
54
58
|
'fetchFundingIntervals': false,
|
|
55
59
|
'fetchFundingRate': false,
|
|
56
60
|
'fetchFundingRateHistory': false,
|
|
57
|
-
'fetchFundingRates':
|
|
61
|
+
'fetchFundingRates': undefined,
|
|
62
|
+
'fetchLedger': undefined,
|
|
63
|
+
'fetchLeverage': true,
|
|
64
|
+
'fetchLiquidations': undefined,
|
|
58
65
|
'fetchMarginMode': false,
|
|
59
66
|
'fetchMarkets': true,
|
|
60
67
|
'fetchMyTrades': true,
|
|
@@ -67,7 +74,8 @@ class poloniex extends poloniex$1 {
|
|
|
67
74
|
'fetchOrderBooks': false,
|
|
68
75
|
'fetchOrderTrades': true,
|
|
69
76
|
'fetchPosition': false,
|
|
70
|
-
'fetchPositionMode':
|
|
77
|
+
'fetchPositionMode': true,
|
|
78
|
+
'fetchPositions': true,
|
|
71
79
|
'fetchTicker': true,
|
|
72
80
|
'fetchTickers': true,
|
|
73
81
|
'fetchTime': true,
|
|
@@ -78,7 +86,10 @@ class poloniex extends poloniex$1 {
|
|
|
78
86
|
'fetchTransfer': false,
|
|
79
87
|
'fetchTransfers': false,
|
|
80
88
|
'fetchWithdrawals': true,
|
|
89
|
+
'reduceMargin': true,
|
|
81
90
|
'sandbox': true,
|
|
91
|
+
'setLeverage': true,
|
|
92
|
+
'setPositionMode': true,
|
|
82
93
|
'transfer': true,
|
|
83
94
|
'withdraw': true,
|
|
84
95
|
},
|
|
@@ -96,15 +107,16 @@ class poloniex extends poloniex$1 {
|
|
|
96
107
|
'1d': 'DAY_1',
|
|
97
108
|
'3d': 'DAY_3',
|
|
98
109
|
'1w': 'WEEK_1',
|
|
99
|
-
'1M': 'MONTH_1',
|
|
110
|
+
'1M': 'MONTH_1', // not in swap
|
|
100
111
|
},
|
|
101
112
|
'urls': {
|
|
102
113
|
'logo': 'https://user-images.githubusercontent.com/1294454/27766817-e9456312-5ee6-11e7-9b3c-b628ca5626a5.jpg',
|
|
103
114
|
'api': {
|
|
104
|
-
'
|
|
115
|
+
'spot': 'https://api.poloniex.com',
|
|
116
|
+
'swap': 'https://api.poloniex.com',
|
|
105
117
|
},
|
|
106
118
|
'test': {
|
|
107
|
-
'
|
|
119
|
+
'spot': 'https://sand-spot-api-gateway.poloniex.com',
|
|
108
120
|
},
|
|
109
121
|
'www': 'https://www.poloniex.com',
|
|
110
122
|
'doc': 'https://api-docs.poloniex.com/spot/',
|
|
@@ -191,6 +203,55 @@ class poloniex extends poloniex$1 {
|
|
|
191
203
|
'smartorders/{id}': 20,
|
|
192
204
|
},
|
|
193
205
|
},
|
|
206
|
+
'swapPublic': {
|
|
207
|
+
'get': {
|
|
208
|
+
// 300 calls / second
|
|
209
|
+
'v3/market/allInstruments': 2 / 3,
|
|
210
|
+
'v3/market/instruments': 2 / 3,
|
|
211
|
+
'v3/market/orderBook': 2 / 3,
|
|
212
|
+
'v3/market/candles': 10,
|
|
213
|
+
'v3/market/indexPriceCandlesticks': 10,
|
|
214
|
+
'v3/market/premiumIndexCandlesticks': 10,
|
|
215
|
+
'v3/market/markPriceCandlesticks': 10,
|
|
216
|
+
'v3/market/trades': 2 / 3,
|
|
217
|
+
'v3/market/liquidationOrder': 2 / 3,
|
|
218
|
+
'v3/market/tickers': 2 / 3,
|
|
219
|
+
'v3/market/markPrice': 2 / 3,
|
|
220
|
+
'v3/market/indexPrice': 2 / 3,
|
|
221
|
+
'v3/market/indexPriceComponents': 2 / 3,
|
|
222
|
+
'v3/market/fundingRate': 2 / 3,
|
|
223
|
+
'v3/market/openInterest': 2 / 3,
|
|
224
|
+
'v3/market/insurance': 2 / 3,
|
|
225
|
+
'v3/market/riskLimit': 2 / 3,
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
'swapPrivate': {
|
|
229
|
+
'get': {
|
|
230
|
+
'v3/account/balance': 4,
|
|
231
|
+
'v3/account/bills': 20,
|
|
232
|
+
'v3/trade/order/opens': 20,
|
|
233
|
+
'v3/trade/order/trades': 20,
|
|
234
|
+
'v3/trade/order/history': 20,
|
|
235
|
+
'v3/trade/position/opens': 20,
|
|
236
|
+
'v3/trade/position/history': 20,
|
|
237
|
+
'v3/position/leverages': 20,
|
|
238
|
+
'v3/position/mode': 20,
|
|
239
|
+
},
|
|
240
|
+
'post': {
|
|
241
|
+
'v3/trade/order': 4,
|
|
242
|
+
'v3/trade/orders': 40,
|
|
243
|
+
'v3/trade/position': 20,
|
|
244
|
+
'v3/trade/positionAll': 100,
|
|
245
|
+
'v3/position/leverage': 20,
|
|
246
|
+
'v3/position/mode': 20,
|
|
247
|
+
'v3/trade/position/margin': 20,
|
|
248
|
+
},
|
|
249
|
+
'delete': {
|
|
250
|
+
'v3/trade/order': 2,
|
|
251
|
+
'v3/trade/batchOrders': 20,
|
|
252
|
+
'v3/trade/allOrders': 20,
|
|
253
|
+
},
|
|
254
|
+
},
|
|
194
255
|
},
|
|
195
256
|
'fees': {
|
|
196
257
|
'trading': {
|
|
@@ -239,6 +300,7 @@ class poloniex extends poloniex$1 {
|
|
|
239
300
|
'UST': 'USTC',
|
|
240
301
|
},
|
|
241
302
|
'options': {
|
|
303
|
+
'defaultType': 'spot',
|
|
242
304
|
'createMarketBuyOrderRequiresPrice': true,
|
|
243
305
|
'networks': {
|
|
244
306
|
'BEP20': 'BSC',
|
|
@@ -285,7 +347,7 @@ class poloniex extends poloniex$1 {
|
|
|
285
347
|
'timeInForce': {
|
|
286
348
|
'IOC': true,
|
|
287
349
|
'FOK': true,
|
|
288
|
-
'PO':
|
|
350
|
+
'PO': true,
|
|
289
351
|
'GTD': false,
|
|
290
352
|
},
|
|
291
353
|
'hedged': false,
|
|
@@ -296,7 +358,9 @@ class poloniex extends poloniex$1 {
|
|
|
296
358
|
'trailing': false,
|
|
297
359
|
'iceberg': false,
|
|
298
360
|
},
|
|
299
|
-
'createOrders':
|
|
361
|
+
'createOrders': {
|
|
362
|
+
'max': 20,
|
|
363
|
+
},
|
|
300
364
|
'fetchMyTrades': {
|
|
301
365
|
'marginMode': false,
|
|
302
366
|
'limit': 1000,
|
|
@@ -326,13 +390,51 @@ class poloniex extends poloniex$1 {
|
|
|
326
390
|
'spot': {
|
|
327
391
|
'extends': 'default',
|
|
328
392
|
},
|
|
393
|
+
'forContracts': {
|
|
394
|
+
'extends': 'default',
|
|
395
|
+
'createOrder': {
|
|
396
|
+
'marginMode': true,
|
|
397
|
+
'triggerPrice': false,
|
|
398
|
+
'hedged': true,
|
|
399
|
+
'stpMode': true,
|
|
400
|
+
'marketBuyByCost': false,
|
|
401
|
+
},
|
|
402
|
+
'createOrders': {
|
|
403
|
+
'max': 10,
|
|
404
|
+
},
|
|
405
|
+
'fetchOpenOrders': {
|
|
406
|
+
'limit': 100,
|
|
407
|
+
},
|
|
408
|
+
'fetchClosedOrders': {
|
|
409
|
+
'marginMode': false,
|
|
410
|
+
'limit': 100,
|
|
411
|
+
'daysBack': undefined,
|
|
412
|
+
'daysBackCanceled': 1 / 6,
|
|
413
|
+
'untilDays': undefined,
|
|
414
|
+
'trigger': false,
|
|
415
|
+
'trailing': false,
|
|
416
|
+
'symbolRequired': false,
|
|
417
|
+
},
|
|
418
|
+
'fetchMyTrades': {
|
|
419
|
+
'limit': 100,
|
|
420
|
+
'untilDays': 90,
|
|
421
|
+
},
|
|
422
|
+
},
|
|
329
423
|
'swap': {
|
|
330
|
-
'linear':
|
|
331
|
-
|
|
424
|
+
'linear': {
|
|
425
|
+
'extends': 'forContracts',
|
|
426
|
+
},
|
|
427
|
+
'inverse': {
|
|
428
|
+
'extends': 'forContracts',
|
|
429
|
+
},
|
|
332
430
|
},
|
|
333
431
|
'future': {
|
|
334
|
-
'linear':
|
|
335
|
-
|
|
432
|
+
'linear': {
|
|
433
|
+
'extends': 'forContracts',
|
|
434
|
+
},
|
|
435
|
+
'inverse': {
|
|
436
|
+
'extends': 'forContracts',
|
|
437
|
+
},
|
|
336
438
|
},
|
|
337
439
|
},
|
|
338
440
|
'precisionMode': number.TICK_SIZE,
|
|
@@ -451,6 +553,8 @@ class poloniex extends poloniex$1 {
|
|
|
451
553
|
});
|
|
452
554
|
}
|
|
453
555
|
parseOHLCV(ohlcv, market = undefined) {
|
|
556
|
+
//
|
|
557
|
+
// spot:
|
|
454
558
|
//
|
|
455
559
|
// [
|
|
456
560
|
// [
|
|
@@ -471,6 +575,32 @@ class poloniex extends poloniex$1 {
|
|
|
471
575
|
// ]
|
|
472
576
|
// ]
|
|
473
577
|
//
|
|
578
|
+
// contract:
|
|
579
|
+
//
|
|
580
|
+
// [
|
|
581
|
+
// "84207.02",
|
|
582
|
+
// "84320.85",
|
|
583
|
+
// "84207.02",
|
|
584
|
+
// "84253.83",
|
|
585
|
+
// "3707.5395",
|
|
586
|
+
// "44",
|
|
587
|
+
// "14",
|
|
588
|
+
// "1740770040000",
|
|
589
|
+
// "1740770099999",
|
|
590
|
+
// ],
|
|
591
|
+
//
|
|
592
|
+
const ohlcvLength = ohlcv.length;
|
|
593
|
+
const isContract = ohlcvLength === 9;
|
|
594
|
+
if (isContract) {
|
|
595
|
+
return [
|
|
596
|
+
this.safeInteger(ohlcv, 7),
|
|
597
|
+
this.safeNumber(ohlcv, 2),
|
|
598
|
+
this.safeNumber(ohlcv, 1),
|
|
599
|
+
this.safeNumber(ohlcv, 0),
|
|
600
|
+
this.safeNumber(ohlcv, 3),
|
|
601
|
+
this.safeNumber(ohlcv, 5),
|
|
602
|
+
];
|
|
603
|
+
}
|
|
474
604
|
return [
|
|
475
605
|
this.safeInteger(ohlcv, 12),
|
|
476
606
|
this.safeNumber(ohlcv, 2),
|
|
@@ -485,6 +615,7 @@ class poloniex extends poloniex$1 {
|
|
|
485
615
|
* @name poloniex#fetchOHLCV
|
|
486
616
|
* @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
487
617
|
* @see https://api-docs.poloniex.com/spot/api/public/market-data#candles
|
|
618
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/market/get-kline-data
|
|
488
619
|
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
489
620
|
* @param {string} timeframe the length of time each candle represents
|
|
490
621
|
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
@@ -506,14 +637,41 @@ class poloniex extends poloniex$1 {
|
|
|
506
637
|
'symbol': market['id'],
|
|
507
638
|
'interval': this.safeString(this.timeframes, timeframe, timeframe),
|
|
508
639
|
};
|
|
640
|
+
const keyStart = market['spot'] ? 'startTime' : 'sTime';
|
|
641
|
+
const keyEnd = market['spot'] ? 'endTime' : 'eTime';
|
|
509
642
|
if (since !== undefined) {
|
|
510
|
-
request[
|
|
643
|
+
request[keyStart] = since;
|
|
511
644
|
}
|
|
512
645
|
if (limit !== undefined) {
|
|
513
646
|
// limit should in between 100 and 500
|
|
514
647
|
request['limit'] = limit;
|
|
515
648
|
}
|
|
516
|
-
[request, params] = this.handleUntilOption(
|
|
649
|
+
[request, params] = this.handleUntilOption(keyEnd, request, params);
|
|
650
|
+
if (market['contract']) {
|
|
651
|
+
if (this.inArray(timeframe, ['10m', '1M'])) {
|
|
652
|
+
throw new errors.NotSupported(this.id + ' ' + timeframe + ' ' + market['type'] + ' fetchOHLCV is not supported');
|
|
653
|
+
}
|
|
654
|
+
const responseRaw = await this.swapPublicGetV3MarketCandles(this.extend(request, params));
|
|
655
|
+
//
|
|
656
|
+
// {
|
|
657
|
+
// code: "200",
|
|
658
|
+
// msg: "Success",
|
|
659
|
+
// data: [
|
|
660
|
+
// [
|
|
661
|
+
// "84207.02",
|
|
662
|
+
// "84320.85",
|
|
663
|
+
// "84207.02",
|
|
664
|
+
// "84253.83",
|
|
665
|
+
// "3707.5395",
|
|
666
|
+
// "44",
|
|
667
|
+
// "14",
|
|
668
|
+
// "1740770040000",
|
|
669
|
+
// "1740770099999",
|
|
670
|
+
// ],
|
|
671
|
+
//
|
|
672
|
+
const data = this.safeList(responseRaw, 'data');
|
|
673
|
+
return this.parseOHLCVs(data, market, timeframe, since, limit);
|
|
674
|
+
}
|
|
517
675
|
const response = await this.publicGetMarketsSymbolCandles(this.extend(request, params));
|
|
518
676
|
//
|
|
519
677
|
// [
|
|
@@ -550,10 +708,16 @@ class poloniex extends poloniex$1 {
|
|
|
550
708
|
* @name poloniex#fetchMarkets
|
|
551
709
|
* @description retrieves data on all markets for poloniex
|
|
552
710
|
* @see https://api-docs.poloniex.com/spot/api/public/reference-data#symbol-information
|
|
711
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/market/get-all-product-info
|
|
553
712
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
554
713
|
* @returns {object[]} an array of objects representing market data
|
|
555
714
|
*/
|
|
556
715
|
async fetchMarkets(params = {}) {
|
|
716
|
+
const promises = [this.fetchSpotMarkets(params), this.fetchSwapMarkets(params)];
|
|
717
|
+
const results = await Promise.all(promises);
|
|
718
|
+
return this.arrayConcat(results[0], results[1]);
|
|
719
|
+
}
|
|
720
|
+
async fetchSpotMarkets(params = {}) {
|
|
557
721
|
const markets = await this.publicGetMarkets(params);
|
|
558
722
|
//
|
|
559
723
|
// [
|
|
@@ -580,7 +744,59 @@ class poloniex extends poloniex$1 {
|
|
|
580
744
|
//
|
|
581
745
|
return this.parseMarkets(markets);
|
|
582
746
|
}
|
|
747
|
+
async fetchSwapMarkets(params = {}) {
|
|
748
|
+
// do similar as spot per https://api-docs.poloniex.com/v3/futures/api/market/get-product-info
|
|
749
|
+
const response = await this.swapPublicGetV3MarketAllInstruments(params);
|
|
750
|
+
//
|
|
751
|
+
// {
|
|
752
|
+
// "code": "200",
|
|
753
|
+
// "msg": "Success",
|
|
754
|
+
// "data": [
|
|
755
|
+
// {
|
|
756
|
+
// "symbol": "BNB_USDT_PERP",
|
|
757
|
+
// "bAsset": ".PBNBUSDT",
|
|
758
|
+
// "bCcy": "BNB",
|
|
759
|
+
// "qCcy": "USDT",
|
|
760
|
+
// "visibleStartTime": "1620390600000",
|
|
761
|
+
// "tradableStartTime": "1620390600000",
|
|
762
|
+
// "sCcy": "USDT",
|
|
763
|
+
// "tSz": "0.001",
|
|
764
|
+
// "pxScale": "0.001,0.01,0.1,1,10",
|
|
765
|
+
// "lotSz": "1",
|
|
766
|
+
// "minSz": "1",
|
|
767
|
+
// "ctVal": "0.1",
|
|
768
|
+
// "status": "OPEN",
|
|
769
|
+
// "oDate": "1620287590000",
|
|
770
|
+
// "maxPx": "1000000",
|
|
771
|
+
// "minPx": "0.001",
|
|
772
|
+
// "maxQty": "1000000",
|
|
773
|
+
// "minQty": "1",
|
|
774
|
+
// "maxLever": "50",
|
|
775
|
+
// "lever": "10",
|
|
776
|
+
// "ctType": "LINEAR",
|
|
777
|
+
// "alias": "",
|
|
778
|
+
// "iM": "0.02",
|
|
779
|
+
// "mM": "0.0115",
|
|
780
|
+
// "mR": "2000",
|
|
781
|
+
// "buyLmt": "",
|
|
782
|
+
// "sellLmt": "",
|
|
783
|
+
// "ordPxRange": "0.05",
|
|
784
|
+
// "marketMaxQty": "2800",
|
|
785
|
+
// "limitMaxQty": "1000000"
|
|
786
|
+
// },
|
|
787
|
+
//
|
|
788
|
+
const markets = this.safeList(response, 'data');
|
|
789
|
+
return this.parseMarkets(markets);
|
|
790
|
+
}
|
|
583
791
|
parseMarket(market) {
|
|
792
|
+
if ('ctType' in market) {
|
|
793
|
+
return this.parseSwapMarket(market);
|
|
794
|
+
}
|
|
795
|
+
else {
|
|
796
|
+
return this.parseSpotMarket(market);
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
parseSpotMarket(market) {
|
|
584
800
|
const id = this.safeString(market, 'symbol');
|
|
585
801
|
const baseId = this.safeString(market, 'baseCurrencyName');
|
|
586
802
|
const quoteId = this.safeString(market, 'quoteCurrencyName');
|
|
@@ -636,6 +852,116 @@ class poloniex extends poloniex$1 {
|
|
|
636
852
|
'info': market,
|
|
637
853
|
};
|
|
638
854
|
}
|
|
855
|
+
parseSwapMarket(market) {
|
|
856
|
+
//
|
|
857
|
+
// {
|
|
858
|
+
// "symbol": "BNB_USDT_PERP",
|
|
859
|
+
// "bAsset": ".PBNBUSDT",
|
|
860
|
+
// "bCcy": "BNB",
|
|
861
|
+
// "qCcy": "USDT",
|
|
862
|
+
// "visibleStartTime": "1620390600000",
|
|
863
|
+
// "tradableStartTime": "1620390600000",
|
|
864
|
+
// "sCcy": "USDT",
|
|
865
|
+
// "tSz": "0.001",
|
|
866
|
+
// "pxScale": "0.001,0.01,0.1,1,10",
|
|
867
|
+
// "lotSz": "1",
|
|
868
|
+
// "minSz": "1",
|
|
869
|
+
// "ctVal": "0.1",
|
|
870
|
+
// "status": "OPEN",
|
|
871
|
+
// "oDate": "1620287590000",
|
|
872
|
+
// "maxPx": "1000000",
|
|
873
|
+
// "minPx": "0.001",
|
|
874
|
+
// "maxQty": "1000000",
|
|
875
|
+
// "minQty": "1",
|
|
876
|
+
// "maxLever": "50",
|
|
877
|
+
// "lever": "10",
|
|
878
|
+
// "ctType": "LINEAR",
|
|
879
|
+
// "alias": "",
|
|
880
|
+
// "iM": "0.02",
|
|
881
|
+
// "mM": "0.0115",
|
|
882
|
+
// "mR": "2000",
|
|
883
|
+
// "buyLmt": "",
|
|
884
|
+
// "sellLmt": "",
|
|
885
|
+
// "ordPxRange": "0.05",
|
|
886
|
+
// "marketMaxQty": "2800",
|
|
887
|
+
// "limitMaxQty": "1000000"
|
|
888
|
+
// },
|
|
889
|
+
//
|
|
890
|
+
const id = this.safeString(market, 'symbol');
|
|
891
|
+
const baseId = this.safeString(market, 'bCcy');
|
|
892
|
+
const quoteId = this.safeString(market, 'qCcy');
|
|
893
|
+
const settleId = this.safeString(market, 'sCcy');
|
|
894
|
+
const base = this.safeCurrencyCode(baseId);
|
|
895
|
+
const quote = this.safeCurrencyCode(quoteId);
|
|
896
|
+
const settle = this.safeCurrencyCode(settleId);
|
|
897
|
+
const status = this.safeString(market, 'status');
|
|
898
|
+
const active = status === 'OPEN';
|
|
899
|
+
const linear = market['ctType'] === 'LINEAR';
|
|
900
|
+
let symbol = base + '/' + quote;
|
|
901
|
+
if (linear) {
|
|
902
|
+
symbol += ':' + settle;
|
|
903
|
+
}
|
|
904
|
+
else {
|
|
905
|
+
// actually, exchange does not have any inverse future now
|
|
906
|
+
symbol += ':' + base;
|
|
907
|
+
}
|
|
908
|
+
const alias = this.safeString(market, 'alias');
|
|
909
|
+
let type = 'swap';
|
|
910
|
+
if (alias !== undefined) {
|
|
911
|
+
type = 'future';
|
|
912
|
+
}
|
|
913
|
+
return {
|
|
914
|
+
'id': id,
|
|
915
|
+
'symbol': symbol,
|
|
916
|
+
'base': base,
|
|
917
|
+
'quote': quote,
|
|
918
|
+
'settle': settle,
|
|
919
|
+
'baseId': baseId,
|
|
920
|
+
'quoteId': quoteId,
|
|
921
|
+
'settleId': settleId,
|
|
922
|
+
'type': (type === 'future') ? 'future' : 'swap',
|
|
923
|
+
'spot': false,
|
|
924
|
+
'margin': false,
|
|
925
|
+
'swap': type === 'swap',
|
|
926
|
+
'future': type === 'future',
|
|
927
|
+
'option': false,
|
|
928
|
+
'active': active,
|
|
929
|
+
'contract': true,
|
|
930
|
+
'linear': linear,
|
|
931
|
+
'inverse': !linear,
|
|
932
|
+
'contractSize': this.safeNumber(market, 'ctVal'),
|
|
933
|
+
'expiry': undefined,
|
|
934
|
+
'expiryDatetime': undefined,
|
|
935
|
+
'strike': undefined,
|
|
936
|
+
'optionType': undefined,
|
|
937
|
+
'taker': this.safeNumber(market, 'tFee'),
|
|
938
|
+
'maker': this.safeNumber(market, 'mFee'),
|
|
939
|
+
'precision': {
|
|
940
|
+
'amount': this.safeNumber(market, 'lotSz'),
|
|
941
|
+
'price': this.safeNumber(market, 'tSz'),
|
|
942
|
+
},
|
|
943
|
+
'limits': {
|
|
944
|
+
'amount': {
|
|
945
|
+
'min': this.safeNumber(market, 'minSz'),
|
|
946
|
+
'max': this.safeNumber(market, 'limitMaxQty'),
|
|
947
|
+
},
|
|
948
|
+
'price': {
|
|
949
|
+
'min': this.safeNumber(market, 'minPx'),
|
|
950
|
+
'max': this.safeNumber(market, 'maxPx'),
|
|
951
|
+
},
|
|
952
|
+
'cost': {
|
|
953
|
+
'min': undefined,
|
|
954
|
+
'max': undefined,
|
|
955
|
+
},
|
|
956
|
+
'leverage': {
|
|
957
|
+
'max': this.safeNumber(market, 'maxLever'),
|
|
958
|
+
'min': undefined,
|
|
959
|
+
},
|
|
960
|
+
},
|
|
961
|
+
'created': this.safeInteger(market, 'oDate'),
|
|
962
|
+
'info': market,
|
|
963
|
+
};
|
|
964
|
+
}
|
|
639
965
|
/**
|
|
640
966
|
* @method
|
|
641
967
|
* @name poloniex#fetchTime
|
|
@@ -649,6 +975,8 @@ class poloniex extends poloniex$1 {
|
|
|
649
975
|
return this.safeInteger(response, 'serverTime');
|
|
650
976
|
}
|
|
651
977
|
parseTicker(ticker, market = undefined) {
|
|
978
|
+
//
|
|
979
|
+
// spot:
|
|
652
980
|
//
|
|
653
981
|
// {
|
|
654
982
|
// "symbol" : "BTC_USDT",
|
|
@@ -671,36 +999,56 @@ class poloniex extends poloniex$1 {
|
|
|
671
999
|
// "markPrice" : "26444.11"
|
|
672
1000
|
// }
|
|
673
1001
|
//
|
|
674
|
-
|
|
675
|
-
|
|
1002
|
+
// swap:
|
|
1003
|
+
//
|
|
1004
|
+
// {
|
|
1005
|
+
// "s": "XRP_USDT_PERP",
|
|
1006
|
+
// "o": "2.0503",
|
|
1007
|
+
// "l": "2.0066",
|
|
1008
|
+
// "h": "2.216",
|
|
1009
|
+
// "c": "2.1798",
|
|
1010
|
+
// "qty": "21090",
|
|
1011
|
+
// "amt": "451339.65",
|
|
1012
|
+
// "tC": "3267",
|
|
1013
|
+
// "sT": "1740736380000",
|
|
1014
|
+
// "cT": "1740822777559",
|
|
1015
|
+
// "dN": "XRP/USDT/PERP",
|
|
1016
|
+
// "dC": "0.0632",
|
|
1017
|
+
// "bPx": "2.175",
|
|
1018
|
+
// "bSz": "3",
|
|
1019
|
+
// "aPx": "2.1831",
|
|
1020
|
+
// "aSz": "111",
|
|
1021
|
+
// "mPx": "2.1798",
|
|
1022
|
+
// "iPx": "2.1834"
|
|
1023
|
+
// },
|
|
1024
|
+
//
|
|
1025
|
+
const timestamp = this.safeInteger2(ticker, 'ts', 'cT');
|
|
1026
|
+
const marketId = this.safeString2(ticker, 'symbol', 's');
|
|
676
1027
|
market = this.safeMarket(marketId);
|
|
677
|
-
const
|
|
678
|
-
const relativeChange = this.safeString(ticker, 'dailyChange');
|
|
1028
|
+
const relativeChange = this.safeString2(ticker, 'dailyChange', 'dc');
|
|
679
1029
|
const percentage = Precise["default"].stringMul(relativeChange, '100');
|
|
680
|
-
const bidVolume = this.safeString(ticker, 'bidQuantity');
|
|
681
|
-
const askVolume = this.safeString(ticker, 'askQuantity');
|
|
682
1030
|
return this.safeTicker({
|
|
683
1031
|
'id': marketId,
|
|
684
1032
|
'symbol': market['symbol'],
|
|
685
1033
|
'timestamp': timestamp,
|
|
686
1034
|
'datetime': this.iso8601(timestamp),
|
|
687
|
-
'high': this.
|
|
688
|
-
'low': this.
|
|
689
|
-
'bid': this.
|
|
690
|
-
'bidVolume':
|
|
691
|
-
'ask': this.
|
|
692
|
-
'askVolume':
|
|
1035
|
+
'high': this.safeString2(ticker, 'high', 'h'),
|
|
1036
|
+
'low': this.safeString2(ticker, 'low', 'l'),
|
|
1037
|
+
'bid': this.safeString2(ticker, 'bid', 'bPx'),
|
|
1038
|
+
'bidVolume': this.safeString2(ticker, 'bidQuantity', 'bSz'),
|
|
1039
|
+
'ask': this.safeString2(ticker, 'ask', 'aPx'),
|
|
1040
|
+
'askVolume': this.safeString2(ticker, 'askQuantity', 'aSz'),
|
|
693
1041
|
'vwap': undefined,
|
|
694
|
-
'open': this.
|
|
695
|
-
'close': close,
|
|
696
|
-
'last': close,
|
|
1042
|
+
'open': this.safeString2(ticker, 'open', 'o'),
|
|
1043
|
+
'close': this.safeString2(ticker, 'close', 'c'),
|
|
697
1044
|
'previousClose': undefined,
|
|
698
1045
|
'change': undefined,
|
|
699
1046
|
'percentage': percentage,
|
|
700
1047
|
'average': undefined,
|
|
701
|
-
'baseVolume': this.
|
|
702
|
-
'quoteVolume': this.
|
|
703
|
-
'markPrice': this.
|
|
1048
|
+
'baseVolume': this.safeString2(ticker, 'quantity', 'qty'),
|
|
1049
|
+
'quoteVolume': this.safeString2(ticker, 'amount', 'amt'),
|
|
1050
|
+
'markPrice': this.safeString2(ticker, 'markPrice', 'mPx'),
|
|
1051
|
+
'indexPrice': this.safeString(ticker, 'iPx'),
|
|
704
1052
|
'info': ticker,
|
|
705
1053
|
}, market);
|
|
706
1054
|
}
|
|
@@ -709,13 +1057,58 @@ class poloniex extends poloniex$1 {
|
|
|
709
1057
|
* @name poloniex#fetchTickers
|
|
710
1058
|
* @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
711
1059
|
* @see https://api-docs.poloniex.com/spot/api/public/market-data#ticker
|
|
1060
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/market/get-market-info
|
|
712
1061
|
* @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
713
1062
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
714
1063
|
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
715
1064
|
*/
|
|
716
1065
|
async fetchTickers(symbols = undefined, params = {}) {
|
|
717
1066
|
await this.loadMarkets();
|
|
718
|
-
|
|
1067
|
+
let market = undefined;
|
|
1068
|
+
const request = {};
|
|
1069
|
+
if (symbols !== undefined) {
|
|
1070
|
+
symbols = this.marketSymbols(symbols, undefined, true, true, false);
|
|
1071
|
+
const symbolsLength = symbols.length;
|
|
1072
|
+
if (symbolsLength > 0) {
|
|
1073
|
+
market = this.market(symbols[0]);
|
|
1074
|
+
if (symbolsLength === 1) {
|
|
1075
|
+
request['symbol'] = market['id'];
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
let marketType = undefined;
|
|
1080
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
|
|
1081
|
+
if (marketType === 'swap') {
|
|
1082
|
+
const responseRaw = await this.swapPublicGetV3MarketTickers(this.extend(request, params));
|
|
1083
|
+
//
|
|
1084
|
+
// {
|
|
1085
|
+
// "code": "200",
|
|
1086
|
+
// "msg": "Success",
|
|
1087
|
+
// "data": [
|
|
1088
|
+
// {
|
|
1089
|
+
// "s": "XRP_USDT_PERP",
|
|
1090
|
+
// "o": "2.0503",
|
|
1091
|
+
// "l": "2.0066",
|
|
1092
|
+
// "h": "2.216",
|
|
1093
|
+
// "c": "2.1798",
|
|
1094
|
+
// "qty": "21090",
|
|
1095
|
+
// "amt": "451339.65",
|
|
1096
|
+
// "tC": "3267",
|
|
1097
|
+
// "sT": "1740736380000",
|
|
1098
|
+
// "cT": "1740822777559",
|
|
1099
|
+
// "dN": "XRP/USDT/PERP",
|
|
1100
|
+
// "dC": "0.0632",
|
|
1101
|
+
// "bPx": "2.175",
|
|
1102
|
+
// "bSz": "3",
|
|
1103
|
+
// "aPx": "2.1831",
|
|
1104
|
+
// "aSz": "111",
|
|
1105
|
+
// "mPx": "2.1798",
|
|
1106
|
+
// "iPx": "2.1834"
|
|
1107
|
+
// },
|
|
1108
|
+
//
|
|
1109
|
+
const data = this.safeList(responseRaw, 'data');
|
|
1110
|
+
return this.parseTickers(data, symbols);
|
|
1111
|
+
}
|
|
719
1112
|
const response = await this.publicGetMarketsTicker24h(params);
|
|
720
1113
|
//
|
|
721
1114
|
// [
|
|
@@ -886,6 +1279,7 @@ class poloniex extends poloniex$1 {
|
|
|
886
1279
|
* @name poloniex#fetchTicker
|
|
887
1280
|
* @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
888
1281
|
* @see https://api-docs.poloniex.com/spot/api/public/market-data#ticker
|
|
1282
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/market/get-market-info
|
|
889
1283
|
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
890
1284
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
891
1285
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
@@ -896,6 +1290,10 @@ class poloniex extends poloniex$1 {
|
|
|
896
1290
|
const request = {
|
|
897
1291
|
'symbol': market['id'],
|
|
898
1292
|
};
|
|
1293
|
+
if (market['contract']) {
|
|
1294
|
+
const tickers = await this.fetchTickers([market['symbol']], params);
|
|
1295
|
+
return this.safeDict(tickers, symbol);
|
|
1296
|
+
}
|
|
899
1297
|
const response = await this.publicGetMarketsSymbolTicker24h(this.extend(request, params));
|
|
900
1298
|
//
|
|
901
1299
|
// {
|
|
@@ -925,6 +1323,8 @@ class poloniex extends poloniex$1 {
|
|
|
925
1323
|
//
|
|
926
1324
|
// fetchTrades
|
|
927
1325
|
//
|
|
1326
|
+
// spot:
|
|
1327
|
+
//
|
|
928
1328
|
// {
|
|
929
1329
|
// "id" : "60014521",
|
|
930
1330
|
// "price" : "23162.94",
|
|
@@ -935,8 +1335,21 @@ class poloniex extends poloniex$1 {
|
|
|
935
1335
|
// "createTime" : 1659684602036
|
|
936
1336
|
// }
|
|
937
1337
|
//
|
|
1338
|
+
// swap:
|
|
1339
|
+
//
|
|
1340
|
+
// {
|
|
1341
|
+
// "id": "105807376",
|
|
1342
|
+
// "side": "buy",
|
|
1343
|
+
// "px": "84410.57",
|
|
1344
|
+
// "qty": "1",
|
|
1345
|
+
// "amt": "84.41057",
|
|
1346
|
+
// "cT": "1740777563557",
|
|
1347
|
+
// }
|
|
1348
|
+
//
|
|
938
1349
|
// fetchMyTrades
|
|
939
1350
|
//
|
|
1351
|
+
// spot:
|
|
1352
|
+
//
|
|
940
1353
|
// {
|
|
941
1354
|
// "id": "32164924331503616",
|
|
942
1355
|
// "symbol": "LINK_USDT",
|
|
@@ -955,6 +1368,34 @@ class poloniex extends poloniex$1 {
|
|
|
955
1368
|
// "clientOrderId": "myOwnId-321"
|
|
956
1369
|
// }
|
|
957
1370
|
//
|
|
1371
|
+
// swap:
|
|
1372
|
+
//
|
|
1373
|
+
// {
|
|
1374
|
+
// "symbol": "BTC_USDT_PERP",
|
|
1375
|
+
// "trdId": "105813553",
|
|
1376
|
+
// "side": "SELL",
|
|
1377
|
+
// "type": "TRADE",
|
|
1378
|
+
// "mgnMode": "CROSS",
|
|
1379
|
+
// "ordType": "MARKET",
|
|
1380
|
+
// "clOrdId": "polo418912106147315112",
|
|
1381
|
+
// "role": "TAKER",
|
|
1382
|
+
// "px": "84704.9",
|
|
1383
|
+
// "qty": "1",
|
|
1384
|
+
// "cTime": "1740842829430",
|
|
1385
|
+
// "uTime": "1740842829450",
|
|
1386
|
+
// "feeCcy": "USDT",
|
|
1387
|
+
// "feeAmt": "0.04235245",
|
|
1388
|
+
// "deductCcy": "",
|
|
1389
|
+
// "deductAmt": "0",
|
|
1390
|
+
// "feeRate": "0.0005",
|
|
1391
|
+
// "id": "418912106342654592",
|
|
1392
|
+
// "posSide": "BOTH",
|
|
1393
|
+
// "ordId": "418912106147315112",
|
|
1394
|
+
// "qCcy": "USDT",
|
|
1395
|
+
// "value": "84.7049",
|
|
1396
|
+
// "actType": "TRADING"
|
|
1397
|
+
// },
|
|
1398
|
+
//
|
|
958
1399
|
// fetchOrderTrades (taker trades)
|
|
959
1400
|
//
|
|
960
1401
|
// {
|
|
@@ -975,20 +1416,19 @@ class poloniex extends poloniex$1 {
|
|
|
975
1416
|
// "clientOrderId": ""
|
|
976
1417
|
// }
|
|
977
1418
|
//
|
|
978
|
-
|
|
979
|
-
const
|
|
980
|
-
const
|
|
981
|
-
const timestamp = this.safeInteger2(trade, 'ts', 'createTime');
|
|
1419
|
+
const id = this.safeStringN(trade, ['id', 'tradeID', 'trdId']);
|
|
1420
|
+
const orderId = this.safeString2(trade, 'orderId', 'ordId');
|
|
1421
|
+
const timestamp = this.safeIntegerN(trade, ['ts', 'createTime', 'cT', 'cTime']);
|
|
982
1422
|
const marketId = this.safeString(trade, 'symbol');
|
|
983
1423
|
market = this.safeMarket(marketId, market, '_');
|
|
984
1424
|
const symbol = market['symbol'];
|
|
985
1425
|
const side = this.safeStringLower2(trade, 'side', 'takerSide');
|
|
986
1426
|
let fee = undefined;
|
|
987
|
-
const priceString = this.
|
|
988
|
-
const amountString = this.
|
|
989
|
-
const costString = this.
|
|
990
|
-
const feeCurrencyId = this.
|
|
991
|
-
const feeCostString = this.
|
|
1427
|
+
const priceString = this.safeString2(trade, 'price', 'px');
|
|
1428
|
+
const amountString = this.safeString2(trade, 'quantity', 'qty');
|
|
1429
|
+
const costString = this.safeString2(trade, 'amount', 'amt');
|
|
1430
|
+
const feeCurrencyId = this.safeString2(trade, 'feeCurrency', 'feeCcy');
|
|
1431
|
+
const feeCostString = this.safeString2(trade, 'feeAmount', 'feeAmt');
|
|
992
1432
|
if (feeCostString !== undefined) {
|
|
993
1433
|
const feeCurrencyCode = this.safeCurrencyCode(feeCurrencyId);
|
|
994
1434
|
fee = {
|
|
@@ -1003,9 +1443,9 @@ class poloniex extends poloniex$1 {
|
|
|
1003
1443
|
'datetime': this.iso8601(timestamp),
|
|
1004
1444
|
'symbol': symbol,
|
|
1005
1445
|
'order': orderId,
|
|
1006
|
-
'type': this.
|
|
1446
|
+
'type': this.safeStringLower2(trade, 'ordType', 'type'),
|
|
1007
1447
|
'side': side,
|
|
1008
|
-
'takerOrMaker': this.
|
|
1448
|
+
'takerOrMaker': this.safeStringLower2(trade, 'matchRole', 'role'),
|
|
1009
1449
|
'price': priceString,
|
|
1010
1450
|
'amount': amountString,
|
|
1011
1451
|
'cost': costString,
|
|
@@ -1017,6 +1457,7 @@ class poloniex extends poloniex$1 {
|
|
|
1017
1457
|
* @name poloniex#fetchTrades
|
|
1018
1458
|
* @description get the list of most recent trades for a particular symbol
|
|
1019
1459
|
* @see https://api-docs.poloniex.com/spot/api/public/market-data#trades
|
|
1460
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/market/get-execution-info
|
|
1020
1461
|
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
1021
1462
|
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
1022
1463
|
* @param {int} [limit] the maximum amount of trades to fetch
|
|
@@ -1030,7 +1471,26 @@ class poloniex extends poloniex$1 {
|
|
|
1030
1471
|
'symbol': market['id'],
|
|
1031
1472
|
};
|
|
1032
1473
|
if (limit !== undefined) {
|
|
1033
|
-
request['limit'] = limit;
|
|
1474
|
+
request['limit'] = limit; // max 1000, for spot & swap
|
|
1475
|
+
}
|
|
1476
|
+
if (market['contract']) {
|
|
1477
|
+
const response = await this.swapPublicGetV3MarketTrades(this.extend(request, params));
|
|
1478
|
+
//
|
|
1479
|
+
// {
|
|
1480
|
+
// code: "200",
|
|
1481
|
+
// msg: "Success",
|
|
1482
|
+
// data: [
|
|
1483
|
+
// {
|
|
1484
|
+
// id: "105807320", // descending order
|
|
1485
|
+
// side: "sell",
|
|
1486
|
+
// px: "84383.93",
|
|
1487
|
+
// qty: "1",
|
|
1488
|
+
// amt: "84.38393",
|
|
1489
|
+
// cT: "1740777074704",
|
|
1490
|
+
// },
|
|
1491
|
+
//
|
|
1492
|
+
const tradesList = this.safeList(response, 'data');
|
|
1493
|
+
return this.parseTrades(tradesList, market, since, limit);
|
|
1034
1494
|
}
|
|
1035
1495
|
const trades = await this.publicGetMarketsSymbolTrades(this.extend(request, params));
|
|
1036
1496
|
//
|
|
@@ -1053,6 +1513,7 @@ class poloniex extends poloniex$1 {
|
|
|
1053
1513
|
* @name poloniex#fetchMyTrades
|
|
1054
1514
|
* @description fetch all trades made by the user
|
|
1055
1515
|
* @see https://api-docs.poloniex.com/spot/api/private/trade#trade-history
|
|
1516
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/trade/get-execution-details
|
|
1056
1517
|
* @param {string} symbol unified market symbol
|
|
1057
1518
|
* @param {int} [since] the earliest time in ms to fetch trades for
|
|
1058
1519
|
* @param {int} [limit] the maximum number of trades structures to retrieve
|
|
@@ -1072,17 +1533,61 @@ class poloniex extends poloniex$1 {
|
|
|
1072
1533
|
if (symbol !== undefined) {
|
|
1073
1534
|
market = this.market(symbol);
|
|
1074
1535
|
}
|
|
1536
|
+
let marketType = undefined;
|
|
1537
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchMyTrades', market, params);
|
|
1538
|
+
const isContract = this.inArray(marketType, ['swap', 'future']);
|
|
1075
1539
|
let request = {
|
|
1076
1540
|
// 'from': 12345678, // A 'trade Id'. The query begins at ‘from'.
|
|
1077
1541
|
// 'direction': 'PRE', // PRE, NEXT The direction before or after ‘from'.
|
|
1078
1542
|
};
|
|
1543
|
+
const startKey = isContract ? 'sTime' : 'startTime';
|
|
1544
|
+
const endKey = isContract ? 'eTime' : 'endTime';
|
|
1079
1545
|
if (since !== undefined) {
|
|
1080
|
-
request[
|
|
1546
|
+
request[startKey] = since;
|
|
1081
1547
|
}
|
|
1082
1548
|
if (limit !== undefined) {
|
|
1083
1549
|
request['limit'] = limit;
|
|
1084
1550
|
}
|
|
1085
|
-
|
|
1551
|
+
if (isContract && symbol !== undefined) {
|
|
1552
|
+
request['symbol'] = market['id'];
|
|
1553
|
+
}
|
|
1554
|
+
[request, params] = this.handleUntilOption(endKey, request, params);
|
|
1555
|
+
if (isContract) {
|
|
1556
|
+
const raw = await this.swapPrivateGetV3TradeOrderTrades(this.extend(request, params));
|
|
1557
|
+
//
|
|
1558
|
+
// {
|
|
1559
|
+
// "code": "200",
|
|
1560
|
+
// "msg": "",
|
|
1561
|
+
// "data": [
|
|
1562
|
+
// {
|
|
1563
|
+
// "symbol": "BTC_USDT_PERP",
|
|
1564
|
+
// "trdId": "105813553",
|
|
1565
|
+
// "side": "SELL",
|
|
1566
|
+
// "type": "TRADE",
|
|
1567
|
+
// "mgnMode": "CROSS",
|
|
1568
|
+
// "ordType": "MARKET",
|
|
1569
|
+
// "clOrdId": "polo418912106147315112",
|
|
1570
|
+
// "role": "TAKER",
|
|
1571
|
+
// "px": "84704.9",
|
|
1572
|
+
// "qty": "1",
|
|
1573
|
+
// "cTime": "1740842829430",
|
|
1574
|
+
// "uTime": "1740842829450",
|
|
1575
|
+
// "feeCcy": "USDT",
|
|
1576
|
+
// "feeAmt": "0.04235245",
|
|
1577
|
+
// "deductCcy": "",
|
|
1578
|
+
// "deductAmt": "0",
|
|
1579
|
+
// "feeRate": "0.0005",
|
|
1580
|
+
// "id": "418912106342654592",
|
|
1581
|
+
// "posSide": "BOTH",
|
|
1582
|
+
// "ordId": "418912106147315112",
|
|
1583
|
+
// "qCcy": "USDT",
|
|
1584
|
+
// "value": "84.7049",
|
|
1585
|
+
// "actType": "TRADING"
|
|
1586
|
+
// },
|
|
1587
|
+
//
|
|
1588
|
+
const data = this.safeList(raw, 'data');
|
|
1589
|
+
return this.parseTrades(data, market, since, limit);
|
|
1590
|
+
}
|
|
1086
1591
|
const response = await this.privateGetTrades(this.extend(request, params));
|
|
1087
1592
|
//
|
|
1088
1593
|
// [
|
|
@@ -1143,7 +1648,9 @@ class poloniex extends poloniex$1 {
|
|
|
1143
1648
|
// "updateTime" : 16xxxxxxxxx36
|
|
1144
1649
|
// }
|
|
1145
1650
|
//
|
|
1146
|
-
// fetchOpenOrders
|
|
1651
|
+
// fetchOpenOrders (and fetchClosedOrders same for contracts)
|
|
1652
|
+
//
|
|
1653
|
+
// spot:
|
|
1147
1654
|
//
|
|
1148
1655
|
// {
|
|
1149
1656
|
// "id": "24993088082542592",
|
|
@@ -1164,14 +1671,60 @@ class poloniex extends poloniex$1 {
|
|
|
1164
1671
|
// "updateTime": 1646925216548
|
|
1165
1672
|
// }
|
|
1166
1673
|
//
|
|
1674
|
+
// contract:
|
|
1675
|
+
//
|
|
1676
|
+
// {
|
|
1677
|
+
// "symbol": "BTC_USDT_PERP",
|
|
1678
|
+
// "side": "BUY",
|
|
1679
|
+
// "type": "LIMIT",
|
|
1680
|
+
// "ordId": "418890767248232148",
|
|
1681
|
+
// "clOrdId": "polo418890767248232148",
|
|
1682
|
+
// "mgnMode": "CROSS",
|
|
1683
|
+
// "px": "81130.13",
|
|
1684
|
+
// "reduceOnly": false,
|
|
1685
|
+
// "lever": "20",
|
|
1686
|
+
// "state": "NEW",
|
|
1687
|
+
// "source": "WEB",
|
|
1688
|
+
// "timeInForce": "GTC",
|
|
1689
|
+
// "tpTrgPx": "",
|
|
1690
|
+
// "tpPx": "",
|
|
1691
|
+
// "tpTrgPxType": "",
|
|
1692
|
+
// "slTrgPx": "",
|
|
1693
|
+
// "slPx": "",
|
|
1694
|
+
// "slTrgPxType": "",
|
|
1695
|
+
// "avgPx": "0",
|
|
1696
|
+
// "execQty": "0",
|
|
1697
|
+
// "execAmt": "0",
|
|
1698
|
+
// "feeCcy": "",
|
|
1699
|
+
// "feeAmt": "0",
|
|
1700
|
+
// "deductCcy": "0",
|
|
1701
|
+
// "deductAmt": "0",
|
|
1702
|
+
// "stpMode": "NONE", // todo: selfTradePrevention
|
|
1703
|
+
// "cTime": "1740837741523",
|
|
1704
|
+
// "uTime": "1740840846882",
|
|
1705
|
+
// "sz": "1",
|
|
1706
|
+
// "posSide": "BOTH",
|
|
1707
|
+
// "qCcy": "USDT"
|
|
1708
|
+
// "cancelReason": "", // this field can only be in closed orders
|
|
1709
|
+
// },
|
|
1710
|
+
//
|
|
1167
1711
|
// createOrder, editOrder
|
|
1168
1712
|
//
|
|
1713
|
+
// spot:
|
|
1714
|
+
//
|
|
1169
1715
|
// {
|
|
1170
1716
|
// "id": "29772698821328896",
|
|
1171
1717
|
// "clientOrderId": "1234Abc"
|
|
1172
1718
|
// }
|
|
1173
1719
|
//
|
|
1174
|
-
|
|
1720
|
+
// contract:
|
|
1721
|
+
//
|
|
1722
|
+
// {
|
|
1723
|
+
// "ordId":"418876147745775616",
|
|
1724
|
+
// "clOrdId":"polo418876147745775616"
|
|
1725
|
+
// }
|
|
1726
|
+
//
|
|
1727
|
+
let timestamp = this.safeIntegerN(order, ['timestamp', 'createTime', 'cTime']);
|
|
1175
1728
|
if (timestamp === undefined) {
|
|
1176
1729
|
timestamp = this.parse8601(this.safeString(order, 'date'));
|
|
1177
1730
|
}
|
|
@@ -1184,16 +1737,16 @@ class poloniex extends poloniex$1 {
|
|
|
1184
1737
|
resultingTrades = this.safeValue(resultingTrades, this.safeString(market, 'id', marketId));
|
|
1185
1738
|
}
|
|
1186
1739
|
}
|
|
1187
|
-
const price = this.
|
|
1188
|
-
const amount = this.
|
|
1189
|
-
const filled = this.
|
|
1740
|
+
const price = this.safeStringN(order, ['price', 'rate', 'px']);
|
|
1741
|
+
const amount = this.safeString2(order, 'quantity', 'sz');
|
|
1742
|
+
const filled = this.safeString2(order, 'filledQuantity', 'execQty');
|
|
1190
1743
|
const status = this.parseOrderStatus(this.safeString(order, 'state'));
|
|
1191
1744
|
const side = this.safeStringLower(order, 'side');
|
|
1192
1745
|
const rawType = this.safeString(order, 'type');
|
|
1193
1746
|
const type = this.parseOrderType(rawType);
|
|
1194
|
-
const id = this.safeStringN(order, ['orderNumber', 'id', 'orderId']);
|
|
1747
|
+
const id = this.safeStringN(order, ['orderNumber', 'id', 'orderId', 'ordId']);
|
|
1195
1748
|
let fee = undefined;
|
|
1196
|
-
const feeCurrency = this.
|
|
1749
|
+
const feeCurrency = this.safeString2(order, 'tokenFeeCurrency', 'feeCcy');
|
|
1197
1750
|
let feeCost = undefined;
|
|
1198
1751
|
let feeCurrencyCode = undefined;
|
|
1199
1752
|
const rate = this.safeString(order, 'fee');
|
|
@@ -1203,7 +1756,7 @@ class poloniex extends poloniex$1 {
|
|
|
1203
1756
|
else {
|
|
1204
1757
|
// poloniex accepts a 30% discount to pay fees in TRX
|
|
1205
1758
|
feeCurrencyCode = this.safeCurrencyCode(feeCurrency);
|
|
1206
|
-
feeCost = this.
|
|
1759
|
+
feeCost = this.safeString2(order, 'tokenFee', 'feeAmt');
|
|
1207
1760
|
}
|
|
1208
1761
|
if (feeCost !== undefined) {
|
|
1209
1762
|
fee = {
|
|
@@ -1212,7 +1765,11 @@ class poloniex extends poloniex$1 {
|
|
|
1212
1765
|
'currency': feeCurrencyCode,
|
|
1213
1766
|
};
|
|
1214
1767
|
}
|
|
1215
|
-
const clientOrderId = this.
|
|
1768
|
+
const clientOrderId = this.safeString2(order, 'clientOrderId', 'clOrdId');
|
|
1769
|
+
const marginMode = this.safeStringLower(order, 'mgnMode');
|
|
1770
|
+
const reduceOnly = this.safeBool(order, 'reduceOnly');
|
|
1771
|
+
const leverage = this.safeInteger(order, 'lever');
|
|
1772
|
+
const hedged = this.safeString(order, 'posSide') !== 'BOTH';
|
|
1216
1773
|
return this.safeOrder({
|
|
1217
1774
|
'info': order,
|
|
1218
1775
|
'id': id,
|
|
@@ -1224,23 +1781,28 @@ class poloniex extends poloniex$1 {
|
|
|
1224
1781
|
'symbol': symbol,
|
|
1225
1782
|
'type': type,
|
|
1226
1783
|
'timeInForce': this.safeString(order, 'timeInForce'),
|
|
1227
|
-
'postOnly':
|
|
1784
|
+
'postOnly': rawType === 'LIMIT_MAKER',
|
|
1228
1785
|
'side': side,
|
|
1229
1786
|
'price': price,
|
|
1230
1787
|
'triggerPrice': this.safeString2(order, 'triggerPrice', 'stopPrice'),
|
|
1231
|
-
'cost':
|
|
1232
|
-
'average': this.
|
|
1788
|
+
'cost': this.safeString(order, 'execAmt'),
|
|
1789
|
+
'average': this.safeString2(order, 'avgPrice', 'avgPx'),
|
|
1233
1790
|
'amount': amount,
|
|
1234
1791
|
'filled': filled,
|
|
1235
1792
|
'remaining': undefined,
|
|
1236
1793
|
'trades': resultingTrades,
|
|
1237
1794
|
'fee': fee,
|
|
1795
|
+
'marginMode': marginMode,
|
|
1796
|
+
'reduceOnly': reduceOnly,
|
|
1797
|
+
'leverage': leverage,
|
|
1798
|
+
'hedged': hedged,
|
|
1238
1799
|
}, market);
|
|
1239
1800
|
}
|
|
1240
1801
|
parseOrderType(status) {
|
|
1241
1802
|
const statuses = {
|
|
1242
1803
|
'MARKET': 'market',
|
|
1243
1804
|
'LIMIT': 'limit',
|
|
1805
|
+
'LIMIT_MAKER': 'limit',
|
|
1244
1806
|
'STOP-LIMIT': 'limit',
|
|
1245
1807
|
'STOP-MARKET': 'market',
|
|
1246
1808
|
};
|
|
@@ -1265,6 +1827,7 @@ class poloniex extends poloniex$1 {
|
|
|
1265
1827
|
* @description fetch all unfilled currently open orders
|
|
1266
1828
|
* @see https://api-docs.poloniex.com/spot/api/private/order#open-orders
|
|
1267
1829
|
* @see https://api-docs.poloniex.com/spot/api/private/smart-order#open-orders // trigger orders
|
|
1830
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/trade/get-current-orders
|
|
1268
1831
|
* @param {string} symbol unified market symbol
|
|
1269
1832
|
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
1270
1833
|
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
|
@@ -1280,13 +1843,59 @@ class poloniex extends poloniex$1 {
|
|
|
1280
1843
|
market = this.market(symbol);
|
|
1281
1844
|
request['symbol'] = market['id'];
|
|
1282
1845
|
}
|
|
1846
|
+
let marketType = undefined;
|
|
1847
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchOpenOrders', market, params);
|
|
1283
1848
|
if (limit !== undefined) {
|
|
1284
|
-
|
|
1849
|
+
const max = (marketType === 'spot') ? 2000 : 100;
|
|
1850
|
+
request['limit'] = Math.max(limit, max);
|
|
1285
1851
|
}
|
|
1286
1852
|
const isTrigger = this.safeValue2(params, 'trigger', 'stop');
|
|
1287
1853
|
params = this.omit(params, ['trigger', 'stop']);
|
|
1288
1854
|
let response = undefined;
|
|
1289
|
-
if (
|
|
1855
|
+
if (!market['spot']) {
|
|
1856
|
+
const raw = await this.swapPrivateGetV3TradeOrderOpens(this.extend(request, params));
|
|
1857
|
+
//
|
|
1858
|
+
// {
|
|
1859
|
+
// "code": "200",
|
|
1860
|
+
// "msg": "",
|
|
1861
|
+
// "data": [
|
|
1862
|
+
// {
|
|
1863
|
+
// "symbol": "BTC_USDT_PERP",
|
|
1864
|
+
// "side": "BUY",
|
|
1865
|
+
// "type": "LIMIT",
|
|
1866
|
+
// "ordId": "418890767248232148",
|
|
1867
|
+
// "clOrdId": "polo418890767248232148",
|
|
1868
|
+
// "mgnMode": "CROSS",
|
|
1869
|
+
// "px": "81130.13",
|
|
1870
|
+
// "reduceOnly": false,
|
|
1871
|
+
// "lever": "20",
|
|
1872
|
+
// "state": "NEW",
|
|
1873
|
+
// "source": "WEB",
|
|
1874
|
+
// "timeInForce": "GTC",
|
|
1875
|
+
// "tpTrgPx": "",
|
|
1876
|
+
// "tpPx": "",
|
|
1877
|
+
// "tpTrgPxType": "",
|
|
1878
|
+
// "slTrgPx": "",
|
|
1879
|
+
// "slPx": "",
|
|
1880
|
+
// "slTrgPxType": "",
|
|
1881
|
+
// "avgPx": "0",
|
|
1882
|
+
// "execQty": "0",
|
|
1883
|
+
// "execAmt": "0",
|
|
1884
|
+
// "feeCcy": "",
|
|
1885
|
+
// "feeAmt": "0",
|
|
1886
|
+
// "deductCcy": "0",
|
|
1887
|
+
// "deductAmt": "0",
|
|
1888
|
+
// "stpMode": "NONE",
|
|
1889
|
+
// "cTime": "1740837741523",
|
|
1890
|
+
// "uTime": "1740840846882",
|
|
1891
|
+
// "sz": "1",
|
|
1892
|
+
// "posSide": "BOTH",
|
|
1893
|
+
// "qCcy": "USDT"
|
|
1894
|
+
// },
|
|
1895
|
+
//
|
|
1896
|
+
response = this.safeList(raw, 'data');
|
|
1897
|
+
}
|
|
1898
|
+
else if (isTrigger) {
|
|
1290
1899
|
response = await this.privateGetSmartorders(this.extend(request, params));
|
|
1291
1900
|
}
|
|
1292
1901
|
else {
|
|
@@ -1318,6 +1927,82 @@ class poloniex extends poloniex$1 {
|
|
|
1318
1927
|
const extension = { 'status': 'open' };
|
|
1319
1928
|
return this.parseOrders(response, market, since, limit, extension);
|
|
1320
1929
|
}
|
|
1930
|
+
/**
|
|
1931
|
+
* @method
|
|
1932
|
+
* @name poloniex#fetchClosedOrders
|
|
1933
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/trade/get-order-history
|
|
1934
|
+
* @description fetches information on multiple closed orders made by the user
|
|
1935
|
+
* @param {string} symbol unified market symbol of the market orders were made in
|
|
1936
|
+
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
1937
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
1938
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1939
|
+
* @param {int} [params.until] timestamp in ms of the latest entry
|
|
1940
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1941
|
+
*/
|
|
1942
|
+
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
1943
|
+
await this.loadMarkets();
|
|
1944
|
+
let market = undefined;
|
|
1945
|
+
let request = {};
|
|
1946
|
+
if (symbol !== undefined) {
|
|
1947
|
+
market = this.market(symbol);
|
|
1948
|
+
request['symbol'] = market['id'];
|
|
1949
|
+
}
|
|
1950
|
+
let marketType = undefined;
|
|
1951
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchClosedOrders', market, params, 'swap');
|
|
1952
|
+
if (marketType === 'spot') {
|
|
1953
|
+
throw new errors.NotSupported(this.id + ' fetchClosedOrders() is not supported for spot markets yet');
|
|
1954
|
+
}
|
|
1955
|
+
if (limit !== undefined) {
|
|
1956
|
+
request['limit'] = Math.min(200, limit);
|
|
1957
|
+
}
|
|
1958
|
+
if (since !== undefined) {
|
|
1959
|
+
request['sTime'] = since;
|
|
1960
|
+
}
|
|
1961
|
+
[request, params] = this.handleUntilOption('eTime', request, params);
|
|
1962
|
+
const response = await this.swapPrivateGetV3TradeOrderHistory(this.extend(request, params));
|
|
1963
|
+
//
|
|
1964
|
+
// {
|
|
1965
|
+
// "code": "200",
|
|
1966
|
+
// "msg": "",
|
|
1967
|
+
// "data": [
|
|
1968
|
+
// {
|
|
1969
|
+
// "symbol": "BTC_USDT_PERP",
|
|
1970
|
+
// "side": "SELL",
|
|
1971
|
+
// "type": "MARKET",
|
|
1972
|
+
// "ordId": "418912106147315712",
|
|
1973
|
+
// "clOrdId": "polo418912106147315712",
|
|
1974
|
+
// "mgnMode": "CROSS",
|
|
1975
|
+
// "px": "0",
|
|
1976
|
+
// "sz": "2",
|
|
1977
|
+
// "lever": "20",
|
|
1978
|
+
// "state": "FILLED",
|
|
1979
|
+
// "cancelReason": "",
|
|
1980
|
+
// "source": "WEB",
|
|
1981
|
+
// "reduceOnly": "true",
|
|
1982
|
+
// "timeInForce": "GTC",
|
|
1983
|
+
// "tpTrgPx": "",
|
|
1984
|
+
// "tpPx": "",
|
|
1985
|
+
// "tpTrgPxType": "",
|
|
1986
|
+
// "slTrgPx": "",
|
|
1987
|
+
// "slPx": "",
|
|
1988
|
+
// "slTrgPxType": "",
|
|
1989
|
+
// "avgPx": "84705.56",
|
|
1990
|
+
// "execQty": "2",
|
|
1991
|
+
// "execAmt": "169.41112",
|
|
1992
|
+
// "feeCcy": "USDT",
|
|
1993
|
+
// "feeAmt": "0.08470556",
|
|
1994
|
+
// "deductCcy": "0",
|
|
1995
|
+
// "deductAmt": "0",
|
|
1996
|
+
// "stpMode": "NONE",
|
|
1997
|
+
// "cTime": "1740842829116",
|
|
1998
|
+
// "uTime": "1740842829130",
|
|
1999
|
+
// "posSide": "BOTH",
|
|
2000
|
+
// "qCcy": "USDT"
|
|
2001
|
+
// },
|
|
2002
|
+
//
|
|
2003
|
+
const data = this.safeList(response, 'data', []);
|
|
2004
|
+
return this.parseOrders(data, market, since, limit);
|
|
2005
|
+
}
|
|
1321
2006
|
/**
|
|
1322
2007
|
* @method
|
|
1323
2008
|
* @name poloniex#createOrder
|
|
@@ -1337,20 +2022,24 @@ class poloniex extends poloniex$1 {
|
|
|
1337
2022
|
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
1338
2023
|
await this.loadMarkets();
|
|
1339
2024
|
const market = this.market(symbol);
|
|
1340
|
-
if (!market['spot']) {
|
|
1341
|
-
throw new errors.NotSupported(this.id + ' createOrder() does not support ' + market['type'] + ' orders, only spot orders are accepted');
|
|
1342
|
-
}
|
|
1343
2025
|
let request = {
|
|
1344
2026
|
'symbol': market['id'],
|
|
1345
|
-
'side': side,
|
|
1346
|
-
// 'timeInForce': timeInForce,
|
|
2027
|
+
'side': side.toUpperCase(), // uppercase, both for spot & swap
|
|
2028
|
+
// 'timeInForce': timeInForce, // matches unified values
|
|
1347
2029
|
// 'accountType': 'SPOT',
|
|
1348
2030
|
// 'amount': amount,
|
|
1349
2031
|
};
|
|
1350
2032
|
const triggerPrice = this.safeNumber2(params, 'stopPrice', 'triggerPrice');
|
|
1351
2033
|
[request, params] = this.orderRequest(symbol, type, side, amount, request, price, params);
|
|
1352
2034
|
let response = undefined;
|
|
1353
|
-
if (
|
|
2035
|
+
if (market['swap'] || market['future']) {
|
|
2036
|
+
const responseInitial = await this.swapPrivatePostV3TradeOrder(this.extend(request, params));
|
|
2037
|
+
//
|
|
2038
|
+
// {"code":200,"msg":"Success","data":{"ordId":"418876147745775616","clOrdId":"polo418876147745775616"}}
|
|
2039
|
+
//
|
|
2040
|
+
response = this.safeDict(responseInitial, 'data');
|
|
2041
|
+
}
|
|
2042
|
+
else if (triggerPrice !== undefined) {
|
|
1354
2043
|
response = await this.privatePostSmartorders(this.extend(request, params));
|
|
1355
2044
|
}
|
|
1356
2045
|
else {
|
|
@@ -1362,19 +2051,37 @@ class poloniex extends poloniex$1 {
|
|
|
1362
2051
|
// "clientOrderId" : ""
|
|
1363
2052
|
// }
|
|
1364
2053
|
//
|
|
1365
|
-
response = this.extend(response, {
|
|
1366
|
-
'type': type,
|
|
1367
|
-
'side': side,
|
|
1368
|
-
});
|
|
1369
2054
|
return this.parseOrder(response, market);
|
|
1370
2055
|
}
|
|
1371
2056
|
orderRequest(symbol, type, side, amount, request, price = undefined, params = {}) {
|
|
2057
|
+
const triggerPrice = this.safeNumber2(params, 'stopPrice', 'triggerPrice');
|
|
2058
|
+
const market = this.market(symbol);
|
|
2059
|
+
if (market['contract']) {
|
|
2060
|
+
let marginMode = undefined;
|
|
2061
|
+
[marginMode, params] = this.handleParamString(params, 'marginMode');
|
|
2062
|
+
if (marginMode !== undefined) {
|
|
2063
|
+
this.checkRequiredArgument('createOrder', marginMode, 'marginMode', ['cross', 'isolated']);
|
|
2064
|
+
request['mgnMode'] = marginMode.toUpperCase();
|
|
2065
|
+
}
|
|
2066
|
+
let hedged = undefined;
|
|
2067
|
+
[hedged, params] = this.handleParamString(params, 'hedged');
|
|
2068
|
+
if (hedged) {
|
|
2069
|
+
if (marginMode === undefined) {
|
|
2070
|
+
throw new errors.ArgumentsRequired(this.id + ' createOrder() requires a marginMode parameter "cross" or "isolated" for hedged orders');
|
|
2071
|
+
}
|
|
2072
|
+
if (!('posSide' in params)) {
|
|
2073
|
+
throw new errors.ArgumentsRequired(this.id + ' createOrder() requires a posSide parameter "LONG" or "SHORT" for hedged orders');
|
|
2074
|
+
}
|
|
2075
|
+
}
|
|
2076
|
+
}
|
|
1372
2077
|
let upperCaseType = type.toUpperCase();
|
|
1373
2078
|
const isMarket = upperCaseType === 'MARKET';
|
|
1374
2079
|
const isPostOnly = this.isPostOnly(isMarket, upperCaseType === 'LIMIT_MAKER', params);
|
|
1375
|
-
const triggerPrice = this.safeNumber2(params, 'stopPrice', 'triggerPrice');
|
|
1376
2080
|
params = this.omit(params, ['postOnly', 'triggerPrice', 'stopPrice']);
|
|
1377
2081
|
if (triggerPrice !== undefined) {
|
|
2082
|
+
if (!market['spot']) {
|
|
2083
|
+
throw new errors.InvalidOrder(this.id + ' createOrder() does not support trigger orders for ' + market['type'] + ' markets');
|
|
2084
|
+
}
|
|
1378
2085
|
upperCaseType = (price === undefined) ? 'STOP' : 'STOP_LIMIT';
|
|
1379
2086
|
request['stopPrice'] = triggerPrice;
|
|
1380
2087
|
}
|
|
@@ -1392,7 +2099,7 @@ class poloniex extends poloniex$1 {
|
|
|
1392
2099
|
if (cost !== undefined) {
|
|
1393
2100
|
quoteAmount = this.costToPrecision(symbol, cost);
|
|
1394
2101
|
}
|
|
1395
|
-
else if (createMarketBuyOrderRequiresPrice) {
|
|
2102
|
+
else if (createMarketBuyOrderRequiresPrice && market['spot']) {
|
|
1396
2103
|
if (price === undefined) {
|
|
1397
2104
|
throw new errors.InvalidOrder(this.id + ' createOrder() requires the price argument for market buy orders to calculate the total cost to spend (amount * price), alternatively set the createMarketBuyOrderRequiresPrice option or param to false and pass the cost to spend (quote quantity) in the amount argument');
|
|
1398
2105
|
}
|
|
@@ -1406,15 +2113,19 @@ class poloniex extends poloniex$1 {
|
|
|
1406
2113
|
else {
|
|
1407
2114
|
quoteAmount = this.costToPrecision(symbol, amount);
|
|
1408
2115
|
}
|
|
1409
|
-
|
|
2116
|
+
const amountKey = market['spot'] ? 'amount' : 'sz';
|
|
2117
|
+
request[amountKey] = quoteAmount;
|
|
1410
2118
|
}
|
|
1411
2119
|
else {
|
|
1412
|
-
|
|
2120
|
+
const amountKey = market['spot'] ? 'quantity' : 'sz';
|
|
2121
|
+
request[amountKey] = this.amountToPrecision(symbol, amount);
|
|
1413
2122
|
}
|
|
1414
2123
|
}
|
|
1415
2124
|
else {
|
|
1416
|
-
|
|
1417
|
-
request[
|
|
2125
|
+
const amountKey = market['spot'] ? 'quantity' : 'sz';
|
|
2126
|
+
request[amountKey] = this.amountToPrecision(symbol, amount);
|
|
2127
|
+
const priceKey = market['spot'] ? 'price' : 'px';
|
|
2128
|
+
request[priceKey] = this.priceToPrecision(symbol, price);
|
|
1418
2129
|
}
|
|
1419
2130
|
const clientOrderId = this.safeString(params, 'clientOrderId');
|
|
1420
2131
|
if (clientOrderId !== undefined) {
|
|
@@ -1485,7 +2196,27 @@ class poloniex extends poloniex$1 {
|
|
|
1485
2196
|
// @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
1486
2197
|
//
|
|
1487
2198
|
await this.loadMarkets();
|
|
2199
|
+
if (symbol === undefined) {
|
|
2200
|
+
throw new errors.ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
|
|
2201
|
+
}
|
|
2202
|
+
const market = this.market(symbol);
|
|
1488
2203
|
const request = {};
|
|
2204
|
+
if (!market['spot']) {
|
|
2205
|
+
request['symbol'] = market['id'];
|
|
2206
|
+
request['ordId'] = id;
|
|
2207
|
+
const raw = await this.swapPrivateDeleteV3TradeOrder(this.extend(request, params));
|
|
2208
|
+
//
|
|
2209
|
+
// {
|
|
2210
|
+
// "code": "200",
|
|
2211
|
+
// "msg": "Success",
|
|
2212
|
+
// "data": {
|
|
2213
|
+
// "ordId": "418886099910612040",
|
|
2214
|
+
// "clOrdId": "polo418886099910612040"
|
|
2215
|
+
// }
|
|
2216
|
+
// }
|
|
2217
|
+
//
|
|
2218
|
+
return this.parseOrder(this.safeDict(raw, 'data'));
|
|
2219
|
+
}
|
|
1489
2220
|
const clientOrderId = this.safeValue(params, 'clientOrderId');
|
|
1490
2221
|
if (clientOrderId !== undefined) {
|
|
1491
2222
|
id = clientOrderId;
|
|
@@ -1517,6 +2248,7 @@ class poloniex extends poloniex$1 {
|
|
|
1517
2248
|
* @description cancel all open orders
|
|
1518
2249
|
* @see https://api-docs.poloniex.com/spot/api/private/order#cancel-all-orders
|
|
1519
2250
|
* @see https://api-docs.poloniex.com/spot/api/private/smart-order#cancel-all-orders // trigger orders
|
|
2251
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/trade/cancel-all-orders - contract markets
|
|
1520
2252
|
* @param {string} symbol unified market symbol, only orders in the market of this symbol are cancelled when symbol is not undefined
|
|
1521
2253
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1522
2254
|
* @param {boolean} [params.trigger] true if canceling trigger orders
|
|
@@ -1535,9 +2267,30 @@ class poloniex extends poloniex$1 {
|
|
|
1535
2267
|
market['id'],
|
|
1536
2268
|
];
|
|
1537
2269
|
}
|
|
2270
|
+
let response = undefined;
|
|
2271
|
+
let marketType = undefined;
|
|
2272
|
+
[marketType, params] = this.handleMarketTypeAndParams('cancelAllOrders', market, params);
|
|
2273
|
+
if (marketType === 'swap' || marketType === 'future') {
|
|
2274
|
+
const raw = await this.swapPrivateDeleteV3TradeAllOrders(this.extend(request, params));
|
|
2275
|
+
//
|
|
2276
|
+
// {
|
|
2277
|
+
// "code": "200",
|
|
2278
|
+
// "msg": "Success",
|
|
2279
|
+
// "data": [
|
|
2280
|
+
// {
|
|
2281
|
+
// "code": "200",
|
|
2282
|
+
// "msg": "Success",
|
|
2283
|
+
// "ordId": "418885787866388511",
|
|
2284
|
+
// "clOrdId": "polo418885787866388511"
|
|
2285
|
+
// }
|
|
2286
|
+
// ]
|
|
2287
|
+
// }
|
|
2288
|
+
//
|
|
2289
|
+
response = this.safeList(raw, 'data');
|
|
2290
|
+
return this.parseOrders(response, market);
|
|
2291
|
+
}
|
|
1538
2292
|
const isTrigger = this.safeValue2(params, 'trigger', 'stop');
|
|
1539
2293
|
params = this.omit(params, ['trigger', 'stop']);
|
|
1540
|
-
let response = undefined;
|
|
1541
2294
|
if (isTrigger) {
|
|
1542
2295
|
response = await this.privateDeleteSmartorders(this.extend(request, params));
|
|
1543
2296
|
}
|
|
@@ -1581,6 +2334,16 @@ class poloniex extends poloniex$1 {
|
|
|
1581
2334
|
const request = {
|
|
1582
2335
|
'id': id,
|
|
1583
2336
|
};
|
|
2337
|
+
let market = undefined;
|
|
2338
|
+
if (symbol !== undefined) {
|
|
2339
|
+
market = this.market(symbol);
|
|
2340
|
+
request['symbol'] = market['id'];
|
|
2341
|
+
}
|
|
2342
|
+
let marketType = undefined;
|
|
2343
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchOrder', market, params);
|
|
2344
|
+
if (marketType !== 'spot') {
|
|
2345
|
+
throw new errors.NotSupported(this.id + ' fetchOrder() is not supported for ' + marketType + ' markets yet');
|
|
2346
|
+
}
|
|
1584
2347
|
const isTrigger = this.safeValue2(params, 'trigger', 'stop');
|
|
1585
2348
|
params = this.omit(params, ['trigger', 'stop']);
|
|
1586
2349
|
let response = undefined;
|
|
@@ -1669,6 +2432,24 @@ class poloniex extends poloniex$1 {
|
|
|
1669
2432
|
'timestamp': undefined,
|
|
1670
2433
|
'datetime': undefined,
|
|
1671
2434
|
};
|
|
2435
|
+
// for swap
|
|
2436
|
+
if (!Array.isArray(response)) {
|
|
2437
|
+
const ts = this.safeInteger(response, 'uTime');
|
|
2438
|
+
result['timestamp'] = ts;
|
|
2439
|
+
result['datetime'] = this.iso8601(ts);
|
|
2440
|
+
const details = this.safeList(response, 'details', []);
|
|
2441
|
+
for (let i = 0; i < details.length; i++) {
|
|
2442
|
+
const balance = details[i];
|
|
2443
|
+
const currencyId = this.safeString(balance, 'ccy');
|
|
2444
|
+
const code = this.safeCurrencyCode(currencyId);
|
|
2445
|
+
const account = this.account();
|
|
2446
|
+
account['total'] = this.safeString(balance, 'avail');
|
|
2447
|
+
account['used'] = this.safeString(balance, 'im');
|
|
2448
|
+
result[code] = account;
|
|
2449
|
+
}
|
|
2450
|
+
return this.safeBalance(result);
|
|
2451
|
+
}
|
|
2452
|
+
// for spot
|
|
1672
2453
|
for (let i = 0; i < response.length; i++) {
|
|
1673
2454
|
const account = this.safeValue(response, i, {});
|
|
1674
2455
|
const balances = this.safeValue(account, 'balances');
|
|
@@ -1689,11 +2470,56 @@ class poloniex extends poloniex$1 {
|
|
|
1689
2470
|
* @name poloniex#fetchBalance
|
|
1690
2471
|
* @description query for balance and get the amount of funds available for trading or funds locked in orders
|
|
1691
2472
|
* @see https://api-docs.poloniex.com/spot/api/private/account#all-account-balances
|
|
2473
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/account/balance
|
|
1692
2474
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1693
2475
|
* @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
|
|
1694
2476
|
*/
|
|
1695
2477
|
async fetchBalance(params = {}) {
|
|
1696
2478
|
await this.loadMarkets();
|
|
2479
|
+
let marketType = undefined;
|
|
2480
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
|
|
2481
|
+
if (marketType !== 'spot') {
|
|
2482
|
+
const responseRaw = await this.swapPrivateGetV3AccountBalance(params);
|
|
2483
|
+
//
|
|
2484
|
+
// {
|
|
2485
|
+
// "code": "200",
|
|
2486
|
+
// "msg": "",
|
|
2487
|
+
// "data": {
|
|
2488
|
+
// "state": "NORMAL",
|
|
2489
|
+
// "eq": "9.98571622",
|
|
2490
|
+
// "isoEq": "0",
|
|
2491
|
+
// "im": "0",
|
|
2492
|
+
// "mm": "0",
|
|
2493
|
+
// "mmr": "0",
|
|
2494
|
+
// "upl": "0",
|
|
2495
|
+
// "availMgn": "9.98571622",
|
|
2496
|
+
// "cTime": "1738093601775",
|
|
2497
|
+
// "uTime": "1740829116236",
|
|
2498
|
+
// "details": [
|
|
2499
|
+
// {
|
|
2500
|
+
// "ccy": "USDT",
|
|
2501
|
+
// "eq": "9.98571622",
|
|
2502
|
+
// "isoEq": "0",
|
|
2503
|
+
// "avail": "9.98571622",
|
|
2504
|
+
// "trdHold": "0",
|
|
2505
|
+
// "upl": "0",
|
|
2506
|
+
// "isoAvail": "0",
|
|
2507
|
+
// "isoHold": "0",
|
|
2508
|
+
// "isoUpl": "0",
|
|
2509
|
+
// "im": "0",
|
|
2510
|
+
// "mm": "0",
|
|
2511
|
+
// "mmr": "0",
|
|
2512
|
+
// "imr": "0",
|
|
2513
|
+
// "cTime": "1740829116236",
|
|
2514
|
+
// "uTime": "1740829116236"
|
|
2515
|
+
// }
|
|
2516
|
+
// ]
|
|
2517
|
+
// }
|
|
2518
|
+
// }
|
|
2519
|
+
//
|
|
2520
|
+
const data = this.safeDict(responseRaw, 'data', {});
|
|
2521
|
+
return this.parseBalance(data);
|
|
2522
|
+
}
|
|
1697
2523
|
const request = {
|
|
1698
2524
|
'accountType': 'SPOT',
|
|
1699
2525
|
};
|
|
@@ -1754,6 +2580,7 @@ class poloniex extends poloniex$1 {
|
|
|
1754
2580
|
* @name poloniex#fetchOrderBook
|
|
1755
2581
|
* @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
1756
2582
|
* @see https://api-docs.poloniex.com/spot/api/public/market-data#order-book
|
|
2583
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/market/get-order-book
|
|
1757
2584
|
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
1758
2585
|
* @param {int} [limit] the maximum amount of order book entries to return
|
|
1759
2586
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
@@ -1767,6 +2594,27 @@ class poloniex extends poloniex$1 {
|
|
|
1767
2594
|
};
|
|
1768
2595
|
if (limit !== undefined) {
|
|
1769
2596
|
request['limit'] = limit; // The default value of limit is 10. Valid limit values are: 5, 10, 20, 50, 100, 150.
|
|
2597
|
+
if (market['contract']) {
|
|
2598
|
+
request['limit'] = this.findNearestCeiling([5, 10, 20, 100, 150], limit);
|
|
2599
|
+
}
|
|
2600
|
+
}
|
|
2601
|
+
if (market['contract']) {
|
|
2602
|
+
const responseRaw = await this.swapPublicGetV3MarketOrderBook(this.extend(request, params));
|
|
2603
|
+
//
|
|
2604
|
+
// {
|
|
2605
|
+
// "code": 200,
|
|
2606
|
+
// "data": {
|
|
2607
|
+
// "asks": [ ["58700", "9934"], ..],
|
|
2608
|
+
// "bids": [ ["58600", "9952"], ..],
|
|
2609
|
+
// "s": "100",
|
|
2610
|
+
// "ts": 1719974138333
|
|
2611
|
+
// },
|
|
2612
|
+
// "msg": "Success"
|
|
2613
|
+
// }
|
|
2614
|
+
//
|
|
2615
|
+
const data = this.safeDict(responseRaw, 'data', {});
|
|
2616
|
+
const ts = this.safeInteger(data, 'ts');
|
|
2617
|
+
return this.parseOrderBook(data, symbol, ts);
|
|
1770
2618
|
}
|
|
1771
2619
|
const response = await this.publicGetMarketsSymbolOrderBook(this.extend(request, params));
|
|
1772
2620
|
//
|
|
@@ -2366,14 +3214,397 @@ class poloniex extends poloniex$1 {
|
|
|
2366
3214
|
},
|
|
2367
3215
|
};
|
|
2368
3216
|
}
|
|
3217
|
+
/**
|
|
3218
|
+
* @method
|
|
3219
|
+
* @name poloniex#setLeverage
|
|
3220
|
+
* @description set the level of leverage for a market
|
|
3221
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/positions/set-leverage
|
|
3222
|
+
* @param {int} leverage the rate of leverage
|
|
3223
|
+
* @param {string} symbol unified market symbol
|
|
3224
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3225
|
+
* @param {string} [params.marginMode] 'cross' or 'isolated'
|
|
3226
|
+
* @returns {object} response from the exchange
|
|
3227
|
+
*/
|
|
3228
|
+
async setLeverage(leverage, symbol = undefined, params = {}) {
|
|
3229
|
+
if (symbol === undefined) {
|
|
3230
|
+
throw new errors.ArgumentsRequired(this.id + ' setLeverage() requires a symbol argument');
|
|
3231
|
+
}
|
|
3232
|
+
await this.loadMarkets();
|
|
3233
|
+
const market = this.market(symbol);
|
|
3234
|
+
let marginMode = undefined;
|
|
3235
|
+
[marginMode, params] = this.handleMarginModeAndParams('setLeverage', params);
|
|
3236
|
+
if (marginMode === undefined) {
|
|
3237
|
+
throw new errors.ArgumentsRequired(this.id + ' setLeverage() requires a marginMode parameter "cross" or "isolated"');
|
|
3238
|
+
}
|
|
3239
|
+
let hedged = undefined;
|
|
3240
|
+
[hedged, params] = this.handleParamBool(params, 'hedged', false);
|
|
3241
|
+
if (hedged) {
|
|
3242
|
+
if (!('posSide' in params)) {
|
|
3243
|
+
throw new errors.ArgumentsRequired(this.id + ' setLeverage() requires a posSide parameter for hedged mode: "LONG" or "SHORT"');
|
|
3244
|
+
}
|
|
3245
|
+
}
|
|
3246
|
+
const request = {
|
|
3247
|
+
'lever': leverage,
|
|
3248
|
+
'mgnMode': marginMode.toUpperCase(),
|
|
3249
|
+
'symbol': market['id'],
|
|
3250
|
+
};
|
|
3251
|
+
const response = await this.swapPrivatePostV3PositionLeverage(this.extend(request, params));
|
|
3252
|
+
return response;
|
|
3253
|
+
}
|
|
3254
|
+
/**
|
|
3255
|
+
* @method
|
|
3256
|
+
* @name poloniex#fetchLeverage
|
|
3257
|
+
* @description fetch the set leverage for a market
|
|
3258
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/positions/get-leverages
|
|
3259
|
+
* @param {string} symbol unified market symbol
|
|
3260
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3261
|
+
* @returns {object} a [leverage structure]{@link https://docs.ccxt.com/#/?id=leverage-structure}
|
|
3262
|
+
*/
|
|
3263
|
+
async fetchLeverage(symbol, params = {}) {
|
|
3264
|
+
await this.loadMarkets();
|
|
3265
|
+
const market = this.market(symbol);
|
|
3266
|
+
const request = {
|
|
3267
|
+
'symbol': market['id'],
|
|
3268
|
+
};
|
|
3269
|
+
let marginMode = undefined;
|
|
3270
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchLeverage', params);
|
|
3271
|
+
if (marginMode === undefined) {
|
|
3272
|
+
throw new errors.ArgumentsRequired(this.id + ' fetchLeverage() requires a marginMode parameter "cross" or "isolated"');
|
|
3273
|
+
}
|
|
3274
|
+
request['mgnMode'] = marginMode.toUpperCase();
|
|
3275
|
+
const response = await this.swapPrivateGetV3PositionLeverages(this.extend(request, params));
|
|
3276
|
+
//
|
|
3277
|
+
// for one-way mode:
|
|
3278
|
+
//
|
|
3279
|
+
// {
|
|
3280
|
+
// "code": "200",
|
|
3281
|
+
// "msg": "",
|
|
3282
|
+
// "data": [
|
|
3283
|
+
// {
|
|
3284
|
+
// "symbol": "BTC_USDT_PERP",
|
|
3285
|
+
// "lever": "10",
|
|
3286
|
+
// "mgnMode": "CROSS",
|
|
3287
|
+
// "posSide": "BOTH"
|
|
3288
|
+
// }
|
|
3289
|
+
// ]
|
|
3290
|
+
// }
|
|
3291
|
+
//
|
|
3292
|
+
// for hedge:
|
|
3293
|
+
//
|
|
3294
|
+
// {
|
|
3295
|
+
// "code": "200",
|
|
3296
|
+
// "msg": "",
|
|
3297
|
+
// "data": [
|
|
3298
|
+
// {
|
|
3299
|
+
// "symbol": "BTC_USDT_PERP",
|
|
3300
|
+
// "lever": "20",
|
|
3301
|
+
// "mgnMode": "CROSS",
|
|
3302
|
+
// "posSide": "SHORT"
|
|
3303
|
+
// },
|
|
3304
|
+
// {
|
|
3305
|
+
// "symbol": "BTC_USDT_PERP",
|
|
3306
|
+
// "lever": "20",
|
|
3307
|
+
// "mgnMode": "CROSS",
|
|
3308
|
+
// "posSide": "LONG"
|
|
3309
|
+
// }
|
|
3310
|
+
// ]
|
|
3311
|
+
// }
|
|
3312
|
+
//
|
|
3313
|
+
return this.parseLeverage(response, market);
|
|
3314
|
+
}
|
|
3315
|
+
parseLeverage(leverage, market = undefined) {
|
|
3316
|
+
let shortLeverage = undefined;
|
|
3317
|
+
let longLeverage = undefined;
|
|
3318
|
+
let marketId = undefined;
|
|
3319
|
+
let marginMode = undefined;
|
|
3320
|
+
const data = this.safeList(leverage, 'data');
|
|
3321
|
+
for (let i = 0; i < data.length; i++) {
|
|
3322
|
+
const entry = data[i];
|
|
3323
|
+
marketId = this.safeString(entry, 'symbol');
|
|
3324
|
+
marginMode = this.safeString(entry, 'mgnMode');
|
|
3325
|
+
const lever = this.safeInteger(entry, 'lever');
|
|
3326
|
+
const posSide = this.safeString(entry, 'posSide');
|
|
3327
|
+
if (posSide === 'LONG') {
|
|
3328
|
+
longLeverage = lever;
|
|
3329
|
+
}
|
|
3330
|
+
else if (posSide === 'SHORT') {
|
|
3331
|
+
shortLeverage = lever;
|
|
3332
|
+
}
|
|
3333
|
+
else {
|
|
3334
|
+
longLeverage = lever;
|
|
3335
|
+
shortLeverage = lever;
|
|
3336
|
+
}
|
|
3337
|
+
}
|
|
3338
|
+
return {
|
|
3339
|
+
'info': leverage,
|
|
3340
|
+
'symbol': this.safeSymbol(marketId, market),
|
|
3341
|
+
'marginMode': marginMode,
|
|
3342
|
+
'longLeverage': longLeverage,
|
|
3343
|
+
'shortLeverage': shortLeverage,
|
|
3344
|
+
};
|
|
3345
|
+
}
|
|
3346
|
+
/**
|
|
3347
|
+
* @method
|
|
3348
|
+
* @name poloniex#fetchPositionMode
|
|
3349
|
+
* @description fetchs the position mode, hedged or one way, hedged for binance is set identically for all linear markets or all inverse markets
|
|
3350
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/positions/position-mode-switch
|
|
3351
|
+
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
3352
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3353
|
+
* @returns {object} an object detailing whether the market is in hedged or one-way mode
|
|
3354
|
+
*/
|
|
3355
|
+
async fetchPositionMode(symbol = undefined, params = {}) {
|
|
3356
|
+
const response = await this.swapPrivateGetV3PositionMode(params);
|
|
3357
|
+
//
|
|
3358
|
+
// {
|
|
3359
|
+
// "code": "200",
|
|
3360
|
+
// "msg": "Success",
|
|
3361
|
+
// "data": {
|
|
3362
|
+
// "posMode": "ONE_WAY"
|
|
3363
|
+
// }
|
|
3364
|
+
// }
|
|
3365
|
+
//
|
|
3366
|
+
const data = this.safeDict(response, 'data', {});
|
|
3367
|
+
const posMode = this.safeString(data, 'posMode');
|
|
3368
|
+
const hedged = posMode === 'HEDGE';
|
|
3369
|
+
return {
|
|
3370
|
+
'info': response,
|
|
3371
|
+
'hedged': hedged,
|
|
3372
|
+
};
|
|
3373
|
+
}
|
|
3374
|
+
/**
|
|
3375
|
+
* @method
|
|
3376
|
+
* @name poloniex#setPositionMode
|
|
3377
|
+
* @description set hedged to true or false for a market
|
|
3378
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/positions/position-mode-switch
|
|
3379
|
+
* @param {bool} hedged set to true to use dualSidePosition
|
|
3380
|
+
* @param {string} symbol not used by binance setPositionMode ()
|
|
3381
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3382
|
+
* @returns {object} response from the exchange
|
|
3383
|
+
*/
|
|
3384
|
+
async setPositionMode(hedged, symbol = undefined, params = {}) {
|
|
3385
|
+
const mode = hedged ? 'HEDGE' : 'ONE_WAY';
|
|
3386
|
+
const request = {
|
|
3387
|
+
'posMode': mode,
|
|
3388
|
+
};
|
|
3389
|
+
const response = await this.swapPrivatePostV3PositionMode(this.extend(request, params));
|
|
3390
|
+
//
|
|
3391
|
+
// {
|
|
3392
|
+
// "code": "200",
|
|
3393
|
+
// "msg": "Success",
|
|
3394
|
+
// "data": {}
|
|
3395
|
+
// }
|
|
3396
|
+
//
|
|
3397
|
+
return response;
|
|
3398
|
+
}
|
|
3399
|
+
/**
|
|
3400
|
+
* @method
|
|
3401
|
+
* @name poloniex#fetchPositions
|
|
3402
|
+
* @description fetch all open positions
|
|
3403
|
+
* @see https://api-docs.poloniex.com/v3/futures/api/positions/get-current-position
|
|
3404
|
+
* @param {string[]|undefined} symbols list of unified market symbols
|
|
3405
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3406
|
+
* @param {boolean} [params.standard] whether to fetch standard contract positions
|
|
3407
|
+
* @returns {object[]} a list of [position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
|
|
3408
|
+
*/
|
|
3409
|
+
async fetchPositions(symbols = undefined, params = {}) {
|
|
3410
|
+
await this.loadMarkets();
|
|
3411
|
+
symbols = this.marketSymbols(symbols);
|
|
3412
|
+
const response = await this.swapPrivateGetV3TradePositionOpens(params);
|
|
3413
|
+
//
|
|
3414
|
+
// {
|
|
3415
|
+
// "code": "200",
|
|
3416
|
+
// "msg": "",
|
|
3417
|
+
// "data": [
|
|
3418
|
+
// {
|
|
3419
|
+
// "symbol": "BTC_USDT_PERP",
|
|
3420
|
+
// "posSide": "LONG",
|
|
3421
|
+
// "side": "BUY",
|
|
3422
|
+
// "mgnMode": "CROSS",
|
|
3423
|
+
// "openAvgPx": "94193.42",
|
|
3424
|
+
// "qty": "1",
|
|
3425
|
+
// "availQty": "1",
|
|
3426
|
+
// "lever": "20",
|
|
3427
|
+
// "adl": "0.3007",
|
|
3428
|
+
// "liqPx": "84918.201844064386317906",
|
|
3429
|
+
// "im": "4.7047795",
|
|
3430
|
+
// "mm": "0.56457354",
|
|
3431
|
+
// "upl": "-0.09783",
|
|
3432
|
+
// "uplRatio": "-0.0207",
|
|
3433
|
+
// "pnl": "0",
|
|
3434
|
+
// "markPx": "94095.59",
|
|
3435
|
+
// "mgnRatio": "0.0582",
|
|
3436
|
+
// "state": "NORMAL",
|
|
3437
|
+
// "cTime": "1740950344401",
|
|
3438
|
+
// "uTime": "1740950344401",
|
|
3439
|
+
// "mgn": "4.7047795",
|
|
3440
|
+
// "actType": "TRADING",
|
|
3441
|
+
// "maxWAmt": "0",
|
|
3442
|
+
// "tpTrgPx": "",
|
|
3443
|
+
// "slTrgPx": ""
|
|
3444
|
+
// }
|
|
3445
|
+
// ]
|
|
3446
|
+
// }
|
|
3447
|
+
//
|
|
3448
|
+
const positions = this.safeList(response, 'data', []);
|
|
3449
|
+
return this.parsePositions(positions, symbols);
|
|
3450
|
+
}
|
|
3451
|
+
parsePosition(position, market = undefined) {
|
|
3452
|
+
//
|
|
3453
|
+
// {
|
|
3454
|
+
// "symbol": "BTC_USDT_PERP",
|
|
3455
|
+
// "posSide": "LONG",
|
|
3456
|
+
// "side": "BUY",
|
|
3457
|
+
// "mgnMode": "CROSS",
|
|
3458
|
+
// "openAvgPx": "94193.42",
|
|
3459
|
+
// "qty": "1",
|
|
3460
|
+
// "availQty": "1",
|
|
3461
|
+
// "lever": "20",
|
|
3462
|
+
// "adl": "0.3007",
|
|
3463
|
+
// "liqPx": "84918.201844064386317906",
|
|
3464
|
+
// "im": "4.7047795",
|
|
3465
|
+
// "mm": "0.56457354",
|
|
3466
|
+
// "upl": "-0.09783",
|
|
3467
|
+
// "uplRatio": "-0.0207",
|
|
3468
|
+
// "pnl": "0",
|
|
3469
|
+
// "markPx": "94095.59",
|
|
3470
|
+
// "mgnRatio": "0.0582",
|
|
3471
|
+
// "state": "NORMAL",
|
|
3472
|
+
// "cTime": "1740950344401",
|
|
3473
|
+
// "uTime": "1740950344401",
|
|
3474
|
+
// "mgn": "4.7047795",
|
|
3475
|
+
// "actType": "TRADING",
|
|
3476
|
+
// "maxWAmt": "0",
|
|
3477
|
+
// "tpTrgPx": "",
|
|
3478
|
+
// "slTrgPx": ""
|
|
3479
|
+
// }
|
|
3480
|
+
//
|
|
3481
|
+
const marketId = this.safeString(position, 'symbol');
|
|
3482
|
+
market = this.safeMarket(marketId, market);
|
|
3483
|
+
const timestamp = this.safeInteger(position, 'cTime');
|
|
3484
|
+
const marginMode = this.safeStringLower(position, 'mgnMode');
|
|
3485
|
+
const leverage = this.safeString(position, 'lever');
|
|
3486
|
+
const initialMargin = this.safeString(position, 'im');
|
|
3487
|
+
const notional = Precise["default"].stringMul(leverage, initialMargin);
|
|
3488
|
+
const qty = this.safeString(position, 'qty');
|
|
3489
|
+
const avgPrice = this.safeString(position, 'openAvgPx');
|
|
3490
|
+
const collateral = Precise["default"].stringMul(qty, avgPrice);
|
|
3491
|
+
// todo: some more fields
|
|
3492
|
+
return this.safePosition({
|
|
3493
|
+
'info': position,
|
|
3494
|
+
'id': undefined,
|
|
3495
|
+
'symbol': market['symbol'],
|
|
3496
|
+
'notional': notional,
|
|
3497
|
+
'marginMode': marginMode,
|
|
3498
|
+
'liquidationPrice': this.safeNumber(position, 'liqPx'),
|
|
3499
|
+
'entryPrice': this.safeNumber(position, 'openAvgPx'),
|
|
3500
|
+
'unrealizedPnl': this.safeNumber(position, 'upl'),
|
|
3501
|
+
'percentage': undefined,
|
|
3502
|
+
'contracts': this.safeNumber(position, 'qty'),
|
|
3503
|
+
'contractSize': undefined,
|
|
3504
|
+
'markPrice': this.safeNumber(position, 'markPx'),
|
|
3505
|
+
'lastPrice': undefined,
|
|
3506
|
+
'side': this.safeStringLower(position, 'posSide'),
|
|
3507
|
+
'hedged': undefined,
|
|
3508
|
+
'timestamp': timestamp,
|
|
3509
|
+
'datetime': this.iso8601(timestamp),
|
|
3510
|
+
'lastUpdateTimestamp': undefined,
|
|
3511
|
+
'maintenanceMargin': this.safeNumber(position, 'mm'),
|
|
3512
|
+
'maintenanceMarginPercentage': undefined,
|
|
3513
|
+
'collateral': collateral,
|
|
3514
|
+
'initialMargin': initialMargin,
|
|
3515
|
+
'initialMarginPercentage': undefined,
|
|
3516
|
+
'leverage': parseInt(leverage),
|
|
3517
|
+
'marginRatio': this.safeNumber(position, 'mgnRatio'),
|
|
3518
|
+
'stopLossPrice': this.safeNumber(position, 'slTrgPx'),
|
|
3519
|
+
'takeProfitPrice': this.safeNumber(position, 'tpTrgPx'),
|
|
3520
|
+
});
|
|
3521
|
+
}
|
|
3522
|
+
async modifyMarginHelper(symbol, amount, type, params = {}) {
|
|
3523
|
+
await this.loadMarkets();
|
|
3524
|
+
const market = this.market(symbol);
|
|
3525
|
+
amount = this.amountToPrecision(symbol, amount);
|
|
3526
|
+
const request = {
|
|
3527
|
+
'symbol': market['id'],
|
|
3528
|
+
'amt': Precise["default"].stringAbs(amount),
|
|
3529
|
+
'type': type.toUpperCase(), // 'ADD' or 'REDUCE'
|
|
3530
|
+
};
|
|
3531
|
+
// todo: hedged handling, tricky
|
|
3532
|
+
if (!('posMode' in params)) {
|
|
3533
|
+
request['posMode'] = 'BOTH';
|
|
3534
|
+
}
|
|
3535
|
+
const response = await this.swapPrivatePostV3TradePositionMargin(this.extend(request, params));
|
|
3536
|
+
//
|
|
3537
|
+
// {
|
|
3538
|
+
// "code": 200,
|
|
3539
|
+
// "data": {
|
|
3540
|
+
// "amt": "50",
|
|
3541
|
+
// "lever": "20",
|
|
3542
|
+
// "symbol": "DOT_USDT_PERP",
|
|
3543
|
+
// "posSide": "BOTH",
|
|
3544
|
+
// "type": "ADD"
|
|
3545
|
+
// },
|
|
3546
|
+
// "msg": "Success"
|
|
3547
|
+
// }
|
|
3548
|
+
//
|
|
3549
|
+
if (type === 'reduce') {
|
|
3550
|
+
amount = Precise["default"].stringAbs(amount);
|
|
3551
|
+
}
|
|
3552
|
+
const data = this.safeDict(response, 'data');
|
|
3553
|
+
return this.parseMarginModification(data, market);
|
|
3554
|
+
}
|
|
3555
|
+
parseMarginModification(data, market = undefined) {
|
|
3556
|
+
const marketId = this.safeString(data, 'symbol');
|
|
3557
|
+
market = this.safeMarket(marketId, market);
|
|
3558
|
+
const rawType = this.safeString(data, 'type');
|
|
3559
|
+
const type = (rawType === 'ADD') ? 'add' : 'reduce';
|
|
3560
|
+
return {
|
|
3561
|
+
'info': data,
|
|
3562
|
+
'symbol': market['symbol'],
|
|
3563
|
+
'type': type,
|
|
3564
|
+
'marginMode': undefined,
|
|
3565
|
+
'amount': this.safeNumber(data, 'amt'),
|
|
3566
|
+
'total': undefined,
|
|
3567
|
+
'code': undefined,
|
|
3568
|
+
'status': 'ok',
|
|
3569
|
+
'timestamp': undefined,
|
|
3570
|
+
'datetime': undefined,
|
|
3571
|
+
};
|
|
3572
|
+
}
|
|
3573
|
+
/**
|
|
3574
|
+
* @method
|
|
3575
|
+
* @name poloniex#reduceMargin
|
|
3576
|
+
* @description remove margin from a position
|
|
3577
|
+
* @param {string} symbol unified market symbol
|
|
3578
|
+
* @param {float} amount the amount of margin to remove
|
|
3579
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3580
|
+
* @returns {object} a [margin structure]{@link https://docs.ccxt.com/#/?id=reduce-margin-structure}
|
|
3581
|
+
*/
|
|
3582
|
+
async reduceMargin(symbol, amount, params = {}) {
|
|
3583
|
+
return await this.modifyMarginHelper(symbol, -amount, 'reduce', params);
|
|
3584
|
+
}
|
|
3585
|
+
/**
|
|
3586
|
+
* @method
|
|
3587
|
+
* @name poloniex#addMargin
|
|
3588
|
+
* @description add margin
|
|
3589
|
+
* @param {string} symbol unified market symbol
|
|
3590
|
+
* @param {float} amount amount of margin to add
|
|
3591
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
3592
|
+
* @returns {object} a [margin structure]{@link https://docs.ccxt.com/#/?id=add-margin-structure}
|
|
3593
|
+
*/
|
|
3594
|
+
async addMargin(symbol, amount, params = {}) {
|
|
3595
|
+
return await this.modifyMarginHelper(symbol, amount, 'add', params);
|
|
3596
|
+
}
|
|
2369
3597
|
nonce() {
|
|
2370
3598
|
return this.milliseconds();
|
|
2371
3599
|
}
|
|
2372
3600
|
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
2373
|
-
let url = this.urls['api']['
|
|
3601
|
+
let url = this.urls['api']['spot'];
|
|
3602
|
+
if (this.inArray(api, ['swapPublic', 'swapPrivate'])) {
|
|
3603
|
+
url = this.urls['api']['swap'];
|
|
3604
|
+
}
|
|
2374
3605
|
const query = this.omit(params, this.extractParams(path));
|
|
2375
3606
|
const implodedPath = this.implodeParams(path, params);
|
|
2376
|
-
if (api === 'public') {
|
|
3607
|
+
if (api === 'public' || api === 'swapPublic') {
|
|
2377
3608
|
url += '/' + implodedPath;
|
|
2378
3609
|
if (Object.keys(query).length) {
|
|
2379
3610
|
url += '?' + this.urlencode(query);
|