ccxt 4.2.38 → 4.2.40

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 (127) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.js +1340 -407
  3. package/dist/ccxt.browser.min.js +3 -3
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/ascendex.js +28 -24
  6. package/dist/cjs/src/base/Exchange.js +28 -16
  7. package/dist/cjs/src/binance.js +528 -181
  8. package/dist/cjs/src/bingx.js +250 -23
  9. package/dist/cjs/src/bitget.js +14 -3
  10. package/dist/cjs/src/bitso.js +18 -2
  11. package/dist/cjs/src/bitstamp.js +24 -2
  12. package/dist/cjs/src/bl3p.js +6 -0
  13. package/dist/cjs/src/blockchaincom.js +21 -0
  14. package/dist/cjs/src/btcalpha.js +9 -0
  15. package/dist/cjs/src/btcbox.js +9 -0
  16. package/dist/cjs/src/btcmarkets.js +19 -0
  17. package/dist/cjs/src/bybit.js +3 -1
  18. package/dist/cjs/src/coinbase.js +21 -8
  19. package/dist/cjs/src/coinbasepro.js +1 -0
  20. package/dist/cjs/src/coinlist.js +9 -7
  21. package/dist/cjs/src/coinmetro.js +2 -1
  22. package/dist/cjs/src/krakenfutures.js +133 -16
  23. package/dist/cjs/src/luno.js +1 -1
  24. package/dist/cjs/src/mexc.js +43 -43
  25. package/dist/cjs/src/okx.js +11 -17
  26. package/dist/cjs/src/phemex.js +1 -0
  27. package/dist/cjs/src/poloniexfutures.js +11 -5
  28. package/dist/cjs/src/pro/bitmart.js +141 -48
  29. package/dist/cjs/src/pro/bybit.js +5 -5
  30. package/dist/cjs/src/pro/mexc.js +1 -1
  31. package/dist/cjs/src/wavesexchange.js +1 -1
  32. package/dist/cjs/src/woo.js +1 -1
  33. package/js/ccxt.d.ts +1 -1
  34. package/js/ccxt.js +1 -1
  35. package/js/src/abstract/bingx.d.ts +4 -0
  36. package/js/src/abstract/coinbase.d.ts +1 -0
  37. package/js/src/abstract/coinbasepro.d.ts +1 -0
  38. package/js/src/abstract/okx.d.ts +1 -0
  39. package/js/src/ascendex.d.ts +2 -2
  40. package/js/src/ascendex.js +28 -24
  41. package/js/src/base/Exchange.d.ts +12 -8
  42. package/js/src/base/Exchange.js +28 -16
  43. package/js/src/base/types.d.ts +2 -0
  44. package/js/src/bigone.d.ts +2 -2
  45. package/js/src/binance.d.ts +9 -9
  46. package/js/src/binance.js +528 -181
  47. package/js/src/bingx.d.ts +6 -5
  48. package/js/src/bingx.js +250 -23
  49. package/js/src/bitfinex.d.ts +3 -3
  50. package/js/src/bitfinex2.d.ts +2 -2
  51. package/js/src/bitget.d.ts +5 -5
  52. package/js/src/bitget.js +14 -3
  53. package/js/src/bitmart.d.ts +2 -2
  54. package/js/src/bitmex.d.ts +2 -2
  55. package/js/src/bitrue.d.ts +2 -2
  56. package/js/src/bitso.d.ts +1 -1
  57. package/js/src/bitso.js +18 -2
  58. package/js/src/bitstamp.d.ts +1 -1
  59. package/js/src/bitstamp.js +24 -2
  60. package/js/src/bitvavo.d.ts +1 -1
  61. package/js/src/bl3p.js +6 -0
  62. package/js/src/blockchaincom.js +21 -0
  63. package/js/src/blofin.d.ts +2 -2
  64. package/js/src/btcalpha.js +9 -0
  65. package/js/src/btcbox.js +9 -0
  66. package/js/src/btcmarkets.js +19 -0
  67. package/js/src/bybit.d.ts +7 -7
  68. package/js/src/bybit.js +3 -1
  69. package/js/src/cex.d.ts +1 -1
  70. package/js/src/coinbase.d.ts +2 -2
  71. package/js/src/coinbase.js +21 -8
  72. package/js/src/coinbasepro.js +1 -0
  73. package/js/src/coinex.d.ts +4 -4
  74. package/js/src/coinlist.d.ts +2 -2
  75. package/js/src/coinlist.js +9 -7
  76. package/js/src/coinmetro.js +2 -1
  77. package/js/src/coinone.d.ts +1 -1
  78. package/js/src/delta.d.ts +2 -2
  79. package/js/src/deribit.d.ts +3 -3
  80. package/js/src/digifinex.d.ts +3 -3
  81. package/js/src/exmo.d.ts +2 -2
  82. package/js/src/gate.d.ts +6 -6
  83. package/js/src/hitbtc.d.ts +2 -2
  84. package/js/src/hollaex.d.ts +1 -1
  85. package/js/src/htx.d.ts +3 -3
  86. package/js/src/huobijp.d.ts +1 -1
  87. package/js/src/kraken.d.ts +2 -2
  88. package/js/src/krakenfutures.d.ts +4 -2
  89. package/js/src/krakenfutures.js +133 -16
  90. package/js/src/kucoin.d.ts +5 -5
  91. package/js/src/kucoinfutures.d.ts +2 -2
  92. package/js/src/latoken.d.ts +1 -1
  93. package/js/src/lbank.d.ts +2 -2
  94. package/js/src/luno.d.ts +1 -1
  95. package/js/src/luno.js +1 -1
  96. package/js/src/mexc.d.ts +4 -4
  97. package/js/src/mexc.js +43 -43
  98. package/js/src/ndax.d.ts +1 -1
  99. package/js/src/novadax.d.ts +1 -1
  100. package/js/src/okcoin.d.ts +2 -2
  101. package/js/src/okx.d.ts +7 -7
  102. package/js/src/okx.js +11 -17
  103. package/js/src/paymium.d.ts +2 -2
  104. package/js/src/phemex.d.ts +4 -4
  105. package/js/src/phemex.js +1 -0
  106. package/js/src/poloniex.d.ts +2 -2
  107. package/js/src/poloniexfutures.d.ts +2 -2
  108. package/js/src/poloniexfutures.js +11 -5
  109. package/js/src/pro/bitmart.d.ts +4 -0
  110. package/js/src/pro/bitmart.js +141 -48
  111. package/js/src/pro/bitvavo.d.ts +1 -1
  112. package/js/src/pro/bybit.d.ts +1 -1
  113. package/js/src/pro/bybit.js +5 -5
  114. package/js/src/pro/cex.d.ts +2 -2
  115. package/js/src/pro/coinbase.d.ts +2 -2
  116. package/js/src/pro/coinex.d.ts +1 -1
  117. package/js/src/pro/lbank.d.ts +1 -1
  118. package/js/src/pro/mexc.js +1 -1
  119. package/js/src/probit.d.ts +1 -1
  120. package/js/src/timex.d.ts +1 -1
  121. package/js/src/upbit.d.ts +1 -1
  122. package/js/src/wavesexchange.js +1 -1
  123. package/js/src/whitebit.d.ts +2 -2
  124. package/js/src/woo.d.ts +3 -3
  125. package/js/src/woo.js +1 -1
  126. package/js/src/zonda.d.ts +3 -3
  127. package/package.json +2 -2
