ccxt 4.4.39 → 4.4.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 (185) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/ascendex.js +9 -9
  5. package/dist/cjs/src/base/Exchange.js +12 -18
  6. package/dist/cjs/src/binance.js +13 -19
  7. package/dist/cjs/src/bingx.js +1 -2
  8. package/dist/cjs/src/bit2c.js +0 -1
  9. package/dist/cjs/src/bitbank.js +0 -1
  10. package/dist/cjs/src/bitbns.js +0 -1
  11. package/dist/cjs/src/bitfinex.js +17 -18
  12. package/dist/cjs/src/bitfinex1.js +0 -1
  13. package/dist/cjs/src/bitflyer.js +0 -1
  14. package/dist/cjs/src/bitget.js +1 -2
  15. package/dist/cjs/src/bithumb.js +0 -1
  16. package/dist/cjs/src/bitmart.js +3 -4
  17. package/dist/cjs/src/bitmex.js +5 -6
  18. package/dist/cjs/src/bitopro.js +4 -5
  19. package/dist/cjs/src/bitrue.js +5 -7
  20. package/dist/cjs/src/bitso.js +1 -2
  21. package/dist/cjs/src/bitstamp.js +1 -2
  22. package/dist/cjs/src/bitteam.js +1 -3
  23. package/dist/cjs/src/bitvavo.js +2 -4
  24. package/dist/cjs/src/blockchaincom.js +5 -5
  25. package/dist/cjs/src/blofin.js +10 -10
  26. package/dist/cjs/src/btcalpha.js +0 -1
  27. package/dist/cjs/src/btcbox.js +0 -1
  28. package/dist/cjs/src/btcmarkets.js +1 -3
  29. package/dist/cjs/src/bybit.js +2 -3
  30. package/dist/cjs/src/cex.js +1 -1
  31. package/dist/cjs/src/coinbase.js +77 -1
  32. package/dist/cjs/src/coinbaseexchange.js +1 -1
  33. package/dist/cjs/src/coinbaseinternational.js +62 -0
  34. package/dist/cjs/src/coincatch.js +1 -1
  35. package/dist/cjs/src/coinex.js +9 -9
  36. package/dist/cjs/src/coinlist.js +1 -1
  37. package/dist/cjs/src/coinmetro.js +1 -1
  38. package/dist/cjs/src/cryptocom.js +91 -2
  39. package/dist/cjs/src/currencycom.js +1 -1
  40. package/dist/cjs/src/defx.js +1 -2
  41. package/dist/cjs/src/delta.js +1 -1
  42. package/dist/cjs/src/digifinex.js +1 -1
  43. package/dist/cjs/src/exmo.js +2 -2
  44. package/dist/cjs/src/gate.js +1 -1
  45. package/dist/cjs/src/hashkey.js +3 -5
  46. package/dist/cjs/src/htx.js +1 -1
  47. package/dist/cjs/src/hyperliquid.js +1 -1
  48. package/dist/cjs/src/kraken.js +1 -1
  49. package/dist/cjs/src/kucoin.js +24 -24
  50. package/dist/cjs/src/luno.js +1 -1
  51. package/dist/cjs/src/mexc.js +138 -2
  52. package/dist/cjs/src/ndax.js +1 -1
  53. package/dist/cjs/src/okcoin.js +18 -18
  54. package/dist/cjs/src/okx.js +21 -21
  55. package/dist/cjs/src/phemex.js +12 -8
  56. package/dist/cjs/src/poloniex.js +1 -1
  57. package/dist/cjs/src/poloniexfutures.js +6 -6
  58. package/dist/cjs/src/pro/bitget.js +1 -1
  59. package/dist/cjs/src/pro/bybit.js +13 -1
  60. package/dist/cjs/src/pro/coinex.js +2 -2
  61. package/dist/cjs/src/pro/gate.js +6 -6
  62. package/dist/cjs/src/pro/kucoin.js +3 -3
  63. package/dist/cjs/src/pro/okx.js +11 -11
  64. package/dist/cjs/src/pro/upbit.js +3 -3
  65. package/dist/cjs/src/vertex.js +11 -11
  66. package/dist/cjs/src/woo.js +33 -33
  67. package/dist/cjs/src/woofipro.js +24 -24
  68. package/dist/cjs/src/xt.js +26 -26
  69. package/dist/cjs/src/zonda.js +1 -1
  70. package/js/ccxt.d.ts +1 -1
  71. package/js/ccxt.js +1 -1
  72. package/js/src/ascendex.d.ts +2 -2
  73. package/js/src/ascendex.js +9 -9
  74. package/js/src/base/Exchange.js +12 -18
  75. package/js/src/binance.d.ts +9 -9
  76. package/js/src/binance.js +13 -19
  77. package/js/src/bingx.d.ts +1 -1
  78. package/js/src/bingx.js +1 -2
  79. package/js/src/bit2c.js +0 -1
  80. package/js/src/bitbank.js +0 -1
  81. package/js/src/bitbns.js +0 -1
  82. package/js/src/bitfinex.d.ts +3 -3
  83. package/js/src/bitfinex.js +17 -18
  84. package/js/src/bitfinex1.js +0 -1
  85. package/js/src/bitflyer.js +0 -1
  86. package/js/src/bitget.d.ts +1 -1
  87. package/js/src/bitget.js +1 -2
  88. package/js/src/bithumb.js +0 -1
  89. package/js/src/bitmart.d.ts +1 -1
  90. package/js/src/bitmart.js +3 -4
  91. package/js/src/bitmex.d.ts +1 -1
  92. package/js/src/bitmex.js +5 -6
  93. package/js/src/bitopro.js +4 -5
  94. package/js/src/bitrue.js +5 -7
  95. package/js/src/bitso.d.ts +1 -1
  96. package/js/src/bitso.js +1 -2
  97. package/js/src/bitstamp.d.ts +1 -1
  98. package/js/src/bitstamp.js +1 -2
  99. package/js/src/bitteam.js +1 -3
  100. package/js/src/bitvavo.d.ts +1 -1
  101. package/js/src/bitvavo.js +2 -4
  102. package/js/src/blockchaincom.js +5 -5
  103. package/js/src/blofin.d.ts +3 -3
  104. package/js/src/blofin.js +10 -10
  105. package/js/src/btcalpha.js +0 -1
  106. package/js/src/btcbox.js +0 -1
  107. package/js/src/btcmarkets.js +1 -3
  108. package/js/src/bybit.d.ts +1 -1
  109. package/js/src/bybit.js +2 -3
  110. package/js/src/cex.d.ts +1 -1
  111. package/js/src/cex.js +1 -1
  112. package/js/src/coinbase.d.ts +1 -1
  113. package/js/src/coinbase.js +77 -1
  114. package/js/src/coinbaseexchange.d.ts +1 -1
  115. package/js/src/coinbaseexchange.js +1 -1
  116. package/js/src/coinbaseinternational.js +62 -0
  117. package/js/src/coincatch.d.ts +1 -1
  118. package/js/src/coincatch.js +1 -1
  119. package/js/src/coinex.js +9 -9
  120. package/js/src/coinlist.d.ts +1 -1
  121. package/js/src/coinlist.js +1 -1
  122. package/js/src/coinmetro.d.ts +1 -1
  123. package/js/src/coinmetro.js +1 -1
  124. package/js/src/cryptocom.d.ts +2 -2
  125. package/js/src/cryptocom.js +91 -2
  126. package/js/src/currencycom.d.ts +1 -1
  127. package/js/src/currencycom.js +1 -1
  128. package/js/src/defx.d.ts +1 -2
  129. package/js/src/defx.js +1 -2
  130. package/js/src/delta.d.ts +1 -1
  131. package/js/src/delta.js +1 -1
  132. package/js/src/digifinex.d.ts +1 -1
  133. package/js/src/digifinex.js +1 -1
  134. package/js/src/exmo.js +2 -2
  135. package/js/src/gate.d.ts +1 -1
  136. package/js/src/gate.js +1 -1
  137. package/js/src/hashkey.d.ts +1 -1
  138. package/js/src/hashkey.js +3 -5
  139. package/js/src/htx.d.ts +1 -1
  140. package/js/src/htx.js +1 -1
  141. package/js/src/hyperliquid.d.ts +1 -1
  142. package/js/src/hyperliquid.js +1 -1
  143. package/js/src/kraken.d.ts +1 -1
  144. package/js/src/kraken.js +1 -1
  145. package/js/src/kucoin.d.ts +13 -13
  146. package/js/src/kucoin.js +24 -24
  147. package/js/src/luno.d.ts +1 -1
  148. package/js/src/luno.js +1 -1
  149. package/js/src/mexc.d.ts +1 -2
  150. package/js/src/mexc.js +138 -2
  151. package/js/src/ndax.d.ts +1 -1
  152. package/js/src/ndax.js +1 -1
  153. package/js/src/okcoin.d.ts +4 -4
  154. package/js/src/okcoin.js +18 -18
  155. package/js/src/okx.d.ts +3 -3
  156. package/js/src/okx.js +21 -21
  157. package/js/src/phemex.js +12 -8
  158. package/js/src/poloniex.d.ts +1 -1
  159. package/js/src/poloniex.js +1 -1
  160. package/js/src/poloniexfutures.d.ts +1 -1
  161. package/js/src/poloniexfutures.js +6 -6
  162. package/js/src/pro/bitget.d.ts +1 -1
  163. package/js/src/pro/bitget.js +1 -1
  164. package/js/src/pro/bybit.d.ts +1 -1
  165. package/js/src/pro/bybit.js +13 -1
  166. package/js/src/pro/coinex.js +2 -2
  167. package/js/src/pro/gate.d.ts +2 -2
  168. package/js/src/pro/gate.js +6 -6
  169. package/js/src/pro/kucoin.d.ts +1 -1
  170. package/js/src/pro/kucoin.js +3 -3
  171. package/js/src/pro/okx.d.ts +2 -2
  172. package/js/src/pro/okx.js +11 -11
  173. package/js/src/pro/upbit.d.ts +3 -3
  174. package/js/src/pro/upbit.js +3 -3
  175. package/js/src/vertex.d.ts +3 -3
  176. package/js/src/vertex.js +11 -11
  177. package/js/src/woo.d.ts +7 -7
  178. package/js/src/woo.js +33 -33
  179. package/js/src/woofipro.d.ts +1 -1
  180. package/js/src/woofipro.js +24 -24
  181. package/js/src/xt.d.ts +7 -7
  182. package/js/src/xt.js +26 -26
  183. package/js/src/zonda.d.ts +1 -1
  184. package/js/src/zonda.js +1 -1
  185. package/package.json +1 -1
