ccxt 4.4.25 → 4.4.26

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 (67) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/alpaca.js +257 -11
  5. package/dist/cjs/src/base/Exchange.js +14 -1
  6. package/dist/cjs/src/binance.js +2 -3
  7. package/dist/cjs/src/bingx.js +7 -1
  8. package/dist/cjs/src/bitget.js +2 -2
  9. package/dist/cjs/src/bitmart.js +3 -3
  10. package/dist/cjs/src/bybit.js +3 -14
  11. package/dist/cjs/src/cex.js +40 -0
  12. package/dist/cjs/src/coinex.js +2 -4
  13. package/dist/cjs/src/digifinex.js +2 -2
  14. package/dist/cjs/src/exmo.js +1 -0
  15. package/dist/cjs/src/gate.js +3 -3
  16. package/dist/cjs/src/htx.js +2 -3
  17. package/dist/cjs/src/hyperliquid.js +14 -4
  18. package/dist/cjs/src/kucoin.js +2 -2
  19. package/dist/cjs/src/okx.js +3 -2
  20. package/dist/cjs/src/phemex.js +4 -2
  21. package/dist/cjs/src/pro/exmo.js +216 -3
  22. package/dist/cjs/src/whitebit.js +2 -2
  23. package/dist/cjs/src/xt.js +39 -27
  24. package/js/ccxt.d.ts +1 -1
  25. package/js/ccxt.js +1 -1
  26. package/js/src/abstract/alpaca.d.ts +1 -0
  27. package/js/src/abstract/bingx.d.ts +1 -0
  28. package/js/src/abstract/okx.d.ts +1 -0
  29. package/js/src/abstract/phemex.d.ts +1 -0
  30. package/js/src/alpaca.d.ts +6 -1
  31. package/js/src/alpaca.js +258 -12
  32. package/js/src/base/Exchange.d.ts +7 -6
  33. package/js/src/base/Exchange.js +14 -1
  34. package/js/src/base/types.d.ts +3 -3
  35. package/js/src/binance.d.ts +3 -14
  36. package/js/src/binance.js +2 -3
  37. package/js/src/bingx.js +7 -1
  38. package/js/src/bitget.d.ts +3 -13
  39. package/js/src/bitget.js +2 -2
  40. package/js/src/bitmart.d.ts +3 -13
  41. package/js/src/bitmart.js +3 -3
  42. package/js/src/bybit.d.ts +3 -14
  43. package/js/src/bybit.js +3 -14
  44. package/js/src/cex.d.ts +2 -0
  45. package/js/src/cex.js +40 -0
  46. package/js/src/coinex.d.ts +3 -15
  47. package/js/src/coinex.js +2 -4
  48. package/js/src/digifinex.d.ts +3 -13
  49. package/js/src/digifinex.js +2 -2
  50. package/js/src/exmo.js +1 -0
  51. package/js/src/gate.d.ts +3 -13
  52. package/js/src/gate.js +3 -3
  53. package/js/src/htx.d.ts +3 -14
  54. package/js/src/htx.js +2 -3
  55. package/js/src/hyperliquid.js +14 -4
  56. package/js/src/kucoin.d.ts +3 -13
  57. package/js/src/kucoin.js +2 -2
  58. package/js/src/okx.d.ts +3 -13
  59. package/js/src/okx.js +3 -2
  60. package/js/src/phemex.js +4 -2
  61. package/js/src/pro/exmo.d.ts +5 -1
  62. package/js/src/pro/exmo.js +216 -3
  63. package/js/src/whitebit.d.ts +3 -13
  64. package/js/src/whitebit.js +2 -2
  65. package/js/src/woo.d.ts +1 -1
  66. package/js/src/xt.js +39 -27
  67. package/package.json +1 -1
package/js/src/bybit.d.ts CHANGED
@@ -1,12 +1,11 @@
1
1
  import Exchange from './abstract/bybit.js';
