ccxt 4.5.36 → 4.5.37

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 (554) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +18 -20
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/base/Exchange.js +3 -0
  5. package/dist/cjs/src/bybit.js +1 -0
  6. package/dist/cjs/src/htx.js +67 -12
  7. package/dist/cjs/src/hyperliquid.js +245 -1
  8. package/dist/cjs/src/krakenfutures.js +5 -5
  9. package/dist/cjs/src/kucoin.js +43 -4
  10. package/dist/cjs/src/mexc.js +2 -2
  11. package/dist/cjs/src/whitebit.js +1 -1
  12. package/js/ccxt.d.ts +1 -1
  13. package/js/ccxt.js +1 -7
  14. package/js/src/abstract/alp.js +0 -6
  15. package/js/src/abstract/alpaca.js +0 -6
  16. package/js/src/abstract/apex.js +0 -6
  17. package/js/src/abstract/arkham.js +0 -6
  18. package/js/src/abstract/ascendex.js +0 -6
  19. package/js/src/abstract/aster.js +0 -6
  20. package/js/src/abstract/backpack.js +0 -6
  21. package/js/src/abstract/bequant.js +0 -6
  22. package/js/src/abstract/bigone.js +0 -6
  23. package/js/src/abstract/binance.js +0 -6
  24. package/js/src/abstract/binancecoinm.js +0 -6
  25. package/js/src/abstract/binanceus.js +0 -6
  26. package/js/src/abstract/binanceusdm.js +0 -6
  27. package/js/src/abstract/bingx.js +0 -6
  28. package/js/src/abstract/bit2c.js +0 -6
  29. package/js/src/abstract/bitbank.js +0 -6
  30. package/js/src/abstract/bitbns.js +0 -6
  31. package/js/src/abstract/bitfinex.js +0 -6
  32. package/js/src/abstract/bitflyer.js +0 -6
  33. package/js/src/abstract/bitget.js +0 -6
  34. package/js/src/abstract/bithumb.js +0 -6
  35. package/js/src/abstract/bitmart.js +0 -6
  36. package/js/src/abstract/bitmex.js +0 -6
  37. package/js/src/abstract/bitopro.js +0 -6
  38. package/js/src/abstract/bitrue.js +0 -6
  39. package/js/src/abstract/bitso.js +0 -6
  40. package/js/src/abstract/bitstamp.js +0 -6
  41. package/js/src/abstract/bitteam.js +0 -6
  42. package/js/src/abstract/bittrade.js +0 -6
  43. package/js/src/abstract/bitvavo.js +0 -6
  44. package/js/src/abstract/blockchaincom.js +0 -6
  45. package/js/src/abstract/blofin.js +0 -6
  46. package/js/src/abstract/btcbox.js +0 -6
  47. package/js/src/abstract/btcmarkets.js +0 -6
  48. package/js/src/abstract/btcturk.js +0 -6
  49. package/js/src/abstract/bullish.js +0 -6
  50. package/js/src/abstract/bybit.d.ts +1 -0
  51. package/js/src/abstract/bybit.js +0 -6
  52. package/js/src/abstract/bydfi.js +0 -6
  53. package/js/src/abstract/cex.js +0 -6
  54. package/js/src/abstract/coinbase.js +0 -6
  55. package/js/src/abstract/coinbaseadvanced.js +0 -6
  56. package/js/src/abstract/coinbaseexchange.js +0 -6
  57. package/js/src/abstract/coinbaseinternational.js +0 -6
  58. package/js/src/abstract/coincatch.js +0 -6
  59. package/js/src/abstract/coincheck.js +0 -6
  60. package/js/src/abstract/coinex.js +0 -6
  61. package/js/src/abstract/coinmate.js +0 -6
  62. package/js/src/abstract/coinmetro.js +0 -6
  63. package/js/src/abstract/coinone.js +0 -6
  64. package/js/src/abstract/coinsph.js +0 -6
  65. package/js/src/abstract/coinspot.js +0 -6
  66. package/js/src/abstract/cryptocom.js +0 -6
  67. package/js/src/abstract/cryptomus.js +0 -6
  68. package/js/src/abstract/deepcoin.js +0 -6
  69. package/js/src/abstract/defx.js +0 -6
  70. package/js/src/abstract/delta.js +0 -6
  71. package/js/src/abstract/deribit.js +0 -6
  72. package/js/src/abstract/derive.js +0 -6
  73. package/js/src/abstract/digifinex.js +0 -6
  74. package/js/src/abstract/dydx.js +0 -6
  75. package/js/src/abstract/exmo.js +0 -6
  76. package/js/src/abstract/fmfwio.js +0 -6
  77. package/js/src/abstract/foxbit.js +0 -6
  78. package/js/src/abstract/gate.js +0 -6
  79. package/js/src/abstract/gateio.js +0 -6
  80. package/js/src/abstract/gemini.js +0 -6
  81. package/js/src/abstract/hashkey.js +0 -6
  82. package/js/src/abstract/hibachi.js +0 -6
  83. package/js/src/abstract/hitbtc.js +0 -6
  84. package/js/src/abstract/hollaex.js +0 -6
  85. package/js/src/abstract/htx.js +0 -6
  86. package/js/src/abstract/huobi.js +0 -6
  87. package/js/src/abstract/hyperliquid.js +0 -6
  88. package/js/src/abstract/independentreserve.js +0 -6
  89. package/js/src/abstract/indodax.js +0 -6
  90. package/js/src/abstract/kraken.js +0 -6
  91. package/js/src/abstract/krakenfutures.js +0 -6
  92. package/js/src/abstract/kucoin.d.ts +33 -1
  93. package/js/src/abstract/kucoin.js +0 -6
  94. package/js/src/abstract/kucoinfutures.d.ts +33 -1
  95. package/js/src/abstract/kucoinfutures.js +0 -6
  96. package/js/src/abstract/latoken.js +0 -6
  97. package/js/src/abstract/lbank.js +0 -6
  98. package/js/src/abstract/luno.js +0 -6
  99. package/js/src/abstract/mercado.js +0 -6
  100. package/js/src/abstract/mexc.js +0 -6
  101. package/js/src/abstract/modetrade.js +0 -6
  102. package/js/src/abstract/myokx.js +0 -6
  103. package/js/src/abstract/ndax.js +0 -6
  104. package/js/src/abstract/novadax.js +0 -6
  105. package/js/src/abstract/okx.js +0 -6
  106. package/js/src/abstract/okxus.js +0 -6
  107. package/js/src/abstract/onetrading.js +0 -6
  108. package/js/src/abstract/oxfun.js +0 -6
  109. package/js/src/abstract/p2b.js +0 -6
  110. package/js/src/abstract/paradex.js +0 -6
  111. package/js/src/abstract/paymium.js +0 -6
  112. package/js/src/abstract/phemex.js +0 -6
  113. package/js/src/abstract/poloniex.js +0 -6
  114. package/js/src/abstract/probit.js +0 -6
  115. package/js/src/abstract/timex.js +0 -6
  116. package/js/src/abstract/tokocrypto.js +0 -6
  117. package/js/src/abstract/toobit.js +0 -6
  118. package/js/src/abstract/upbit.js +0 -6
  119. package/js/src/abstract/wavesexchange.js +0 -6
  120. package/js/src/abstract/whitebit.js +0 -6
  121. package/js/src/abstract/woo.js +0 -6
  122. package/js/src/abstract/woofipro.js +0 -6
  123. package/js/src/abstract/xt.js +0 -6
  124. package/js/src/abstract/yobit.js +0 -6
  125. package/js/src/abstract/zaif.js +0 -6
  126. package/js/src/abstract/zebpay.js +0 -6
  127. package/js/src/abstract/zonda.js +0 -6
  128. package/js/src/alp.js +0 -6
  129. package/js/src/alpaca.js +0 -6
  130. package/js/src/apex.js +0 -6
  131. package/js/src/arkham.js +0 -6
  132. package/js/src/ascendex.js +0 -6
  133. package/js/src/aster.js +0 -6
  134. package/js/src/backpack.js +0 -6
  135. package/js/src/base/Exchange.d.ts +3 -2
  136. package/js/src/base/Exchange.js +3 -6
  137. package/js/src/base/Precise.js +0 -6
  138. package/js/src/base/errorHierarchy.js +0 -6
  139. package/js/src/base/errors.js +0 -6
  140. package/js/src/base/functions/crypto.js +0 -6
  141. package/js/src/base/functions/encode.js +0 -6
  142. package/js/src/base/functions/generic.js +0 -6
  143. package/js/src/base/functions/misc.js +0 -6
  144. package/js/src/base/functions/number.js +0 -6
  145. package/js/src/base/functions/platform.js +0 -6
  146. package/js/src/base/functions/rsa.js +0 -6
  147. package/js/src/base/functions/string.js +0 -6
  148. package/js/src/base/functions/throttle.js +0 -6
  149. package/js/src/base/functions/time.js +0 -6
  150. package/js/src/base/functions/totp.js +0 -6
  151. package/js/src/base/functions/type.js +0 -6
  152. package/js/src/base/functions.js +0 -6
  153. package/js/src/base/types.js +0 -6
  154. package/js/src/base/ws/Cache.js +0 -6
  155. package/js/src/base/ws/Client.js +0 -6
  156. package/js/src/base/ws/Future.js +0 -6
  157. package/js/src/base/ws/OrderBook.js +0 -6
  158. package/js/src/base/ws/OrderBookSide.js +0 -6
  159. package/js/src/base/ws/WsClient.js +0 -6
  160. package/js/src/base/ws/functions.js +0 -6
  161. package/js/src/bequant.js +0 -6
  162. package/js/src/bigone.js +0 -6
  163. package/js/src/binance.js +0 -6
  164. package/js/src/binancecoinm.js +0 -6
  165. package/js/src/binanceus.js +0 -6
  166. package/js/src/binanceusdm.js +0 -6
  167. package/js/src/bingx.js +0 -6
  168. package/js/src/bit2c.js +0 -6
  169. package/js/src/bitbank.js +0 -6
  170. package/js/src/bitbns.js +0 -6
  171. package/js/src/bitfinex.js +0 -6
  172. package/js/src/bitflyer.js +0 -6
  173. package/js/src/bitget.js +0 -6
  174. package/js/src/bithumb.js +0 -6
  175. package/js/src/bitmart.js +0 -6
  176. package/js/src/bitmex.js +0 -6
  177. package/js/src/bitopro.js +0 -6
  178. package/js/src/bitrue.js +0 -6
  179. package/js/src/bitso.js +0 -6
  180. package/js/src/bitstamp.js +0 -6
  181. package/js/src/bitteam.js +0 -6
  182. package/js/src/bittrade.js +0 -6
  183. package/js/src/bitvavo.js +0 -6
  184. package/js/src/blockchaincom.js +0 -6
  185. package/js/src/blofin.js +0 -6
  186. package/js/src/btcbox.js +0 -6
  187. package/js/src/btcmarkets.js +0 -6
  188. package/js/src/btcturk.js +0 -6
  189. package/js/src/bullish.js +0 -6
  190. package/js/src/bybit.js +1 -6
  191. package/js/src/bydfi.js +0 -6
  192. package/js/src/cex.js +0 -6
  193. package/js/src/coinbase.js +0 -6
  194. package/js/src/coinbaseadvanced.js +0 -6
  195. package/js/src/coinbaseexchange.d.ts +1 -1
  196. package/js/src/coinbaseexchange.js +0 -6
  197. package/js/src/coinbaseinternational.js +0 -6
  198. package/js/src/coincatch.js +0 -6
  199. package/js/src/coincheck.js +0 -6
  200. package/js/src/coinex.js +0 -6
  201. package/js/src/coinmate.js +0 -6
  202. package/js/src/coinmetro.js +0 -6
  203. package/js/src/coinone.js +0 -6
  204. package/js/src/coinsph.js +0 -6
  205. package/js/src/coinspot.js +0 -6
  206. package/js/src/cryptocom.js +0 -6
  207. package/js/src/cryptomus.js +0 -6
  208. package/js/src/deepcoin.js +0 -6
  209. package/js/src/defx.js +0 -6
  210. package/js/src/delta.js +0 -6
  211. package/js/src/deribit.js +0 -6
  212. package/js/src/derive.js +0 -6
  213. package/js/src/digifinex.js +0 -6
  214. package/js/src/dydx.js +0 -6
  215. package/js/src/exmo.js +0 -6
  216. package/js/src/fmfwio.js +0 -6
  217. package/js/src/foxbit.js +0 -6
  218. package/js/src/gate.js +0 -6
  219. package/js/src/gateio.js +0 -6
  220. package/js/src/gemini.js +0 -6
  221. package/js/src/hashkey.js +0 -6
  222. package/js/src/hibachi.js +0 -6
  223. package/js/src/hitbtc.js +0 -6
  224. package/js/src/hollaex.js +0 -6
  225. package/js/src/htx.d.ts +5 -2
  226. package/js/src/htx.js +67 -18
  227. package/js/src/huobi.js +0 -6
  228. package/js/src/hyperliquid.d.ts +64 -0
  229. package/js/src/hyperliquid.js +246 -8
  230. package/js/src/independentreserve.js +0 -6
  231. package/js/src/indodax.js +0 -6
  232. package/js/src/kraken.js +0 -6
  233. package/js/src/krakenfutures.js +5 -11
  234. package/js/src/kucoin.js +43 -10
  235. package/js/src/kucoinfutures.js +0 -6
  236. package/js/src/latoken.js +0 -6
  237. package/js/src/lbank.js +0 -6
  238. package/js/src/luno.js +0 -6
  239. package/js/src/mercado.js +0 -6
  240. package/js/src/mexc.js +2 -8
  241. package/js/src/modetrade.js +0 -6
  242. package/js/src/myokx.js +0 -6
  243. package/js/src/ndax.js +0 -6
  244. package/js/src/novadax.js +0 -6
  245. package/js/src/okx.js +0 -6
  246. package/js/src/okxus.js +0 -6
  247. package/js/src/onetrading.js +0 -6
  248. package/js/src/oxfun.js +0 -6
  249. package/js/src/p2b.js +0 -6
  250. package/js/src/paradex.js +0 -6
  251. package/js/src/paymium.js +0 -6
  252. package/js/src/phemex.js +0 -6
  253. package/js/src/poloniex.js +0 -6
  254. package/js/src/pro/alpaca.js +0 -6
  255. package/js/src/pro/apex.js +0 -6
  256. package/js/src/pro/arkham.js +0 -6
  257. package/js/src/pro/ascendex.js +0 -6
  258. package/js/src/pro/aster.js +0 -6
  259. package/js/src/pro/backpack.js +0 -6
  260. package/js/src/pro/bequant.js +0 -6
  261. package/js/src/pro/binance.js +0 -6
  262. package/js/src/pro/binancecoinm.js +0 -6
  263. package/js/src/pro/binanceus.js +0 -6
  264. package/js/src/pro/binanceusdm.js +0 -6
  265. package/js/src/pro/bingx.js +0 -6
  266. package/js/src/pro/bitfinex.js +0 -6
  267. package/js/src/pro/bitget.js +0 -6
  268. package/js/src/pro/bithumb.js +0 -6
  269. package/js/src/pro/bitmart.js +0 -6
  270. package/js/src/pro/bitmex.js +0 -6
  271. package/js/src/pro/bitopro.js +0 -6
  272. package/js/src/pro/bitrue.js +0 -6
  273. package/js/src/pro/bitstamp.js +0 -6
  274. package/js/src/pro/bittrade.js +0 -6
  275. package/js/src/pro/bitvavo.js +0 -6
  276. package/js/src/pro/blockchaincom.js +0 -6
  277. package/js/src/pro/blofin.js +0 -6
  278. package/js/src/pro/bullish.js +0 -6
  279. package/js/src/pro/bybit.js +0 -6
  280. package/js/src/pro/bydfi.js +0 -6
  281. package/js/src/pro/cex.js +0 -6
  282. package/js/src/pro/coinbase.js +0 -6
  283. package/js/src/pro/coinbaseadvanced.js +0 -6
  284. package/js/src/pro/coinbaseexchange.js +0 -6
  285. package/js/src/pro/coinbaseinternational.js +0 -6
  286. package/js/src/pro/coincatch.js +0 -6
  287. package/js/src/pro/coincheck.js +0 -6
  288. package/js/src/pro/coinex.js +0 -6
  289. package/js/src/pro/coinone.js +0 -6
  290. package/js/src/pro/cryptocom.js +0 -6
  291. package/js/src/pro/deepcoin.js +0 -6
  292. package/js/src/pro/defx.js +0 -6
  293. package/js/src/pro/deribit.js +0 -6
  294. package/js/src/pro/derive.js +0 -6
  295. package/js/src/pro/dydx.js +0 -6
  296. package/js/src/pro/exmo.js +0 -6
  297. package/js/src/pro/gate.js +0 -6
  298. package/js/src/pro/gateio.js +0 -6
  299. package/js/src/pro/gemini.js +0 -6
  300. package/js/src/pro/hashkey.js +0 -6
  301. package/js/src/pro/hitbtc.js +0 -6
  302. package/js/src/pro/hollaex.js +0 -6
  303. package/js/src/pro/htx.js +0 -6
  304. package/js/src/pro/huobi.js +0 -6
  305. package/js/src/pro/hyperliquid.js +0 -6
  306. package/js/src/pro/independentreserve.js +0 -6
  307. package/js/src/pro/kraken.js +0 -6
  308. package/js/src/pro/krakenfutures.js +0 -6
  309. package/js/src/pro/kucoin.js +0 -6
  310. package/js/src/pro/kucoinfutures.js +0 -6
  311. package/js/src/pro/lbank.js +0 -6
  312. package/js/src/pro/luno.js +0 -6
  313. package/js/src/pro/mexc.js +0 -6
  314. package/js/src/pro/modetrade.js +0 -6
  315. package/js/src/pro/myokx.js +0 -6
  316. package/js/src/pro/ndax.js +0 -6
  317. package/js/src/pro/okx.js +0 -6
  318. package/js/src/pro/okxus.js +0 -6
  319. package/js/src/pro/onetrading.js +0 -6
  320. package/js/src/pro/oxfun.js +0 -6
  321. package/js/src/pro/p2b.js +0 -6
  322. package/js/src/pro/paradex.js +0 -6
  323. package/js/src/pro/phemex.js +0 -6
  324. package/js/src/pro/poloniex.js +0 -6
  325. package/js/src/pro/probit.js +0 -6
  326. package/js/src/pro/toobit.js +0 -6
  327. package/js/src/pro/upbit.js +0 -6
  328. package/js/src/pro/whitebit.js +0 -6
  329. package/js/src/pro/woo.js +0 -6
  330. package/js/src/pro/woofipro.js +0 -6
  331. package/js/src/pro/xt.js +0 -6
  332. package/js/src/probit.js +0 -6
  333. package/js/src/protobuf/mexc/compiled.cjs +0 -6
  334. package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -6
  335. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +0 -6
  336. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -6
  337. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -6
  338. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -6
  339. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -6
  340. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -6
  341. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +0 -6
  342. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -6
  343. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +0 -6
  344. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +0 -6
  345. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +0 -6
  346. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +0 -6
  347. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +0 -6
  348. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -6
  349. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -6
  350. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -6
  351. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -6
  352. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -6
  353. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +0 -6
  354. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +0 -6
  355. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -6
  356. package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -6
  357. package/js/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
  358. package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +0 -6
  359. package/js/src/static_dependencies/dydx-v4-client/onboarding.js +0 -6
  360. package/js/src/static_dependencies/dydx-v4-client/registry.js +0 -6
  361. package/js/src/static_dependencies/ethers/abi-coder.js +0 -6
  362. package/js/src/static_dependencies/ethers/address/address.js +0 -6
  363. package/js/src/static_dependencies/ethers/address/checks.js +0 -6
  364. package/js/src/static_dependencies/ethers/address/contract-address.js +0 -6
  365. package/js/src/static_dependencies/ethers/address/index.js +0 -6
  366. package/js/src/static_dependencies/ethers/bytes32.js +0 -6
  367. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
  368. package/js/src/static_dependencies/ethers/coders/address.js +0 -6
  369. package/js/src/static_dependencies/ethers/coders/anonymous.js +0 -6
  370. package/js/src/static_dependencies/ethers/coders/array.js +0 -6
  371. package/js/src/static_dependencies/ethers/coders/boolean.js +0 -6
  372. package/js/src/static_dependencies/ethers/coders/bytes.js +0 -6
  373. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -6
  374. package/js/src/static_dependencies/ethers/coders/null.js +0 -6
  375. package/js/src/static_dependencies/ethers/coders/number.js +0 -6
  376. package/js/src/static_dependencies/ethers/coders/string.js +0 -6
  377. package/js/src/static_dependencies/ethers/coders/tuple.js +0 -6
  378. package/js/src/static_dependencies/ethers/fragments.js +0 -6
  379. package/js/src/static_dependencies/ethers/hash/index.js +0 -6
  380. package/js/src/static_dependencies/ethers/hash/solidity.js +0 -6
  381. package/js/src/static_dependencies/ethers/hash/typed-data.js +0 -6
  382. package/js/src/static_dependencies/ethers/index.js +0 -6
  383. package/js/src/static_dependencies/ethers/interface.js +0 -6
  384. package/js/src/static_dependencies/ethers/typed.js +0 -6
  385. package/js/src/static_dependencies/ethers/utils/base58.js +0 -6
  386. package/js/src/static_dependencies/ethers/utils/base64-browser.js +0 -6
  387. package/js/src/static_dependencies/ethers/utils/base64.js +0 -6
  388. package/js/src/static_dependencies/ethers/utils/data.js +0 -6
  389. package/js/src/static_dependencies/ethers/utils/errors.js +0 -6
  390. package/js/src/static_dependencies/ethers/utils/events.js +0 -6
  391. package/js/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
  392. package/js/src/static_dependencies/ethers/utils/index.js +0 -6
  393. package/js/src/static_dependencies/ethers/utils/maths.js +0 -6
  394. package/js/src/static_dependencies/ethers/utils/properties.js +0 -6
  395. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +0 -6
  396. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +0 -6
  397. package/js/src/static_dependencies/ethers/utils/rlp.js +0 -6
  398. package/js/src/static_dependencies/ethers/utils/units.js +0 -6
  399. package/js/src/static_dependencies/ethers/utils/utf8.js +0 -6
  400. package/js/src/static_dependencies/ethers/utils/uuid.js +0 -6
  401. package/js/src/static_dependencies/fflake/browser.d.ts +5 -5
  402. package/js/src/static_dependencies/fflake/browser.js +0 -6
  403. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -6
  404. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -6
  405. package/js/src/static_dependencies/jsencrypt/index.js +0 -6
  406. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -6
  407. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
  408. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
  409. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
  410. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +0 -6
  411. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -6
  412. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  413. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -6
  414. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
  415. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -6
  416. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -6
  417. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
  418. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -6
  419. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
  420. package/js/src/static_dependencies/messagepack/msgpack.js +0 -6
  421. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -6
  422. package/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -6
  423. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -6
  424. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -6
  425. package/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -6
  426. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -6
  427. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +0 -6
  428. package/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
  429. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +1 -0
  430. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -6
  431. package/js/src/static_dependencies/noble-curves/bn.js +0 -6
  432. package/js/src/static_dependencies/noble-curves/ed25519.js +0 -6
  433. package/js/src/static_dependencies/noble-curves/ed448.js +0 -6
  434. package/js/src/static_dependencies/noble-curves/index.js +0 -6
  435. package/js/src/static_dependencies/noble-curves/jubjub.js +0 -6
  436. package/js/src/static_dependencies/noble-curves/p256.js +0 -6
  437. package/js/src/static_dependencies/noble-curves/p384.js +0 -6
  438. package/js/src/static_dependencies/noble-curves/p521.js +0 -6
  439. package/js/src/static_dependencies/noble-curves/pasta.js +0 -6
  440. package/js/src/static_dependencies/noble-curves/secp256k1.js +0 -6
  441. package/js/src/static_dependencies/noble-hashes/_assert.js +0 -6
  442. package/js/src/static_dependencies/noble-hashes/_blake2.js +0 -6
  443. package/js/src/static_dependencies/noble-hashes/_sha2.js +0 -6
  444. package/js/src/static_dependencies/noble-hashes/_u64.js +0 -6
  445. package/js/src/static_dependencies/noble-hashes/argon2.js +0 -6
  446. package/js/src/static_dependencies/noble-hashes/blake2b.js +0 -6
  447. package/js/src/static_dependencies/noble-hashes/blake2s.js +0 -6
  448. package/js/src/static_dependencies/noble-hashes/blake3.js +0 -6
  449. package/js/src/static_dependencies/noble-hashes/crypto.js +0 -6
  450. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +0 -6
  451. package/js/src/static_dependencies/noble-hashes/eskdf.js +0 -6
  452. package/js/src/static_dependencies/noble-hashes/hkdf.js +0 -6
  453. package/js/src/static_dependencies/noble-hashes/hmac.js +0 -6
  454. package/js/src/static_dependencies/noble-hashes/index.js +0 -6
  455. package/js/src/static_dependencies/noble-hashes/md5.js +0 -6
  456. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +0 -6
  457. package/js/src/static_dependencies/noble-hashes/ripemd160.js +0 -6
  458. package/js/src/static_dependencies/noble-hashes/scrypt.js +0 -6
  459. package/js/src/static_dependencies/noble-hashes/sha1.js +0 -6
  460. package/js/src/static_dependencies/noble-hashes/sha256.js +0 -6
  461. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +0 -6
  462. package/js/src/static_dependencies/noble-hashes/sha3.js +0 -6
  463. package/js/src/static_dependencies/noble-hashes/sha512.js +0 -6
  464. package/js/src/static_dependencies/noble-hashes/utils.js +0 -6
  465. package/js/src/static_dependencies/node-fetch/body.js +0 -6
  466. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -6
  467. package/js/src/static_dependencies/node-fetch/errors/base.js +0 -6
  468. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -6
  469. package/js/src/static_dependencies/node-fetch/headers.js +0 -6
  470. package/js/src/static_dependencies/node-fetch/index.js +0 -6
  471. package/js/src/static_dependencies/node-fetch/request.js +0 -6
  472. package/js/src/static_dependencies/node-fetch/response.js +0 -6
  473. package/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  474. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  475. package/js/src/static_dependencies/node-fetch/utils/is.js +0 -6
  476. package/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -6
  477. package/js/src/static_dependencies/proxies/agent-base/helpers.js +0 -6
  478. package/js/src/static_dependencies/proxies/agent-base/index.js +0 -6
  479. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -6
  480. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -6
  481. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  482. package/js/src/static_dependencies/qs/formats.js +0 -6
  483. package/js/src/static_dependencies/qs/index.js +0 -6
  484. package/js/src/static_dependencies/qs/parse.js +0 -6
  485. package/js/src/static_dependencies/qs/stringify.js +0 -6
  486. package/js/src/static_dependencies/qs/utils.js +0 -6
  487. package/js/src/static_dependencies/scure-base/index.js +0 -6
  488. package/js/src/static_dependencies/scure-bip32/index.js +0 -6
  489. package/js/src/static_dependencies/scure-bip39/index.js +0 -6
  490. package/js/src/static_dependencies/scure-bip39/wordlists/english.js +0 -6
  491. package/js/src/static_dependencies/scure-starknet/index.js +0 -6
  492. package/js/src/static_dependencies/starknet/constants.js +0 -6
  493. package/js/src/static_dependencies/starknet/index.js +0 -6
  494. package/js/src/static_dependencies/starknet/types/cairoEnum.js +0 -6
  495. package/js/src/static_dependencies/starknet/types/calldata.js +0 -6
  496. package/js/src/static_dependencies/starknet/types/index.js +0 -6
  497. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  498. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  499. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +0 -6
  500. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +0 -6
  501. package/js/src/static_dependencies/starknet/types/lib/index.js +0 -6
  502. package/js/src/static_dependencies/starknet/types/typedData.js +0 -6
  503. package/js/src/static_dependencies/starknet/utils/address.js +0 -6
  504. package/js/src/static_dependencies/starknet/utils/assert.js +0 -6
  505. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +0 -6
  506. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +0 -6
  507. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +0 -6
  508. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -6
  509. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -6
  510. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  511. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  512. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  513. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +0 -6
  514. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -6
  515. package/js/src/static_dependencies/starknet/utils/calldata/index.js +0 -6
  516. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +1 -1
  517. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -6
  518. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +0 -6
  519. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -6
  520. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  521. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -6
  522. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -6
  523. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -6
  524. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +0 -6
  525. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +0 -6
  526. package/js/src/static_dependencies/starknet/utils/encode.js +0 -6
  527. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +0 -6
  528. package/js/src/static_dependencies/starknet/utils/hash/index.js +0 -6
  529. package/js/src/static_dependencies/starknet/utils/merkle.js +0 -6
  530. package/js/src/static_dependencies/starknet/utils/num.js +0 -6
  531. package/js/src/static_dependencies/starknet/utils/selector.js +0 -6
  532. package/js/src/static_dependencies/starknet/utils/shortString.js +0 -6
  533. package/js/src/static_dependencies/starknet/utils/starknetId.js +0 -6
  534. package/js/src/static_dependencies/starknet/utils/typedData.js +0 -6
  535. package/js/src/static_dependencies/starknet/utils/uint256.js +0 -6
  536. package/js/src/static_dependencies/starknet/utils/url.js +0 -6
  537. package/js/src/static_dependencies/watchable/src/index.js +0 -6
  538. package/js/src/static_dependencies/watchable/src/types.js +0 -6
  539. package/js/src/static_dependencies/watchable/src/unpromise.js +0 -6
  540. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  541. package/js/src/timex.js +0 -6
  542. package/js/src/tokocrypto.js +0 -6
  543. package/js/src/toobit.js +0 -6
  544. package/js/src/upbit.js +0 -6
  545. package/js/src/wavesexchange.js +0 -6
  546. package/js/src/whitebit.js +1 -7
  547. package/js/src/woo.js +0 -6
  548. package/js/src/woofipro.js +0 -6
  549. package/js/src/xt.js +0 -6
  550. package/js/src/yobit.js +0 -6
  551. package/js/src/zaif.js +0 -6
  552. package/js/src/zebpay.js +0 -6
  553. package/js/src/zonda.js +0 -6
  554. package/package.json +1 -1
