ccxt 4.3.30 → 4.3.32

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 (140) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +2 -2
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/base/Exchange.js +14 -0
  5. package/dist/cjs/src/binance.js +14 -1
  6. package/dist/cjs/src/bitfinex2.js +100 -58
  7. package/dist/cjs/src/bitmart.js +3 -3
  8. package/dist/cjs/src/bitmex.js +1 -1
  9. package/dist/cjs/src/coinbase.js +1 -1
  10. package/dist/cjs/src/coinex.js +153 -126
  11. package/dist/cjs/src/gate.js +3 -3
  12. package/dist/cjs/src/hyperliquid.js +1 -1
  13. package/dist/cjs/src/kraken.js +2 -7
  14. package/dist/cjs/src/mexc.js +5 -5
  15. package/dist/cjs/src/poloniexfutures.js +8 -3
  16. package/dist/cjs/src/pro/bingx.js +1 -1
  17. package/dist/cjs/src/pro/cex.js +1 -1
  18. package/dist/cjs/src/pro/coinbase.js +31 -0
  19. package/dist/cjs/src/pro/mexc.js +7 -7
  20. package/js/ccxt.d.ts +1 -1
  21. package/js/ccxt.js +1 -1
  22. package/js/src/abstract/binance.d.ts +2 -0
  23. package/js/src/abstract/binancecoinm.d.ts +2 -0
  24. package/js/src/abstract/binanceus.d.ts +2 -0
  25. package/js/src/abstract/binanceusdm.d.ts +2 -0
  26. package/js/src/ace.d.ts +3 -3
  27. package/js/src/alpaca.d.ts +5 -5
  28. package/js/src/ascendex.d.ts +12 -23
  29. package/js/src/base/Exchange.d.ts +39 -37
  30. package/js/src/base/Exchange.js +14 -0
  31. package/js/src/base/functions/type.d.ts +9 -9
  32. package/js/src/base/types.d.ts +2 -0
  33. package/js/src/bigone.d.ts +4 -4
  34. package/js/src/binance.d.ts +20 -23
  35. package/js/src/binance.js +14 -1
  36. package/js/src/bingx.d.ts +8 -19
  37. package/js/src/bit2c.d.ts +2 -2
  38. package/js/src/bitbank.d.ts +4 -4
  39. package/js/src/bitbns.d.ts +3 -3
  40. package/js/src/bitfinex.d.ts +4 -4
  41. package/js/src/bitfinex2.d.ts +8 -8
  42. package/js/src/bitfinex2.js +100 -58
  43. package/js/src/bitflyer.d.ts +4 -4
  44. package/js/src/bitget.d.ts +14 -25
  45. package/js/src/bithumb.d.ts +4 -4
  46. package/js/src/bitmart.d.ts +8 -8
  47. package/js/src/bitmart.js +3 -3
  48. package/js/src/bitmex.d.ts +10 -21
  49. package/js/src/bitmex.js +1 -1
  50. package/js/src/bitopro.d.ts +4 -4
  51. package/js/src/bitrue.d.ts +5 -16
  52. package/js/src/bitso.d.ts +8 -8
  53. package/js/src/bitstamp.d.ts +11 -13
  54. package/js/src/bitteam.d.ts +4 -4
  55. package/js/src/bitvavo.d.ts +8 -19
  56. package/js/src/bl3p.d.ts +1 -1
  57. package/js/src/blockchaincom.d.ts +4 -6
  58. package/js/src/blofin.d.ts +11 -11
  59. package/js/src/btcalpha.d.ts +4 -4
  60. package/js/src/btcbox.d.ts +3 -3
  61. package/js/src/btcmarkets.d.ts +4 -4
  62. package/js/src/btcturk.d.ts +3 -3
  63. package/js/src/bybit.d.ts +19 -33
  64. package/js/src/cex.d.ts +3 -3
  65. package/js/src/coinbase.d.ts +11 -13
  66. package/js/src/coinbase.js +1 -1
  67. package/js/src/coinbaseexchange.d.ts +6 -6
  68. package/js/src/coinbaseinternational.d.ts +10 -10
  69. package/js/src/coincheck.d.ts +3 -3
  70. package/js/src/coinex.d.ts +14 -14
  71. package/js/src/coinex.js +153 -126
  72. package/js/src/coinlist.d.ts +6 -6
  73. package/js/src/coinmate.d.ts +5 -5
  74. package/js/src/coinmetro.d.ts +5 -11
  75. package/js/src/coinone.d.ts +4 -4
  76. package/js/src/coinsph.d.ts +5 -5
  77. package/js/src/coinspot.d.ts +1 -1
  78. package/js/src/cryptocom.d.ts +10 -21
  79. package/js/src/currencycom.d.ts +6 -22
  80. package/js/src/delta.d.ts +8 -8
  81. package/js/src/deribit.d.ts +6 -6
  82. package/js/src/digifinex.d.ts +16 -16
  83. package/js/src/exmo.d.ts +6 -6
  84. package/js/src/gate.d.ts +17 -28
  85. package/js/src/gate.js +3 -3
  86. package/js/src/gemini.d.ts +4 -4
  87. package/js/src/hitbtc.d.ts +8 -8
  88. package/js/src/hollaex.d.ts +6 -17
  89. package/js/src/htx.d.ts +15 -15
  90. package/js/src/huobijp.d.ts +5 -5
  91. package/js/src/hyperliquid.d.ts +4 -4
  92. package/js/src/hyperliquid.js +1 -1
  93. package/js/src/idex.d.ts +4 -4
  94. package/js/src/independentreserve.d.ts +3 -3
  95. package/js/src/indodax.d.ts +5 -7
  96. package/js/src/kraken.d.ts +7 -7
  97. package/js/src/kraken.js +2 -7
  98. package/js/src/krakenfutures.d.ts +9 -9
  99. package/js/src/kucoin.d.ts +11 -22
  100. package/js/src/kucoinfutures.d.ts +6 -6
  101. package/js/src/kuna.d.ts +7 -7
  102. package/js/src/latoken.d.ts +5 -5
  103. package/js/src/lbank.d.ts +10 -10
  104. package/js/src/luno.d.ts +3 -3
  105. package/js/src/lykke.d.ts +4 -4
  106. package/js/src/mercado.d.ts +4 -4
  107. package/js/src/mexc.d.ts +12 -12
  108. package/js/src/mexc.js +5 -5
  109. package/js/src/ndax.d.ts +6 -6
  110. package/js/src/novadax.d.ts +4 -4
  111. package/js/src/oceanex.d.ts +4 -4
  112. package/js/src/okcoin.d.ts +6 -6
  113. package/js/src/okx.d.ts +18 -24
  114. package/js/src/onetrading.d.ts +7 -7
  115. package/js/src/p2b.d.ts +3 -3
  116. package/js/src/paymium.d.ts +3 -3
  117. package/js/src/phemex.d.ts +11 -11
  118. package/js/src/poloniex.d.ts +6 -6
  119. package/js/src/poloniexfutures.d.ts +4 -4
  120. package/js/src/poloniexfutures.js +8 -3
  121. package/js/src/pro/bingx.js +1 -1
  122. package/js/src/pro/cex.js +1 -1
  123. package/js/src/pro/coinbase.d.ts +2 -2
  124. package/js/src/pro/coinbase.js +31 -0
  125. package/js/src/pro/mexc.js +7 -7
  126. package/js/src/pro/phemex.d.ts +3 -45
  127. package/js/src/probit.d.ts +5 -5
  128. package/js/src/timex.d.ts +6 -6
  129. package/js/src/tokocrypto.d.ts +4 -4
  130. package/js/src/tradeogre.d.ts +3 -3
  131. package/js/src/upbit.d.ts +5 -5
  132. package/js/src/wavesexchange.d.ts +4 -4
  133. package/js/src/wazirx.d.ts +4 -4
  134. package/js/src/whitebit.d.ts +11 -11
  135. package/js/src/woo.d.ts +8 -8
  136. package/js/src/woofipro.d.ts +10 -10
  137. package/js/src/yobit.d.ts +3 -3
  138. package/js/src/zaif.d.ts +3 -3
  139. package/js/src/zonda.d.ts +6 -6
  140. package/package.json +1 -1