2
- import type { Int, OrderSide, OrderType, Trade, Order, OHLCV, FundingRateHistory, OpenInterest, OrderRequest, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Greeks, Strings, Market, Currency, MarketInterface, TransferEntry, Liquidation, Leverage, Num, FundingHistory, Option, OptionChain, TradingFeeInterface, Currencies, TradingFees, CancellationRequest, Position, CrossBorrowRate, Dict, LeverageTier, LeverageTiers, int, LedgerEntry, Conversion, FundingRate, FundingRates, DepositAddress, LongShortRatio } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Trade, Order, OHLCV, FundingRateHistory, OpenInterest, OrderRequest, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Greeks, Strings, Market, Currency, MarketInterface, TransferEntry, Liquidation, Leverage, Num, FundingHistory, Option, OptionChain, TradingFeeInterface, Currencies, TradingFees, CancellationRequest, Position, CrossBorrowRate, Dict, LeverageTier, LeverageTiers, int, LedgerEntry, Conversion, FundingRate, FundingRates, DepositAddress, LongShortRatio, BorrowInterest } from './base/types.js';
3
3
  /**
4
4
  * @class bybit
5
5
  * @augments Exchange
6
6
  */
7
7
  export default class bybit extends Exchange {
8
8
  describe(): any;
9
- setSandboxMode(enable: boolean): void;
10
9
  enableDemoTrading(enable: boolean): void;
11
10
  nonce(): number;
12
11
  addPaginationCursorToResult(response: any): any;
@@ -105,19 +104,9 @@ export default class bybit extends Exchange {
105
104
  datetime: string;
106
105
  info: any;
107
106
  };
108
- fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
107
+ fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
109
108
  fetchBorrowRateHistory(code: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
110
- parseBorrowInterest(info: Dict, market?: Market): {
111
- symbol: any;
112
- marginMode: string;
113
- currency: string;
114
- interest: number;
115
- interestRate: any;
116
- amountBorrowed: number;
117
- timestamp: any;
118
- datetime: any;
119
- info: Dict;
120
- };
109
+ parseBorrowInterest(info: Dict, market?: Market): BorrowInterest;
121
110
  transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
122
111
  fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<TransferEntry[]>;
123
112
  borrowCrossMargin(code: string, amount: number, params?: {}): Promise<any>;
package/js/src/bybit.js CHANGED
@@ -1005,7 +1005,6 @@ export default class bybit extends Exchange {
1005
1005
  'precisionMode': TICK_SIZE,
1006
1006
  'options': {
1007
1007
  'usePrivateInstrumentsInfo': false,
1008
- 'sandboxMode': false,
1009
1008
  'enableDemoTrading': false,
1010
1009
  'fetchMarkets': ['spot', 'linear', 'inverse', 'option'],
1011
1010
  'createOrder': {
@@ -1091,16 +1090,6 @@ export default class bybit extends Exchange {
1091
1090
  },
1092
1091
  });
1093
1092
  }
1094
- setSandboxMode(enable) {
1095
- /**
1096
- * @method
1097
- * @name bybit#setSandboxMode
1098
- * @description enables or disables sandbox mode
1099
- * @param {boolean} [enable] true if demo trading should be enabled, false otherwise
1100
- */
1101
- super.setSandboxMode(enable);
1102
- this.options['sandboxMode'] = enable;
1103
- }
1104
1093
  enableDemoTrading(enable) {
1105
1094
  /**
1106
1095
  * @method
@@ -1109,7 +1098,7 @@ export default class bybit extends Exchange {
1109
1098
  * @see https://bybit-exchange.github.io/docs/v5/demo
1110
1099
  * @param {boolean} [enable] true if demo trading should be enabled, false otherwise
1111
1100
  */
1112
- if (this.options['sandboxMode']) {
1101
+ if (this.isSandboxModeEnabled) {
1113
1102
  throw new NotSupported(this.id + ' demo trading does not support in sandbox environment');
1114
1103
  }
1115
1104
  // enable demo trading in bybit, see: https://bybit-exchange.github.io/docs/v5/demo
@@ -7490,15 +7479,15 @@ export default class bybit extends Exchange {
7490
7479
  // },
7491
7480
  //
7492
7481
  return {
7482
+ 'info': info,
7493
7483
  'symbol': undefined,
7494
- 'marginMode': 'cross',
7495
7484
  'currency': this.safeCurrencyCode(this.safeString(info, 'tokenId')),
7496
7485
  'interest': this.safeNumber(info, 'interest'),
7497
7486
  'interestRate': undefined,
7498
7487
  'amountBorrowed': this.safeNumber(info, 'loan'),
7488
+ 'marginMode': 'cross',
7499
7489
  'timestamp': undefined,
7500
7490
  'datetime': undefined,
7501
- 'info': info,
7502
7491
  };
7503
7492
  }
7504
7493
  async transfer(code, amount, fromAccount, toAccount, params = {}) {
package/js/src/cex.d.ts CHANGED
@@ -29,6 +29,8 @@ export default class cex extends Exchange {
29
29
  fetchOrdersByStatus(status: string, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
30
30
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
31
31
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
32
+ fetchOpenOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
33
+ fetchClosedOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
32
34
  parseOrderStatus(status: Str): string;
33
35
  parseOrder(order: Dict, market?: Market): Order;
34
36
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
package/js/src/cex.js CHANGED
@@ -35,6 +35,7 @@ export default class cex extends Exchange {
35
35
  'createOrder': true,
36
36
  'fetchAccounts': true,
37
37
  'fetchBalance': true,
38
+ 'fetchClosedOrder': true,
38
39
  'fetchClosedOrders': true,
39
40
  'fetchCurrencies': true,
40
41
  'fetchDepositAddress': true,
@@ -46,6 +47,7 @@ export default class cex extends Exchange {
46
47
  'fetchLedger': true,
47
48
  'fetchMarkets': true,
48
49
  'fetchOHLCV': true,
50
+ 'fetchOpenOrder': true,
49
51
  'fetchOpenOrders': true,
50
52
  'fetchOrderBook': true,
51
53
  'fetchTicker': true,
@@ -943,6 +945,7 @@ export default class cex extends Exchange {
943
945
  /**
944
946
  * @method
945
947
  * @name cex#fetchClosedOrders
948
+ * @see https://trade.cex.io/docs/#rest-private-api-calls-orders
946
949
  * @description fetches information on multiple canceled orders made by the user
947
950
  * @param {string} symbol unified market symbol of the market orders were made in
948
951
  * @param {int} [since] timestamp in ms of the earliest order, default is undefined
@@ -956,6 +959,7 @@ export default class cex extends Exchange {
956
959
  /**
957
960
  * @method
958
961
  * @name cex#fetchOpenOrders
962
+ * @see https://trade.cex.io/docs/#rest-private-api-calls-orders
959
963
  * @description fetches information on multiple canceled orders made by the user
960
964
  * @param {string} symbol unified market symbol of the market orders were made in
961
965
  * @param {int} [since] timestamp in ms of the earliest order, default is undefined
@@ -965,6 +969,42 @@ export default class cex extends Exchange {
965
969
  */
966
970
  return await this.fetchOrdersByStatus('open', symbol, since, limit, params);
967
971
  }
972
+ async fetchOpenOrder(id, symbol = undefined, params = {}) {
973
+ /**
974
+ * @method
975
+ * @name cex#fetchOpenOrder
976
+ * @description fetches information on an open order made by the user
977
+ * @see https://trade.cex.io/docs/#rest-private-api-calls-orders
978
+ * @param {string} id order id
979
+ * @param {string} [symbol] unified symbol of the market the order was made in
980
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
981
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
982
+ */
983
+ await this.loadMarkets();
984
+ const request = {
985
+ 'orderId': parseInt(id),
986
+ };
987
+ const result = await this.fetchOpenOrders(symbol, undefined, undefined, this.extend(request, params));
988
+ return result[0];
989
+ }
990
+ async fetchClosedOrder(id, symbol = undefined, params = {}) {
991
+ /**
992
+ * @method
993
+ * @name cex#fetchClosedOrder
994
+ * @description fetches information on an closed order made by the user
995
+ * @see https://trade.cex.io/docs/#rest-private-api-calls-orders
996
+ * @param {string} id order id
997
+ * @param {string} [symbol] unified symbol of the market the order was made in
998
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
999
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
1000
+ */
1001
+ await this.loadMarkets();
1002
+ const request = {
1003
+ 'orderId': parseInt(id),
1004
+ };
1005
+ const result = await this.fetchClosedOrders(symbol, undefined, undefined, this.extend(request, params));
1006
+ return result[0];
1007
+ }
968
1008
  parseOrderStatus(status) {
969
1009
  const statuses = {
970
1010
  'FILLED': 'closed',
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/coinex.js';
2
- import type { Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, OHLCV, Order, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, OrderRequest, TransferEntry, Leverage, Num, MarginModification, TradingFeeInterface, Currencies, TradingFees, Position, IsolatedBorrowRate, Dict, LeverageTiers, LeverageTier, int, FundingRate, FundingRates, DepositAddress } from './base/types.js';
2
+ import type { Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, OHLCV, Order, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, OrderRequest, TransferEntry, Leverage, Num, MarginModification, TradingFeeInterface, Currencies, TradingFees, Position, IsolatedBorrowRate, Dict, LeverageTiers, LeverageTier, int, FundingRate, FundingRates, DepositAddress, BorrowInterest } from './base/types.js';
3
3
  /**
4
4
  * @class coinex
5
5
  * @augments Exchange
@@ -74,20 +74,8 @@ export default class coinex extends Exchange {
74
74
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
75
75
  parseIsolatedBorrowRate(info: Dict, market?: Market): IsolatedBorrowRate;
76
76
  fetchIsolatedBorrowRate(symbol: string, params?: {}): Promise<IsolatedBorrowRate>;
77
- fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
78
- parseBorrowInterest(info: Dict, market?: Market): {
79
- account: any;
80
- symbol: string;
81
- marginMode: string;
82
- marginType: any;
83
- currency: string;
84
- interest: number;
85
- interestRate: number;
86
- amountBorrowed: number;
87
- timestamp: number;
88
- datetime: string;
89
- info: Dict;
90
- };
77
+ fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
78
+ parseBorrowInterest(info: Dict, market?: Market): BorrowInterest;
91
79
  borrowIsolatedMargin(symbol: string, code: string, amount: number, params?: {}): Promise<any>;
92
80
  repayIsolatedMargin(symbol: string, code: string, amount: any, params?: {}): Promise<any>;
93
81
  parseMarginLoan(info: any, currency?: Currency): {
package/js/src/coinex.js CHANGED
@@ -5342,17 +5342,15 @@ export default class coinex extends Exchange {
5342
5342
  market = this.safeMarket(marketId, market, undefined, 'spot');
5343
5343
  const timestamp = this.safeInteger(info, 'expired_at');
5344
5344
  return {
5345
- 'account': undefined,
5345
+ 'info': info,
5346
5346
  'symbol': market['symbol'],
5347
- 'marginMode': 'isolated',
5348
- 'marginType': undefined,
5349
5347
  'currency': this.safeCurrencyCode(this.safeString(info, 'ccy')),
5350
5348
  'interest': this.safeNumber(info, 'to_repaied_amount'),
5351
5349
  'interestRate': this.safeNumber(info, 'daily_interest_rate'),
5352
5350
  'amountBorrowed': this.safeNumber(info, 'borrow_amount'),
5351
+ 'marginMode': 'isolated',
5353
5352
  'timestamp': timestamp,
5354
5353
  'datetime': this.iso8601(timestamp),
5355
- 'info': info,
5356
5354
  };
5357
5355
  }
5358
5356
  async borrowIsolatedMargin(symbol, code, amount, params = {}) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/digifinex.js';
2
- import type { FundingRateHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Trade, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Market, Currency, TransferEntry, Num, MarginModification, TradingFeeInterface, Currencies, CrossBorrowRate, CrossBorrowRates, Dict, LeverageTier, LeverageTiers, int, LedgerEntry, FundingRate, DepositAddress } from './base/types.js';
2
+ import type { FundingRateHistory, Int, OHLCV, Order, OrderSide, OrderType, OrderRequest, Trade, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Market, Currency, TransferEntry, Num, MarginModification, TradingFeeInterface, Currencies, CrossBorrowRate, CrossBorrowRates, Dict, LeverageTier, LeverageTiers, int, LedgerEntry, FundingRate, DepositAddress, BorrowInterest } from './base/types.js';
3
3
  /**
4
4
  * @class digifinex
5
5
  * @augments Exchange
@@ -55,18 +55,8 @@ export default class digifinex extends Exchange {
55
55
  parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
56
56
  transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
57
57
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
58
- fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
59
- parseBorrowInterest(info: Dict, market?: Market): {
60
- account: string;
61
- symbol: string;
62
- currency: string;
63
- interest: any;
64
- interestRate: number;
65
- amountBorrowed: number;
66
- timestamp: any;
67
- datetime: any;
68
- info: Dict;
69
- };
58
+ fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
59
+ parseBorrowInterest(info: Dict, market?: Market): BorrowInterest;
70
60
  fetchCrossBorrowRate(code: string, params?: {}): Promise<CrossBorrowRate>;
71
61
  fetchCrossBorrowRates(params?: {}): Promise<CrossBorrowRates>;
72
62
  parseBorrowRate(info: any, currency?: Currency): {
@@ -3103,15 +3103,15 @@ export default class digifinex extends Exchange {
3103
3103
  const currency = (market === undefined) ? undefined : market['base'];
3104
3104
  const symbol = this.safeSymbol(marketId, market);
3105
3105
  return {
3106
- 'account': symbol,
3106
+ 'info': info,
3107
3107
  'symbol': symbol,
3108
3108
  'currency': currency,
3109
3109
  'interest': undefined,
3110
3110
  'interestRate': 0.001,
3111
3111
  'amountBorrowed': this.parseNumber(amountBorrowed),
3112
+ 'marginMode': undefined,
3112
3113
  'timestamp': undefined,
3113
3114
  'datetime': undefined,
3114
- 'info': info,
3115
3115
  };
3116
3116
  }
3117
3117
  async fetchCrossBorrowRate(code, params = {}) {
package/js/src/exmo.js CHANGED
@@ -214,6 +214,7 @@ export default class exmo extends Exchange {
214
214
  'precisionMode': TICK_SIZE,
215
215
  'exceptions': {
216
216
  'exact': {
217
+ '140333': InvalidOrder,
217
218
  '140434': BadRequest,
218
219
  '40005': AuthenticationError,
219
220
  '40009': InvalidNonce,
package/js/src/gate.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/gate.js';
2
- import type { Int, OrderSide, OrderType, OHLCV, Trade, FundingRateHistory, OpenInterest, Order, Balances, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Tickers, Greeks, Strings, Market, Currency, MarketInterface, TransferEntry, Leverage, Leverages, Num, OptionChain, Option, MarginModification, TradingFeeInterface, Currencies, TradingFees, Position, Dict, LeverageTier, LeverageTiers, int, CancellationRequest, LedgerEntry, FundingRate, FundingRates, DepositAddress } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, OHLCV, Trade, FundingRateHistory, OpenInterest, Order, Balances, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Tickers, Greeks, Strings, Market, Currency, MarketInterface, TransferEntry, Leverage, Leverages, Num, OptionChain, Option, MarginModification, TradingFeeInterface, Currencies, TradingFees, Position, Dict, LeverageTier, LeverageTiers, int, CancellationRequest, LedgerEntry, FundingRate, FundingRates, DepositAddress, BorrowInterest } from './base/types.js';
3
3
  /**
4
4
  * @class gate
5
5
  * @augments Exchange
@@ -198,18 +198,8 @@ export default class gate extends Exchange {
198
198
  datetime: string;
199
199
  info: any;
200
200
  };
201
- fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
202
- parseBorrowInterest(info: Dict, market?: Market): {
203
- info: Dict;
204
- timestamp: number;
205
- datetime: string;
206
- symbol: string;
207
- currency: string;
208
- marginMode: string;
209
- interest: number;
210
- interestRate: number;
211
- amountBorrowed: any;
212
- };
201
+ fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
202
+ parseBorrowInterest(info: Dict, market?: Market): BorrowInterest;
213
203
  sign(path: any, api?: any[], method?: string, params?: {}, headers?: any, body?: any): {
214
204
  url: any;
215
205
  method: string;
package/js/src/gate.js CHANGED
@@ -6491,14 +6491,14 @@ export default class gate extends Exchange {
6491
6491
  const timestamp = this.safeInteger(info, 'create_time');
6492
6492
  return {
6493
6493
  'info': info,
6494
- 'timestamp': timestamp,
6495
- 'datetime': this.iso8601(timestamp),
6496
6494
  'symbol': this.safeString(market, 'symbol'),
6497
6495
  'currency': this.safeCurrencyCode(this.safeString(info, 'currency')),
6498
- 'marginMode': marginMode,
6499
6496
  'interest': this.safeNumber(info, 'interest'),
6500
6497
  'interestRate': this.safeNumber(info, 'actual_rate'),
6501
6498
  'amountBorrowed': undefined,
6499
+ 'marginMode': marginMode,
6500
+ 'timestamp': timestamp,
6501
+ 'datetime': this.iso8601(timestamp),
6502
6502
  };
6503
6503
  }
6504
6504
  sign(path, api = [], method = 'GET', params = {}, headers = undefined, body = undefined) {
package/js/src/htx.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/htx.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, Order, OHLCV, Trade, FundingRateHistory, Balances, Str, Dict, Transaction, Ticker, OrderBook, Tickers, OrderRequest, Strings, Market, Currency, Num, Account, TradingFeeInterface, Currencies, IsolatedBorrowRates, IsolatedBorrowRate, LeverageTiers, LeverageTier, int, LedgerEntry, FundingRate, FundingRates, DepositAddress } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, Order, OHLCV, Trade, FundingRateHistory, Balances, Str, Dict, Transaction, Ticker, OrderBook, Tickers, OrderRequest, Strings, Market, Currency, Num, Account, TradingFeeInterface, Currencies, IsolatedBorrowRates, IsolatedBorrowRate, LeverageTiers, LeverageTier, int, LedgerEntry, FundingRate, FundingRates, DepositAddress, BorrowInterest } from './base/types.js';
3
3
  /**
4
4
  * @class huobi
5
5
  * @augments Exchange
@@ -119,19 +119,8 @@ export default class htx extends Exchange {
119
119
  parseFundingInterval(interval: any): string;
120
120
  fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
121
121
  fetchFundingRates(symbols?: Strings, params?: {}): Promise<FundingRates>;
122
- fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
123
- parseBorrowInterest(info: Dict, market?: Market): {
124
- account: string;
125
- symbol: string;
126
- marginMode: string;
127
- currency: string;
128
- interest: number;
129
- interestRate: number;
130
- amountBorrowed: number;
131
- timestamp: number;
132
- datetime: string;
133
- info: Dict;
134
- };
122
+ fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
123
+ parseBorrowInterest(info: Dict, market?: Market): BorrowInterest;
135
124
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
136
125
  url: string;
137
126
  method: string;
package/js/src/htx.js CHANGED
@@ -7304,16 +7304,15 @@ export default class htx extends Exchange {
7304
7304
  const symbol = this.safeString(market, 'symbol');
7305
7305
  const timestamp = this.safeInteger(info, 'accrued-at');
7306
7306
  return {
7307
- 'account': (marginMode === 'isolated') ? symbol : 'cross',
7307
+ 'info': info,
7308
7308
  'symbol': symbol,
7309
- 'marginMode': marginMode,
7310
7309
  'currency': this.safeCurrencyCode(this.safeString(info, 'currency')),
7311
7310
  'interest': this.safeNumber(info, 'interest-amount'),
7312
7311
  'interestRate': this.safeNumber(info, 'interest-rate'),
7313
7312
  'amountBorrowed': this.safeNumber(info, 'loan-amount'),
7313
+ 'marginMode': marginMode,
7314
7314
  'timestamp': timestamp,
7315
7315
  'datetime': this.iso8601(timestamp),
7316
- 'info': info,
7317
7316
  };
7318
7317
  }
7319
7318
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
@@ -785,9 +785,18 @@ export default class hyperliquid extends Exchange {
785
785
  await this.loadMarkets();
786
786
  const market = this.market(symbol);
787
787
  const until = this.safeInteger(params, 'until', this.milliseconds());
788
- const useTail = (since === undefined);
788
+ let useTail = since === undefined;
789
+ const originalSince = since;
789
790
  if (since === undefined) {
790
- since = 0;
791
+ if (limit !== undefined) {
792
+ // optimization if limit is provided
793
+ const timeframeInMilliseconds = this.parseTimeframe(timeframe) * 1000;
794
+ since = this.sum(until, timeframeInMilliseconds * limit * -1);
795
+ useTail = false;
796
+ }
797
+ else {
798
+ since = 0;
799
+ }
791
800
  }
792
801
  params = this.omit(params, ['until']);
793
802
  const request = {
@@ -816,7 +825,7 @@ export default class hyperliquid extends Exchange {
816
825
  // }
817
826
  // ]
818
827
  //
819
- return this.parseOHLCVs(response, market, timeframe, since, limit, useTail);
828
+ return this.parseOHLCVs(response, market, timeframe, originalSince, limit, useTail);
820
829
  }
821
830
  parseOHLCV(ohlcv, market = undefined) {
822
831
  //
@@ -1618,7 +1627,8 @@ export default class hyperliquid extends Exchange {
1618
1627
  request['startTime'] = since;
1619
1628
  }
1620
1629
  else {
1621
- request['startTime'] = this.milliseconds() - 100 * 60 * 60 * 1000;
1630
+ const maxLimit = (limit === undefined) ? 500 : limit;
1631
+ request['startTime'] = this.milliseconds() - maxLimit * 60 * 60 * 1000;
1622
1632
  }
1623
1633
  const until = this.safeInteger(params, 'until');
1624
1634
  params = this.omit(params, 'until');
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/kucoin.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, Order, OHLCV, Trade, Balances, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, Num, Account, Dict, TradingFeeInterface, Currencies, int, LedgerEntry, DepositAddress } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, Order, OHLCV, Trade, Balances, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, Num, Account, Dict, TradingFeeInterface, Currencies, int, LedgerEntry, DepositAddress, BorrowInterest } from './base/types.js';
3
3
  /**
4
4
  * @class kucoin
5
5
  * @augments Exchange
@@ -83,18 +83,8 @@ export default class kucoin extends Exchange {
83
83
  datetime: string;
84
84
  info: any;
85
85
  };
86
- fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any[]>;
87
- parseBorrowInterest(info: Dict, market?: Market): {
88
- symbol: string;
89
- marginMode: string;
90
- currency: string;
91
- interest: any;
92
- interestRate: number;
93
- amountBorrowed: any;
94
- timestamp: number;
95
- datetime: string;
96
- info: Dict;
97
- };
86
+ fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
87
+ parseBorrowInterest(info: Dict, market?: Market): BorrowInterest;
98
88
  fetchBorrowRateHistories(codes?: any, since?: Int, limit?: Int, params?: {}): Promise<Dict>;
99
89
  fetchBorrowRateHistory(code: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
100
90
  parseBorrowRateHistories(response: any, codes: any, since: any, limit: any): Dict;
package/js/src/kucoin.js CHANGED
@@ -4593,15 +4593,15 @@ export default class kucoin extends Exchange {
4593
4593
  currencyId = this.safeString(info, 'currency');
4594
4594
  }
4595
4595
  return {
4596
+ 'info': info,
4596
4597
  'symbol': symbol,
4597
- 'marginMode': marginMode,
4598
4598
  'currency': this.safeCurrencyCode(currencyId),
4599
4599
  'interest': interest,
4600
4600
  'interestRate': this.safeNumber(info, 'dailyIntRate'),
4601
4601
  'amountBorrowed': amountBorrowed,
4602
+ 'marginMode': marginMode,
4602
4603
  'timestamp': timestamp,
4603
4604
  'datetime': this.iso8601(timestamp),
4604
- 'info': info,
4605
4605
  };
4606
4606
  }
4607
4607
  async fetchBorrowRateHistories(codes = undefined, since = undefined, limit = undefined, params = {}) {
package/js/src/okx.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/okx.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option, MarginModification, TradingFeeInterface, Currencies, Conversion, CancellationRequest, Dict, Position, CrossBorrowRate, CrossBorrowRates, LeverageTier, int, LedgerEntry, FundingRate, DepositAddress, LongShortRatio } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option, MarginModification, TradingFeeInterface, Currencies, Conversion, CancellationRequest, Dict, Position, CrossBorrowRate, CrossBorrowRates, LeverageTier, int, LedgerEntry, FundingRate, DepositAddress, LongShortRatio, BorrowInterest } from './base/types.js';
3
3
  /**
4
4
  * @class okx
5
5
  * @augments Exchange
@@ -115,18 +115,8 @@ export default class okx extends Exchange {
115
115
  addMargin(symbol: string, amount: number, params?: {}): Promise<MarginModification>;
116
116
  fetchMarketLeverageTiers(symbol: string, params?: {}): Promise<LeverageTier[]>;
117
117
  parseMarketLeverageTiers(info: any, market?: Market): LeverageTier[];
118
- fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
119
- parseBorrowInterest(info: Dict, market?: Market): {
120
- symbol: string;
121
- marginMode: string;
122
- currency: string;
123
- interest: number;
124
- interestRate: number;
125
- amountBorrowed: number;
126
- timestamp: number;
127
- datetime: string;
128
- info: Dict;
129
- };
118
+ fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<BorrowInterest[]>;
119
+ parseBorrowInterest(info: Dict, market?: Market): BorrowInterest;
130
120
  borrowCrossMargin(code: string, amount: number, params?: {}): Promise<{
131
121
  id: any;
132
122
  currency: string;
package/js/src/okx.js CHANGED
@@ -398,6 +398,7 @@ export default class okx extends Exchange {
398
398
  // eth staking
399
399
  'finance/staking-defi/eth/balance': 5 / 3,
400
400
  'finance/staking-defi/eth/purchase-redeem-history': 5 / 3,
401
+ 'finance/staking-defi/eth/product-info': 3,
401
402
  // copytrading
402
403
  'copytrading/current-subpositions': 1,
403
404
  'copytrading/subpositions-history': 1,
@@ -7076,15 +7077,15 @@ export default class okx extends Exchange {
7076
7077
  }
7077
7078
  const timestamp = this.safeInteger(info, 'ts');
7078
7079
  return {
7080
+ 'info': info,
7079
7081
  'symbol': this.safeString(market, 'symbol'),
7080
- 'marginMode': this.safeString(info, 'mgnMode'),
7081
7082
  'currency': this.safeCurrencyCode(this.safeString(info, 'ccy')),
7082
7083
  'interest': this.safeNumber(info, 'interest'),
7083
7084
  'interestRate': this.safeNumber(info, 'interestRate'),
7084
7085
  'amountBorrowed': this.safeNumber(info, 'liab'),
7086
+ 'marginMode': this.safeString(info, 'mgnMode'),
7085
7087
  'timestamp': timestamp,
7086
7088
  'datetime': this.iso8601(timestamp),
7087
- 'info': info,
7088
7089
  };
7089
7090
  }
7090
7091
  async borrowCrossMargin(code, amount, params = {}) {
package/js/src/phemex.js CHANGED
@@ -108,7 +108,7 @@ export default class phemex extends Exchange {
108
108
  'private': 'https://{hostname}',
109
109
  },
110
110
  'www': 'https://phemex.com',
111
- 'doc': 'https://github.com/phemex/phemex-api-docs',
111
+ 'doc': 'https://phemex-docs.github.io/#overview',
112
112
  'fees': 'https://phemex.com/fees-conditions',
113
113
  'referral': {
114
114
  'url': 'https://phemex.com/register?referralCode=EDNVJ',
@@ -166,6 +166,7 @@ export default class phemex extends Exchange {
166
166
  'v2': {
167
167
  'get': {
168
168
  'public/products': 5,
169
+ 'public/products-plus': 5,
169
170
  'md/v2/orderbook': 5,
170
171
  'md/v2/trade': 5,
171
172
  'md/v2/ticker/24hr': 5,
@@ -738,7 +739,7 @@ export default class phemex extends Exchange {
738
739
  'max': this.parseSafeNumber(this.safeString(market, 'maxOrderValue')),
739
740
  },
740
741
  },
741
- 'created': undefined,
742
+ 'created': this.safeInteger(market, 'listTime'),
742
743
  'info': market,
743
744
  });
744
745
  }
@@ -747,6 +748,7 @@ export default class phemex extends Exchange {
747
748
  * @method
748
749
  * @name phemex#fetchMarkets
749
750
  * @description retrieves data on all markets for phemex
751
+ * @see https://phemex-docs.github.io/#query-product-information-3
750
752
  * @param {object} [params] extra parameters specific to the exchange API endpoint
751
753
  * @returns {object[]} an array of objects representing market data
752
754
  */
@@ -1,5 +1,5 @@
1
1
  import exmoRest from '../exmo.js';
2
- import type { Int, Str, OrderBook, Trade, Ticker, Balances, Strings, Tickers } from '../base/types.js';
2
+ import type { Int, Str, OrderBook, Trade, Ticker, Balances, Market, Dict, Strings, Tickers, Order } from '../base/types.js';
3
3
  import Client from '../base/ws/Client.js';
4
4
  export default class exmo extends exmoRest {
5
5
  describe(): any;
@@ -19,6 +19,10 @@ export default class exmo extends exmoRest {
19
19
  handleOrderBook(client: Client, message: any): void;
20
20
  handleDelta(bookside: any, delta: any): void;
21
21
  handleDeltas(bookside: any, deltas: any): void;
22
+ watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
23
+ handleOrders(client: Client, message: any): void;
24
+ parseWsOrder(order: Dict, market?: Market): Order;
25
+ parseWsTrade(trade: Dict, market?: Market): Trade;
22
26
  handleMessage(client: Client, message: any): void;
23
27
  handleSubscribed(client: Client, message: any): any;
24
28
  handleInfo(client: Client, message: any): any;