@nktkas/hyperliquid 0.25.7 → 0.25.9

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 (543) hide show
  1. package/CONTRIBUTING.md +26 -19
  2. package/README.md +57 -5
  3. package/esm/bin/cli.js +2 -1
  4. package/esm/bin/cli.js.map +1 -1
  5. package/esm/src/api/_common_schemas.d.ts +19 -0
  6. package/esm/src/api/_common_schemas.d.ts.map +1 -1
  7. package/esm/src/api/_common_schemas.js +15 -0
  8. package/esm/src/api/_common_schemas.js.map +1 -1
  9. package/esm/src/api/exchange/_base/_execute.d.ts +6 -7
  10. package/esm/src/api/exchange/_base/_execute.d.ts.map +1 -1
  11. package/esm/src/api/exchange/_base/_execute.js +67 -43
  12. package/esm/src/api/exchange/_base/_execute.js.map +1 -1
  13. package/esm/src/api/exchange/_base/_types.d.ts +0 -7
  14. package/esm/src/api/exchange/_base/_types.d.ts.map +1 -1
  15. package/esm/src/api/exchange/_base/mod.d.ts +0 -2
  16. package/esm/src/api/exchange/_base/mod.d.ts.map +1 -1
  17. package/esm/src/api/exchange/_base/mod.js +0 -2
  18. package/esm/src/api/exchange/_base/mod.js.map +1 -1
  19. package/esm/src/api/exchange/agentEnableDexAbstraction.d.ts.map +1 -1
  20. package/esm/src/api/exchange/agentEnableDexAbstraction.js +14 -7
  21. package/esm/src/api/exchange/agentEnableDexAbstraction.js.map +1 -1
  22. package/esm/src/api/exchange/approveAgent.d.ts.map +1 -1
  23. package/esm/src/api/exchange/approveAgent.js +16 -8
  24. package/esm/src/api/exchange/approveAgent.js.map +1 -1
  25. package/esm/src/api/exchange/approveBuilderFee.d.ts.map +1 -1
  26. package/esm/src/api/exchange/approveBuilderFee.js +16 -8
  27. package/esm/src/api/exchange/approveBuilderFee.js.map +1 -1
  28. package/esm/src/api/exchange/batchModify.d.ts.map +1 -1
  29. package/esm/src/api/exchange/batchModify.js +16 -10
  30. package/esm/src/api/exchange/batchModify.js.map +1 -1
  31. package/esm/src/api/exchange/cDeposit.d.ts.map +1 -1
  32. package/esm/src/api/exchange/cDeposit.js +16 -8
  33. package/esm/src/api/exchange/cDeposit.js.map +1 -1
  34. package/esm/src/api/exchange/cSignerAction.d.ts.map +1 -1
  35. package/esm/src/api/exchange/cSignerAction.js +15 -8
  36. package/esm/src/api/exchange/cSignerAction.js.map +1 -1
  37. package/esm/src/api/exchange/cValidatorAction.d.ts.map +1 -1
  38. package/esm/src/api/exchange/cValidatorAction.js +15 -8
  39. package/esm/src/api/exchange/cValidatorAction.js.map +1 -1
  40. package/esm/src/api/exchange/cWithdraw.d.ts.map +1 -1
  41. package/esm/src/api/exchange/cWithdraw.js +16 -8
  42. package/esm/src/api/exchange/cWithdraw.js.map +1 -1
  43. package/esm/src/api/exchange/cancel.d.ts.map +1 -1
  44. package/esm/src/api/exchange/cancel.js +16 -10
  45. package/esm/src/api/exchange/cancel.js.map +1 -1
  46. package/esm/src/api/exchange/cancelByCloid.d.ts.map +1 -1
  47. package/esm/src/api/exchange/cancelByCloid.js +16 -10
  48. package/esm/src/api/exchange/cancelByCloid.js.map +1 -1
  49. package/esm/src/api/exchange/claimRewards.d.ts.map +1 -1
  50. package/esm/src/api/exchange/claimRewards.js +14 -7
  51. package/esm/src/api/exchange/claimRewards.js.map +1 -1
  52. package/esm/src/api/exchange/convertToMultiSigUser.d.ts.map +1 -1
  53. package/esm/src/api/exchange/convertToMultiSigUser.js +16 -8
  54. package/esm/src/api/exchange/convertToMultiSigUser.js.map +1 -1
  55. package/esm/src/api/exchange/createSubAccount.d.ts.map +1 -1
  56. package/esm/src/api/exchange/createSubAccount.js +15 -8
  57. package/esm/src/api/exchange/createSubAccount.js.map +1 -1
  58. package/esm/src/api/exchange/createVault.d.ts.map +1 -1
  59. package/esm/src/api/exchange/createVault.js +15 -8
  60. package/esm/src/api/exchange/createVault.js.map +1 -1
  61. package/esm/src/api/exchange/evmUserModify.d.ts +1 -1
  62. package/esm/src/api/exchange/evmUserModify.d.ts.map +1 -1
  63. package/esm/src/api/exchange/evmUserModify.js +16 -9
  64. package/esm/src/api/exchange/evmUserModify.js.map +1 -1
  65. package/esm/src/api/exchange/linkStakingUser.d.ts +112 -0
  66. package/esm/src/api/exchange/linkStakingUser.d.ts.map +1 -0
  67. package/esm/src/api/exchange/linkStakingUser.js +99 -0
  68. package/esm/src/api/exchange/linkStakingUser.js.map +1 -0
  69. package/esm/src/api/exchange/modify.d.ts.map +1 -1
  70. package/esm/src/api/exchange/modify.js +16 -10
  71. package/esm/src/api/exchange/modify.js.map +1 -1
  72. package/esm/src/api/exchange/multiSig.d.ts +81 -0
  73. package/esm/src/api/exchange/multiSig.d.ts.map +1 -1
  74. package/esm/src/api/exchange/multiSig.js +17 -16
  75. package/esm/src/api/exchange/multiSig.js.map +1 -1
  76. package/esm/src/api/exchange/noop.d.ts.map +1 -1
  77. package/esm/src/api/exchange/noop.js +14 -7
  78. package/esm/src/api/exchange/noop.js.map +1 -1
  79. package/esm/src/api/exchange/order.d.ts.map +1 -1
  80. package/esm/src/api/exchange/order.js +16 -10
  81. package/esm/src/api/exchange/order.js.map +1 -1
  82. package/esm/src/api/exchange/perpDeploy.d.ts +58 -0
  83. package/esm/src/api/exchange/perpDeploy.d.ts.map +1 -1
  84. package/esm/src/api/exchange/perpDeploy.js +33 -8
  85. package/esm/src/api/exchange/perpDeploy.js.map +1 -1
  86. package/esm/src/api/exchange/registerReferrer.d.ts.map +1 -1
  87. package/esm/src/api/exchange/registerReferrer.js +15 -8
  88. package/esm/src/api/exchange/registerReferrer.js.map +1 -1
  89. package/esm/src/api/exchange/reserveRequestWeight.d.ts.map +1 -1
  90. package/esm/src/api/exchange/reserveRequestWeight.js +15 -8
  91. package/esm/src/api/exchange/reserveRequestWeight.js.map +1 -1
  92. package/esm/src/api/exchange/scheduleCancel.js +16 -10
  93. package/esm/src/api/exchange/scheduleCancel.js.map +1 -1
  94. package/esm/src/api/exchange/sendAsset.d.ts.map +1 -1
  95. package/esm/src/api/exchange/sendAsset.js +16 -8
  96. package/esm/src/api/exchange/sendAsset.js.map +1 -1
  97. package/esm/src/api/exchange/setDisplayName.d.ts.map +1 -1
  98. package/esm/src/api/exchange/setDisplayName.js +15 -8
  99. package/esm/src/api/exchange/setDisplayName.js.map +1 -1
  100. package/esm/src/api/exchange/setReferrer.d.ts.map +1 -1
  101. package/esm/src/api/exchange/setReferrer.js +15 -8
  102. package/esm/src/api/exchange/setReferrer.js.map +1 -1
  103. package/esm/src/api/exchange/spotDeploy.d.ts.map +1 -1
  104. package/esm/src/api/exchange/spotDeploy.js +15 -8
  105. package/esm/src/api/exchange/spotDeploy.js.map +1 -1
  106. package/esm/src/api/exchange/spotSend.d.ts.map +1 -1
  107. package/esm/src/api/exchange/spotSend.js +16 -8
  108. package/esm/src/api/exchange/spotSend.js.map +1 -1
  109. package/esm/src/api/exchange/spotUser.d.ts.map +1 -1
  110. package/esm/src/api/exchange/spotUser.js +15 -8
  111. package/esm/src/api/exchange/spotUser.js.map +1 -1
  112. package/esm/src/api/exchange/subAccountModify.d.ts.map +1 -1
  113. package/esm/src/api/exchange/subAccountModify.js +15 -8
  114. package/esm/src/api/exchange/subAccountModify.js.map +1 -1
  115. package/esm/src/api/exchange/subAccountSpotTransfer.d.ts.map +1 -1
  116. package/esm/src/api/exchange/subAccountSpotTransfer.js +15 -8
  117. package/esm/src/api/exchange/subAccountSpotTransfer.js.map +1 -1
  118. package/esm/src/api/exchange/subAccountTransfer.d.ts.map +1 -1
  119. package/esm/src/api/exchange/subAccountTransfer.js +15 -8
  120. package/esm/src/api/exchange/subAccountTransfer.js.map +1 -1
  121. package/esm/src/api/exchange/tokenDelegate.d.ts.map +1 -1
  122. package/esm/src/api/exchange/tokenDelegate.js +16 -8
  123. package/esm/src/api/exchange/tokenDelegate.js.map +1 -1
  124. package/esm/src/api/exchange/twapCancel.d.ts.map +1 -1
  125. package/esm/src/api/exchange/twapCancel.js +16 -10
  126. package/esm/src/api/exchange/twapCancel.js.map +1 -1
  127. package/esm/src/api/exchange/twapOrder.d.ts.map +1 -1
  128. package/esm/src/api/exchange/twapOrder.js +16 -10
  129. package/esm/src/api/exchange/twapOrder.js.map +1 -1
  130. package/esm/src/api/exchange/updateIsolatedMargin.d.ts.map +1 -1
  131. package/esm/src/api/exchange/updateIsolatedMargin.js +16 -10
  132. package/esm/src/api/exchange/updateIsolatedMargin.js.map +1 -1
  133. package/esm/src/api/exchange/updateLeverage.d.ts.map +1 -1
  134. package/esm/src/api/exchange/updateLeverage.js +16 -10
  135. package/esm/src/api/exchange/updateLeverage.js.map +1 -1
  136. package/esm/src/api/exchange/usdClassTransfer.d.ts.map +1 -1
  137. package/esm/src/api/exchange/usdClassTransfer.js +16 -8
  138. package/esm/src/api/exchange/usdClassTransfer.js.map +1 -1
  139. package/esm/src/api/exchange/usdSend.d.ts.map +1 -1
  140. package/esm/src/api/exchange/usdSend.js +16 -8
  141. package/esm/src/api/exchange/usdSend.js.map +1 -1
  142. package/esm/src/api/exchange/userDexAbstraction.d.ts.map +1 -1
  143. package/esm/src/api/exchange/userDexAbstraction.js +16 -8
  144. package/esm/src/api/exchange/userDexAbstraction.js.map +1 -1
  145. package/esm/src/api/exchange/vaultDistribute.d.ts.map +1 -1
  146. package/esm/src/api/exchange/vaultDistribute.js +15 -8
  147. package/esm/src/api/exchange/vaultDistribute.js.map +1 -1
  148. package/esm/src/api/exchange/vaultModify.d.ts.map +1 -1
  149. package/esm/src/api/exchange/vaultModify.js +15 -8
  150. package/esm/src/api/exchange/vaultModify.js.map +1 -1
  151. package/esm/src/api/exchange/vaultTransfer.d.ts.map +1 -1
  152. package/esm/src/api/exchange/vaultTransfer.js +15 -8
  153. package/esm/src/api/exchange/vaultTransfer.js.map +1 -1
  154. package/esm/src/api/exchange/withdraw3.d.ts.map +1 -1
  155. package/esm/src/api/exchange/withdraw3.js +16 -8
  156. package/esm/src/api/exchange/withdraw3.js.map +1 -1
  157. package/esm/src/api/exchange/~client.d.ts +31 -3
  158. package/esm/src/api/exchange/~client.d.ts.map +1 -1
  159. package/esm/src/api/exchange/~client.js +27 -4
  160. package/esm/src/api/exchange/~client.js.map +1 -1
  161. package/esm/src/api/exchange/~mod.d.ts +1 -0
  162. package/esm/src/api/exchange/~mod.d.ts.map +1 -1
  163. package/esm/src/api/exchange/~mod.js +1 -0
  164. package/esm/src/api/exchange/~mod.js.map +1 -1
  165. package/esm/src/api/info/allPerpMetas.d.ts +5 -0
  166. package/esm/src/api/info/allPerpMetas.d.ts.map +1 -1
  167. package/esm/src/api/info/meta.d.ts +5 -0
  168. package/esm/src/api/info/meta.d.ts.map +1 -1
  169. package/esm/src/api/info/meta.js +2 -0
  170. package/esm/src/api/info/meta.js.map +1 -1
  171. package/esm/src/api/info/metaAndAssetCtxs.d.ts +5 -0
  172. package/esm/src/api/info/metaAndAssetCtxs.d.ts.map +1 -1
  173. package/esm/src/api/info/perpDexs.d.ts +4 -0
  174. package/esm/src/api/info/perpDexs.d.ts.map +1 -1
  175. package/esm/src/api/info/perpDexs.js +5 -0
  176. package/esm/src/api/info/perpDexs.js.map +1 -1
  177. package/esm/src/api/info/spotClearinghouseState.d.ts +0 -5
  178. package/esm/src/api/info/spotClearinghouseState.d.ts.map +1 -1
  179. package/esm/src/api/info/spotClearinghouseState.js +2 -14
  180. package/esm/src/api/info/spotClearinghouseState.js.map +1 -1
  181. package/esm/src/api/info/userFees.d.ts +27 -2
  182. package/esm/src/api/info/userFees.d.ts.map +1 -1
  183. package/esm/src/api/info/userFees.js +29 -1
  184. package/esm/src/api/info/userFees.js.map +1 -1
  185. package/esm/src/api/info/webData2.d.ts +6 -0
  186. package/esm/src/api/info/webData2.d.ts.map +1 -1
  187. package/esm/src/api/info/~client.d.ts +9 -1
  188. package/esm/src/api/info/~client.d.ts.map +1 -1
  189. package/esm/src/api/subscription/spotState.d.ts +91 -0
  190. package/esm/src/api/subscription/spotState.d.ts.map +1 -0
  191. package/esm/src/api/subscription/spotState.js +58 -0
  192. package/esm/src/api/subscription/spotState.js.map +1 -0
  193. package/esm/src/api/subscription/userEvents.d.ts +166 -141
  194. package/esm/src/api/subscription/userEvents.d.ts.map +1 -1
  195. package/esm/src/api/subscription/userEvents.js +6 -1
  196. package/esm/src/api/subscription/userEvents.js.map +1 -1
  197. package/esm/src/api/subscription/webData2.d.ts +5 -0
  198. package/esm/src/api/subscription/webData2.d.ts.map +1 -1
  199. package/esm/src/api/subscription/~client.d.ts +22 -0
  200. package/esm/src/api/subscription/~client.d.ts.map +1 -1
  201. package/esm/src/api/subscription/~client.js +23 -0
  202. package/esm/src/api/subscription/~client.js.map +1 -1
  203. package/esm/src/api/subscription/~mod.d.ts +1 -0
  204. package/esm/src/api/subscription/~mod.d.ts.map +1 -1
  205. package/esm/src/api/subscription/~mod.js +1 -0
  206. package/esm/src/api/subscription/~mod.js.map +1 -1
  207. package/esm/src/signing/_signTypedData.d.ts +1 -1
  208. package/esm/src/signing/_signTypedData.d.ts.map +1 -1
  209. package/esm/src/signing/_signTypedData.js +1 -1
  210. package/esm/src/signing/_signTypedData.js.map +1 -1
  211. package/esm/src/transport/websocket/_hyperliquid_event_target.d.ts +7 -0
  212. package/esm/src/transport/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  213. package/esm/src/transport/websocket/_hyperliquid_event_target.js.map +1 -1
  214. package/esm/src/transport/websocket/_websocket_async_request.d.ts.map +1 -1
  215. package/esm/src/transport/websocket/_websocket_async_request.js +6 -0
  216. package/esm/src/transport/websocket/_websocket_async_request.js.map +1 -1
  217. package/esm/src/utils/{_minimalEIP712Signer.d.ts → _eip712.d.ts} +16 -1
  218. package/esm/src/utils/_eip712.d.ts.map +1 -0
  219. package/esm/src/utils/{_minimalEIP712Signer.js → _eip712.js} +14 -11
  220. package/esm/src/utils/_eip712.js.map +1 -0
  221. package/esm/src/utils/_format.d.ts +3 -4
  222. package/esm/src/utils/_format.d.ts.map +1 -1
  223. package/esm/src/utils/_format.js +98 -88
  224. package/esm/src/utils/_format.js.map +1 -1
  225. package/esm/src/utils/_recover.d.ts +89 -0
  226. package/esm/src/utils/_recover.d.ts.map +1 -0
  227. package/esm/src/utils/_recover.js +119 -0
  228. package/esm/src/utils/_recover.js.map +1 -0
  229. package/esm/src/utils/mod.d.ts +1 -0
  230. package/esm/src/utils/mod.d.ts.map +1 -1
  231. package/esm/src/utils/mod.js +1 -0
  232. package/esm/src/utils/mod.js.map +1 -1
  233. package/package.json +3 -2
  234. package/script/bin/cli.js +2 -1
  235. package/script/bin/cli.js.map +1 -1
  236. package/script/src/api/_common_schemas.d.ts +19 -0
  237. package/script/src/api/_common_schemas.d.ts.map +1 -1
  238. package/script/src/api/_common_schemas.js +16 -1
  239. package/script/src/api/_common_schemas.js.map +1 -1
  240. package/script/src/api/exchange/_base/_execute.d.ts +6 -7
  241. package/script/src/api/exchange/_base/_execute.d.ts.map +1 -1
  242. package/script/src/api/exchange/_base/_execute.js +67 -43
  243. package/script/src/api/exchange/_base/_execute.js.map +1 -1
  244. package/script/src/api/exchange/_base/_types.d.ts +0 -7
  245. package/script/src/api/exchange/_base/_types.d.ts.map +1 -1
  246. package/script/src/api/exchange/_base/mod.d.ts +0 -2
  247. package/script/src/api/exchange/_base/mod.d.ts.map +1 -1
  248. package/script/src/api/exchange/_base/mod.js +0 -2
  249. package/script/src/api/exchange/_base/mod.js.map +1 -1
  250. package/script/src/api/exchange/agentEnableDexAbstraction.d.ts.map +1 -1
  251. package/script/src/api/exchange/agentEnableDexAbstraction.js +14 -7
  252. package/script/src/api/exchange/agentEnableDexAbstraction.js.map +1 -1
  253. package/script/src/api/exchange/approveAgent.d.ts.map +1 -1
  254. package/script/src/api/exchange/approveAgent.js +15 -7
  255. package/script/src/api/exchange/approveAgent.js.map +1 -1
  256. package/script/src/api/exchange/approveBuilderFee.d.ts.map +1 -1
  257. package/script/src/api/exchange/approveBuilderFee.js +15 -7
  258. package/script/src/api/exchange/approveBuilderFee.js.map +1 -1
  259. package/script/src/api/exchange/batchModify.d.ts.map +1 -1
  260. package/script/src/api/exchange/batchModify.js +16 -10
  261. package/script/src/api/exchange/batchModify.js.map +1 -1
  262. package/script/src/api/exchange/cDeposit.d.ts.map +1 -1
  263. package/script/src/api/exchange/cDeposit.js +15 -7
  264. package/script/src/api/exchange/cDeposit.js.map +1 -1
  265. package/script/src/api/exchange/cSignerAction.d.ts.map +1 -1
  266. package/script/src/api/exchange/cSignerAction.js +15 -8
  267. package/script/src/api/exchange/cSignerAction.js.map +1 -1
  268. package/script/src/api/exchange/cValidatorAction.d.ts.map +1 -1
  269. package/script/src/api/exchange/cValidatorAction.js +15 -8
  270. package/script/src/api/exchange/cValidatorAction.js.map +1 -1
  271. package/script/src/api/exchange/cWithdraw.d.ts.map +1 -1
  272. package/script/src/api/exchange/cWithdraw.js +15 -7
  273. package/script/src/api/exchange/cWithdraw.js.map +1 -1
  274. package/script/src/api/exchange/cancel.d.ts.map +1 -1
  275. package/script/src/api/exchange/cancel.js +16 -10
  276. package/script/src/api/exchange/cancel.js.map +1 -1
  277. package/script/src/api/exchange/cancelByCloid.d.ts.map +1 -1
  278. package/script/src/api/exchange/cancelByCloid.js +16 -10
  279. package/script/src/api/exchange/cancelByCloid.js.map +1 -1
  280. package/script/src/api/exchange/claimRewards.d.ts.map +1 -1
  281. package/script/src/api/exchange/claimRewards.js +14 -7
  282. package/script/src/api/exchange/claimRewards.js.map +1 -1
  283. package/script/src/api/exchange/convertToMultiSigUser.d.ts.map +1 -1
  284. package/script/src/api/exchange/convertToMultiSigUser.js +15 -7
  285. package/script/src/api/exchange/convertToMultiSigUser.js.map +1 -1
  286. package/script/src/api/exchange/createSubAccount.d.ts.map +1 -1
  287. package/script/src/api/exchange/createSubAccount.js +15 -8
  288. package/script/src/api/exchange/createSubAccount.js.map +1 -1
  289. package/script/src/api/exchange/createVault.d.ts.map +1 -1
  290. package/script/src/api/exchange/createVault.js +15 -8
  291. package/script/src/api/exchange/createVault.js.map +1 -1
  292. package/script/src/api/exchange/evmUserModify.d.ts +1 -1
  293. package/script/src/api/exchange/evmUserModify.d.ts.map +1 -1
  294. package/script/src/api/exchange/evmUserModify.js +16 -9
  295. package/script/src/api/exchange/evmUserModify.js.map +1 -1
  296. package/script/src/api/exchange/linkStakingUser.d.ts +112 -0
  297. package/script/src/api/exchange/linkStakingUser.d.ts.map +1 -0
  298. package/script/src/api/exchange/linkStakingUser.js +136 -0
  299. package/script/src/api/exchange/linkStakingUser.js.map +1 -0
  300. package/script/src/api/exchange/modify.d.ts.map +1 -1
  301. package/script/src/api/exchange/modify.js +16 -10
  302. package/script/src/api/exchange/modify.js.map +1 -1
  303. package/script/src/api/exchange/multiSig.d.ts +81 -0
  304. package/script/src/api/exchange/multiSig.d.ts.map +1 -1
  305. package/script/src/api/exchange/multiSig.js +17 -16
  306. package/script/src/api/exchange/multiSig.js.map +1 -1
  307. package/script/src/api/exchange/noop.d.ts.map +1 -1
  308. package/script/src/api/exchange/noop.js +14 -7
  309. package/script/src/api/exchange/noop.js.map +1 -1
  310. package/script/src/api/exchange/order.d.ts.map +1 -1
  311. package/script/src/api/exchange/order.js +16 -10
  312. package/script/src/api/exchange/order.js.map +1 -1
  313. package/script/src/api/exchange/perpDeploy.d.ts +58 -0
  314. package/script/src/api/exchange/perpDeploy.d.ts.map +1 -1
  315. package/script/src/api/exchange/perpDeploy.js +33 -8
  316. package/script/src/api/exchange/perpDeploy.js.map +1 -1
  317. package/script/src/api/exchange/registerReferrer.d.ts.map +1 -1
  318. package/script/src/api/exchange/registerReferrer.js +15 -8
  319. package/script/src/api/exchange/registerReferrer.js.map +1 -1
  320. package/script/src/api/exchange/reserveRequestWeight.d.ts.map +1 -1
  321. package/script/src/api/exchange/reserveRequestWeight.js +15 -8
  322. package/script/src/api/exchange/reserveRequestWeight.js.map +1 -1
  323. package/script/src/api/exchange/scheduleCancel.js +16 -10
  324. package/script/src/api/exchange/scheduleCancel.js.map +1 -1
  325. package/script/src/api/exchange/sendAsset.d.ts.map +1 -1
  326. package/script/src/api/exchange/sendAsset.js +15 -7
  327. package/script/src/api/exchange/sendAsset.js.map +1 -1
  328. package/script/src/api/exchange/setDisplayName.d.ts.map +1 -1
  329. package/script/src/api/exchange/setDisplayName.js +15 -8
  330. package/script/src/api/exchange/setDisplayName.js.map +1 -1
  331. package/script/src/api/exchange/setReferrer.d.ts.map +1 -1
  332. package/script/src/api/exchange/setReferrer.js +15 -8
  333. package/script/src/api/exchange/setReferrer.js.map +1 -1
  334. package/script/src/api/exchange/spotDeploy.d.ts.map +1 -1
  335. package/script/src/api/exchange/spotDeploy.js +15 -8
  336. package/script/src/api/exchange/spotDeploy.js.map +1 -1
  337. package/script/src/api/exchange/spotSend.d.ts.map +1 -1
  338. package/script/src/api/exchange/spotSend.js +15 -7
  339. package/script/src/api/exchange/spotSend.js.map +1 -1
  340. package/script/src/api/exchange/spotUser.d.ts.map +1 -1
  341. package/script/src/api/exchange/spotUser.js +15 -8
  342. package/script/src/api/exchange/spotUser.js.map +1 -1
  343. package/script/src/api/exchange/subAccountModify.d.ts.map +1 -1
  344. package/script/src/api/exchange/subAccountModify.js +15 -8
  345. package/script/src/api/exchange/subAccountModify.js.map +1 -1
  346. package/script/src/api/exchange/subAccountSpotTransfer.d.ts.map +1 -1
  347. package/script/src/api/exchange/subAccountSpotTransfer.js +15 -8
  348. package/script/src/api/exchange/subAccountSpotTransfer.js.map +1 -1
  349. package/script/src/api/exchange/subAccountTransfer.d.ts.map +1 -1
  350. package/script/src/api/exchange/subAccountTransfer.js +15 -8
  351. package/script/src/api/exchange/subAccountTransfer.js.map +1 -1
  352. package/script/src/api/exchange/tokenDelegate.d.ts.map +1 -1
  353. package/script/src/api/exchange/tokenDelegate.js +15 -7
  354. package/script/src/api/exchange/tokenDelegate.js.map +1 -1
  355. package/script/src/api/exchange/twapCancel.d.ts.map +1 -1
  356. package/script/src/api/exchange/twapCancel.js +16 -10
  357. package/script/src/api/exchange/twapCancel.js.map +1 -1
  358. package/script/src/api/exchange/twapOrder.d.ts.map +1 -1
  359. package/script/src/api/exchange/twapOrder.js +16 -10
  360. package/script/src/api/exchange/twapOrder.js.map +1 -1
  361. package/script/src/api/exchange/updateIsolatedMargin.d.ts.map +1 -1
  362. package/script/src/api/exchange/updateIsolatedMargin.js +16 -10
  363. package/script/src/api/exchange/updateIsolatedMargin.js.map +1 -1
  364. package/script/src/api/exchange/updateLeverage.d.ts.map +1 -1
  365. package/script/src/api/exchange/updateLeverage.js +16 -10
  366. package/script/src/api/exchange/updateLeverage.js.map +1 -1
  367. package/script/src/api/exchange/usdClassTransfer.d.ts.map +1 -1
  368. package/script/src/api/exchange/usdClassTransfer.js +15 -7
  369. package/script/src/api/exchange/usdClassTransfer.js.map +1 -1
  370. package/script/src/api/exchange/usdSend.d.ts.map +1 -1
  371. package/script/src/api/exchange/usdSend.js +15 -7
  372. package/script/src/api/exchange/usdSend.js.map +1 -1
  373. package/script/src/api/exchange/userDexAbstraction.d.ts.map +1 -1
  374. package/script/src/api/exchange/userDexAbstraction.js +15 -7
  375. package/script/src/api/exchange/userDexAbstraction.js.map +1 -1
  376. package/script/src/api/exchange/vaultDistribute.d.ts.map +1 -1
  377. package/script/src/api/exchange/vaultDistribute.js +15 -8
  378. package/script/src/api/exchange/vaultDistribute.js.map +1 -1
  379. package/script/src/api/exchange/vaultModify.d.ts.map +1 -1
  380. package/script/src/api/exchange/vaultModify.js +15 -8
  381. package/script/src/api/exchange/vaultModify.js.map +1 -1
  382. package/script/src/api/exchange/vaultTransfer.d.ts.map +1 -1
  383. package/script/src/api/exchange/vaultTransfer.js +15 -8
  384. package/script/src/api/exchange/vaultTransfer.js.map +1 -1
  385. package/script/src/api/exchange/withdraw3.d.ts.map +1 -1
  386. package/script/src/api/exchange/withdraw3.js +15 -7
  387. package/script/src/api/exchange/withdraw3.js.map +1 -1
  388. package/script/src/api/exchange/~client.d.ts +31 -3
  389. package/script/src/api/exchange/~client.d.ts.map +1 -1
  390. package/script/src/api/exchange/~client.js +29 -6
  391. package/script/src/api/exchange/~client.js.map +1 -1
  392. package/script/src/api/exchange/~mod.d.ts +1 -0
  393. package/script/src/api/exchange/~mod.d.ts.map +1 -1
  394. package/script/src/api/exchange/~mod.js +1 -0
  395. package/script/src/api/exchange/~mod.js.map +1 -1
  396. package/script/src/api/info/allPerpMetas.d.ts +5 -0
  397. package/script/src/api/info/allPerpMetas.d.ts.map +1 -1
  398. package/script/src/api/info/meta.d.ts +5 -0
  399. package/script/src/api/info/meta.d.ts.map +1 -1
  400. package/script/src/api/info/meta.js +2 -0
  401. package/script/src/api/info/meta.js.map +1 -1
  402. package/script/src/api/info/metaAndAssetCtxs.d.ts +5 -0
  403. package/script/src/api/info/metaAndAssetCtxs.d.ts.map +1 -1
  404. package/script/src/api/info/perpDexs.d.ts +4 -0
  405. package/script/src/api/info/perpDexs.d.ts.map +1 -1
  406. package/script/src/api/info/perpDexs.js +5 -0
  407. package/script/src/api/info/perpDexs.js.map +1 -1
  408. package/script/src/api/info/spotClearinghouseState.d.ts +0 -5
  409. package/script/src/api/info/spotClearinghouseState.d.ts.map +1 -1
  410. package/script/src/api/info/spotClearinghouseState.js +2 -14
  411. package/script/src/api/info/spotClearinghouseState.js.map +1 -1
  412. package/script/src/api/info/userFees.d.ts +27 -2
  413. package/script/src/api/info/userFees.d.ts.map +1 -1
  414. package/script/src/api/info/userFees.js +29 -1
  415. package/script/src/api/info/userFees.js.map +1 -1
  416. package/script/src/api/info/webData2.d.ts +6 -0
  417. package/script/src/api/info/webData2.d.ts.map +1 -1
  418. package/script/src/api/info/~client.d.ts +9 -1
  419. package/script/src/api/info/~client.d.ts.map +1 -1
  420. package/script/src/api/subscription/spotState.d.ts +91 -0
  421. package/script/src/api/subscription/spotState.d.ts.map +1 -0
  422. package/script/src/api/subscription/spotState.js +95 -0
  423. package/script/src/api/subscription/spotState.js.map +1 -0
  424. package/script/src/api/subscription/userEvents.d.ts +166 -141
  425. package/script/src/api/subscription/userEvents.d.ts.map +1 -1
  426. package/script/src/api/subscription/userEvents.js +6 -1
  427. package/script/src/api/subscription/userEvents.js.map +1 -1
  428. package/script/src/api/subscription/webData2.d.ts +5 -0
  429. package/script/src/api/subscription/webData2.d.ts.map +1 -1
  430. package/script/src/api/subscription/~client.d.ts +22 -0
  431. package/script/src/api/subscription/~client.d.ts.map +1 -1
  432. package/script/src/api/subscription/~client.js +23 -0
  433. package/script/src/api/subscription/~client.js.map +1 -1
  434. package/script/src/api/subscription/~mod.d.ts +1 -0
  435. package/script/src/api/subscription/~mod.d.ts.map +1 -1
  436. package/script/src/api/subscription/~mod.js +1 -0
  437. package/script/src/api/subscription/~mod.js.map +1 -1
  438. package/script/src/signing/_signTypedData.d.ts +1 -1
  439. package/script/src/signing/_signTypedData.d.ts.map +1 -1
  440. package/script/src/signing/_signTypedData.js +1 -1
  441. package/script/src/signing/_signTypedData.js.map +1 -1
  442. package/script/src/transport/websocket/_hyperliquid_event_target.d.ts +7 -0
  443. package/script/src/transport/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  444. package/script/src/transport/websocket/_hyperliquid_event_target.js.map +1 -1
  445. package/script/src/transport/websocket/_websocket_async_request.d.ts.map +1 -1
  446. package/script/src/transport/websocket/_websocket_async_request.js +6 -0
  447. package/script/src/transport/websocket/_websocket_async_request.js.map +1 -1
  448. package/script/src/utils/{_minimalEIP712Signer.d.ts → _eip712.d.ts} +16 -1
  449. package/script/src/utils/_eip712.d.ts.map +1 -0
  450. package/script/src/utils/{_minimalEIP712Signer.js → _eip712.js} +14 -9
  451. package/script/src/utils/_eip712.js.map +1 -0
  452. package/script/src/utils/_format.d.ts +3 -4
  453. package/script/src/utils/_format.d.ts.map +1 -1
  454. package/script/src/utils/_format.js +98 -88
  455. package/script/src/utils/_format.js.map +1 -1
  456. package/script/src/utils/_recover.d.ts +89 -0
  457. package/script/src/utils/_recover.d.ts.map +1 -0
  458. package/script/src/utils/_recover.js +156 -0
  459. package/script/src/utils/_recover.js.map +1 -0
  460. package/script/src/utils/mod.d.ts +1 -0
  461. package/script/src/utils/mod.d.ts.map +1 -1
  462. package/script/src/utils/mod.js +1 -0
  463. package/script/src/utils/mod.js.map +1 -1
  464. package/src/bin/cli.ts +2 -1
  465. package/src/src/api/_common_schemas.ts +34 -0
  466. package/src/src/api/exchange/_base/_execute.ts +73 -49
  467. package/src/src/api/exchange/_base/_types.ts +0 -7
  468. package/src/src/api/exchange/_base/mod.ts +0 -2
  469. package/src/src/api/exchange/agentEnableDexAbstraction.ts +14 -9
  470. package/src/src/api/exchange/approveAgent.ts +15 -12
  471. package/src/src/api/exchange/approveBuilderFee.ts +15 -12
  472. package/src/src/api/exchange/batchModify.ts +16 -13
  473. package/src/src/api/exchange/cDeposit.ts +15 -12
  474. package/src/src/api/exchange/cSignerAction.ts +15 -10
  475. package/src/src/api/exchange/cValidatorAction.ts +15 -10
  476. package/src/src/api/exchange/cWithdraw.ts +15 -12
  477. package/src/src/api/exchange/cancel.ts +16 -13
  478. package/src/src/api/exchange/cancelByCloid.ts +16 -13
  479. package/src/src/api/exchange/claimRewards.ts +14 -9
  480. package/src/src/api/exchange/convertToMultiSigUser.ts +15 -12
  481. package/src/src/api/exchange/createSubAccount.ts +15 -10
  482. package/src/src/api/exchange/createVault.ts +15 -10
  483. package/src/src/api/exchange/evmUserModify.ts +16 -11
  484. package/src/src/api/exchange/linkStakingUser.ts +157 -0
  485. package/src/src/api/exchange/modify.ts +16 -13
  486. package/src/src/api/exchange/multiSig.ts +17 -23
  487. package/src/src/api/exchange/noop.ts +14 -9
  488. package/src/src/api/exchange/order.ts +16 -13
  489. package/src/src/api/exchange/perpDeploy.ts +61 -10
  490. package/src/src/api/exchange/registerReferrer.ts +15 -10
  491. package/src/src/api/exchange/reserveRequestWeight.ts +15 -10
  492. package/src/src/api/exchange/scheduleCancel.ts +16 -13
  493. package/src/src/api/exchange/sendAsset.ts +15 -12
  494. package/src/src/api/exchange/setDisplayName.ts +15 -10
  495. package/src/src/api/exchange/setReferrer.ts +15 -10
  496. package/src/src/api/exchange/spotDeploy.ts +15 -10
  497. package/src/src/api/exchange/spotSend.ts +15 -12
  498. package/src/src/api/exchange/spotUser.ts +15 -10
  499. package/src/src/api/exchange/subAccountModify.ts +15 -10
  500. package/src/src/api/exchange/subAccountSpotTransfer.ts +15 -10
  501. package/src/src/api/exchange/subAccountTransfer.ts +15 -10
  502. package/src/src/api/exchange/tokenDelegate.ts +15 -12
  503. package/src/src/api/exchange/twapCancel.ts +16 -13
  504. package/src/src/api/exchange/twapOrder.ts +16 -13
  505. package/src/src/api/exchange/updateIsolatedMargin.ts +16 -13
  506. package/src/src/api/exchange/updateLeverage.ts +16 -13
  507. package/src/src/api/exchange/usdClassTransfer.ts +15 -12
  508. package/src/src/api/exchange/usdSend.ts +15 -12
  509. package/src/src/api/exchange/userDexAbstraction.ts +15 -12
  510. package/src/src/api/exchange/vaultDistribute.ts +15 -10
  511. package/src/src/api/exchange/vaultModify.ts +15 -10
  512. package/src/src/api/exchange/vaultTransfer.ts +15 -10
  513. package/src/src/api/exchange/withdraw3.ts +15 -12
  514. package/src/src/api/exchange/~client.ts +30 -5
  515. package/src/src/api/exchange/~mod.ts +1 -0
  516. package/src/src/api/info/meta.ts +7 -0
  517. package/src/src/api/info/perpDexs.ts +10 -0
  518. package/src/src/api/info/spotClearinghouseState.ts +3 -33
  519. package/src/src/api/info/userFees.ts +46 -1
  520. package/src/src/api/subscription/spotState.ts +96 -0
  521. package/src/src/api/subscription/userEvents.ts +11 -1
  522. package/src/src/api/subscription/~client.ts +25 -0
  523. package/src/src/api/subscription/~mod.ts +1 -0
  524. package/src/src/signing/_signTypedData.ts +1 -1
  525. package/src/src/transport/websocket/_hyperliquid_event_target.ts +7 -0
  526. package/src/src/transport/websocket/_websocket_async_request.ts +6 -0
  527. package/src/src/utils/{_minimalEIP712Signer.ts → _eip712.ts} +22 -29
  528. package/src/src/utils/_format.ts +99 -98
  529. package/src/src/utils/_recover.ts +178 -0
  530. package/src/src/utils/mod.ts +1 -0
  531. package/esm/src/api/exchange/_base/_sequential.d.ts +0 -30
  532. package/esm/src/api/exchange/_base/_sequential.d.ts.map +0 -1
  533. package/esm/src/api/exchange/_base/_sequential.js +0 -69
  534. package/esm/src/api/exchange/_base/_sequential.js.map +0 -1
  535. package/esm/src/utils/_minimalEIP712Signer.d.ts.map +0 -1
  536. package/esm/src/utils/_minimalEIP712Signer.js.map +0 -1
  537. package/script/src/api/exchange/_base/_sequential.d.ts +0 -30
  538. package/script/src/api/exchange/_base/_sequential.d.ts.map +0 -1
  539. package/script/src/api/exchange/_base/_sequential.js +0 -72
  540. package/script/src/api/exchange/_base/_sequential.js.map +0 -1
  541. package/script/src/utils/_minimalEIP712Signer.d.ts.map +0 -1
  542. package/script/src/utils/_minimalEIP712Signer.js.map +0 -1
  543. package/src/src/api/exchange/_base/_sequential.ts +0 -82
