@nktkas/hyperliquid 0.24.2 → 0.25.0-beta.1

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 (242) hide show
  1. package/README.md +197 -117
  2. package/esm/mod.d.ts +11 -11
  3. package/esm/mod.d.ts.map +1 -1
  4. package/esm/mod.js +1 -1
  5. package/esm/src/clients/exchange.d.ts +29 -18
  6. package/esm/src/clients/exchange.d.ts.map +1 -1
  7. package/esm/src/clients/exchange.js +50 -48
  8. package/esm/src/clients/info.d.ts +79 -75
  9. package/esm/src/clients/info.d.ts.map +1 -1
  10. package/esm/src/clients/info.js +294 -163
  11. package/esm/src/clients/multiSign.d.ts +11 -7
  12. package/esm/src/clients/multiSign.d.ts.map +1 -1
  13. package/esm/src/clients/subscription.d.ts +105 -32
  14. package/esm/src/clients/subscription.d.ts.map +1 -1
  15. package/esm/src/clients/subscription.js +114 -33
  16. package/esm/src/{base.d.ts → errors.d.ts} +1 -1
  17. package/esm/src/errors.d.ts.map +1 -0
  18. package/esm/src/schemas/_base.d.ts +10 -0
  19. package/esm/src/schemas/_base.d.ts.map +1 -0
  20. package/esm/src/schemas/_base.js +12 -0
  21. package/esm/src/schemas/exchange/requests.d.ts +8953 -0
  22. package/esm/src/schemas/exchange/requests.d.ts.map +1 -0
  23. package/esm/src/schemas/exchange/requests.js +1413 -0
  24. package/esm/src/schemas/exchange/responses.d.ts +567 -0
  25. package/esm/src/schemas/exchange/responses.d.ts.map +1 -0
  26. package/esm/src/schemas/exchange/responses.js +243 -0
  27. package/esm/src/schemas/explorer/requests.d.ts +44 -0
  28. package/esm/src/schemas/explorer/requests.d.ts.map +1 -0
  29. package/esm/src/schemas/explorer/requests.js +32 -0
  30. package/esm/src/schemas/explorer/responses.d.ts +360 -0
  31. package/esm/src/schemas/explorer/responses.d.ts.map +1 -0
  32. package/esm/src/schemas/explorer/responses.js +56 -0
  33. package/esm/src/schemas/info/accounts.d.ts +2159 -0
  34. package/esm/src/schemas/info/accounts.d.ts.map +1 -0
  35. package/esm/src/schemas/info/accounts.js +622 -0
  36. package/esm/src/schemas/info/assets.d.ts +945 -0
  37. package/esm/src/schemas/info/assets.d.ts.map +1 -0
  38. package/esm/src/schemas/info/assets.js +265 -0
  39. package/esm/src/schemas/info/markets.d.ts +138 -0
  40. package/esm/src/schemas/info/markets.d.ts.map +1 -0
  41. package/esm/src/schemas/info/markets.js +58 -0
  42. package/esm/src/schemas/info/orders.d.ts +957 -0
  43. package/esm/src/schemas/info/orders.d.ts.map +1 -0
  44. package/esm/src/schemas/info/orders.js +297 -0
  45. package/esm/src/schemas/info/requests.d.ts +882 -0
  46. package/esm/src/schemas/info/requests.d.ts.map +1 -0
  47. package/esm/src/schemas/info/requests.js +655 -0
  48. package/esm/src/schemas/info/validators.d.ts +305 -0
  49. package/esm/src/schemas/info/validators.d.ts.map +1 -0
  50. package/esm/src/schemas/info/validators.js +112 -0
  51. package/esm/src/schemas/info/vaults.d.ts +447 -0
  52. package/esm/src/schemas/info/vaults.d.ts.map +1 -0
  53. package/esm/src/schemas/info/vaults.js +110 -0
  54. package/esm/src/schemas/mod.d.ts +100 -0
  55. package/esm/src/schemas/mod.d.ts.map +1 -0
  56. package/esm/src/schemas/mod.js +113 -0
  57. package/esm/src/schemas/subscriptions/requests.d.ts +332 -0
  58. package/esm/src/schemas/subscriptions/requests.d.ts.map +1 -0
  59. package/esm/src/schemas/subscriptions/requests.js +258 -0
  60. package/esm/src/schemas/subscriptions/responses.d.ts +3643 -0
  61. package/esm/src/schemas/subscriptions/responses.d.ts.map +1 -0
  62. package/esm/src/schemas/subscriptions/responses.js +233 -0
  63. package/esm/src/signing/mod.d.ts +109 -29
  64. package/esm/src/signing/mod.d.ts.map +1 -1
  65. package/esm/src/signing/mod.js +135 -29
  66. package/esm/src/transports/base.d.ts +2 -2
  67. package/esm/src/transports/base.d.ts.map +1 -1
  68. package/esm/src/transports/base.js +2 -2
  69. package/esm/src/transports/http/http_transport.d.ts +2 -1
  70. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  71. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts +1 -1
  72. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  73. package/esm/src/transports/websocket/websocket_transport.d.ts +2 -1
  74. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  75. package/package.json +6 -5
  76. package/script/mod.d.ts +11 -11
  77. package/script/mod.d.ts.map +1 -1
  78. package/script/mod.js +1 -1
  79. package/script/src/clients/exchange.d.ts +29 -18
  80. package/script/src/clients/exchange.d.ts.map +1 -1
  81. package/script/src/clients/exchange.js +56 -54
  82. package/script/src/clients/info.d.ts +79 -75
  83. package/script/src/clients/info.d.ts.map +1 -1
  84. package/script/src/clients/info.js +294 -163
  85. package/script/src/clients/multiSign.d.ts +11 -7
  86. package/script/src/clients/multiSign.d.ts.map +1 -1
  87. package/script/src/clients/subscription.d.ts +105 -32
  88. package/script/src/clients/subscription.d.ts.map +1 -1
  89. package/script/src/clients/subscription.js +114 -33
  90. package/script/src/{base.d.ts → errors.d.ts} +1 -1
  91. package/script/src/errors.d.ts.map +1 -0
  92. package/script/src/schemas/_base.d.ts +10 -0
  93. package/script/src/schemas/_base.d.ts.map +1 -0
  94. package/script/src/schemas/_base.js +48 -0
  95. package/script/src/schemas/exchange/requests.d.ts +8953 -0
  96. package/script/src/schemas/exchange/requests.d.ts.map +1 -0
  97. package/script/src/schemas/exchange/requests.js +1449 -0
  98. package/script/src/schemas/exchange/responses.d.ts +567 -0
  99. package/script/src/schemas/exchange/responses.d.ts.map +1 -0
  100. package/script/src/schemas/exchange/responses.js +279 -0
  101. package/script/src/schemas/explorer/requests.d.ts +44 -0
  102. package/script/src/schemas/explorer/requests.d.ts.map +1 -0
  103. package/script/src/schemas/explorer/requests.js +68 -0
  104. package/script/src/schemas/explorer/responses.d.ts +360 -0
  105. package/script/src/schemas/explorer/responses.d.ts.map +1 -0
  106. package/script/src/schemas/explorer/responses.js +92 -0
  107. package/script/src/schemas/info/accounts.d.ts +2159 -0
  108. package/script/src/schemas/info/accounts.d.ts.map +1 -0
  109. package/script/src/schemas/info/accounts.js +658 -0
  110. package/script/src/schemas/info/assets.d.ts +945 -0
  111. package/script/src/schemas/info/assets.d.ts.map +1 -0
  112. package/script/src/schemas/info/assets.js +301 -0
  113. package/script/src/schemas/info/markets.d.ts +138 -0
  114. package/script/src/schemas/info/markets.d.ts.map +1 -0
  115. package/script/src/schemas/info/markets.js +94 -0
  116. package/script/src/schemas/info/orders.d.ts +957 -0
  117. package/script/src/schemas/info/orders.d.ts.map +1 -0
  118. package/script/src/schemas/info/orders.js +333 -0
  119. package/script/src/schemas/info/requests.d.ts +882 -0
  120. package/script/src/schemas/info/requests.d.ts.map +1 -0
  121. package/script/src/schemas/info/requests.js +692 -0
  122. package/script/src/schemas/info/validators.d.ts +305 -0
  123. package/script/src/schemas/info/validators.d.ts.map +1 -0
  124. package/script/src/schemas/info/validators.js +148 -0
  125. package/script/src/schemas/info/vaults.d.ts +447 -0
  126. package/script/src/schemas/info/vaults.d.ts.map +1 -0
  127. package/script/src/schemas/info/vaults.js +146 -0
  128. package/script/src/schemas/mod.d.ts +100 -0
  129. package/script/src/schemas/mod.d.ts.map +1 -0
  130. package/script/src/schemas/mod.js +154 -0
  131. package/script/src/schemas/subscriptions/requests.d.ts +332 -0
  132. package/script/src/schemas/subscriptions/requests.d.ts.map +1 -0
  133. package/script/src/schemas/subscriptions/requests.js +294 -0
  134. package/script/src/schemas/subscriptions/responses.d.ts +3643 -0
  135. package/script/src/schemas/subscriptions/responses.d.ts.map +1 -0
  136. package/script/src/schemas/subscriptions/responses.js +269 -0
  137. package/script/src/signing/mod.d.ts +109 -29
  138. package/script/src/signing/mod.d.ts.map +1 -1
  139. package/script/src/signing/mod.js +137 -33
  140. package/script/src/transports/base.d.ts +2 -2
  141. package/script/src/transports/base.d.ts.map +1 -1
  142. package/script/src/transports/base.js +3 -3
  143. package/script/src/transports/http/http_transport.d.ts +2 -1
  144. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  145. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts +1 -1
  146. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  147. package/script/src/transports/websocket/websocket_transport.d.ts +2 -1
  148. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  149. package/esm/src/base.d.ts.map +0 -1
  150. package/esm/src/signing/_sorter.d.ts +0 -127
  151. package/esm/src/signing/_sorter.d.ts.map +0 -1
  152. package/esm/src/signing/_sorter.js +0 -693
  153. package/esm/src/types/exchange/requests.d.ts +0 -1345
  154. package/esm/src/types/exchange/requests.d.ts.map +0 -1
  155. package/esm/src/types/exchange/requests.js +0 -1
  156. package/esm/src/types/exchange/responses.d.ts +0 -233
  157. package/esm/src/types/exchange/responses.d.ts.map +0 -1
  158. package/esm/src/types/exchange/responses.js +0 -1
  159. package/esm/src/types/explorer/requests.d.ts +0 -32
  160. package/esm/src/types/explorer/requests.d.ts.map +0 -1
  161. package/esm/src/types/explorer/requests.js +0 -1
  162. package/esm/src/types/explorer/responses.d.ts +0 -58
  163. package/esm/src/types/explorer/responses.d.ts.map +0 -1
  164. package/esm/src/types/explorer/responses.js +0 -1
  165. package/esm/src/types/info/accounts.d.ts +0 -864
  166. package/esm/src/types/info/accounts.d.ts.map +0 -1
  167. package/esm/src/types/info/accounts.js +0 -1
  168. package/esm/src/types/info/assets.d.ts +0 -354
  169. package/esm/src/types/info/assets.d.ts.map +0 -1
  170. package/esm/src/types/info/assets.js +0 -1
  171. package/esm/src/types/info/markets.d.ts +0 -79
  172. package/esm/src/types/info/markets.d.ts.map +0 -1
  173. package/esm/src/types/info/markets.js +0 -1
  174. package/esm/src/types/info/orders.d.ts +0 -266
  175. package/esm/src/types/info/orders.d.ts.map +0 -1
  176. package/esm/src/types/info/orders.js +0 -1
  177. package/esm/src/types/info/requests.d.ts +0 -634
  178. package/esm/src/types/info/requests.d.ts.map +0 -1
  179. package/esm/src/types/info/requests.js +0 -1
  180. package/esm/src/types/info/validators.d.ts +0 -147
  181. package/esm/src/types/info/validators.d.ts.map +0 -1
  182. package/esm/src/types/info/validators.js +0 -1
  183. package/esm/src/types/info/vaults.d.ts +0 -119
  184. package/esm/src/types/info/vaults.d.ts.map +0 -1
  185. package/esm/src/types/info/vaults.js +0 -1
  186. package/esm/src/types/mod.d.ts +0 -38
  187. package/esm/src/types/mod.d.ts.map +0 -1
  188. package/esm/src/types/mod.js +0 -24
  189. package/esm/src/types/subscriptions/requests.d.ts +0 -143
  190. package/esm/src/types/subscriptions/requests.d.ts.map +0 -1
  191. package/esm/src/types/subscriptions/requests.js +0 -1
  192. package/esm/src/types/subscriptions/responses.d.ts +0 -213
  193. package/esm/src/types/subscriptions/responses.d.ts.map +0 -1
  194. package/esm/src/types/subscriptions/responses.js +0 -1
  195. package/script/src/base.d.ts.map +0 -1
  196. package/script/src/signing/_sorter.d.ts +0 -127
  197. package/script/src/signing/_sorter.d.ts.map +0 -1
  198. package/script/src/signing/_sorter.js +0 -696
  199. package/script/src/types/exchange/requests.d.ts +0 -1345
  200. package/script/src/types/exchange/requests.d.ts.map +0 -1
  201. package/script/src/types/exchange/requests.js +0 -2
  202. package/script/src/types/exchange/responses.d.ts +0 -233
  203. package/script/src/types/exchange/responses.d.ts.map +0 -1
  204. package/script/src/types/exchange/responses.js +0 -2
  205. package/script/src/types/explorer/requests.d.ts +0 -32
  206. package/script/src/types/explorer/requests.d.ts.map +0 -1
  207. package/script/src/types/explorer/requests.js +0 -2
  208. package/script/src/types/explorer/responses.d.ts +0 -58
  209. package/script/src/types/explorer/responses.d.ts.map +0 -1
  210. package/script/src/types/explorer/responses.js +0 -2
  211. package/script/src/types/info/accounts.d.ts +0 -864
  212. package/script/src/types/info/accounts.d.ts.map +0 -1
  213. package/script/src/types/info/accounts.js +0 -2
  214. package/script/src/types/info/assets.d.ts +0 -354
  215. package/script/src/types/info/assets.d.ts.map +0 -1
  216. package/script/src/types/info/assets.js +0 -2
  217. package/script/src/types/info/markets.d.ts +0 -79
  218. package/script/src/types/info/markets.d.ts.map +0 -1
  219. package/script/src/types/info/markets.js +0 -2
  220. package/script/src/types/info/orders.d.ts +0 -266
  221. package/script/src/types/info/orders.d.ts.map +0 -1
  222. package/script/src/types/info/orders.js +0 -2
  223. package/script/src/types/info/requests.d.ts +0 -634
  224. package/script/src/types/info/requests.d.ts.map +0 -1
  225. package/script/src/types/info/requests.js +0 -2
  226. package/script/src/types/info/validators.d.ts +0 -147
  227. package/script/src/types/info/validators.d.ts.map +0 -1
  228. package/script/src/types/info/validators.js +0 -2
  229. package/script/src/types/info/vaults.d.ts +0 -119
  230. package/script/src/types/info/vaults.d.ts.map +0 -1
  231. package/script/src/types/info/vaults.js +0 -2
  232. package/script/src/types/mod.d.ts +0 -38
  233. package/script/src/types/mod.d.ts.map +0 -1
  234. package/script/src/types/mod.js +0 -25
  235. package/script/src/types/subscriptions/requests.d.ts +0 -143
  236. package/script/src/types/subscriptions/requests.d.ts.map +0 -1
  237. package/script/src/types/subscriptions/requests.js +0 -2
  238. package/script/src/types/subscriptions/responses.d.ts +0 -213
  239. package/script/src/types/subscriptions/responses.d.ts.map +0 -1
  240. package/script/src/types/subscriptions/responses.js +0 -2
  241. /package/esm/src/{base.js → errors.js} +0 -0
  242. /package/script/src/{base.js → errors.js} +0 -0
