@nktkas/hyperliquid 0.25.6 → 0.25.8

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 (544) hide show
  1. package/CONTRIBUTING.md +26 -19
  2. package/README.md +106 -9
  3. package/esm/bin/cli.js +1 -0
  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.map +1 -1
  73. package/esm/src/api/exchange/multiSig.js +17 -16
  74. package/esm/src/api/exchange/multiSig.js.map +1 -1
  75. package/esm/src/api/exchange/noop.d.ts.map +1 -1
  76. package/esm/src/api/exchange/noop.js +14 -7
  77. package/esm/src/api/exchange/noop.js.map +1 -1
  78. package/esm/src/api/exchange/order.d.ts.map +1 -1
  79. package/esm/src/api/exchange/order.js +16 -10
  80. package/esm/src/api/exchange/order.js.map +1 -1
  81. package/esm/src/api/exchange/perpDeploy.d.ts.map +1 -1
  82. package/esm/src/api/exchange/perpDeploy.js +15 -8
  83. package/esm/src/api/exchange/perpDeploy.js.map +1 -1
  84. package/esm/src/api/exchange/registerReferrer.d.ts.map +1 -1
  85. package/esm/src/api/exchange/registerReferrer.js +15 -8
  86. package/esm/src/api/exchange/registerReferrer.js.map +1 -1
  87. package/esm/src/api/exchange/reserveRequestWeight.d.ts.map +1 -1
  88. package/esm/src/api/exchange/reserveRequestWeight.js +15 -8
  89. package/esm/src/api/exchange/reserveRequestWeight.js.map +1 -1
  90. package/esm/src/api/exchange/scheduleCancel.js +16 -10
  91. package/esm/src/api/exchange/scheduleCancel.js.map +1 -1
  92. package/esm/src/api/exchange/sendAsset.d.ts.map +1 -1
  93. package/esm/src/api/exchange/sendAsset.js +16 -8
  94. package/esm/src/api/exchange/sendAsset.js.map +1 -1
  95. package/esm/src/api/exchange/setDisplayName.d.ts.map +1 -1
  96. package/esm/src/api/exchange/setDisplayName.js +15 -8
  97. package/esm/src/api/exchange/setDisplayName.js.map +1 -1
  98. package/esm/src/api/exchange/setReferrer.d.ts.map +1 -1
  99. package/esm/src/api/exchange/setReferrer.js +15 -8
  100. package/esm/src/api/exchange/setReferrer.js.map +1 -1
  101. package/esm/src/api/exchange/spotDeploy.d.ts.map +1 -1
  102. package/esm/src/api/exchange/spotDeploy.js +15 -8
  103. package/esm/src/api/exchange/spotDeploy.js.map +1 -1
  104. package/esm/src/api/exchange/spotSend.d.ts.map +1 -1
  105. package/esm/src/api/exchange/spotSend.js +16 -8
  106. package/esm/src/api/exchange/spotSend.js.map +1 -1
  107. package/esm/src/api/exchange/spotUser.d.ts.map +1 -1
  108. package/esm/src/api/exchange/spotUser.js +15 -8
  109. package/esm/src/api/exchange/spotUser.js.map +1 -1
  110. package/esm/src/api/exchange/subAccountModify.d.ts.map +1 -1
  111. package/esm/src/api/exchange/subAccountModify.js +15 -8
  112. package/esm/src/api/exchange/subAccountModify.js.map +1 -1
  113. package/esm/src/api/exchange/subAccountSpotTransfer.d.ts.map +1 -1
  114. package/esm/src/api/exchange/subAccountSpotTransfer.js +15 -8
  115. package/esm/src/api/exchange/subAccountSpotTransfer.js.map +1 -1
  116. package/esm/src/api/exchange/subAccountTransfer.d.ts.map +1 -1
  117. package/esm/src/api/exchange/subAccountTransfer.js +15 -8
  118. package/esm/src/api/exchange/subAccountTransfer.js.map +1 -1
  119. package/esm/src/api/exchange/tokenDelegate.d.ts.map +1 -1
  120. package/esm/src/api/exchange/tokenDelegate.js +16 -8
  121. package/esm/src/api/exchange/tokenDelegate.js.map +1 -1
  122. package/esm/src/api/exchange/twapCancel.d.ts.map +1 -1
  123. package/esm/src/api/exchange/twapCancel.js +16 -10
  124. package/esm/src/api/exchange/twapCancel.js.map +1 -1
  125. package/esm/src/api/exchange/twapOrder.d.ts.map +1 -1
  126. package/esm/src/api/exchange/twapOrder.js +16 -10
  127. package/esm/src/api/exchange/twapOrder.js.map +1 -1
  128. package/esm/src/api/exchange/updateIsolatedMargin.d.ts.map +1 -1
  129. package/esm/src/api/exchange/updateIsolatedMargin.js +16 -10
  130. package/esm/src/api/exchange/updateIsolatedMargin.js.map +1 -1
  131. package/esm/src/api/exchange/updateLeverage.d.ts.map +1 -1
  132. package/esm/src/api/exchange/updateLeverage.js +16 -10
  133. package/esm/src/api/exchange/updateLeverage.js.map +1 -1
  134. package/esm/src/api/exchange/usdClassTransfer.d.ts.map +1 -1
  135. package/esm/src/api/exchange/usdClassTransfer.js +16 -8
  136. package/esm/src/api/exchange/usdClassTransfer.js.map +1 -1
  137. package/esm/src/api/exchange/usdSend.d.ts.map +1 -1
  138. package/esm/src/api/exchange/usdSend.js +16 -8
  139. package/esm/src/api/exchange/usdSend.js.map +1 -1
  140. package/esm/src/api/exchange/userDexAbstraction.d.ts.map +1 -1
  141. package/esm/src/api/exchange/userDexAbstraction.js +16 -8
  142. package/esm/src/api/exchange/userDexAbstraction.js.map +1 -1
  143. package/esm/src/api/exchange/vaultDistribute.d.ts.map +1 -1
  144. package/esm/src/api/exchange/vaultDistribute.js +15 -8
  145. package/esm/src/api/exchange/vaultDistribute.js.map +1 -1
  146. package/esm/src/api/exchange/vaultModify.d.ts.map +1 -1
  147. package/esm/src/api/exchange/vaultModify.js +15 -8
  148. package/esm/src/api/exchange/vaultModify.js.map +1 -1
  149. package/esm/src/api/exchange/vaultTransfer.d.ts.map +1 -1
  150. package/esm/src/api/exchange/vaultTransfer.js +15 -8
  151. package/esm/src/api/exchange/vaultTransfer.js.map +1 -1
  152. package/esm/src/api/exchange/withdraw3.d.ts.map +1 -1
  153. package/esm/src/api/exchange/withdraw3.js +16 -8
  154. package/esm/src/api/exchange/withdraw3.js.map +1 -1
  155. package/esm/src/api/exchange/~client.d.ts +31 -3
  156. package/esm/src/api/exchange/~client.d.ts.map +1 -1
  157. package/esm/src/api/exchange/~client.js +27 -4
  158. package/esm/src/api/exchange/~client.js.map +1 -1
  159. package/esm/src/api/exchange/~mod.d.ts +1 -0
  160. package/esm/src/api/exchange/~mod.d.ts.map +1 -1
  161. package/esm/src/api/exchange/~mod.js +1 -0
  162. package/esm/src/api/exchange/~mod.js.map +1 -1
  163. package/esm/src/api/info/allPerpMetas.d.ts +5 -0
  164. package/esm/src/api/info/allPerpMetas.d.ts.map +1 -1
  165. package/esm/src/api/info/meta.d.ts +5 -0
  166. package/esm/src/api/info/meta.d.ts.map +1 -1
  167. package/esm/src/api/info/meta.js +2 -0
  168. package/esm/src/api/info/meta.js.map +1 -1
  169. package/esm/src/api/info/metaAndAssetCtxs.d.ts +5 -0
  170. package/esm/src/api/info/metaAndAssetCtxs.d.ts.map +1 -1
  171. package/esm/src/api/info/perpDexs.d.ts +4 -0
  172. package/esm/src/api/info/perpDexs.d.ts.map +1 -1
  173. package/esm/src/api/info/perpDexs.js +5 -0
  174. package/esm/src/api/info/perpDexs.js.map +1 -1
  175. package/esm/src/api/info/spotClearinghouseState.d.ts +0 -5
  176. package/esm/src/api/info/spotClearinghouseState.d.ts.map +1 -1
  177. package/esm/src/api/info/spotClearinghouseState.js +2 -14
  178. package/esm/src/api/info/spotClearinghouseState.js.map +1 -1
  179. package/esm/src/api/info/userFees.d.ts +27 -2
  180. package/esm/src/api/info/userFees.d.ts.map +1 -1
  181. package/esm/src/api/info/userFees.js +29 -1
  182. package/esm/src/api/info/userFees.js.map +1 -1
  183. package/esm/src/api/info/webData2.d.ts +152 -23
  184. package/esm/src/api/info/webData2.d.ts.map +1 -1
  185. package/esm/src/api/info/webData2.js +3 -54
  186. package/esm/src/api/info/webData2.js.map +1 -1
  187. package/esm/src/api/info/~client.d.ts +11 -3
  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/webData2.d.ts +9 -4
  194. package/esm/src/api/subscription/webData2.d.ts.map +1 -1
  195. package/esm/src/api/subscription/webData2.js +1 -1
  196. package/esm/src/api/subscription/webData2.js.map +1 -1
  197. package/esm/src/api/subscription/webData3.d.ts +541 -0
  198. package/esm/src/api/subscription/webData3.d.ts.map +1 -0
  199. package/esm/src/api/subscription/webData3.js +94 -0
  200. package/esm/src/api/subscription/webData3.js.map +1 -0
  201. package/esm/src/api/subscription/~client.d.ts +44 -0
  202. package/esm/src/api/subscription/~client.d.ts.map +1 -1
  203. package/esm/src/api/subscription/~client.js +46 -0
  204. package/esm/src/api/subscription/~client.js.map +1 -1
  205. package/esm/src/api/subscription/~mod.d.ts +2 -0
  206. package/esm/src/api/subscription/~mod.d.ts.map +1 -1
  207. package/esm/src/api/subscription/~mod.js +2 -0
  208. package/esm/src/api/subscription/~mod.js.map +1 -1
  209. package/esm/src/signing/_signTypedData.d.ts +1 -1
  210. package/esm/src/signing/_signTypedData.d.ts.map +1 -1
  211. package/esm/src/signing/_signTypedData.js +1 -1
  212. package/esm/src/signing/_signTypedData.js.map +1 -1
  213. package/esm/src/utils/{_minimalEIP712Signer.d.ts → _eip712.d.ts} +16 -1
  214. package/esm/src/utils/_eip712.d.ts.map +1 -0
  215. package/esm/src/utils/{_minimalEIP712Signer.js → _eip712.js} +14 -11
  216. package/esm/src/utils/_eip712.js.map +1 -0
  217. package/esm/src/utils/_format.d.ts +28 -0
  218. package/esm/src/utils/_format.d.ts.map +1 -0
  219. package/esm/src/utils/_format.js +157 -0
  220. package/esm/src/utils/_format.js.map +1 -0
  221. package/esm/src/utils/_recover.d.ts +89 -0
  222. package/esm/src/utils/_recover.d.ts.map +1 -0
  223. package/esm/src/utils/_recover.js +119 -0
  224. package/esm/src/utils/_recover.js.map +1 -0
  225. package/esm/src/utils/_symbolConverter.d.ts +13 -0
  226. package/esm/src/utils/_symbolConverter.d.ts.map +1 -1
  227. package/esm/src/utils/_symbolConverter.js +17 -0
  228. package/esm/src/utils/_symbolConverter.js.map +1 -1
  229. package/esm/src/utils/mod.d.ts +2 -0
  230. package/esm/src/utils/mod.d.ts.map +1 -1
  231. package/esm/src/utils/mod.js +2 -0
  232. package/esm/src/utils/mod.js.map +1 -1
  233. package/package.json +3 -2
  234. package/script/bin/cli.js +1 -0
  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.map +1 -1
  304. package/script/src/api/exchange/multiSig.js +17 -16
  305. package/script/src/api/exchange/multiSig.js.map +1 -1
  306. package/script/src/api/exchange/noop.d.ts.map +1 -1
  307. package/script/src/api/exchange/noop.js +14 -7
  308. package/script/src/api/exchange/noop.js.map +1 -1
  309. package/script/src/api/exchange/order.d.ts.map +1 -1
  310. package/script/src/api/exchange/order.js +16 -10
  311. package/script/src/api/exchange/order.js.map +1 -1
  312. package/script/src/api/exchange/perpDeploy.d.ts.map +1 -1
  313. package/script/src/api/exchange/perpDeploy.js +15 -8
  314. package/script/src/api/exchange/perpDeploy.js.map +1 -1
  315. package/script/src/api/exchange/registerReferrer.d.ts.map +1 -1
  316. package/script/src/api/exchange/registerReferrer.js +15 -8
  317. package/script/src/api/exchange/registerReferrer.js.map +1 -1
  318. package/script/src/api/exchange/reserveRequestWeight.d.ts.map +1 -1
  319. package/script/src/api/exchange/reserveRequestWeight.js +15 -8
  320. package/script/src/api/exchange/reserveRequestWeight.js.map +1 -1
  321. package/script/src/api/exchange/scheduleCancel.js +16 -10
  322. package/script/src/api/exchange/scheduleCancel.js.map +1 -1
  323. package/script/src/api/exchange/sendAsset.d.ts.map +1 -1
  324. package/script/src/api/exchange/sendAsset.js +15 -7
  325. package/script/src/api/exchange/sendAsset.js.map +1 -1
  326. package/script/src/api/exchange/setDisplayName.d.ts.map +1 -1
  327. package/script/src/api/exchange/setDisplayName.js +15 -8
  328. package/script/src/api/exchange/setDisplayName.js.map +1 -1
  329. package/script/src/api/exchange/setReferrer.d.ts.map +1 -1
  330. package/script/src/api/exchange/setReferrer.js +15 -8
  331. package/script/src/api/exchange/setReferrer.js.map +1 -1
  332. package/script/src/api/exchange/spotDeploy.d.ts.map +1 -1
  333. package/script/src/api/exchange/spotDeploy.js +15 -8
  334. package/script/src/api/exchange/spotDeploy.js.map +1 -1
  335. package/script/src/api/exchange/spotSend.d.ts.map +1 -1
  336. package/script/src/api/exchange/spotSend.js +15 -7
  337. package/script/src/api/exchange/spotSend.js.map +1 -1
  338. package/script/src/api/exchange/spotUser.d.ts.map +1 -1
  339. package/script/src/api/exchange/spotUser.js +15 -8
  340. package/script/src/api/exchange/spotUser.js.map +1 -1
  341. package/script/src/api/exchange/subAccountModify.d.ts.map +1 -1
  342. package/script/src/api/exchange/subAccountModify.js +15 -8
  343. package/script/src/api/exchange/subAccountModify.js.map +1 -1
  344. package/script/src/api/exchange/subAccountSpotTransfer.d.ts.map +1 -1
  345. package/script/src/api/exchange/subAccountSpotTransfer.js +15 -8
  346. package/script/src/api/exchange/subAccountSpotTransfer.js.map +1 -1
  347. package/script/src/api/exchange/subAccountTransfer.d.ts.map +1 -1
  348. package/script/src/api/exchange/subAccountTransfer.js +15 -8
  349. package/script/src/api/exchange/subAccountTransfer.js.map +1 -1
  350. package/script/src/api/exchange/tokenDelegate.d.ts.map +1 -1
  351. package/script/src/api/exchange/tokenDelegate.js +15 -7
  352. package/script/src/api/exchange/tokenDelegate.js.map +1 -1
  353. package/script/src/api/exchange/twapCancel.d.ts.map +1 -1
  354. package/script/src/api/exchange/twapCancel.js +16 -10
  355. package/script/src/api/exchange/twapCancel.js.map +1 -1
  356. package/script/src/api/exchange/twapOrder.d.ts.map +1 -1
  357. package/script/src/api/exchange/twapOrder.js +16 -10
  358. package/script/src/api/exchange/twapOrder.js.map +1 -1
  359. package/script/src/api/exchange/updateIsolatedMargin.d.ts.map +1 -1
  360. package/script/src/api/exchange/updateIsolatedMargin.js +16 -10
  361. package/script/src/api/exchange/updateIsolatedMargin.js.map +1 -1
  362. package/script/src/api/exchange/updateLeverage.d.ts.map +1 -1
  363. package/script/src/api/exchange/updateLeverage.js +16 -10
  364. package/script/src/api/exchange/updateLeverage.js.map +1 -1
  365. package/script/src/api/exchange/usdClassTransfer.d.ts.map +1 -1
  366. package/script/src/api/exchange/usdClassTransfer.js +15 -7
  367. package/script/src/api/exchange/usdClassTransfer.js.map +1 -1
  368. package/script/src/api/exchange/usdSend.d.ts.map +1 -1
  369. package/script/src/api/exchange/usdSend.js +15 -7
  370. package/script/src/api/exchange/usdSend.js.map +1 -1
  371. package/script/src/api/exchange/userDexAbstraction.d.ts.map +1 -1
  372. package/script/src/api/exchange/userDexAbstraction.js +15 -7
  373. package/script/src/api/exchange/userDexAbstraction.js.map +1 -1
  374. package/script/src/api/exchange/vaultDistribute.d.ts.map +1 -1
  375. package/script/src/api/exchange/vaultDistribute.js +15 -8
  376. package/script/src/api/exchange/vaultDistribute.js.map +1 -1
  377. package/script/src/api/exchange/vaultModify.d.ts.map +1 -1
  378. package/script/src/api/exchange/vaultModify.js +15 -8
  379. package/script/src/api/exchange/vaultModify.js.map +1 -1
  380. package/script/src/api/exchange/vaultTransfer.d.ts.map +1 -1
  381. package/script/src/api/exchange/vaultTransfer.js +15 -8
  382. package/script/src/api/exchange/vaultTransfer.js.map +1 -1
  383. package/script/src/api/exchange/withdraw3.d.ts.map +1 -1
  384. package/script/src/api/exchange/withdraw3.js +15 -7
  385. package/script/src/api/exchange/withdraw3.js.map +1 -1
  386. package/script/src/api/exchange/~client.d.ts +31 -3
  387. package/script/src/api/exchange/~client.d.ts.map +1 -1
  388. package/script/src/api/exchange/~client.js +29 -6
  389. package/script/src/api/exchange/~client.js.map +1 -1
  390. package/script/src/api/exchange/~mod.d.ts +1 -0
  391. package/script/src/api/exchange/~mod.d.ts.map +1 -1
  392. package/script/src/api/exchange/~mod.js +1 -0
  393. package/script/src/api/exchange/~mod.js.map +1 -1
  394. package/script/src/api/info/allPerpMetas.d.ts +5 -0
  395. package/script/src/api/info/allPerpMetas.d.ts.map +1 -1
  396. package/script/src/api/info/meta.d.ts +5 -0
  397. package/script/src/api/info/meta.d.ts.map +1 -1
  398. package/script/src/api/info/meta.js +2 -0
  399. package/script/src/api/info/meta.js.map +1 -1
  400. package/script/src/api/info/metaAndAssetCtxs.d.ts +5 -0
  401. package/script/src/api/info/metaAndAssetCtxs.d.ts.map +1 -1
  402. package/script/src/api/info/perpDexs.d.ts +4 -0
  403. package/script/src/api/info/perpDexs.d.ts.map +1 -1
  404. package/script/src/api/info/perpDexs.js +5 -0
  405. package/script/src/api/info/perpDexs.js.map +1 -1
  406. package/script/src/api/info/spotClearinghouseState.d.ts +0 -5
  407. package/script/src/api/info/spotClearinghouseState.d.ts.map +1 -1
  408. package/script/src/api/info/spotClearinghouseState.js +2 -14
  409. package/script/src/api/info/spotClearinghouseState.js.map +1 -1
  410. package/script/src/api/info/userFees.d.ts +27 -2
  411. package/script/src/api/info/userFees.d.ts.map +1 -1
  412. package/script/src/api/info/userFees.js +29 -1
  413. package/script/src/api/info/userFees.js.map +1 -1
  414. package/script/src/api/info/webData2.d.ts +152 -23
  415. package/script/src/api/info/webData2.d.ts.map +1 -1
  416. package/script/src/api/info/webData2.js +2 -53
  417. package/script/src/api/info/webData2.js.map +1 -1
  418. package/script/src/api/info/~client.d.ts +11 -3
  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/webData2.d.ts +9 -4
  425. package/script/src/api/subscription/webData2.d.ts.map +1 -1
  426. package/script/src/api/subscription/webData2.js +1 -1
  427. package/script/src/api/subscription/webData2.js.map +1 -1
  428. package/script/src/api/subscription/webData3.d.ts +541 -0
  429. package/script/src/api/subscription/webData3.d.ts.map +1 -0
  430. package/script/src/api/subscription/webData3.js +131 -0
  431. package/script/src/api/subscription/webData3.js.map +1 -0
  432. package/script/src/api/subscription/~client.d.ts +44 -0
  433. package/script/src/api/subscription/~client.d.ts.map +1 -1
  434. package/script/src/api/subscription/~client.js +46 -0
  435. package/script/src/api/subscription/~client.js.map +1 -1
  436. package/script/src/api/subscription/~mod.d.ts +2 -0
  437. package/script/src/api/subscription/~mod.d.ts.map +1 -1
  438. package/script/src/api/subscription/~mod.js +2 -0
  439. package/script/src/api/subscription/~mod.js.map +1 -1
  440. package/script/src/signing/_signTypedData.d.ts +1 -1
  441. package/script/src/signing/_signTypedData.d.ts.map +1 -1
  442. package/script/src/signing/_signTypedData.js +1 -1
  443. package/script/src/signing/_signTypedData.js.map +1 -1
  444. package/script/src/utils/{_minimalEIP712Signer.d.ts → _eip712.d.ts} +16 -1
  445. package/script/src/utils/_eip712.d.ts.map +1 -0
  446. package/script/src/utils/{_minimalEIP712Signer.js → _eip712.js} +14 -9
  447. package/script/src/utils/_eip712.js.map +1 -0
  448. package/script/src/utils/_format.d.ts +28 -0
  449. package/script/src/utils/_format.d.ts.map +1 -0
  450. package/script/src/utils/_format.js +161 -0
  451. package/script/src/utils/_format.js.map +1 -0
  452. package/script/src/utils/_recover.d.ts +89 -0
  453. package/script/src/utils/_recover.d.ts.map +1 -0
  454. package/script/src/utils/_recover.js +156 -0
  455. package/script/src/utils/_recover.js.map +1 -0
  456. package/script/src/utils/_symbolConverter.d.ts +13 -0
  457. package/script/src/utils/_symbolConverter.d.ts.map +1 -1
  458. package/script/src/utils/_symbolConverter.js +17 -0
  459. package/script/src/utils/_symbolConverter.js.map +1 -1
  460. package/script/src/utils/mod.d.ts +2 -0
  461. package/script/src/utils/mod.d.ts.map +1 -1
  462. package/script/src/utils/mod.js +2 -0
  463. package/script/src/utils/mod.js.map +1 -1
  464. package/src/bin/cli.ts +1 -0
  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 +15 -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/info/webData2.ts +3 -104
  521. package/src/src/api/subscription/spotState.ts +96 -0
  522. package/src/src/api/subscription/webData2.ts +1 -1
  523. package/src/src/api/subscription/webData3.ts +179 -0
  524. package/src/src/api/subscription/~client.ts +50 -0
  525. package/src/src/api/subscription/~mod.ts +2 -0
  526. package/src/src/signing/_signTypedData.ts +1 -1
  527. package/src/src/utils/{_minimalEIP712Signer.ts → _eip712.ts} +22 -29
  528. package/src/src/utils/_format.ts +173 -0
  529. package/src/src/utils/_recover.ts +178 -0
  530. package/src/src/utils/_symbolConverter.ts +18 -0
  531. package/src/src/utils/mod.ts +2 -0
  532. package/esm/src/api/exchange/_base/_sequential.d.ts +0 -30
  533. package/esm/src/api/exchange/_base/_sequential.d.ts.map +0 -1
  534. package/esm/src/api/exchange/_base/_sequential.js +0 -69
  535. package/esm/src/api/exchange/_base/_sequential.js.map +0 -1
  536. package/esm/src/utils/_minimalEIP712Signer.d.ts.map +0 -1
  537. package/esm/src/utils/_minimalEIP712Signer.js.map +0 -1
  538. package/script/src/api/exchange/_base/_sequential.d.ts +0 -30
  539. package/script/src/api/exchange/_base/_sequential.d.ts.map +0 -1
  540. package/script/src/api/exchange/_base/_sequential.js +0 -72
  541. package/script/src/api/exchange/_base/_sequential.js.map +0 -1
  542. package/script/src/utils/_minimalEIP712Signer.d.ts.map +0 -1
  543. package/script/src/utils/_minimalEIP712Signer.js.map +0 -1
  544. package/src/src/api/exchange/_base/_sequential.ts +0 -82