package/js/src/gate.d.ts CHANGED
@@ -8,7 +8,7 @@ export default class gate extends Exchange {
8
8
  describe(): any;
9
9
  setSandboxMode(enable: any): void;
10
10
  convertExpireDate(date: any): string;
11
- createExpiredOptionMarket(symbol: any): MarketInterface;
11
+ createExpiredOptionMarket(symbol: string): MarketInterface;
12
12
  safeMarket(marketId?: any, market?: any, delimiter?: any, marketType?: any): MarketInterface;
13
13
  fetchMarkets(params?: {}): Promise<any>;
14
14
  fetchSpotMarkets(params?: {}): Promise<any[]>;
@@ -134,7 +134,7 @@ export default class gate extends Exchange {
134
134
  maker: number;
135
135
  taker: number;
136
136
  };
137
- fetchTransactionFees(codes?: any, params?: {}): Promise<{}>;
137
+ fetchTransactionFees(codes?: string[], params?: {}): Promise<{}>;
138
138
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
139
139
  parseDepositWithdrawFee(fee: any, currency?: Currency): {
140
140
  info: any;
@@ -182,8 +182,8 @@ export default class gate extends Exchange {
182
182
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
183
183
  createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
184
184
  createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): any;
185
- createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
186
- editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
185
+ createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
186
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
187
187
  parseOrderStatus(status: any): string;
188
188
  parseOrder(order: any, market?: Market): Order;
189
189
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
@@ -192,7 +192,7 @@ export default class gate extends Exchange {
192
192
  fetchOrdersByStatus(status: any, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
193
193
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
194
194
  cancelAllOrders(symbol?: Str, params?: {}): Promise<Order[]>;
195
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
195
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
196
196
  parseTransfer(transfer: any, currency?: Currency): {
197
197
  id: string;
198
198
  timestamp: any;
@@ -333,7 +333,7 @@ export default class gate extends Exchange {
333
333
  info: any;
334
334
  };
335
335
  parseLedgerEntryType(type: any): string;
336
- setPositionMode(hedged: any, symbol?: any, params?: {}): Promise<any>;
336
+ setPositionMode(hedged: boolean, symbol?: string, params?: {}): Promise<any>;
337
337
  fetchUnderlyingAssets(params?: {}): Promise<any[]>;
338
338
  fetchLiquidations(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Liquidation[]>;
339
339
  fetchMyLiquidations(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Liquidation[]>;
@@ -64,13 +64,13 @@ export default class hitbtc extends Exchange {
64
64
  fetchOpenOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
65
65
  cancelAllOrders(symbol?: Str, params?: {}): Promise<Order[]>;
66
66
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
67
- editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
67
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
68
68
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
69
69
  createOrderRequest(market: object, marketType: string, type: OrderType, side: OrderSide, amount: any, price?: any, marginMode?: Str, params?: {}): {}[];
70
70
  parseOrderStatus(status: any): string;
71
71
  parseOrder(order: any, market?: Market): Order;
72
72
  fetchMarginMode(symbol?: Str, params?: {}): Promise<MarginMode>;
73
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
73
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
74
74
  parseTransfer(transfer: any, currency?: Currency): {
75
75
  id: string;
76
76
  timestamp: any;
@@ -39,7 +39,7 @@ export default class hollaex extends Exchange {
39
39
  network: string;
40
40
  info: any;
41
41
  };
42
- fetchDepositAddresses(codes?: any, params?: {}): Promise<{}>;
42
+ fetchDepositAddresses(codes?: string[], params?: {}): Promise<{}>;
43
43
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
44
44
  fetchWithdrawal(id: string, code?: Str, params?: {}): Promise<Transaction>;
45
45
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
package/js/src/htx.d.ts CHANGED
@@ -92,7 +92,7 @@ export default class htx extends Exchange {
92
92
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
93
93
  parseOrderStatus(status: any): string;
94
94
  parseOrder(order: any, market?: Market): Order;
95
- createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
95
+ createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
96
96
  createTrailingPercentOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingPercent?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
97
97
  createSpotOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<any>;
98
98
  createContractOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): any;
@@ -128,7 +128,7 @@ export default class htx extends Exchange {
128
128
  toAccount: any;
129
129
  status: any;
130
130
  };
131
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
131
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
132
132
  fetchIsolatedBorrowRates(params?: {}): Promise<BorrowRate[]>;
133
133
  parseIsolatedBorrowRate(info: any, market?: Market): {
134
134
  symbol: string;
@@ -266,5 +266,5 @@ export default class htx extends Exchange {
266
266
  };
267
267
  fetchLiquidations(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Liquidation[]>;
268
268
  parseLiquidation(liquidation: any, market?: Market): import("./base/types.js").Liquidation;
269
- setPositionMode(hedged: any, symbol?: Str, params?: {}): Promise<any>;
269
+ setPositionMode(hedged: boolean, symbol?: Str, params?: {}): Promise<any>;
270
270
  }
@@ -51,7 +51,7 @@ export default class huobijp extends Exchange {
51
51
  fetchOpenOrdersV2(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
52
52
  parseOrderStatus(status: any): string;
53
53
  parseOrder(order: any, market?: Market): Order;
54
- createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
54
+ createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
55
55
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
56
56
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
57
57
  cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<any>;
@@ -70,7 +70,7 @@ export default class kraken extends Exchange {
70
70
  parseOrderType(status: any): string;
71
71
  parseOrder(order: any, market?: Market): Order;
72
72
  orderRequest(method: any, symbol: any, type: any, request: any, price?: any, params?: {}): any[];
73
- editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
73
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
74
74
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
75
75
  fetchOrderTrades(id: string, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
76
76
  fetchOrdersByIds(ids: any, symbol?: Str, params?: {}): Promise<any[]>;
@@ -114,7 +114,7 @@ export default class kraken extends Exchange {
114
114
  fetchPositions(symbols?: Strings, params?: {}): Promise<any>;
115
115
  parseAccount(account: any): string;
116
116
  transferOut(code: string, amount: any, params?: {}): Promise<TransferEntry>;
117
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
117
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
118
118
  parseTransfer(transfer: any, currency?: Currency): {
119
119
  info: any;
120
120
  id: string;
@@ -17,11 +17,13 @@ export default class krakenfutures extends Exchange {
17
17
  createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): any;
18
18
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
19
19
  createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
20
- editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
20
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
21
21
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
22
22
  cancelOrders(ids: string[], symbol?: Str, params?: {}): Promise<Order[]>;
23
23
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
24
24
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
25
+ fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
26
+ fetchCanceledOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
25
27
  parseOrderType(orderType: any): string;
26
28
  verifyOrderActionSuccess(status: any, method: any, omit?: any[]): void;
27
29
  parseOrderStatus(status: any): string;
@@ -90,7 +92,7 @@ export default class krakenfutures extends Exchange {
90
92
  };
91
93
  parseAccount(account: any): any;
92
94
  transferOut(code: string, amount: any, params?: {}): Promise<TransferEntry>;
93
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
95
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
94
96
  setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
95
97
  fetchLeverage(symbol?: Str, params?: {}): Promise<any>;
96
98
  handleErrors(code: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
@@ -42,7 +42,8 @@ export default class krakenfutures extends Exchange {
42
42
  'fetchBalance': true,
43
43
  'fetchBorrowRateHistories': false,
44
44
  'fetchBorrowRateHistory': false,
45
- 'fetchClosedOrders': undefined,
45
+ 'fetchCanceledOrders': true,
46
+ 'fetchClosedOrders': true,
46
47
  'fetchCrossBorrowRate': false,
47
48
  'fetchCrossBorrowRates': false,
48
49
  'fetchDepositAddress': false,
@@ -802,37 +803,30 @@ export default class krakenfutures extends Exchange {
802
803
  id = this.safeString(trade, 'executionId');
803
804
  }
804
805
  let order = this.safeString(trade, 'order_id');
805
- let symbolId = this.safeString(trade, 'symbol');
806
+ let marketId = this.safeString(trade, 'symbol');
806
807
  let side = this.safeString(trade, 'side');
807
808
  let type = undefined;
808
809
  const priorEdit = this.safeValue(trade, 'orderPriorEdit');
809
810
  const priorExecution = this.safeValue(trade, 'orderPriorExecution');
810
811
  if (priorExecution !== undefined) {
811
812
  order = this.safeString(priorExecution, 'orderId');
812
- symbolId = this.safeString(priorExecution, 'symbol');
813
+ marketId = this.safeString(priorExecution, 'symbol');
813
814
  side = this.safeString(priorExecution, 'side');
814
815
  type = this.safeString(priorExecution, 'type');
815
816
  }
816
817
  else if (priorEdit !== undefined) {
817
818
  order = this.safeString(priorEdit, 'orderId');
818
- symbolId = this.safeString(priorEdit, 'symbol');
819
+ marketId = this.safeString(priorEdit, 'symbol');
819
820
  side = this.safeString(priorEdit, 'type');
820
821
  type = this.safeString(priorEdit, 'type');
821
822
  }
822
823
  if (type !== undefined) {
823
824
  type = this.parseOrderType(type);
824
825
  }
825
- let symbol = undefined;
826
- if (symbolId !== undefined) {
827
- market = this.safeValue(this.markets_by_id, symbolId);
828
- if (market === undefined) {
829
- symbol = symbolId;
830
- }
831
- }
832
- symbol = this.safeString(market, 'symbol', symbol);
826
+ market = this.safeMarket(marketId, market);
833
827
  let cost = undefined;
828
+ const linear = this.safeBool(market, 'linear');
834
829
  if ((amount !== undefined) && (price !== undefined) && (market !== undefined)) {
835
- const linear = this.safeValue(market, 'linear');
836
830
  if (linear) {
837
831
  cost = Precise.stringMul(amount, price); // in quote
838
832
  }
@@ -855,15 +849,15 @@ export default class krakenfutures extends Exchange {
855
849
  return this.safeTrade({
856
850
  'info': trade,
857
851
  'id': id,
852
+ 'symbol': this.safeString(market, 'symbol'),
858
853
  'timestamp': timestamp,
859
854
  'datetime': this.iso8601(timestamp),
860
- 'symbol': symbol,
861
855
  'order': order,
862
856
  'type': type,
863
857
  'side': side,
864
858
  'takerOrMaker': takerOrMaker,
865
859
  'price': price,
866
- 'amount': amount,
860
+ 'amount': linear ? amount : undefined,
867
861
  'cost': cost,
868
862
  'fee': undefined,
869
863
  });
@@ -1196,6 +1190,102 @@ export default class krakenfutures extends Exchange {
1196
1190
  const orders = this.safeValue(response, 'openOrders', []);
1197
1191
  return this.parseOrders(orders, market, since, limit);
1198
1192
  }
1193
+ async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1194
+ /**
1195
+ * @method
1196
+ * @name krakenfutures#fetchClosedOrders
1197
+ * @see https://docs.futures.kraken.com/#http-api-history-account-history-get-order-events
1198
+ * @description Gets all closed orders, including trigger orders, for an account from the exchange api
1199
+ * @param {string} symbol Unified market symbol
1200
+ * @param {int} [since] Timestamp (ms) of earliest order.
1201
+ * @param {int} [limit] How many orders to return.
1202
+ * @param {object} [params] Exchange specific parameters
1203
+ * @returns An array of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1204
+ */
1205
+ await this.loadMarkets();
1206
+ let market = undefined;
1207
+ if (symbol !== undefined) {
1208
+ market = this.market(symbol);
1209
+ }
1210
+ const request = {};
1211
+ if (limit !== undefined) {
1212
+ request['count'] = limit;
1213
+ }
1214
+ if (since !== undefined) {
1215
+ request['from'] = since;
1216
+ }
1217
+ const response = await this.historyGetOrders(this.extend(request, params));
1218
+ const allOrders = this.safeList(response, 'elements', []);
1219
+ const closedOrders = [];
1220
+ for (let i = 0; i < allOrders.length; i++) {
1221
+ const order = allOrders[i];
1222
+ const event = this.safeDict(order, 'event', {});
1223
+ const orderPlaced = this.safeDict(event, 'OrderPlaced');
1224
+ if (orderPlaced !== undefined) {
1225
+ const innerOrder = this.safeDict(orderPlaced, 'order', {});
1226
+ const filled = this.safeString(innerOrder, 'filled');
1227
+ if (filled !== '0') {
1228
+ innerOrder['status'] = 'closed'; // status not available in the response
1229
+ closedOrders.push(innerOrder);
1230
+ }
1231
+ }
1232
+ }
1233
+ return this.parseOrders(closedOrders, market, since, limit);
1234
+ }
1235
+ async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1236
+ /**
1237
+ * @method
1238
+ * @name krakenfutures#fetchCanceledOrders
1239
+ * @see https://docs.futures.kraken.com/#http-api-history-account-history-get-order-events
1240
+ * @description Gets all canceled orders, including trigger orders, for an account from the exchange api
1241
+ * @param {string} symbol Unified market symbol
1242
+ * @param {int} [since] Timestamp (ms) of earliest order.
1243
+ * @param {int} [limit] How many orders to return.
1244
+ * @param {object} [params] Exchange specific parameters
1245
+ * @returns An array of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1246
+ */
1247
+ await this.loadMarkets();
1248
+ let market = undefined;
1249
+ if (symbol !== undefined) {
1250
+ market = this.market(symbol);
1251
+ }
1252
+ const request = {};
1253
+ if (limit !== undefined) {
1254
+ request['count'] = limit;
1255
+ }
1256
+ if (since !== undefined) {
1257
+ request['from'] = since;
1258
+ }
1259
+ const response = await this.historyGetOrders(this.extend(request, params));
1260
+ const allOrders = this.safeList(response, 'elements', []);
1261
+ const canceledAndRejected = [];
1262
+ for (let i = 0; i < allOrders.length; i++) {
1263
+ const order = allOrders[i];
1264
+ const event = this.safeDict(order, 'event', {});
1265
+ const orderPlaced = this.safeDict(event, 'OrderPlaced');
1266
+ if (orderPlaced !== undefined) {
1267
+ const innerOrder = this.safeDict(orderPlaced, 'order', {});
1268
+ const filled = this.safeString(innerOrder, 'filled');
1269
+ if (filled === '0') {
1270
+ innerOrder['status'] = 'canceled'; // status not available in the response
1271
+ canceledAndRejected.push(innerOrder);
1272
+ }
1273
+ }
1274
+ const orderCanceled = this.safeDict(event, 'OrderCancelled');
1275
+ if (orderCanceled !== undefined) {
1276
+ const innerOrder = this.safeDict(orderCanceled, 'order', {});
1277
+ innerOrder['status'] = 'canceled'; // status not available in the response
1278
+ canceledAndRejected.push(innerOrder);
1279
+ }
1280
+ const orderRejected = this.safeDict(event, 'OrderRejected');
1281
+ if (orderRejected !== undefined) {
1282
+ const innerOrder = this.safeDict(orderRejected, 'order', {});
1283
+ innerOrder['status'] = 'rejected'; // status not available in the response
1284
+ canceledAndRejected.push(innerOrder);
1285
+ }
1286
+ }
1287
+ return this.parseOrders(canceledAndRejected, market, since, limit);
1288
+ }
1199
1289
  parseOrderType(orderType) {
1200
1290
  const map = {
1201
1291
  'lmt': 'limit',
@@ -1439,6 +1529,32 @@ export default class krakenfutures extends Exchange {
1439
1529
  // "status": "requiredArgumentMissing",
1440
1530
  // "orderEvents": []
1441
1531
  // }
1532
+ // closed orders
1533
+ // {
1534
+ // uid: '2f00cd63-e61d-44f8-8569-adabde885941',
1535
+ // timestamp: '1707258274849',
1536
+ // event: {
1537
+ // OrderPlaced: {
1538
+ // order: {
1539
+ // uid: '85805e01-9eed-4395-8360-ed1a228237c9',
1540
+ // accountUid: '406142dd-7c5c-4a8b-acbc-5f16eca30009',
1541
+ // tradeable: 'PF_LTCUSD',
1542
+ // direction: 'Buy',
1543
+ // quantity: '0',
1544
+ // filled: '0.1',
1545
+ // timestamp: '1707258274849',
1546
+ // limitPrice: '69.2200000000',
1547
+ // orderType: 'IoC',
1548
+ // clientId: '',
1549
+ // reduceOnly: false,
1550
+ // lastUpdateTimestamp: '1707258274849'
1551
+ // },
1552
+ // reason: 'new_user_order',
1553
+ // reducedQuantity: '',
1554
+ // algoId: ''
1555
+ // }
1556
+ // }
1557
+ // }
1442
1558
  //
1443
1559
  const orderEvents = this.safeValue(order, 'orderEvents', []);
1444
1560
  const errorStatus = this.safeString(order, 'status');
@@ -1501,7 +1617,8 @@ export default class krakenfutures extends Exchange {
1501
1617
  let remaining = this.safeString(details, 'unfilledSize');
1502
1618
  let average = undefined;
1503
1619
  let filled2 = '0.0';
1504
- if (trades.length) {
1620
+ const tradesLength = trades.length;
1621
+ if (tradesLength > 0) {
1505
1622
  let vwapSum = '0.0';
1506
1623
  for (let i = 0; i < trades.length; i++) {
1507
1624
  const trade = trades[i];
@@ -67,12 +67,12 @@ export default class kucoin extends Exchange {
67
67
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
68
68
  handleTriggerPrices(params: any): any[];
69
69
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
70
- createMarketOrderWithCost(symbol: string, side: OrderSide, cost: any, params?: {}): Promise<Order>;
71
- createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
72
- createMarketSellOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
70
+ createMarketOrderWithCost(symbol: string, side: OrderSide, cost: number, params?: {}): Promise<Order>;
71
+ createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
72
+ createMarketSellOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
73
73
  createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
74
74
  createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): any;
75
- editOrder(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
75
+ editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
76
76
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
77
77
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
78
78
  fetchOrdersByStatus(status: any, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
@@ -99,7 +99,7 @@ export default class kucoin extends Exchange {
99
99
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
100
100
  parseBalanceHelper(entry: any): import("./base/types.js").Account;
101
101
  fetchBalance(params?: {}): Promise<Balances>;
102
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
102
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
103
103
  parseTransfer(transfer: any, currency?: Currency): {
104
104
  id: string;
105
105
  currency: string;
@@ -48,7 +48,7 @@ export default class kucoinfutures extends kucoin {
48
48
  };
49
49
  fetchOrdersByStatus(status: any, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
50
50
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
51
- fetchOrder(id?: any, symbol?: Str, params?: {}): Promise<Order>;
51
+ fetchOrder(id?: string, symbol?: Str, params?: {}): Promise<Order>;
52
52
  parseOrder(order: any, market?: Market): Order;
53
53
  fetchFundingRate(symbol: string, params?: {}): Promise<{
54
54
  info: any;
@@ -71,7 +71,7 @@ export default class kucoinfutures extends kucoin {
71
71
  }>;
72
72
  parseBalance(response: any): Balances;
73
73
  fetchBalance(params?: {}): Promise<Balances>;
74
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
74
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
75
75
  parseTransfer(transfer: any, currency?: Currency): {
76
76
  id: string;
77
77
  timestamp: number;
@@ -52,7 +52,7 @@ export default class latoken extends Exchange {
52
52
  parseTransactionStatus(status: any): string;
53
53
  parseTransactionType(type: any): string;
54
54
  fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
55
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
55
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
56
56
  parseTransfer(transfer: any, currency?: Currency): {
57
57
  info: any;
58
58
  id: string;
package/js/src/lbank.d.ts CHANGED
@@ -28,7 +28,7 @@ export default class lbank extends Exchange {
28
28
  };
29
29
  fetchTradingFee(symbol: string, params?: {}): Promise<{}>;
30
30
  fetchTradingFees(params?: {}): Promise<{}>;
31
- createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
31
+ createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
32
32
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
33
33
  parseOrderStatus(status: any): string;
34
34
  parseOrder(order: any, market?: Market): Order;
@@ -61,7 +61,7 @@ export default class lbank extends Exchange {
61
61
  parseTransaction(transaction: any, currency?: Currency): Transaction;
62
62
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
63
63
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
64
- fetchTransactionFees(codes?: any, params?: {}): Promise<any>;
64
+ fetchTransactionFees(codes?: string[], params?: {}): Promise<any>;
65
65
  fetchPrivateTransactionFees(params?: {}): Promise<{
66
66
  withdraw: {};
67
67
  deposit: {};
package/js/src/luno.d.ts CHANGED
@@ -23,7 +23,7 @@ export default class luno extends Exchange {
23
23
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
24
24
  parseTrade(trade: any, market?: Market): Trade;
25
25
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
26
- fetchOHLCV(symbol: any, timeframe?: string, since?: any, limit?: any, params?: {}): Promise<OHLCV[]>;
26
+ fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
27
27
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
28
28
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
29
29
  fetchTradingFee(symbol: string, params?: {}): Promise<{
package/js/src/luno.js CHANGED
@@ -762,7 +762,7 @@ export default class luno extends Exchange {
762
762
  'pair': market['id'],
763
763
  };
764
764
  if (since !== undefined) {
765
- request['since'] = parseInt(since);
765
+ request['since'] = this.parseToInt(since);
766
766
  }
767
767
  else {
768
768
  const duration = 1000 * 1000 * this.parseTimeframe(timeframe);
package/js/src/mexc.d.ts CHANGED
@@ -30,7 +30,7 @@ export default class mexc extends Exchange {
30
30
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
31
31
  parseTicker(ticker: any, market?: Market): Ticker;
32
32
  fetchBidsAsks(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Dictionary<Ticker>>;
33
- createMarketBuyOrderWithCost(symbol: string, cost: any, params?: {}): Promise<Order>;
33
+ createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
34
34
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
35
35
  createSpotOrderRequest(market: any, type: any, side: any, amount: any, price?: any, marginMode?: any, params?: {}): any;
36
36
  createSpotOrder(market: any, type: any, side: any, amount: any, price?: any, marginMode?: any, params?: {}): Promise<Order>;
@@ -140,7 +140,7 @@ export default class mexc extends Exchange {
140
140
  status: string;
141
141
  }>;
142
142
  fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
143
- transfer(code: string, amount: number, fromAccount: any, toAccount: any, params?: {}): Promise<TransferEntry>;
143
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
144
144
  parseTransfer(transfer: any, currency?: Currency): {
145
145
  info: any;
146
146
  id: string;
@@ -155,12 +155,12 @@ export default class mexc extends Exchange {
155
155
  parseAccountId(status: any): string;
156
156
  parseTransferStatus(status: any): string;
157
157
  withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
158
- setPositionMode(hedged: any, symbol?: Str, params?: {}): Promise<any>;
158
+ setPositionMode(hedged: boolean, symbol?: Str, params?: {}): Promise<any>;
159
159
  fetchPositionMode(symbol?: Str, params?: {}): Promise<{
160
160
  info: any;
161
161
  hedged: boolean;
162
162
  }>;
163
- fetchTransactionFees(codes?: any, params?: {}): Promise<{
163
+ fetchTransactionFees(codes?: string[], params?: {}): Promise<{
164
164
  withdraw: {};
165
165
  deposit: {};
166
166
  info: any;