@@ -1,14 +1,14 @@
1
1
  /**
2
- * This module contains functions for generating Hyperliquid transaction signatures
3
- * and interfaces to various wallet implementations.
2
+ * This module contains functions for generating Hyperliquid transaction signatures.
4
3
  *
5
4
  * @example Signing an L1 action
6
5
  * ```ts
7
- * import { actionSorter, signL1Action } from "@nktkas/hyperliquid/signing";
6
+ * import { signL1Action } from "@nktkas/hyperliquid/signing";
7
+ * import { CancelRequest, parser } from "@nktkas/hyperliquid/schemas";
8
8
  *
9
9
  * const privateKey = "0x..."; // `viem`, `ethers`, or private key directly
10
10
  *
11
- * const action = actionSorter.cancel({
11
+ * const action = parser(CancelRequest.entries.action)({ // for correct signature generation
12
12
  * type: "cancel",
13
13
  * cancels: [
14
14
  * { a: 0, o: 12345 },
@@ -22,18 +22,19 @@
22
22
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
23
23
  * method: "POST",
24
24
  * headers: { "Content-Type": "application/json" },
25
- * body: JSON.stringify({ action, signature, nonce }), // recommended to send the same formatted action
25
+ * body: JSON.stringify({ action, signature, nonce }),
26
26
  * });
27
27
  * const body = await response.json();
28
28
  * ```
29
29
  *
30
30
  * @example Signing a user-signed action
31
31
  * ```ts
32
- * import { actionSorter, signUserSignedAction, userSignedActionEip712Types } from "@nktkas/hyperliquid/signing";
32
+ * import { signUserSignedAction, userSignedActionEip712Types } from "@nktkas/hyperliquid/signing";
33
+ * import { ApproveAgentRequest, parser } from "@nktkas/hyperliquid/schemas";
33
34
  *
34
35
  * const privateKey = "0x..."; // `viem`, `ethers`, or private key directly
35
36
  *
36
- * const action = actionSorter.approveAgent({
37
+ * const action = parser(ApproveAgentRequest.entries.action)({ // for correct signature generation
37
38
  * type: "approveAgent",
38
39
  * signatureChainId: "0x66eee",
39
40
  * hyperliquidChain: "Mainnet",
@@ -52,20 +53,21 @@
52
53
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
53
54
  * method: "POST",
54
55
  * headers: { "Content-Type": "application/json" },
55
- * body: JSON.stringify({ action, signature, nonce: action.nonce }), // recommended to send the same formatted action
56
+ * body: JSON.stringify({ action, signature, nonce: action.nonce }),
56
57
  * });
57
58
  * const body = await response.json();
58
59
  * ```
59
60
  *
60
61
  * @example Signing a multi-signature action
61
62
  * ```ts
62
- * import { actionSorter, signL1Action, signMultiSigAction } from "@nktkas/hyperliquid/signing";
63
+ * import { signL1Action, signMultiSigAction } from "@nktkas/hyperliquid/signing";
64
+ * import { MultiSigRequest, parser, ScheduleCancelRequest } from "@nktkas/hyperliquid/schemas";
63
65
  * import { privateKeyToAccount } from "npm:viem/accounts";
64
66
  *
65
67
  * const wallet = privateKeyToAccount("0x..."); // or `ethers`, private key directly
66
68
  * const multiSigUser = "0x...";
67
69
  *
68
- * const action = actionSorter.scheduleCancel({
70
+ * const action = parser(ScheduleCancelRequest.entries.action)({ // for correct signature generation
69
71
  * type: "scheduleCancel",
70
72
  * time: Date.now() + 10000,
71
73
  * });
@@ -80,7 +82,7 @@
80
82
  * });
81
83
  * }));
82
84
  *
83
- * // or user-signed action
85
+ * // // or user-signed action
84
86
  * // const signatures = await Promise.all(["0x...", "0x..."].map(async (signerPrivKey) => {
85
87
  * // return await signUserSignedAction({
86
88
  * // wallet: signerPrivKey as `0x${string}`,
@@ -94,7 +96,7 @@
94
96
  * // }));
95
97
  *
96
98
  * // Then use signatures in the multi-sig action
97
- * const multiSigAction = actionSorter.multiSig({
99
+ * const multiSigAction = parser(MultiSigRequest.entries.action)({
98
100
  * type: "multiSig",
99
101
  * signatureChainId: "0x66eee",
100
102
  * signatures,
@@ -110,7 +112,7 @@
110
112
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
111
113
  * method: "POST",
112
114
  * headers: { "Content-Type": "application/json" },
113
- * body: JSON.stringify({ action: multiSigAction, signature: multiSigSignature, nonce }), // recommended to send the same formatted action
115
+ * body: JSON.stringify({ action: multiSigAction, signature: multiSigSignature, nonce }),
114
116
  * });
115
117
  * const body = await response.json();
116
118
  * ```
@@ -121,15 +123,116 @@ import { keccak_256 } from "@noble/hashes/sha3";
121
123
  import { etc } from "@noble/secp256k1";
122
124
  import { encode as encodeMsgpack } from "@msgpack/msgpack";
123
125
  import { getWalletAddress, getWalletChainId, signTypedData, } from "./_signTypedData/mod.js";
124
- import { actionSorter, userSignedActionEip712Types } from "./_sorter.js";
125
- export { actionSorter, getWalletAddress, getWalletChainId, userSignedActionEip712Types, };
126
+ export { getWalletAddress, getWalletChainId };
127
+ /** EIP-712 type definitions for user-signed actions. */
128
+ export const userSignedActionEip712Types = {
129
+ approveAgent: {
130
+ "HyperliquidTransaction:ApproveAgent": [
131
+ { name: "hyperliquidChain", type: "string" },
132
+ { name: "agentAddress", type: "address" },
133
+ { name: "agentName", type: "string" },
134
+ { name: "nonce", type: "uint64" },
135
+ ],
136
+ },
137
+ approveBuilderFee: {
138
+ "HyperliquidTransaction:ApproveBuilderFee": [
139
+ { name: "hyperliquidChain", type: "string" },
140
+ { name: "maxFeeRate", type: "string" },
141
+ { name: "builder", type: "address" },
142
+ { name: "nonce", type: "uint64" },
143
+ ],
144
+ },
145
+ cDeposit: {
146
+ "HyperliquidTransaction:CDeposit": [
147
+ { name: "hyperliquidChain", type: "string" },
148
+ { name: "wei", type: "uint64" },
149
+ { name: "nonce", type: "uint64" },
150
+ ],
151
+ },
152
+ convertToMultiSigUser: {
153
+ "HyperliquidTransaction:ConvertToMultiSigUser": [
154
+ { name: "hyperliquidChain", type: "string" },
155
+ { name: "signers", type: "string" },
156
+ { name: "nonce", type: "uint64" },
157
+ ],
158
+ },
159
+ cWithdraw: {
160
+ "HyperliquidTransaction:CWithdraw": [
161
+ { name: "hyperliquidChain", type: "string" },
162
+ { name: "wei", type: "uint64" },
163
+ { name: "nonce", type: "uint64" },
164
+ ],
165
+ },
166
+ multiSig: {
167
+ "HyperliquidTransaction:SendMultiSig": [
168
+ { name: "hyperliquidChain", type: "string" },
169
+ { name: "multiSigActionHash", type: "bytes32" },
170
+ { name: "nonce", type: "uint64" },
171
+ ],
172
+ },
173
+ sendAsset: {
174
+ "HyperliquidTransaction:SendAsset": [
175
+ { name: "hyperliquidChain", type: "string" },
176
+ { name: "destination", type: "string" },
177
+ { name: "sourceDex", type: "string" },
178
+ { name: "destinationDex", type: "string" },
179
+ { name: "token", type: "string" },
180
+ { name: "amount", type: "string" },
181
+ { name: "fromSubAccount", type: "string" },
182
+ { name: "nonce", type: "uint64" },
183
+ ],
184
+ },
185
+ spotSend: {
186
+ "HyperliquidTransaction:SpotSend": [
187
+ { name: "hyperliquidChain", type: "string" },
188
+ { name: "destination", type: "string" },
189
+ { name: "token", type: "string" },
190
+ { name: "amount", type: "string" },
191
+ { name: "time", type: "uint64" },
192
+ ],
193
+ },
194
+ tokenDelegate: {
195
+ "HyperliquidTransaction:TokenDelegate": [
196
+ { name: "hyperliquidChain", type: "string" },
197
+ { name: "validator", type: "address" },
198
+ { name: "wei", type: "uint64" },
199
+ { name: "isUndelegate", type: "bool" },
200
+ { name: "nonce", type: "uint64" },
201
+ ],
202
+ },
203
+ usdClassTransfer: {
204
+ "HyperliquidTransaction:UsdClassTransfer": [
205
+ { name: "hyperliquidChain", type: "string" },
206
+ { name: "amount", type: "string" },
207
+ { name: "toPerp", type: "bool" },
208
+ { name: "nonce", type: "uint64" },
209
+ ],
210
+ },
211
+ usdSend: {
212
+ "HyperliquidTransaction:UsdSend": [
213
+ { name: "hyperliquidChain", type: "string" },
214
+ { name: "destination", type: "string" },
215
+ { name: "amount", type: "string" },
216
+ { name: "time", type: "uint64" },
217
+ ],
218
+ },
219
+ withdraw3: {
220
+ "HyperliquidTransaction:Withdraw": [
221
+ { name: "hyperliquidChain", type: "string" },
222
+ { name: "destination", type: "string" },
223
+ { name: "amount", type: "string" },
224
+ { name: "time", type: "uint64" },
225
+ ],
226
+ },
227
+ };
126
228
  /**
127
229
  * Create a hash of the L1 action.
128
230
  * @example
129
231
  * ```ts
130
- * import { actionSorter, createL1ActionHash } from "@nktkas/hyperliquid/signing";
232
+ * import { signL1Action } from "@nktkas/hyperliquid/signing";
233
+ * import { CancelRequest, parser } from "@nktkas/hyperliquid/schemas";
131
234
  *
132
- * const action = actionSorter.cancel({
235
+ * const action = parser(CancelRequest.entries.action)({ // for correct signature generation
133
236
  * type: "cancel",
134
237
  * cancels: [
135
238
  * { a: 0, o: 12345 },
@@ -166,11 +269,12 @@ function toUint64Bytes(n) {
166
269
  * Sign an L1 action.
167
270
  * @example
168
271
  * ```ts
169
- * import { actionSorter, signL1Action } from "@nktkas/hyperliquid/signing";
272
+ * import { signL1Action } from "@nktkas/hyperliquid/signing";
273
+ * import { CancelRequest, parser } from "@nktkas/hyperliquid/schemas";
170
274
  *
171
275
  * const privateKey = "0x..."; // `viem`, `ethers`, or private key directly
172
276
  *
173
- * const action = actionSorter.cancel({
277
+ * const action = parser(CancelRequest.entries.action)({ // for correct signature generation
174
278
  * type: "cancel",
175
279
  * cancels: [
176
280
  * { a: 0, o: 12345 },
@@ -184,7 +288,7 @@ function toUint64Bytes(n) {
184
288
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
185
289
  * method: "POST",
186
290
  * headers: { "Content-Type": "application/json" },
187
- * body: JSON.stringify({ action, signature, nonce }), // recommended to send the same formatted action
291
+ * body: JSON.stringify({ action, signature, nonce }),
188
292
  * });
189
293
  * const body = await response.json();
190
294
  * ```
@@ -218,11 +322,12 @@ export async function signL1Action(args) {
218
322
  * Sign a user-signed action.
219
323
  * @example
220
324
  * ```ts
221
- * import { actionSorter, signUserSignedAction, userSignedActionEip712Types } from "@nktkas/hyperliquid/signing";
325
+ * import { signUserSignedAction, userSignedActionEip712Types } from "@nktkas/hyperliquid/signing";
326
+ * import { ApproveAgentRequest, parser } from "@nktkas/hyperliquid/schemas";
222
327
  *
223
328
  * const privateKey = "0x..."; // `viem`, `ethers`, or private key directly
224
329
  *
225
- * const action = actionSorter.approveAgent({
330
+ * const action = parser(ApproveAgentRequest.entries.action)({ // for correct signature generation
226
331
  * type: "approveAgent",
227
332
  * signatureChainId: "0x66eee",
228
333
  * hyperliquidChain: "Mainnet",
@@ -241,7 +346,7 @@ export async function signL1Action(args) {
241
346
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
242
347
  * method: "POST",
243
348
  * headers: { "Content-Type": "application/json" },
244
- * body: JSON.stringify({ action, signature, nonce: action.nonce }), // recommended to send the same formatted action
349
+ * body: JSON.stringify({ action, signature, nonce: action.nonce }),
245
350
  * });
246
351
  * const body = await response.json();
247
352
  * ```
@@ -275,13 +380,14 @@ export async function signUserSignedAction(args) {
275
380
  * Sign a multi-signature action.
276
381
  * @example
277
382
  * ```ts
278
- * import { actionSorter, signL1Action, signMultiSigAction } from "@nktkas/hyperliquid/signing";
383
+ * import { signL1Action, signMultiSigAction } from "@nktkas/hyperliquid/signing";
384
+ * import { MultiSigRequest, parser, ScheduleCancelRequest } from "@nktkas/hyperliquid/schemas";
279
385
  * import { privateKeyToAccount } from "npm:viem/accounts";
280
386
  *
281
- * const wallet = privateKeyToAccount("0x..."); // or ethers, private key directly
387
+ * const wallet = privateKeyToAccount("0x..."); // or `ethers`, private key directly
282
388
  * const multiSigUser = "0x...";
283
389
  *
284
- * const action = actionSorter.scheduleCancel({
390
+ * const action = parser(ScheduleCancelRequest.entries.action)({ // for correct signature generation
285
391
  * type: "scheduleCancel",
286
392
  * time: Date.now() + 10000,
287
393
  * });
@@ -296,7 +402,7 @@ export async function signUserSignedAction(args) {
296
402
  * });
297
403
  * }));
298
404
  *
299
- * // or user-signed action
405
+ * // // or user-signed action
300
406
  * // const signatures = await Promise.all(["0x...", "0x..."].map(async (signerPrivKey) => {
301
407
  * // return await signUserSignedAction({
302
408
  * // wallet: signerPrivKey as `0x${string}`,
@@ -310,7 +416,7 @@ export async function signUserSignedAction(args) {
310
416
  * // }));
311
417
  *
312
418
  * // Then use signatures in the multi-sig action
313
- * const multiSigAction = actionSorter.multiSig({
419
+ * const multiSigAction = parser(MultiSigRequest.entries.action)({
314
420
  * type: "multiSig",
315
421
  * signatureChainId: "0x66eee",
316
422
  * signatures,
@@ -326,7 +432,7 @@ export async function signUserSignedAction(args) {
326
432
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
327
433
  * method: "POST",
328
434
  * headers: { "Content-Type": "application/json" },
329
- * body: JSON.stringify({ action: multiSigAction, signature: multiSigSignature, nonce }), // recommended to send the same formatted action
435
+ * body: JSON.stringify({ action: multiSigAction, signature: multiSigSignature, nonce }),
330
436
  * });
331
437
  * const body = await response.json();
332
438
  * ```
@@ -1,4 +1,4 @@
1
- import { HyperliquidError } from "../base.js";
1
+ import { HyperliquidError } from "../errors.js";
2
2
  /**
3
3
  * Interface representing a REST transport.
4
4
  *
@@ -41,7 +41,7 @@ export interface Subscription {
41
41
  /** Signal that aborts when resubscription fails during reconnection. */
