ccxt 4.4.42 → 4.4.44

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 (94) hide show
  1. package/README.md +35 -33
  2. package/dist/ccxt.browser.min.js +15 -15
  3. package/dist/cjs/ccxt.js +6 -1
  4. package/dist/cjs/src/binance.js +55 -43
  5. package/dist/cjs/src/bingx.js +37 -12
  6. package/dist/cjs/src/bitfinex.js +6 -2
  7. package/dist/cjs/src/bitget.js +3 -1
  8. package/dist/cjs/src/bitmart.js +4 -7
  9. package/dist/cjs/src/bitmex.js +3 -5
  10. package/dist/cjs/src/bitstamp.js +59 -0
  11. package/dist/cjs/src/bybit.js +7 -22
  12. package/dist/cjs/src/coinbase.js +13 -9
  13. package/dist/cjs/src/coinbaseinternational.js +13 -9
  14. package/dist/cjs/src/coincatch.js +2 -2
  15. package/dist/cjs/src/coinex.js +5 -5
  16. package/dist/cjs/src/cryptocom.js +3 -1
  17. package/dist/cjs/src/defx.js +2 -2
  18. package/dist/cjs/src/delta.js +1 -1
  19. package/dist/cjs/src/gate.js +7 -2
  20. package/dist/cjs/src/gemini.js +65 -2
  21. package/dist/cjs/src/hashkey.js +9 -9
  22. package/dist/cjs/src/htx.js +105 -2
  23. package/dist/cjs/src/hyperliquid.js +6 -1
  24. package/dist/cjs/src/kraken.js +9 -2
  25. package/dist/cjs/src/krakenfutures.js +5 -0
  26. package/dist/cjs/src/kucoin.js +9 -7
  27. package/dist/cjs/src/kucoinfutures.js +5 -5
  28. package/dist/cjs/src/mexc.js +16 -10
  29. package/dist/cjs/src/myokx.js +35 -0
  30. package/dist/cjs/src/ndax.js +1 -1
  31. package/dist/cjs/src/oceanex.js +1 -1
  32. package/dist/cjs/src/okx.js +4 -5
  33. package/dist/cjs/src/phemex.js +7 -5
  34. package/dist/cjs/src/pro/bitcoincom.js +4 -1
  35. package/dist/cjs/src/pro/bitopro.js +1 -1
  36. package/dist/cjs/src/pro/myokx.js +24 -0
  37. package/dist/cjs/src/vertex.js +69 -4
  38. package/dist/cjs/src/whitebit.js +4 -2
  39. package/dist/cjs/src/woo.js +8 -6
  40. package/dist/cjs/src/woofipro.js +5 -2
  41. package/js/ccxt.d.ts +8 -2
  42. package/js/ccxt.js +6 -2
  43. package/js/src/abstract/binance.d.ts +1 -0
  44. package/js/src/abstract/binancecoinm.d.ts +1 -0
  45. package/js/src/abstract/binanceus.d.ts +1 -0
  46. package/js/src/abstract/binanceusdm.d.ts +1 -0
  47. package/js/src/abstract/bingx.d.ts +4 -0
  48. package/js/src/abstract/bitstamp.d.ts +1 -0
  49. package/js/src/abstract/myokx.d.ts +343 -0
  50. package/js/src/abstract/myokx.js +11 -0
  51. package/js/src/binance.d.ts +33 -32
  52. package/js/src/binance.js +55 -43
  53. package/js/src/bingx.js +37 -12
  54. package/js/src/bitfinex.js +6 -2
  55. package/js/src/bitget.js +3 -1
  56. package/js/src/bitmart.js +4 -7
  57. package/js/src/bitmex.js +3 -5
  58. package/js/src/bitstamp.js +59 -0
  59. package/js/src/bybit.js +7 -22
  60. package/js/src/coinbase.js +13 -9
  61. package/js/src/coinbaseinternational.js +13 -9
  62. package/js/src/coincatch.js +2 -2
  63. package/js/src/coinex.js +5 -5
  64. package/js/src/cryptocom.js +3 -1
  65. package/js/src/defx.js +2 -2
  66. package/js/src/delta.js +1 -1
  67. package/js/src/gate.js +7 -2
  68. package/js/src/gemini.js +65 -2
  69. package/js/src/hashkey.js +9 -9
  70. package/js/src/htx.d.ts +13 -1
  71. package/js/src/htx.js +105 -2
  72. package/js/src/hyperliquid.js +6 -1
  73. package/js/src/kraken.js +9 -2
  74. package/js/src/krakenfutures.js +5 -0
  75. package/js/src/kucoin.js +9 -7
  76. package/js/src/kucoinfutures.js +5 -5
  77. package/js/src/mexc.js +16 -10
  78. package/js/src/myokx.d.ts +4 -0
  79. package/js/src/myokx.js +36 -0
  80. package/js/src/ndax.js +1 -1
  81. package/js/src/oceanex.js +1 -1
  82. package/js/src/okx.js +4 -5
  83. package/js/src/phemex.d.ts +1 -0
  84. package/js/src/phemex.js +7 -5
  85. package/js/src/pro/bitcoincom.js +4 -1
  86. package/js/src/pro/bitopro.js +1 -1
  87. package/js/src/pro/myokx.d.ts +4 -0
  88. package/js/src/pro/myokx.js +25 -0
  89. package/js/src/vertex.d.ts +11 -1
  90. package/js/src/vertex.js +69 -4
  91. package/js/src/whitebit.js +4 -2
  92. package/js/src/woo.js +8 -6
  93. package/js/src/woofipro.js +5 -2
  94. package/package.json +15 -8
