ccxt 4.5.35 → 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 (571) 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 +7 -4
  5. package/dist/cjs/src/base/functions/generic.js +27 -10
  6. package/dist/cjs/src/base/functions/time.js +0 -2
  7. package/dist/cjs/src/base/functions.js +0 -1
  8. package/dist/cjs/src/bybit.js +10 -4
  9. package/dist/cjs/src/coinbase.js +18 -7
  10. package/dist/cjs/src/coinex.js +2 -0
  11. package/dist/cjs/src/htx.js +67 -12
  12. package/dist/cjs/src/hyperliquid.js +245 -1
  13. package/dist/cjs/src/krakenfutures.js +6 -6
  14. package/dist/cjs/src/kucoin.js +43 -4
  15. package/dist/cjs/src/mexc.js +2 -2
  16. package/dist/cjs/src/pro/aster.js +27 -24
  17. package/dist/cjs/src/pro/binance.js +9 -12
  18. package/dist/cjs/src/pro/bitmex.js +5 -8
  19. package/dist/cjs/src/pro/bybit.js +8 -12
  20. package/dist/cjs/src/pro/bydfi.js +20 -43
  21. package/dist/cjs/src/pro/gate.js +7 -8
  22. package/dist/cjs/src/pro/okx.js +8 -12
  23. package/dist/cjs/src/whitebit.js +1 -1
  24. package/dist/cjs/src/woo.js +1 -1
  25. package/js/ccxt.d.ts +1 -1
  26. package/js/ccxt.js +1 -7
  27. package/js/src/abstract/alp.js +0 -6
  28. package/js/src/abstract/alpaca.js +0 -6
  29. package/js/src/abstract/apex.js +0 -6
  30. package/js/src/abstract/arkham.js +0 -6
  31. package/js/src/abstract/ascendex.js +0 -6
  32. package/js/src/abstract/aster.js +0 -6
  33. package/js/src/abstract/backpack.js +0 -6
  34. package/js/src/abstract/bequant.js +0 -6
  35. package/js/src/abstract/bigone.js +0 -6
  36. package/js/src/abstract/binance.js +0 -6
  37. package/js/src/abstract/binancecoinm.js +0 -6
  38. package/js/src/abstract/binanceus.js +0 -6
  39. package/js/src/abstract/binanceusdm.js +0 -6
  40. package/js/src/abstract/bingx.js +0 -6
  41. package/js/src/abstract/bit2c.js +0 -6
  42. package/js/src/abstract/bitbank.js +0 -6
  43. package/js/src/abstract/bitbns.js +0 -6
  44. package/js/src/abstract/bitfinex.js +0 -6
  45. package/js/src/abstract/bitflyer.js +0 -6
  46. package/js/src/abstract/bitget.js +0 -6
  47. package/js/src/abstract/bithumb.js +0 -6
  48. package/js/src/abstract/bitmart.js +0 -6
  49. package/js/src/abstract/bitmex.js +0 -6
  50. package/js/src/abstract/bitopro.js +0 -6
  51. package/js/src/abstract/bitrue.js +0 -6
  52. package/js/src/abstract/bitso.js +0 -6
  53. package/js/src/abstract/bitstamp.js +0 -6
  54. package/js/src/abstract/bitteam.js +0 -6
  55. package/js/src/abstract/bittrade.js +0 -6
  56. package/js/src/abstract/bitvavo.js +0 -6
  57. package/js/src/abstract/blockchaincom.js +0 -6
  58. package/js/src/abstract/blofin.js +0 -6
  59. package/js/src/abstract/btcbox.js +0 -6
  60. package/js/src/abstract/btcmarkets.js +0 -6
  61. package/js/src/abstract/btcturk.js +0 -6
  62. package/js/src/abstract/bullish.js +0 -6
  63. package/js/src/abstract/bybit.d.ts +1 -0
  64. package/js/src/abstract/bybit.js +0 -6
  65. package/js/src/abstract/bydfi.js +0 -6
  66. package/js/src/abstract/cex.js +0 -6
  67. package/js/src/abstract/coinbase.js +0 -6
  68. package/js/src/abstract/coinbaseadvanced.js +0 -6
  69. package/js/src/abstract/coinbaseexchange.js +0 -6
  70. package/js/src/abstract/coinbaseinternational.js +0 -6
  71. package/js/src/abstract/coincatch.js +0 -6
  72. package/js/src/abstract/coincheck.js +0 -6
  73. package/js/src/abstract/coinex.d.ts +2 -0
  74. package/js/src/abstract/coinex.js +0 -6
  75. package/js/src/abstract/coinmate.js +0 -6
  76. package/js/src/abstract/coinmetro.js +0 -6
  77. package/js/src/abstract/coinone.js +0 -6
  78. package/js/src/abstract/coinsph.js +0 -6
  79. package/js/src/abstract/coinspot.js +0 -6
  80. package/js/src/abstract/cryptocom.js +0 -6
  81. package/js/src/abstract/cryptomus.js +0 -6
  82. package/js/src/abstract/deepcoin.js +0 -6
  83. package/js/src/abstract/defx.js +0 -6
  84. package/js/src/abstract/delta.js +0 -6
  85. package/js/src/abstract/deribit.js +0 -6
  86. package/js/src/abstract/derive.js +0 -6
  87. package/js/src/abstract/digifinex.js +0 -6
  88. package/js/src/abstract/dydx.js +0 -6
  89. package/js/src/abstract/exmo.js +0 -6
  90. package/js/src/abstract/fmfwio.js +0 -6
  91. package/js/src/abstract/foxbit.js +0 -6
  92. package/js/src/abstract/gate.js +0 -6
  93. package/js/src/abstract/gateio.js +0 -6
  94. package/js/src/abstract/gemini.js +0 -6
  95. package/js/src/abstract/hashkey.js +0 -6
  96. package/js/src/abstract/hibachi.js +0 -6
  97. package/js/src/abstract/hitbtc.js +0 -6
  98. package/js/src/abstract/hollaex.js +0 -6
  99. package/js/src/abstract/htx.js +0 -6
  100. package/js/src/abstract/huobi.js +0 -6
  101. package/js/src/abstract/hyperliquid.js +0 -6
  102. package/js/src/abstract/independentreserve.js +0 -6
  103. package/js/src/abstract/indodax.js +0 -6
  104. package/js/src/abstract/kraken.js +0 -6
  105. package/js/src/abstract/krakenfutures.js +0 -6
  106. package/js/src/abstract/kucoin.d.ts +33 -1
  107. package/js/src/abstract/kucoin.js +0 -6
  108. package/js/src/abstract/kucoinfutures.d.ts +33 -1
  109. package/js/src/abstract/kucoinfutures.js +0 -6
  110. package/js/src/abstract/latoken.js +0 -6
  111. package/js/src/abstract/lbank.js +0 -6
  112. package/js/src/abstract/luno.js +0 -6
  113. package/js/src/abstract/mercado.js +0 -6
  114. package/js/src/abstract/mexc.js +0 -6
  115. package/js/src/abstract/modetrade.js +0 -6
  116. package/js/src/abstract/myokx.js +0 -6
  117. package/js/src/abstract/ndax.js +0 -6
  118. package/js/src/abstract/novadax.js +0 -6
  119. package/js/src/abstract/okx.js +0 -6
  120. package/js/src/abstract/okxus.js +0 -6
  121. package/js/src/abstract/onetrading.js +0 -6
  122. package/js/src/abstract/oxfun.js +0 -6
  123. package/js/src/abstract/p2b.js +0 -6
  124. package/js/src/abstract/paradex.js +0 -6
  125. package/js/src/abstract/paymium.js +0 -6
  126. package/js/src/abstract/phemex.js +0 -6
  127. package/js/src/abstract/poloniex.js +0 -6
  128. package/js/src/abstract/probit.js +0 -6
  129. package/js/src/abstract/timex.js +0 -6
  130. package/js/src/abstract/tokocrypto.js +0 -6
  131. package/js/src/abstract/toobit.js +0 -6
  132. package/js/src/abstract/upbit.js +0 -6
  133. package/js/src/abstract/wavesexchange.js +0 -6
  134. package/js/src/abstract/whitebit.js +0 -6
  135. package/js/src/abstract/woo.js +0 -6
  136. package/js/src/abstract/woofipro.js +0 -6
  137. package/js/src/abstract/xt.js +0 -6
  138. package/js/src/abstract/yobit.js +0 -6
  139. package/js/src/abstract/zaif.js +0 -6
  140. package/js/src/abstract/zebpay.js +0 -6
  141. package/js/src/abstract/zonda.js +0 -6
  142. package/js/src/alp.js +0 -6
  143. package/js/src/alpaca.js +0 -6
  144. package/js/src/apex.js +0 -6
  145. package/js/src/arkham.js +0 -6
  146. package/js/src/ascendex.js +0 -6
  147. package/js/src/aster.js +0 -6
  148. package/js/src/backpack.js +0 -6
  149. package/js/src/base/Exchange.d.ts +7 -6
  150. package/js/src/base/Exchange.js +7 -10
  151. package/js/src/base/Precise.js +0 -6
  152. package/js/src/base/errorHierarchy.js +0 -6
  153. package/js/src/base/errors.js +0 -6
  154. package/js/src/base/functions/crypto.js +0 -6
  155. package/js/src/base/functions/encode.js +0 -6
  156. package/js/src/base/functions/generic.d.ts +1 -1
  157. package/js/src/base/functions/generic.js +28 -17
  158. package/js/src/base/functions/misc.js +0 -6
  159. package/js/src/base/functions/number.js +0 -6
  160. package/js/src/base/functions/platform.js +0 -6
  161. package/js/src/base/functions/rsa.js +0 -6
  162. package/js/src/base/functions/string.js +0 -6
  163. package/js/src/base/functions/throttle.js +0 -6
  164. package/js/src/base/functions/time.d.ts +1 -2
  165. package/js/src/base/functions/time.js +1 -8
  166. package/js/src/base/functions/totp.js +0 -6
  167. package/js/src/base/functions/type.js +0 -6
  168. package/js/src/base/functions.js +0 -6
  169. package/js/src/base/types.js +0 -6
  170. package/js/src/base/ws/Cache.js +0 -6
  171. package/js/src/base/ws/Client.js +0 -6
  172. package/js/src/base/ws/Future.js +0 -6
  173. package/js/src/base/ws/OrderBook.js +0 -6
  174. package/js/src/base/ws/OrderBookSide.js +0 -6
  175. package/js/src/base/ws/WsClient.js +0 -6
  176. package/js/src/base/ws/functions.js +0 -6
  177. package/js/src/bequant.js +0 -6
  178. package/js/src/bigone.js +0 -6
  179. package/js/src/binance.js +0 -6
  180. package/js/src/binancecoinm.js +0 -6
  181. package/js/src/binanceus.js +0 -6
  182. package/js/src/binanceusdm.js +0 -6
  183. package/js/src/bingx.js +0 -6
  184. package/js/src/bit2c.js +0 -6
  185. package/js/src/bitbank.js +0 -6
  186. package/js/src/bitbns.js +0 -6
  187. package/js/src/bitfinex.js +0 -6
  188. package/js/src/bitflyer.js +0 -6
  189. package/js/src/bitget.js +0 -6
  190. package/js/src/bithumb.js +0 -6
  191. package/js/src/bitmart.js +0 -6
  192. package/js/src/bitmex.js +0 -6
  193. package/js/src/bitopro.js +0 -6
  194. package/js/src/bitrue.js +0 -6
  195. package/js/src/bitso.js +0 -6
  196. package/js/src/bitstamp.js +0 -6
  197. package/js/src/bitteam.js +0 -6
  198. package/js/src/bittrade.js +0 -6
  199. package/js/src/bitvavo.js +0 -6
  200. package/js/src/blockchaincom.js +0 -6
  201. package/js/src/blofin.js +0 -6
  202. package/js/src/btcbox.js +0 -6
  203. package/js/src/btcmarkets.js +0 -6
  204. package/js/src/btcturk.js +0 -6
  205. package/js/src/bullish.js +0 -6
  206. package/js/src/bybit.js +10 -10
  207. package/js/src/bydfi.js +0 -6
  208. package/js/src/cex.js +0 -6
  209. package/js/src/coinbase.d.ts +2 -0
  210. package/js/src/coinbase.js +18 -13
  211. package/js/src/coinbaseadvanced.js +0 -6
  212. package/js/src/coinbaseexchange.d.ts +1 -1
  213. package/js/src/coinbaseexchange.js +0 -6
  214. package/js/src/coinbaseinternational.js +0 -6
  215. package/js/src/coincatch.js +0 -6
  216. package/js/src/coincheck.js +0 -6
  217. package/js/src/coinex.js +2 -6
  218. package/js/src/coinmate.js +0 -6
  219. package/js/src/coinmetro.js +0 -6
  220. package/js/src/coinone.js +0 -6
  221. package/js/src/coinsph.js +0 -6
  222. package/js/src/coinspot.js +0 -6
  223. package/js/src/cryptocom.js +0 -6
  224. package/js/src/cryptomus.js +0 -6
  225. package/js/src/deepcoin.js +0 -6
  226. package/js/src/defx.js +0 -6
  227. package/js/src/delta.js +0 -6
  228. package/js/src/deribit.js +0 -6
  229. package/js/src/derive.js +0 -6
  230. package/js/src/digifinex.js +0 -6
  231. package/js/src/dydx.js +0 -6
  232. package/js/src/exmo.js +0 -6
  233. package/js/src/fmfwio.js +0 -6
  234. package/js/src/foxbit.js +0 -6
  235. package/js/src/gate.js +0 -6
  236. package/js/src/gateio.js +0 -6
  237. package/js/src/gemini.js +0 -6
  238. package/js/src/hashkey.js +0 -6
  239. package/js/src/hibachi.js +0 -6
  240. package/js/src/hitbtc.js +0 -6
  241. package/js/src/hollaex.js +0 -6
  242. package/js/src/htx.d.ts +5 -2
  243. package/js/src/htx.js +67 -18
  244. package/js/src/huobi.js +0 -6
  245. package/js/src/hyperliquid.d.ts +64 -0
  246. package/js/src/hyperliquid.js +246 -8
  247. package/js/src/independentreserve.js +0 -6
  248. package/js/src/indodax.js +0 -6
  249. package/js/src/kraken.js +0 -6
  250. package/js/src/krakenfutures.js +6 -12
  251. package/js/src/kucoin.js +43 -10
  252. package/js/src/kucoinfutures.js +0 -6
  253. package/js/src/latoken.js +0 -6
  254. package/js/src/lbank.js +0 -6
  255. package/js/src/luno.js +0 -6
  256. package/js/src/mercado.js +0 -6
  257. package/js/src/mexc.js +2 -8
  258. package/js/src/modetrade.js +0 -6
  259. package/js/src/myokx.js +0 -6
  260. package/js/src/ndax.js +0 -6
  261. package/js/src/novadax.js +0 -6
  262. package/js/src/okx.js +0 -6
  263. package/js/src/okxus.js +0 -6
  264. package/js/src/onetrading.js +0 -6
  265. package/js/src/oxfun.js +0 -6
  266. package/js/src/p2b.js +0 -6
  267. package/js/src/paradex.js +0 -6
  268. package/js/src/paymium.js +0 -6
  269. package/js/src/phemex.js +0 -6
  270. package/js/src/poloniex.js +0 -6
  271. package/js/src/pro/alpaca.js +0 -6
  272. package/js/src/pro/apex.js +0 -6
  273. package/js/src/pro/arkham.js +0 -6
  274. package/js/src/pro/ascendex.js +0 -6
  275. package/js/src/pro/aster.js +27 -30
  276. package/js/src/pro/backpack.js +0 -6
  277. package/js/src/pro/bequant.js +0 -6
  278. package/js/src/pro/binance.js +9 -18
  279. package/js/src/pro/binancecoinm.js +0 -6
  280. package/js/src/pro/binanceus.js +0 -6
  281. package/js/src/pro/binanceusdm.js +0 -6
  282. package/js/src/pro/bingx.js +0 -6
  283. package/js/src/pro/bitfinex.js +0 -6
  284. package/js/src/pro/bitget.js +0 -6
  285. package/js/src/pro/bithumb.js +0 -6
  286. package/js/src/pro/bitmart.js +0 -6
  287. package/js/src/pro/bitmex.js +5 -14
  288. package/js/src/pro/bitopro.js +0 -6
  289. package/js/src/pro/bitrue.js +0 -6
  290. package/js/src/pro/bitstamp.js +0 -6
  291. package/js/src/pro/bittrade.js +0 -6
  292. package/js/src/pro/bitvavo.js +0 -6
  293. package/js/src/pro/blockchaincom.js +0 -6
  294. package/js/src/pro/blofin.js +0 -6
  295. package/js/src/pro/bullish.js +0 -6
  296. package/js/src/pro/bybit.js +8 -18
  297. package/js/src/pro/bydfi.js +20 -49
  298. package/js/src/pro/cex.js +0 -6
  299. package/js/src/pro/coinbase.js +0 -6
  300. package/js/src/pro/coinbaseadvanced.js +0 -6
  301. package/js/src/pro/coinbaseexchange.js +0 -6
  302. package/js/src/pro/coinbaseinternational.js +0 -6
  303. package/js/src/pro/coincatch.js +0 -6
  304. package/js/src/pro/coincheck.js +0 -6
  305. package/js/src/pro/coinex.js +0 -6
  306. package/js/src/pro/coinone.js +0 -6
  307. package/js/src/pro/cryptocom.js +0 -6
  308. package/js/src/pro/deepcoin.js +0 -6
  309. package/js/src/pro/defx.js +0 -6
  310. package/js/src/pro/deribit.js +0 -6
  311. package/js/src/pro/derive.js +0 -6
  312. package/js/src/pro/dydx.js +0 -6
  313. package/js/src/pro/exmo.js +0 -6
  314. package/js/src/pro/gate.js +7 -14
  315. package/js/src/pro/gateio.js +0 -6
  316. package/js/src/pro/gemini.js +0 -6
  317. package/js/src/pro/hashkey.js +0 -6
  318. package/js/src/pro/hitbtc.js +0 -6
  319. package/js/src/pro/hollaex.js +0 -6
  320. package/js/src/pro/htx.js +0 -6
  321. package/js/src/pro/huobi.js +0 -6
  322. package/js/src/pro/hyperliquid.js +0 -6
  323. package/js/src/pro/independentreserve.js +0 -6
  324. package/js/src/pro/kraken.js +0 -6
  325. package/js/src/pro/krakenfutures.js +0 -6
  326. package/js/src/pro/kucoin.js +0 -6
  327. package/js/src/pro/kucoinfutures.js +0 -6
  328. package/js/src/pro/lbank.js +0 -6
  329. package/js/src/pro/luno.js +0 -6
  330. package/js/src/pro/mexc.js +0 -6
  331. package/js/src/pro/modetrade.js +0 -6
  332. package/js/src/pro/myokx.js +0 -6
  333. package/js/src/pro/ndax.js +0 -6
  334. package/js/src/pro/okx.js +8 -18
  335. package/js/src/pro/okxus.js +0 -6
  336. package/js/src/pro/onetrading.js +0 -6
  337. package/js/src/pro/oxfun.js +0 -6
  338. package/js/src/pro/p2b.js +0 -6
  339. package/js/src/pro/paradex.js +0 -6
  340. package/js/src/pro/phemex.js +0 -6
  341. package/js/src/pro/poloniex.js +0 -6
  342. package/js/src/pro/probit.js +0 -6
  343. package/js/src/pro/toobit.js +0 -6
  344. package/js/src/pro/upbit.js +0 -6
  345. package/js/src/pro/whitebit.js +0 -6
  346. package/js/src/pro/woo.js +0 -6
  347. package/js/src/pro/woofipro.js +0 -6
  348. package/js/src/pro/xt.js +0 -6
  349. package/js/src/probit.js +0 -6
  350. package/js/src/protobuf/mexc/compiled.cjs +0 -6
  351. package/js/src/static_dependencies/dydx-v4-client/cosmos/base/v1beta1/coin.js +0 -6
  352. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/keys.js +0 -6
  353. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/multisig/v1beta1/multisig.js +0 -6
  354. package/js/src/static_dependencies/dydx-v4-client/cosmos/crypto/secp256k1/keys.js +0 -6
  355. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/signing/v1beta1/signing.js +0 -6
  356. package/js/src/static_dependencies/dydx-v4-client/cosmos/tx/v1beta1/tx.js +0 -6
  357. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/accountplus/tx.js +0 -6
  358. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/block_rate_limit_config.js +0 -6
  359. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/clob_pair.js +0 -6
  360. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/equity_tier_limit_config.js +0 -6
  361. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/finalize_block.js +0 -6
  362. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations.js +0 -6
  363. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/liquidations_config.js +0 -6
  364. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/matches.js +0 -6
  365. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order.js +0 -6
  366. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/order_removals.js +0 -6
  367. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/clob/tx.js +0 -6
  368. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/transfer.js +0 -6
  369. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/sending/tx.js +0 -6
  370. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/asset_position.js +0 -6
  371. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/perpetual_position.js +0 -6
  372. package/js/src/static_dependencies/dydx-v4-client/dydxprotocol/subaccounts/subaccount.js +0 -6
  373. package/js/src/static_dependencies/dydx-v4-client/google/protobuf/any.js +0 -6
  374. package/js/src/static_dependencies/dydx-v4-client/helpers.js +0 -6
  375. package/js/src/static_dependencies/dydx-v4-client/long/index.cjs +0 -6
  376. package/js/src/static_dependencies/dydx-v4-client/onboarding.js +0 -6
  377. package/js/src/static_dependencies/dydx-v4-client/registry.js +0 -6
  378. package/js/src/static_dependencies/ethers/abi-coder.js +0 -6
  379. package/js/src/static_dependencies/ethers/address/address.js +0 -6
  380. package/js/src/static_dependencies/ethers/address/checks.js +0 -6
  381. package/js/src/static_dependencies/ethers/address/contract-address.js +0 -6
  382. package/js/src/static_dependencies/ethers/address/index.js +0 -6
  383. package/js/src/static_dependencies/ethers/bytes32.js +0 -6
  384. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +0 -6
  385. package/js/src/static_dependencies/ethers/coders/address.js +0 -6
  386. package/js/src/static_dependencies/ethers/coders/anonymous.js +0 -6
  387. package/js/src/static_dependencies/ethers/coders/array.js +0 -6
  388. package/js/src/static_dependencies/ethers/coders/boolean.js +0 -6
  389. package/js/src/static_dependencies/ethers/coders/bytes.js +0 -6
  390. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +0 -6
  391. package/js/src/static_dependencies/ethers/coders/null.js +0 -6
  392. package/js/src/static_dependencies/ethers/coders/number.js +0 -6
  393. package/js/src/static_dependencies/ethers/coders/string.js +0 -6
  394. package/js/src/static_dependencies/ethers/coders/tuple.js +0 -6
  395. package/js/src/static_dependencies/ethers/fragments.js +0 -6
  396. package/js/src/static_dependencies/ethers/hash/index.js +0 -6
  397. package/js/src/static_dependencies/ethers/hash/solidity.js +0 -6
  398. package/js/src/static_dependencies/ethers/hash/typed-data.js +0 -6
  399. package/js/src/static_dependencies/ethers/index.js +0 -6
  400. package/js/src/static_dependencies/ethers/interface.js +0 -6
  401. package/js/src/static_dependencies/ethers/typed.js +0 -6
  402. package/js/src/static_dependencies/ethers/utils/base58.js +0 -6
  403. package/js/src/static_dependencies/ethers/utils/base64-browser.js +0 -6
  404. package/js/src/static_dependencies/ethers/utils/base64.js +0 -6
  405. package/js/src/static_dependencies/ethers/utils/data.js +0 -6
  406. package/js/src/static_dependencies/ethers/utils/errors.js +0 -6
  407. package/js/src/static_dependencies/ethers/utils/events.js +0 -6
  408. package/js/src/static_dependencies/ethers/utils/fixednumber.js +0 -6
  409. package/js/src/static_dependencies/ethers/utils/index.js +0 -6
  410. package/js/src/static_dependencies/ethers/utils/maths.js +0 -6
  411. package/js/src/static_dependencies/ethers/utils/properties.js +0 -6
  412. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +0 -6
  413. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +0 -6
  414. package/js/src/static_dependencies/ethers/utils/rlp.js +0 -6
  415. package/js/src/static_dependencies/ethers/utils/units.js +0 -6
  416. package/js/src/static_dependencies/ethers/utils/utf8.js +0 -6
  417. package/js/src/static_dependencies/ethers/utils/uuid.js +0 -6
  418. package/js/src/static_dependencies/fflake/browser.d.ts +5 -5
  419. package/js/src/static_dependencies/fflake/browser.js +0 -6
  420. package/js/src/static_dependencies/jsencrypt/JSEncrypt.js +0 -6
  421. package/js/src/static_dependencies/jsencrypt/JSEncryptRSAKey.js +0 -6
  422. package/js/src/static_dependencies/jsencrypt/index.js +0 -6
  423. package/js/src/static_dependencies/jsencrypt/lib/asn1js/asn1.js +0 -6
  424. package/js/src/static_dependencies/jsencrypt/lib/asn1js/base64.js +0 -6
  425. package/js/src/static_dependencies/jsencrypt/lib/asn1js/hex.js +0 -6
  426. package/js/src/static_dependencies/jsencrypt/lib/asn1js/int10.js +0 -6
  427. package/js/src/static_dependencies/jsencrypt/lib/asn1js/oids.js +0 -6
  428. package/js/src/static_dependencies/jsencrypt/lib/jsbn/base64.js +0 -6
  429. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  430. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.js +0 -6
  431. package/js/src/static_dependencies/jsencrypt/lib/jsbn/prng4.js +0 -6
  432. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rng.js +0 -6
  433. package/js/src/static_dependencies/jsencrypt/lib/jsbn/rsa.js +0 -6
  434. package/js/src/static_dependencies/jsencrypt/lib/jsbn/util.js +0 -6
  435. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/asn1-1.0.js +0 -6
  436. package/js/src/static_dependencies/jsencrypt/lib/jsrsasign/yahoo.js +0 -6
  437. package/js/src/static_dependencies/messagepack/msgpack.js +0 -6
  438. package/js/src/static_dependencies/noble-curves/_shortw_utils.js +0 -6
  439. package/js/src/static_dependencies/noble-curves/abstract/curve.js +0 -6
  440. package/js/src/static_dependencies/noble-curves/abstract/edwards.js +0 -6
  441. package/js/src/static_dependencies/noble-curves/abstract/hash-to-curve.js +0 -6
  442. package/js/src/static_dependencies/noble-curves/abstract/modular.js +0 -6
  443. package/js/src/static_dependencies/noble-curves/abstract/montgomery.js +0 -6
  444. package/js/src/static_dependencies/noble-curves/abstract/poseidon.js +0 -6
  445. package/js/src/static_dependencies/noble-curves/abstract/utils.js +0 -6
  446. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.d.ts +1 -0
  447. package/js/src/static_dependencies/noble-curves/abstract/weierstrass.js +0 -6
  448. package/js/src/static_dependencies/noble-curves/bn.js +0 -6
  449. package/js/src/static_dependencies/noble-curves/ed25519.js +0 -6
  450. package/js/src/static_dependencies/noble-curves/ed448.js +0 -6
  451. package/js/src/static_dependencies/noble-curves/index.js +0 -6
  452. package/js/src/static_dependencies/noble-curves/jubjub.js +0 -6
  453. package/js/src/static_dependencies/noble-curves/p256.js +0 -6
  454. package/js/src/static_dependencies/noble-curves/p384.js +0 -6
  455. package/js/src/static_dependencies/noble-curves/p521.js +0 -6
  456. package/js/src/static_dependencies/noble-curves/pasta.js +0 -6
  457. package/js/src/static_dependencies/noble-curves/secp256k1.js +0 -6
  458. package/js/src/static_dependencies/noble-hashes/_assert.js +0 -6
  459. package/js/src/static_dependencies/noble-hashes/_blake2.js +0 -6
  460. package/js/src/static_dependencies/noble-hashes/_sha2.js +0 -6
  461. package/js/src/static_dependencies/noble-hashes/_u64.js +0 -6
  462. package/js/src/static_dependencies/noble-hashes/argon2.js +0 -6
  463. package/js/src/static_dependencies/noble-hashes/blake2b.js +0 -6
  464. package/js/src/static_dependencies/noble-hashes/blake2s.js +0 -6
  465. package/js/src/static_dependencies/noble-hashes/blake3.js +0 -6
  466. package/js/src/static_dependencies/noble-hashes/crypto.js +0 -6
  467. package/js/src/static_dependencies/noble-hashes/cryptoNode.js +0 -6
  468. package/js/src/static_dependencies/noble-hashes/eskdf.js +0 -6
  469. package/js/src/static_dependencies/noble-hashes/hkdf.js +0 -6
  470. package/js/src/static_dependencies/noble-hashes/hmac.js +0 -6
  471. package/js/src/static_dependencies/noble-hashes/index.js +0 -6
  472. package/js/src/static_dependencies/noble-hashes/md5.js +0 -6
  473. package/js/src/static_dependencies/noble-hashes/pbkdf2.js +0 -6
  474. package/js/src/static_dependencies/noble-hashes/ripemd160.js +0 -6
  475. package/js/src/static_dependencies/noble-hashes/scrypt.js +0 -6
  476. package/js/src/static_dependencies/noble-hashes/sha1.js +0 -6
  477. package/js/src/static_dependencies/noble-hashes/sha256.js +0 -6
  478. package/js/src/static_dependencies/noble-hashes/sha3-addons.js +0 -6
  479. package/js/src/static_dependencies/noble-hashes/sha3.js +0 -6
  480. package/js/src/static_dependencies/noble-hashes/sha512.js +0 -6
  481. package/js/src/static_dependencies/noble-hashes/utils.js +0 -6
  482. package/js/src/static_dependencies/node-fetch/body.js +0 -6
  483. package/js/src/static_dependencies/node-fetch/errors/abort-error.js +0 -6
  484. package/js/src/static_dependencies/node-fetch/errors/base.js +0 -6
  485. package/js/src/static_dependencies/node-fetch/errors/fetch-error.js +0 -6
  486. package/js/src/static_dependencies/node-fetch/headers.js +0 -6
  487. package/js/src/static_dependencies/node-fetch/index.js +0 -6
  488. package/js/src/static_dependencies/node-fetch/request.js +0 -6
  489. package/js/src/static_dependencies/node-fetch/response.js +0 -6
  490. package/js/src/static_dependencies/node-fetch/utils/get-search.js +0 -6
  491. package/js/src/static_dependencies/node-fetch/utils/is-redirect.js +0 -6
  492. package/js/src/static_dependencies/node-fetch/utils/is.js +0 -6
  493. package/js/src/static_dependencies/node-fetch/utils/referrer.js +0 -6
  494. package/js/src/static_dependencies/proxies/agent-base/helpers.js +0 -6
  495. package/js/src/static_dependencies/proxies/agent-base/index.js +0 -6
  496. package/js/src/static_dependencies/proxies/http-proxy-agent/index.js +0 -6
  497. package/js/src/static_dependencies/proxies/https-proxy-agent/index.js +0 -6
  498. package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.js +0 -6
  499. package/js/src/static_dependencies/qs/formats.js +0 -6
  500. package/js/src/static_dependencies/qs/index.js +0 -6
  501. package/js/src/static_dependencies/qs/parse.js +0 -6
  502. package/js/src/static_dependencies/qs/stringify.js +0 -6
  503. package/js/src/static_dependencies/qs/utils.js +0 -6
  504. package/js/src/static_dependencies/scure-base/index.js +0 -6
  505. package/js/src/static_dependencies/scure-bip32/index.js +0 -6
  506. package/js/src/static_dependencies/scure-bip39/index.js +0 -6
  507. package/js/src/static_dependencies/scure-bip39/wordlists/english.js +0 -6
  508. package/js/src/static_dependencies/scure-starknet/index.js +0 -6
  509. package/js/src/static_dependencies/starknet/constants.js +0 -6
  510. package/js/src/static_dependencies/starknet/index.js +0 -6
  511. package/js/src/static_dependencies/starknet/types/cairoEnum.js +0 -6
  512. package/js/src/static_dependencies/starknet/types/calldata.js +0 -6
  513. package/js/src/static_dependencies/starknet/types/index.js +0 -6
  514. package/js/src/static_dependencies/starknet/types/lib/contract/abi.js +0 -6
  515. package/js/src/static_dependencies/starknet/types/lib/contract/index.js +0 -6
  516. package/js/src/static_dependencies/starknet/types/lib/contract/legacy.js +0 -6
  517. package/js/src/static_dependencies/starknet/types/lib/contract/sierra.js +0 -6
  518. package/js/src/static_dependencies/starknet/types/lib/index.js +0 -6
  519. package/js/src/static_dependencies/starknet/types/typedData.js +0 -6
  520. package/js/src/static_dependencies/starknet/utils/address.js +0 -6
  521. package/js/src/static_dependencies/starknet/utils/assert.js +0 -6
  522. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/felt.js +0 -6
  523. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint256.js +0 -6
  524. package/js/src/static_dependencies/starknet/utils/cairoDataTypes/uint512.js +0 -6
  525. package/js/src/static_dependencies/starknet/utils/calldata/byteArray.js +0 -6
  526. package/js/src/static_dependencies/starknet/utils/calldata/cairo.js +0 -6
  527. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoCustomEnum.js +0 -6
  528. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoOption.js +0 -6
  529. package/js/src/static_dependencies/starknet/utils/calldata/enum/CairoResult.js +0 -6
  530. package/js/src/static_dependencies/starknet/utils/calldata/enum/index.js +0 -6
  531. package/js/src/static_dependencies/starknet/utils/calldata/formatter.js +0 -6
  532. package/js/src/static_dependencies/starknet/utils/calldata/index.js +0 -6
  533. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.d.ts +1 -1
  534. package/js/src/static_dependencies/starknet/utils/calldata/parser/index.js +0 -6
  535. package/js/src/static_dependencies/starknet/utils/calldata/parser/interface.js +0 -6
  536. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-0-1.1.0.js +0 -6
  537. package/js/src/static_dependencies/starknet/utils/calldata/parser/parser-2.0.0.js +0 -6
  538. package/js/src/static_dependencies/starknet/utils/calldata/propertyOrder.js +0 -6
  539. package/js/src/static_dependencies/starknet/utils/calldata/requestParser.js +0 -6
  540. package/js/src/static_dependencies/starknet/utils/calldata/responseParser.js +0 -6
  541. package/js/src/static_dependencies/starknet/utils/calldata/tuple.js +0 -6
  542. package/js/src/static_dependencies/starknet/utils/calldata/validate.js +0 -6
  543. package/js/src/static_dependencies/starknet/utils/encode.js +0 -6
  544. package/js/src/static_dependencies/starknet/utils/hash/classHash.js +0 -6
  545. package/js/src/static_dependencies/starknet/utils/hash/index.js +0 -6
  546. package/js/src/static_dependencies/starknet/utils/merkle.js +0 -6
  547. package/js/src/static_dependencies/starknet/utils/num.js +0 -6
  548. package/js/src/static_dependencies/starknet/utils/selector.js +0 -6
  549. package/js/src/static_dependencies/starknet/utils/shortString.js +0 -6
  550. package/js/src/static_dependencies/starknet/utils/starknetId.js +0 -6
  551. package/js/src/static_dependencies/starknet/utils/typedData.js +0 -6
  552. package/js/src/static_dependencies/starknet/utils/uint256.js +0 -6
  553. package/js/src/static_dependencies/starknet/utils/url.js +0 -6
  554. package/js/src/static_dependencies/watchable/src/index.js +0 -6
  555. package/js/src/static_dependencies/watchable/src/types.js +0 -6
  556. package/js/src/static_dependencies/watchable/src/unpromise.js +0 -6
  557. package/js/src/static_dependencies/zklink/zklink-sdk-web.js +0 -6
  558. package/js/src/timex.js +0 -6
  559. package/js/src/tokocrypto.js +0 -6
  560. package/js/src/toobit.js +0 -6
  561. package/js/src/upbit.js +0 -6
  562. package/js/src/wavesexchange.js +0 -6
  563. package/js/src/whitebit.js +1 -7
  564. package/js/src/woo.js +1 -7
  565. package/js/src/woofipro.js +0 -6
  566. package/js/src/xt.js +0 -6
  567. package/js/src/yobit.js +0 -6
  568. package/js/src/zaif.js +0 -6
  569. package/js/src/zebpay.js +0 -6
  570. package/js/src/zonda.js +0 -6
  571. package/package.json +1 -1