@@ -1,9 +1,9 @@
1
+ import { getSemaphore } from "@henrygd/semaphore";
1
2
  import { getWalletAddress, signL1Action, signMultiSigAction, signUserSignedAction } from "../../../signing/mod.js";
2
3
  import { assertSuccessResponse } from "./_errors.js";
3
4
  import type { AnyResponse, AnySuccessResponse, ExchangeRequestConfig, MultiSignRequestConfig } from "./_types.js";
4
5
  import { globalNonceManager } from "./_nonce.js";
5
6
  import { getSignatureChainId } from "./_helpers.js";
6
- import { getRequestQueue } from "./_sequential.js";
7
7
 
8
8
  export async function executeL1Action<T extends AnySuccessResponse>(
9
9
  config: ExchangeRequestConfig | MultiSignRequestConfig,
@@ -14,15 +14,26 @@ export async function executeL1Action<T extends AnySuccessResponse>(
14
14
  },
15
15
  signal?: AbortSignal,
16
16
  ): Promise<T> {
17
- const fn = async (): Promise<T> => {
18
- const { transport } = config;
19
- const { action, vaultAddress, expiresAfter } = request;
17
+ const { transport } = config;
18
+ const { action, vaultAddress, expiresAfter } = request;
20
19
 
20
+ // Sequential request execution to prevent nonce race conditions at the network layer
21
+ const walletAddress = "signers" in config
22
+ ? await getWalletAddress(config.signers[0])
23
+ : await getWalletAddress(config.wallet);
24
+ const walletKey = `@nktkas/hyperliquid:${walletAddress}:${config.transport.isTestnet}`;
25
+
26
+ const sem = getSemaphore(walletKey);
27
+ await sem.acquire();
28
+
29
+ // Main logic
30
+ try {
21
31
  const nonce = globalNonceManager.getNonce();
22
32
 
33
+ // Multi-signature request
23
34
  if ("signers" in config) {
24
35
  const { signers, multiSigUser } = config;
25
- const outerSigner = await getWalletAddress(signers[0]);
36
+ const outerSigner = walletAddress;
26
37
 
27
38
  // Sign an L1 action for each signer
28
39
  const signatures = await Promise.all(signers.map(async (signer) => {
@@ -41,12 +52,7 @@ export async function executeL1Action<T extends AnySuccessResponse>(
41
52
 
42
53
  // Send a request via multi-sign action
43
54
  return await executeMultiSigAction(
44
- {
45
- ...config,
46
- wallet: signers[0],
47
- // Disable queue since we're already inside the queue
48
- sequentialRequests: false,
49
- },
55
+ { ...config, wallet: signers[0] },
50
56
  {
51
57
  action: {
52
58
  type: "multiSig",
@@ -59,8 +65,9 @@ export async function executeL1Action<T extends AnySuccessResponse>(
59
65
  nonce,
60
66
  },
61
67
  signal,
68
+ false,
62
69
  );
63
- } else {
70
+ } else { // Single-signature request
64
71
  const { wallet } = config;
65
72
 
66
73
  // Sign an L1 action
@@ -82,11 +89,10 @@ export async function executeL1Action<T extends AnySuccessResponse>(
82
89
  assertSuccessResponse(response);
83
90
  return response as T;
84
91
  }
85
- };
86
-
87
- // Execute with queue if enabled, otherwise execute directly
88
- const queue = await getRequestQueue(config);
89
- return queue ? await queue.enqueue(fn) : await fn();
92
+ } finally {
93
+ // Release semaphore
94
+ sem.release();
95
+ }
90
96
  }
91
97
 
92
98
  export async function executeUserSignedAction<T extends AnySuccessResponse>(
@@ -101,24 +107,37 @@ export async function executeUserSignedAction<T extends AnySuccessResponse>(
101
107
  | { nonce: number; time?: undefined }
102
108
  | { time: number; nonce?: undefined }
103
109
  );
104
- types: {
105
- [key: string]: {
106
- name: string;
107
- type: string;
108
- }[];
109
- };
110
+ },
111
+ types: {
112
+ [key: string]: {
113
+ name: string;
114
+ type: string;
115
+ }[];
110
116
  },
111
117
  signal?: AbortSignal,
112
118
  ): Promise<T> {
113
- const fn = async (): Promise<T> => {
114
- const { transport } = config;
115
- const { action, types } = request;
119
+ const { transport } = config;
120
+ const { action } = request;
121
+
122
+ // Sequential request execution to prevent nonce race conditions at the network layer
123
+ const walletAddress = "signers" in config
124
+ ? await getWalletAddress(config.signers[0])
125
+ : await getWalletAddress(config.wallet);
126
+ const walletKey = `@nktkas/hyperliquid:${walletAddress}:${config.transport.isTestnet}`;
116
127
 
117
- const nonce = action.nonce ?? action.time;
128
+ const sem = getSemaphore(walletKey);
129
+ await sem.acquire();
118
130
 
131
+ // Main logic
132
+ try {
133
+ const nonce = globalNonceManager.getNonce();
134
+ if ("time" in action) request.action.time = nonce;
135
+ if ("nonce" in action) request.action.nonce = nonce;
136
+
137
+ // Multi-signature request
119
138
  if ("signers" in config) {
120
139
  const { signers, multiSigUser } = config;
121
- const outerSigner = await getWalletAddress(signers[0]);
140
+ const outerSigner = walletAddress;
122
141
 
123
142
  // Sign a user-signed action for each signer
124
143
  const signatures = await Promise.all(signers.map(async (signer) => {
@@ -138,12 +157,7 @@ export async function executeUserSignedAction<T extends AnySuccessResponse>(
138
157
 
139
158
  // Send a request via multi-sign action
140
159
  return await executeMultiSigAction(
141
- {
142
- ...config,
143
- wallet: signers[0],
144
- // Disable queue since we're already inside the queue
145
- sequentialRequests: false,
146
- },
160
+ { ...config, wallet: signers[0] },
147
161
  {
148
162
  action: {
149
163
  type: "multiSig",
@@ -154,8 +168,9 @@ export async function executeUserSignedAction<T extends AnySuccessResponse>(
154
168
  nonce,
155
169
  },
156
170
  signal,
171
+ false,
157
172
  );
158
- } else {
173
+ } else { // Single-signature request
159
174
  const { wallet } = config;
160
175
 
161
176
  // Sign a user-signed action
@@ -170,11 +185,10 @@ export async function executeUserSignedAction<T extends AnySuccessResponse>(
170
185
  assertSuccessResponse(response);
171
186
  return response as T;
172
187
  }
173
- };
174
-
175
- // Execute with queue if enabled, otherwise execute directly
176
- const queue = await getRequestQueue(config);
177
- return queue ? await queue.enqueue(fn) : await fn();
188
+ } finally {
189
+ // Release semaphore and nonce manager
190
+ sem.release();
191
+ }
178
192
  }
179
193
 
180
194
  export async function executeMultiSigAction<T extends AnySuccessResponse>(
@@ -189,11 +203,22 @@ export async function executeMultiSigAction<T extends AnySuccessResponse>(
189
203
  expiresAfter?: number;
190
204
  },
191
205
  signal?: AbortSignal,
206
+ semaphore = true,
192
207
  ): Promise<T> {
193
- const fn = async (): Promise<T> => {
194
- const { transport, wallet } = config;
195
- const { action, nonce, vaultAddress, expiresAfter } = request;
196
-
208
+ const { transport, wallet } = config;
209
+ const { action, nonce, vaultAddress, expiresAfter } = request;
210
+
211
+ // Sequential request execution to prevent nonce race conditions at the network layer
212
+ let sem: ReturnType<typeof getSemaphore> | undefined;
213
+ if (semaphore) {
214
+ const walletAddress = await getWalletAddress(config.wallet);
215
+ const walletKey = `@nktkas/hyperliquid:${walletAddress}:${config.transport.isTestnet}`;
216
+ sem = getSemaphore(walletKey);
217
+ await sem.acquire();
218
+ }
219
+
220
+ // Main logic
221
+ try {
197
222
  // Sign a multi-signature action
198
223
  const signature = await signMultiSigAction({
199
224
  wallet,
@@ -212,9 +237,8 @@ export async function executeMultiSigAction<T extends AnySuccessResponse>(
212
237
  ) as AnyResponse;
213
238
  assertSuccessResponse(response);
214
239
  return response as T;
215
- };
216
-
217
- // Execute with queue if enabled, otherwise execute directly
218
- const queue = await getRequestQueue(config);
219
- return queue ? await queue.enqueue(fn) : await fn();
240
+ } finally {
241
+ // Release semaphore if used
242
+ sem?.release();
243
+ }
220
244
  }
@@ -54,13 +54,6 @@ export interface ExchangeRequestConfig<
54
54
  * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/exchange-endpoint#expires-after
55
55
  */
56
56
  defaultExpiresAfter?: number | (() => MaybePromise<number>);
57
- /**
58
- * Execute requests sequentially to prevent network-level race conditions.
59
- * When enabled, requests are queued and executed one by one in order,
60
- * ensuring they arrive at the server in the correct sequence.
61
- * @default true
62
- */
63
- sequentialRequests?: boolean;
64
57
  }
65
58
 
66
59
  /** Configuration for Exchange API requests using multi-signature wallets. */
@@ -1,7 +1,5 @@
1
1
  export * from "./_errors.js";
2
2
  export * from "./_execute.js";
3
3
  export * from "./_helpers.js";
4
- export * from "./_nonce.js";
5
- export * from "./_sequential.js";
6
4
  export * from "./_schemas.js";
7
5
  export * from "./_types.js";
@@ -86,14 +86,19 @@ export async function agentEnableDexAbstraction(
86
86
  config: ExchangeRequestConfig | MultiSignRequestConfig,
87
87
  opts?: AgentEnableDexAbstractionOptions,
88
88
  ): Promise<SuccessResponse> {
89
- const action = parser(AgentEnableDexAbstractionRequest.entries.action)({
90
- type: "agentEnableDexAbstraction",
89
+ const request = parser(AgentEnableDexAbstractionRequest)({
90
+ action: {
91
+ type: "agentEnableDexAbstraction",
92
+ },
93
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
94
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
95
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
96
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
97
+ v: 27,
98
+ },
99
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
100
+ ? config.defaultExpiresAfter
101
+ : await config.defaultExpiresAfter?.(),
91
102
  });
92
-
93
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
94
- ? config.defaultExpiresAfter
95
- : await config.defaultExpiresAfter?.();
96
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
97
-
98
- return await executeL1Action(config, { action, expiresAfter }, opts?.signal);
103
+ return await executeL1Action(config, request, opts?.signal);
99
104
  }
@@ -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 approveAgent(
123
122
  params: DeepImmutable<ApproveAgentParameters>,
124
123
  opts?: ApproveAgentOptions,
125
124
  ): Promise<SuccessResponse> {
126
- const action = parser(ApproveAgentRequest.entries.action)({
127
- type: "approveAgent",
128
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
129
- signatureChainId: await getSignatureChainId(config),
130
- nonce: globalNonceManager.getNonce(),
131
- ...params,
125
+ const request = parser(ApproveAgentRequest)({
126
+ action: {
127
+ type: "approveAgent",
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: ApproveAgentTypes },
136
- opts?.signal,
137
- );
140
+ return await executeUserSignedAction(config, request, ApproveAgentTypes, 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 approveBuilderFee(
123
122
  params: DeepImmutable<ApproveBuilderFeeParameters>,
124
123
  opts?: ApproveBuilderFeeOptions,
125
124
  ): Promise<SuccessResponse> {
126
- const action = parser(ApproveBuilderFeeRequest.entries.action)({
127
- type: "approveBuilderFee",
128
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
129
- signatureChainId: await getSignatureChainId(config),
130
- nonce: globalNonceManager.getNonce(),
131
- ...params,
125
+ const request = parser(ApproveBuilderFeeRequest)({
126
+ action: {
127
+ type: "approveBuilderFee",
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: ApproveBuilderFeeTypes },
136
- opts?.signal,
137
- );
140
+ return await executeUserSignedAction(config, request, ApproveBuilderFeeTypes, opts?.signal);
138
141
  }
@@ -128,18 +128,21 @@ export async function batchModify(
128
128
  params: DeepImmutable<BatchModifyParameters>,
129
129
  opts?: BatchModifyOptions,
130
130
  ): Promise<OrderSuccessResponse> {
131
- const action = parser(BatchModifyRequest.entries.action)({
132
- type: "batchModify",
133
- ...params,
131
+ const request = parser(BatchModifyRequest)({
132
+ action: {
133
+ type: "batchModify",
134
+ ...params,
135
+ },
136
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
137
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
138
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
139
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
140
+ v: 27,
141
+ },
142
+ vaultAddress: opts?.vaultAddress ?? config.defaultVaultAddress,
143
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
144
+ ? config.defaultExpiresAfter
145
+ : await config.defaultExpiresAfter?.(),
134
146
  });
135
-
136
- const vaultAddress_ = opts?.vaultAddress ?? config.defaultVaultAddress;
137
- const vaultAddress = parser(v.optional(Address))(vaultAddress_);
138
-
139
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
140
- ? config.defaultExpiresAfter
141
- : await config.defaultExpiresAfter?.();
142
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
143
-
144
- return await executeL1Action(config, { action, vaultAddress, expiresAfter }, opts?.signal);
147
+ return await executeL1Action(config, request, opts?.signal);
145
148
  }
@@ -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";
@@ -117,16 +116,20 @@ export async function cDeposit(
117
116
  params: DeepImmutable<CDepositParameters>,
118
117
  opts?: CDepositOptions,
119
118
  ): Promise<SuccessResponse> {
120
- const action = parser(CDepositRequest.entries.action)({
121
- type: "cDeposit",
122
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
123
- signatureChainId: await getSignatureChainId(config),
124
- nonce: globalNonceManager.getNonce(),
125
- ...params,
119
+ const request = parser(CDepositRequest)({
120
+ action: {
121
+ type: "cDeposit",
122
+ hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
123
+ signatureChainId: await getSignatureChainId(config),
124
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
125
+ ...params,
126
+ },
127
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
128
+ signature: { // Placeholder; actual signature generated in `executeUserSignedAction`
129
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
130
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
131
+ v: 27,
132
+ },
126
133
  });
127
- return await executeUserSignedAction(
128
- config,
129
- { action, types: CDepositTypes },
130
- opts?.signal,
131
- );
134
+ return await executeUserSignedAction(config, request, CDepositTypes, opts?.signal);
132
135
  }
@@ -117,15 +117,20 @@ export async function cSignerAction(
117
117
  params: DeepImmutable<CSignerActionParameters>,
118
118
  opts?: CSignerActionOptions,
119
119
  ): Promise<SuccessResponse> {
120
- const action = parser(CSignerActionRequest.entries.action)({
121
- type: "CSignerAction",
122
- ...params,
120
+ const request = parser(CSignerActionRequest)({
121
+ action: {
122
+ type: "CSignerAction",
123
+ ...params,
124
+ },
125
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
126
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
127
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
128
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
129
+ v: 27,
130
+ },
131
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
132
+ ? config.defaultExpiresAfter
133
+ : await config.defaultExpiresAfter?.(),
123
134
  });
124
-
125
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
126
- ? config.defaultExpiresAfter
127
- : await config.defaultExpiresAfter?.();
128
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
129
-
130
- return await executeL1Action(config, { action, expiresAfter }, opts?.signal);
135
+ return await executeL1Action(config, request, opts?.signal);
131
136
  }
@@ -257,15 +257,20 @@ export async function cValidatorAction(
257
257
  params: DeepImmutable<CValidatorActionParameters>,
258
258
  opts?: CValidatorActionOptions,
259
259
  ): Promise<SuccessResponse> {
260
- const action = parser(CValidatorActionRequest.entries.action)({
261
- type: "CValidatorAction",
262
- ...params,
260
+ const request = parser(CValidatorActionRequest)({
261
+ action: {
262
+ type: "CValidatorAction",
263
+ ...params,
264
+ },
265
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
266
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
267
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
268
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
269
+ v: 27,
270
+ },
271
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
272
+ ? config.defaultExpiresAfter
273
+ : await config.defaultExpiresAfter?.(),
263
274
  });
264
-
265
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
266
- ? config.defaultExpiresAfter
267
- : await config.defaultExpiresAfter?.();
268
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
269
-
270
- return await executeL1Action(config, { action, expiresAfter }, opts?.signal);
275
+ return await executeL1Action(config, request, opts?.signal);
271
276
  }
@@ -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";
@@ -117,16 +116,20 @@ export async function cWithdraw(
117
116
  params: DeepImmutable<CWithdrawParameters>,
118
117
  opts?: CWithdrawOptions,
119
118
  ): Promise<SuccessResponse> {
120
- const action = parser(CWithdrawRequest.entries.action)({
121
- type: "cWithdraw",
122
- hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
123
- signatureChainId: await getSignatureChainId(config),
124
- nonce: globalNonceManager.getNonce(),
125
- ...params,
119
+ const request = parser(CWithdrawRequest)({
120
+ action: {
121
+ type: "cWithdraw",
122
+ hyperliquidChain: config.transport.isTestnet ? "Testnet" : "Mainnet",
123
+ signatureChainId: await getSignatureChainId(config),
124
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
125
+ ...params,
126
+ },
127
+ nonce: 0, // Placeholder; actual nonce generated in `executeUserSignedAction` to prevent race conditions
128
+ signature: { // Placeholder; actual signature generated in `executeUserSignedAction`
129
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
130
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
131
+ v: 27,
132
+ },
126
133
  });
127
- return await executeUserSignedAction(
128
- config,
129
- { action, types: CWithdrawTypes },
130
- opts?.signal,
131
- );
134
+ return await executeUserSignedAction(config, request, CWithdrawTypes, opts?.signal);
132
135
  }
@@ -198,18 +198,21 @@ export async function cancel(
198
198
  params: DeepImmutable<CancelParameters>,
199
199
  opts?: CancelOptions,
200
200
  ): Promise<CancelSuccessResponse> {
201
- const action = parser(CancelRequest.entries.action)({
202
- type: "cancel",
203
- ...params,
201
+ const request = parser(CancelRequest)({
202
+ action: {
203
+ type: "cancel",
204
+ ...params,
205
+ },
206
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
207
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
208
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
209
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
210
+ v: 27,
211
+ },
212
+ vaultAddress: opts?.vaultAddress ?? config.defaultVaultAddress,
213
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
214
+ ? config.defaultExpiresAfter
215
+ : await config.defaultExpiresAfter?.(),
204
216
  });
205
-
206
- const vaultAddress_ = opts?.vaultAddress ?? config.defaultVaultAddress;
207
- const vaultAddress = parser(v.optional(Address))(vaultAddress_);
208
-
209
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
210
- ? config.defaultExpiresAfter
211
- : await config.defaultExpiresAfter?.();
212
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
213
-
214
- return await executeL1Action(config, { action, vaultAddress, expiresAfter }, opts?.signal);
217
+ return await executeL1Action(config, request, opts?.signal);
215
218
  }
@@ -116,18 +116,21 @@ export async function cancelByCloid(
116
116
  params: DeepImmutable<CancelByCloidParameters>,
117
117
  opts?: CancelByCloidOptions,
118
118
  ): Promise<CancelSuccessResponse> {
119
- const action = parser(CancelByCloidRequest.entries.action)({
120
- type: "cancelByCloid",
121
- ...params,
119
+ const request = parser(CancelByCloidRequest)({
120
+ action: {
121
+ type: "cancelByCloid",
122
+ ...params,
123
+ },
124
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
125
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
126
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
127
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
128
+ v: 27,
129
+ },
130
+ vaultAddress: opts?.vaultAddress ?? config.defaultVaultAddress,
131
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
132
+ ? config.defaultExpiresAfter
133
+ : await config.defaultExpiresAfter?.(),
122
134
  });
123
-
124
- const vaultAddress_ = opts?.vaultAddress ?? config.defaultVaultAddress;
125
- const vaultAddress = parser(v.optional(Address))(vaultAddress_);
126
-
127
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
128
- ? config.defaultExpiresAfter
129
- : await config.defaultExpiresAfter?.();
130
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
131
-
132
- return await executeL1Action(config, { action, vaultAddress, expiresAfter }, opts?.signal);
135
+ return await executeL1Action(config, request, opts?.signal);
133
136
  }
@@ -82,14 +82,19 @@ export async function claimRewards(
82
82
  config: ExchangeRequestConfig | MultiSignRequestConfig,
83
83
  opts?: ClaimRewardsOptions,
84
84
  ): Promise<SuccessResponse> {
85
- const action = parser(ClaimRewardsRequest.entries.action)({
86
- type: "claimRewards",
85
+ const request = parser(ClaimRewardsRequest)({
86
+ action: {
87
+ type: "claimRewards",
88
+ },
89
+ nonce: 0, // Placeholder; actual nonce generated in `executeL1Action`
90
+ signature: { // Placeholder; actual signature generated in `executeL1Action`
91
+ r: "0x0000000000000000000000000000000000000000000000000000000000000000",
92
+ s: "0x0000000000000000000000000000000000000000000000000000000000000000",
93
+ v: 27,
94
+ },
95
+ expiresAfter: typeof config.defaultExpiresAfter === "number"
96
+ ? config.defaultExpiresAfter
97
+ : await config.defaultExpiresAfter?.(),
87
98
  });
88
-
89
- const expiresAfter_ = typeof config.defaultExpiresAfter === "number"
90
- ? config.defaultExpiresAfter
91
- : await config.defaultExpiresAfter?.();
92
- const expiresAfter = parser(v.optional(UnsignedInteger))(expiresAfter_);
93
-
94
- return await executeL1Action(config, { action, expiresAfter }, opts?.signal);
99
+ return await executeL1Action(config, request, opts?.signal);
95
100
  }