ccxt 4.3.86 → 4.3.87

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.
Files changed (41) hide show
  1. package/README.md +6 -5
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +2 -1
  4. package/dist/cjs/src/base/errors.js +8 -1
  5. package/dist/cjs/src/bingx.js +7 -1
  6. package/dist/cjs/src/hashkey.js +3 -4
  7. package/dist/cjs/src/kraken.js +37 -6
  8. package/dist/cjs/src/pro/bitget.js +164 -19
  9. package/dist/cjs/src/pro/p2b.js +34 -7
  10. package/dist/cjs/src/pro/poloniex.js +36 -3
  11. package/dist/cjs/src/pro/poloniexfutures.js +1 -0
  12. package/dist/cjs/src/pro/probit.js +2 -0
  13. package/dist/cjs/src/pro/upbit.js +48 -3
  14. package/dist/cjs/src/pro/vertex.js +1 -0
  15. package/dist/cjs/src/pro/wazirx.js +3 -0
  16. package/dist/cjs/src/pro/whitebit.js +9 -0
  17. package/dist/cjs/src/upbit.js +1 -1
  18. package/js/ccxt.d.ts +3 -3
  19. package/js/ccxt.js +3 -3
  20. package/js/src/base/errorHierarchy.d.ts +1 -0
  21. package/js/src/base/errorHierarchy.js +1 -0
  22. package/js/src/base/errors.d.ts +5 -1
  23. package/js/src/base/errors.js +8 -2
  24. package/js/src/bingx.js +7 -1
  25. package/js/src/hashkey.js +3 -4
  26. package/js/src/kraken.js +37 -6
  27. package/js/src/pro/bitget.d.ts +8 -0
  28. package/js/src/pro/bitget.js +165 -20
  29. package/js/src/pro/p2b.d.ts +1 -0
  30. package/js/src/pro/p2b.js +34 -7
  31. package/js/src/pro/poloniex.d.ts +1 -0
  32. package/js/src/pro/poloniex.js +36 -3
  33. package/js/src/pro/poloniexfutures.js +1 -0
  34. package/js/src/pro/probit.js +2 -0
  35. package/js/src/pro/upbit.d.ts +1 -0
  36. package/js/src/pro/upbit.js +48 -3
  37. package/js/src/pro/vertex.js +1 -0
  38. package/js/src/pro/wazirx.js +3 -0
  39. package/js/src/pro/whitebit.js +9 -0
  40. package/js/src/upbit.js +1 -1
  41. package/package.json +1 -1