@@ -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 {
@@ -2692,7 +2692,7 @@ class krakenfutures extends krakenfutures$1["default"] {
2692
2692
  for (let i = 0; i < marginLevels.length; i++) {
2693
2693
  const tier = marginLevels[i];
2694
2694
  const initialMargin = this.safeString(tier, 'initialMargin');
2695
- const minNotional = this.safeNumber(tier, 'numNonContractUnits');
2695
+ const minNotional = this.safeNumber2(tier, 'numNonContractUnits', 'contracts');
2696
2696
  if (i !== 0) {
2697
2697
  const tiersLength = tiers.length;
2698
2698
  const previousTier = tiers[tiersLength - 1];
@@ -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',
@@ -1480,23 +1480,26 @@ class aster extends aster$1["default"] {
1480
1480
  // }
1481
1481
  //
1482
1482
  const messageHash = 'positions';
1483
+ if (this.positions === undefined) {
1484
+ this.positions = new Cache.ArrayCacheBySymbolBySide();
1485
+ }
1486
+ const cache = this.positions;
1487
+ const data = this.safeDict(message, 'a', {});
1488
+ const rawPositions = this.safeList(data, 'P', []);
1489
+ const newPositions = [];
1490
+ for (let i = 0; i < rawPositions.length; i++) {
1491
+ const rawPosition = rawPositions[i];
1492
+ const position = this.parseWsPosition(rawPosition);
1493
+ const timestamp = this.safeInteger(message, 'E');
1494
+ position['timestamp'] = timestamp;
1495
+ position['datetime'] = this.iso8601(timestamp);
1496
+ newPositions.push(position);
1497
+ cache.append(position);
1498
+ }
1483
1499
  const messageHashes = this.findMessageHashes(client, messageHash);
1484
1500
  if (!this.isEmpty(messageHashes)) {
1485
- if (this.positions === undefined) {
1486
- this.positions = new Cache.ArrayCacheBySymbolBySide();
1487
- }
1488
- const cache = this.positions;
1489
- const data = this.safeDict(message, 'a', {});
1490
- const rawPositions = this.safeList(data, 'P', []);
1491
- const newPositions = [];
1492
- for (let i = 0; i < rawPositions.length; i++) {
1493
- const rawPosition = rawPositions[i];
1494
- const position = this.parseWsPosition(rawPosition);
1495
- const timestamp = this.safeInteger(message, 'E');
1496
- position['timestamp'] = timestamp;
1497
- position['datetime'] = this.iso8601(timestamp);
1498
- newPositions.push(position);
1499
- cache.append(position);
1501
+ for (let i = 0; i < newPositions.length; i++) {
1502
+ const position = newPositions[i];
1500
1503
  const symbol = position['symbol'];
1501
1504
  const symbolMessageHash = messageHash + '::' + symbol;
1502
1505
  client.resolve(position, symbolMessageHash);
@@ -1788,18 +1791,18 @@ class aster extends aster$1["default"] {
1788
1791
  // }
1789
1792
  //
1790
1793
  const messageHash = 'orders';
1794
+ const market = this.getMarketFromOrder(client, message);
1795
+ if (this.orders === undefined) {
1796
+ const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
1797
+ this.orders = new Cache.ArrayCacheBySymbolById(limit);
1798
+ }
1799
+ const cache = this.orders;
1800
+ const parsed = this.parseWsOrder(message, market);
1801
+ const symbol = market['symbol'];
1802
+ cache.append(parsed);
1791
1803
  const messageHashes = this.findMessageHashes(client, messageHash);
1792
1804
  if (!this.isEmpty(messageHashes)) {
1793
- const market = this.getMarketFromOrder(client, message);
1794
- if (this.orders === undefined) {
1795
- const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
1796
- this.orders = new Cache.ArrayCacheBySymbolById(limit);
1797
- }
1798
- const cache = this.orders;
1799
- const parsed = this.parseWsOrder(message, market);
1800
- const symbol = market['symbol'];
1801
1805
  const symbolMessageHash = messageHash + '::' + symbol;
1802
- cache.append(parsed);
1803
1806
  client.resolve(cache, symbolMessageHash);
1804
1807
  client.resolve(cache, messageHash);
1805
1808
  }
@@ -351,13 +351,11 @@ class binance extends binance$1["default"] {
351
351
  const market = this.safeMarket(marketId, undefined, '', 'contract');
352
352
  const symbol = market['symbol'];
353
353
  const liquidation = this.parseWsLiquidation(rawLiquidation, market);
354
- let liquidations = this.safeValue(this.liquidations, symbol);
355
- if (liquidations === undefined) {
356
- const limit = this.safeInteger(this.options, 'liquidationsLimit', 1000);
357
- liquidations = new Cache.ArrayCache(limit);
354
+ if (this.liquidations === undefined) {
355
+ this.liquidations = new Cache.ArrayCacheBySymbolBySide();
358
356
  }
359
- liquidations.append(liquidation);
360
- this.liquidations[symbol] = liquidations;
357
+ const cache = this.liquidations;
358
+ cache.append(liquidation);
361
359
  client.resolve([liquidation], 'liquidations');
362
360
  client.resolve([liquidation], 'liquidations::' + symbol);
363
361
  }
@@ -562,13 +560,12 @@ class binance extends binance$1["default"] {
562
560
  const market = this.safeMarket(marketId, undefined, undefined, 'swap');
563
561
  const symbol = this.safeSymbol(marketId, market);
564
562
  const liquidation = this.parseWsLiquidation(message, market);
565
- let myLiquidations = this.safeValue(this.myLiquidations, symbol);
566
- if (myLiquidations === undefined) {
567
- const limit = this.safeInteger(this.options, 'myLiquidationsLimit', 1000);
568
- myLiquidations = new Cache.ArrayCache(limit);
563
+ let cache = this.myLiquidations;
564
+ if (cache === undefined) {
565
+ cache = new Cache.ArrayCacheBySymbolBySide();
569
566
  }
570
- myLiquidations.append(liquidation);
571
- this.myLiquidations[symbol] = myLiquidations;
567
+ cache.append(liquidation);
568
+ this.myLiquidations = cache;
572
569
  client.resolve([liquidation], 'myLiquidations');
573
570
  client.resolve([liquidation], 'myLiquidations::' + symbol);
574
571
  }
@@ -439,17 +439,14 @@ class bitmex extends bitmex$1["default"] {
439
439
  //
440
440
  const rawLiquidations = this.safeValue(message, 'data', []);
441
441
  const newLiquidations = [];
442
+ if (this.liquidations === undefined) {
443
+ this.liquidations = new Cache.ArrayCacheBySymbolBySide();
444
+ }
445
+ const cache = this.liquidations;
442
446
  for (let i = 0; i < rawLiquidations.length; i++) {
443
447
  const rawLiquidation = rawLiquidations[i];
444
448
  const liquidation = this.parseLiquidation(rawLiquidation);
445
- const symbol = liquidation['symbol'];
446
- let liquidations = this.safeValue(this.liquidations, symbol);
447
- if (liquidations === undefined) {
448
- const limit = this.safeInteger(this.options, 'liquidationsLimit', 1000);
449
- liquidations = new Cache.ArrayCache(limit);
450
- }
451
- liquidations.append(liquidation);
452
- this.liquidations[symbol] = liquidations;
449
+ cache.append(liquidation);
453
450
  newLiquidations.push(liquidation);
454
451
  }
455
452
  client.resolve(newLiquidations, 'liquidations');
@@ -1695,13 +1695,11 @@ class bybit extends bybit$1["default"] {
1695
1695
  const market = this.safeMarket(marketId, undefined, '', 'contract');
1696
1696
  const symbol = market['symbol'];
1697
1697
  const liquidation = this.parseWsLiquidation(rawLiquidation, market);
1698
- let liquidations = this.safeValue(this.liquidations, symbol);
1699
- if (liquidations === undefined) {
1700
- const limit = this.safeInteger(this.options, 'liquidationsLimit', 1000);
1701
- liquidations = new Cache.ArrayCache(limit);
1698
+ if (this.liquidations === undefined) {
1699
+ this.liquidations = new Cache.ArrayCacheBySymbolBySide();
1702
1700
  }
1703
- liquidations.append(liquidation);
1704
- this.liquidations[symbol] = liquidations;
1701
+ const cache = this.liquidations;
1702
+ cache.append(liquidation);
1705
1703
  client.resolve([liquidation], 'liquidations');
1706
1704
  client.resolve([liquidation], 'liquidations::' + symbol);
1707
1705
  }
@@ -1712,13 +1710,11 @@ class bybit extends bybit$1["default"] {
1712
1710
  const market = this.safeMarket(marketId, undefined, '', 'contract');
1713
1711
  const symbol = market['symbol'];
1714
1712
  const liquidation = this.parseWsLiquidation(rawLiquidation, market);
1715
- let liquidations = this.safeValue(this.liquidations, symbol);
1716
- if (liquidations === undefined) {
1717
- const limit = this.safeInteger(this.options, 'liquidationsLimit', 1000);
1718
- liquidations = new Cache.ArrayCache(limit);
1713
+ if (this.liquidations === undefined) {
1714
+ this.liquidations = new Cache.ArrayCacheBySymbolBySide();
1719
1715
  }
1720
- liquidations.append(liquidation);
1721
- this.liquidations[symbol] = liquidations;
1716
+ const cache = this.liquidations;
1717
+ cache.append(liquidation);
1722
1718
  client.resolve([liquidation], 'liquidations');
1723
1719
  client.resolve([liquidation], 'liquidations::' + symbol);
1724
1720
  }