@@ -6,7 +6,6 @@ import {
6
6
  type ExtractRequestAction,
7
7
  type ExtractRequestOptions,
8
8
  getSignatureChainId,
9
- globalNonceManager,
10
9
  type MultiSignRequestConfig,
11
10
  Signature,
12
11
  } from "./_base/mod.js";
@@ -129,16 +128,20 @@ export async function tokenDelegate(
129
128
  params: DeepImmutable<TokenDelegateParameters>,
130
129
  opts?: TokenDelegateOptions,
131
130
  ): Promise<SuccessResponse> {
132
- const action = parser(TokenDelegateRequest.entries.action)({
133
- type: "tokenDelegate",
134
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
135
- signatureChainId: await getSignatureChainId(config),
136
- nonce: globalNonceManager.getNonce(),
137
- ...params,
131
+ const request = parser(TokenDelegateRequest)({
132
+ action: {
133
+ type: "tokenDelegate",
134
+ hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
135
+ signatureChainId: await getSignatureChainId(config),
136
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
137
+ ...params,
138
+ },
139
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
140
+ signature: { // Placeholder; actual signature generated in `executeUserSignedAction`
141
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
142
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
143
+ v: 27,
144
+ },
138
145
  });
139
- return await executeUserSignedAction(
140
- config,
141
- { action, types: TokenDelegateTypes },
142
- opts?.signal,
143
- );
146
+ return await executeUserSignedAction(config, request, TokenDelegateTypes, opts?.signal);
144
147
  }
@@ -186,18 +186,21 @@ export async function twapCancel(
186
186
  params: DeepImmutable<TwapCancelParameters>,
187
187
  opts?: TwapCancelOptions,
188
188
  ): Promise<TwapCancelSuccessResponse> {
189
- const action = parser(TwapCancelRequest.entries.action)({
190
- type: "twapCancel",
191
- ...params,
189
+ const request = parser(TwapCancelRequest)({
190
+ action: {
191
+ type: "twapCancel",
192
+ ...params,
193
+ },
194
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
195
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
196
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
197
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
198
+ v: 27,
199
+ },
200
+ vaultAddress: opts?.vaultAddress ?? config.defaultVaultAddress,
201
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
202
+ ? config.defaultExpiresAfter
203
+ : await config.defaultExpiresAfter?.(),
192
204
  });
193
-
194
- const vaultAddress_ = opts?.vaultAddress ?? config.defaultVaultAddress;
195
- const vaultAddress = parser(v.optional(Address))(vaultAddress_);
196
-
197
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
198
- ? config.defaultExpiresAfter
199
- : await config.defaultExpiresAfter?.();
200
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
201
-
202
- return await executeL1Action(config, { action, vaultAddress, expiresAfter }, opts?.signal);
205
+ return await executeL1Action(config, request, opts?.signal);
203
206
  }
@@ -245,18 +245,21 @@ export async function twapOrder(
245
245
  params: DeepImmutable<TwapOrderParameters>,
246
246
  opts?: TwapOrderOptions,
247
247
  ): Promise<TwapOrderSuccessResponse> {
248
- const action = parser(TwapOrderRequest.entries.action)({
249
- type: "twapOrder",
250
- ...params,
248
+ const request = parser(TwapOrderRequest)({
249
+ action: {
250
+ type: "twapOrder",
251
+ ...params,
252
+ },
253
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
254
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
255
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
256
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
257
+ v: 27,
258
+ },
259
+ vaultAddress: opts?.vaultAddress ?? config.defaultVaultAddress,
260
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
261
+ ? config.defaultExpiresAfter
262
+ : await config.defaultExpiresAfter?.(),
251
263
  });
252
-
253
- const vaultAddress_ = opts?.vaultAddress ?? config.defaultVaultAddress;
254
- const vaultAddress = parser(v.optional(Address))(vaultAddress_);
255
-
256
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
257
- ? config.defaultExpiresAfter
258
- : await config.defaultExpiresAfter?.();
259
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
260
-
261
- return await executeL1Action(config, { action, vaultAddress, expiresAfter }, opts?.signal);
264
+ return await executeL1Action(config, request, opts?.signal);
262
265
  }
@@ -111,18 +111,21 @@ export async function updateIsolatedMargin(
111
111
  params: DeepImmutable<UpdateIsolatedMarginParameters>,
112
112
  opts?: UpdateIsolatedMarginOptions,
113
113
  ): Promise<SuccessResponse> {
114
- const action = parser(UpdateIsolatedMarginRequest.entries.action)({
115
- type: "updateIsolatedMargin",
116
- ...params,
114
+ const request = parser(UpdateIsolatedMarginRequest)({
115
+ action: {
116
+ type: "updateIsolatedMargin",
117
+ ...params,
118
+ },
119
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
120
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
121
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
122
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
123
+ v: 27,
124
+ },
125
+ vaultAddress: opts?.vaultAddress ?? config.defaultVaultAddress,
126
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
127
+ ? config.defaultExpiresAfter
128
+ : await config.defaultExpiresAfter?.(),
117
129
  });
118
-
119
- const vaultAddress_ = opts?.vaultAddress ?? config.defaultVaultAddress;
120
- const vaultAddress = parser(v.optional(Address))(vaultAddress_);
121
-
122
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
123
- ? config.defaultExpiresAfter
124
- : await config.defaultExpiresAfter?.();
125
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
126
-
127
- return await executeL1Action(config, { action, vaultAddress, expiresAfter }, opts?.signal);
130
+ return await executeL1Action(config, request, opts?.signal);
128
131
  }
@@ -111,18 +111,21 @@ export async function updateLeverage(
111
111
  params: DeepImmutable<UpdateLeverageParameters>,
112
112
  opts?: UpdateLeverageOptions,
113
113
  ): Promise<SuccessResponse> {
114
- const action = parser(UpdateLeverageRequest.entries.action)({
115
- type: "updateLeverage",
116
- ...params,
114
+ const request = parser(UpdateLeverageRequest)({
115
+ action: {
116
+ type: "updateLeverage",
117
+ ...params,
118
+ },
119
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
120
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
121
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
122
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
123
+ v: 27,
124
+ },
125
+ vaultAddress: opts?.vaultAddress ?? config.defaultVaultAddress,
126
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
127
+ ? config.defaultExpiresAfter
128
+ : await config.defaultExpiresAfter?.(),
117
129
  });
118
-
119
- const vaultAddress_ = opts?.vaultAddress ?? config.defaultVaultAddress;
120
- const vaultAddress = parser(v.optional(Address))(vaultAddress_);
121
-
122
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
123
- ? config.defaultExpiresAfter
124
- : await config.defaultExpiresAfter?.();
125
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
126
-
127
- return await executeL1Action(config, { action, vaultAddress, expiresAfter }, opts?.signal);
130
+ return await executeL1Action(config, request, opts?.signal);
128
131
  }
@@ -6,7 +6,6 @@ import {
6
6
  type ExtractRequestAction,
7
7
  type ExtractRequestOptions,
8
8
  getSignatureChainId,
9
- globalNonceManager,
10
9
  type MultiSignRequestConfig,
11
10
  Signature,
12
11
  } from "./_base/mod.js";
@@ -123,16 +122,20 @@ export async function usdClassTransfer(
123
122
  params: DeepImmutable<UsdClassTransferParameters>,
124
123
  opts?: UsdClassTransferOptions,
125
124
  ): Promise<SuccessResponse> {
126
- const action = parser(UsdClassTransferRequest.entries.action)({
127
- type: "usdClassTransfer",
128
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
129
- signatureChainId: await getSignatureChainId(config),
130
- nonce: globalNonceManager.getNonce(),
131
- ...params,
125
+ const request = parser(UsdClassTransferRequest)({
126
+ action: {
127
+ type: "usdClassTransfer",
128
+ hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
129
+ signatureChainId: await getSignatureChainId(config),
130
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
131
+ ...params,
132
+ },
133
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
134
+ signature: { // Placeholder; actual signature generated in `executeUserSignedAction`
135
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
136
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
137
+ v: 27,
138
+ },
132
139
  });
133
- return await executeUserSignedAction(
134
- config,
135
- { action, types: UsdClassTransferTypes },
136
- opts?.signal,
137
- );
140
+ return await executeUserSignedAction(config, request, UsdClassTransferTypes, opts?.signal);
138
141
  }
@@ -6,7 +6,6 @@ import {
6
6
  type ExtractRequestAction,
7
7
  type ExtractRequestOptions,
8
8
  getSignatureChainId,
9
- globalNonceManager,
10
9
  type MultiSignRequestConfig,
11
10
  Signature,
12
11
  } from "./_base/mod.js";
@@ -123,16 +122,20 @@ export async function usdSend(
123
122
  params: DeepImmutable<UsdSendParameters>,
124
123
  opts?: UsdSendOptions,
125
124
  ): Promise<SuccessResponse> {
126
- const action = parser(UsdSendRequest.entries.action)({
127
- type: "usdSend",
128
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
129
- signatureChainId: await getSignatureChainId(config),
130
- time: globalNonceManager.getNonce(),
131
- ...params,
125
+ const request = parser(UsdSendRequest)({
126
+ action: {
127
+ type: "usdSend",
128
+ hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
129
+ signatureChainId: await getSignatureChainId(config),
130
+ time: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
131
+ ...params,
132
+ },
133
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
134
+ signature: { // Placeholder; actual signature generated in `executeUserSignedAction`
135
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
136
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
137
+ v: 27,
138
+ },
132
139
  });
133
- return await executeUserSignedAction(
134
- config,
135
- { action, types: UsdSendTypes },
136
- opts?.signal,
137
- );
140
+ return await executeUserSignedAction(config, request, UsdSendTypes, opts?.signal);
138
141
  }
@@ -6,7 +6,6 @@ import {
6
6
  type ExtractRequestAction,
7
7
  type ExtractRequestOptions,
8
8
  getSignatureChainId,
9
- globalNonceManager,
10
9
  type MultiSignRequestConfig,
11
10
  Signature,
12
11
  } from "./_base/mod.js";
@@ -127,16 +126,20 @@ export async function userDexAbstraction(
127
126
  params: DeepImmutable<UserDexAbstractionExchangeParameters>,
128
127
  opts?: UserDexAbstractionExchangeOptions,
129
128
  ): Promise<SuccessResponse> {
130
- const action = parser(UserDexAbstractionExchangeRequest.entries.action)({
131
- type: "userDexAbstraction",
132
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
133
- signatureChainId: await getSignatureChainId(config),
134
- nonce: globalNonceManager.getNonce(),
135
- ...params,
129
+ const request = parser(UserDexAbstractionExchangeRequest)({
130
+ action: {
131
+ type: "userDexAbstraction",
132
+ hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
133
+ signatureChainId: await getSignatureChainId(config),
134
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
135
+ ...params,
136
+ },
137
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
138
+ signature: { // Placeholder; actual signature generated in `executeUserSignedAction`
139
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
140
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
141
+ v: 27,
142
+ },
136
143
  });
137
- return await executeUserSignedAction(
138
- config,
139
- { action, types: UserDexAbstractionTypes },
140
- opts?.signal,
141
- );
144
+ return await executeUserSignedAction(config, request, UserDexAbstractionTypes, opts?.signal);
142
145
  }
@@ -108,15 +108,20 @@ export async function vaultDistribute(
108
108
  params: DeepImmutable<VaultDistributeParameters>,
109
109
  opts?: VaultDistributeOptions,
110
110
  ): Promise<SuccessResponse> {
111
- const action = parser(VaultDistributeRequest.entries.action)({
112
- type: "vaultDistribute",
113
- ...params,
111
+ const request = parser(VaultDistributeRequest)({
112
+ action: {
113
+ type: "vaultDistribute",
114
+ ...params,
115
+ },
116
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
117
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
118
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
119
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
120
+ v: 27,
121
+ },
122
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
123
+ ? config.defaultExpiresAfter
124
+ : await config.defaultExpiresAfter?.(),
114
125
  });
115
-
116
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
117
- ? config.defaultExpiresAfter
118
- : await config.defaultExpiresAfter?.();
119
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
120
-
121
- return await executeL1Action(config, { action, expiresAfter }, opts?.signal);
126
+ return await executeL1Action(config, request, opts?.signal);
122
127
  }
@@ -110,15 +110,20 @@ export async function vaultModify(
110
110
  params: DeepImmutable<VaultModifyParameters>,
111
111
  opts?: VaultModifyOptions,
112
112
  ): Promise<SuccessResponse> {
113
- const action = parser(VaultModifyRequest.entries.action)({
114
- type: "vaultModify",
115
- ...params,
113
+ const request = parser(VaultModifyRequest)({
114
+ action: {
115
+ type: "vaultModify",
116
+ ...params,
117
+ },
118
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
119
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
120
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
121
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
122
+ v: 27,
123
+ },
124
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
125
+ ? config.defaultExpiresAfter
126
+ : await config.defaultExpiresAfter?.(),
116
127
  });
117
-
118
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
119
- ? config.defaultExpiresAfter
120
- : await config.defaultExpiresAfter?.();
121
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
122
-
123
- return await executeL1Action(config, { action, expiresAfter }, opts?.signal);
128
+ return await executeL1Action(config, request, opts?.signal);
124
129
  }
@@ -106,15 +106,20 @@ export async function vaultTransfer(
106
106
  params: DeepImmutable<VaultTransferParameters>,
107
107
  opts?: VaultTransferOptions,
108
108
  ): Promise<SuccessResponse> {
109
- const action = parser(VaultTransferRequest.entries.action)({
110
- type: "vaultTransfer",
111
- ...params,
109
+ const request = parser(VaultTransferRequest)({
110
+ action: {
111
+ type: "vaultTransfer",
112
+ ...params,
113
+ },
114
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
115
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
116
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
117
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
118
+ v: 27,
119
+ },
120
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
121
+ ? config.defaultExpiresAfter
122
+ : await config.defaultExpiresAfter?.(),
112
123
  });
113
-
114
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
115
- ? config.defaultExpiresAfter
116
- : await config.defaultExpiresAfter?.();
117
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
118
-
119
- return await executeL1Action(config, { action, expiresAfter }, opts?.signal);
124
+ return await executeL1Action(config, request, opts?.signal);
120
125
  }
@@ -6,7 +6,6 @@ import {
6
6
  type ExtractRequestAction,
7
7
  type ExtractRequestOptions,
8
8
  getSignatureChainId,
9
- globalNonceManager,
10
9
  type MultiSignRequestConfig,
11
10
  Signature,
12
11
  } from "./_base/mod.js";
@@ -123,16 +122,20 @@ export async function withdraw3(
123
122
  params: DeepImmutable<Withdraw3Parameters>,
124
123
  opts?: Withdraw3Options,
125
124
  ): Promise<SuccessResponse> {
126
- const action = parser(Withdraw3Request.entries.action)({
127
- type: "withdraw3",
128
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
129
- signatureChainId: await getSignatureChainId(config),
130
- time: globalNonceManager.getNonce(),
131
- ...params,
125
+ const request = parser(Withdraw3Request)({
126
+ action: {
127
+ type: "withdraw3",
128
+ hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
129
+ signatureChainId: await getSignatureChainId(config),
130
+ time: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
131
+ ...params,
132
+ },
133
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
134
+ signature: { // Placeholder; actual signature generated in `executeUserSignedAction`
135
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
136
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
137
+ v: 27,
138
+ },
132
139
  });
133
- return await executeUserSignedAction(
134
- config,
135
- { action, types: Withdraw3Types },
136
- opts?.signal,
137
- );
140
+ return await executeUserSignedAction(config, request, Withdraw3Types, opts?.signal);
138
141
  }
@@ -2,7 +2,7 @@ import type { MaybePromise, OmitFirst, OverloadedParameters } from "../_base.js"
2
2
  import type { ExchangeRequestConfig, MultiSignRequestConfig } from "./_base/mod.js";
3
3
  import type { IRequestTransport } from "../../transport/base.js";
4
4
  import type { AbstractWallet } from "../../signing/mod.js";
5
- import { PrivateKeyEIP712Signer } from "../../utils/_minimalEIP712Signer.js";
5
+ import { PrivateKeyEIP712Signer } from "../../utils/_eip712.js";
6
6
 
7
7
  import { agentEnableDexAbstraction } from "./agentEnableDexAbstraction.js";
8
8
  import { approveAgent } from "./approveAgent.js";
@@ -19,6 +19,7 @@ import { cSignerAction } from "./cSignerAction.js";
19
19
  import { cValidatorAction } from "./cValidatorAction.js";
20
20
  import { cWithdraw } from "./cWithdraw.js";
21
21
  import { evmUserModify } from "./evmUserModify.js";
22
+ import { linkStakingUser } from "./linkStakingUser.js";
22
23
  import { modify } from "./modify.js";
23
24
  import { multiSig } from "./multiSig.js";
24
25
  import { order } from "./order.js";
@@ -64,6 +65,7 @@ export type { CSignerActionOptions, CSignerActionParameters } from "./cSignerAct
64
65
  export type { CValidatorActionOptions, CValidatorActionParameters } from "./cValidatorAction.js";
65
66
  export type { CWithdrawOptions, CWithdrawParameters } from "./cWithdraw.js";
66
67
  export type { EvmUserModifyOptions, EvmUserModifyParameters } from "./evmUserModify.js";
68
+ export type { LinkStakingUserOptions, LinkStakingUserParameters } from "./linkStakingUser.js";
67
69
  export type { ModifyOptions, ModifyParameters } from "./modify.js";
68
70
  export type { MultiSigOptions, MultiSigParameters } from "./multiSig.js";
69
71
  export type { OrderOptions, OrderParameters } from "./order.js";
@@ -118,7 +120,6 @@ export class ExchangeClient<
118
120
  signatureChainId?: string | (() => MaybePromise<string>);
119
121
  defaultVaultAddress?: string;
120
122
  defaultExpiresAfter?: number | (() => MaybePromise<number>);
121
- sequentialRequests?: boolean;
122
123
 
123
124
  /**
124
125
  * Initialises a new instance.
@@ -181,7 +182,6 @@ export class ExchangeClient<
181
182
  this.defaultVaultAddress = args.defaultVaultAddress;
182
183
  this.defaultExpiresAfter = args.defaultExpiresAfter;
183
184
  this.signatureChainId = args.signatureChainId;
184
- this.sequentialRequests = args.sequentialRequests;
185
185
  }
186
186
 
187
187
  /**
@@ -609,7 +609,7 @@ export class ExchangeClient<
609
609
  * Configure block type for EVM transactions.
610
610
  * @param params - Parameters specific to the API request.
611
611
  * @param opts - Request execution options.
612
- * @returns Response for creating a sub-account.
612
+ * @returns Successful response without specific data.
613
613
  *
614
614
  * @throws {ApiRequestError} When the API returns an unsuccessful response.
615
615
  * @throws {TransportError} When the transport layer throws an error.
@@ -630,6 +630,31 @@ export class ExchangeClient<
630
630
  return evmUserModify(this, ...args);
631
631
  }
632
632
 
633
+ /**
634
+ * Link staking and trading accounts for fee discount attribution.
635
+ * @param params - Parameters specific to the API request.
636
+ * @param opts - Request execution options.
637
+ * @returns Successful response without specific data.
638
+ *
639
+ * @throws {ApiRequestError} When the API returns an unsuccessful response.
640
+ * @throws {TransportError} When the transport layer throws an error.
641
+ *
642
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/trading/fees#staking-linking
643
+ * @example
644
+ * ```ts
645
+ * import * as hl from "@nktkas/hyperliquid";
646
+ *
647
+ * const pk = "0x..."; // viem, ethers or private key
648
+ * const transport = new hl.HttpTransport(); // or `WebSocketTransport`
649
+ *
650
+ * const client = new hl.ExchangeClient({ transport, wallet: pk });
651
+ * await client.linkStakingUser({ user: "0x...", isFinalize: false });
652
+ * ```
653
+ */
654
+ linkStakingUser(...args: OmitFirst<OverloadedParameters<typeof linkStakingUser>>) {
655
+ return linkStakingUser(this, ...args);
656
+ }
657
+
633
658
  /**
634
659
  * Modify an order.
635
660
  * @param params - Parameters specific to the API request.
@@ -1492,7 +1517,7 @@ export class MultiSignClient<
1492
1517
  /**
1493
1518
  * @note Is the first wallet from {@linkcode signers}. Changing the property also changes the first element in the {@linkcode signers} array.
1494
1519
  */
1495
- declare readonly wallet: S[0];
1520
+ declare wallet: S[0];
1496
1521
 
1497
1522
  /**
1498
1523
  * Initialises a new multi-signature client instance.
@@ -55,6 +55,7 @@ export * from "./cSignerAction.js";
55
55
  export * from "./cValidatorAction.js";
56
56
  export * from "./cWithdraw.js";
57
57
  export * from "./evmUserModify.js";
58
+ export * from "./linkStakingUser.js";
58
59
  export * from "./modify.js";
59
60
  export * from "./multiSig.js";
60
61
  export * from "./order.js";
@@ -73,6 +73,13 @@ export const MetaResponse = /* @__PURE__ */ (() => {
73
73
  v.optional(v.literal(true)),
74
74
  v.description("Indicates if the universe is delisted."),
75
75
  ),
76
+ /** Trading margin mode constraint. */
77
+ marginMode: v.pipe(
78
+ v.optional(
79
+ v.union([v.literal("strictIsolated"), v.literal("noCross")]),
80
+ ),
81
+ v.description("Trading margin mode constraint."),
82
+ ),
76
83
  }),
77
84
  v.description("Trading universe parameters for perpetual asset."),
78
85
  ),
@@ -63,6 +63,16 @@ export const PerpDexsResponse = /* @__PURE__ */ (() => {
63
63
  v.array(v.tuple([v.string(), v.string()])),
64
64
  v.description("Mapping of asset names to their streaming open interest caps."),
65
65
  ),
66
+ /** List of delegated function names and their authorized executor addresses. */
67
+ subDeployers: v.pipe(
68
+ v.array(
69
+ v.tuple([
70
+ v.string(),
71
+ v.array(Address),
72
+ ]),
73
+ ),
74
+ v.description("List of delegated function names and their authorized executor addresses."),
75
+ ),
66
76
  }),
67
77
  v.description(" Perpetual dex metadata."),
68
78
  ),
@@ -2,6 +2,8 @@ import * as v from "valibot";
2
2
  import { Address, type DeepImmutable, parser, UnsignedDecimal, UnsignedInteger } from "../_base.js";
3
3
  import type { InfoRequestConfig } from "./_types.js";
4
4
 
5
+ import { BalanceSchema } from "../_common_schemas.js";
6
+
5
7
  // -------------------- Schemas --------------------
6
8
 
7
9
  /**
@@ -41,39 +43,7 @@ export const SpotClearinghouseStateResponse = /* @__PURE__ */ (() => {
41
43
  v.object({
42
44
  /** Balance for each token. */
43
45
  balances: v.pipe(
44
- v.array(
45
- /** Balance for a specific spot token. */
46
- v.pipe(
47
- v.object({
48
- /** Asset symbol. */
49
- coin: v.pipe(
50
- v.string(),
51
- v.description("Asset symbol."),
52
- ),
53
- /** Unique identifier for the token. */
54
- token: v.pipe(
55
- UnsignedInteger,
56
- v.description("Unique identifier for the token."),
57
- ),
58
- /** Total balance. */
59
- total: v.pipe(
60
- UnsignedDecimal,
61
- v.description("Total balance."),
62
- ),
63
- /** Amount on hold. */
64
- hold: v.pipe(
65
- UnsignedDecimal,
66
- v.description("Amount on hold."),
67
- ),
68
- /** Entry notional value. */
69
- entryNtl: v.pipe(
70
- UnsignedDecimal,
71
- v.description("Entry notional value."),
72
- ),
73
- }),
74
- v.description("Balance for a specific spot token."),
75
- ),
76
- ),
46
+ v.array(BalanceSchema),
77
47
  v.description("Balance for each token."),
78
48
  ),
79
49
  /** Escrowed balances. */