ccxt 4.3.18 → 4.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/README.md +7 -5
  2. package/dist/cjs/ccxt.js +6 -1
  3. package/dist/cjs/src/abstract/woofipro.js +9 -0
  4. package/dist/cjs/src/ascendex.js +3 -4
  5. package/dist/cjs/src/base/Exchange.js +45 -2
  6. package/dist/cjs/src/base/functions/crypto.js +10 -3
  7. package/dist/cjs/src/base/functions/encode.js +6 -3
  8. package/dist/cjs/src/base/functions/number.js +8 -5
  9. package/dist/cjs/src/base/functions/rsa.js +5 -5
  10. package/dist/cjs/src/bigone.js +1 -1
  11. package/dist/cjs/src/bitfinex.js +25 -1
  12. package/dist/cjs/src/bitfinex2.js +59 -51
  13. package/dist/cjs/src/bitget.js +4 -5
  14. package/dist/cjs/src/bitmart.js +3 -3
  15. package/dist/cjs/src/bitstamp.js +1 -3
  16. package/dist/cjs/src/bybit.js +39 -9
  17. package/dist/cjs/src/coinex.js +360 -560
  18. package/dist/cjs/src/coinlist.js +1 -2
  19. package/dist/cjs/src/deribit.js +1 -1
  20. package/dist/cjs/src/hollaex.js +3 -3
  21. package/dist/cjs/src/indodax.js +1 -1
  22. package/dist/cjs/src/latoken.js +1 -1
  23. package/dist/cjs/src/mexc.js +1 -1
  24. package/dist/cjs/src/novadax.js +0 -1
  25. package/dist/cjs/src/okx.js +17 -0
  26. package/dist/cjs/src/phemex.js +17 -6
  27. package/dist/cjs/src/poloniex.js +1 -2
  28. package/dist/cjs/src/pro/bitget.js +136 -192
  29. package/dist/cjs/src/pro/coinbaseinternational.js +9 -1
  30. package/dist/cjs/src/pro/htx.js +12 -7
  31. package/dist/cjs/src/pro/okx.js +85 -0
  32. package/dist/cjs/src/pro/woofipro.js +1263 -0
  33. package/dist/cjs/src/wavesexchange.js +2 -2
  34. package/dist/cjs/src/woo.js +17 -3
  35. package/dist/cjs/src/woofipro.js +2698 -0
  36. package/js/ccxt.d.ts +8 -2
  37. package/js/ccxt.js +6 -2
  38. package/js/src/abstract/bitget.d.ts +3 -0
  39. package/js/src/abstract/bybit.d.ts +1 -0
  40. package/js/src/abstract/okx.d.ts +1 -0
  41. package/js/src/abstract/woofipro.d.ts +122 -0
  42. package/js/src/abstract/woofipro.js +11 -0
  43. package/js/src/ace.d.ts +2 -2
  44. package/js/src/ascendex.d.ts +5 -15
  45. package/js/src/ascendex.js +3 -4
  46. package/js/src/base/Exchange.d.ts +26 -17
  47. package/js/src/base/Exchange.js +45 -2
  48. package/js/src/base/functions/crypto.d.ts +1 -1
  49. package/js/src/base/functions/crypto.js +10 -3
  50. package/js/src/base/functions/encode.d.ts +1 -1
  51. package/js/src/base/functions/encode.js +6 -3
  52. package/js/src/base/functions/number.d.ts +1 -1
  53. package/js/src/base/functions/number.js +8 -5
  54. package/js/src/base/functions/rsa.js +6 -6
  55. package/js/src/base/types.d.ts +4 -0
  56. package/js/src/bigone.d.ts +4 -14
  57. package/js/src/bigone.js +1 -1
  58. package/js/src/binance.d.ts +13 -71
  59. package/js/src/binancecoinm.d.ts +2 -22
  60. package/js/src/binanceusdm.d.ts +2 -22
  61. package/js/src/bingx.d.ts +4 -14
  62. package/js/src/bit2c.d.ts +2 -2
  63. package/js/src/bitbank.d.ts +2 -2
  64. package/js/src/bitbns.d.ts +2 -2
  65. package/js/src/bitfinex.d.ts +6 -16
  66. package/js/src/bitfinex.js +25 -1
  67. package/js/src/bitfinex2.d.ts +6 -16
  68. package/js/src/bitfinex2.js +59 -51
  69. package/js/src/bitflyer.d.ts +2 -2
  70. package/js/src/bitget.d.ts +7 -17
  71. package/js/src/bitget.js +4 -5
  72. package/js/src/bithumb.d.ts +3 -3
  73. package/js/src/bitmart.d.ts +5 -14
  74. package/js/src/bitmart.js +3 -3
  75. package/js/src/bitmex.d.ts +4 -4
  76. package/js/src/bitopro.d.ts +2 -2
  77. package/js/src/bitrue.d.ts +5 -5
  78. package/js/src/bitso.d.ts +2 -2
  79. package/js/src/bitstamp.d.ts +3 -3
  80. package/js/src/bitstamp.js +1 -3
  81. package/js/src/bitteam.d.ts +2 -2
  82. package/js/src/bitvavo.d.ts +5 -5
  83. package/js/src/bl3p.d.ts +2 -2
  84. package/js/src/blockchaincom.d.ts +2 -2
  85. package/js/src/blofin.d.ts +4 -14
  86. package/js/src/btcalpha.d.ts +2 -2
  87. package/js/src/btcbox.d.ts +2 -2
  88. package/js/src/btcmarkets.d.ts +2 -2
  89. package/js/src/btcturk.d.ts +2 -2
  90. package/js/src/bybit.d.ts +9 -56
  91. package/js/src/bybit.js +39 -9
  92. package/js/src/cex.d.ts +2 -2
  93. package/js/src/coinbase.d.ts +4 -4
  94. package/js/src/coinbasepro.d.ts +3 -3
  95. package/js/src/coincheck.d.ts +2 -2
  96. package/js/src/coinex.d.ts +7 -17
  97. package/js/src/coinex.js +360 -560
  98. package/js/src/coinlist.d.ts +5 -15
  99. package/js/src/coinlist.js +1 -2
  100. package/js/src/coinmate.d.ts +2 -2
  101. package/js/src/coinmetro.d.ts +3 -3
  102. package/js/src/coinone.d.ts +2 -2
  103. package/js/src/coinsph.d.ts +2 -2
  104. package/js/src/coinspot.d.ts +2 -2
  105. package/js/src/cryptocom.d.ts +2 -2
  106. package/js/src/currencycom.d.ts +3 -3
  107. package/js/src/delta.d.ts +5 -43
  108. package/js/src/deribit.d.ts +7 -55
  109. package/js/src/deribit.js +1 -1
  110. package/js/src/digifinex.d.ts +5 -15
  111. package/js/src/exmo.d.ts +2 -2
  112. package/js/src/gate.d.ts +6 -54
  113. package/js/src/gemini.d.ts +2 -2
  114. package/js/src/hitbtc.d.ts +4 -14
  115. package/js/src/hollaex.d.ts +3 -3
  116. package/js/src/hollaex.js +3 -3
  117. package/js/src/htx.d.ts +4 -14
  118. package/js/src/huobijp.d.ts +4 -4
  119. package/js/src/hyperliquid.d.ts +1 -1
  120. package/js/src/idex.d.ts +3 -3
  121. package/js/src/independentreserve.d.ts +2 -2
  122. package/js/src/indodax.d.ts +2 -2
  123. package/js/src/indodax.js +1 -1
  124. package/js/src/kraken.d.ts +4 -14
  125. package/js/src/krakenfutures.d.ts +4 -14
  126. package/js/src/kucoin.d.ts +5 -15
  127. package/js/src/kucoinfutures.d.ts +4 -14
  128. package/js/src/kuna.d.ts +2 -2
  129. package/js/src/latoken.d.ts +5 -15
  130. package/js/src/latoken.js +1 -1
  131. package/js/src/lbank.d.ts +2 -2
  132. package/js/src/luno.d.ts +2 -2
  133. package/js/src/lykke.d.ts +2 -2
  134. package/js/src/mercado.d.ts +2 -2
  135. package/js/src/mexc.d.ts +8 -28
  136. package/js/src/mexc.js +1 -1
  137. package/js/src/ndax.d.ts +2 -2
  138. package/js/src/novadax.d.ts +4 -15
  139. package/js/src/novadax.js +0 -1
  140. package/js/src/okcoin.d.ts +4 -14
  141. package/js/src/okx.d.ts +10 -68
  142. package/js/src/okx.js +17 -0
  143. package/js/src/onetrading.d.ts +2 -2
  144. package/js/src/paymium.d.ts +4 -14
  145. package/js/src/phemex.d.ts +5 -15
  146. package/js/src/phemex.js +17 -6
  147. package/js/src/poloniex.d.ts +3 -13
  148. package/js/src/poloniex.js +1 -2
  149. package/js/src/poloniexfutures.d.ts +2 -2
  150. package/js/src/pro/bitget.js +137 -193
  151. package/js/src/pro/coinbaseinternational.d.ts +3 -3
  152. package/js/src/pro/coinbaseinternational.js +9 -1
  153. package/js/src/pro/htx.js +12 -7
  154. package/js/src/pro/okx.d.ts +4 -1
  155. package/js/src/pro/okx.js +85 -0
  156. package/js/src/pro/woofipro.d.ts +47 -0
  157. package/js/src/pro/woofipro.js +1264 -0
  158. package/js/src/probit.d.ts +3 -3
  159. package/js/src/timex.d.ts +2 -2
  160. package/js/src/tokocrypto.d.ts +3 -3
  161. package/js/src/upbit.d.ts +2 -2
  162. package/js/src/wavesexchange.d.ts +3 -3
  163. package/js/src/wavesexchange.js +2 -2
  164. package/js/src/wazirx.d.ts +2 -2
  165. package/js/src/whitebit.d.ts +3 -13
  166. package/js/src/woo.d.ts +7 -17
  167. package/js/src/woo.js +17 -3
  168. package/js/src/woofipro.d.ts +131 -0
  169. package/js/src/woofipro.js +2699 -0
  170. package/js/src/yobit.d.ts +2 -2
  171. package/js/src/zaif.d.ts +2 -2
  172. package/js/src/zonda.d.ts +4 -14
  173. package/package.json +1 -1
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, Position, CrossBorrowRate, CrossBorrowRates } 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, TransferEntries } from './base/types.js';
3
3
  /**
4
4
  * @class okx
5
5
  * @augments Exchange
@@ -25,7 +25,7 @@ export default class okx extends Exchange {
25
25
  safeNetwork(networkId: any): string;
26
26
  fetchCurrencies(params?: {}): Promise<Currencies>;
27
27
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
28
- parseTicker(ticker: any, market?: Market): Ticker;
28
+ parseTicker(ticker: Dict, market?: Market): Ticker;
29
29
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
30
30
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
31
31
  parseTrade(trade: any, market?: Market): Trade;
@@ -95,36 +95,16 @@ export default class okx extends Exchange {
95
95
  parseTransactionStatus(status: any): string;
96
96
  parseTransaction(transaction: any, currency?: Currency): Transaction;
97
97
  fetchLeverage(symbol: string, params?: {}): Promise<Leverage>;
98
- parseLeverage(leverage: any, market?: any): Leverage;
98
+ parseLeverage(leverage: Dict, market?: Market): Leverage;
99
99
  fetchPosition(symbol: string, params?: {}): Promise<Position>;
100
100
  fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
101
101
  fetchPositionsForSymbol(symbol: string, params?: {}): Promise<Position[]>;
102
102
  parsePosition(position: any, market?: Market): Position;
103
103
  transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
104
- parseTransfer(transfer: any, currency?: Currency): {
105
- info: any;
106
- id: string;
107
- timestamp: number;
108
- datetime: string;
109
- currency: string;
110
- amount: number;
111
- fromAccount: string;
112
- toAccount: string;
113
- status: string;
114
- };
115
- parseTransferStatus(status: any): string;
116
- fetchTransfer(id: string, code?: Str, params?: {}): Promise<{
117
- info: any;
118
- id: string;
119
- timestamp: number;
120
- datetime: string;
121
- currency: string;
122
- amount: number;
123
- fromAccount: string;
124
- toAccount: string;
125
- status: string;
126
- }>;
127
- fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
104
+ parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
105
+ parseTransferStatus(status: Str): Str;
106
+ fetchTransfer(id: string, code?: Str, params?: {}): Promise<TransferEntry>;
107
+ fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<TransferEntries>;
128
108
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
129
109
  url: string;
130
110
  method: string;
@@ -253,54 +233,16 @@ export default class okx extends Exchange {
253
233
  parseSettlements(settlements: any, market: any): any[];
254
234
  fetchUnderlyingAssets(params?: {}): Promise<any>;
255
235
  fetchGreeks(symbol: string, params?: {}): Promise<Greeks>;
256
- parseGreeks(greeks: any, market?: Market): {
257
- symbol: string;
258
- timestamp: number;
259
- datetime: string;
260
- delta: number;
261
- gamma: number;
262
- theta: number;
263
- vega: number;
264
- rho: any;
265
- bidSize: any;
266
- askSize: any;
267
- bidImpliedVolatility: number;
268
- askImpliedVolatility: number;
269
- markImpliedVolatility: number;
270
- bidPrice: any;
271
- askPrice: any;
272
- markPrice: any;
273
- lastPrice: any;
274
- underlyingPrice: any;
275
- info: any;
276
- };
236
+ parseGreeks(greeks: Dict, market?: Market): Greeks;
277
237
  closePosition(symbol: string, side?: OrderSide, params?: {}): Promise<Order>;
278
238
  fetchOption(symbol: string, params?: {}): Promise<Option>;
279
239
  fetchOptionChain(code: string, params?: {}): Promise<OptionChain>;
280
- parseOption(chain: any, currency?: Currency, market?: Market): {
281
- info: any;
282
- currency: any;
283
- symbol: string;
284
- timestamp: number;
285
- datetime: string;
286
- impliedVolatility: any;
287
- openInterest: any;
288
- bidPrice: number;
289
- askPrice: number;
290
- midPrice: any;
291
- markPrice: any;
292
- lastPrice: number;
293
- underlyingPrice: any;
294
- change: any;
295
- percentage: any;
296
- baseVolume: number;
297
- quoteVolume: any;
298
- };
240
+ parseOption(chain: Dict, currency?: Currency, market?: Market): Option;
299
241
  fetchConvertQuote(fromCode: string, toCode: string, amount?: Num, params?: {}): Promise<Conversion>;
300
242
  createConvertTrade(id: string, fromCode: string, toCode: string, amount?: Num, params?: {}): Promise<Conversion>;
301
243
  fetchConvertTrade(id: string, code?: Str, params?: {}): Promise<Conversion>;
302
244
  fetchConvertTradeHistory(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Conversion[]>;
303
- parseConversion(conversion: any, fromCurrency?: Currency, toCurrency?: Currency): Conversion;
245
+ parseConversion(conversion: Dict, fromCurrency?: Currency, toCurrency?: Currency): Conversion;
304
246
  fetchConvertCurrencies(params?: {}): Promise<Currencies>;
305
247
  handleErrors(httpCode: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
306
248
  fetchMarginAdjustmentHistory(symbol?: Str, type?: Str, since?: Num, limit?: Num, params?: {}): Promise<MarginModification[]>;
package/js/src/okx.js CHANGED
@@ -483,6 +483,7 @@ export default class okx extends Exchange {
483
483
  'tradingBot/grid/compute-margin-balance': 1,
484
484
  'tradingBot/grid/margin-balance': 1,
485
485
  'tradingBot/grid/min-investment': 1,
486
+ 'tradingBot/grid/adjust-investment': 1,
486
487
  'tradingBot/signal/create-signal': 1,
487
488
  'tradingBot/signal/order-algo': 1,
488
489
  'tradingBot/signal/stop-order-algo': 1,
@@ -6013,6 +6014,22 @@ export default class okx extends Exchange {
6013
6014
  // "nextFundingRate": "0.00017",
6014
6015
  // "nextFundingTime": "1634284800000"
6015
6016
  // }
6017
+ // ws
6018
+ // {
6019
+ // "fundingRate":"0.0001875391284828",
6020
+ // "fundingTime":"1700726400000",
6021
+ // "instId":"BTC-USD-SWAP",
6022
+ // "instType":"SWAP",
6023
+ // "method": "next_period",
6024
+ // "maxFundingRate":"0.00375",
6025
+ // "minFundingRate":"-0.00375",
6026
+ // "nextFundingRate":"0.0002608059239328",
6027
+ // "nextFundingTime":"1700755200000",
6028
+ // "premium": "0.0001233824646391",
6029
+ // "settFundingRate":"0.0001699799259033",
6030
+ // "settState":"settled",
6031
+ // "ts":"1700724675402"
6032
+ // }
6016
6033
  //
6017
6034
  // in the response above nextFundingRate is actually two funding rates from now
6018
6035
  //
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/onetrading.js';
2
- import type { Balances, Currencies, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction } from './base/types.js';
2
+ import type { Balances, Currencies, Currency, Dict, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction } from './base/types.js';
3
3
  /**
4
4
  * @class onetrading
5
5
  * @augments Exchange
@@ -17,7 +17,7 @@ export default class onetrading extends Exchange {
17
17
  maker: any[];
18
18
  taker: any[];
19
19
  };
20
- parseTicker(ticker: any, market?: Market): Ticker;
20
+ parseTicker(ticker: Dict, market?: Market): Ticker;
21
21
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
22
22
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
23
23
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/paymium.js';
2
- import type { TransferEntry, Balances, Currency, Int, Market, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Num } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, Int, Market, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, Num, Dict } from './base/types.js';
3
3
  /**
4
4
  * @class paymium
5
5
  * @augments Exchange
@@ -9,7 +9,7 @@ export default class paymium extends Exchange {
9
9
  parseBalance(response: any): Balances;
10
10
  fetchBalance(params?: {}): Promise<Balances>;
11
11
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
12
- parseTicker(ticker: any, market?: Market): Ticker;
12
+ parseTicker(ticker: Dict, market?: Market): Ticker;
13
13
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
14
14
  parseTrade(trade: any, market?: Market): Trade;
15
15
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
@@ -38,18 +38,8 @@ export default class paymium extends Exchange {
38
38
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<import("./base/types.js").Order>;
39
39
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
40
40
  transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
41
- parseTransfer(transfer: any, currency?: Currency): {
42
- info: any;
43
- id: string;
44
- timestamp: number;
45
- datetime: string;
46
- currency: string;
47
- amount: number;
48
- fromAccount: any;
49
- toAccount: string;
50
- status: string;
51
- };
52
- parseTransferStatus(status: any): string;
41
+ parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
42
+ parseTransferStatus(status: Str): Str;
53
43
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
54
44
  url: string;
55
45
  method: string;
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/phemex.js';
2
- import type { TransferEntry, Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, MarginModification, Currencies } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, MarginModification, Currencies, Dict, TransferEntries } from './base/types.js';
3
3
  /**
4
4
  * @class phemex
5
5
  * @augments Exchange
@@ -23,7 +23,7 @@ export default class phemex extends Exchange {
23
23
  fromEr(er: any, market?: Market): any;
24
24
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
25
25
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
26
- parseTicker(ticker: any, market?: Market): Ticker;
26
+ parseTicker(ticker: Dict, market?: Market): Ticker;
27
27
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
28
28
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
29
29
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
@@ -114,19 +114,9 @@ export default class phemex extends Exchange {
114
114
  };
115
115
  setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
116
116
  transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
117
- fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
118
- parseTransfer(transfer: any, currency?: Currency): {
119
- info: any;
120
- id: string;
121
- timestamp: number;
122
- datetime: string;
123
- currency: string;
124
- amount: any;
125
- fromAccount: any;
126
- toAccount: any;
127
- status: string;
128
- };
129
- parseTransferStatus(status: any): string;
117
+ fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<TransferEntries>;
118
+ parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
119
+ parseTransferStatus(status: Str): Str;
130
120
  fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
131
121
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
132
122
  handleErrors(httpCode: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
package/js/src/phemex.js CHANGED
@@ -2435,12 +2435,14 @@ export default class phemex extends Exchange {
2435
2435
  * @name phemex#createOrder
2436
2436
  * @description create a trade order
2437
2437
  * @see https://github.com/phemex/phemex-api-docs/blob/master/Public-Hedged-Perpetual-API.md#place-order
2438
+ * @see https://phemex-docs.github.io/#place-order-http-put-prefered-3
2438
2439
  * @param {string} symbol unified symbol of the market to create an order in
2439
2440
  * @param {string} type 'market' or 'limit'
2440
2441
  * @param {string} side 'buy' or 'sell'
2441
2442
  * @param {float} amount how much of currency you want to trade in units of base currency
2442
2443
  * @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
2443
2444
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2445
+ * @param {float} [params.trigger] trigger price for conditional orders
2444
2446
  * @param {object} [params.takeProfit] *swap only* *takeProfit object in params* containing the triggerPrice at which the attached take profit order will be triggered (perpetual swap markets only)
2445
2447
  * @param {float} [params.takeProfit.triggerPrice] take profit trigger price
2446
2448
  * @param {object} [params.stopLoss] *swap only* *stopLoss object in params* containing the triggerPrice at which the attached stop loss order will be triggered (perpetual swap markets only)
@@ -2451,7 +2453,7 @@ export default class phemex extends Exchange {
2451
2453
  const market = this.market(symbol);
2452
2454
  const requestSide = this.capitalize(side);
2453
2455
  type = this.capitalize(type);
2454
- const reduceOnly = this.safeValue(params, 'reduceOnly');
2456
+ const reduceOnly = this.safeBool(params, 'reduceOnly');
2455
2457
  const request = {
2456
2458
  // common
2457
2459
  'symbol': market['id'],
@@ -2495,13 +2497,13 @@ export default class phemex extends Exchange {
2495
2497
  request['clOrdID'] = clientOrderId;
2496
2498
  params = this.omit(params, ['clOrdID', 'clientOrderId']);
2497
2499
  }
2498
- const stopPrice = this.safeStringN(params, ['stopPx', 'stopPrice', 'triggerPrice']);
2499
- if (stopPrice !== undefined) {
2500
+ const triggerPrice = this.safeStringN(params, ['stopPx', 'stopPrice', 'triggerPrice']);
2501
+ if (triggerPrice !== undefined) {
2500
2502
  if (market['settle'] === 'USDT') {
2501
- request['stopPxRp'] = this.priceToPrecision(symbol, stopPrice);
2503
+ request['stopPxRp'] = this.priceToPrecision(symbol, triggerPrice);
2502
2504
  }
2503
2505
  else {
2504
- request['stopPxEp'] = this.toEp(stopPrice, market);
2506
+ request['stopPxEp'] = this.toEp(triggerPrice, market);
2505
2507
  }
2506
2508
  }
2507
2509
  params = this.omit(params, ['stopPx', 'stopPrice', 'stopLoss', 'takeProfit', 'triggerPrice']);
@@ -2512,6 +2514,15 @@ export default class phemex extends Exchange {
2512
2514
  qtyType = 'ByQuote';
2513
2515
  }
2514
2516
  }
2517
+ if (triggerPrice !== undefined) {
2518
+ if (type === 'Limit') {
2519
+ request['ordType'] = 'StopLimit';
2520
+ }
2521
+ else if (type === 'Market') {
2522
+ request['ordType'] = 'Stop';
2523
+ }
2524
+ request['trigger'] = 'ByLastPrice';
2525
+ }
2515
2526
  request['qtyType'] = qtyType;
2516
2527
  if (qtyType === 'ByQuote') {
2517
2528
  let cost = this.safeNumber(params, 'cost');
@@ -2552,7 +2563,7 @@ export default class phemex extends Exchange {
2552
2563
  else {
2553
2564
  request['orderQty'] = this.parseToInt(amount);
2554
2565
  }
2555
- if (stopPrice !== undefined) {
2566
+ if (triggerPrice !== undefined) {
2556
2567
  const triggerType = this.safeString(params, 'triggerType', 'ByMarkPrice');
2557
2568
  request['triggerType'] = triggerType;
2558
2569
  }
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/poloniex.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Trade, OrderBook, Order, Balances, Str, Transaction, Ticker, Tickers, Market, Strings, Currency, Num, Currencies, TradingFees } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Trade, OrderBook, Order, Balances, Str, Transaction, Ticker, Tickers, Market, Strings, Currency, Num, Currencies, TradingFees, Dict } from './base/types.js';
3
3
  /**
4
4
  * @class poloniex
5
5
  * @augments Exchange
@@ -12,7 +12,7 @@ export default class poloniex extends Exchange {
12
12
  fetchMarkets(params?: {}): Promise<Market[]>;
13
13
  parseMarket(market: any): Market;
14
14
  fetchTime(params?: {}): Promise<number>;
15
- parseTicker(ticker: any, market?: Market): Ticker;
15
+ parseTicker(ticker: Dict, market?: Market): Ticker;
16
16
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
17
17
  fetchCurrencies(params?: {}): Promise<Currencies>;
18
18
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -51,17 +51,7 @@ export default class poloniex extends Exchange {
51
51
  info: any;
52
52
  }>;
53
53
  transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
54
- parseTransfer(transfer: any, currency?: Currency): {
55
- info: any;
56
- id: string;
57
- timestamp: any;
58
- datetime: any;
59
- currency: string;
60
- amount: any;
61
- fromAccount: any;
62
- toAccount: any;
63
- status: any;
64
- };
54
+ parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
65
55
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
66
56
  fetchTransactionsHelper(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
67
57
  fetchDepositsWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
@@ -1849,12 +1849,11 @@ export default class poloniex extends Exchange {
1849
1849
  */
1850
1850
  await this.loadMarkets();
1851
1851
  const currency = this.currency(code);
1852
- amount = this.currencyToPrecision(code, amount);
1853
1852
  const accountsByType = this.safeValue(this.options, 'accountsByType', {});
1854
1853
  const fromId = this.safeString(accountsByType, fromAccount, fromAccount);
1855
1854
  const toId = this.safeString(accountsByType, toAccount, fromAccount);
1856
1855
  const request = {
1857
- 'amount': amount,
1856
+ 'amount': this.currencyToPrecision(code, amount),
1858
1857
  'currency': currency['id'],
1859
1858
  'fromAccount': fromId,
1860
1859
  'toAccount': toId,
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/poloniexfutures.js';
2
- import type { Balances, FundingHistory, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
2
+ import type { Balances, Dict, FundingHistory, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade } from './base/types.js';
3
3
  /**
4
4
  * @class poloniexfutures
5
5
  * @augments Exchange
@@ -8,7 +8,7 @@ export default class poloniexfutures extends Exchange {
8
8
  describe(): any;
9
9
  fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(market: any): Market;
11
- parseTicker(ticker: any, market?: Market): Ticker;
11
+ parseTicker(ticker: Dict, market?: Market): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
13
13
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;