@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../../src/src/schemas/subscriptions/responses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ import * as v from "valibot";
2
+ import { Hex, UnsignedDecimal } from "../_base.js";
3
+ import { FundingUpdate, PerpsClearinghouseState, SpotClearinghouseState, UserFundingUpdate, UserNonFundingLedgerUpdate, } from "../info/accounts.js";
4
+ import { AllMids, PerpsAssetCtx, PerpsMeta, SpotAssetCtx } from "../info/assets.js";
5
+ import { BookLevel, Fill, FrontendOrder, TwapHistory, TwapSliceFill, TwapState } from "../info/orders.js";
6
+ import { BlockDetails } from "../explorer/responses.js";
7
+ /** Active perpetual asset context. */
8
+ export const WsActiveAssetCtx = v.pipe(v.strictObject({
9
+ /** Asset symbol (e.g., BTC). */
10
+ coin: v.pipe(v.string(), v.description("Asset symbol (e.g., BTC).")),
11
+ /** Context information for the perpetual asset. */
12
+ ctx: v.pipe(PerpsAssetCtx, v.description("Context information for the perpetual asset.")),
13
+ }), v.description("Active perpetual asset context."));
14
+ /** Active spot asset context. */
15
+ export const WsActiveSpotAssetCtx = v.pipe(v.strictObject({
16
+ /** Asset symbol (e.g., BTC). */
17
+ coin: v.pipe(v.string(), v.description("Asset symbol (e.g., BTC).")),
18
+ /** Context information for the spot asset. */
19
+ ctx: v.pipe(SpotAssetCtx, v.description("Context information for the spot asset.")),
20
+ }), v.description("Active spot asset context."));
21
+ /** Mid prices for all assets. */
22
+ export const WsAllMids = v.pipe(v.strictObject({
23
+ /** Mapping of coin symbols to mid prices. */
24
+ mids: v.pipe(AllMids, v.description("Mapping of coin symbols to mid prices.")),
25
+ }), v.description("Mid prices for all assets."));
26
+ /** Asset contexts for all perpetual assets on a specified DEX. */
27
+ export const WsAssetCtxs = v.pipe(v.strictObject({
28
+ /** DEX name (empty string for main dex). */
29
+ dex: v.pipe(v.string(), v.description("DEX name (empty string for main dex).")),
30
+ /** Array of context information for each perpetual asset. */
31
+ ctxs: v.pipe(v.array(PerpsAssetCtx), v.description("Array of context information for each perpetual asset.")),
32
+ }), v.description("Asset contexts for all perpetual assets on a specified DEX."));
33
+ /** Best Bid and Offer. */
34
+ export const WsBbo = v.pipe(v.strictObject({
35
+ /** Asset symbol (e.g., BTC). */
36
+ coin: v.pipe(v.string(), v.description("Asset symbol (e.g., BTC).")),
37
+ /** Time of the BBO update (in ms since epoch). */
38
+ time: v.pipe(v.pipe(v.number(), v.safeInteger(), v.minValue(0)), v.description("Time of the BBO update (in ms since epoch).")),
39
+ /** Best bid and offer tuple [bid, offer], either can be undefined if unavailable. */
40
+ bbo: v.pipe(v.strictTuple([
41
+ v.union([BookLevel, v.undefined()]),
42
+ v.union([BookLevel, v.undefined()]),
43
+ ]), v.description("Best bid and offer tuple [bid, offer], either can be undefined if unavailable.")),
44
+ }), v.description("Best Bid and Offer."));
45
+ /** Block details. */
46
+ export const WsBlockDetails = v.pipe(v.omit(v.strictObject(BlockDetails.entries), ["txs"]), v.description("Block details."));
47
+ /** Clearinghouse state for a specific user. */
48
+ export const WsClearinghouseState = v.pipe(v.strictObject({
49
+ /** DEX name (empty string for main dex). */
50
+ dex: v.pipe(v.string(), v.description("DEX name (empty string for main dex).")),
51
+ /** User address. */
52
+ user: v.pipe(v.pipe(Hex, v.length(42)), v.description("User address.")),
53
+ /** Perpetual clearinghouse state. */
54
+ clearinghouseState: v.pipe(PerpsClearinghouseState, v.description("Perpetual clearinghouse state.")),
55
+ }), v.description("Clearinghouse state for a specific user."));
56
+ /** User notifications. */
57
+ export const WsNotification = v.pipe(v.strictObject({
58
+ /** Notification content. */
59
+ notification: v.pipe(v.string(), v.description("Notification content.")),
60
+ }), v.description("User notifications."));
61
+ /** Open orders for a specific user. */
62
+ export const WsOpenOrders = v.pipe(v.strictObject({
63
+ /** DEX name (empty string for main dex). */
64
+ dex: v.pipe(v.string(), v.description("DEX name (empty string for main dex).")),
65
+ /** User address. */
66
+ user: v.pipe(v.pipe(Hex, v.length(42)), v.description("User address.")),
67
+ /** Array of open orders. */
68
+ orders: v.pipe(v.array(FrontendOrder), v.description("Array of open orders.")),
69
+ }), v.description("Open orders for a specific user."));
70
+ /** Trade information. */
71
+ export const WsTrade = v.pipe(v.strictObject({
72
+ /** Asset symbol (e.g., BTC). */
73
+ coin: v.pipe(v.string(), v.description("Asset symbol (e.g., BTC).")),
74
+ /** Trade side ("B" = Bid/Buy, "A" = Ask/Sell). */
75
+ side: v.pipe(v.union([v.literal("B"), v.literal("A")]), v.description('Trade side ("B" = Bid/Buy, "A" = Ask/Sell).')),
76
+ /** Trade price. */
77
+ px: v.pipe(UnsignedDecimal, v.description("Trade price.")),
78
+ /** Trade size. */
79
+ sz: v.pipe(UnsignedDecimal, v.description("Trade size.")),
80
+ /** Trade timestamp (in ms since epoch). */
81
+ time: v.pipe(v.pipe(v.number(), v.safeInteger(), v.minValue(0)), v.description("Trade timestamp (in ms since epoch).")),
82
+ /** Transaction hash. */
83
+ hash: v.pipe(v.pipe(Hex, v.length(66)), v.description("Transaction hash.")),
84
+ /** Trade ID. */
85
+ tid: v.pipe(v.pipe(v.number(), v.safeInteger(), v.minValue(0)), v.description("Trade ID.")),
86
+ /** Addresses of users involved in the trade [Maker, Taker]. */
87
+ users: v.pipe(v.strictTuple([v.pipe(Hex, v.length(42)), v.pipe(Hex, v.length(42))]), v.description("Addresses of users involved in the trade [Maker, Taker].")),
88
+ }), v.description("Trade information."));
89
+ /** User fill event. */
90
+ export const WsUserEventFill = v.pipe(v.strictObject({
91
+ /** Array of trade fills. */
92
+ fills: v.pipe(v.array(Fill), v.description("Array of trade fills.")),
93
+ }), v.description("User fill event."));
94
+ /** User funding event. */
95
+ export const WsUserEventFunding = v.pipe(v.strictObject({
96
+ /** Funding update details. */
97
+ funding: v.pipe(v.omit(v.strictObject(FundingUpdate.entries), ["type"]), v.description("Funding update details.")),
98
+ }), v.description("User funding event."));
99
+ /** User liquidation event. */
100
+ export const WsUserEventLiquidation = v.pipe(v.strictObject({
101
+ /** Liquidation event details. */
102
+ liquidation: v.pipe(v.strictObject({
103
+ /** Unique liquidation ID. */
104
+ lid: v.pipe(v.pipe(v.number(), v.safeInteger(), v.minValue(0)), v.description("Unique liquidation ID.")),
105
+ /** Address of the liquidator. */
106
+ liquidator: v.pipe(v.pipe(Hex, v.length(42)), v.description("Address of the liquidator.")),
107
+ /** Address of the liquidated user. */
108
+ liquidated_user: v.pipe(v.pipe(Hex, v.length(42)), v.description("Address of the liquidated user.")),
109
+ /** Notional position size that was liquidated. */
110
+ liquidated_ntl_pos: v.pipe(UnsignedDecimal, v.description("Notional position size that was liquidated.")),
111
+ /** Account value at time of liquidation. */
112
+ liquidated_account_value: v.pipe(UnsignedDecimal, v.description("Account value at time of liquidation.")),
113
+ }), v.description("Liquidation event details.")),
114
+ }), v.description("User liquidation event."));
115
+ /** Non-user initiated order cancellation event. */
116
+ export const WsUserEventNonUserCancel = v.pipe(v.strictObject({
117
+ /** Array of cancelled orders not initiated by the user. */
118
+ nonUserCancel: v.pipe(v.array(v.strictObject({
119
+ /** Asset symbol (e.g., BTC). */
120
+ coin: v.pipe(v.string(), v.description("Asset symbol (e.g., BTC).")),
121
+ /** Order ID. */
122
+ oid: v.pipe(v.pipe(v.number(), v.safeInteger(), v.minValue(0)), v.description("Order ID.")),
123
+ })), v.description("Array of cancelled orders not initiated by the user.")),
124
+ }), v.description("Non-user initiated order cancellation event."));
125
+ /** User TWAP history event. */
126
+ export const WsUserEventTwapHistory = v.pipe(v.strictObject({
127
+ /** Array of historical TWAP fills. */
128
+ twapHistory: v.pipe(v.array(TwapHistory), v.description("Array of historical TWAP fills.")),
129
+ }), v.description("User TWAP history event."));
130
+ /** User TWAP slice fills event. */
131
+ export const WsUserEventTwapSliceFills = v.pipe(v.strictObject({
132
+ /** Array of TWAP slice fills. */
133
+ twapSliceFills: v.pipe(v.array(TwapSliceFill), v.description("Array of TWAP slice fills.")),
134
+ }), v.description("User TWAP slice fills event."));
135
+ /** User event. */
136
+ export const WsUserEvent = v.pipe(v.union([
137
+ WsUserEventFill,
138
+ WsUserEventFunding,
139
+ WsUserEventLiquidation,
140
+ WsUserEventNonUserCancel,
141
+ WsUserEventTwapHistory,
142
+ WsUserEventTwapSliceFills,
143
+ ]), v.description("User event."));
144
+ /** User fills. */
145
+ export const WsUserFills = v.pipe(v.strictObject({
146
+ /** User address. */
147
+ user: v.pipe(v.pipe(Hex, v.length(42)), v.description("User address.")),
148
+ /** Array of fill events. */
149
+ fills: v.pipe(v.array(Fill), v.description("Array of fill events.")),
150
+ /** Whether this is an initial snapshot. */
151
+ isSnapshot: v.pipe(v.optional(v.literal(true)), v.description("Whether this is an initial snapshot.")),
152
+ }), v.description("User fills."));
153
+ /** User fundings. */
154
+ export const WsUserFundings = v.pipe(v.strictObject({
155
+ /** User address. */
156
+ user: v.pipe(v.pipe(Hex, v.length(42)), v.description("User address.")),
157
+ /** Array of funding events. */
158
+ fundings: v.pipe(v.array(v.strictObject({
159
+ ...v.omit(v.strictObject(FundingUpdate.entries), ["type"]).entries,
160
+ ...v.pick(v.strictObject(UserFundingUpdate.entries), ["time"]).entries,
161
+ })), v.description("Array of funding events.")),
162
+ /** Whether this is an initial snapshot. */
163
+ isSnapshot: v.pipe(v.optional(v.literal(true)), v.description("Whether this is an initial snapshot.")),
164
+ }), v.description("User fundings."));
165
+ /** User non-funding ledger updates. */
166
+ export const WsUserNonFundingLedgerUpdates = v.pipe(v.strictObject({
167
+ /** User address. */
168
+ user: v.pipe(v.pipe(Hex, v.length(42)), v.description("User address.")),
169
+ /** Array of non-funding ledger updates. */
170
+ nonFundingLedgerUpdates: v.pipe(v.array(UserNonFundingLedgerUpdate), v.description("Array of non-funding ledger updates.")),
171
+ /** Whether this is an initial snapshot. */
172
+ isSnapshot: v.pipe(v.optional(v.literal(true)), v.description("Whether this is an initial snapshot.")),
173
+ }), v.description("User non-funding ledger updates."));
174
+ /** User TWAP history. */
175
+ export const WsUserTwapHistory = v.pipe(v.strictObject({
176
+ /** User address. */
177
+ user: v.pipe(v.pipe(Hex, v.length(42)), v.description("User address.")),
178
+ /** Array of historical TWAP fills. */
179
+ history: v.pipe(v.array(TwapHistory), v.description("Array of historical TWAP fills.")),
180
+ /** Whether this is an initial snapshot. */
181
+ isSnapshot: v.pipe(v.optional(v.literal(true)), v.description("Whether this is an initial snapshot.")),
182
+ }), v.description("User TWAP history."));
183
+ /** User TWAP slice fills. */
184
+ export const WsUserTwapSliceFills = v.pipe(v.strictObject({
185
+ /** User address. */
186
+ user: v.pipe(v.pipe(Hex, v.length(42)), v.description("User address.")),
187
+ /** Array of TWAP slice fills. */
188
+ twapSliceFills: v.pipe(v.array(TwapSliceFill), v.description("Array of TWAP slice fills.")),
189
+ /** Whether this is an initial snapshot. */
190
+ isSnapshot: v.pipe(v.optional(v.literal(true)), v.description("Whether this is an initial snapshot.")),
191
+ }), v.description("User TWAP slice fills."));
192
+ /** Comprehensive user and market data. */
193
+ export const WsWebData2 = v.pipe(v.strictObject({
194
+ /** Account summary for perpetual trading. */
195
+ clearinghouseState: v.pipe(PerpsClearinghouseState, v.description("Account summary for perpetual trading.")),
196
+ /** Leading vaults information. */
197
+ leadingVaults: v.pipe(v.array(v.strictObject({
198
+ /** Address of the vault. */
199
+ address: v.pipe(v.pipe(Hex, v.length(42)), v.description("Address of the vault.")),
200
+ /** Name of the vault. */
201
+ name: v.pipe(v.string(), v.description("Name of the vault.")),
202
+ })), v.description("Leading vaults information.")),
203
+ /** Total equity in vaults. */
204
+ totalVaultEquity: v.pipe(UnsignedDecimal, v.description("Total equity in vaults.")),
205
+ /** User open orders with frontend information. */
206
+ openOrders: v.pipe(v.array(FrontendOrder), v.description("User open orders with frontend information.")),
207
+ /** Agent address if one exists. */
208
+ agentAddress: v.pipe(v.union([v.pipe(Hex, v.length(42)), v.null()]), v.description("Agent address if one exists.")),
209
+ /** Timestamp until which the agent is valid. */
210
+ agentValidUntil: v.pipe(v.union([v.pipe(v.number(), v.safeInteger(), v.minValue(0)), v.null()]), v.description("Timestamp until which the agent is valid.")),
211
+ /** Cumulative ledger value. */
212
+ cumLedger: v.pipe(UnsignedDecimal, v.description("Cumulative ledger value.")),
213
+ /** Metadata for perpetual assets. */
214
+ meta: v.pipe(PerpsMeta, v.description("Metadata for perpetual assets.")),
215
+ /** Context information for perpetual assets. */
216
+ assetCtxs: v.pipe(v.array(PerpsAssetCtx), v.description("Context information for perpetual assets.")),
217
+ /** Server timestamp (in ms since epoch). */
218
+ serverTime: v.pipe(v.pipe(v.number(), v.safeInteger(), v.minValue(0)), v.description("Server timestamp (in ms since epoch).")),
219
+ /** Whether this account is a vault. */
220
+ isVault: v.pipe(v.boolean(), v.description("Whether this account is a vault.")),
221
+ /** User address. */
222
+ user: v.pipe(v.pipe(Hex, v.length(42)), v.description("User address.")),
223
+ /** TWAP states. */
224
+ twapStates: v.pipe(v.array(v.strictTuple([v.pipe(v.number(), v.safeInteger(), v.minValue(0)), TwapState])), v.description("TWAP states.")),
225
+ /** Account summary for spot trading. */
226
+ spotState: v.pipe(v.optional(SpotClearinghouseState), v.description("Account summary for spot trading.")),
227
+ /** Context information for spot assets. */
228
+ spotAssetCtxs: v.pipe(v.array(SpotAssetCtx), v.description("Context information for spot assets.")),
229
+ /** Whether the user has opted out of spot dusting. */
230
+ optOutOfSpotDusting: v.pipe(v.optional(v.literal(true)), v.description("Whether the user has opted out of spot dusting.")),
231
+ /** Assets currently at their open interest cap. */
232
+ perpsAtOpenInterestCap: v.pipe(v.optional(v.array(v.string())), v.description("Assets currently at their open interest cap.")),
233
+ }), v.description("Comprehensive user and market data."));
@@ -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
  * ```
@@ -118,15 +120,90 @@
118
120
  * @module
119
121
  */
120
122
  import { type AbstractWallet, getWalletAddress, getWalletChainId, type Signature } from "./_signTypedData/mod.js";
121
- import { actionSorter, userSignedActionEip712Types } from "./_sorter.js";
122
- export { type AbstractWallet, actionSorter, getWalletAddress, getWalletChainId, type Signature, userSignedActionEip712Types, };
123
+ export { type AbstractWallet, getWalletAddress, getWalletChainId, type Signature };
124
+ /** EIP-712 type definitions for user-signed actions. */
125
+ export declare const userSignedActionEip712Types: {
126
+ approveAgent: {
127
+ "HyperliquidTransaction:ApproveAgent": {
128
+ name: string;
129
+ type: string;
130
+ }[];
131
+ };
132
+ approveBuilderFee: {
133
+ "HyperliquidTransaction:ApproveBuilderFee": {
134
+ name: string;
135
+ type: string;
136
+ }[];
137
+ };
138
+ cDeposit: {
139
+ "HyperliquidTransaction:CDeposit": {
140
+ name: string;
141
+ type: string;
142
+ }[];
143
+ };
144
+ convertToMultiSigUser: {
145
+ "HyperliquidTransaction:ConvertToMultiSigUser": {
146
+ name: string;
147
+ type: string;
148
+ }[];
149
+ };
150
+ cWithdraw: {
151
+ "HyperliquidTransaction:CWithdraw": {
152
+ name: string;
153
+ type: string;
154
+ }[];
155
+ };
156
+ multiSig: {
157
+ "HyperliquidTransaction:SendMultiSig": {
158
+ name: string;
159
+ type: string;
160
+ }[];
161
+ };
162
+ sendAsset: {
163
+ "HyperliquidTransaction:SendAsset": {
164
+ name: string;
165
+ type: string;
166
+ }[];
167
+ };
168
+ spotSend: {
169
+ "HyperliquidTransaction:SpotSend": {
170
+ name: string;
171
+ type: string;
172
+ }[];
173
+ };
174
+ tokenDelegate: {
175
+ "HyperliquidTransaction:TokenDelegate": {
176
+ name: string;
177
+ type: string;
178
+ }[];
179
+ };
180
+ usdClassTransfer: {
181
+ "HyperliquidTransaction:UsdClassTransfer": {
182
+ name: string;
183
+ type: string;
184
+ }[];
185
+ };
186
+ usdSend: {
187
+ "HyperliquidTransaction:UsdSend": {
188
+ name: string;
189
+ type: string;
190
+ }[];
191
+ };
192
+ withdraw3: {
193
+ "HyperliquidTransaction:Withdraw": {
194
+ name: string;
195
+ type: string;
196
+ }[];
197
+ };
198
+ };
123
199
  /**
124
200
  * Create a hash of the L1 action.
125
201
  * @example
126
202
  * ```ts
