ccxt 4.5.18 → 4.5.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/dist/ccxt.browser.min.js +40 -16
- package/dist/cjs/_virtual/index.cjs.js +1459 -9
- package/dist/cjs/ccxt.js +8 -2
- package/dist/cjs/src/abstract/dydx.js +11 -0
- package/dist/cjs/src/base/Exchange.js +164 -10
- package/dist/cjs/src/base/ws/Client.js +3 -1
- package/dist/cjs/src/binance.js +8 -1
- package/dist/cjs/src/bingx.js +20 -0
- package/dist/cjs/src/bitget.js +43 -41
- package/dist/cjs/src/bybit.js +21 -23
- package/dist/cjs/src/deribit.js +6 -0
- package/dist/cjs/src/dydx.js +2454 -0
- package/dist/cjs/src/gate.js +4 -4
- package/dist/cjs/src/hibachi.js +1 -1
- package/dist/cjs/src/hyperliquid.js +207 -9
- package/dist/cjs/src/kucoin.js +711 -109
- package/dist/cjs/src/mexc.js +2 -3
- package/dist/cjs/src/pro/binance.js +59 -144
- package/dist/cjs/src/pro/dydx.js +418 -0
- package/dist/cjs/src/pro/kraken.js +4 -3
- package/dist/cjs/src/pro/xt.js +218 -4
- package/dist/cjs/src/protobuf/mexc/compiled.cjs.js +1 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +56 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +56 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +48 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +343 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +717 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +60 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +45 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +380 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +72 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +211 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +195 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +49 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +57 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +56 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/helpers.js +79 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/long/index.cjs.js +9 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/onboarding.js +59 -0
- package/dist/cjs/src/static_dependencies/dydx-v4-client/registry.js +39 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/pbkdf2.js +69 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/ripemd160.js +108 -0
- package/dist/cjs/src/static_dependencies/noble-hashes/utils.js +50 -1
- package/dist/cjs/src/static_dependencies/scure-base/index.js +29 -0
- package/dist/cjs/src/static_dependencies/scure-bip32/index.js +278 -0
- package/dist/cjs/src/static_dependencies/scure-bip39/index.js +97 -0
- package/dist/cjs/src/static_dependencies/scure-bip39/wordlists/english.js +2060 -0
- package/dist/cjs/src/static_dependencies/zklink/zklink-sdk-web.js +2 -0
- package/dist/cjs/src/toobit.js +2 -1
- package/js/ccxt.d.ts +8 -2
- package/js/ccxt.js +6 -2
- package/js/src/abstract/binance.d.ts +7 -0
- package/js/src/abstract/binancecoinm.d.ts +7 -0
- package/js/src/abstract/binanceus.d.ts +7 -0
- package/js/src/abstract/binanceusdm.d.ts +7 -0
- package/js/src/abstract/bitget.d.ts +1 -0
- package/js/src/abstract/dydx.d.ts +61 -0
- package/js/src/abstract/dydx.js +11 -0
- package/js/src/abstract/kucoin.d.ts +1 -1
- package/js/src/abstract/kucoinfutures.d.ts +1 -1
- package/js/src/base/Exchange.d.ts +7 -0
- package/js/src/base/Exchange.js +163 -10
- package/js/src/base/ws/Client.js +3 -1
- package/js/src/binance.js +8 -1
- package/js/src/bingx.js +20 -0
- package/js/src/bitget.d.ts +3 -3
- package/js/src/bitget.js +43 -41
- package/js/src/bybit.d.ts +3 -3
- package/js/src/bybit.js +21 -23
- package/js/src/deribit.js +6 -0
- package/js/src/dydx.d.ts +364 -0
- package/js/src/dydx.js +2453 -0
- package/js/src/gate.d.ts +2 -2
- package/js/src/gate.js +4 -4
- package/js/src/hibachi.js +1 -1
- package/js/src/hyperliquid.d.ts +17 -0
- package/js/src/hyperliquid.js +207 -9
- package/js/src/kucoin.d.ts +48 -1
- package/js/src/kucoin.js +711 -109
- package/js/src/mexc.js +2 -3
- package/js/src/pro/binance.d.ts +2 -2
- package/js/src/pro/binance.js +59 -144
- package/js/src/pro/dydx.d.ts +81 -0
- package/js/src/pro/dydx.js +417 -0
- package/js/src/pro/kraken.js +4 -3
- package/js/src/pro/xt.d.ts +85 -2
- package/js/src/pro/xt.js +218 -4
- package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.d.ts +90 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +163 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.d.ts +26 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +51 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.d.ts +48 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +85 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.d.ts +40 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +77 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.d.ts +162 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +329 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.d.ts +460 -0
- package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +698 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.d.ts +127 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +286 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.d.ts +66 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +109 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.d.ts +127 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +257 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.d.ts +48 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +93 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.d.ts +23 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +43 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.d.ts +92 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +164 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.d.ts +124 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +196 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.d.ts +159 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +324 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.d.ts +546 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +872 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.d.ts +84 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +181 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.d.ts +397 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +757 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.d.ts +120 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +246 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.d.ts +79 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +147 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.d.ts +32 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +59 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.d.ts +34 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +66 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.d.ts +62 -0
- package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +111 -0
- package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.d.ts +207 -0
- package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +50 -0
- package/js/src/static_dependencies/dydx-v4-client/helpers.d.ts +82 -0
- package/js/src/static_dependencies/dydx-v4-client/helpers.js +172 -0
- package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +1473 -0
- package/js/src/static_dependencies/dydx-v4-client/long/index.d.cts +2 -0
- package/js/src/static_dependencies/dydx-v4-client/onboarding.d.ts +35 -0
- package/js/src/static_dependencies/dydx-v4-client/onboarding.js +56 -0
- package/js/src/static_dependencies/dydx-v4-client/registry.d.ts +7 -0
- package/js/src/static_dependencies/dydx-v4-client/registry.js +36 -0
- package/js/src/static_dependencies/noble-hashes/utils.d.ts +1 -0
- package/js/src/static_dependencies/noble-hashes/utils.js +4 -0
- package/js/src/static_dependencies/scure-bip32/index.d.ts +49 -0
- package/js/src/static_dependencies/scure-bip32/index.js +295 -0
- package/js/src/static_dependencies/scure-bip39/index.d.ts +54 -0
- package/js/src/static_dependencies/scure-bip39/index.js +140 -0
- package/js/src/static_dependencies/scure-bip39/wordlists/english.d.ts +1 -0
- package/js/src/static_dependencies/scure-bip39/wordlists/english.js +2054 -0
- package/js/src/toobit.js +2 -1
- package/package.json +9 -3
package/dist/cjs/src/mexc.js
CHANGED
|
@@ -3008,10 +3008,9 @@ class mexc extends mexc$1["default"] {
|
|
|
3008
3008
|
}
|
|
3009
3009
|
[marketType, params] = this.handleMarketTypeAndParams('fetchOpenOrders', market, params);
|
|
3010
3010
|
if (marketType === 'spot') {
|
|
3011
|
-
if (symbol
|
|
3012
|
-
|
|
3011
|
+
if (symbol !== undefined) {
|
|
3012
|
+
request['symbol'] = market['id'];
|
|
3013
3013
|
}
|
|
3014
|
-
request['symbol'] = market['id'];
|
|
3015
3014
|
const [marginMode, query] = this.handleMarginModeAndParams('fetchOpenOrders', params);
|
|
3016
3015
|
let response = undefined;
|
|
3017
3016
|
if (marginMode !== undefined) {
|
|
@@ -1888,77 +1888,7 @@ class binance extends binance$1["default"] {
|
|
|
1888
1888
|
if (channelName === 'bookTicker') {
|
|
1889
1889
|
throw new errors.BadRequest(this.id + ' deprecation notice - to subscribe for bids-asks, use watch_bids_asks() method instead');
|
|
1890
1890
|
}
|
|
1891
|
-
await this.
|
|
1892
|
-
const methodName = 'watchTickers';
|
|
1893
|
-
symbols = this.marketSymbols(symbols, undefined, true, false, true);
|
|
1894
|
-
let firstMarket = undefined;
|
|
1895
|
-
let marketType = undefined;
|
|
1896
|
-
const symbolsDefined = (symbols !== undefined);
|
|
1897
|
-
if (symbolsDefined) {
|
|
1898
|
-
firstMarket = this.market(symbols[0]);
|
|
1899
|
-
}
|
|
1900
|
-
[marketType, params] = this.handleMarketTypeAndParams(methodName, firstMarket, params);
|
|
1901
|
-
let subType = undefined;
|
|
1902
|
-
[subType, params] = this.handleSubTypeAndParams(methodName, firstMarket, params);
|
|
1903
|
-
let rawMarketType = undefined;
|
|
1904
|
-
if (this.isLinear(marketType, subType)) {
|
|
1905
|
-
rawMarketType = 'future';
|
|
1906
|
-
}
|
|
1907
|
-
else if (this.isInverse(marketType, subType)) {
|
|
1908
|
-
rawMarketType = 'delivery';
|
|
1909
|
-
}
|
|
1910
|
-
else if (marketType === 'spot') {
|
|
1911
|
-
rawMarketType = marketType;
|
|
1912
|
-
}
|
|
1913
|
-
else {
|
|
1914
|
-
throw new errors.NotSupported(this.id + ' ' + methodName + '() does not support options markets');
|
|
1915
|
-
}
|
|
1916
|
-
const isBidAsk = (channelName === 'bookTicker');
|
|
1917
|
-
const subscriptionArgs = [];
|
|
1918
|
-
const subMessageHashes = [];
|
|
1919
|
-
const messageHashes = [];
|
|
1920
|
-
if (symbolsDefined) {
|
|
1921
|
-
for (let i = 0; i < symbols.length; i++) {
|
|
1922
|
-
const symbol = symbols[i];
|
|
1923
|
-
const market = this.market(symbol);
|
|
1924
|
-
subscriptionArgs.push(market['lowercaseId'] + '@' + channelName);
|
|
1925
|
-
subMessageHashes.push(this.getMessageHash(channelName, market['symbol'], isBidAsk));
|
|
1926
|
-
messageHashes.push('unsubscribe:ticker:' + symbol);
|
|
1927
|
-
}
|
|
1928
|
-
}
|
|
1929
|
-
else {
|
|
1930
|
-
if (isBidAsk) {
|
|
1931
|
-
if (marketType === 'spot') {
|
|
1932
|
-
throw new errors.ArgumentsRequired(this.id + ' ' + methodName + '() requires symbols for this channel for spot markets');
|
|
1933
|
-
}
|
|
1934
|
-
subscriptionArgs.push('!' + channelName);
|
|
1935
|
-
}
|
|
1936
|
-
else {
|
|
1937
|
-
subscriptionArgs.push('!' + channelName + '@arr');
|
|
1938
|
-
}
|
|
1939
|
-
subMessageHashes.push(this.getMessageHash(channelName, undefined, isBidAsk));
|
|
1940
|
-
messageHashes.push('unsubscribe:ticker');
|
|
1941
|
-
}
|
|
1942
|
-
let streamHash = channelName;
|
|
1943
|
-
if (symbolsDefined) {
|
|
1944
|
-
streamHash = channelName + '::' + symbols.join(',');
|
|
1945
|
-
}
|
|
1946
|
-
const url = this.urls['api']['ws'][rawMarketType] + '/' + this.stream(rawMarketType, streamHash);
|
|
1947
|
-
const requestId = this.requestId(url);
|
|
1948
|
-
const request = {
|
|
1949
|
-
'method': 'UNSUBSCRIBE',
|
|
1950
|
-
'params': subscriptionArgs,
|
|
1951
|
-
'id': requestId,
|
|
1952
|
-
};
|
|
1953
|
-
const subscription = {
|
|
1954
|
-
'unsubscribe': true,
|
|
1955
|
-
'id': requestId.toString(),
|
|
1956
|
-
'subMessageHashes': subMessageHashes,
|
|
1957
|
-
'messageHashes': messageHashes,
|
|
1958
|
-
'symbols': symbols,
|
|
1959
|
-
'topic': 'ticker',
|
|
1960
|
-
};
|
|
1961
|
-
return await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes, subscription);
|
|
1891
|
+
return await this.watchMultiTickerHelper('unWatchTickers', channelName, symbols, params, true);
|
|
1962
1892
|
}
|
|
1963
1893
|
/**
|
|
1964
1894
|
* @method
|
|
@@ -1973,60 +1903,7 @@ class binance extends binance$1["default"] {
|
|
|
1973
1903
|
let channelName = undefined;
|
|
1974
1904
|
[channelName, params] = this.handleOptionAndParams(params, 'watchMarkPrices', 'name', 'markPrice');
|
|
1975
1905
|
await this.loadMarkets();
|
|
1976
|
-
|
|
1977
|
-
const suffix = (use1sFreq) ? '@1s' : '';
|
|
1978
|
-
const methodName = 'watchMarkPrices';
|
|
1979
|
-
symbols = this.marketSymbols(symbols, undefined, true, false, true);
|
|
1980
|
-
let firstMarket = undefined;
|
|
1981
|
-
let marketType = undefined;
|
|
1982
|
-
const symbolsDefined = (symbols !== undefined);
|
|
1983
|
-
if (symbolsDefined) {
|
|
1984
|
-
firstMarket = this.market(symbols[0]);
|
|
1985
|
-
}
|
|
1986
|
-
[marketType, params] = this.handleMarketTypeAndParams(methodName, firstMarket, params);
|
|
1987
|
-
if (marketType !== 'swap' && marketType !== 'future') {
|
|
1988
|
-
throw new errors.NotSupported(this.id + ' ' + methodName + '() only supports swap markets');
|
|
1989
|
-
}
|
|
1990
|
-
const rawMarketType = 'future';
|
|
1991
|
-
const subscriptionArgs = [];
|
|
1992
|
-
const subMessageHashes = [];
|
|
1993
|
-
const messageHashes = [];
|
|
1994
|
-
if (symbolsDefined) {
|
|
1995
|
-
for (let i = 0; i < symbols.length; i++) {
|
|
1996
|
-
const symbol = symbols[i];
|
|
1997
|
-
const market = this.market(symbol);
|
|
1998
|
-
const msgHash = this.getMessageHash(channelName, market['symbol'], false);
|
|
1999
|
-
subscriptionArgs.push(market['lowercaseId'] + '@' + channelName + suffix);
|
|
2000
|
-
subMessageHashes.push(msgHash);
|
|
2001
|
-
messageHashes.push('unsubscribe:' + msgHash);
|
|
2002
|
-
}
|
|
2003
|
-
}
|
|
2004
|
-
else {
|
|
2005
|
-
const msgHashNoSymbol = this.getMessageHash(channelName, undefined, false);
|
|
2006
|
-
subscriptionArgs.push('!' + channelName + '@arr');
|
|
2007
|
-
subMessageHashes.push(msgHashNoSymbol);
|
|
2008
|
-
messageHashes.push('unsubscribe:' + msgHashNoSymbol);
|
|
2009
|
-
}
|
|
2010
|
-
let streamHash = channelName;
|
|
2011
|
-
if (symbolsDefined) {
|
|
2012
|
-
streamHash = channelName + '::' + symbols.join(',');
|
|
2013
|
-
}
|
|
2014
|
-
const url = this.urls['api']['ws'][rawMarketType] + '/' + this.stream(rawMarketType, streamHash);
|
|
2015
|
-
const requestId = this.requestId(url);
|
|
2016
|
-
const request = {
|
|
2017
|
-
'method': 'UNSUBSCRIBE',
|
|
2018
|
-
'params': subscriptionArgs,
|
|
2019
|
-
'id': requestId,
|
|
2020
|
-
};
|
|
2021
|
-
const subscription = {
|
|
2022
|
-
'unsubscribe': true,
|
|
2023
|
-
'id': requestId.toString(),
|
|
2024
|
-
'subMessageHashes': subMessageHashes,
|
|
2025
|
-
'messageHashes': messageHashes,
|
|
2026
|
-
'symbols': symbols,
|
|
2027
|
-
'topic': 'ticker',
|
|
2028
|
-
};
|
|
2029
|
-
return await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes, subscription);
|
|
1906
|
+
return await this.watchMultiTickerHelper('unWatchMarkPrices', channelName, symbols, params, true);
|
|
2030
1907
|
}
|
|
2031
1908
|
/**
|
|
2032
1909
|
* @method
|
|
@@ -2077,7 +1954,7 @@ class binance extends binance$1["default"] {
|
|
|
2077
1954
|
}
|
|
2078
1955
|
return this.filterByArray(this.bidsasks, 'symbol', symbols);
|
|
2079
1956
|
}
|
|
2080
|
-
async watchMultiTickerHelper(methodName, channelName, symbols = undefined, params = {}) {
|
|
1957
|
+
async watchMultiTickerHelper(methodName, channelName, symbols = undefined, params = {}, isUnsubscribe = false) {
|
|
2081
1958
|
await this.loadMarkets();
|
|
2082
1959
|
symbols = this.marketSymbols(symbols, undefined, true, false, true);
|
|
2083
1960
|
const isBidAsk = (channelName === 'bookTicker');
|
|
@@ -2106,18 +1983,35 @@ class binance extends binance$1["default"] {
|
|
|
2106
1983
|
else {
|
|
2107
1984
|
throw new errors.NotSupported(this.id + ' ' + methodName + '() does not support options markets');
|
|
2108
1985
|
}
|
|
1986
|
+
if (isMarkPrice && !this.inArray(marketType, ['swap', 'future'])) {
|
|
1987
|
+
throw new errors.NotSupported(this.id + ' ' + methodName + '() does not support ' + marketType + ' markets yet');
|
|
1988
|
+
}
|
|
2109
1989
|
const subscriptionArgs = [];
|
|
2110
1990
|
const messageHashes = [];
|
|
1991
|
+
const unsubscribeMessageHashes = [];
|
|
2111
1992
|
let suffix = '';
|
|
2112
1993
|
if (isMarkPrice) {
|
|
2113
1994
|
suffix = (use1sFreq) ? '@1s' : '';
|
|
2114
1995
|
}
|
|
1996
|
+
let unifiedPrefix = undefined;
|
|
1997
|
+
if (isBidAsk) {
|
|
1998
|
+
unifiedPrefix = 'bidask';
|
|
1999
|
+
}
|
|
2000
|
+
else if (isMarkPrice) {
|
|
2001
|
+
unifiedPrefix = 'markPrice';
|
|
2002
|
+
}
|
|
2003
|
+
else {
|
|
2004
|
+
unifiedPrefix = 'ticker';
|
|
2005
|
+
}
|
|
2115
2006
|
if (symbolsDefined) {
|
|
2116
2007
|
for (let i = 0; i < symbols.length; i++) {
|
|
2117
2008
|
const symbol = symbols[i];
|
|
2118
2009
|
const market = this.market(symbol);
|
|
2119
2010
|
subscriptionArgs.push(market['lowercaseId'] + '@' + channelName + suffix);
|
|
2120
|
-
messageHashes.push(
|
|
2011
|
+
messageHashes.push(unifiedPrefix + ':' + channelName + '@' + symbol);
|
|
2012
|
+
if (isUnsubscribe) {
|
|
2013
|
+
unsubscribeMessageHashes.push('unsubscribe::' + unifiedPrefix + ':' + channelName + '@' + symbol);
|
|
2014
|
+
}
|
|
2121
2015
|
}
|
|
2122
2016
|
}
|
|
2123
2017
|
else {
|
|
@@ -2133,7 +2027,8 @@ class binance extends binance$1["default"] {
|
|
|
2133
2027
|
else {
|
|
2134
2028
|
subscriptionArgs.push('!' + channelName + '@arr');
|
|
2135
2029
|
}
|
|
2136
|
-
messageHashes.push(
|
|
2030
|
+
messageHashes.push(unifiedPrefix + 's:' + channelName);
|
|
2031
|
+
unsubscribeMessageHashes.push('unsubscribe::' + channelName);
|
|
2137
2032
|
}
|
|
2138
2033
|
let streamHash = channelName;
|
|
2139
2034
|
if (symbolsDefined) {
|
|
@@ -2142,14 +2037,29 @@ class binance extends binance$1["default"] {
|
|
|
2142
2037
|
const url = this.urls['api']['ws'][rawMarketType] + '/' + this.stream(rawMarketType, streamHash);
|
|
2143
2038
|
const requestId = this.requestId(url);
|
|
2144
2039
|
const request = {
|
|
2145
|
-
'method': 'SUBSCRIBE',
|
|
2040
|
+
'method': isUnsubscribe ? 'UNSUBSCRIBE' : 'SUBSCRIBE',
|
|
2146
2041
|
'params': subscriptionArgs,
|
|
2147
2042
|
'id': requestId,
|
|
2148
2043
|
};
|
|
2149
|
-
|
|
2044
|
+
let hashes = messageHashes;
|
|
2045
|
+
let subscription = {
|
|
2150
2046
|
'id': requestId,
|
|
2151
2047
|
};
|
|
2152
|
-
|
|
2048
|
+
if (isUnsubscribe) {
|
|
2049
|
+
subscription = {
|
|
2050
|
+
'unsubscribe': true,
|
|
2051
|
+
'id': requestId.toString(),
|
|
2052
|
+
'subMessageHashes': messageHashes,
|
|
2053
|
+
'messageHashes': unsubscribeMessageHashes,
|
|
2054
|
+
'symbols': symbols,
|
|
2055
|
+
'topic': 'ticker',
|
|
2056
|
+
};
|
|
2057
|
+
hashes = unsubscribeMessageHashes;
|
|
2058
|
+
}
|
|
2059
|
+
const result = await this.watchMultiple(url, hashes, this.deepExtend(request, params), hashes, subscription);
|
|
2060
|
+
if (isUnsubscribe) {
|
|
2061
|
+
return result;
|
|
2062
|
+
}
|
|
2153
2063
|
// for efficiency, we have two type of returned structure here - if symbols array was provided, then individual
|
|
2154
2064
|
// ticker dict comes in, otherwise all-tickers dict comes in
|
|
2155
2065
|
if (!symbolsDefined) {
|
|
@@ -2360,10 +2270,24 @@ class binance extends binance$1["default"] {
|
|
|
2360
2270
|
//
|
|
2361
2271
|
this.handleTickersAndBidsAsks(client, message, 'tickers');
|
|
2362
2272
|
}
|
|
2273
|
+
handleMarkPrices(client, message) {
|
|
2274
|
+
this.handleTickersAndBidsAsks(client, message, 'markPrices');
|
|
2275
|
+
}
|
|
2363
2276
|
handleTickersAndBidsAsks(client, message, methodType) {
|
|
2364
2277
|
const isSpot = this.isSpotUrl(client);
|
|
2365
2278
|
const marketType = (isSpot) ? 'spot' : 'contract';
|
|
2366
2279
|
const isBidAsk = (methodType === 'bidasks');
|
|
2280
|
+
const isMarkPrice = (methodType === 'markPrices');
|
|
2281
|
+
let unifiedPrefix = undefined;
|
|
2282
|
+
if (isBidAsk) {
|
|
2283
|
+
unifiedPrefix = 'bidask';
|
|
2284
|
+
}
|
|
2285
|
+
else if (isMarkPrice) {
|
|
2286
|
+
unifiedPrefix = 'markPrice';
|
|
2287
|
+
}
|
|
2288
|
+
else {
|
|
2289
|
+
unifiedPrefix = 'ticker';
|
|
2290
|
+
}
|
|
2367
2291
|
let channelName = undefined;
|
|
2368
2292
|
const resolvedMessageHashes = [];
|
|
2369
2293
|
let rawTickers = [];
|
|
@@ -2393,26 +2317,17 @@ class binance extends binance$1["default"] {
|
|
|
2393
2317
|
else {
|
|
2394
2318
|
this.tickers[symbol] = parsedTicker;
|
|
2395
2319
|
}
|
|
2396
|
-
const messageHash =
|
|
2320
|
+
const messageHash = unifiedPrefix + ':' + channelName + '@' + symbol;
|
|
2397
2321
|
resolvedMessageHashes.push(messageHash);
|
|
2398
2322
|
client.resolve(parsedTicker, messageHash);
|
|
2399
2323
|
}
|
|
2400
2324
|
// resolve batch endpoint
|
|
2401
2325
|
const length = resolvedMessageHashes.length;
|
|
2402
2326
|
if (length > 0) {
|
|
2403
|
-
const batchMessageHash =
|
|
2327
|
+
const batchMessageHash = unifiedPrefix + 's:' + channelName;
|
|
2404
2328
|
client.resolve(newTickers, batchMessageHash);
|
|
2405
2329
|
}
|
|
2406
2330
|
}
|
|
2407
|
-
getMessageHash(channelName, symbol, isBidAsk) {
|
|
2408
|
-
const prefix = isBidAsk ? 'bidask' : 'ticker';
|
|
2409
|
-
if (symbol !== undefined) {
|
|
2410
|
-
return prefix + ':' + channelName + '@' + symbol;
|
|
2411
|
-
}
|
|
2412
|
-
else {
|
|
2413
|
-
return prefix + 's' + ':' + channelName;
|
|
2414
|
-
}
|
|
2415
|
-
}
|
|
2416
2331
|
signParams(params = {}) {
|
|
2417
2332
|
this.checkRequiredCredentials();
|
|
2418
2333
|
const defaultRecvWindow = this.safeInteger(this.options, 'recvWindow');
|
|
@@ -4561,8 +4476,8 @@ class binance extends binance$1["default"] {
|
|
|
4561
4476
|
'1dTicker': this.handleTickers,
|
|
4562
4477
|
'24hrTicker': this.handleTickers,
|
|
4563
4478
|
'24hrMiniTicker': this.handleTickers,
|
|
4564
|
-
'markPriceUpdate': this.
|
|
4565
|
-
'markPriceUpdate@arr': this.
|
|
4479
|
+
'markPriceUpdate': this.handleMarkPrices,
|
|
4480
|
+
'markPriceUpdate@arr': this.handleMarkPrices,
|
|
4566
4481
|
'bookTicker': this.handleBidsAsks,
|
|
4567
4482
|
'outboundAccountPosition': this.handleBalance,
|
|
4568
4483
|
'balanceUpdate': this.handleBalance,
|