package/js/src/binance.js CHANGED
@@ -845,6 +845,7 @@ export default class binance extends Exchange {
845
845
  'order/asyn/id': 10,
846
846
  'trade/asyn': 1000,
847
847
  'trade/asyn/id': 10,
848
+ 'feeBurn': 1,
848
849
  },
849
850
  'post': {
850
851
  'batchOrders': 5,
@@ -859,6 +860,7 @@ export default class binance extends Exchange {
859
860
  // broker endpoints
860
861
  'apiReferral/customization': 1,
861
862
  'apiReferral/userCustomization': 1,
863
+ 'feeBurn': 1,
862
864
  },
863
865
  'put': {
864
866
  'listenKey': 1,
@@ -5986,6 +5988,17 @@ export default class binance extends Exchange {
5986
5988
  }
5987
5989
  }
5988
5990
  }
5991
+ else {
5992
+ postOnly = this.isPostOnly(isMarketOrder, initialUppercaseType === 'LIMIT_MAKER', params);
5993
+ if (postOnly) {
5994
+ if (!market['contract']) {
5995
+ uppercaseType = 'LIMIT_MAKER'; // only this endpoint accepts GTXhttps://binance-docs.github.io/apidocs/pm/en/#new-margin-order-trade
5996
+ }
5997
+ else {
5998
+ request['timeInForce'] = 'GTX';
5999
+ }
6000
+ }
6001
+ }
5989
6002
  // handle newOrderRespType response type