package/dist/cjs/ccxt.js CHANGED
@@ -200,7 +200,7 @@ var xt$1 = require('./src/pro/xt.js');
200
200
 
201
201
  //-----------------------------------------------------------------------------
202
202
  // this is updated by vss.js when building
203
- const version = '4.5.36';
203
+ const version = '4.5.37';
204
204
  Exchange["default"].ccxtVersion = version;
205
205
  const exchanges = {
206
206
  'alp': alp["default"],
@@ -5506,6 +5506,9 @@ class Exchange {
5506
5506
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
5507
5507
  throw new errors.NotSupported(this.id + ' createOrder() is not supported yet');
5508
5508
  }
5509
+ async createTwapOrder(symbol, side, amount, duration, params = {}) {
5510
+ throw new errors.NotSupported(this.id + ' createTwapOrder() is not supported yet');
5511
+ }
5509
5512
  async createConvertTrade(id, fromCode, toCode, amount = undefined, params = {}) {
5510
5513
  throw new errors.NotSupported(this.id + ' createConvertTrade() is not supported yet');
5511
5514
  }
@@ -545,6 +545,7 @@ class bybit extends bybit$1["default"] {
545
545
  'v5/account/borrow': 5,
546
546
  'v5/account/repay': 5,
547
547
  'v5/account/no-convert-repay': 5,
548
+ 'v5/account/set-limit-px-action': 5,
548
549
  // asset
549
550
  'v5/asset/exchange/quote-apply': 1,
550
551
  'v5/asset/exchange/convert-execute': 1,
@@ -3578,6 +3578,7 @@ class htx extends htx$1["default"] {
3578
3578
  /**
3579
3579
  * @method
3580
3580
  * @name htx#fetchBalance
3581
+ * @description query for balance and get the amount of funds available for trading or funds locked in orders
3581
3582
  * @see https://huobiapi.github.io/docs/spot/v1/en/#get-account-balance-of-a-specific-account
3582
3583
  * @see https://www.htx.com/en-us/opend/newApiPages/?id=7ec4b429-7773-11ed-9966-0242ac110003
3583
3584
  * @see https://www.htx.com/en-us/opend/newApiPages/?id=10000074-77b7-11ed-9966-0242ac110003
@@ -3585,34 +3586,38 @@ class htx extends htx$1["default"] {
3585
3586
  * @see https://huobiapi.github.io/docs/coin_margined_swap/v1/en/#query-user-s-account-information
3586
3587
  * @see https://huobiapi.github.io/docs/usdt_swap/v1/en/#isolated-query-user-s-account-information
3587
3588
  * @see https://huobiapi.github.io/docs/usdt_swap/v1/en/#cross-query-user-39-s-account-information
3588
- * @description query for balance and get the amount of funds available for trading or funds locked in orders
3589
+ * @see https://www.htx.com/en-us/opend/newApiPages/?id=8cb89359-77b5-11ed-9966-19588469969
3589
3590
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3590
- * @param {bool} [params.unified] provide this parameter if you have a recent account with unified cross+isolated margin account
3591
+ * @param {string} [params.subType] linear or future
3592
+ * @param {bool} [params.uta] provide this parameter if you have a recent account with unified cross+isolated margin account
3593
+ * @param {bool} [params.multiAssetMode] set to true if you are using multi-asset mode for USDT-margined contracts
3591
3594
  * @returns {object} a [balance structure]{@link https://docs.ccxt.com/?id=balance-structure}
3592
3595
  */
3593
3596
  async fetchBalance(params = {}) {
3594
3597
  await this.loadMarkets();
3595
3598
  let type = undefined;
3596
3599
  [type, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
3597
- const options = this.safeValue(this.options, 'fetchBalance', {});
3598
- const isUnifiedAccount = this.safeValue2(params, 'isUnifiedAccount', 'unified', false);
3599
- params = this.omit(params, ['isUnifiedAccount', 'unified']);
3600
+ let subType = undefined;
3601
+ let isUnifiedAccount = undefined;
3602
+ let isMultiAssetMode = undefined;
3603
+ [subType, params] = this.handleOptionAndParams2(params, 'fetchBalance', 'defaultSubType', 'subType', 'linear');
3604
+ [isUnifiedAccount, params] = this.handleOptionAndParams2(params, 'fetchBalance', 'unified', 'uta', false);
3605
+ [isMultiAssetMode, params] = this.handleOptionAndParams(params, 'fetchBalance', 'multiAssetMode', false);
3600
3606
  const request = {};
3601
3607
  const spot = (type === 'spot');
3602
3608
  const future = (type === 'future');
3603
- const defaultSubType = this.safeString2(this.options, 'defaultSubType', 'subType', 'linear');
3604
- let subType = this.safeString2(options, 'defaultSubType', 'subType', defaultSubType);
3605
- subType = this.safeString2(params, 'defaultSubType', 'subType', subType);
3606
3609
  const inverse = (subType === 'inverse');
3607
3610
  const linear = (subType === 'linear');
3608
3611
  let marginMode = undefined;
3609
3612
  [marginMode, params] = this.handleMarginModeAndParams('fetchBalance', params);
3610
- params = this.omit(params, ['defaultSubType', 'subType']);
3611
3613
  const isolated = (marginMode === 'isolated');
3612
3614
  const cross = (marginMode === 'cross');
3613
3615
  const margin = (type === 'margin') || (spot && (cross || isolated));
3614
3616
  let response = undefined;
3615
- if (spot || margin) {
3617
+ if (isMultiAssetMode) {
3618
+ response = await this.contractPrivateGetV5AccountBalance(this.extend(request, params));
3619
+ }
3620
+ else if (spot || margin) {
3616
3621
  if (margin) {
3617
3622
  if (isolated) {
3618
3623
  response = await this.spotPrivateGetV1MarginAccountsBalance(this.extend(request, params));
@@ -3804,11 +3809,61 @@ class htx extends htx$1["default"] {
3804
3809
  // "ts": 1640915104870
3805
3810
  // }
3806
3811
  //
3807
- // TODO add balance parsing for linear swap
3812
+ // multi asset mode
3813
+ //
3814
+ // {
3815
+ // "code": 200,
3816
+ // "message": "Success",
3817
+ // "data": {
3818
+ // "state": "normal",
3819
+ // "equity": "174.216697577770536136",
3820
+ // "details": [
3821
+ // {
3822
+ // "currency": "USDT",
3823
+ // "equity": "174.216697577770536136",
3824
+ // "available": "174.216697577770536136",
3825
+ // "profit_unreal": "0",
3826
+ // "initial_margin": "0",
3827
+ // "maintenance_margin": "0",
3828
+ // "maintenance_margin_rate": "0",
3829
+ // "initial_margin_rate": "0",
3830
+ // "available_margin": "174.216697577770536136",
3831
+ // "voucher": "0",
3832
+ // "voucher_value": "0",
3833
+ // "withdraw_available": "174.216697577770536136",
3834
+ // "created_time": 1770293270932,
3835
+ // "updated_time": 1770293270932,
3836
+ // "isolated_equity": "0",
3837
+ // "isolated_profit_unreal": "0"
3838
+ // }
3839
+ // ],
3840
+ // "initial_margin": "0",
3841
+ // "maintenance_margin": "0",
3842
+ // "maintenance_margin_rate": "0",
3843
+ // "profit_unreal": "0",
3844
+ // "available_margin": "174.216697577770536136",
3845
+ // "voucher_value": "0",
3846
+ // "created_time": 1770293268881,
3847
+ // "updated_time": 1770293270932
3848
+ // },
3849
+ // "ts": 1770293281344
3850
+ // }
3808
3851
  //
3809
3852
  let result = { 'info': response };
3810
3853
  const data = this.safeValue(response, 'data');
3811
- if (spot || margin) {
3854
+ if (isMultiAssetMode) {
3855
+ const details = this.safeList(data, 'details', []);
3856
+ for (let i = 0; i < details.length; i++) {
3857
+ const balance = details[i];
3858
+ const currencyId = this.safeString(balance, 'currency');
3859
+ const code = this.safeCurrencyCode(currencyId);
3860
+ const account = this.account();
3861
+ account['free'] = this.safeString(balance, 'withdraw_available');
3862
+ result[code] = account;
3863
+ }
3864
+ result = this.safeBalance(result);
3865
+ }
3866
+ else if (spot || margin) {
3812
3867
  if (isolated) {
3813
3868
  for (let i = 0; i < data.length; i++) {
3814
3869
  const entry = data[i];
@@ -213,6 +213,9 @@ class hyperliquid extends hyperliquid$1["default"] {
213
213
  'Insufficient spot balance asset': errors.InsufficientFunds,
214
214
  'Insufficient balance for withdrawal': errors.InsufficientFunds,
215
215
  'Insufficient balance for token transfer': errors.InsufficientFunds,
216
+ 'TWAP order value too small. Min is $1200, which is $10 per minute.': errors.InvalidOrder,
217
+ 'TWAP was never placed, already canceled, or filled.': errors.OrderNotFound,
218
+ 'Too many cumulative requests sent': errors.RateLimitExceeded, // {"status":"err","response":"Too many cumulative requests sent (37986 > 10436) for cumulative volume traded $437.92. Place taker orders to free up 1 request per USDC traded."}
216
219
  },
217
220
  },
218
221
  'precisionMode': number.TICK_SIZE,
@@ -1708,6 +1711,17 @@ class hyperliquid extends hyperliquid$1["default"] {
1708
1711
  };
1709
1712
  return this.signUserSignedAction(messageTypes, message);
1710
1713
  }
1714
+ buildUserAbstractionSig(message) {
1715
+ const messageTypes = {
1716
+ 'HyperliquidTransaction:UserSetAbstraction': [
1717
+ { 'name': 'hyperliquidChain', 'type': 'string' },
1718
+ { 'name': 'user', 'type': 'address' },
1719
+ { 'name': 'abstraction', 'type': 'string' },
1720
+ { 'name': 'nonce', 'type': 'uint64' },
1721
+ ],
1722
+ };
1723
+ return this.signUserSignedAction(messageTypes, message);
1724
+ }
1711
1725
  buildApproveBuilderFeeSig(message) {
1712
1726
  const messageTypes = {
1713
1727
  'HyperliquidTransaction:ApproveBuilderFee': [
@@ -1808,11 +1822,70 @@ class hyperliquid extends hyperliquid$1["default"] {
1808
1822
  }
1809
1823
  return true;
1810
1824
  }
1825
+ /**
1826
+ * @method
1827
+ * @name hyperliquid#setUserAbstraction
1828
+ * @description set user abstraction mode
1829
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#set-user-abstraction
1830
+ * @param {string} abstraction one of the strings ["disabled", "unifiedAccount", "portfolioMargin"],
1831
+ * @param {object} [params]
1832
+ * @param {string} [params.type] 'userSetAbstraction' or 'agentSetAbstraction' default is 'userSetAbstraction'
1833
+ * @returns dictionary response from the exchange
1834
+ */
1835
+ async setUserAbstraction(abstraction, params = {}) {
1836
+ let userAddress = undefined;
1837
+ [userAddress, params] = this.handlePublicAddress('setUserAbstraction', params);
1838
+ const nonce = this.milliseconds();
1839
+ const isSandboxMode = this.safeBool(this.options, 'sandboxMode', false);
1840
+ const type = this.safeString(params, 'type', 'userSetAbstraction');
1841
+ params = this.omit(params, 'type');
1842
+ const payload = {
1843
+ 'hyperliquidChain': isSandboxMode ? 'Testnet' : 'Mainnet',
1844
+ 'user': userAddress,
1845
+ 'abstraction': abstraction,
1846
+ 'nonce': nonce,
1847
+ };
1848
+ const sig = this.buildUserAbstractionSig(payload);
1849
+ const action = {
1850
+ 'hyperliquidChain': payload['hyperliquidChain'],
1851
+ 'signatureChainId': '0x66eee',
1852
+ 'abstraction': payload['abstraction'],
1853
+ 'user': payload['user'],
1854
+ 'nonce': nonce,
1855
+ 'type': type,
1856
+ };
1857
+ const request = {
1858
+ 'action': action,
1859
+ 'nonce': nonce,
1860
+ 'signature': sig,
1861
+ 'vaultAddress': undefined,
1862
+ };
1863
+ //
1864
+ // {
1865
+ // "status": "ok",
1866
+ // "response": {
1867
+ // "type": "default"
1868
+ // }
1869
+ // }
1870
+ //
1871
+ return await this.privatePostExchange(request);
1872
+ }
1873
+ /**
1874
+ * @method
1875
+ * @name hyperliquid#enableUserDexAbstraction
1876
+ * @description If set, actions on HIP-3 perps will automatically transfer collateral from validator-operated USDC perps balance for HIP-3 DEXs where USDC is the collateral token, and spot otherwise
1877
+ * @param enabled
1878
+ * @param params
1879
+ * @param {string} [params.type] 'userDexAbstraction' or 'agentEnableDexAbstraction' default is 'userDexAbstraction'
1880
+ * @returns dictionary response from the exchange
1881
+ */
1811
1882
  async enableUserDexAbstraction(enabled, params = {}) {
1812
1883
  let userAddress = undefined;
1813
1884
  [userAddress, params] = this.handlePublicAddress('enableUserDexAbstraction', params);
1814
1885
  const nonce = this.milliseconds();
1815
1886
  const isSandboxMode = this.safeBool(this.options, 'sandboxMode', false);
1887
+ const type = this.safeString(params, 'type', 'userDexAbstraction');
1888
+ params = this.omit(params, 'type');
1816
1889
  const payload = {
1817
1890
  'hyperliquidChain': isSandboxMode ? 'Testnet' : 'Mainnet',
1818
1891
  'user': userAddress,
@@ -1826,7 +1899,7 @@ class hyperliquid extends hyperliquid$1["default"] {
1826
1899
  'enabled': payload['enabled'],
1827
1900
  'user': payload['user'],
1828
1901
  'nonce': nonce,
1829
- 'type': 'userDexAbstraction',
1902
+ 'type': type,
1830
1903
  };
1831
1904
  const request = {
1832
1905
  'action': action,
@@ -1844,6 +1917,29 @@ class hyperliquid extends hyperliquid$1["default"] {
1844
1917
  //
1845
1918
  return await this.privatePostExchange(request);
1846
1919
  }
1920
+ /**
1921
+ * @method
1922
+ * @name hyperliquid#setAgentAbstraction
1923
+ * @description set agent abstraction mode
1924
+ * @param {string} abstraction one of the strings ["i", "u", "p"] where "i" is "disabled", "u" is "unifiedAccount", and "p" is "portfolioMargin"
1925
+ * @param {object} [params]
1926
+ * @returns dictionary response from the exchange
1927
+ */
1928
+ async setAgentAbstraction(abstraction, params = {}) {
1929
+ const nonce = this.milliseconds();
1930
+ const request = {
1931
+ 'nonce': nonce,
1932
+ };
1933
+ const action = {
1934
+ 'type': 'agentSetAbstraction',
1935
+ 'abstraction': abstraction,
1936
+ };
1937
+ const signature = this.signL1Action(action, nonce);
1938
+ request['action'] = action;
1939
+ request['signature'] = signature;
1940
+ const response = await this.privatePostExchange(this.extend(request, params));
1941
+ return response;
1942
+ }
1847
1943
  /**
1848
1944
  * @method
1849
1945
  * @name hyperliquid#createOrder
@@ -1871,6 +1967,82 @@ class hyperliquid extends hyperliquid$1["default"] {
1871
1967
  const orders = await this.createOrders([order], globalParams);
1872
1968
  return orders[0];
1873
1969
  }
1970
+ /**
1971
+ * @method
1972
+ * @name hyperliquid#createTwapOrder
1973
+ * @description create a trade order that is executed as a TWAP order over a specified duration.
1974
+ * @param {string} symbol unified symbol of the market to create an order in
1975
+ * @param {string} side 'buy' or 'sell'
1976
+ * @param {float} amount how much of currency you want to trade in units of base currency
1977
+ * @param {int} duration the duration of the TWAP order in milliseconds
1978
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1979
+ * @param {bool} [params.randomize] whether to randomize the time intervals of the TWAP order slices (default is false, meaning equal intervals)
1980
+ * @param {bool} [params.reduceOnly] true or false whether the order is reduce-only
1981
+ * @param {int} [params.expiresAfter] time in ms after which the twap order expires
1982
+ * @param {string} [params.vaultAddress] the vault address for order
1983
+ * @returns {object} an [order structure]{@link https://docs.ccxt.com/?id=order-structure}
1984
+ */
1985
+ async createTwapOrder(symbol, side, amount, duration, params = {}) {
1986
+ await this.loadMarkets();
1987
+ await this.initializeClient();
1988
+ const market = this.market(symbol);
1989
+ const nonce = this.milliseconds();
1990
+ const isBuy = (side === 'BUY');
1991
+ let vaultAddress = undefined;
1992
+ const randomize = this.safeBool(params, 'randomize', false);
1993
+ params = this.omit(params, 'randomize');
1994
+ [vaultAddress, params] = this.handleOptionAndParams(params, 'createOrder', 'vaultAddress');
1995
+ vaultAddress = this.formatVaultAddress(vaultAddress);
1996
+ const durationMins = Math.floor(duration / 1000 / 60); // convert from ms to minutes
1997
+ const orderObj = {
1998
+ 'a': this.parseToInt(market['baseId']),
1999
+ 'b': isBuy,
2000
+ 's': this.amountToPrecision(symbol, amount),
2001
+ 'r': this.safeBool(params, 'reduceOnly', false),
2002
+ 'm': durationMins,
2003
+ 't': randomize,
2004
+ };
2005
+ const orderAction = {
2006
+ 'type': 'twapOrder',
2007
+ 'twap': orderObj,
2008
+ };
2009
+ const signature = this.signL1Action(orderAction, nonce, vaultAddress);
2010
+ const request = {
2011
+ 'action': orderAction,
2012
+ 'nonce': nonce,
2013
+ 'signature': signature,
2014
+ // 'vaultAddress': vaultAddress,
2015
+ };
2016
+ if (vaultAddress !== undefined) {
2017
+ params = this.omit(params, 'vaultAddress');
2018
+ request['vaultAddress'] = vaultAddress;
2019
+ }
2020
+ const expiresAfter = this.safeInteger(params, 'expiresAfter');
2021
+ if (expiresAfter !== undefined) {
2022
+ request['expiresAfter'] = expiresAfter;
2023
+ params = this.omit(params, 'expiresAfter');
2024
+ }
2025
+ const response = await this.privatePostExchange(request);
2026
+ // {
2027
+ // "status":"ok",
2028
+ // "response":{
2029
+ // "type":"twapOrder",
2030
+ // "data":{
2031
+ // "status": {
2032
+ // "running":{
2033
+ // "twapId":77738308
2034
+ // }
2035
+ // }
2036
+ // }
2037
+ // }
2038
+ // }
2039
+ const responseObj = this.safeDict(response, 'response', {});
2040
+ const data = this.safeDict(responseObj, 'data', {});
2041
+ const status = this.safeDict(data, 'status', {});
2042
+ const running = this.safeDict(status, 'running', {});
2043
+ const orderId = this.safeString(running, 'twapId');
2044
+ return this.parseOrder({ 'status': 'running', 'oid': orderId }, market);
2045
+ }
1874
2046
  /**
1875
2047
  * @method
1876
2048
  * @name hyperliquid#createOrders
@@ -2109,9 +2281,14 @@ class hyperliquid extends hyperliquid$1["default"] {
2109
2281
  * @param {string} [params.clientOrderId] client order id, (optional 128 bit hex string e.g. 0x1234567890abcdef1234567890abcdef)
2110
2282
  * @param {string} [params.vaultAddress] the vault address for order
2111
2283
  * @param {string} [params.subAccountAddress] sub account user address
2284
+ * @param {boolean} [params.twap] whether the order to cancel is a twap order, (default is false)
2112
2285
  * @returns {object} An [order structure]{@link https://docs.ccxt.com/?id=order-structure}
2113
2286
  */
2114
2287
  async cancelOrder(id, symbol = undefined, params = {}) {
2288
+ if (this.safeBool(params, 'twap', false)) {
2289
+ params = this.omit(params, 'twap');
2290
+ return await this.cancelTwapOrder(id, symbol, params);
2291
+ }
2115
2292
  const orders = await this.cancelOrders([id], symbol, params);
2116
2293
  return this.safeDict(orders, 0);
2117
2294
  }
@@ -2164,6 +2341,66 @@ class hyperliquid extends hyperliquid$1["default"] {
2164
2341
  }
2165
2342
  return orders;
2166
2343
  }
2344
+ /**
2345
+ * @method
2346
+ * @name hyperliquid#cancelTwapOrder
2347
+ * @description cancels a running twap order
2348
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#cancel-a-twap-order
2349
+ * @param {string} id order id
2350
+ * @param {string} symbol unified symbol of the market the order was made in
2351
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
2352
+ * @param {int} [params.expiresAfter] time in ms after which the twap order expires
2353
+ * @param {string} [params.vaultAddress] the vault address for order
2354
+ * @returns {object} An [order structure]{@link https://docs.ccxt.com/?id=order-structure}
2355
+ */
2356
+ async cancelTwapOrder(id, symbol = undefined, params = {}) {
2357
+ await this.loadMarkets();
2358
+ if (symbol === undefined) {
2359
+ throw new errors.ArgumentsRequired(this.id + ' cancelTwapOrder() requires a symbol argument');
2360
+ }
2361
+ const market = this.market(symbol);
2362
+ let vaultAddress = undefined;
2363
+ [vaultAddress, params] = this.handleOptionAndParams(params, 'cancelTwapOrder', 'vaultAddress');
2364
+ vaultAddress = this.formatVaultAddress(vaultAddress);
2365
+ const action = {
2366
+ 'type': 'twapCancel',
2367
+ 'a': this.parseToInt(market['baseId']),
2368
+ 't': this.parseToNumeric(id),
2369
+ };
2370
+ const nonce = this.milliseconds();
2371
+ const signature = this.signL1Action(action, nonce, vaultAddress);
2372
+ const request = {
2373
+ 'action': action,
2374
+ 'nonce': nonce,
2375
+ 'signature': signature,
2376
+ // 'vaultAddress': vaultAddress,
2377
+ };
2378
+ if (vaultAddress !== undefined) {
2379
+ params = this.omit(params, 'vaultAddress');
2380
+ request['vaultAddress'] = vaultAddress;
2381
+ }
2382
+ const expiresAfter = this.safeInteger(params, 'expiresAfter');
2383
+ if (expiresAfter !== undefined) {
2384
+ request['expiresAfter'] = expiresAfter;
2385
+ params = this.omit(params, 'expiresAfter');
2386
+ }
2387
+ const response = await this.privatePostExchange(request);
2388
+ //
2389
+ // {
2390
+ // "status":"ok",
2391
+ // "response":{
2392
+ // "type":"twapCancel",
2393
+ // "data":{
2394
+ // "status": "success"
2395
+ // }
2396
+ // }
2397
+ // }
2398
+ //
2399
+ const responseObj = this.safeDict(response, 'response', {});
2400
+ const data = this.safeDict(responseObj, 'data', {});
2401
+ const status = this.safeString(data, 'status');
2402
+ return this.parseOrder({ 'status': status, 'oid': id }, market);
2403
+ }
2167
2404
  cancelOrdersRequest(ids, symbol = undefined, params = {}) {
2168
2405
  /**
2169
2406
  * @method
@@ -4444,6 +4681,13 @@ class hyperliquid extends hyperliquid$1["default"] {
4444
4681
  break;
4445
4682
  }
4446
4683
  }
4684
+ if ('status' in data) {
4685
+ const errorStatus = this.safeDict(data, 'status', {});
4686
+ const errorMsg = this.safeString(errorStatus, 'error');
4687
+ if (errorStatus !== undefined) {
4688
+ message = errorMsg;
4689
+ }
4690
+ }
4447
4691
  }
4448
4692
  const feedback = this.id + ' ' + body;
4449
4693
  const nonEmptyMessage = ((message !== undefined) && (message !== ''));
@@ -2389,7 +2389,7 @@ class krakenfutures extends krakenfutures$1["default"] {
2389
2389
  // "fundingRate": -0.000000756414717067,
2390
2390
  // "fundingRatePrediction": 0.000000195218676,
2391
2391
  // "suspended": false,
2392
- // "indexPrice": 0.043392,
2392
+ // "indexPrice": 0.043391,
2393
2393
  // "postOnly": false,
2394
2394
  // "change24h": -0.46
2395
2395
  // }
@@ -2402,16 +2402,16 @@ class krakenfutures extends krakenfutures$1["default"] {
2402
2402
  let fundingRateResult = Precise["default"].stringDiv(fundingRateString, markPriceString);
2403
2403
  const nextFundingRateString = this.safeString(ticker, 'fundingRatePrediction');
2404
2404
  let nextFundingRateResult = Precise["default"].stringDiv(nextFundingRateString, markPriceString);
2405
- if (fundingRateResult > '0.25') {
2405
+ if (Precise["default"].stringGt(fundingRateResult, '0.25')) {
2406
2406
  fundingRateResult = '0.25';
2407
2407
  }
2408
- else if (fundingRateResult > '-0.25') {
2408
+ else if (Precise["default"].stringLt(fundingRateResult, '-0.25')) {
2409
2409
  fundingRateResult = '-0.25';
2410
2410
  }
2411
- if (nextFundingRateResult > '0.25') {
2411
+ if (Precise["default"].stringGt(nextFundingRateResult, '0.25')) {
2412
2412
  nextFundingRateResult = '0.25';
2413
2413
  }
2414
- else if (nextFundingRateResult > '-0.25') {
2414
+ else if (Precise["default"].stringLt(nextFundingRateResult, '-0.25')) {
2415
2415
  nextFundingRateResult = '-0.25';
2416
2416
  }
2417
2417
  return {
@@ -128,6 +128,7 @@ class kucoin extends kucoin$1["default"] {
128
128
  'broker': 'https://api-broker.kucoin.com',
129
129
  'earn': 'https://api.kucoin.com',
130
130
  'uta': 'https://api.kucoin.com',
131
+ 'utaPrivate': 'https://api.kucoin.com',
131
132
  },
132
133
  'www': 'https://www.kucoin.com',
133
134
  'doc': [
@@ -484,17 +485,55 @@ class kucoin extends kucoin$1["default"] {
484
485
  'get': {
485
486
  'market/announcement': 20,
486
487
  'market/currency': 3,
488
+ 'market/currencies': 3,
487
489
  'market/instrument': 4,
488
490
  'market/ticker': 15,
489
- 'market/orderbook': 3,
490
491
  'market/trade': 3,
491
492
  'market/kline': 3,
492
493
  'market/funding-rate': 2,
493
494
  'market/funding-rate-history': 5,
494
495
  'market/cross-config': 25,
496
+ 'market/collateral-discount-ratio': 10,
497
+ 'market/index-price': 20,
498
+ 'market/position-tiers': 20,
499
+ 'market/open-interest': 10,
495
500
  'server/status': 3,
496
501
  },
497
502
  },
503
+ 'utaPrivate': {
504
+ 'get': {
505
+ 'market/orderbook': 3,
506
+ 'account/balance': 5,
507
+ 'account/transfer-quota': 20,
508
+ 'account/mode': 30,
509
+ 'account/ledger': 2,
510
+ 'account/interest-history': 15,
511
+ 'account/deposit/address': 5,
512
+ '{accountMode}/account/balance': 5,
513
+ '{accountMode}/account/overview': 5,
514
+ '{accountMode}/order/detail': 4,
515
+ '{accountMode}/order/open-list': 4,
516
+ '{accountMode}/order/history': 4,
517
+ '{accountMode}/order/execution': 4,
518
+ '{accountMode}/position/open-list': 3,
519
+ '{accountMode}/position/history': 2,
520
+ '{accountMode}/position/tiers': 20,
521
+ 'sub-account/balance': 5,
522
+ 'user/fee-rate': 3,
523
+ 'dcp/query': 2,
524
+ },
525
+ 'post': {
526
+ 'account/transfer': 4,
527
+ 'account/mode': 30,
528
+ '{accountMode}/account/modify-leverage': 20,
529
+ '{accountMode}/order/place': 1,
530
+ '{accountMode}/order/place-batch': 4,
531
+ '{accountMode}/order/cancel': 1,
532
+ '{accountMode}/order/cancel-batch': 4,
533
+ 'sub-account/canTransferOut': 5,
534
+ 'dcp/set': 2,
535
+ },
536
+ },
498
537
  },
499
538
  'timeframes': {
500
539
  '1m': '1min',
@@ -2579,7 +2618,7 @@ class kucoin extends kucoin$1["default"] {
2579
2618
  else {
2580
2619
  request['tradeType'] = 'FUTURES';
2581
2620
  }
2582
- response = await this.utaGetMarketOrderbook(this.extend(request, params));
2621
+ response = await this.utaPrivateGetMarketOrderbook(this.extend(request, params));
2583
2622
  //
2584
2623
  // {
2585
2624
  // "code": "200000",
@@ -5757,9 +5796,9 @@ class kucoin extends kucoin$1["default"] {
5757
5796
  endpoint = '/api/v1/' + this.implodeParams(path, params);
5758
5797
  }
5759
5798
  let isUtaPrivate = false;
5760
- if (api === 'uta') {
5799
+ if ((api === 'uta') || (api === 'utaPrivate')) {
5761
5800
  endpoint = '/api/ua/v1/' + this.implodeParams(path, params);
5762
- if (path === 'market/orderbook') {
5801
+ if (api === 'utaPrivate') {
5763
5802
  isUtaPrivate = true;
5764
5803
  }
5765
5804
  }
@@ -152,8 +152,8 @@ class mexc extends mexc$1["default"] {
152
152
  'private': 'https://www.mexc.com/open/api/v2',
153
153
  },
154
154
  'contract': {
155
- 'public': 'https://contract.mexc.com/api/v1/contract',
156
- 'private': 'https://contract.mexc.com/api/v1/private',
155
+ 'public': 'https://api.mexc.com/api/v1/contract',
156
+ 'private': 'https://api.mexc.com/api/v1/private',
157
157
  },
158
158
  'broker': {
159
159
  'private': 'https://api.mexc.com/api/v3/broker',
@@ -1798,7 +1798,7 @@ class whitebit extends whitebit$1["default"] {
1798
1798
  // "time":1737380046
1799
1799
  // }
1800
1800
  //
1801
- return this.safeInteger(response, 'time');
1801
+ return this.safeIntegerProduct(response, 'time', 1000);
1802
1802
  }
1803
1803
  /**
1804
1804
  * @method
package/js/ccxt.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
4
4
  import * as errors from './src/base/errors.js';
5
5
  import type { Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarketMarginModes, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, LongShortRatio, OrderBooks, OpenInterests, ConstructorArgs } from './src/base/types.js';
6
6
  import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
7
- declare const version = "4.5.35";
7
+ declare const version = "4.5.37";
8
8
  import alp from './src/alp.js';
9
9
  import alpaca from './src/alpaca.js';
10
10
  import apex from './src/apex.js';
package/js/ccxt.js CHANGED
@@ -1,9 +1,3 @@
1
- // ----------------------------------------------------------------------------
2
-
3
- // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
- // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
- // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
-
7
1
  /*
8
2
 
9
3
  MIT License
@@ -38,7 +32,7 @@ import * as errors from './src/base/errors.js';
38
32
  import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
39
33
  //-----------------------------------------------------------------------------
40
34
  // this is updated by vss.js when building
41
- const version = '4.5.35';
35
+ const version = '4.5.37';
42
36
  Exchange.ccxtVersion = version;
43
37
  //-----------------------------------------------------------------------------
44
38
  import alp from './src/alp.js';
@@ -1,9 +1,3 @@
1
- // ----------------------------------------------------------------------------
2
-
3
- // PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
4
- // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
- // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
-
7
1
  // -------------------------------------------------------------------------------
8
2
  import { Exchange as _Exchange } from '../base/Exchange.js';
9
3
  class Exchange extends _Exchange {