42
42
  resubscribeSignal?: AbortSignal;
43
43
  }
44
- /** Base class for all transport-related errors. */
44
+ /** Thrown when a transport error occurs. */
45
45
  export declare class TransportError extends HyperliquidError {
46
46
  constructor(message?: string, options?: ErrorOptions);
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/src/transports/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,eAAe,CAAC;IAC/D;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9G;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,OAAO,CAAC,eAAe,CAAC;IACpE;;;;;;OAMG;IACH,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACpH;AAED,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IACzB,kFAAkF;IAClF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,WAAW,CAAC;CACnC;AAED,mDAAmD;AACnD,qBAAa,cAAe,SAAQ,gBAAgB;gBACpC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIvD"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/src/transports/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAkB,SAAQ,OAAO,CAAC,eAAe,CAAC;IAC/D;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9F,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9G;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,OAAO,CAAC,eAAe,CAAC;IACpE;;;;;;OAMG;IACH,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CACpH;AAED,6CAA6C;AAC7C,MAAM,WAAW,YAAY;IACzB,kFAAkF;IAClF,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,wEAAwE;IACxE,iBAAiB,CAAC,EAAE,WAAW,CAAC;CACnC;AAED,4CAA4C;AAC5C,qBAAa,cAAe,SAAQ,gBAAgB;gBACpC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIvD"}
@@ -1,5 +1,5 @@
1
- import { HyperliquidError } from "../base.js";
2
- /** Base class for all transport-related errors. */
1
+ import { HyperliquidError } from "../errors.js";
2
+ /** Thrown when a transport error occurs. */
3
3
  export class TransportError extends HyperliquidError {
4
4
  constructor(message, options) {
5
5
  super(message, options);
@@ -1,4 +1,5 @@
1
- import { type IRequestTransport, TransportError } from "../base.js";
1
+ import { TransportError } from "../base.js";
2
+ import type { IRequestTransport } from "../base.js";
2
3
  type MaybePromise<T> = T | Promise<T>;
3
4
  /** Error thrown when an HTTP request fails. */
4
5
  export declare class HttpRequestError extends TransportError {
@@ -1 +1 @@
1
- {"version":3,"file":"http_transport.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/http/http_transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpE,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,+CAA+C;AAC/C,qBAAa,gBAAiB,SAAQ,cAAc;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEF,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,YAAY;CAgBpF;AAED,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE;QACL,OAAO,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;QACrD,OAAO,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACxD,CAAC;IAEF,2IAA2I;IAC3I,YAAY,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IAEpD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAElF;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACzF;AAED,2DAA2D;AAC3D,qBAAa,aAAc,YAAW,iBAAiB,EAAE,oBAAoB;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE;QACJ,OAAO,EAAE;YAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;YAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;QAClD,OAAO,EAAE;YAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;YAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACrD,CAAC;IACF,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAClF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAEtF;;;OAGG;gBACS,OAAO,CAAC,EAAE,oBAAoB;IAkB1C;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;CA4DnH"}
1
+ {"version":3,"file":"http_transport.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/http/http_transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,+CAA+C;AAC/C,qBAAa,gBAAiB,SAAQ,cAAc;IAChD,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;gBAEF,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,YAAY;CAgBpF;AAED,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACjC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE;QACL,OAAO,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;QACrD,OAAO,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACxD,CAAC;IAEF,2IAA2I;IAC3I,YAAY,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IAEpD;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAElF;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CACzF;AAED,2DAA2D;AAC3D,qBAAa,aAAc,YAAW,iBAAiB,EAAE,oBAAoB;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,MAAM,EAAE;QACJ,OAAO,EAAE;YAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;YAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;QAClD,OAAO,EAAE;YAAE,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;YAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;KACrD,CAAC;IACF,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IACnD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,YAAY,CAAC,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAClF,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAEtF;;;OAGG;gBACS,OAAO,CAAC,EAAE,oBAAoB;IAkB1C;;;;;;;;OAQG;IACG,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;CA4DnH"}
@@ -1,4 +1,4 @@
1
- import type { BlockDetails, TxDetails } from "../../types/mod.js";
1
+ import type { BlockDetails, TxDetails } from "../../schemas/mod.js";
2
2
  /** Response to subscribe to or unsubscribe from an event. */
3
3
  interface SubscriptionResponse {
4
4
  /** Type of subscription operation. */
@@ -1 +1 @@
1
- {"version":3,"file":"_hyperliquid_event_target.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/_hyperliquid_event_target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAUlE,6DAA6D;AAC7D,UAAU,oBAAoB;IAC1B,sCAAsC;IACtC,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC;IACpC,qCAAqC;IACrC,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,gCAAgC;AAChC,UAAU,YAAY;IAClB,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,QAAQ;IACJ,iDAAiD;IAC/C;QACE,wDAAwD;QACxD,IAAI,EAAE,MAAM,CAAC;QACb,qCAAqC;QACrC,OAAO,EAAE;YACL,0CAA0C;YAC1C,IAAI,EAAE,MAAM,CAAC;YACb,iCAAiC;YACjC,IAAI,EAAE,OAAO,CAAC;SACjB,CAAC;KACL;IACD,yCAAyC;OACvC;QACE,iDAAiD;QACjD,IAAI,EAAE,QAAQ,CAAC;QACf,qBAAqB;QACrB,OAAO,EAAE;YACL,mEAAmE;YACnE,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;YACrB,qCAAqC;YACrC,QAAQ,EACF;gBACE,yBAAyB;gBACzB,IAAI,EAAE,MAAM,CAAC;gBACb,oCAAoC;gBACpC,IAAI,CAAC,EAAE,OAAO,CAAC;aAClB,GACC,MAAM,CAAC;SAChB,CAAC;KACL,CAAC;CACT;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAChC,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACxD,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAChC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7B,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,YAAY,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IAEvC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;CACnC;AAED,iFAAiF;AACjF,qBAAa,sBAAuB,SAAQ,WAAW;gBACvC,MAAM,EAAE,SAAS;CAiBhC"}
1
+ {"version":3,"file":"_hyperliquid_event_target.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/_hyperliquid_event_target.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAUpE,6DAA6D;AAC7D,UAAU,oBAAoB;IAC1B,sCAAsC;IACtC,MAAM,EAAE,WAAW,GAAG,aAAa,CAAC;IACpC,qCAAqC;IACrC,YAAY,EAAE,OAAO,CAAC;CACzB;AAED,gCAAgC;AAChC,UAAU,YAAY;IAClB,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,QAAQ;IACJ,iDAAiD;IAC/C;QACE,wDAAwD;QACxD,IAAI,EAAE,MAAM,CAAC;QACb,qCAAqC;QACrC,OAAO,EAAE;YACL,0CAA0C;YAC1C,IAAI,EAAE,MAAM,CAAC;YACb,iCAAiC;YACjC,IAAI,EAAE,OAAO,CAAC;SACjB,CAAC;KACL;IACD,yCAAyC;OACvC;QACE,iDAAiD;QACjD,IAAI,EAAE,QAAQ,CAAC;QACf,qBAAqB;QACrB,OAAO,EAAE;YACL,mEAAmE;YACnE,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;YACrB,qCAAqC;YACrC,QAAQ,EACF;gBACE,yBAAyB;gBACzB,IAAI,EAAE,MAAM,CAAC;gBACb,oCAAoC;gBACpC,IAAI,CAAC,EAAE,OAAO,CAAC;aAClB,GACC,MAAM,CAAC;SAChB,CAAC;KACL,CAAC;CACT;AAED,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAChC,oBAAoB,EAAE,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACxD,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAChC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC7B,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,YAAY,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;IAEvC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;CACnC;AAED,iFAAiF;AACjF,qBAAa,sBAAuB,SAAQ,WAAW;gBACvC,MAAM,EAAE,SAAS;CAiBhC"}
@@ -1,4 +1,5 @@
1
- import { type IRequestTransport, type ISubscriptionTransport, type Subscription, TransportError } from "../base.js";
1
+ import { TransportError } from "../base.js";
2
+ import type { IRequestTransport, ISubscriptionTransport, Subscription } from "../base.js";
2
3
  import { type MessageBufferStrategy, ReconnectingWebSocket, ReconnectingWebSocketError, type ReconnectingWebSocketOptions } from "./_reconnecting_websocket.js";
3
4
  import { HyperliquidEventTarget } from "./_hyperliquid_event_target.js";
4
5
  import { WebSocketAsyncRequest } from "./_websocket_async_request.js";
@@ -1 +1 @@
1
- {"version":3,"file":"websocket_transport.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/websocket_transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket_transport.d.ts","sourceRoot":"","sources":["../../../../src/src/transports/websocket/websocket_transport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nktkas/hyperliquid",
3
- "version": "0.24.2",
3
+ "version": "0.25.0-beta.1",
4
4
  "description": "Unofficial Hyperliquid API SDK for all major JS runtimes, written in TypeScript.",
5
5
  "keywords": [
6
6
  "api",
@@ -38,9 +38,9 @@
38
38
  "import": "./esm/mod.js",
39
39
  "require": "./script/mod.js"
40
40
  },
41
- "./types": {
42
- "import": "./esm/src/types/mod.js",
43
- "require": "./script/src/types/mod.js"
41
+ "./schemas": {
42
+ "import": "./esm/src/schemas/mod.js",
43
+ "require": "./script/src/schemas/mod.js"
44
44
  },
45
45
  "./signing": {
46
46
  "import": "./esm/src/signing/mod.js",
@@ -55,7 +55,8 @@
55
55
  "dependencies": {
56
56
  "@msgpack/msgpack": "^3.1.2",
57
57
  "@noble/hashes": "^1.8.0",
58
- "@noble/secp256k1": "^2.3.0"
58
+ "@noble/secp256k1": "^2.3.0",
59
+ "valibot": "1.1.0"
59
60
  },
60
61
  "_generatedBy": "dnt@dev"
61
62
  }
package/script/mod.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./src/base.js";
1
+ export * from "./src/errors.js";
2
2
  export * from "./src/transports/base.js";
3
3
  export type { AbstractWallet } from "./src/signing/mod.js";
4
4
  export * from "./src/clients/exchange.js";
@@ -7,14 +7,14 @@ export * from "./src/clients/multiSign.js";
7
7
  export * from "./src/clients/subscription.js";
8
8
  export * from "./src/transports/http/http_transport.js";
9
9
  export * from "./src/transports/websocket/websocket_transport.js";
10
- export type { OrderParams, Signature } from "./src/types/exchange/requests.js";
11
- export type * from "./src/types/exchange/responses.js";
12
- export type * from "./src/types/explorer/responses.js";
13
- export type * from "./src/types/info/accounts.js";
14
- export type * from "./src/types/info/assets.js";
15
- export type * from "./src/types/info/validators.js";
16
- export type * from "./src/types/info/markets.js";
17
- export type * from "./src/types/info/orders.js";
18
- export type * from "./src/types/info/vaults.js";
19
- export type * from "./src/types/subscriptions/responses.js";
10
+ export type { OrderParams, Signature } from "./src/schemas/exchange/requests.js";
11
+ export type * from "./src/schemas/exchange/responses.js";
12
+ export type * from "./src/schemas/explorer/responses.js";
13
+ export type * from "./src/schemas/info/accounts.js";
14
+ export type * from "./src/schemas/info/assets.js";
15
+ export type * from "./src/schemas/info/validators.js";
16
+ export type * from "./src/schemas/info/markets.js";
17
+ export type * from "./src/schemas/info/orders.js";
18
+ export type * from "./src/schemas/info/vaults.js";
19
+ export type * from "./src/schemas/subscriptions/responses.js";
20
20
  //# sourceMappingURL=mod.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AAGzC,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,mDAAmD,CAAC;AAGlE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC/E,mBAAmB,mCAAmC,CAAC;AACvD,mBAAmB,mCAAmC,CAAC;AACvD,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,4BAA4B,CAAC;AAChD,mBAAmB,gCAAgC,CAAC;AACpD,mBAAmB,6BAA6B,CAAC;AACjD,mBAAmB,4BAA4B,CAAC;AAChD,mBAAmB,4BAA4B,CAAC;AAChD,mBAAmB,wCAAwC,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AAGzC,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAG9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,mDAAmD,CAAC;AAGlE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AACjF,mBAAmB,qCAAqC,CAAC;AACzD,mBAAmB,qCAAqC,CAAC;AACzD,mBAAmB,gCAAgC,CAAC;AACpD,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,kCAAkC,CAAC;AACtD,mBAAmB,+BAA+B,CAAC;AACnD,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,8BAA8B,CAAC;AAClD,mBAAmB,0CAA0C,CAAC"}
package/script/mod.js CHANGED
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  // Base interfaces
18
- __exportStar(require("./src/base.js"), exports);
18
+ __exportStar(require("./src/errors.js"), exports);
19
19
  __exportStar(require("./src/transports/base.js"), exports);
20
20
  // Clients
21
21
  __exportStar(require("./src/clients/exchange.js"), exports);
@@ -1,7 +1,7 @@
1
- import { HyperliquidError } from "../base.js";
1
+ import { HyperliquidError } from "../errors.js";
2
2
  import type { IRequestTransport } from "../transports/base.js";
3
- import type { ApproveAgentRequest, ApproveBuilderFeeRequest, BatchModifyRequest, CancelByCloidRequest, CancelRequest, CancelResponse, CancelSuccessResponse, CDepositRequest, ClaimRewardsRequest, ConvertToMultiSigUserRequest, ConvertToMultiSigUserRequestWithoutStringify, CreateSubAccountRequest, CreateSubAccountResponse, CreateVaultRequest, CreateVaultResponse, CSignerActionRequest, CValidatorActionRequest, CWithdrawRequest, ErrorResponse, EvmUserModifyRequest, Hex, ModifyRequest, MultiSigRequest, NoopRequest, OrderRequest, OrderResponse, OrderSuccessResponse, PerpDeployRequest, RegisterReferrerRequest, ReserveRequestWeightRequest, ScheduleCancelRequest, SendAssetRequest, SetDisplayNameRequest, SetReferrerRequest, SpotDeployRequest, SpotSendRequest, SpotUserRequest, SubAccountModifyRequest, SubAccountSpotTransferRequest, SubAccountTransferRequest, SuccessResponse, TokenDelegateRequest, TwapCancelRequest, TwapCancelResponse, TwapCancelSuccessResponse, TwapOrderRequest, TwapOrderResponse, TwapOrderSuccessResponse, UpdateIsolatedMarginRequest, UpdateLeverageRequest, UsdClassTransferRequest, UsdSendRequest, VaultDistributeRequest, VaultModifyRequest, VaultTransferRequest, Withdraw3Request } from "../types/mod.js";
4
- import { type AbstractWallet, actionSorter, userSignedActionEip712Types } from "../signing/mod.js";
3
+ import { ApproveAgentRequest, ApproveBuilderFeeRequest, BatchModifyRequest, CancelByCloidRequest, CancelRequest, type CancelResponse, type CancelSuccessResponse, CDepositRequest, ClaimRewardsRequest, ConvertToMultiSigUserRequest, type ConvertToMultiSigUserRequestSigners, CreateSubAccountRequest, type CreateSubAccountResponse, CreateVaultRequest, type CreateVaultResponse, CSignerActionRequest, CValidatorActionRequest, CWithdrawRequest, type ErrorResponse, EvmUserModifyRequest, ModifyRequest, MultiSigRequest, NoopRequest, OrderRequest, type OrderResponse, type OrderSuccessResponse, PerpDeployRequest, RegisterReferrerRequest, ReserveRequestWeightRequest, ScheduleCancelRequest, SendAssetRequest, SetDisplayNameRequest, SetReferrerRequest, SpotDeployRequest, SpotSendRequest, SpotUserRequest, SubAccountModifyRequest, SubAccountSpotTransferRequest, SubAccountTransferRequest, type SuccessResponse, TokenDelegateRequest, TwapCancelRequest, type TwapCancelResponse, type TwapCancelSuccessResponse, TwapOrderRequest, type TwapOrderResponse, type TwapOrderSuccessResponse, UpdateIsolatedMarginRequest, UpdateLeverageRequest, UsdClassTransferRequest, UsdSendRequest, VaultDistributeRequest, VaultModifyRequest, VaultTransferRequest, Withdraw3Request } from "../schemas/mod.js";
4
+ import { type AbstractWallet, userSignedActionEip712Types } from "../signing/mod.js";
5
5
  type MaybePromise<T> = T | Promise<T>;
6
6
  /** @see https://github.com/microsoft/TypeScript/issues/13923#issuecomment-2191862501 */
7
7
  type DeepImmutable<T> = {
@@ -20,7 +20,7 @@ export interface ExchangeClientParameters<T extends IRequestTransport = IRequest
20
20
  */
21
21
  isTestnet?: boolean;
22
22
  /** Sets a default vaultAddress to be used if no vaultAddress is explicitly passed to a method. */
23
- defaultVaultAddress?: Hex;
23
+ defaultVaultAddress?: `0x${string}`;
24
24
  /** Sets a default expiresAfter to be used if no expiresAfter is explicitly passed to a method. */
25
25
  defaultExpiresAfter?: number | (() => MaybePromise<number>);
26
26
  /**
@@ -29,7 +29,7 @@ export interface ExchangeClientParameters<T extends IRequestTransport = IRequest
29
29
  *
30
30
  * Defaults to get chain id from wallet otherwise `0x1`.
31
31
  */
32
- signatureChainId?: Hex | (() => MaybePromise<Hex>);
32
+ signatureChainId?: `0x${string}` | (() => MaybePromise<`0x${string}`>);
33
33
  /**
34
34
  * Function to get the next nonce for signing transactions.
35
35
  *
@@ -56,7 +56,10 @@ export type CancelByCloidParameters = ExtractRequestAction<CancelByCloidRequest>
56
56
  /** Action parameters for the {@linkcode ExchangeClient.cDeposit} method. */
57
57
  export type CDepositParameters = ExtractRequestAction<CDepositRequest>;
58
58
  /** Action parameters for the {@linkcode ExchangeClient.convertToMultiSigUser} method. */
59
- export type ConvertToMultiSigUserParameters = ExtractRequestAction<ConvertToMultiSigUserRequestWithoutStringify>;
59
+ export type ConvertToMultiSigUserParameters = Omit<ExtractRequestAction<ConvertToMultiSigUserRequest>, "signers"> & {
60
+ /** Signers configuration. */
61
+ signers: ConvertToMultiSigUserRequestSigners;
62
+ };
60
63
  /** Action parameters for the {@linkcode ExchangeClient.createSubAccount} method. */
61
64
  export type CreateSubAccountParameters = ExtractRequestAction<CreateSubAccountRequest>;
62
65
  /** Action parameters for the {@linkcode ExchangeClient.createVault} method. */
@@ -218,7 +221,7 @@ export type VaultModifyOptions = ExtractRequestOptions<VaultModifyRequest>;
218
221
  export type VaultTransferOptions = ExtractRequestOptions<VaultTransferRequest>;
219
222
  /** Request options for the {@linkcode ExchangeClient.withdraw3} method. */
220
223
  export type Withdraw3Options = ExtractRequestOptions<Withdraw3Request>;
221
- /** Custom error class for API request errors. */
224
+ /** Thrown when an API request fails. */
222
225
  export declare class ApiRequestError extends HyperliquidError {
223
226
  response: ErrorResponse | OrderResponse | CancelResponse | TwapOrderResponse | TwapCancelResponse;
224
227
  constructor(response: ErrorResponse | OrderResponse | CancelResponse | TwapOrderResponse | TwapCancelResponse);
@@ -232,9 +235,9 @@ export declare class ExchangeClient<T extends IRequestTransport = IRequestTransp
232
235
  transport: T;
233
236
  wallet: W;
234
237
  isTestnet: boolean;
235
- defaultVaultAddress?: Hex;
238
+ defaultVaultAddress?: `0x${string}`;
236
239
  defaultExpiresAfter?: number | (() => MaybePromise<number>);
237
- signatureChainId: Hex | (() => MaybePromise<Hex>);
240
+ signatureChainId: `0x${string}` | (() => MaybePromise<`0x${string}`>);
238
241
  nonceManager: () => MaybePromise<number>;
239
242
  /**
240
243
  * Initialises a new instance.
@@ -709,7 +712,8 @@ export declare class ExchangeClient<T extends IRequestTransport = IRequestTransp
709
712
  * @example
710
713
  * ```ts
711
714
  * import * as hl from "@nktkas/hyperliquid";
712
- * import { actionSorter, signL1Action } from "@nktkas/hyperliquid/signing";
715
+ * import { signL1Action } from "@nktkas/hyperliquid/signing";
716
+ * import { parser, ScheduleCancelRequest } from "@nktkas/hyperliquid/schemas";
713
717
  * import { privateKeyToAccount } from "npm:viem/accounts";
714
718
  *
715
719
  * const wallet = privateKeyToAccount("0x..."); // or any other wallet libraries
@@ -719,7 +723,7 @@ export declare class ExchangeClient<T extends IRequestTransport = IRequestTransp
719
723
  * const exchClient = new hl.ExchangeClient({ wallet, transport });
720
724
  *
721
725
  * const nonce = Date.now();
722
- * const action = actionSorter.scheduleCancel({
726
+ * const action = parser(ScheduleCancelRequest.entries.action)({ // for correct signature generation
723
727
  * type: "scheduleCancel",
724
728
  * time: Date.now() + 10000,
725
729
  * });
@@ -733,7 +737,7 @@ export declare class ExchangeClient<T extends IRequestTransport = IRequestTransp
733
737
  * });
734
738
  * }));
735
739
  *
736
- * // or user-signed action
740
+ * // // or user-signed action
737
741
  * // const signatures = await Promise.all(["0x...", "0x..."].map(async (signerPrivKey) => {
738
742
  * // return await signUserSignedAction({
739
743
  * // wallet: signerPrivKey as `0x${string}`,
@@ -1397,21 +1401,28 @@ export declare class ExchangeClient<T extends IRequestTransport = IRequestTransp
1397
1401
  */
1398
1402
  withdraw3(params: DeepImmutable<Withdraw3Parameters>, opts?: Withdraw3Options): Promise<SuccessResponse>;
1399
1403
  protected _executeL1Action<T extends SuccessResponse | CancelSuccessResponse | CreateSubAccountResponse | CreateVaultResponse | OrderSuccessResponse | TwapOrderSuccessResponse | TwapCancelSuccessResponse>(request: {
1400
- action: Parameters<typeof actionSorter[Exclude<keyof typeof actionSorter, keyof typeof userSignedActionEip712Types>]>[0];
1401
- vaultAddress?: Hex;
1404
+ action: Record<string, unknown>;
1405
+ vaultAddress?: `0x${string}`;
1402
1406
  expiresAfter: number | undefined;
1403
1407
  }, signal?: AbortSignal): Promise<T>;
1404
1408
  protected _executeUserSignedAction<T extends SuccessResponse | CancelSuccessResponse | CreateSubAccountResponse | CreateVaultResponse | OrderSuccessResponse | TwapOrderSuccessResponse | TwapCancelSuccessResponse>(request: {
1405
- action: Parameters<typeof actionSorter[Exclude<Extract<keyof typeof actionSorter, keyof typeof userSignedActionEip712Types>, "multiSig">]>[0];
1409
+ action: {
1410
+ type: keyof typeof userSignedActionEip712Types;
1411
+ signatureChainId: `0x${string}`;
1412
+ [key: string]: unknown;
1413
+ };
1406
1414
  }, signal?: AbortSignal): Promise<T>;
1407
1415
  protected _executeMultiSigAction<T extends SuccessResponse | CancelSuccessResponse | CreateSubAccountResponse | CreateVaultResponse | OrderSuccessResponse | TwapOrderSuccessResponse | TwapCancelSuccessResponse>(request: {
1408
- action: Parameters<typeof actionSorter["multiSig"]>[0];
1416
+ action: {
1417
+ signatureChainId: `0x${string}`;
1418
+ [key: string]: unknown;
1419
+ };
1409
1420
  nonce: number;
1410
- vaultAddress?: Hex;
1421
+ vaultAddress?: `0x${string}`;
1411
1422
  expiresAfter?: number;
1412
1423
  }, signal?: AbortSignal): Promise<T>;
1413
1424
  protected _getDefaultExpiresAfter(): Promise<number | undefined>;
1414
- protected _getSignatureChainId(): Promise<Hex>;
1425
+ protected _getSignatureChainId(): Promise<`0x${string}`>;
1415
1426
  protected _getHyperliquidChain(): "Mainnet" | "Testnet";
1416
1427
  protected _validateResponse<T extends SuccessResponse | CancelSuccessResponse | CreateSubAccountResponse | CreateVaultResponse | OrderSuccessResponse | TwapOrderSuccessResponse | TwapCancelSuccessResponse>(response: SuccessResponse | ErrorResponse | CancelResponse | CreateSubAccountResponse | CreateVaultResponse | OrderResponse | TwapOrderResponse | TwapCancelResponse): asserts response is T;
1417
1428
  [Symbol.asyncDispose](): Promise<void>;