package/js/src/binance.js CHANGED
@@ -228,6 +228,7 @@ export default class binance extends Exchange {
228
228
  'private': 'https://api.binance.com/api/v3',
229
229
  'v1': 'https://api.binance.com/api/v1',
230
230
  'papi': 'https://papi.binance.com/papi/v1',
231
+ 'papiV2': 'https://papi.binance.com/papi/v2',
231
232
  },
232
233
  'www': 'https://www.binance.com',
233
234
  'referral': {
@@ -1170,6 +1171,11 @@ export default class binance extends Exchange {
1170
1171
  'listenKey': 0.2,
1171
1172
  },
1172
1173
  },
1174
+ 'papiV2': {
1175
+ 'get': {
1176
+ 'um/account': 1,
1177
+ },
1178
+ },
1173
1179
  },
1174
1180
  'fees': {
1175
1181
  'trading': {
@@ -1562,7 +1568,6 @@ export default class binance extends Exchange {
1562
1568
  },
1563
1569
  },
1564
1570
  'features': {
1565
- // https://developers.binance.com/docs/binance-spot-api-docs/rest-api#:~:text=quoteOrderQty
1566
1571
  'spot': {
1567
1572
  'sandbox': true,
1568
1573
  'createOrder': {
@@ -1580,12 +1585,13 @@ export default class binance extends Exchange {
1580
1585
  'GTD': false,
1581
1586
  },
1582
1587
  'hedged': true,
1588
+ 'leverage': false,
1589
+ 'marketBuyRequiresPrice': false,
1590
+ 'marketBuyByCost': true,
1583
1591
  // exchange-supported features
1584
1592
  'selfTradePrevention': true,
1585
1593
  'trailing': true,
1586
- 'twap': false,
1587
- 'iceberg': true,
1588
- 'oco': false,
1594
+ 'iceberg': true, // todo implementation
1589
1595
  },
1590
1596
  'createOrders': undefined,
1591
1597
  'fetchMyTrades': {
@@ -1650,9 +1656,10 @@ export default class binance extends Exchange {
1650
1656
  // exchange-supported features
1651
1657
  'selfTradePrevention': true,
1652
1658
  'trailing': true,
1653
- 'twap': false,
1654
1659
  'iceberg': false,
1655
- 'oco': false,
1660
+ 'leverage': false,
1661
+ 'marketBuyRequiresPrice': false,
1662
+ 'marketBuyByCost': true,
1656
1663
  },
1657
1664
  'createOrders': {
1658
1665
  'max': 5,
@@ -2829,7 +2836,7 @@ export default class binance extends Exchange {
2829
2836
  * @method
2830
2837
  * @name binance#fetchTime
2831
2838
  * @description fetches the current integer timestamp in milliseconds from the exchange server
2832
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#check-server-time // spot
2839
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#check-server-time // spot
2833
2840
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Check-Server-Time // swap
2834
2841
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/Check-Server-time // future
2835
2842
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -3077,7 +3084,7 @@ export default class binance extends Exchange {
3077
3084
  * @method
3078
3085
  * @name binance#fetchMarkets
3079
3086
  * @description retrieves data on all markets for binance
3080
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#exchange-information // spot
3087
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#exchange-information // spot
3081
3088
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Exchange-Information // swap
3082
3089
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/Exchange-Information // future
3083
3090
  * @see https://developers.binance.com/docs/derivatives/option/market-data/Exchange-Information // option
@@ -3687,7 +3694,7 @@ export default class binance extends Exchange {
3687
3694
  * @method
3688
3695
  * @name binance#fetchBalance
3689
3696
  * @description query for balance and get the amount of funds available for trading or funds locked in orders
3690
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#account-information-user_data // spot
3697
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#account-information-user_data // spot
3691
3698
  * @see https://developers.binance.com/docs/margin_trading/account/Query-Cross-Margin-Account-Details // cross margin
3692
3699
  * @see https://developers.binance.com/docs/margin_trading/account/Query-Isolated-Margin-Account-Info // isolated margin
3693
3700
  * @see https://developers.binance.com/docs/wallet/asset/funding-wallet // funding
@@ -3961,7 +3968,7 @@ export default class binance extends Exchange {
3961
3968
  * @method
3962
3969
  * @name binance#fetchOrderBook
3963
3970
  * @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
3964
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#order-book // spot
3971
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#order-book // spot
3965
3972
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Order-Book // swap
3966
3973
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/Order-Book // future
3967
3974
  * @see https://developers.binance.com/docs/derivatives/option/market-data/Order-Book // option
@@ -4227,8 +4234,8 @@ export default class binance extends Exchange {
4227
4234
  * @method
4228
4235
  * @name binance#fetchTicker
4229
4236
  * @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
4230
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#24hr-ticker-price-change-statistics // spot
4231
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#rolling-window-price-change-statistics // spot
4237
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#24hr-ticker-price-change-statistics // spot
4238
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#rolling-window-price-change-statistics // spot
4232
4239
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/24hr-Ticker-Price-Change-Statistics // swap
4233
4240
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/24hr-Ticker-Price-Change-Statistics // future
4234
4241
  * @see https://developers.binance.com/docs/derivatives/option/market-data/24hr-Ticker-Price-Change-Statistics // option
@@ -4273,7 +4280,7 @@ export default class binance extends Exchange {
4273
4280
  * @method
4274
4281
  * @name binance#fetchBidsAsks
4275
4282
  * @description fetches the bid and ask price and volume for multiple markets
4276
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#symbol-order-book-ticker // spot
4283
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#symbol-order-book-ticker // spot
4277
4284
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Symbol-Order-Book-Ticker // swap
4278
4285
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/Symbol-Order-Book-Ticker // future
4279
4286
  * @param {string[]|undefined} symbols unified symbols of the markets to fetch the bids and asks for, all markets are returned if not assigned
@@ -4312,7 +4319,7 @@ export default class binance extends Exchange {
4312
4319
  * @method
4313
4320
  * @name binance#fetchLastPrices
4314
4321
  * @description fetches the last price for multiple markets
4315
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#symbol-price-ticker // spot
4322
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#symbol-price-ticker // spot
4316
4323
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Symbol-Price-Ticker // swap
4317
4324
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/Symbol-Price-Ticker // future
4318
4325
  * @param {string[]|undefined} symbols unified symbols of the markets to fetch the last prices
@@ -4417,7 +4424,7 @@ export default class binance extends Exchange {
4417
4424
  * @method
4418
4425
  * @name binance#fetchTickers
4419
4426
  * @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
4420
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#24hr-ticker-price-change-statistics // spot
4427
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#24hr-ticker-price-change-statistics // spot
4421
4428
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/24hr-Ticker-Price-Change-Statistics // swap
4422
4429
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/24hr-Ticker-Price-Change-Statistics // future
4423
4430
  * @see https://developers.binance.com/docs/derivatives/option/market-data/24hr-Ticker-Price-Change-Statistics // option
@@ -4591,7 +4598,7 @@ export default class binance extends Exchange {
4591
4598
  * @method
4592
4599
  * @name binance#fetchOHLCV
4593
4600
  * @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
4594
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#klinecandlestick-data
4601
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#klinecandlestick-data
4595
4602
  * @see https://developers.binance.com/docs/derivatives/option/market-data/Kline-Candlestick-Data
4596
4603
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Kline-Candlestick-Data
4597
4604
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Index-Price-Kline-Candlestick-Data
@@ -5001,15 +5008,15 @@ export default class binance extends Exchange {
5001
5008
  * @name binance#fetchTrades
5002
5009
  * @description get the list of most recent trades for a particular symbol
5003
5010
  * Default fetchTradesMethod
5004
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#compressedaggregate-trades-list // publicGetAggTrades (spot)
5011
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#compressedaggregate-trades-list // publicGetAggTrades (spot)
5005
5012
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Compressed-Aggregate-Trades-List // fapiPublicGetAggTrades (swap)
5006
5013
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/Compressed-Aggregate-Trades-List // dapiPublicGetAggTrades (future)
5007
5014
  * @see https://developers.binance.com/docs/derivatives/option/market-data/Recent-Trades-List // eapiPublicGetTrades (option)
5008
5015
  * Other fetchTradesMethod
5009
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#recent-trades-list // publicGetTrades (spot)
5016
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#recent-trades-list // publicGetTrades (spot)
5010
5017
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Recent-Trades-List // fapiPublicGetTrades (swap)
5011
5018
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/Recent-Trades-List // dapiPublicGetTrades (future)
5012
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#old-trade-lookup // publicGetHistoricalTrades (spot)
5019
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#old-trade-lookup // publicGetHistoricalTrades (spot)
5013
5020
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/market-data/rest-api/Old-Trades-Lookup // fapiPublicGetHistoricalTrades (swap)
5014
5021
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/market-data/Old-Trades-Lookup // dapiPublicGetHistoricalTrades (future)
5015
5022
  * @see https://developers.binance.com/docs/derivatives/option/market-data/Old-Trades-Lookup // eapiPublicGetHistoricalTrades (option)
@@ -5145,7 +5152,7 @@ export default class binance extends Exchange {
5145
5152
  * @name binance#editSpotOrder
5146
5153
  * @ignore
5147
5154
  * @description edit a trade order
5148
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#cancel-an-existing-order-and-send-a-new-order-trade
5155
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#cancel-an-existing-order-and-send-a-new-order-trade
5149
5156
  * @param {string} id cancel order id
5150
5157
  * @param {string} symbol unified symbol of the market to create an order in
5151
5158
  * @param {string} type 'market' or 'limit' or 'STOP_LOSS' or 'STOP_LOSS_LIMIT' or 'TAKE_PROFIT' or 'TAKE_PROFIT_LIMIT' or 'STOP'
@@ -5423,7 +5430,7 @@ export default class binance extends Exchange {
5423
5430
  * @method
5424
5431
  * @name binance#editOrder
5425
5432
  * @description edit a trade order
5426
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#cancel-an-existing-order-and-send-a-new-order-trade
5433
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#cancel-an-existing-order-and-send-a-new-order-trade
5427
5434
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Modify-Order
5428
5435
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Modify-Order
5429
5436
  * @param {string} id cancel order id
@@ -6114,13 +6121,13 @@ export default class binance extends Exchange {
6114
6121
  * @method
6115
6122
  * @name binance#createOrder
6116
6123
  * @description create a trade order
6117
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#new-order-trade
6118
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#test-new-order-trade
6124
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#new-order-trade
6125
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#test-new-order-trade
6119
6126
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/New-Order
6120
6127
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/New-Order
6121
6128
  * @see https://developers.binance.com/docs/derivatives/option/trade/New-Order
6122
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#sor
6123
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#test-new-order-using-sor-trade
6129
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#sor
6130
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#test-new-order-using-sor-trade
6124
6131
  * @see https://developers.binance.com/docs/derivatives/portfolio-margin/trade/New-UM-Order
6125
6132
  * @see https://developers.binance.com/docs/derivatives/portfolio-margin/trade/New-CM-Order
6126
6133
  * @see https://developers.binance.com/docs/derivatives/portfolio-margin/trade/New-Margin-Order
@@ -6145,6 +6152,7 @@ export default class binance extends Exchange {
6145
6152
  * @param {string} [params.stopLossOrTakeProfit] 'stopLoss' or 'takeProfit', required for spot trailing orders
6146
6153
  * @param {string} [params.positionSide] *swap and portfolio margin only* "BOTH" for one-way mode, "LONG" for buy side of hedged mode, "SHORT" for sell side of hedged mode
6147
6154
  * @param {bool} [params.hedged] *swap and portfolio margin only* true for hedged mode, false for one way mode, default is false
6155
+ * @param {float} [params.cost] *spot market buy only* the quote quantity that can be used as an alternative for the amount
6148
6156
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
6149
6157
  */
6150
6158
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
@@ -6551,7 +6559,7 @@ export default class binance extends Exchange {
6551
6559
  * @method
6552
6560
  * @name binance#createMarketOrderWithCost
6553
6561
  * @description create a market order by providing the symbol, side and cost
6554
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#new-order-trade
6562
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#new-order-trade
6555
6563
  * @param {string} symbol unified symbol of the market to create an order in
6556
6564
  * @param {string} side 'buy' or 'sell'
6557
6565
  * @param {float} cost how much you want to trade in units of the quote currency
@@ -6564,14 +6572,16 @@ export default class binance extends Exchange {
6564
6572
  if (!market['spot']) {
6565
6573
  throw new NotSupported(this.id + ' createMarketOrderWithCost() supports spot orders only');
6566
6574
  }
6567
- params['cost'] = cost;
6568
- return await this.createOrder(symbol, 'market', side, cost, undefined, params);
6575
+ const req = {
6576
+ 'cost': cost,
6577
+ };
6578
+ return await this.createOrder(symbol, 'market', side, 0, undefined, this.extend(req, params));
6569
6579
  }
6570
6580
  /**
6571
6581
  * @method
6572
6582
  * @name binance#createMarketBuyOrderWithCost
6573
6583
  * @description create a market buy order by providing the symbol and cost
6574
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#new-order-trade
6584
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#new-order-trade
6575
6585
  * @param {string} symbol unified symbol of the market to create an order in
6576
6586
  * @param {float} cost how much you want to trade in units of the quote currency
6577
6587
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -6583,14 +6593,16 @@ export default class binance extends Exchange {
6583
6593
  if (!market['spot']) {
6584
6594
  throw new NotSupported(this.id + ' createMarketBuyOrderWithCost() supports spot orders only');
6585
6595
  }
6586
- params['cost'] = cost;
6587
- return await this.createOrder(symbol, 'market', 'buy', cost, undefined, params);
6596
+ const req = {
6597
+ 'cost': cost,
6598
+ };
6599
+ return await this.createOrder(symbol, 'market', 'buy', 0, undefined, this.extend(req, params));
6588
6600
  }
6589
6601
  /**
6590
6602
  * @method
6591
6603
  * @name binance#createMarketSellOrderWithCost
6592
6604
  * @description create a market sell order by providing the symbol and cost
6593
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#new-order-trade
6605
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#new-order-trade
6594
6606
  * @param {string} symbol unified symbol of the market to create an order in
6595
6607
  * @param {float} cost how much you want to trade in units of the quote currency
6596
6608
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -6609,7 +6621,7 @@ export default class binance extends Exchange {
6609
6621
  * @method
6610
6622
  * @name binance#fetchOrder
6611
6623
  * @description fetches information on an order made by the user
6612
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#query-order-user_data
6624
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#query-order-user_data
6613
6625
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Query-Order
6614
6626
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Query-Order
6615
6627
  * @see https://developers.binance.com/docs/derivatives/option/trade/Query-Single-Order
@@ -6691,7 +6703,7 @@ export default class binance extends Exchange {
6691
6703
  * @method
6692
6704
  * @name binance#fetchOrders
6693
6705
  * @description fetches information on multiple orders made by the user
6694
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#all-orders-user_data
6706
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#all-orders-user_data
6695
6707
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/All-Orders
6696
6708
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/All-Orders
6697
6709
  * @see https://developers.binance.com/docs/derivatives/option/trade/Query-Option-Order-History
@@ -6970,7 +6982,7 @@ export default class binance extends Exchange {
6970
6982
  * @method
6971
6983
  * @name binance#fetchOpenOrders
6972
6984
  * @description fetch all unfilled currently open orders
6973
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#current-open-orders-user_data
6985
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#current-open-orders-user_data
6974
6986
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Current-All-Open-Orders
6975
6987
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Current-All-Open-Orders
6976
6988
  * @see https://developers.binance.com/docs/derivatives/option/trade/Query-Current-Open-Option-Orders
@@ -7292,7 +7304,7 @@ export default class binance extends Exchange {
7292
7304
  * @method
7293
7305
  * @name binance#fetchClosedOrders
7294
7306
  * @description fetches information on multiple closed orders made by the user
7295
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#all-orders-user_data
7307
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#all-orders-user_data
7296
7308
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/All-Orders
7297
7309
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/All-Orders
7298
7310
  * @see https://developers.binance.com/docs/derivatives/option/trade/Query-Option-Order-History
@@ -7322,7 +7334,7 @@ export default class binance extends Exchange {
7322
7334
  * @method
7323
7335
  * @name binance#fetchCanceledOrders
7324
7336
  * @description fetches information on multiple canceled orders made by the user
7325
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#all-orders-user_data
7337
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#all-orders-user_data
7326
7338
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/All-Orders
7327
7339
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/All-Orders
7328
7340
  * @see https://developers.binance.com/docs/derivatives/option/trade/Query-Option-Order-History
@@ -7352,7 +7364,7 @@ export default class binance extends Exchange {
7352
7364
  * @method
7353
7365
  * @name binance#fetchCanceledAndClosedOrders
7354
7366
  * @description fetches information on multiple canceled orders made by the user
7355
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#all-orders-user_data
7367
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#all-orders-user_data
7356
7368
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/All-Orders
7357
7369
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/All-Orders
7358
7370
  * @see https://developers.binance.com/docs/derivatives/option/trade/Query-Option-Order-History
@@ -7385,7 +7397,7 @@ export default class binance extends Exchange {
7385
7397
  * @method
7386
7398
  * @name binance#cancelOrder
7387
7399
  * @description cancels an open order
7388
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#cancel-order-trade
7400
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#cancel-order-trade
7389
7401
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-Order
7390
7402
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Cancel-Order
7391
7403
  * @see https://developers.binance.com/docs/derivatives/option/trade/Cancel-Option-Order
@@ -7491,7 +7503,7 @@ export default class binance extends Exchange {
7491
7503
  * @method
7492
7504
  * @name binance#cancelAllOrders
7493
7505
  * @description cancel all open orders in a market
7494
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#cancel-all-open-orders-on-a-symbol-trade
7506
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#cancel-all-open-orders-on-a-symbol-trade
7495
7507
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Cancel-All-Open-Orders
7496
7508
  * @see https://developers.binance.com/docs/derivatives/option/trade/Cancel-all-Option-orders-on-specific-symbol
7497
7509
  * @see https://developers.binance.com/docs/margin_trading/trade/Margin-Account-Cancel-All-Open-Orders
@@ -7739,7 +7751,7 @@ export default class binance extends Exchange {
7739
7751
  * @method
7740
7752
  * @name binance#fetchOrderTrades
7741
7753
  * @description fetch all the trades made from a single order
7742
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#account-trade-list-user_data
7754
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#account-trade-list-user_data
7743
7755
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Account-Trade-List
7744
7756
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Account-Trade-List
7745
7757
  * @see https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Trade-List
@@ -7770,7 +7782,7 @@ export default class binance extends Exchange {
7770
7782
  * @method
7771
7783
  * @name binance#fetchMyTrades
7772
7784
  * @description fetch all trades made by the user
7773
- * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api#account-trade-list-user_data
7785
+ * @see https://developers.binance.com/docs/binance-spot-api-docs/rest-api/public-api-endpoints#account-trade-list-user_data
7774
7786
  * @see https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api/Account-Trade-List
7775
7787
  * @see https://developers.binance.com/docs/derivatives/coin-margined-futures/trade/Account-Trade-List
7776
7788
  * @see https://developers.binance.com/docs/margin_trading/trade/Query-Margin-Account-Trade-List
@@ -11836,7 +11848,7 @@ export default class binance extends Exchange {
11836
11848
  throw new AuthenticationError(this.id + ' userDataStream endpoint requires `apiKey` credential');
11837
11849
  }
11838
11850
  }
11839
- else if ((api === 'private') || (api === 'eapiPrivate') || (api === 'sapi' && path !== 'system/status') || (api === 'sapiV2') || (api === 'sapiV3') || (api === 'sapiV4') || (api === 'dapiPrivate') || (api === 'dapiPrivateV2') || (api === 'fapiPrivate') || (api === 'fapiPrivateV2') || (api === 'fapiPrivateV3') || (api === 'papi' && path !== 'ping')) {
11851
+ else if ((api === 'private') || (api === 'eapiPrivate') || (api === 'sapi' && path !== 'system/status') || (api === 'sapiV2') || (api === 'sapiV3') || (api === 'sapiV4') || (api === 'dapiPrivate') || (api === 'dapiPrivateV2') || (api === 'fapiPrivate') || (api === 'fapiPrivateV2') || (api === 'fapiPrivateV3') || (api === 'papi' && path !== 'ping') || (api === 'papiV2')) {
11840
11852
  this.checkRequiredCredentials();
11841
11853
  if (method === 'POST' && ((path === 'order') || (path === 'sor/order'))) {
11842
11854
  // inject in implicit API calls
package/js/src/bingx.js CHANGED
@@ -387,12 +387,26 @@ export default class bingx extends Exchange {
387
387
  'get': {
388
388
  'uid': 1,
389
389
  'apiKey/query': 2,
390
+ 'account/apiPermissions': 5,
390
391
  },
391
392
  'post': {
392
393
  'innerTransfer/authorizeSubAccount': 1,
393
394
  },
394
395
  },
395
396
  },
397
+ 'transfer': {
398
+ 'v1': {
399
+ 'private': {
400
+ 'get': {
401
+ 'subAccount/asset/transferHistory': 1,
402
+ },
403
+ 'post': {
404
+ 'subAccount/transferAsset/supportCoins': 1,
405
+ 'subAccount/transferAsset': 1,
406
+ },
407
+ },
408
+ },
409
+ },
396
410
  },
397
411
  'user': {
398
412
  'auth': {
@@ -549,6 +563,11 @@ export default class bingx extends Exchange {
549
563
  },
550
564
  'hedged': true,
551
565
  'trailing': true,
566
+ 'leverage': false,
567
+ 'marketBuyRequiresPrice': false,
568
+ 'marketBuyByCost': true,
569
+ 'selfTradePrevention': false,
570
+ 'iceberg': false,
552
571
  },
553
572
  'createOrders': {
554
573
  'max': 5,
@@ -6432,23 +6451,29 @@ export default class bingx extends Exchange {
6432
6451
  };
6433
6452
  }
6434
6453
  sign(path, section = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
6435
- const type = section[0];
6436
- const version = section[1];
6437
- const access = section[2];
6454
+ let type = section[0];
6455
+ let version = section[1];
6456
+ let access = section[2];
6438
6457
  const isSandbox = this.safeBool(this.options, 'sandboxMode', false);
6439
6458
  if (isSandbox && (type !== 'swap')) {
6440
6459
  throw new NotSupported(this.id + ' does not have a testnet/sandbox URL for ' + type + ' endpoints');
6441
6460
  }
6442
6461
  let url = this.implodeHostname(this.urls['api'][type]);
6443
- if (type === 'spot' && version === 'v3') {
6444
- url += '/api';
6445
- }
6446
- else {
6447
- url += '/' + type;
6448
- }
6449
- url += '/' + version + '/';
6450
6462
  path = this.implodeParams(path, params);
6451
- url += path;
6463
+ if (version === 'transfer') {
6464
+ type = 'account/transfer';
6465
+ version = section[2];
6466
+ access = section[3];
6467
+ }
6468
+ if (path !== 'account/apiPermissions') {
6469
+ if (type === 'spot' && version === 'v3') {
6470
+ url += '/api';
6471
+ }
6472
+ else {
6473
+ url += '/' + type;
6474
+ }
6475
+ }
6476
+ url += '/' + version + '/' + path;
6452
6477
  params = this.omit(params, this.extractParams(path));
6453
6478
  params['timestamp'] = this.nonce();
6454
6479
  params = this.keysort(params);
@@ -6459,7 +6484,7 @@ export default class bingx extends Exchange {
6459
6484
  }
6460
6485
  else if (access === 'private') {
6461
6486
  this.checkRequiredCredentials();
6462
- const isJsonContentType = ((type === 'subAccount') && (method === 'POST'));
6487
+ const isJsonContentType = (((type === 'subAccount') || (type === 'account/transfer')) && (method === 'POST'));
6463
6488
  const parsedParams = this.parseParams(params);
6464
6489
  const signature = this.hmac(this.encode(this.rawencode(parsedParams)), this.encode(this.secret), sha256);
6465
6490
  headers = {
@@ -423,8 +423,12 @@ export default class bitfinex extends Exchange {
423
423
  'GTD': false,
424
424
  },
425
425
  'hedged': false,
426
- 'trailing': true, // todo: unify
427
- // todo: leverage unify
426
+ 'trailing': true,
427
+ 'leverage': true,
428
+ 'marketBuyRequiresPrice': false,
429
+ 'marketBuyByCost': true,
430
+ 'selfTradePrevention': false,
431
+ 'iceberg': false,
428
432
  },
429
433
  'createOrders': {
430
434
  'max': 75,
package/js/src/bitget.js CHANGED
@@ -7044,8 +7044,10 @@ export default class bitget extends Exchange {
7044
7044
  // },
7045
7045
  // ]
7046
7046
  // }
7047
+ symbols = this.marketSymbols(symbols);
7047
7048
  const data = this.safeList(response, 'data', []);
7048
- return this.parseFundingRates(data, market);
7049
+ const result = this.parseFundingRates(data, market);
7050
+ return this.filterByArray(result, 'symbol', symbols);
7049
7051
  }
7050
7052
  parseFundingRate(contract, market = undefined) {
7051
7053
  //
package/js/src/bitmart.js CHANGED
@@ -710,14 +710,11 @@ export default class bitmart extends Exchange {
710
710
  },
711
711
  'hedged': false,
712
712
  'trailing': false,
713
- 'marketBuyRequiresPrice': true,
713
+ 'marketBuyRequiresPrice': false,
714
714
  'marketBuyByCost': true,
715
- // exchange-supported features
716
- // 'leverage': true,
717
- // 'selfTradePrevention': false,
718
- // 'twap': false,
719
- // 'iceberg': false,
720
- // 'oco': false,
715
+ 'leverage': true,
716
+ 'selfTradePrevention': false,
717
+ 'iceberg': false,
721
718
  },
722
719
  'createOrders': {
723
720
  'max': 10,
package/js/src/bitmex.js CHANGED
@@ -302,11 +302,9 @@ export default class bitmex extends Exchange {
302
302
  'trailing': true,
303
303
  'marketBuyRequiresPrice': false,
304
304
  'marketBuyByCost': false,
305
- // exchange-supported features
306
- // 'selfTradePrevention': true,
307
- // 'twap': false,
308
- // 'iceberg': false,
309
- // 'oco': false,
305
+ 'leverage': false,
306
+ 'selfTradePrevention': false,
307
+ 'iceberg': true, // todo
310
308
  },
311
309
  'createOrders': undefined,
312
310
  'fetchMyTrades': {
@@ -155,6 +155,7 @@ export default class bitstamp extends Exchange {
155
155
  'user_transactions/': 1,
156
156
  'user_transactions/{pair}/': 1,
157
157
  'crypto-transactions/': 1,
158
+ 'open_order': 1,
158
159
  'open_orders/all/': 1,
159
160
  'open_orders/{pair}/': 1,
160
161
  'order_status/': 1,
@@ -495,6 +496,64 @@ export default class bitstamp extends Exchange {
495
496
  'Ensure that there are no more than': InvalidOrder, // {"status": "error", "reason": {"amount": ["Ensure that there are no more than 0 decimal places."], "__all__": [""]}}
496
497
  },
497
498
  },
499
+ 'features': {
500
+ 'spot': {
501
+ 'sandbox': false,
502
+ 'createOrder': {
503
+ 'marginMode': false,
504
+ 'triggerPrice': false,
505
+ 'triggerPriceType': undefined,
506
+ 'triggerDirection': false,
507
+ 'stopLossPrice': false,
508
+ 'takeProfitPrice': false,
509
+ 'attachedStopLossTakeProfit': undefined,
510
+ 'timeInForce': {
511
+ 'IOC': true,
512
+ 'FOK': true,
513
+ 'PO': true,
514
+ 'GTD': true,
515
+ },
516
+ 'hedged': false,
517
+ 'trailing': false,
518
+ 'leverage': false,
519
+ 'marketBuyByCost': false,
520
+ 'marketBuyRequiresPrice': false,
521
+ 'selfTradePrevention': false,
522
+ 'iceberg': false,
523
+ },
524
+ 'createOrders': undefined,
525
+ 'fetchMyTrades': {
526
+ 'marginMode': false,
527
+ 'limit': 1000,
528
+ 'daysBack': undefined,
529
+ 'untilDays': 30,
530
+ },
531
+ 'fetchOrder': {
532
+ 'marginMode': false,
533
+ 'trigger': false,
534
+ 'trailing': false,
535
+ },
536
+ 'fetchOpenOrders': {
537
+ 'marginMode': false,
538
+ 'limit': undefined,
539
+ 'trigger': false,
540
+ 'trailing': false,
541
+ },
542
+ 'fetchOrders': undefined,
543
+ 'fetchClosedOrders': undefined,
544
+ 'fetchOHLCV': {
545
+ 'limit': 1000,
546
+ },
547
+ },
548
+ 'swap': {
549
+ 'linear': undefined,
550
+ 'inverse': undefined,
551
+ },
552
+ 'future': {
553
+ 'linear': undefined,
554
+ 'inverse': undefined,
555
+ },
556
+ },
498
557
  });
499
558
  }
500
559
  /**