@nktkas/hyperliquid 0.24.3 → 0.25.0-beta.2

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 (358) hide show
  1. package/README.md +141 -32
  2. package/esm/mod.d.ts +11 -11
  3. package/esm/mod.d.ts.map +1 -1
  4. package/esm/mod.js +2 -1
  5. package/esm/mod.js.map +1 -0
  6. package/esm/src/clients/exchange.d.ts +29 -25
  7. package/esm/src/clients/exchange.d.ts.map +1 -1
  8. package/esm/src/clients/exchange.js +54 -53
  9. package/esm/src/clients/exchange.js.map +1 -0
  10. package/esm/src/clients/info.d.ts +80 -20
  11. package/esm/src/clients/info.d.ts.map +1 -1
  12. package/esm/src/clients/info.js +312 -73
  13. package/esm/src/clients/info.js.map +1 -0
  14. package/esm/src/clients/multiSign.d.ts +11 -7
  15. package/esm/src/clients/multiSign.d.ts.map +1 -1
  16. package/esm/src/clients/multiSign.js +2 -1
  17. package/esm/src/clients/multiSign.js.map +1 -0
  18. package/esm/src/clients/subscription.d.ts +9 -9
  19. package/esm/src/clients/subscription.d.ts.map +1 -1
  20. package/esm/src/clients/subscription.js +29 -27
  21. package/esm/src/clients/subscription.js.map +1 -0
  22. package/esm/src/{base.d.ts → errors.d.ts} +1 -1
  23. package/esm/src/errors.d.ts.map +1 -0
  24. package/esm/src/{base.js → errors.js} +1 -0
  25. package/esm/src/errors.js.map +1 -0
  26. package/esm/src/schemas/_base.d.ts +14 -0
  27. package/esm/src/schemas/_base.d.ts.map +1 -0
  28. package/esm/src/schemas/_base.js +15 -0
  29. package/esm/src/schemas/_base.js.map +1 -0
  30. package/esm/src/schemas/exchange/requests.d.ts +8953 -0
  31. package/esm/src/schemas/exchange/requests.d.ts.map +1 -0
  32. package/esm/src/schemas/exchange/requests.js +1414 -0
  33. package/esm/src/schemas/exchange/requests.js.map +1 -0
  34. package/esm/src/schemas/exchange/responses.d.ts +567 -0
  35. package/esm/src/schemas/exchange/responses.d.ts.map +1 -0
  36. package/esm/src/schemas/exchange/responses.js +244 -0
  37. package/esm/src/schemas/exchange/responses.js.map +1 -0
  38. package/esm/src/schemas/explorer/requests.d.ts +44 -0
  39. package/esm/src/schemas/explorer/requests.d.ts.map +1 -0
  40. package/esm/src/schemas/explorer/requests.js +33 -0
  41. package/esm/src/schemas/explorer/requests.js.map +1 -0
  42. package/esm/src/schemas/explorer/responses.d.ts +360 -0
  43. package/esm/src/schemas/explorer/responses.d.ts.map +1 -0
  44. package/esm/src/schemas/explorer/responses.js +57 -0
  45. package/esm/src/schemas/explorer/responses.js.map +1 -0
  46. package/esm/src/schemas/info/accounts.d.ts +2159 -0
  47. package/esm/src/schemas/info/accounts.d.ts.map +1 -0
  48. package/esm/src/schemas/info/accounts.js +623 -0
  49. package/esm/src/schemas/info/accounts.js.map +1 -0
  50. package/esm/src/schemas/info/assets.d.ts +974 -0
  51. package/esm/src/schemas/info/assets.d.ts.map +1 -0
  52. package/esm/src/schemas/info/assets.js +285 -0
  53. package/esm/src/schemas/info/assets.js.map +1 -0
  54. package/esm/src/schemas/info/markets.d.ts +155 -0
  55. package/esm/src/schemas/info/markets.d.ts.map +1 -0
  56. package/esm/src/schemas/info/markets.js +70 -0
  57. package/esm/src/schemas/info/markets.js.map +1 -0
  58. package/esm/src/schemas/info/orders.d.ts +957 -0
  59. package/esm/src/schemas/info/orders.d.ts.map +1 -0
  60. package/esm/src/schemas/info/orders.js +298 -0
  61. package/esm/src/schemas/info/orders.js.map +1 -0
  62. package/esm/src/schemas/info/requests.d.ts +924 -0
  63. package/esm/src/schemas/info/requests.d.ts.map +1 -0
  64. package/esm/src/schemas/info/requests.js +687 -0
  65. package/esm/src/schemas/info/requests.js.map +1 -0
  66. package/esm/src/schemas/info/validators.d.ts +326 -0
  67. package/esm/src/schemas/info/validators.d.ts.map +1 -0
  68. package/esm/src/schemas/info/validators.js +126 -0
  69. package/esm/src/schemas/info/validators.js.map +1 -0
  70. package/esm/src/schemas/info/vaults.d.ts +447 -0
  71. package/esm/src/schemas/info/vaults.d.ts.map +1 -0
  72. package/esm/src/schemas/info/vaults.js +111 -0
  73. package/esm/src/schemas/info/vaults.js.map +1 -0
  74. package/esm/src/schemas/mod.d.ts +101 -0
  75. package/esm/src/schemas/mod.d.ts.map +1 -0
  76. package/esm/src/schemas/mod.js +115 -0
  77. package/esm/src/schemas/mod.js.map +1 -0
  78. package/esm/src/schemas/subscriptions/requests.d.ts +332 -0
  79. package/esm/src/schemas/subscriptions/requests.d.ts.map +1 -0
  80. package/esm/src/schemas/subscriptions/requests.js +259 -0
  81. package/esm/src/schemas/subscriptions/requests.js.map +1 -0
  82. package/esm/src/schemas/subscriptions/responses.d.ts +3643 -0
  83. package/esm/src/schemas/subscriptions/responses.d.ts.map +1 -0
  84. package/esm/src/schemas/subscriptions/responses.js +234 -0
  85. package/esm/src/schemas/subscriptions/responses.js.map +1 -0
  86. package/esm/src/signing/_signTypedData/ethers.js +1 -0
  87. package/esm/src/signing/_signTypedData/ethers.js.map +1 -0
  88. package/esm/src/signing/_signTypedData/mod.js +1 -0
  89. package/esm/src/signing/_signTypedData/mod.js.map +1 -0
  90. package/esm/src/signing/_signTypedData/private_key.js +1 -0
  91. package/esm/src/signing/_signTypedData/private_key.js.map +1 -0
  92. package/esm/src/signing/_signTypedData/viem.js +1 -0
  93. package/esm/src/signing/_signTypedData/viem.js.map +1 -0
  94. package/esm/src/signing/mod.d.ts +109 -29
  95. package/esm/src/signing/mod.d.ts.map +1 -1
  96. package/esm/src/signing/mod.js +136 -29
  97. package/esm/src/signing/mod.js.map +1 -0
  98. package/esm/src/transports/base.d.ts +4 -4
  99. package/esm/src/transports/base.d.ts.map +1 -1
  100. package/esm/src/transports/base.js +3 -2
  101. package/esm/src/transports/base.js.map +1 -0
  102. package/esm/src/transports/http/http_transport.d.ts +3 -2
  103. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  104. package/esm/src/transports/http/http_transport.js +1 -0
  105. package/esm/src/transports/http/http_transport.js.map +1 -0
  106. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts +1 -1
  107. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  108. package/esm/src/transports/websocket/_hyperliquid_event_target.js +1 -0
  109. package/esm/src/transports/websocket/_hyperliquid_event_target.js.map +1 -0
  110. package/esm/src/transports/websocket/_reconnecting_websocket.js +1 -0
  111. package/esm/src/transports/websocket/_reconnecting_websocket.js.map +1 -0
  112. package/esm/src/transports/websocket/_websocket_async_request.js +1 -0
  113. package/esm/src/transports/websocket/_websocket_async_request.js.map +1 -0
  114. package/esm/src/transports/websocket/websocket_transport.d.ts +9 -1
  115. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  116. package/esm/src/transports/websocket/websocket_transport.js +4 -0
  117. package/esm/src/transports/websocket/websocket_transport.js.map +1 -0
  118. package/package.json +6 -5
  119. package/script/mod.d.ts +11 -11
  120. package/script/mod.d.ts.map +1 -1
  121. package/script/mod.js +2 -1
  122. package/script/mod.js.map +1 -0
  123. package/script/src/clients/exchange.d.ts +29 -25
  124. package/script/src/clients/exchange.d.ts.map +1 -1
  125. package/script/src/clients/exchange.js +60 -59
  126. package/script/src/clients/exchange.js.map +1 -0
  127. package/script/src/clients/info.d.ts +80 -20
  128. package/script/src/clients/info.d.ts.map +1 -1
  129. package/script/src/clients/info.js +312 -73
  130. package/script/src/clients/info.js.map +1 -0
  131. package/script/src/clients/multiSign.d.ts +11 -7
  132. package/script/src/clients/multiSign.d.ts.map +1 -1
  133. package/script/src/clients/multiSign.js +2 -1
  134. package/script/src/clients/multiSign.js.map +1 -0
  135. package/script/src/clients/subscription.d.ts +9 -9
  136. package/script/src/clients/subscription.d.ts.map +1 -1
  137. package/script/src/clients/subscription.js +29 -27
  138. package/script/src/clients/subscription.js.map +1 -0
  139. package/script/src/{base.d.ts → errors.d.ts} +1 -1
  140. package/script/src/errors.d.ts.map +1 -0
  141. package/script/src/{base.js → errors.js} +1 -0
  142. package/script/src/errors.js.map +1 -0
  143. package/script/src/schemas/_base.d.ts +14 -0
  144. package/script/src/schemas/_base.d.ts.map +1 -0
  145. package/script/src/schemas/_base.js +51 -0
  146. package/script/src/schemas/_base.js.map +1 -0
  147. package/script/src/schemas/exchange/requests.d.ts +8953 -0
  148. package/script/src/schemas/exchange/requests.d.ts.map +1 -0
  149. package/script/src/schemas/exchange/requests.js +1450 -0
  150. package/script/src/schemas/exchange/requests.js.map +1 -0
  151. package/script/src/schemas/exchange/responses.d.ts +567 -0
  152. package/script/src/schemas/exchange/responses.d.ts.map +1 -0
  153. package/script/src/schemas/exchange/responses.js +280 -0
  154. package/script/src/schemas/exchange/responses.js.map +1 -0
  155. package/script/src/schemas/explorer/requests.d.ts +44 -0
  156. package/script/src/schemas/explorer/requests.d.ts.map +1 -0
  157. package/script/src/schemas/explorer/requests.js +69 -0
  158. package/script/src/schemas/explorer/requests.js.map +1 -0
  159. package/script/src/schemas/explorer/responses.d.ts +360 -0
  160. package/script/src/schemas/explorer/responses.d.ts.map +1 -0
  161. package/script/src/schemas/explorer/responses.js +93 -0
  162. package/script/src/schemas/explorer/responses.js.map +1 -0
  163. package/script/src/schemas/info/accounts.d.ts +2159 -0
  164. package/script/src/schemas/info/accounts.d.ts.map +1 -0
  165. package/script/src/schemas/info/accounts.js +659 -0
  166. package/script/src/schemas/info/accounts.js.map +1 -0
  167. package/script/src/schemas/info/assets.d.ts +974 -0
  168. package/script/src/schemas/info/assets.d.ts.map +1 -0
  169. package/script/src/schemas/info/assets.js +321 -0
  170. package/script/src/schemas/info/assets.js.map +1 -0
  171. package/script/src/schemas/info/markets.d.ts +155 -0
  172. package/script/src/schemas/info/markets.d.ts.map +1 -0
  173. package/script/src/schemas/info/markets.js +106 -0
  174. package/script/src/schemas/info/markets.js.map +1 -0
  175. package/script/src/schemas/info/orders.d.ts +957 -0
  176. package/script/src/schemas/info/orders.d.ts.map +1 -0
  177. package/script/src/schemas/info/orders.js +334 -0
  178. package/script/src/schemas/info/orders.js.map +1 -0
  179. package/script/src/schemas/info/requests.d.ts +924 -0
  180. package/script/src/schemas/info/requests.d.ts.map +1 -0
  181. package/script/src/schemas/info/requests.js +724 -0
  182. package/script/src/schemas/info/requests.js.map +1 -0
  183. package/script/src/schemas/info/validators.d.ts +326 -0
  184. package/script/src/schemas/info/validators.d.ts.map +1 -0
  185. package/script/src/schemas/info/validators.js +162 -0
  186. package/script/src/schemas/info/validators.js.map +1 -0
  187. package/script/src/schemas/info/vaults.d.ts +447 -0
  188. package/script/src/schemas/info/vaults.d.ts.map +1 -0
  189. package/script/src/schemas/info/vaults.js +147 -0
  190. package/script/src/schemas/info/vaults.js.map +1 -0
  191. package/script/src/schemas/mod.d.ts +101 -0
  192. package/script/src/schemas/mod.d.ts.map +1 -0
  193. package/script/src/schemas/mod.js +157 -0
  194. package/script/src/schemas/mod.js.map +1 -0
  195. package/script/src/schemas/subscriptions/requests.d.ts +332 -0
  196. package/script/src/schemas/subscriptions/requests.d.ts.map +1 -0
  197. package/script/src/schemas/subscriptions/requests.js +295 -0
  198. package/script/src/schemas/subscriptions/requests.js.map +1 -0
  199. package/script/src/schemas/subscriptions/responses.d.ts +3643 -0
  200. package/script/src/schemas/subscriptions/responses.d.ts.map +1 -0
  201. package/script/src/schemas/subscriptions/responses.js +270 -0
  202. package/script/src/schemas/subscriptions/responses.js.map +1 -0
  203. package/script/src/signing/_signTypedData/ethers.js +1 -0
  204. package/script/src/signing/_signTypedData/ethers.js.map +1 -0
  205. package/script/src/signing/_signTypedData/mod.js +1 -0
  206. package/script/src/signing/_signTypedData/mod.js.map +1 -0
  207. package/script/src/signing/_signTypedData/private_key.js +1 -0
  208. package/script/src/signing/_signTypedData/private_key.js.map +1 -0
  209. package/script/src/signing/_signTypedData/viem.js +1 -0
  210. package/script/src/signing/_signTypedData/viem.js.map +1 -0
  211. package/script/src/signing/mod.d.ts +109 -29
  212. package/script/src/signing/mod.d.ts.map +1 -1
  213. package/script/src/signing/mod.js +138 -33
  214. package/script/src/signing/mod.js.map +1 -0
  215. package/script/src/transports/base.d.ts +4 -4
  216. package/script/src/transports/base.d.ts.map +1 -1
  217. package/script/src/transports/base.js +4 -3
  218. package/script/src/transports/base.js.map +1 -0
  219. package/script/src/transports/http/http_transport.d.ts +3 -2
  220. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  221. package/script/src/transports/http/http_transport.js +1 -0
  222. package/script/src/transports/http/http_transport.js.map +1 -0
  223. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts +1 -1
  224. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  225. package/script/src/transports/websocket/_hyperliquid_event_target.js +1 -0
  226. package/script/src/transports/websocket/_hyperliquid_event_target.js.map +1 -0
  227. package/script/src/transports/websocket/_reconnecting_websocket.js +1 -0
  228. package/script/src/transports/websocket/_reconnecting_websocket.js.map +1 -0
  229. package/script/src/transports/websocket/_websocket_async_request.js +1 -0
  230. package/script/src/transports/websocket/_websocket_async_request.js.map +1 -0
  231. package/script/src/transports/websocket/websocket_transport.d.ts +9 -1
  232. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  233. package/script/src/transports/websocket/websocket_transport.js +4 -0
  234. package/script/src/transports/websocket/websocket_transport.js.map +1 -0
  235. package/src/mod.ts +28 -0
  236. package/src/src/clients/exchange.ts +2246 -0
  237. package/src/src/clients/info.ts +2076 -0
  238. package/src/src/clients/multiSign.ts +183 -0
  239. package/src/src/clients/subscription.ts +841 -0
  240. package/src/src/errors.ts +7 -0
  241. package/src/src/schemas/_base.ts +43 -0
  242. package/src/src/schemas/exchange/requests.ts +3057 -0
  243. package/src/src/schemas/exchange/responses.ts +540 -0
  244. package/src/src/schemas/explorer/requests.ts +65 -0
  245. package/src/src/schemas/explorer/responses.ts +138 -0
  246. package/src/src/schemas/info/accounts.ts +1490 -0
  247. package/src/src/schemas/info/assets.ts +693 -0
  248. package/src/src/schemas/info/markets.ts +171 -0
  249. package/src/src/schemas/info/orders.ts +597 -0
  250. package/src/src/schemas/info/requests.ts +1369 -0
  251. package/src/src/schemas/info/validators.ts +299 -0
  252. package/src/src/schemas/info/vaults.ts +262 -0
  253. package/src/src/schemas/mod.ts +121 -0
  254. package/src/src/schemas/subscriptions/requests.ts +504 -0
  255. package/src/src/schemas/subscriptions/responses.ts +576 -0
  256. package/src/src/signing/_signTypedData/ethers.ts +59 -0
  257. package/src/src/signing/_signTypedData/mod.ts +121 -0
  258. package/src/src/signing/_signTypedData/private_key.ts +229 -0
  259. package/src/src/signing/_signTypedData/viem.ts +55 -0
  260. package/src/src/signing/mod.ts +572 -0
  261. package/src/src/transports/base.ts +54 -0
  262. package/src/src/transports/http/http_transport.ts +208 -0
  263. package/src/src/transports/websocket/_hyperliquid_event_target.ts +118 -0
  264. package/src/src/transports/websocket/_reconnecting_websocket.ts +404 -0
  265. package/src/src/transports/websocket/_websocket_async_request.ts +229 -0
  266. package/src/src/transports/websocket/websocket_transport.ts +394 -0
  267. package/esm/src/base.d.ts.map +0 -1
  268. package/esm/src/signing/_sorter.d.ts +0 -127
  269. package/esm/src/signing/_sorter.d.ts.map +0 -1
  270. package/esm/src/signing/_sorter.js +0 -693
  271. package/esm/src/types/exchange/requests.d.ts +0 -1345
  272. package/esm/src/types/exchange/requests.d.ts.map +0 -1
  273. package/esm/src/types/exchange/requests.js +0 -1
  274. package/esm/src/types/exchange/responses.d.ts +0 -233
  275. package/esm/src/types/exchange/responses.d.ts.map +0 -1
  276. package/esm/src/types/exchange/responses.js +0 -1
  277. package/esm/src/types/explorer/requests.d.ts +0 -32
  278. package/esm/src/types/explorer/requests.d.ts.map +0 -1
  279. package/esm/src/types/explorer/requests.js +0 -1
  280. package/esm/src/types/explorer/responses.d.ts +0 -58
  281. package/esm/src/types/explorer/responses.d.ts.map +0 -1
  282. package/esm/src/types/explorer/responses.js +0 -1
  283. package/esm/src/types/info/accounts.d.ts +0 -864
  284. package/esm/src/types/info/accounts.d.ts.map +0 -1
  285. package/esm/src/types/info/accounts.js +0 -1
  286. package/esm/src/types/info/assets.d.ts +0 -354
  287. package/esm/src/types/info/assets.d.ts.map +0 -1
  288. package/esm/src/types/info/assets.js +0 -1
  289. package/esm/src/types/info/markets.d.ts +0 -79
  290. package/esm/src/types/info/markets.d.ts.map +0 -1
  291. package/esm/src/types/info/markets.js +0 -1
  292. package/esm/src/types/info/orders.d.ts +0 -266
  293. package/esm/src/types/info/orders.d.ts.map +0 -1
  294. package/esm/src/types/info/orders.js +0 -1
  295. package/esm/src/types/info/requests.d.ts +0 -640
  296. package/esm/src/types/info/requests.d.ts.map +0 -1
  297. package/esm/src/types/info/requests.js +0 -1
  298. package/esm/src/types/info/validators.d.ts +0 -147
  299. package/esm/src/types/info/validators.d.ts.map +0 -1
  300. package/esm/src/types/info/validators.js +0 -1
  301. package/esm/src/types/info/vaults.d.ts +0 -119
  302. package/esm/src/types/info/vaults.d.ts.map +0 -1
  303. package/esm/src/types/info/vaults.js +0 -1
  304. package/esm/src/types/mod.d.ts +0 -38
  305. package/esm/src/types/mod.d.ts.map +0 -1
  306. package/esm/src/types/mod.js +0 -24
  307. package/esm/src/types/subscriptions/requests.d.ts +0 -154
  308. package/esm/src/types/subscriptions/requests.d.ts.map +0 -1
  309. package/esm/src/types/subscriptions/requests.js +0 -1
  310. package/esm/src/types/subscriptions/responses.d.ts +0 -238
  311. package/esm/src/types/subscriptions/responses.d.ts.map +0 -1
  312. package/esm/src/types/subscriptions/responses.js +0 -1
  313. package/script/src/base.d.ts.map +0 -1
  314. package/script/src/signing/_sorter.d.ts +0 -127
  315. package/script/src/signing/_sorter.d.ts.map +0 -1
  316. package/script/src/signing/_sorter.js +0 -696
  317. package/script/src/types/exchange/requests.d.ts +0 -1345
  318. package/script/src/types/exchange/requests.d.ts.map +0 -1
  319. package/script/src/types/exchange/requests.js +0 -2
  320. package/script/src/types/exchange/responses.d.ts +0 -233
  321. package/script/src/types/exchange/responses.d.ts.map +0 -1
  322. package/script/src/types/exchange/responses.js +0 -2
  323. package/script/src/types/explorer/requests.d.ts +0 -32
  324. package/script/src/types/explorer/requests.d.ts.map +0 -1
  325. package/script/src/types/explorer/requests.js +0 -2
  326. package/script/src/types/explorer/responses.d.ts +0 -58
  327. package/script/src/types/explorer/responses.d.ts.map +0 -1
  328. package/script/src/types/explorer/responses.js +0 -2
  329. package/script/src/types/info/accounts.d.ts +0 -864
  330. package/script/src/types/info/accounts.d.ts.map +0 -1
  331. package/script/src/types/info/accounts.js +0 -2
  332. package/script/src/types/info/assets.d.ts +0 -354
  333. package/script/src/types/info/assets.d.ts.map +0 -1
  334. package/script/src/types/info/assets.js +0 -2
  335. package/script/src/types/info/markets.d.ts +0 -79
  336. package/script/src/types/info/markets.d.ts.map +0 -1
  337. package/script/src/types/info/markets.js +0 -2
  338. package/script/src/types/info/orders.d.ts +0 -266
  339. package/script/src/types/info/orders.d.ts.map +0 -1
  340. package/script/src/types/info/orders.js +0 -2
  341. package/script/src/types/info/requests.d.ts +0 -640
  342. package/script/src/types/info/requests.d.ts.map +0 -1
  343. package/script/src/types/info/requests.js +0 -2
  344. package/script/src/types/info/validators.d.ts +0 -147
  345. package/script/src/types/info/validators.d.ts.map +0 -1
  346. package/script/src/types/info/validators.js +0 -2
  347. package/script/src/types/info/vaults.d.ts +0 -119
  348. package/script/src/types/info/vaults.d.ts.map +0 -1
  349. package/script/src/types/info/vaults.js +0 -2
  350. package/script/src/types/mod.d.ts +0 -38
  351. package/script/src/types/mod.d.ts.map +0 -1
  352. package/script/src/types/mod.js +0 -25
  353. package/script/src/types/subscriptions/requests.d.ts +0 -154
  354. package/script/src/types/subscriptions/requests.d.ts.map +0 -1
  355. package/script/src/types/subscriptions/requests.js +0 -2
  356. package/script/src/types/subscriptions/responses.d.ts +0 -238
  357. package/script/src/types/subscriptions/responses.d.ts.map +0 -1
  358. package/script/src/types/subscriptions/responses.js +0 -2