package/js/src/bitmex.js CHANGED
@@ -1310,7 +1310,7 @@ export default class bitmex extends Exchange {
1310
1310
  * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
1311
1311
  * @param {int} [limit] max number of ledger entries to return, default is undefined
1312
1312
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1313
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
1313
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
1314
1314
  */
1315
1315
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
1316
1316
  await this.loadMarkets();
@@ -1868,7 +1868,7 @@ export default class bitmex extends Exchange {
1868
1868
  postOnly = (execInst === 'ParticipateDoNotInitiate');
1869
1869
  }
1870
1870
  const timestamp = this.parse8601(this.safeString(order, 'timestamp'));
1871
- const stopPrice = this.safeNumber(order, 'stopPx');
1871
+ const triggerPrice = this.safeNumber(order, 'stopPx');
1872
1872
  const remaining = this.safeString(order, 'leavesQty');
1873
1873
  return this.safeOrder({
1874
1874
  'info': order,
@@ -1883,8 +1883,7 @@ export default class bitmex extends Exchange {
1883
1883
  'postOnly': postOnly,
1884
1884
  'side': this.safeStringLower(order, 'side'),
1885
1885
  'price': this.safeString(order, 'price'),
1886
- 'stopPrice': stopPrice,
1887
- 'triggerPrice': stopPrice,
1886
+ 'triggerPrice': triggerPrice,
1888
1887
  'amount': amount,
1889
1888
  'cost': cost,
1890
1889
  'average': average,
@@ -2038,7 +2037,7 @@ export default class bitmex extends Exchange {
2038
2037
  else {
2039
2038
  if (triggerPrice === undefined) {
2040
2039
  // if exchange specific trigger types were provided
2041
- throw new ArgumentsRequired(this.id + ' createOrder() requires a triggerPrice (stopPx|stopPrice) parameter for the ' + orderType + ' order type');
2040
+ throw new ArgumentsRequired(this.id + ' createOrder() requires a triggerPrice parameter for the ' + orderType + ' order type');
2042
2041
  }
2043
2042
  request['stopPx'] = this.parseToNumeric(this.priceToPrecision(symbol, triggerPrice));
2044
2043
  }
@@ -2632,7 +2631,7 @@ export default class bitmex extends Exchange {
2632
2631
  'timestamp': this.parse8601(datetime),
2633
2632
  'datetime': datetime,
2634
2633
  'fundingRate': this.safeNumber(contract, 'fundingRate'),
2635
- 'fundingTimestamp': this.parseToNumeric(this.iso8601(fundingDatetime)),
2634
+ 'fundingTimestamp': this.parse8601(fundingDatetime),
2636
2635
  'fundingDatetime': fundingDatetime,
2637
2636
  'nextFundingRate': this.safeNumber(contract, 'indicativeFundingRate'),
2638
2637
  'nextFundingTimestamp': undefined,
package/js/src/bitopro.js CHANGED
@@ -984,7 +984,6 @@ export default class bitopro extends Exchange {
984
984
  'postOnly': postOnly,
985
985
  'side': side,
986
986
  'price': price,
987
- 'stopPrice': undefined,
988
987
  'triggerPrice': undefined,
989
988
  'amount': amount,
990
989
  'cost': undefined,
@@ -1027,13 +1026,13 @@ export default class bitopro extends Exchange {
1027
1026
  }
1028
1027
  if (orderType === 'STOP_LIMIT') {
1029
1028
  request['price'] = this.priceToPrecision(symbol, price);
1030
- const stopPrice = this.safeValue2(params, 'triggerPrice', 'stopPrice');
1029
+ const triggerPrice = this.safeValue2(params, 'triggerPrice', 'stopPrice');
1031
1030
  params = this.omit(params, ['triggerPrice', 'stopPrice']);
1032
- if (stopPrice === undefined) {
1033
- throw new InvalidOrder(this.id + ' createOrder() requires a stopPrice parameter for ' + orderType + ' orders');
1031
+ if (triggerPrice === undefined) {
1032
+ throw new InvalidOrder(this.id + ' createOrder() requires a triggerPrice parameter for ' + orderType + ' orders');
1034
1033
  }
1035
1034
  else {
1036
- request['stopPrice'] = this.priceToPrecision(symbol, stopPrice);
1035
+ request['stopPrice'] = this.priceToPrecision(symbol, triggerPrice);
1037
1036
  }
1038
1037
  const condition = this.safeString(params, 'condition');
1039
1038
  if (condition === undefined) {
package/js/src/bitrue.js CHANGED
@@ -1837,8 +1837,7 @@ export default class bitrue extends Exchange {
1837
1837
  if (type === 'limit_maker') {
1838
1838
  type = 'limit';
1839
1839
  }
1840
- const stopPriceString = this.safeString(order, 'stopPrice');
1841
- const stopPrice = this.parseNumber(this.omitZero(stopPriceString));
1840
+ const triggerPrice = this.parseNumber(this.omitZero(this.safeString(order, 'stopPrice')));
1842
1841
  return this.safeOrder({
1843
1842
  'info': order,
1844
1843
  'id': id,
@@ -1852,8 +1851,7 @@ export default class bitrue extends Exchange {
1852
1851
  'postOnly': postOnly,
1853
1852
  'side': side,
1854
1853
  'price': price,
1855
- 'stopPrice': stopPrice,
1856
- 'triggerPrice': stopPrice,
1854
+ 'triggerPrice': triggerPrice,
1857
1855
  'amount': amount,
1858
1856
  'cost': cost,
1859
1857
  'average': average,
@@ -1991,10 +1989,10 @@ export default class bitrue extends Exchange {
1991
1989
  params = this.omit(params, ['newClientOrderId', 'clientOrderId']);
1992
1990
  request['newClientOrderId'] = clientOrderId;
1993
1991
  }
1994
- const stopPrice = this.safeValue2(params, 'triggerPrice', 'stopPrice');
1995
- if (stopPrice !== undefined) {
1992
+ const triggerPrice = this.safeValue2(params, 'triggerPrice', 'stopPrice');
1993
+ if (triggerPrice !== undefined) {
1996
1994
  params = this.omit(params, ['triggerPrice', 'stopPrice']);
1997
- request['stopPrice'] = this.priceToPrecision(symbol, stopPrice);
1995
+ request['stopPrice'] = this.priceToPrecision(symbol, triggerPrice);
1998
1996
  }
1999
1997
  response = await this.spotV1PrivatePostOrder(this.extend(request, params));
2000
1998
  data = response;
package/js/src/bitso.d.ts CHANGED
@@ -14,7 +14,7 @@ export default class bitso extends Exchange {
14
14
  * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
15
15
  * @param {int} [limit] max number of ledger entries to return, default is undefined
16
16
  * @param {object} [params] extra parameters specific to the exchange API endpoint
17
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
17
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
18
18
  */
19
19
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
20
20
  parseLedgerEntryType(type: any): string;
package/js/src/bitso.js CHANGED
@@ -205,7 +205,7 @@ export default class bitso extends Exchange {
205
205
  * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
206
206
  * @param {int} [limit] max number of ledger entries to return, default is undefined
207
207
  * @param {object} [params] extra parameters specific to the exchange API endpoint
208
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
208
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
209
209
  */
210
210
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
211
211
  const request = {};
@@ -1140,7 +1140,6 @@ export default class bitso extends Exchange {
1140
1140
  'postOnly': undefined,
1141
1141
  'side': side,
1142
1142
  'price': price,
1143
- 'stopPrice': undefined,
1144
1143
  'triggerPrice': undefined,
1145
1144
  'amount': amount,
1146
1145
  'cost': undefined,
@@ -276,7 +276,7 @@ export default class bitstamp extends Exchange {
276
276
  * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
277
277
  * @param {int} [limit] max number of ledger entries to return, default is undefined
278
278
  * @param {object} [params] extra parameters specific to the exchange API endpoint
279
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
279
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
280
280
  */
281
281
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
282
282
  /**
@@ -1918,7 +1918,6 @@ export default class bitstamp extends Exchange {
1918
1918
  'postOnly': undefined,
1919
1919
  'side': side,
1920
1920
  'price': price,
1921
- 'stopPrice': undefined,
1922
1921
  'triggerPrice': undefined,
1923
1922
  'cost': undefined,
1924
1923
  'amount': amount,
@@ -2042,7 +2041,7 @@ export default class bitstamp extends Exchange {
2042
2041
  * @param {int} [since] timestamp in ms of the earliest ledger entry, default is undefined
2043
2042
  * @param {int} [limit] max number of ledger entries to return, default is undefined
2044
2043
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2045
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
2044
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
2046
2045
  */
2047
2046
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
2048
2047
  await this.loadMarkets();
package/js/src/bitteam.js CHANGED
@@ -1196,7 +1196,6 @@ export default class bitteam extends Exchange {
1196
1196
  const side = this.safeString(order, 'side');
1197
1197
  const feeRaw = this.safeValue(order, 'fee');
1198
1198
  const price = this.safeString(order, 'price');
1199
- const stopPrice = this.safeString(order, 'stopPrice');
1200
1199
  const amount = this.safeString(order, 'quantity');
1201
1200
  const filled = this.safeString(order, 'executed');
1202
1201
  let fee = undefined;
@@ -1222,8 +1221,7 @@ export default class bitteam extends Exchange {
1222
1221
  'timeInForce': 'GTC',
1223
1222
  'side': side,
1224
1223
  'price': price,
1225
- 'stopPrice': stopPrice,
1226
- 'triggerPrice': stopPrice,
1224
+ 'triggerPrice': this.safeString(order, 'stopPrice'),
1227
1225
  'average': undefined,
1228
1226
  'amount': amount,
1229
1227
  'cost': undefined,
@@ -141,7 +141,7 @@ export default class bitvavo extends Exchange {
141
141
  * @param {float} price the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
142
142
  * @param {object} [params] extra parameters specific to the bitvavo api endpoint
143
143
  * @param {string} [params.timeInForce] "GTC", "IOC", or "PO"
144
- * @param {float} [params.stopPrice] The price at which a trigger order is triggered at
144
+ * @param {float} [params.stopPrice] Alias for triggerPrice
145
145
  * @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
146
146
  * @param {bool} [params.postOnly] If true, the order will only be posted to the order book and not executed immediately
147
147
  * @param {float} [params.stopLossPrice] The price at which a stop loss order is triggered at
package/js/src/bitvavo.js CHANGED
@@ -1131,7 +1131,7 @@ export default class bitvavo extends Exchange {
1131
1131
  * @param {float} price the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
1132
1132
  * @param {object} [params] extra parameters specific to the bitvavo api endpoint
1133
1133
  * @param {string} [params.timeInForce] "GTC", "IOC", or "PO"
1134
- * @param {float} [params.stopPrice] The price at which a trigger order is triggered at
1134
+ * @param {float} [params.stopPrice] Alias for triggerPrice
1135
1135
  * @param {float} [params.triggerPrice] The price at which a trigger order is triggered at
1136
1136
  * @param {bool} [params.postOnly] If true, the order will only be posted to the order book and not executed immediately
1137
1137
  * @param {float} [params.stopLossPrice] The price at which a stop loss order is triggered at
@@ -1602,7 +1602,6 @@ export default class bitvavo extends Exchange {
1602
1602
  const timeInForce = this.safeString(order, 'timeInForce');
1603
1603
  const postOnly = this.safeValue(order, 'postOnly');
1604
1604
  // https://github.com/ccxt/ccxt/issues/8489
1605
- const stopPrice = this.safeNumber(order, 'triggerPrice');
1606
1605
  return this.safeOrder({
1607
1606
  'info': order,
1608
1607
  'id': id,
@@ -1616,8 +1615,7 @@ export default class bitvavo extends Exchange {
1616
1615
  'postOnly': postOnly,
1617
1616
  'side': side,
1618
1617
  'price': price,
1619
- 'stopPrice': stopPrice,
1620
- 'triggerPrice': stopPrice,
1618
+ 'triggerPrice': this.safeNumber(order, 'triggerPrice'),
1621
1619
  'amount': amount,
1622
1620
  'cost': cost,
1623
1621
  'average': undefined,
@@ -571,14 +571,14 @@ export default class blockchaincom extends Exchange {
571
571
  'orderQty': this.amountToPrecision(symbol, amount),
572
572
  'clOrdId': clientOrderId,
573
573
  };
574
- const stopPrice = this.safeValue2(params, 'stopPx', 'stopPrice');
574
+ const triggerPrice = this.safeValue2(params, 'stopPx', 'stopPrice');
575
575
  params = this.omit(params, ['stopPx', 'stopPrice']);
576
576
  if (uppercaseOrderType === 'STOP' || uppercaseOrderType === 'STOPLIMIT') {
577
- if (stopPrice === undefined) {
578
- throw new ArgumentsRequired(this.id + ' createOrder() requires a stopPx or stopPrice param for a ' + uppercaseOrderType + ' order');
577
+ if (triggerPrice === undefined) {
578
+ throw new ArgumentsRequired(this.id + ' createOrder() requires a stopPx or triggerPrice param for a ' + uppercaseOrderType + ' order');
579
579
  }
580
580
  }
581
- if (stopPrice !== undefined) {
581
+ if (triggerPrice !== undefined) {
582
582
  if (uppercaseOrderType === 'MARKET') {
583
583
  request['ordType'] = 'STOP';
584
584
  }
@@ -598,7 +598,7 @@ export default class blockchaincom extends Exchange {
598
598
  request['price'] = this.priceToPrecision(symbol, price);
599
599
  }
600
600
  if (stopPriceRequired) {
601
- request['stopPx'] = this.priceToPrecision(symbol, stopPrice);
601
+ request['stopPx'] = this.priceToPrecision(symbol, triggerPrice);
602
602
  }
603
603
  const response = await this.privatePostOrders(this.extend(request, params));
604
604
  return this.parseOrder(response, market);
@@ -193,7 +193,7 @@ export default class blofin extends Exchange {
193
193
  * @param {int} [since] the earliest time in ms to fetch open orders for
194
194
  * @param {int} [limit] the maximum number of open orders structures to retrieve
195
195
  * @param {object} [params] extra parameters specific to the exchange API endpoint
196
- * @param {bool} [params.stop] True if fetching trigger or conditional orders
196
+ * @param {bool} [params.trigger] True if fetching trigger or conditional orders
197
197
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
198
198
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
199
199
  */
@@ -252,7 +252,7 @@ export default class blofin extends Exchange {
252
252
  * @param {string} [params.marginMode] 'cross' or 'isolated'
253
253
  * @param {int} [params.until] the latest time in ms to fetch entries for
254
254
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
255
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
255
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
256
256
  */
257
257
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
258
258
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
@@ -372,7 +372,7 @@ export default class blofin extends Exchange {
372
372
  * @param {int} [since] the earliest time in ms to fetch orders for
373
373
  * @param {int} [limit] the maximum number of orde structures to retrieve
374
374
  * @param {object} [params] extra parameters specific to the exchange API endpoint
375
- * @param {bool} [params.stop] True if fetching trigger or conditional orders
375
+ * @param {bool} [params.trigger] True if fetching trigger or conditional orders
376
376
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
377
377
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
378
378
  */
package/js/src/blofin.js CHANGED
@@ -1375,7 +1375,7 @@ export default class blofin extends Exchange {
1375
1375
  * @param {int} [since] the earliest time in ms to fetch open orders for
1376
1376
  * @param {int} [limit] the maximum number of open orders structures to retrieve
1377
1377
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1378
- * @param {bool} [params.stop] True if fetching trigger or conditional orders
1378
+ * @param {bool} [params.trigger] True if fetching trigger or conditional orders
1379
1379
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
1380
1380
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
1381
1381
  */
@@ -1395,12 +1395,12 @@ export default class blofin extends Exchange {
1395
1395
  if (limit !== undefined) {
1396
1396
  request['limit'] = limit; // default 100, max 100
1397
1397
  }
1398
- const isStop = this.safeBoolN(params, ['stop', 'trigger', 'tpsl', 'TPSL'], false);
1398
+ const isTrigger = this.safeBoolN(params, ['stop', 'trigger', 'tpsl', 'TPSL'], false);
1399
1399
  let method = undefined;
1400
1400
  [method, params] = this.handleOptionAndParams(params, 'fetchOpenOrders', 'method', 'privateGetTradeOrdersPending');
1401
1401
  const query = this.omit(params, ['method', 'stop', 'trigger', 'tpsl', 'TPSL']);
1402
1402
  let response = undefined;
1403
- if (isStop || (method === 'privateGetTradeOrdersTpslPending')) {
1403
+ if (isTrigger || (method === 'privateGetTradeOrdersTpslPending')) {
1404
1404
  response = await this.privateGetTradeOrdersTpslPending(this.extend(request, query));
1405
1405
  }
1406
1406
  else {
@@ -1529,7 +1529,7 @@ export default class blofin extends Exchange {
1529
1529
  * @param {string} [params.marginMode] 'cross' or 'isolated'
1530
1530
  * @param {int} [params.until] the latest time in ms to fetch entries for
1531
1531
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
1532
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
1532
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
1533
1533
  */
1534
1534
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
1535
1535
  await this.loadMarkets();
@@ -1726,8 +1726,8 @@ export default class blofin extends Exchange {
1726
1726
  let method = this.safeString(params, 'method', defaultMethod);
1727
1727
  const clientOrderIds = this.parseIds(this.safeValue(params, 'clientOrderId'));
1728
1728
  const tpslIds = this.parseIds(this.safeValue(params, 'tpslId'));
1729
- const stop = this.safeBoolN(params, ['stop', 'trigger', 'tpsl']);
1730
- if (stop) {
1729
+ const trigger = this.safeBoolN(params, ['stop', 'trigger', 'tpsl']);
1730
+ if (trigger) {
1731
1731
  method = 'privatePostTradeCancelTpsl';
1732
1732
  }
1733
1733
  if (clientOrderIds === undefined) {
@@ -1741,7 +1741,7 @@ export default class blofin extends Exchange {
1741
1741
  }
1742
1742
  }
1743
1743
  for (let i = 0; i < ids.length; i++) {
1744
- if (stop) {
1744
+ if (trigger) {
1745
1745
  request.push({
1746
1746
  'tpslId': ids[i],
1747
1747
  'instId': market['id'],
@@ -2159,7 +2159,7 @@ export default class blofin extends Exchange {
2159
2159
  * @param {int} [since] the earliest time in ms to fetch orders for
2160
2160
  * @param {int} [limit] the maximum number of orde structures to retrieve
2161
2161
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2162
- * @param {bool} [params.stop] True if fetching trigger or conditional orders
2162
+ * @param {bool} [params.trigger] True if fetching trigger or conditional orders
2163
2163
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
2164
2164
  * @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
2165
2165
  */
@@ -2182,12 +2182,12 @@ export default class blofin extends Exchange {
2182
2182
  if (since !== undefined) {
2183
2183
  request['begin'] = since;
2184
2184
  }
2185
- const isStop = this.safeBoolN(params, ['stop', 'trigger', 'tpsl', 'TPSL'], false);
2185
+ const isTrigger = this.safeBoolN(params, ['stop', 'trigger', 'tpsl', 'TPSL'], false);
2186
2186
  let method = undefined;
2187
2187
  [method, params] = this.handleOptionAndParams(params, 'fetchOpenOrders', 'method', 'privateGetTradeOrdersHistory');
2188
2188
  const query = this.omit(params, ['method', 'stop', 'trigger', 'tpsl', 'TPSL']);
2189
2189
  let response = undefined;
2190
- if ((isStop) || (method === 'privateGetTradeOrdersTpslHistory')) {
2190
+ if ((isTrigger) || (method === 'privateGetTradeOrdersTpslHistory')) {
2191
2191
  response = await this.privateGetTradeOrdersTpslHistory(this.extend(request, query));
2192
2192
  }
2193
2193
  else {
@@ -721,7 +721,6 @@ export default class btcalpha extends Exchange {
721
721
  'postOnly': undefined,
722
722
  'side': side,
723
723
  'price': price,
724
- 'stopPrice': undefined,
725
724
  'triggerPrice': undefined,
726
725
  'cost': undefined,
727
726
  'amount': amount,
package/js/src/btcbox.js CHANGED
@@ -556,7 +556,6 @@ export default class btcbox extends Exchange {
556
556
  'status': status,
557
557
  'symbol': market['symbol'],
558
558
  'price': price,
559
- 'stopPrice': undefined,
560
559
  'triggerPrice': undefined,
561
560
  'cost': undefined,
562
561
  'trades': trades,
@@ -1041,7 +1041,6 @@ export default class btcmarkets extends Exchange {
1041
1041
  const id = this.safeString(order, 'orderId');
1042
1042
  const clientOrderId = this.safeString(order, 'clientOrderId');
1043
1043
  const timeInForce = this.safeString(order, 'timeInForce');
1044
- const stopPrice = this.safeNumber(order, 'triggerPrice');
1045
1044
  const postOnly = this.safeBool(order, 'postOnly');
1046
1045
  return this.safeOrder({
1047
1046
  'info': order,
@@ -1056,8 +1055,7 @@ export default class btcmarkets extends Exchange {
1056
1055
  'postOnly': postOnly,
1057
1056
  'side': side,
1058
1057
  'price': price,
1059
- 'stopPrice': stopPrice,
1060
- 'triggerPrice': stopPrice,
1058
+ 'triggerPrice': this.safeNumber(order, 'triggerPrice'),
1061
1059
  'cost': undefined,
1062
1060
  'amount': amount,
1063
1061
  'filled': undefined,
package/js/src/bybit.d.ts CHANGED
@@ -578,7 +578,7 @@ export default class bybit extends Exchange {
578
578
  * @param {object} [params] extra parameters specific to the exchange API endpoint
579
579
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
580
580
  * @param {string} [params.subType] if inverse will use v5/account/contract-transaction-log
581
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
581
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
582
582
  */
583
583
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
584
584
  parseLedgerEntry(item: Dict, currency?: Currency): LedgerEntry;
package/js/src/bybit.js CHANGED
@@ -3729,7 +3729,6 @@ export default class bybit extends Exchange {
3729
3729
  'reduceOnly': this.safeBool(order, 'reduceOnly'),
3730
3730
  'side': side,
3731
3731
  'price': price,
3732
- 'stopPrice': stopPrice,
3733
3732
  'triggerPrice': stopPrice,
3734
3733
  'takeProfitPrice': takeProfitPrice,
3735
3734
  'stopLossPrice': stopLossPrice,
@@ -5738,7 +5737,7 @@ export default class bybit extends Exchange {
5738
5737
  * @param {object} [params] extra parameters specific to the exchange API endpoint
5739
5738
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
5740
5739
  * @param {string} [params.subType] if inverse will use v5/account/contract-transaction-log
5741
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
5740
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
5742
5741
  */
5743
5742
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
5744
5743
  await this.loadMarkets();
@@ -8132,7 +8131,7 @@ export default class bybit extends Exchange {
8132
8131
  }
8133
8132
  symbol = market['symbol'];
8134
8133
  }
8135
- const data = await this.getLeverageTiersPaginated(symbol, this.extend({ 'paginate': true, 'paginationCalls': 20 }, params));
8134
+ const data = await this.getLeverageTiersPaginated(symbol, this.extend({ 'paginate': true, 'paginationCalls': 40 }, params));
8136
8135
  symbols = this.marketSymbols(symbols);
8137
8136
  return this.parseLeverageTiers(data, symbols, 'symbol');
8138
8137
  }
package/js/src/cex.d.ts CHANGED
@@ -229,7 +229,7 @@ export default class cex extends Exchange {
229
229
  * @param {int} [limit] max number of ledger entries to return
230
230
  * @param {object} [params] extra parameters specific to the exchange API endpoint
231
231
  * @param {int} [params.until] timestamp in ms of the latest ledger entry
232
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
232
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
233
233
  */
234
234
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
235
235
  parseLedgerEntry(item: Dict, currency?: Currency): LedgerEntry;
package/js/src/cex.js CHANGED
@@ -1264,7 +1264,7 @@ export default class cex extends Exchange {
1264
1264
  * @param {int} [limit] max number of ledger entries to return
1265
1265
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1266
1266
  * @param {int} [params.until] timestamp in ms of the latest ledger entry
1267
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
1267
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
1268
1268
  */
1269
1269
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
1270
1270
  await this.loadMarkets();
@@ -210,7 +210,7 @@ export default class coinbase extends Exchange {
210
210
  * @param {int} [limit] max number of ledger entries to return, default is undefined
211
211
  * @param {object} [params] extra parameters specific to the exchange API endpoint
212
212
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
213
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
213
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
214
214
  */
215
215
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
216
216
  parseLedgerEntryStatus(status: any): string;
@@ -377,6 +377,82 @@ export default class coinbase extends Exchange {
377
377
  'fetchTime': 'v2PublicGetTime',
378
378
  'user_native_currency': 'USD', // needed to get fees for v3
379
379
  },
380
+ 'features': {
381
+ 'spot': {
382
+ 'sandbox': false,
383
+ 'createOrder': {
384
+ 'marginMode': true,
385
+ 'triggerPrice': true,
386
+ 'triggerPriceType': undefined,
387
+ 'triggerDirection': true,
388
+ 'stopLossPrice': true,
389
+ 'takeProfitPrice': true,
390
+ 'attachedStopLossTakeProfit': undefined,
391
+ 'timeInForce': {
392
+ 'IOC': true,
393
+ 'FOK': true,
394
+ 'PO': true,
395
+ 'GTD': true,
396
+ },
397
+ 'hedged': false,
398
+ 'trailing': false,
399
+ },
400
+ 'createOrders': undefined,
401
+ 'fetchMyTrades': {
402
+ 'marginMode': false,
403
+ 'limit': 3000,
404
+ 'daysBack': undefined,
405
+ 'untilDays': 10000,
406
+ },
407
+ 'fetchOrder': {
408
+ 'marginMode': false,
409
+ 'trigger': false,
410
+ 'trailing': false,
411
+ },
412
+ 'fetchOpenOrders': {
413
+ 'marginMode': false,
414
+ 'limit': undefined,
415
+ 'trigger': false,
416
+ 'trailing': false,
417
+ },
418
+ 'fetchOrders': {
419
+ 'marginMode': false,
420
+ 'limit': undefined,
421
+ 'daysBack': undefined,
422
+ 'untilDays': 10000,
423
+ 'trigger': false,
424
+ 'trailing': false,
425
+ },
426
+ 'fetchClosedOrders': {
427
+ 'marginMode': false,
428
+ 'limit': undefined,
429
+ 'daysBackClosed': undefined,
430
+ 'daysBackCanceled': undefined,
431
+ 'untilDays': 10000,
432
+ 'trigger': false,
433
+ 'trailing': false,
434
+ },
435
+ 'fetchOHLCV': {
436
+ 'limit': 350,
437
+ },
438
+ },
439
+ 'swap': {
440
+ 'linear': {
441
+ 'extends': 'spot',
442
+ },
443
+ 'inverse': {
444
+ 'extends': 'spot',
445
+ },
446
+ },
447
+ 'future': {
448
+ 'linear': {
449
+ 'extends': 'spot',
450
+ },
451
+ 'inverse': {
452
+ 'extends': 'spot',
453
+ },
454
+ },
455
+ },
380
456
  });
381
457
  }
382
458
  /**
@@ -2353,7 +2429,7 @@ export default class coinbase extends Exchange {
2353
2429
  * @param {int} [limit] max number of ledger entries to return, default is undefined
2354
2430
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2355
2431
  * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
2356
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
2432
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
2357
2433
  */
2358
2434
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
2359
2435
  await this.loadMarkets();
@@ -268,7 +268,7 @@ export default class coinbaseexchange extends Exchange {
268
268
  * @param {int} [limit] max number of ledger entries to return, default is undefined
269
269
  * @param {object} [params] extra parameters specific to the exchange API endpoint
270
270
  * @param {int} [params.until] the latest time in ms to fetch trades for
271
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
271
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
272
272
  */
273
273
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
274
274
  /**
@@ -1504,7 +1504,7 @@ export default class coinbaseexchange extends Exchange {
1504
1504
  * @param {int} [limit] max number of ledger entries to return, default is undefined
1505
1505
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1506
1506
  * @param {int} [params.until] the latest time in ms to fetch trades for
1507
- * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger-structure}
1507
+ * @returns {object} a [ledger structure]{@link https://docs.ccxt.com/#/?id=ledger}
1508
1508
  */
1509
1509
  async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
1510
1510
  // https://docs.cloud.coinbase.com/exchange/reference/exchangerestapi_getaccountledger