127
- * import { actionSorter, createL1ActionHash } from "@nktkas/hyperliquid/signing";
203
+ * import { signL1Action } from "@nktkas/hyperliquid/signing";
204
+ * import { CancelRequest, parser } from "@nktkas/hyperliquid/schemas";
128
205
  *
129
- * const action = actionSorter.cancel({
206
+ * const action = parser(CancelRequest.entries.action)({ // for correct signature generation
130
207
  * type: "cancel",
131
208
  * cancels: [
132
209
  * { a: 0, o: 12345 },
@@ -151,11 +228,12 @@ export declare function createL1ActionHash(args: {
151
228
  * Sign an L1 action.
152
229
  * @example
153
230
  * ```ts
154
- * import { actionSorter, signL1Action } from "@nktkas/hyperliquid/signing";
231
+ * import { signL1Action } from "@nktkas/hyperliquid/signing";
232
+ * import { CancelRequest, parser } from "@nktkas/hyperliquid/schemas";
155
233
  *
156
234
  * const privateKey = "0x..."; // `viem`, `ethers`, or private key directly
157
235
  *
158
- * const action = actionSorter.cancel({
236
+ * const action = parser(CancelRequest.entries.action)({ // for correct signature generation
159
237
  * type: "cancel",
160
238
  * cancels: [
161
239
  * { a: 0, o: 12345 },
@@ -169,7 +247,7 @@ export declare function createL1ActionHash(args: {
169
247
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
170
248
  * method: "POST",
171
249
  * headers: { "Content-Type": "application/json" },
172
- * body: JSON.stringify({ action, signature, nonce }), // recommended to send the same formatted action
250
+ * body: JSON.stringify({ action, signature, nonce }),
173
251
  * });
174
252
  * const body = await response.json();
175
253
  * ```
@@ -192,11 +270,12 @@ export declare function signL1Action(args: {
192
270
  * Sign a user-signed action.
193
271
  * @example
194
272
  * ```ts
195
- * import { actionSorter, signUserSignedAction, userSignedActionEip712Types } from "@nktkas/hyperliquid/signing";
273
+ * import { signUserSignedAction, userSignedActionEip712Types } from "@nktkas/hyperliquid/signing";
274
+ * import { ApproveAgentRequest, parser } from "@nktkas/hyperliquid/schemas";
196
275
  *
197
276
  * const privateKey = "0x..."; // `viem`, `ethers`, or private key directly
198
277
  *
199
- * const action = actionSorter.approveAgent({
278
+ * const action = parser(ApproveAgentRequest.entries.action)({ // for correct signature generation
200
279
  * type: "approveAgent",
201
280
  * signatureChainId: "0x66eee",
202
281
  * hyperliquidChain: "Mainnet",
@@ -215,7 +294,7 @@ export declare function signL1Action(args: {
215
294
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
216
295
  * method: "POST",
217
296
  * headers: { "Content-Type": "application/json" },
218
- * body: JSON.stringify({ action, signature, nonce: action.nonce }), // recommended to send the same formatted action
297
+ * body: JSON.stringify({ action, signature, nonce: action.nonce }),
219
298
  * });
220
299
  * const body = await response.json();
221
300
  * ```
@@ -246,13 +325,14 @@ export declare function signUserSignedAction(args: {
246
325
  * Sign a multi-signature action.
247
326
  * @example
248
327
  * ```ts
249
- * import { actionSorter, signL1Action, signMultiSigAction } from "@nktkas/hyperliquid/signing";
328
+ * import { signL1Action, signMultiSigAction } from "@nktkas/hyperliquid/signing";
329
+ * import { MultiSigRequest, parser, ScheduleCancelRequest } from "@nktkas/hyperliquid/schemas";
250
330
  * import { privateKeyToAccount } from "npm:viem/accounts";
251
331
  *
252
- * const wallet = privateKeyToAccount("0x..."); // or ethers, private key directly
332
+ * const wallet = privateKeyToAccount("0x..."); // or `ethers`, private key directly
253
333
  * const multiSigUser = "0x...";
254
334
  *
255
- * const action = actionSorter.scheduleCancel({
335
+ * const action = parser(ScheduleCancelRequest.entries.action)({ // for correct signature generation
256
336
  * type: "scheduleCancel",
257
337
  * time: Date.now() + 10000,
258
338
  * });
@@ -267,7 +347,7 @@ export declare function signUserSignedAction(args: {
267
347
  * });
268
348
  * }));
269
349
  *
270
- * // or user-signed action
350
+ * // // or user-signed action
271
351
  * // const signatures = await Promise.all(["0x...", "0x..."].map(async (signerPrivKey) => {
272
352
  * // return await signUserSignedAction({
273
353
  * // wallet: signerPrivKey as `0x${string}`,
@@ -281,7 +361,7 @@ export declare function signUserSignedAction(args: {
281
361
  * // }));
282
362
  *
283
363
  * // Then use signatures in the multi-sig action
284
- * const multiSigAction = actionSorter.multiSig({
364
+ * const multiSigAction = parser(MultiSigRequest.entries.action)({
285
365
  * type: "multiSig",
286
366
  * signatureChainId: "0x66eee",
287
367
  * signatures,
@@ -297,7 +377,7 @@ export declare function signUserSignedAction(args: {
297
377
  * const response = await fetch("https://api.hyperliquid.xyz/exchange", {
298
378
  * method: "POST",
299
379
  * headers: { "Content-Type": "application/json" },
300
- * body: JSON.stringify({ action: multiSigAction, signature: multiSigSignature, nonce }), // recommended to send the same formatted action
380
+ * body: JSON.stringify({ action: multiSigAction, signature: multiSigSignature, nonce }),
301
381
  * });
302
382
  * const body = await response.json();
303
383
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/src/signing/mod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../src/src/signing/mod.ts"],"names":[],"mappings":"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"}