@@ -1,6 +1,7 @@
1
- import { HyperliquidError } from "../base.js";
2
- import { actionSorter, getWalletChainId, signL1Action, signMultiSigAction, signUserSignedAction, userSignedActionEip712Types, } from "../signing/mod.js";
3
- /** Custom error class for API request errors. */
1
+ import { HyperliquidError } from "../errors.js";
2
+ import { ApproveAgentRequest, ApproveBuilderFeeRequest, BatchModifyRequest, CancelByCloidRequest, CancelRequest, CDepositRequest, ClaimRewardsRequest, ConvertToMultiSigUserRequest, CreateSubAccountRequest, CreateVaultRequest, CSignerActionRequest, CValidatorActionRequest, CWithdrawRequest, EvmUserModifyRequest, ModifyRequest, MultiSigRequest, NoopRequest, OrderRequest, parser, PerpDeployRequest, RegisterReferrerRequest, ReserveRequestWeightRequest, ScheduleCancelRequest, SendAssetRequest, SetDisplayNameRequest, SetReferrerRequest, SpotDeployRequest, SpotSendRequest, SpotUserRequest, SubAccountModifyRequest, SubAccountSpotTransferRequest, SubAccountTransferRequest, TokenDelegateRequest, TwapCancelRequest, TwapOrderRequest, UpdateIsolatedMarginRequest, UpdateLeverageRequest, UsdClassTransferRequest, UsdSendRequest, VaultDistributeRequest, VaultModifyRequest, VaultTransferRequest, Withdraw3Request, } from "../schemas/mod.js";
3
+ import { getWalletChainId, signL1Action, signMultiSigAction, signUserSignedAction, userSignedActionEip712Types, } from "../signing/mod.js";
4
+ /** Thrown when an API request fails. */
4
5
  export class ApiRequestError extends HyperliquidError {
5
6
  response;
6
7
  constructor(response) {
@@ -61,7 +62,6 @@ class NonceManager {
61
62
  export class ExchangeClient {
62
63
  transport;
63
64
  wallet;
64
- isTestnet;
65
65
  defaultVaultAddress;
66
66
  defaultExpiresAfter;
67
67
  signatureChainId;
@@ -118,7 +118,6 @@ export class ExchangeClient {
118
118
  constructor(args) {
119
119
  this.transport = args.transport;
120
120
  this.wallet = args.wallet;
121
- this.isTestnet = args.isTestnet ?? false;
122
121
  this.defaultVaultAddress = args.defaultVaultAddress;
123
122
  this.defaultExpiresAfter = args.defaultExpiresAfter;
124
123
  this.signatureChainId = args.signatureChainId ?? (() => getWalletChainId(this.wallet));
@@ -146,7 +145,7 @@ export class ExchangeClient {
146
145
  * ```
147
146
  */
148
147
  async approveAgent(params, opts) {
149
- const action = actionSorter.approveAgent({
148
+ const action = parser(ApproveAgentRequest.entries.action)({
150
149
  type: "approveAgent",
151
150
  hyperliquidChain: this._getHyperliquidChain(),
152
151
  signatureChainId: await this._getSignatureChainId(),
@@ -177,7 +176,7 @@ export class ExchangeClient {
177
176
  * ```
178
177
  */
179
178
  async approveBuilderFee(params, opts) {
180
- const action = actionSorter.approveBuilderFee({
179
+ const action = parser(ApproveBuilderFeeRequest.entries.action)({
181
180
  type: "approveBuilderFee",
182
181
  hyperliquidChain: this._getHyperliquidChain(),
183
182
  signatureChainId: await this._getSignatureChainId(),
@@ -222,7 +221,7 @@ export class ExchangeClient {
222
221
  * ```
223
222
  */
224
223
  async batchModify(params, opts) {
225
- const action = actionSorter.batchModify({
224
+ const action = parser(BatchModifyRequest.entries.action)({
226
225
  type: "batchModify",
227
226
  ...params,
228
227
  });
@@ -256,7 +255,7 @@ export class ExchangeClient {
256
255
  * ```
257
256
  */
258
257
  async cancel(params, opts) {
259
- const action = actionSorter.cancel({
258
+ const action = parser(CancelRequest.entries.action)({
260
259
  type: "cancel",
261
260
  ...params,
262
261
  });
@@ -290,7 +289,7 @@ export class ExchangeClient {
290
289
  * ```
291
290
  */
292
291
  async cancelByCloid(params, opts) {
293
- const action = actionSorter.cancelByCloid({
292
+ const action = parser(CancelByCloidRequest.entries.action)({
294
293
  type: "cancelByCloid",
295
294
  ...params,
296
295
  });
@@ -320,7 +319,7 @@ export class ExchangeClient {
320
319
  * ```
321
320
  */
322
321
  async cDeposit(params, opts) {
323
- const action = actionSorter.cDeposit({
322
+ const action = parser(CDepositRequest.entries.action)({
324
323
  type: "cDeposit",
325
324
  hyperliquidChain: this._getHyperliquidChain(),
326
325
  signatureChainId: await this._getSignatureChainId(),
@@ -350,7 +349,7 @@ export class ExchangeClient {
350
349
  * ```
351
350
  */
352
351
  async claimRewards(opts) {
353
- const action = actionSorter.claimRewards({
352
+ const action = parser(ClaimRewardsRequest.entries.action)({
354
353
  type: "claimRewards",
355
354
  });
356
355
  const expiresAfter = opts?.expiresAfter ?? await this._getDefaultExpiresAfter();
@@ -387,7 +386,7 @@ export class ExchangeClient {
387
386
  * ```
388
387
  */
389
388
  async convertToMultiSigUser(params, opts) {
390
- const action = actionSorter.convertToMultiSigUser({
389
+ const action = parser(ConvertToMultiSigUserRequest.entries.action)({
391
390
  type: "convertToMultiSigUser",
392
391
  hyperliquidChain: this._getHyperliquidChain(),
393
392
  signatureChainId: await this._getSignatureChainId(),
@@ -418,7 +417,7 @@ export class ExchangeClient {
418
417
  * ```
419
418
  */
420
419
  async createSubAccount(params, opts) {
421
- const action = actionSorter.createSubAccount({
420
+ const action = parser(CreateSubAccountRequest.entries.action)({
422
421
  type: "createSubAccount",
423
422
  ...params,
424
423
  });
@@ -452,7 +451,7 @@ export class ExchangeClient {
452
451
  * ```
453
452
  */
454
453
  async createVault(params, opts) {
455
- const action = actionSorter.createVault({
454
+ const action = parser(CreateVaultRequest.entries.action)({
456
455
  type: "createVault",
457
456
  ...params,
458
457
  });
@@ -485,7 +484,7 @@ export class ExchangeClient {
485
484
  * ```
486
485
  */
487
486
  async cSignerAction(params, opts) {
488
- const action = actionSorter.CSignerAction({
487
+ const action = parser(CSignerActionRequest.entries.action)({
489
488
  type: "CSignerAction",
490
489
  ...params,
491
490
  });
@@ -544,7 +543,7 @@ export class ExchangeClient {
544
543
  * ```
545
544
  */
546
545
  async cValidatorAction(params, opts) {
547
- const action = actionSorter.CValidatorAction({
546
+ const action = parser(CValidatorActionRequest.entries.action)({
548
547
  type: "CValidatorAction",
549
548
  ...params,
550
549
  });
@@ -573,7 +572,7 @@ export class ExchangeClient {
573
572
  * ```
574
573
  */
575
574
  async cWithdraw(params, opts) {
576
- const action = actionSorter.cWithdraw({
575
+ const action = parser(CWithdrawRequest.entries.action)({
577
576
  type: "cWithdraw",
578
577
  hyperliquidChain: this._getHyperliquidChain(),
579
578
  signatureChainId: await this._getSignatureChainId(),
@@ -604,7 +603,7 @@ export class ExchangeClient {
604
603
  * ```
605
604
  */
606
605
  async evmUserModify(params, opts) {
607
- const action = actionSorter.evmUserModify({
606
+ const action = parser(EvmUserModifyRequest.entries.action)({
608
607
  type: "evmUserModify",
609
608
  ...params,
610
609
  });
@@ -644,7 +643,7 @@ export class ExchangeClient {
644
643
  * ```
645
644
  */
646
645
  async modify(params, opts) {
647
- const action = actionSorter.modify({
646
+ const action = parser(ModifyRequest.entries.action)({
648
647
  type: "modify",
649
648
  ...params,
650
649
  });
@@ -665,7 +664,8 @@ export class ExchangeClient {
665
664
  * @example
666
665
  * ```ts
667
666
  * import * as hl from "@nktkas/hyperliquid";
668
- * import { actionSorter, signL1Action } from "@nktkas/hyperliquid/signing";
667
+ * import { signL1Action } from "@nktkas/hyperliquid/signing";
668
+ * import { parser, ScheduleCancelRequest } from "@nktkas/hyperliquid/schemas";
669
669
  * import { privateKeyToAccount } from "npm:viem/accounts";
670
670
  *
671
671
  * const wallet = privateKeyToAccount("0x..."); // or any other wallet libraries
@@ -675,7 +675,7 @@ export class ExchangeClient {
675
675
  * const exchClient = new hl.ExchangeClient({ wallet, transport });
676
676
  *
677
677
  * const nonce = Date.now();
678
- * const action = actionSorter.scheduleCancel({
678
+ * const action = parser(ScheduleCancelRequest.entries.action)({ // for correct signature generation
679
679
  * type: "scheduleCancel",
680
680
  * time: Date.now() + 10000,
681
681
  * });
@@ -689,7 +689,7 @@ export class ExchangeClient {
689
689
  * });
690
690
  * }));
691
691
  *
692
- * // or user-signed action
692
+ * // // or user-signed action
693
693
  * // const signatures = await Promise.all(["0x...", "0x..."].map(async (signerPrivKey) => {
694
694
  * // return await signUserSignedAction({
695
695
  * // wallet: signerPrivKey as `0x${string}`,
@@ -716,7 +716,7 @@ export class ExchangeClient {
716
716
  */
717
717
  async multiSig(params_and_nonce, opts) {
718
718
  const { nonce, ...params } = params_and_nonce;
719
- const action = actionSorter.multiSig({
719
+ const action = parser(MultiSigRequest.entries.action)({
720
720
  type: "multiSig",
721
721
  signatureChainId: await this._getSignatureChainId(),
722
722
  ...params,
@@ -760,7 +760,7 @@ export class ExchangeClient {
760
760
  * ```
761
761
  */
762
762
  async order(params, opts) {
763
- const action = actionSorter.order({
763
+ const action = parser(OrderRequest.entries.action)({
764
764
  type: "order",
765
765
  ...params,
766
766
  });
@@ -789,7 +789,7 @@ export class ExchangeClient {
789
789
  * ```
790
790
  */
791
791
  async noop(opts) {
792
- const action = actionSorter.noop({
792
+ const action = parser(NoopRequest.entries.action)({
793
793
  type: "noop",
794
794
  });
795
795
  const expiresAfter = opts?.expiresAfter ?? await this._getDefaultExpiresAfter();
@@ -830,7 +830,7 @@ export class ExchangeClient {
830
830
  * ```
831
831
  */
832
832
  async perpDeploy(params, opts) {
833
- const action = actionSorter.perpDeploy({
833
+ const action = parser(PerpDeployRequest.entries.action)({
834
834
  type: "perpDeploy",
835
835
  ...params,
836
836
  });
@@ -859,7 +859,7 @@ export class ExchangeClient {
859
859
  * ```
860
860
  */
861
861
  async registerReferrer(params, opts) {
862
- const action = actionSorter.registerReferrer({
862
+ const action = parser(RegisterReferrerRequest.entries.action)({
863
863
  type: "registerReferrer",
864
864
  ...params,
865
865
  });
@@ -888,7 +888,7 @@ export class ExchangeClient {
888
888
  * ```
889
889
  */
890
890
  async reserveRequestWeight(params, opts) {
891
- const action = actionSorter.reserveRequestWeight({
891
+ const action = parser(ReserveRequestWeightRequest.entries.action)({
892
892
  type: "reserveRequestWeight",
893
893
  ...params,
894
894
  });
@@ -899,7 +899,7 @@ export class ExchangeClient {
899
899
  const isFirstArgParams = params_or_opts && "time" in params_or_opts;
900
900
  const params = isFirstArgParams ? params_or_opts : {};
901
901
  const opts = isFirstArgParams ? maybeOpts : params_or_opts;
902
- const action = actionSorter.scheduleCancel({
902
+ const action = parser(ScheduleCancelRequest.entries.action)({
903
903
  type: "scheduleCancel",
904
904
  ...params,
905
905
  });
@@ -936,7 +936,7 @@ export class ExchangeClient {
936
936
  * ```
937
937
  */
938
938
  async sendAsset(params, opts) {
939
- const action = actionSorter.sendAsset({
939
+ const action = parser(SendAssetRequest.entries.action)({
940
940
  type: "sendAsset",
941
941
  hyperliquidChain: this._getHyperliquidChain(),
942
942
  signatureChainId: await this._getSignatureChainId(),
@@ -967,7 +967,7 @@ export class ExchangeClient {
967
967
  * ```
968
968
  */
969
969
  async setDisplayName(params, opts) {
970
- const action = actionSorter.setDisplayName({
970
+ const action = parser(SetDisplayNameRequest.entries.action)({
971
971
  type: "setDisplayName",
972
972
  ...params,
973
973
  });
@@ -996,7 +996,7 @@ export class ExchangeClient {
996
996
  * ```
997
997
  */
998
998
  async setReferrer(params, opts) {
999
- const action = actionSorter.setReferrer({
999
+ const action = parser(SetReferrerRequest.entries.action)({
1000
1000
  type: "setReferrer",
1001
1001
  ...params,
1002
1002
  });
@@ -1035,7 +1035,7 @@ export class ExchangeClient {
1035
1035
  * ```
1036
1036
  */
1037
1037
  async spotDeploy(params, opts) {
1038
- const action = actionSorter.spotDeploy({
1038
+ const action = parser(SpotDeployRequest.entries.action)({
1039
1039
  type: "spotDeploy",
1040
1040
  ...params,
1041
1041
  });
@@ -1068,7 +1068,7 @@ export class ExchangeClient {
1068
1068
  * ```
1069
1069
  */
1070
1070
  async spotSend(params, opts) {
1071
- const action = actionSorter.spotSend({
1071
+ const action = parser(SpotSendRequest.entries.action)({
1072
1072
  type: "spotSend",
1073
1073
  hyperliquidChain: this._getHyperliquidChain(),
1074
1074
  signatureChainId: await this._getSignatureChainId(),
@@ -1099,7 +1099,7 @@ export class ExchangeClient {
1099
1099
  * ```
1100
1100
  */
1101
1101
  async spotUser(params, opts) {
1102
- const action = actionSorter.spotUser({
1102
+ const action = parser(SpotUserRequest.entries.action)({
1103
1103
  type: "spotUser",
1104
1104
  ...params,
1105
1105
  });
@@ -1128,7 +1128,7 @@ export class ExchangeClient {
1128
1128
  * ```
1129
1129
  */
1130
1130
  async subAccountModify(params, opts) {
1131
- const action = actionSorter.subAccountModify({
1131
+ const action = parser(SubAccountModifyRequest.entries.action)({
1132
1132
  type: "subAccountModify",
1133
1133
  ...params,
1134
1134
  });
@@ -1162,7 +1162,7 @@ export class ExchangeClient {
1162
1162
  * ```
1163
1163
  */
1164
1164
  async subAccountSpotTransfer(params, opts) {
1165
- const action = actionSorter.subAccountSpotTransfer({
1165
+ const action = parser(SubAccountSpotTransferRequest.entries.action)({
1166
1166
  type: "subAccountSpotTransfer",
1167
1167
  ...params,
1168
1168
  });
@@ -1191,7 +1191,7 @@ export class ExchangeClient {
1191
1191
  * ```
1192
1192
  */
1193
1193
  async subAccountTransfer(params, opts) {
1194
- const action = actionSorter.subAccountTransfer({
1194
+ const action = parser(SubAccountTransferRequest.entries.action)({
1195
1195
  type: "subAccountTransfer",
1196
1196
  ...params,
1197
1197
  });
@@ -1220,7 +1220,7 @@ export class ExchangeClient {
1220
1220
  * ```
1221
1221
  */
1222
1222
  async tokenDelegate(params, opts) {
1223
- const action = actionSorter.tokenDelegate({
1223
+ const action = parser(TokenDelegateRequest.entries.action)({
1224
1224
  type: "tokenDelegate",
1225
1225
  hyperliquidChain: this._getHyperliquidChain(),
1226
1226
  signatureChainId: await this._getSignatureChainId(),
@@ -1251,7 +1251,7 @@ export class ExchangeClient {
1251
1251
  * ```
1252
1252
  */
1253
1253
  async twapCancel(params, opts) {
1254
- const action = actionSorter.twapCancel({
1254
+ const action = parser(TwapCancelRequest.entries.action)({
1255
1255
  type: "twapCancel",
1256
1256
  ...params,
1257
1257
  });
@@ -1290,7 +1290,7 @@ export class ExchangeClient {
1290
1290
  * ```
1291
1291
  */
1292
1292
  async twapOrder(params, opts) {
1293
- const action = actionSorter.twapOrder({
1293
+ const action = parser(TwapOrderRequest.entries.action)({
1294
1294
  type: "twapOrder",
1295
1295
  ...params,
1296
1296
  });
@@ -1320,7 +1320,7 @@ export class ExchangeClient {
1320
1320
  * ```
1321
1321
  */
1322
1322
  async updateIsolatedMargin(params, opts) {
1323
- const action = actionSorter.updateIsolatedMargin({
1323
+ const action = parser(UpdateIsolatedMarginRequest.entries.action)({
1324
1324
  type: "updateIsolatedMargin",
1325
1325
  ...params,
1326
1326
  });
@@ -1350,7 +1350,7 @@ export class ExchangeClient {
1350
1350
  * ```
1351
1351
  */
1352
1352
  async updateLeverage(params, opts) {
1353
- const action = actionSorter.updateLeverage({
1353
+ const action = parser(UpdateLeverageRequest.entries.action)({
1354
1354
  type: "updateLeverage",
1355
1355
  ...params,
1356
1356
  });
@@ -1380,7 +1380,7 @@ export class ExchangeClient {
1380
1380
  * ```
1381
1381
  */
1382
1382
  async usdClassTransfer(params, opts) {
1383
- const action = actionSorter.usdClassTransfer({
1383
+ const action = parser(UsdClassTransferRequest.entries.action)({
1384
1384
  type: "usdClassTransfer",
1385
1385
  hyperliquidChain: this._getHyperliquidChain(),
1386
1386
  signatureChainId: await this._getSignatureChainId(),
@@ -1411,7 +1411,7 @@ export class ExchangeClient {
1411
1411
  * ```
1412
1412
  */
1413
1413
  async usdSend(params, opts) {
1414
- const action = actionSorter.usdSend({
1414
+ const action = parser(UsdSendRequest.entries.action)({
1415
1415
  type: "usdSend",
1416
1416
  hyperliquidChain: this._getHyperliquidChain(),
1417
1417
  signatureChainId: await this._getSignatureChainId(),
@@ -1442,7 +1442,7 @@ export class ExchangeClient {
1442
1442
  * ```
1443
1443
  */
1444
1444
  async vaultDistribute(params, opts) {
1445
- const action = actionSorter.vaultDistribute({
1445
+ const action = parser(VaultDistributeRequest.entries.action)({
1446
1446
  type: "vaultDistribute",
1447
1447
  ...params,
1448
1448
  });
@@ -1475,7 +1475,7 @@ export class ExchangeClient {
1475
1475
  * ```
1476
1476
  */
1477
1477
  async vaultModify(params, opts) {
1478
- const action = actionSorter.vaultModify({
1478
+ const action = parser(VaultModifyRequest.entries.action)({
1479
1479
  type: "vaultModify",
1480
1480
  ...params,
1481
1481
  });
@@ -1504,7 +1504,7 @@ export class ExchangeClient {
1504
1504
  * ```
1505
1505
  */
1506
1506
  async vaultTransfer(params, opts) {
1507
- const action = actionSorter.vaultTransfer({
1507
+ const action = parser(VaultTransferRequest.entries.action)({
1508
1508
  type: "vaultTransfer",
1509
1509
  ...params,
1510
1510
  });
@@ -1533,7 +1533,7 @@ export class ExchangeClient {
1533
1533
  * ```
1534
1534
  */
1535
1535
  async withdraw3(params, opts) {
1536
- const action = actionSorter.withdraw3({
1536
+ const action = parser(Withdraw3Request.entries.action)({
1537
1537
  type: "withdraw3",
1538
1538
  hyperliquidChain: this._getHyperliquidChain(),
1539
1539
  signatureChainId: await this._getSignatureChainId(),
@@ -1550,7 +1550,7 @@ export class ExchangeClient {
1550
1550
  wallet: this.wallet,
1551
1551
  action,
1552
1552
  nonce,
1553
- isTestnet: this.isTestnet,
1553
+ isTestnet: this.transport.isTestnet,
1554
1554
  vaultAddress,
1555
1555
  expiresAfter,
1556
1556
  });
@@ -1580,7 +1580,7 @@ export class ExchangeClient {
1580
1580
  wallet: this.wallet,
1581
1581
  action,
1582
1582
  nonce,
1583
- isTestnet: this.isTestnet,
1583
+ isTestnet: this.transport.isTestnet,
1584
1584
  vaultAddress,
1585
1585
  expiresAfter,
1586
1586
  });
@@ -1598,7 +1598,7 @@ export class ExchangeClient {
1598
1598
  return typeof this.signatureChainId === "string" ? this.signatureChainId : await this.signatureChainId();
1599
1599
  }
1600
1600
  _getHyperliquidChain() {
1601
- return this.isTestnet ? "Testnet" : "Mainnet";
1601
+ return this.transport.isTestnet ? "Testnet" : "Mainnet";
1602
1602
  }
1603
1603
  _validateResponse(response) {
1604
1604
  if (response.status === "err") {
@@ -1619,3 +1619,4 @@ export class ExchangeClient {
1619
1619
  await this.transport[Symbol.asyncDispose]?.();
1620
1620
  }
1621
1621
  }
1622
+ //# sourceMappingURL=exchange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchange.js","sourceRoot":"","sources":["../../../src/src/clients/exchange.ts"],"names":[],"mappings":"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"}