@@ -15,6 +15,7 @@ class wazirx extends wazirx$1 {
15
15
  'watchTicker': true,
16
16
  'watchTickers': true,
17
17
  'watchTrades': true,
18
+ 'watchTradesForSymbols': false,
18
19
  'watchMyTrades': true,
19
20
  'watchOrders': true,
20
21
  'watchOrderBook': true,
@@ -284,6 +285,7 @@ class wazirx extends wazirx$1 {
284
285
  * @method
285
286
  * @name wazirx#watchTrades
286
287
  * @description get the list of most recent trades for a particular symbol
288
+ * @see https://docs.wazirx.com/#trade-streams
287
289
  * @param {string} symbol unified symbol of the market to fetch trades for
288
290
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
289
291
  * @param {int} [limit] the maximum amount of trades to fetch
@@ -381,6 +383,7 @@ class wazirx extends wazirx$1 {
381
383
  * @method
382
384
  * @name wazirx#watchOHLCV
383
385
  * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
386
+ * @see https://docs.wazirx.com/#kline-candlestick-stream
384
387
  * @param {string} symbol unified symbol of the market to fetch OHLCV data for
385
388
  * @param {string} timeframe the length of time each candle represents
386
389
  * @param {int} [since] timestamp in ms of the earliest candle to fetch
@@ -19,6 +19,7 @@ class whitebit extends whitebit$1 {
19
19
  'watchOrders': true,
20
20
  'watchTicker': true,
21
21
  'watchTrades': true,
22
+ 'watchTradesForSymbols': false,
22
23
  },
23
24
  'urls': {
24
25
  'api': {
@@ -61,6 +62,7 @@ class whitebit extends whitebit$1 {
61
62
  * @method
62
63
  * @name whitebit#watchOHLCV
63
64
  * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
65
+ * @see https://docs.whitebit.com/public/websocket/#kline
64
66
  * @param {string} symbol unified symbol of the market to fetch OHLCV data for
65
67
  * @param {string} timeframe the length of time each candle represents
66
68
  * @param {int} [since] timestamp in ms of the earliest candle to fetch
@@ -135,6 +137,7 @@ class whitebit extends whitebit$1 {
135
137
  * @method
136
138
  * @name whitebit#watchOrderBook
137
139
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
140
+ * @see https://docs.whitebit.com/public/websocket/#market-depth
138
141
  * @param {string} symbol unified symbol of the market to fetch the order book for
139
142
  * @param {int} [limit] the maximum amount of order book entries to return
140
143
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -240,6 +243,7 @@ class whitebit extends whitebit$1 {
240
243
  * @method
241
244
  * @name whitebit#watchTicker
242
245
  * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
246
+ * @see https://docs.whitebit.com/public/websocket/#market-statistics
243
247
  * @param {string} symbol unified symbol of the market to fetch the ticker for
244
248
  * @param {object} [params] extra parameters specific to the exchange API endpoint
245
249
  * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
@@ -306,6 +310,7 @@ class whitebit extends whitebit$1 {
306
310
  * @method
307
311
  * @name whitebit#watchTrades
308
312
  * @description get the list of most recent trades for a particular symbol
313
+ * @see https://docs.whitebit.com/public/websocket/#market-trades
309
314
  * @param {string} symbol unified symbol of the market to fetch trades for
310
315
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
311
316
  * @param {int} [limit] the maximum amount of trades to fetch
@@ -372,6 +377,7 @@ class whitebit extends whitebit$1 {
372
377
  * @method
373
378
  * @name whitebit#watchMyTrades
374
379
  * @description watches trades made by the user
380
+ * @see https://docs.whitebit.com/private/websocket/#deals
375
381
  * @param {str} symbol unified market symbol
376
382
  * @param {int} [since] the earliest time in ms to fetch trades for
377
383
  * @param {int} [limit] the maximum number of trades structures to retrieve
@@ -471,6 +477,7 @@ class whitebit extends whitebit$1 {
471
477
  * @method
472
478
  * @name whitebit#watchOrders
473
479
  * @description watches information on multiple orders made by the user
480
+ * @see https://docs.whitebit.com/private/websocket/#orders-pending
474
481
  * @param {string} symbol unified market symbol of the market orders were made in
475
482
  * @param {int} [since] the earliest time in ms to fetch orders for
476
483
  * @param {int} [limit] the maximum number of order structures to retrieve
@@ -646,6 +653,8 @@ class whitebit extends whitebit$1 {
646
653
  * @method
647
654
  * @name whitebit#watchBalance
648
655
  * @description watch balance and get the amount of funds available for trading or funds locked in orders
656
+ * @see https://docs.whitebit.com/private/websocket/#balance-spot
657
+ * @see https://docs.whitebit.com/private/websocket/#balance-margin
649
658
  * @param {object} [params] extra parameters specific to the exchange API endpoint
650
659
  * @param {str} [params.type] spot or contract if not provided this.options['defaultType'] is used
651
660
  * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
@@ -2001,7 +2001,7 @@ class upbit extends upbit$1 {
2001
2001
  headers['Content-Type'] = 'application/json';
2002
2002
  }
2003
2003
  if (hasQuery) {
2004
- auth = this.urlencode(query);
2004
+ auth = this.rawencode(query);
2005
2005
  }
2006
2006
  if (auth !== undefined) {
2007
2007
  const hash = this.hash(this.encode(auth), sha512.sha512);
package/js/ccxt.d.ts CHANGED
@@ -3,8 +3,8 @@ import { Precise } from './src/base/Precise.js';
3
3
  import * as functions from './src/base/functions.js';
4
4
  import * as errors from './src/base/errors.js';
5
5
  import type { Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, DepositAddressResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers } from './src/base/types.js';
6
- import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
7
- declare const version = "4.3.85";
6
+ import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
7
+ declare const version = "4.3.86";
8
8
  import ace from './src/ace.js';
9
9
  import alpaca from './src/alpaca.js';
10
10
  import ascendex from './src/ascendex.js';
@@ -561,5 +561,5 @@ declare const ccxt: {
561
561
  zaif: typeof zaif;
562
562
  zonda: typeof zonda;
563
563
  } & typeof functions & typeof errors;
564
- export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, DepositAddressResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hashkey, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
564
+ export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, DepositAddressResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hashkey, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
565
565
  export default ccxt;
package/js/ccxt.js CHANGED
@@ -35,10 +35,10 @@ import { Exchange } from './src/base/Exchange.js';
35
35
  import { Precise } from './src/base/Precise.js';
36
36
  import * as functions from './src/base/functions.js';
37
37
  import * as errors from './src/base/errors.js';
38
- import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending } from './src/base/errors.js';
38
+ import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
39
39
  //-----------------------------------------------------------------------------
40
40
  // this is updated by vss.js when building
41
- const version = '4.3.86';
41
+ const version = '4.3.87';
42
42
  Exchange.ccxtVersion = version;
43
43
  //-----------------------------------------------------------------------------
44
44
  import ace from './src/ace.js';
@@ -420,6 +420,6 @@ pro.exchanges = Object.keys(pro);
420
420
  pro['Exchange'] = Exchange; // now the same for rest and ts
421
421
  //-----------------------------------------------------------------------------
422
422
  const ccxt = Object.assign({ version, Exchange, Precise, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, functions, errors);
423
- export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hashkey, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
423
+ export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, ace, alpaca, ascendex, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbay, bitbns, bitcoincom, bitfinex, bitfinex2, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitpanda, bitrue, bitso, bitstamp, bitteam, bitvavo, bl3p, blockchaincom, blofin, btcalpha, btcbox, btcmarkets, btcturk, bybit, cex, coinbase, coinbaseadvanced, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinlist, coinmate, coinmetro, coinone, coinsph, coinspot, cryptocom, currencycom, delta, deribit, digifinex, exmo, fmfwio, gate, gateio, gemini, hashkey, hitbtc, hitbtc3, hollaex, htx, huobi, huobijp, hyperliquid, idex, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoinfutures, kuna, latoken, lbank, luno, lykke, mercado, mexc, ndax, novadax, oceanex, okcoin, okx, onetrading, oxfun, p2b, paradex, paymium, phemex, poloniex, poloniexfutures, probit, timex, tokocrypto, tradeogre, upbit, vertex, wavesexchange, wazirx, whitebit, woo, woofipro, xt, yobit, zaif, zonda, };
424
424
  export default ccxt;
425
425
  //-----------------------------------------------------------------------------
@@ -51,6 +51,7 @@ declare const errorHierarchy: {
51
51
  };
52
52
  CancelPending: {};
53
53
  };
54
+ UnsubscribeError: {};
54
55
  };
55
56
  };
56
57
  export default errorHierarchy;
@@ -57,6 +57,7 @@ const errorHierarchy = {
57
57
  },
58
58
  'CancelPending': {},
59
59
  },
60
+ 'UnsubscribeError': {},
60
61
  },
61
62
  };
62
63
  export default errorHierarchy;
@@ -115,7 +115,10 @@ declare class NullResponse extends BadResponse {
115
115
  declare class CancelPending extends OperationFailed {
116
116
  constructor(message: string);
117
117
  }
118
- export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending };
118
+ declare class UnsubscribeError extends BaseError {
119
+ constructor(message: string);
120
+ }
121
+ export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError };
119
122
  declare const _default: {
120
123
  BaseError: typeof BaseError;
121
124
  ExchangeError: typeof ExchangeError;
@@ -156,5 +159,6 @@ declare const _default: {
156
159
  BadResponse: typeof BadResponse;
157
160
  NullResponse: typeof NullResponse;
158
161
  CancelPending: typeof CancelPending;
162
+ UnsubscribeError: typeof UnsubscribeError;
159
163
  };
160
164
  export default _default;
@@ -239,5 +239,11 @@ class CancelPending extends OperationFailed {
239
239
  this.name = 'CancelPending';
240
240
  }
241
241
  }
242
- export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending };
243
- export default { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending };
242
+ class UnsubscribeError extends BaseError {
243
+ constructor(message) {
244
+ super(message);
245
+ this.name = 'UnsubscribeError';
246
+ }
247
+ }
248
+ export { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError };
249
+ export default { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError };
package/js/src/bingx.js CHANGED
@@ -750,7 +750,13 @@ export default class bingx extends Exchange {
750
750
  }
751
751
  const fees = this.safeDict(this.fees, type, {});
752
752
  const contractSize = (swap) ? this.parseNumber('1') : undefined;
753
- const isActive = this.safeString(market, 'status') === '1';
753
+ let isActive = false;
754
+ if ((this.safeString(market, 'apiStateOpen') === 'true') && (this.safeString(market, 'apiStateClose') === 'true')) {
755
+ isActive = true; // swap active
756
+ }
757
+ else if (this.safeBool(market, 'apiStateSell') && this.safeBool(market, 'apiStateBuy')) {
758
+ isActive = true; // spot active
759
+ }
754
760
  const isInverse = (spot) ? undefined : checkIsInverse;
755
761
  const isLinear = (spot) ? undefined : checkIsLinear;
756
762
  let timeOnline = this.safeInteger(market, 'timeOnline');
package/js/src/hashkey.js CHANGED
@@ -25,7 +25,6 @@ export default class hashkey extends Exchange {
25
25
  'version': 'v1',
26
26
  'certified': true,
27
27
  'pro': true,
28
- 'hostname': '/api-glb',
29
28
  'has': {
30
29
  'CORS': undefined,
31
30
  'spot': true,
@@ -146,7 +145,7 @@ export default class hashkey extends Exchange {
146
145
  'www': 'https://global.hashkey.com/',
147
146
  'doc': 'https://hashkeyglobal-apidoc.readme.io/',
148
147
  'fees': 'https://support.global.hashkey.com/hc/en-us/articles/13199900083612-HashKey-Global-Fee-Structure',
149
- 'referral': '',
148
+ 'referral': 'https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN',
150
149
  },
151
150
  'api': {
152
151
  'public': {
@@ -2386,7 +2385,7 @@ export default class hashkey extends Exchange {
2386
2385
  async createMarketBuyOrderWithCost(symbol, cost, params = {}) {
2387
2386
  /**
2388
2387
  * @method
2389
- * @name createMarketBuyOrderWithCost
2388
+ * @name hashkey#createMarketBuyOrderWithCost
2390
2389
  * @description create a market buy order by providing the symbol and cost
2391
2390
  * @param {string} symbol unified symbol of the market to create an order in
2392
2391
  * @param {float} cost how much you want to trade in units of the quote currency
@@ -4175,7 +4174,7 @@ export default class hashkey extends Exchange {
4175
4174
  async fetchTradingFees(params = {}) {
4176
4175
  /**
4177
4176
  * @method
4178
- * @name binance#fetchTradingFees
4177
+ * @name hashkey#fetchTradingFees
4179
4178
  * @description *for spot markets only* fetch the trading fees for multiple markets
4180
4179
  * @see https://developers.binance.com/docs/wallet/asset/trade-fee
4181
4180
  * @param {object} [params] extra parameters specific to the exchange API endpoint
package/js/src/kraken.js CHANGED
@@ -1112,11 +1112,12 @@ export default class kraken extends Exchange {
1112
1112
  * @param {int} [limit] max number of ledger entrys to return, default is undefined
1113
1113
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1114
1114
  * @param {int} [params.until] timestamp in ms of the latest ledger entry
1115
+ * @param {int} [params.end] timestamp in seconds of the latest ledger entry
1115
1116
  * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
1116
1117
  */
1117
1118
  // https://www.kraken.com/features/api#get-ledgers-info
1118
1119
  await this.loadMarkets();
1119
- let request = {};
1120
+ const request = {};
1120
1121
  let currency = undefined;
1121
1122
  if (code !== undefined) {
1122
1123
  currency = this.currency(code);
@@ -1125,7 +1126,12 @@ export default class kraken extends Exchange {
1125
1126
  if (since !== undefined) {
1126
1127
  request['start'] = this.parseToInt(since / 1000);
1127
1128
  }
1128
- [request, params] = this.handleUntilOption('end', request, params);
1129
+ const until = this.safeStringN(params, ['until', 'till']);
1130
+ if (until !== undefined) {
1131
+ params = this.omit(params, ['until', 'till']);
1132
+ const untilDivided = Precise.stringDiv(until, '1000');
1133
+ request['end'] = this.parseToInt(Precise.stringAdd(untilDivided, '1'));
1134
+ }
1129
1135
  const response = await this.privatePostLedgers(this.extend(request, params));
1130
1136
  // { error: [],
1131
1137
  // "result": { ledger: { 'LPUAIB-TS774-UKHP7X': { refid: "A2B4HBV-L4MDIE-JU4N3N",
@@ -2125,6 +2131,8 @@ export default class kraken extends Exchange {
2125
2131
  * @param {int} [since] the earliest time in ms to fetch trades for
2126
2132
  * @param {int} [limit] the maximum number of trades structures to retrieve
2127
2133
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2134
+ * @param {int} [params.until] timestamp in ms of the latest trade entry
2135
+ * @param {int} [params.end] timestamp in seconds of the latest trade entry
2128
2136
  * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
2129
2137
  */
2130
2138
  await this.loadMarkets();
@@ -2138,6 +2146,12 @@ export default class kraken extends Exchange {
2138
2146
  if (since !== undefined) {
2139
2147
  request['start'] = this.parseToInt(since / 1000);
2140
2148
  }
2149
+ const until = this.safeStringN(params, ['until', 'till']);
2150
+ if (until !== undefined) {
2151
+ params = this.omit(params, ['until', 'till']);
2152
+ const untilDivided = Precise.stringDiv(until, '1000');
2153
+ request['end'] = this.parseToInt(Precise.stringAdd(untilDivided, '1'));
2154
+ }
2141
2155
  const response = await this.privatePostTradesHistory(this.extend(request, params));
2142
2156
  //
2143
2157
  // {
@@ -2553,6 +2567,8 @@ export default class kraken extends Exchange {
2553
2567
  * @param {int} [since] the earliest time in ms to fetch deposits for
2554
2568
  * @param {int} [limit] the maximum number of deposits structures to retrieve
2555
2569
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2570
+ * @param {int} [params.until] timestamp in ms of the latest transaction entry
2571
+ * @param {int} [params.end] timestamp in seconds of the latest transaction entry
2556
2572
  * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2557
2573
  */
2558
2574
  // https://www.kraken.com/en-us/help/api#deposit-status
@@ -2563,7 +2579,14 @@ export default class kraken extends Exchange {
2563
2579
  request['asset'] = currency['id'];
2564
2580
  }
2565
2581
  if (since !== undefined) {
2566
- request['start'] = since;
2582
+ const sinceString = this.numberToString(since);
2583
+ request['start'] = Precise.stringDiv(sinceString, '1000');
2584
+ }
2585
+ const until = this.safeStringN(params, ['until', 'till']);
2586
+ if (until !== undefined) {
2587
+ params = this.omit(params, ['until', 'till']);
2588
+ const untilDivided = Precise.stringDiv(until, '1000');
2589
+ request['end'] = Precise.stringAdd(untilDivided, '1');
2567
2590
  }
2568
2591
  const response = await this.privatePostDepositStatus(this.extend(request, params));
2569
2592
  //
@@ -2614,8 +2637,9 @@ export default class kraken extends Exchange {
2614
2637
  * @param {int} [since] the earliest time in ms to fetch withdrawals for
2615
2638
  * @param {int} [limit] the maximum number of withdrawals structures to retrieve
2616
2639
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2617
- * @param {object} [params.end] End timestamp, withdrawals created strictly after will be not be included in the response
2618
- * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times
2640
+ * @param {int} [params.until] timestamp in ms of the latest transaction entry
2641
+ * @param {int} [params.end] timestamp in seconds of the latest transaction entry
2642
+ * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times
2619
2643
  * @returns {object[]} a list of [transaction structures]{@link https://docs.ccxt.com/#/?id=transaction-structure}
2620
2644
  */
2621
2645
  await this.loadMarkets();
@@ -2631,7 +2655,14 @@ export default class kraken extends Exchange {
2631
2655
  request['asset'] = currency['id'];
2632
2656
  }
2633
2657
  if (since !== undefined) {
2634
- request['since'] = since.toString();
2658
+ const sinceString = this.numberToString(since);
2659
+ request['start'] = Precise.stringDiv(sinceString, '1000');
2660
+ }
2661
+ const until = this.safeStringN(params, ['until', 'till']);
2662
+ if (until !== undefined) {
2663
+ params = this.omit(params, ['until', 'till']);
2664
+ const untilDivided = Precise.stringDiv(until, '1000');
2665
+ request['end'] = Precise.stringAdd(untilDivided, '1');
2635
2666
  }
2636
2667
  const response = await this.privatePostWithdrawStatus(this.extend(request, params));
2637
2668
  //
@@ -10,14 +10,17 @@ export default class bitget extends bitgetRest {
10
10
  describe(): any;
11
11
  getInstType(market: any, params?: {}): any[];
12
12
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
13
+ unWatchTicker(symbol: string, params?: {}): Promise<any>;
13
14
  watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
14
15
  handleTicker(client: Client, message: any): void;
15
16
  parseWsTicker(message: any, market?: any): Ticker;
16
17
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
18
+ unWatchOHLCV(symbol: string, timeframe?: string, params?: {}): Promise<any>;
17
19
  handleOHLCV(client: Client, message: any): void;
18
20
  parseWsOHLCV(ohlcv: any, market?: any): OHLCV;
19
21
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
20
22
  unWatchOrderBook(symbol: string, params?: {}): Promise<any>;
23
+ unWatchChannel(symbol: string, channel: string, messageHashTopic: string, params?: {}): Promise<any>;
21
24
  watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
22
25
  handleOrderBook(client: Client, message: any): void;
23
26
  handleCheckSumError(client: Client, symbol: string, messageHash: string): Promise<void>;
@@ -25,6 +28,7 @@ export default class bitget extends bitgetRest {
25
28
  handleDeltas(bookside: any, deltas: any): void;
26
29
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
27
30
  watchTradesForSymbols(symbols: string[], since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
31
+ unWatchTrades(symbol: string, params?: {}): Promise<any>;
28
32
  handleTrades(client: Client, message: any): void;
29
33
  parseWsTrade(trade: any, market?: any): Trade;
30
34
  watchPositions(symbols?: Strings, since?: Int, limit?: Int, params?: {}): Promise<Position[]>;
@@ -49,5 +53,9 @@ export default class bitget extends bitgetRest {
49
53
  ping(client: Client): string;
50
54
  handlePong(client: Client, message: any): any;
51
55
  handleSubscriptionStatus(client: Client, message: any): any;
56
+ handleOrderBookUnSubscription(client: Client, message: any): void;
57
+ handleTradesUnSubscription(client: Client, message: any): void;
58
+ handleTickerUnSubscription(client: Client, message: any): void;
59
+ handleOHLCVUnSubscription(client: Client, message: any): void;
52
60
  handleUnSubscriptionStatus(client: Client, message: any): any;
53
61
  }