5990
6003
  if (((marketType === 'spot') || (marketType === 'margin')) && !isPortfolioMargin) {
5991
6004
  request['newOrderRespType'] = this.safeString(this.options['newOrderRespType'], type, 'FULL'); // 'ACK' for order id, 'RESULT' for full order or 'FULL' for order with fills
@@ -6119,7 +6132,7 @@ export default class binance extends Exchange {
6119
6132
  request['stopPrice'] = this.priceToPrecision(symbol, stopPrice);
6120
6133
  }
6121
6134
  }
6122
- if (timeInForceIsRequired && (this.safeString(params, 'timeInForce') === undefined)) {
6135
+ if (timeInForceIsRequired && (this.safeString(params, 'timeInForce') === undefined) && (this.safeString(request, 'timeInForce') === undefined)) {
6123
6136
  request['timeInForce'] = this.options['defaultTimeInForce']; // 'GTC' = Good To Cancel (default), 'IOC' = Immediate Or Cancel
6124
6137
  }
6125
6138
  if (!isPortfolioMargin && market['contract'] && postOnly) {
package/js/src/bingx.d.ts CHANGED
@@ -15,7 +15,7 @@ export default class bingx extends Exchange {
15
15
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
16
16
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
17
17
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
18
- parseTrade(trade: any, market?: Market): Trade;
18
+ parseTrade(trade: Dict, market?: Market): Trade;
19
19
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
20
20
  fetchFundingRate(symbol: string, params?: {}): Promise<{
21
21
  info: any;
@@ -65,7 +65,7 @@ export default class bingx extends Exchange {
65
65
  fetchBalance(params?: {}): Promise<Balances>;
66
66
  parseBalance(response: any): Balances;
67
67
  fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
68
- parsePosition(position: any, market?: Market): Position;
68
+ parsePosition(position: Dict, market?: Market): Position;
69
69
  createMarketOrderWithCost(symbol: string, side: OrderSide, cost: number, params?: {}): Promise<Order>;
70
70
  createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
71
71
  createMarketSellOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
@@ -73,9 +73,9 @@ export default class bingx extends Exchange {
73
73
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
74
74
  createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
75
75
  parseOrderSide(side: any): string;
76
- parseOrderType(type: any): string;
77
- parseOrder(order: any, market?: Market): Order;
78
- parseOrderStatus(status: any): string;
76
+ parseOrderType(type: Str): string;
77
+ parseOrder(order: Dict, market?: Market): Order;
78
+ parseOrderStatus(status: Str): string;
79
79
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
80
80
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
81
81
  cancelOrders(ids: string[], symbol?: Str, params?: {}): Promise<any>;
@@ -98,7 +98,7 @@ export default class bingx extends Exchange {
98
98
  };
99
99
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
100
100
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
101
- parseTransaction(transaction: any, currency?: Currency): Transaction;
101
+ parseTransaction(transaction: Dict, currency?: Currency): Transaction;
102
102
  parseTransactionStatus(status: string): string;
103
103
  setMarginMode(marginMode: string, symbol?: Str, params?: {}): Promise<any>;
104
104
  addMargin(symbol: string, amount: number, params?: {}): Promise<MarginModification>;
@@ -109,18 +109,7 @@ export default class bingx extends Exchange {
109
109
  parseLeverage(leverage: Dict, market?: Market): Leverage;
110
110
  setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
111
111
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
112
- parseDepositWithdrawFee(fee: any, currency?: Currency): {
113
- info: any;
114
- withdraw: {
115
- fee: any;
116
- percentage: any;
117
- };
118
- deposit: {
119
- fee: any;
120
- percentage: any;
121
- };
122
- networks: {};
123
- };
112
+ parseDepositWithdrawFee(fee: any, currency?: Currency): Dict;
124
113
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
125
114
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
126
115
  parseParams(params: any): import("./base/types.js").Dictionary<any>;
@@ -135,7 +124,7 @@ export default class bingx extends Exchange {
135
124
  setPositionMode(hedged: boolean, symbol?: Str, params?: {}): Promise<any>;
136
125
  editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
137
126
  fetchMarginMode(symbol: string, params?: {}): Promise<MarginMode>;
138
- parseMarginMode(marginMode: any, market?: any): MarginMode;
127
+ parseMarginMode(marginMode: Dict, market?: any): MarginMode;
139
128
  sign(path: any, section?: string, method?: string, params?: {}, headers?: any, body?: any): {
140
129
  url: string;
141
130
  method: string;
package/js/src/bit2c.d.ts CHANGED
@@ -17,10 +17,10 @@ export default class bit2c extends Exchange {
17
17
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
18
18
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
19
19
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
20
- parseOrder(order: any, market?: Market): Order;
20
+ parseOrder(order: Dict, market?: Market): Order;
21
21
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
22
22
  removeCommaFromValue(str: any): string;
23
- parseTrade(trade: any, market?: Market): Trade;
23
+ parseTrade(trade: Dict, market?: Market): Trade;
24
24
  isFiat(code: any): boolean;
25
25
  fetchDepositAddress(code: string, params?: {}): Promise<{
26
26
  currency: string;
@@ -11,15 +11,15 @@ export default class bitbank extends Exchange {
11
11
  parseTicker(ticker: Dict, market?: Market): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
13
13
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
14
- parseTrade(trade: any, market?: Market): Trade;
14
+ parseTrade(trade: Dict, market?: Market): Trade;
15
15
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
16
16
  fetchTradingFees(params?: {}): Promise<TradingFees>;
17
17
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
18
18
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
19
19
  parseBalance(response: any): Balances;
20
20
  fetchBalance(params?: {}): Promise<Balances>;
21
- parseOrderStatus(status: any): string;
22
- parseOrder(order: any, market?: Market): Order;
21
+ parseOrderStatus(status: Str): string;
22
+ parseOrder(order: Dict, market?: Market): Order;
23
23
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
24
24
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
25
25
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
@@ -33,7 +33,7 @@ export default class bitbank extends Exchange {
33
33
  info: any;
34
34
  }>;
35
35
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
36
- parseTransaction(transaction: any, currency?: Currency): Transaction;
36
+ parseTransaction(transaction: Dict, currency?: Currency): Transaction;
37
37
  nonce(): number;
38
38
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
39
39
  url: string;
@@ -20,18 +20,18 @@ export default class bitbns extends Exchange {
20
20
  parseBalance(response: any): Balances;
21
21
  fetchBalance(params?: {}): Promise<Balances>;
22
22
  parseStatus(status: any): string;
23
- parseOrder(order: any, market?: Market): Order;
23
+ parseOrder(order: Dict, market?: Market): Order;
24
24
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
25
25
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
26
26
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
27
27
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
28
- parseTrade(trade: any, market?: Market): Trade;
28
+ parseTrade(trade: Dict, market?: Market): Trade;
29
29
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
30
30
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
31
31
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
32
32
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
33
33
  parseTransactionStatusByType(status: any, type?: any): string;
34
- parseTransaction(transaction: any, currency?: Currency): Transaction;
34
+ parseTransaction(transaction: Dict, currency?: Currency): Transaction;
35
35
  fetchDepositAddress(code: string, params?: {}): Promise<{
36
36
  currency: string;
37
37
  address: string;
@@ -6,7 +6,7 @@ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, Orde
6
6
  */
7
7
  export default class bitfinex extends Exchange {
8
8
  describe(): any;
9
- fetchTransactionFees(codes?: string[], params?: {}): Promise<{}>;
9
+ fetchTransactionFees(codes?: Strings, params?: {}): Promise<Dict>;
10
10
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
11
11
  parseDepositWithdrawFee(fee: any, currency?: Currency): {
12
12
  withdraw: {
@@ -33,14 +33,14 @@ export default class bitfinex extends Exchange {
33
33
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
34
34
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
35
35
  parseTicker(ticker: Dict, market?: Market): Ticker;
36
- parseTrade(trade: any, market?: Market): Trade;
36
+ parseTrade(trade: Dict, market?: Market): Trade;
37
37
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
38
38
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
39
39
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
40
40
  editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
41
41
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
42
42
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
43
- parseOrder(order: any, market?: Market): Order;
43
+ parseOrder(order: Dict, market?: Market): Order;
44
44
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
45
45
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
46
46
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
@@ -62,7 +62,7 @@ export default class bitfinex extends Exchange {
62
62
  info: any;
63
63
  }>;
64
64
  fetchDepositsWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
65
- parseTransaction(transaction: any, currency?: Currency): Transaction;
65
+ parseTransaction(transaction: Dict, currency?: Currency): Transaction;
66
66
  parseTransactionStatus(status: any): string;
67
67
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
68
68
  fetchPositions(symbols?: Strings, params?: {}): Promise<any>;
@@ -30,14 +30,14 @@ export default class bitfinex2 extends Exchange {
30
30
  parseTicker(ticker: Dict, market?: Market): Ticker;
31
31
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
32
32
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
33
- parseTrade(trade: any, market?: Market): Trade;
33
+ parseTrade(trade: Dict, market?: Market): Trade;
34
34
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
35
35
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
36
36
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
37
- parseOrderStatus(status: any): any;
37
+ parseOrderStatus(status: Str): string;
38
38
  parseOrderFlags(flags: any): any;
39
39
  parseTimeInForce(orderType: any): string;
40
- parseOrder(order: any, market?: Market): Order;
40
+ parseOrder(order: Dict, market?: Market): Order;
41
41
  createOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): any;
42
42
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
43
43
  createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
@@ -65,12 +65,12 @@ export default class bitfinex2 extends Exchange {
65
65
  info: any;
66
66
  }>;
67
67
  parseTransactionStatus(status: any): string;
68
- parseTransaction(transaction: any, currency?: Currency): Transaction;
68
+ parseTransaction(transaction: Dict, currency?: Currency): Transaction;
69
69
  fetchTradingFees(params?: {}): Promise<TradingFees>;
70
70
  fetchDepositsWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
71
71
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<any>;
72
72
  fetchPositions(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Position[]>;
73
- parsePosition(position: any, market?: Market): import("./base/types.js").Position;
73
+ parsePosition(position: Dict, market?: Market): import("./base/types.js").Position;
74
74
  nonce(): number;
75
75
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
76
76
  url: string;
@@ -79,8 +79,8 @@ export default class bitfinex2 extends Exchange {
79
79
  headers: any;
80
80
  };
81
81
  handleErrors(statusCode: any, statusText: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
82
- parseLedgerEntryType(type: any): any;
83
- parseLedgerEntry(item: any, currency?: Currency): {
82
+ parseLedgerEntryType(type: Str): string;
83
+ parseLedgerEntry(item: Dict, currency?: Currency): {
84
84
  id: string;
85
85
  direction: any;
86
86
  account: any;
@@ -95,7 +95,7 @@ export default class bitfinex2 extends Exchange {
95
95
  after: number;
96
96
  status: any;
97
97
  fee: any;
98
- info: any;
98
+ info: Dict;
99
99
  };
100
100
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
101
101
  fetchFundingRate(symbol: string, params?: {}): Promise<any>;
@@ -1263,14 +1263,15 @@ export default class bitfinex2 extends Exchange {
1263
1263
  // ...
1264
1264
  // ]
1265
1265
  //
1266
- const tradeLength = trade.length;
1266
+ const tradeList = this.safeList(trade, 'result', []);
1267
+ const tradeLength = tradeList.length;
1267
1268
  const isPrivate = (tradeLength > 5);
1268
- const id = this.safeString(trade, 0);
1269
+ const id = this.safeString(tradeList, 0);
1269
1270
  const amountIndex = isPrivate ? 4 : 2;
1270
1271
  let side = undefined;
1271
- let amountString = this.safeString(trade, amountIndex);
1272
+ let amountString = this.safeString(tradeList, amountIndex);
1272
1273
  const priceIndex = isPrivate ? 5 : 3;
1273
- const priceString = this.safeString(trade, priceIndex);
1274
+ const priceString = this.safeString(tradeList, priceIndex);
1274
1275
  if (amountString[0] === '-') {
1275
1276
  side = 'sell';
1276
1277
  amountString = Precise.stringAbs(amountString);
@@ -1284,22 +1285,22 @@ export default class bitfinex2 extends Exchange {
1284
1285
  let fee = undefined;
1285
1286
  let symbol = this.safeSymbol(undefined, market);
1286
1287
  const timestampIndex = isPrivate ? 2 : 1;
1287
- const timestamp = this.safeInteger(trade, timestampIndex);
1288
+ const timestamp = this.safeInteger(tradeList, timestampIndex);
1288
1289
  if (isPrivate) {
1289
- const marketId = trade[1];
1290
+ const marketId = tradeList[1];
1290
1291
  symbol = this.safeSymbol(marketId);
1291
- orderId = this.safeString(trade, 3);
1292
- const maker = this.safeInteger(trade, 8);
1292
+ orderId = this.safeString(tradeList, 3);
1293
+ const maker = this.safeInteger(tradeList, 8);
1293
1294
  takerOrMaker = (maker === 1) ? 'maker' : 'taker';
1294
- let feeCostString = this.safeString(trade, 9);
1295
+ let feeCostString = this.safeString(tradeList, 9);
1295
1296
  feeCostString = Precise.stringNeg(feeCostString);
1296
- const feeCurrencyId = this.safeString(trade, 10);
1297
+ const feeCurrencyId = this.safeString(tradeList, 10);
1297
1298
  const feeCurrency = this.safeCurrencyCode(feeCurrencyId);
1298
1299
  fee = {
1299
1300
  'cost': feeCostString,
1300
1301
  'currency': feeCurrency,
1301
1302
  };
1302
- const orderType = trade[6];
1303
+ const orderType = tradeList[6];
1303
1304
  type = this.safeString(this.options['exchangeTypes'], orderType);
1304
1305
  }
1305
1306
  return this.safeTrade({
@@ -1315,7 +1316,7 @@ export default class bitfinex2 extends Exchange {
1315
1316
  'amount': amountString,
1316
1317
  'cost': undefined,
1317
1318
  'fee': fee,
1318
- 'info': trade,
1319
+ 'info': tradeList,
1319
1320
  }, market);
1320
1321
  }
1321
1322
  async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
@@ -1364,7 +1365,11 @@ export default class bitfinex2 extends Exchange {
1364
1365
  // ]
1365
1366
  //
1366
1367
  const trades = this.sortBy(response, 1);
1367
- return this.parseTrades(trades, market, undefined, limit);
1368
+ const tradesList = [];
1369
+ for (let i = 0; i < trades.length; i++) {
1370
+ tradesList.push({ 'result': trades[i] }); // convert to array of dicts to match parseOrder signature
1371
+ }
1372
+ return this.parseTrades(tradesList, market, undefined, limit);
1368
1373
  }
1369
1374
  async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = 100, params = {}) {
1370
1375
  /**
@@ -1477,20 +1482,21 @@ export default class bitfinex2 extends Exchange {
1477
1482
  return this.safeString(orderTypes, orderType, 'GTC');
1478
1483
  }
1479
1484
  parseOrder(order, market = undefined) {
1480
- const id = this.safeString(order, 0);
1481
- const marketId = this.safeString(order, 3);
1485
+ const orderList = this.safeList(order, 'result');
1486
+ const id = this.safeString(orderList, 0);
1487
+ const marketId = this.safeString(orderList, 3);
1482
1488
  const symbol = this.safeSymbol(marketId);
1483
1489
  // https://github.com/ccxt/ccxt/issues/6686
1484
- // const timestamp = this.safeTimestamp (order, 5);
1485
- const timestamp = this.safeInteger(order, 5);
1486
- const remaining = Precise.stringAbs(this.safeString(order, 6));
1487
- const signedAmount = this.safeString(order, 7);
1490
+ // const timestamp = this.safeTimestamp (orderObject, 5);
1491
+ const timestamp = this.safeInteger(orderList, 5);
1492
+ const remaining = Precise.stringAbs(this.safeString(orderList, 6));
1493
+ const signedAmount = this.safeString(orderList, 7);
1488
1494
  const amount = Precise.stringAbs(signedAmount);
1489
1495
  const side = Precise.stringLt(signedAmount, '0') ? 'sell' : 'buy';
1490
- const orderType = this.safeString(order, 8);
1496
+ const orderType = this.safeString(orderList, 8);
1491
1497
  const type = this.safeString(this.safeValue(this.options, 'exchangeTypes'), orderType);
1492
1498
  const timeInForce = this.parseTimeInForce(orderType);
1493
- const rawFlags = this.safeString(order, 12);
1499
+ const rawFlags = this.safeString(orderList, 12);
1494
1500
  const flags = this.parseOrderFlags(rawFlags);
1495
1501
  let postOnly = false;
1496
1502
  if (flags !== undefined) {
@@ -1500,25 +1506,25 @@ export default class bitfinex2 extends Exchange {
1500
1506
  }
1501
1507
  }
1502
1508
  }
1503
- let price = this.safeString(order, 16);
1509
+ let price = this.safeString(orderList, 16);
1504
1510
  let stopPrice = undefined;
1505
1511
  if ((orderType === 'EXCHANGE STOP') || (orderType === 'EXCHANGE STOP LIMIT')) {
1506
1512
  price = undefined;
1507
- stopPrice = this.safeString(order, 16);
1513
+ stopPrice = this.safeString(orderList, 16);
1508
1514
  if (orderType === 'EXCHANGE STOP LIMIT') {
1509
- price = this.safeString(order, 19);
1515
+ price = this.safeString(orderList, 19);
1510
1516
  }
1511
1517
  }
1512
1518
  let status = undefined;
1513
- const statusString = this.safeString(order, 13);
1519
+ const statusString = this.safeString(orderList, 13);
1514
1520
  if (statusString !== undefined) {
1515
1521
  const parts = statusString.split(' @ ');
1516
1522
  status = this.parseOrderStatus(this.safeString(parts, 0));
1517
1523
  }
1518
- const average = this.safeString(order, 17);
1519
- const clientOrderId = this.safeString(order, 2);
1524
+ const average = this.safeString(orderList, 17);
1525
+ const clientOrderId = this.safeString(orderList, 2);
1520
1526
  return this.safeOrder({
1521
- 'info': order,
1527
+ 'info': orderList,
1522
1528
  'id': id,
1523
1529
  'clientOrderId': clientOrderId,
1524
1530
  'timestamp': timestamp,
@@ -1777,7 +1783,7 @@ export default class bitfinex2 extends Exchange {
1777
1783
  for (let i = 0; i < data.length; i++) {
1778
1784
  const entry = data[i];
1779
1785
  const individualOrder = entry[4];
1780
- results.push(individualOrder[0]);
1786
+ results.push({ 'result': individualOrder[0] });
1781
1787
  }
1782
1788
  return this.parseOrders(results);
1783
1789
  }
@@ -1797,7 +1803,11 @@ export default class bitfinex2 extends Exchange {
1797
1803
  };
1798
1804
  const response = await this.privatePostAuthWOrderCancelMulti(this.extend(request, params));
1799
1805
  const orders = this.safeList(response, 4, []);
1800
- return this.parseOrders(orders);
1806
+ const ordersList = [];
1807
+ for (let i = 0; i < orders.length; i++) {
1808
+ ordersList.push({ 'result': orders[i] });
1809
+ }
1810
+ return this.parseOrders(ordersList);
1801
1811
  }
1802
1812
  async cancelOrder(id, symbol = undefined, params = {}) {
1803
1813
  /**
@@ -1831,7 +1841,8 @@ export default class bitfinex2 extends Exchange {
1831
1841
  }
1832
1842
  const response = await this.privatePostAuthWOrderCancel(this.extend(request, params));
1833
1843
  const order = this.safeValue(response, 4);
1834
- return this.parseOrder(order);
1844
+ const orderObject = { 'result': order };
1845
+ return this.parseOrder(orderObject);
1835
1846
  }
1836
1847
  async cancelOrders(ids, symbol = undefined, params = {}) {
1837
1848
  /**
@@ -1907,7 +1918,11 @@ export default class bitfinex2 extends Exchange {
1907
1918
  // ]
1908
1919
  //
1909
1920
  const orders = this.safeList(response, 4, []);
1910
- return this.parseOrders(orders, market);
1921
+ const ordersList = [];
1922
+ for (let i = 0; i < orders.length; i++) {
1923
+ ordersList.push({ 'result': orders[i] });
1924
+ }
1925
+ return this.parseOrders(ordersList, market);
1911
1926
  }
1912
1927
  async fetchOpenOrder(id, symbol = undefined, params = {}) {
1913
1928
  /**
@@ -2016,7 +2031,11 @@ export default class bitfinex2 extends Exchange {
2016
2031
  // ],
2017
2032
  // ]
2018
2033
  //
2019
- return this.parseOrders(response, market, since, limit);
2034
+ const ordersList = [];
2035
+ for (let i = 0; i < response.length; i++) {
2036
+ ordersList.push({ 'result': response[i] });
2037
+ }
2038
+ return this.parseOrders(ordersList, market, since, limit);
2020
2039
  }
2021
2040
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
2022
2041
  /**
@@ -2096,7 +2115,11 @@ export default class bitfinex2 extends Exchange {
2096
2115
  // ]
2097
2116
  // ]
2098
2117
  //
2099
- return this.parseOrders(response, market, since, limit);
2118
+ const ordersList = [];
2119
+ for (let i = 0; i < response.length; i++) {
2120
+ ordersList.push({ 'result': response[i] });
2121
+ }
2122
+ return this.parseOrders(ordersList, market, since, limit);
2100
2123
  }
2101
2124
  async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
2102
2125
  /**
@@ -2123,7 +2146,11 @@ export default class bitfinex2 extends Exchange {
2123
2146
  };
2124
2147
  // valid for trades upto 10 days old
2125
2148
  const response = await this.privatePostAuthROrderSymbolIdTrades(this.extend(request, params));
2126
- return this.parseTrades(response, market, since, limit);
2149
+ const tradesList = [];
2150
+ for (let i = 0; i < response.length; i++) {
2151
+ tradesList.push({ 'result': response[i] }); // convert to array of dicts to match parseOrder signature
2152
+ }
2153
+ return this.parseTrades(tradesList, market, since, limit);
2127
2154
  }
2128
2155
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
2129
2156
  /**
@@ -2158,7 +2185,11 @@ export default class bitfinex2 extends Exchange {
2158
2185
  else {
2159
2186
  response = await this.privatePostAuthRTradesHist(this.extend(request, params));
2160
2187
  }
2161
- return this.parseTrades(response, market, since, limit);
2188
+ const tradesList = [];
2189
+ for (let i = 0; i < response.length; i++) {
2190
+ tradesList.push({ 'result': response[i] }); // convert to array of dicts to match parseOrder signature
2191
+ }
2192
+ return this.parseTrades(tradesList, market, since, limit);
2162
2193
  }
2163
2194
  async createDepositAddress(code, params = {}) {
2164
2195
  /**
@@ -2704,7 +2735,11 @@ export default class bitfinex2 extends Exchange {
2704
2735
  // ]
2705
2736
  // ]
2706
2737
  //
2707
- return this.parsePositions(response, symbols);
2738
+ const positionsList = [];
2739
+ for (let i = 0; i < response.length; i++) {
2740
+ positionsList.push({ 'result': response[i] });
2741
+ }
2742
+ return this.parsePositions(positionsList, symbols);
2708
2743
  }
2709
2744
  parsePosition(position, market = undefined) {
2710
2745
  //
@@ -2739,22 +2774,23 @@ export default class bitfinex2 extends Exchange {
2739
2774
  // }
2740
2775
  // ]
2741
2776
  //
2742
- const marketId = this.safeString(position, 0);
2743
- const amount = this.safeString(position, 2);
2744
- const timestamp = this.safeInteger(position, 12);
2745
- const meta = this.safeString(position, 19);
2777
+ const positionList = this.safeList(position, 'result');
2778
+ const marketId = this.safeString(positionList, 0);
2779
+ const amount = this.safeString(positionList, 2);
2780
+ const timestamp = this.safeInteger(positionList, 12);
2781
+ const meta = this.safeString(positionList, 19);
2746
2782
  const tradePrice = this.safeString(meta, 'trade_price');
2747
2783
  const tradeAmount = this.safeString(meta, 'trade_amount');
2748
2784
  return this.safePosition({
2749
- 'info': position,
2750
- 'id': this.safeString(position, 11),
2785
+ 'info': positionList,
2786
+ 'id': this.safeString(positionList, 11),
2751
2787
  'symbol': this.safeSymbol(marketId, market),
2752
2788
  'notional': this.parseNumber(amount),
2753
2789
  'marginMode': 'isolated',
2754
- 'liquidationPrice': this.safeNumber(position, 8),
2755
- 'entryPrice': this.safeNumber(position, 3),
2756
- 'unrealizedPnl': this.safeNumber(position, 6),
2757
- 'percentage': this.safeNumber(position, 7),
2790
+ 'liquidationPrice': this.safeNumber(positionList, 8),
2791
+ 'entryPrice': this.safeNumber(positionList, 3),
2792
+ 'unrealizedPnl': this.safeNumber(positionList, 6),
2793
+ 'percentage': this.safeNumber(positionList, 7),
2758
2794
  'contracts': undefined,
2759
2795
  'contractSize': undefined,
2760
2796
  'markPrice': undefined,
@@ -2763,13 +2799,13 @@ export default class bitfinex2 extends Exchange {
2763
2799
  'hedged': undefined,
2764
2800
  'timestamp': timestamp,
2765
2801
  'datetime': this.iso8601(timestamp),
2766
- 'lastUpdateTimestamp': this.safeInteger(position, 13),
2767
- 'maintenanceMargin': this.safeNumber(position, 18),
2802
+ 'lastUpdateTimestamp': this.safeInteger(positionList, 13),
2803
+ 'maintenanceMargin': this.safeNumber(positionList, 18),
2768
2804
  'maintenanceMarginPercentage': undefined,
2769
- 'collateral': this.safeNumber(position, 17),
2805
+ 'collateral': this.safeNumber(positionList, 17),
2770
2806
  'initialMargin': this.parseNumber(Precise.stringMul(tradeAmount, tradePrice)),
2771
2807
  'initialMarginPercentage': undefined,
2772
- 'leverage': this.safeNumber(position, 9),
2808
+ 'leverage': this.safeNumber(positionList, 9),
2773
2809
  'marginRatio': undefined,
2774
2810
  'stopLossPrice': undefined,
2775
2811
  'takeProfitPrice': undefined,
@@ -2879,14 +2915,15 @@ export default class bitfinex2 extends Exchange {
2879
2915
  // ]
2880
2916
  // ]
2881
2917
  //
2918
+ const itemList = this.safeList(item, 'result', []);
2882
2919
  let type = undefined;
2883
- const id = this.safeString(item, 0);
2884
- const currencyId = this.safeString(item, 1);
2920
+ const id = this.safeString(itemList, 0);
2921
+ const currencyId = this.safeString(itemList, 1);
2885
2922
  const code = this.safeCurrencyCode(currencyId, currency);
2886
- const timestamp = this.safeInteger(item, 3);
2887
- const amount = this.safeNumber(item, 5);
2888
- const after = this.safeNumber(item, 6);
2889
- const description = this.safeString(item, 8);
2923
+ const timestamp = this.safeInteger(itemList, 3);
2924
+ const amount = this.safeNumber(itemList, 5);
2925
+ const after = this.safeNumber(itemList, 6);
2926
+ const description = this.safeString(itemList, 8);
2890
2927
  if (description !== undefined) {
2891
2928
  const parts = description.split(' @ ');
2892
2929
  const first = this.safeStringLower(parts, 0);
@@ -2963,7 +3000,12 @@ export default class bitfinex2 extends Exchange {
2963
3000
  // ]
2964
3001
  // ]
2965
3002
  //
2966
- return this.parseLedger(response, currency, since, limit);
3003
+ const ledgerObjects = [];
3004
+ for (let i = 0; i < response.length; i++) {
3005
+ const item = response[i];
3006
+ ledgerObjects.push({ 'result': item });
3007
+ }
3008
+ return this.parseLedger(ledgerObjects, currency, since, limit);
2967
3009
  }
2968
3010
  async fetchFundingRate(symbol, params = {}) {
2969
3011
  /**
@@ -14,13 +14,13 @@ export default class bitflyer extends Exchange {
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
15
15
  parseTicker(ticker: Dict, market?: Market): Ticker;
16
16
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
17
- parseTrade(trade: any, market?: Market): Trade;
17
+ parseTrade(trade: Dict, market?: Market): Trade;
18
18
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
19
19
  fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
20
20
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
21
21
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
22
- parseOrderStatus(status: any): string;
23
- parseOrder(order: any, market?: Market): Order;
22
+ parseOrderStatus(status: Str): string;
23
+ parseOrder(order: Dict, market?: Market): Order;
24
24
  fetchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
25
25
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
26
26
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
@@ -32,7 +32,7 @@ export default class bitflyer extends Exchange {
32
32
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
33
33
  parseDepositStatus(status: any): string;
34
34
  parseWithdrawalStatus(status: any): string;
35
- parseTransaction(transaction: any, currency?: Currency): Transaction;
35
+ parseTransaction(transaction: Dict, currency?: Currency): Transaction;
36
36
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
37
37
  url: string;
38
38
  method: string;