@nktkas/hyperliquid 0.13.1 → 0.14.0

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 (243) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +334 -107
  3. package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts +9 -0
  4. package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts.map +1 -0
  5. package/esm/deps/jsr.io/@std/bytes/1.0.5/_types.js +2 -0
  6. package/esm/deps/jsr.io/@std/bytes/{1.0.4 → 1.0.5}/concat.d.ts +3 -1
  7. package/esm/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts.map +1 -0
  8. package/esm/deps/jsr.io/@std/bytes/{1.0.4 → 1.0.5}/concat.js +1 -1
  9. package/esm/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts +9 -0
  10. package/esm/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts.map +1 -0
  11. package/esm/deps/jsr.io/@std/encoding/1.0.7/_types.js +2 -0
  12. package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts.map +1 -1
  13. package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.js +1 -1
  14. package/{script/deps/jsr.io/@std/encoding/1.0.6 → esm/deps/jsr.io/@std/encoding/1.0.7}/hex.d.ts +3 -1
  15. package/esm/deps/jsr.io/@std/encoding/1.0.7/hex.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/hex.js +1 -1
  17. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +9 -0
  18. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.js +2 -0
  20. package/esm/deps/jsr.io/@std/msgpack/{1.0.2 → 1.0.3}/encode.d.ts +3 -1
  21. package/esm/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@std/msgpack/{1.0.2 → 1.0.3}/encode.js +2 -2
  23. package/esm/mod.d.ts +4 -12
  24. package/esm/mod.d.ts.map +1 -1
  25. package/esm/mod.js +2 -2
  26. package/{script/src/transports → esm/src}/base.d.ts +10 -13
  27. package/esm/src/base.d.ts.map +1 -0
  28. package/esm/src/base.js +14 -0
  29. package/esm/src/clients/event.d.ts +59 -18
  30. package/esm/src/clients/event.d.ts.map +1 -1
  31. package/esm/src/clients/event.js +74 -18
  32. package/esm/src/clients/public.d.ts +348 -53
  33. package/esm/src/clients/public.d.ts.map +1 -1
  34. package/esm/src/clients/public.js +349 -50
  35. package/esm/src/clients/wallet.d.ts +345 -73
  36. package/esm/src/clients/wallet.d.ts.map +1 -1
  37. package/esm/src/clients/wallet.js +979 -229
  38. package/esm/src/signing.d.ts +135 -0
  39. package/esm/src/signing.d.ts.map +1 -0
  40. package/esm/src/signing.js +188 -0
  41. package/esm/src/transports/http/http_transport.d.ts +1 -1
  42. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  43. package/esm/src/transports/http/http_transport.js +1 -1
  44. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts +64 -0
  45. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -0
  46. package/esm/src/transports/websocket/_hyperliquid_event_target.js +52 -0
  47. package/esm/src/transports/websocket/{reconnecting_websocket.d.ts → _reconnecting_websocket.d.ts} +26 -26
  48. package/esm/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -0
  49. package/esm/src/transports/websocket/{reconnecting_websocket.js → _reconnecting_websocket.js} +91 -76
  50. package/{script/src/transports/websocket/websocket_request_dispatcher.d.ts → esm/src/transports/websocket/_websocket_request_dispatcher.d.ts} +3 -7
  51. package/esm/src/transports/websocket/_websocket_request_dispatcher.d.ts.map +1 -0
  52. package/esm/src/transports/websocket/{websocket_request_dispatcher.js → _websocket_request_dispatcher.js} +6 -10
  53. package/esm/src/transports/websocket/websocket_transport.d.ts +15 -21
  54. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  55. package/esm/src/transports/websocket/websocket_transport.js +55 -52
  56. package/esm/src/types/exchange/requests.d.ts +298 -79
  57. package/esm/src/types/exchange/requests.d.ts.map +1 -1
  58. package/esm/src/types/exchange/responses.d.ts +38 -38
  59. package/esm/src/types/exchange/responses.d.ts.map +1 -1
  60. package/esm/src/types/explorer/requests.d.ts +23 -10
  61. package/esm/src/types/explorer/requests.d.ts.map +1 -1
  62. package/esm/src/types/explorer/responses.d.ts +45 -3
  63. package/esm/src/types/explorer/responses.d.ts.map +1 -1
  64. package/esm/src/types/info/accounts.d.ts +279 -189
  65. package/esm/src/types/info/accounts.d.ts.map +1 -1
  66. package/esm/src/types/info/assets.d.ts +191 -185
  67. package/esm/src/types/info/assets.d.ts.map +1 -1
  68. package/esm/src/types/info/delegations.d.ts +117 -0
  69. package/esm/src/types/info/delegations.d.ts.map +1 -0
  70. package/esm/src/types/info/orders.d.ts +94 -94
  71. package/esm/src/types/info/orders.d.ts.map +1 -1
  72. package/esm/src/types/info/requests.d.ts +192 -64
  73. package/esm/src/types/info/requests.d.ts.map +1 -1
  74. package/esm/src/types/info/vaults.d.ts +42 -85
  75. package/esm/src/types/info/vaults.d.ts.map +1 -1
  76. package/esm/src/types/mod.d.ts +14 -0
  77. package/esm/src/types/mod.d.ts.map +1 -0
  78. package/esm/src/types/subscriptions/requests.d.ts +11 -1
  79. package/esm/src/types/subscriptions/requests.d.ts.map +1 -1
  80. package/{script/src/types/subscriptions/common.d.ts → esm/src/types/subscriptions/responses.d.ts} +18 -3
  81. package/esm/src/types/subscriptions/responses.d.ts.map +1 -0
  82. package/package.json +20 -4
  83. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +13 -3
  84. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +23 -13
  85. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.js +55 -45
  86. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.js +97 -87
  87. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.js +14 -4
  88. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.js +288 -278
  89. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/utils.js +238 -228
  90. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts +9 -0
  91. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.d.ts.map +1 -0
  92. package/script/deps/jsr.io/@std/bytes/1.0.5/_types.js +13 -0
  93. package/script/deps/jsr.io/@std/bytes/{1.0.4 → 1.0.5}/concat.d.ts +3 -1
  94. package/script/deps/jsr.io/@std/bytes/1.0.5/concat.d.ts.map +1 -0
  95. package/script/deps/jsr.io/@std/bytes/1.0.5/concat.js +45 -0
  96. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts +9 -0
  97. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.d.ts.map +1 -0
  98. package/script/deps/jsr.io/@std/encoding/1.0.7/_types.js +13 -0
  99. package/script/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts.map +1 -1
  100. package/script/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.js +39 -0
  101. package/{esm/deps/jsr.io/@std/encoding/1.0.6 → script/deps/jsr.io/@std/encoding/1.0.7}/hex.d.ts +3 -1
  102. package/script/deps/jsr.io/@std/encoding/1.0.7/hex.d.ts.map +1 -0
  103. package/script/deps/jsr.io/@std/encoding/1.0.7/hex.js +123 -0
  104. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +9 -0
  105. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +1 -0
  106. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.js +13 -0
  107. package/script/deps/jsr.io/@std/msgpack/{1.0.2 → 1.0.3}/encode.d.ts +3 -1
  108. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +1 -0
  109. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.js +250 -0
  110. package/script/mod.d.ts +4 -12
  111. package/script/mod.d.ts.map +1 -1
  112. package/script/mod.js +21 -13
  113. package/{esm/src/transports → script/src}/base.d.ts +10 -13
  114. package/script/src/base.d.ts.map +1 -0
  115. package/script/src/base.js +29 -0
  116. package/script/src/clients/event.d.ts +59 -18
  117. package/script/src/clients/event.d.ts.map +1 -1
  118. package/script/src/clients/event.js +551 -485
  119. package/script/src/clients/public.d.ts +348 -53
  120. package/script/src/clients/public.d.ts.map +1 -1
  121. package/script/src/clients/public.js +1017 -708
  122. package/script/src/clients/wallet.d.ts +345 -73
  123. package/script/src/clients/wallet.d.ts.map +1 -1
  124. package/script/src/clients/wallet.js +1737 -977
  125. package/script/src/signing.d.ts +135 -0
  126. package/script/src/signing.d.ts.map +1 -0
  127. package/script/src/signing.js +203 -0
  128. package/script/src/transports/http/http_transport.d.ts +1 -1
  129. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  130. package/script/src/transports/http/http_transport.js +174 -164
  131. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts +64 -0
  132. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -0
  133. package/script/src/transports/websocket/_hyperliquid_event_target.js +66 -0
  134. package/script/src/transports/websocket/{reconnecting_websocket.d.ts → _reconnecting_websocket.d.ts} +26 -26
  135. package/script/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -0
  136. package/script/src/transports/websocket/_reconnecting_websocket.js +400 -0
  137. package/{esm/src/transports/websocket/websocket_request_dispatcher.d.ts → script/src/transports/websocket/_websocket_request_dispatcher.d.ts} +3 -7
  138. package/script/src/transports/websocket/_websocket_request_dispatcher.d.ts.map +1 -0
  139. package/script/src/transports/websocket/_websocket_request_dispatcher.js +212 -0
  140. package/script/src/transports/websocket/websocket_transport.d.ts +15 -21
  141. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  142. package/script/src/transports/websocket/websocket_transport.js +235 -222
  143. package/script/src/types/exchange/requests.d.ts +298 -79
  144. package/script/src/types/exchange/requests.d.ts.map +1 -1
  145. package/script/src/types/exchange/requests.js +12 -2
  146. package/script/src/types/exchange/responses.d.ts +38 -38
  147. package/script/src/types/exchange/responses.d.ts.map +1 -1
  148. package/script/src/types/exchange/responses.js +12 -2
  149. package/script/src/types/explorer/requests.d.ts +23 -10
  150. package/script/src/types/explorer/requests.d.ts.map +1 -1
  151. package/script/src/types/explorer/requests.js +12 -2
  152. package/script/src/types/explorer/responses.d.ts +45 -3
  153. package/script/src/types/explorer/responses.d.ts.map +1 -1
  154. package/script/src/types/explorer/responses.js +12 -2
  155. package/script/src/types/info/accounts.d.ts +279 -189
  156. package/script/src/types/info/accounts.d.ts.map +1 -1
  157. package/script/src/types/info/accounts.js +12 -2
  158. package/script/src/types/info/assets.d.ts +191 -185
  159. package/script/src/types/info/assets.d.ts.map +1 -1
  160. package/script/src/types/info/assets.js +12 -2
  161. package/script/src/types/info/delegations.d.ts +117 -0
  162. package/script/src/types/info/delegations.d.ts.map +1 -0
  163. package/script/src/types/info/delegations.js +12 -0
  164. package/script/src/types/info/orders.d.ts +94 -94
  165. package/script/src/types/info/orders.d.ts.map +1 -1
  166. package/script/src/types/info/orders.js +12 -2
  167. package/script/src/types/info/requests.d.ts +192 -64
  168. package/script/src/types/info/requests.d.ts.map +1 -1
  169. package/script/src/types/info/requests.js +12 -2
  170. package/script/src/types/info/vaults.d.ts +42 -85
  171. package/script/src/types/info/vaults.d.ts.map +1 -1
  172. package/script/src/types/info/vaults.js +12 -2
  173. package/script/src/types/mod.d.ts +14 -0
  174. package/script/src/types/mod.d.ts.map +1 -0
  175. package/script/src/types/mod.js +12 -0
  176. package/script/src/types/subscriptions/requests.d.ts +11 -1
  177. package/script/src/types/subscriptions/requests.d.ts.map +1 -1
  178. package/script/src/types/subscriptions/requests.js +12 -2
  179. package/{esm/src/types/subscriptions/common.d.ts → script/src/types/subscriptions/responses.d.ts} +18 -3
  180. package/script/src/types/subscriptions/responses.d.ts.map +1 -0
  181. package/script/src/types/subscriptions/responses.js +12 -0
  182. package/esm/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts.map +0 -1
  183. package/esm/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts.map +0 -1
  184. package/esm/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts.map +0 -1
  185. package/esm/src/transports/base.d.ts.map +0 -1
  186. package/esm/src/transports/base.js +0 -14
  187. package/esm/src/transports/websocket/hyperliquid_event_target.d.ts +0 -66
  188. package/esm/src/transports/websocket/hyperliquid_event_target.d.ts.map +0 -1
  189. package/esm/src/transports/websocket/hyperliquid_event_target.js +0 -33
  190. package/esm/src/transports/websocket/reconnecting_websocket.d.ts.map +0 -1
  191. package/esm/src/transports/websocket/websocket_request_dispatcher.d.ts.map +0 -1
  192. package/esm/src/types/common.d.ts +0 -3
  193. package/esm/src/types/common.d.ts.map +0 -1
  194. package/esm/src/types/exchange/common.d.ts +0 -36
  195. package/esm/src/types/exchange/common.d.ts.map +0 -1
  196. package/esm/src/types/explorer/common.d.ts +0 -37
  197. package/esm/src/types/explorer/common.d.ts.map +0 -1
  198. package/esm/src/types/subscriptions/common.d.ts.map +0 -1
  199. package/esm/src/types/subscriptions/common.js +0 -1
  200. package/esm/src/utils/key_sort.d.ts +0 -21
  201. package/esm/src/utils/key_sort.d.ts.map +0 -1
  202. package/esm/src/utils/key_sort.js +0 -124
  203. package/esm/src/utils/signing.d.ts +0 -109
  204. package/esm/src/utils/signing.d.ts.map +0 -1
  205. package/esm/src/utils/signing.js +0 -164
  206. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts.map +0 -1
  207. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.js +0 -35
  208. package/script/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.js +0 -29
  209. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts.map +0 -1
  210. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.js +0 -113
  211. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts.map +0 -1
  212. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.js +0 -240
  213. package/script/src/transports/base.d.ts.map +0 -1
  214. package/script/src/transports/base.js +0 -18
  215. package/script/src/transports/websocket/hyperliquid_event_target.d.ts +0 -66
  216. package/script/src/transports/websocket/hyperliquid_event_target.d.ts.map +0 -1
  217. package/script/src/transports/websocket/hyperliquid_event_target.js +0 -37
  218. package/script/src/transports/websocket/reconnecting_websocket.d.ts.map +0 -1
  219. package/script/src/transports/websocket/reconnecting_websocket.js +0 -374
  220. package/script/src/transports/websocket/websocket_request_dispatcher.d.ts.map +0 -1
  221. package/script/src/transports/websocket/websocket_request_dispatcher.js +0 -206
  222. package/script/src/types/common.d.ts +0 -3
  223. package/script/src/types/common.d.ts.map +0 -1
  224. package/script/src/types/common.js +0 -2
  225. package/script/src/types/exchange/common.d.ts +0 -36
  226. package/script/src/types/exchange/common.d.ts.map +0 -1
  227. package/script/src/types/exchange/common.js +0 -2
  228. package/script/src/types/explorer/common.d.ts +0 -37
  229. package/script/src/types/explorer/common.d.ts.map +0 -1
  230. package/script/src/types/explorer/common.js +0 -2
  231. package/script/src/types/subscriptions/common.d.ts.map +0 -1
  232. package/script/src/types/subscriptions/common.js +0 -2
  233. package/script/src/utils/key_sort.d.ts +0 -21
  234. package/script/src/utils/key_sort.d.ts.map +0 -1
  235. package/script/src/utils/key_sort.js +0 -127
  236. package/script/src/utils/signing.d.ts +0 -109
  237. package/script/src/utils/signing.d.ts.map +0 -1
  238. package/script/src/utils/signing.js +0 -172
  239. /package/esm/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts +0 -0
  240. /package/esm/src/types/{common.js → info/delegations.js} +0 -0
  241. /package/esm/src/types/{exchange/common.js → mod.js} +0 -0
  242. /package/esm/src/types/{explorer/common.js → subscriptions/responses.js} +0 -0
  243. /package/script/deps/jsr.io/@std/encoding/{1.0.6 → 1.0.7}/_validate_binary_like.d.ts +0 -0
@@ -1,708 +1,1017 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PublicClient = void 0;
4
- /**
5
- * Public client for interacting with the Hyperliquid API.
6
- * @typeParam T - The type of transport used to connect to the Hyperliquid API.
7
- */
8
- class PublicClient {
9
- /**
10
- * Initialises a new instance.
11
- * @param args - The arguments for initialisation.
12
- *
13
- * @example
14
- * ```ts
15
- * import * as hl from "@nktkas/hyperliquid";
16
- *
17
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
18
- * const client = new hl.PublicClient({ transport });
19
- * ```
20
- */
21
- constructor(args) {
22
- /** The transport used to connect to the Hyperliquid API. */
23
- Object.defineProperty(this, "transport", {
24
- enumerable: true,
25
- configurable: true,
26
- writable: true,
27
- value: void 0
28
- });
29
- this.transport = args.transport;
30
- }
31
- // ———————————————Info API———————————————
32
- /**
33
- * Request mid coin prices.
34
- * @param signal - An optional abort signal.
35
- * @returns Mid coin prices.
36
- *
37
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-mids-for-all-coins | Hyperliquid GitBook}
38
- * @example
39
- * ```ts
40
- * import * as hl from "@nktkas/hyperliquid";
41
- *
42
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
43
- * const client = new hl.PublicClient({ transport });
44
- *
45
- * const allMids = await client.allMids();
46
- * ```
47
- */
48
- allMids(signal) {
49
- return this.transport.request("info", { type: "allMids" }, signal);
50
- }
51
- /**
52
- * Request candlestick snapshots.
53
- * @param args - The parameters for the request.
54
- * @param signal - An optional abort signal.
55
- * @returns Array of candlestick data points.
56
- *
57
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#candle-snapshot | Hyperliquid GitBook}
58
- * @example
59
- * ```ts
60
- * import * as hl from "@nktkas/hyperliquid";
61
- *
62
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
63
- * const client = new hl.PublicClient({ transport });
64
- *
65
- * const candles = await client.candleSnapshot({
66
- * coin: "ETH",
67
- * interval: "1h",
68
- * startTime: Date.now() - 1000 * 60 * 60 * 24
69
- * });
70
- * ```
71
- */
72
- candleSnapshot(args, signal) {
73
- return this.transport.request("info", { type: "candleSnapshot", req: args }, signal);
74
- }
75
- /**
76
- * Request clearinghouse state.
77
- * @param args - The parameters for the request.
78
- * @param signal - An optional abort signal.
79
- * @returns Account summary for perpetual trading.
80
- *
81
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-users-perpetuals-account-summary | Hyperliquid GitBook}
82
- * @example
83
- * ```ts
84
- * import * as hl from "@nktkas/hyperliquid";
85
- *
86
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
87
- * const client = new hl.PublicClient({ transport });
88
- *
89
- * const state = await client.clearinghouseState({ user: "0x..." });
90
- * ```
91
- */
92
- clearinghouseState(args, signal) {
93
- return this.transport.request("info", { type: "clearinghouseState", ...args }, signal);
94
- }
95
- /**
96
- * Request user's extra agents.
97
- * @param args - The parameters for the request.
98
- * @param signal - An optional abort signal.
99
- * @returns User's extra agents.
100
- *
101
- * @example
102
- * ```ts
103
- * import * as hl from "@nktkas/hyperliquid";
104
- *
105
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
106
- * const client = new hl.PublicClient({ transport });
107
- *
108
- * const extraAgents = await client.extraAgents({ user: "0x..." });
109
- * ```
110
- */
111
- extraAgents(args, signal) {
112
- return this.transport.request("info", { type: "extraAgents", ...args }, signal);
113
- }
114
- /**
115
- * Request frontend open orders.
116
- * @param args - The parameters for the request.
117
- * @param signal - An optional abort signal.
118
- * @returns Array of open orders with additional frontend information.
119
- *
120
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders-with-additional-frontend-info | Hyperliquid GitBook}
121
- * @example
122
- * ```ts
123
- * import * as hl from "@nktkas/hyperliquid";
124
- *
125
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
126
- * const client = new hl.PublicClient({ transport });
127
- *
128
- * const orders = await client.frontendOpenOrders({ user: "0x..." });
129
- * ```
130
- */
131
- frontendOpenOrders(args, signal) {
132
- return this.transport.request("info", { type: "frontendOpenOrders", ...args }, signal);
133
- }
134
- /**
135
- * Request funding history.
136
- * @param args - The parameters for the request.
137
- * @param signal - An optional abort signal.
138
- * @returns Array of historical funding rate data for an asset.
139
- *
140
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-historical-funding-rates | Hyperliquid GitBook}
141
- * @example
142
- * ```ts
143
- * import * as hl from "@nktkas/hyperliquid";
144
- *
145
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
146
- * const client = new hl.PublicClient({ transport });
147
- *
148
- * const funding = await client.fundingHistory({
149
- * coin: "ETH",
150
- * startTime: Date.now() - 1000 * 60 * 60 * 24
151
- * });
152
- * ```
153
- */
154
- fundingHistory(args, signal) {
155
- return this.transport.request("info", { type: "fundingHistory", ...args }, signal);
156
- }
157
- /**
158
- * Request user's historical orders.
159
- * @param args - The parameters for the request.
160
- * @param signal - An optional abort signal.
161
- * @returns Array of user's historical orders.
162
- *
163
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-historical-orders | Hyperliquid GitBook}
164
- * @example
165
- * ```ts
166
- * import * as hl from "@nktkas/hyperliquid";
167
- *
168
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
169
- * const client = new hl.PublicClient({ transport });
170
- *
171
- * const orders = await client.historicalOrders({ user: "0x..." });
172
- * ```
173
- */
174
- historicalOrders(args, signal) {
175
- return this.transport.request("info", { type: "historicalOrders", ...args }, signal);
176
- }
177
- /**
178
- * Request L2 order book.
179
- * @param args - The parameters for the request.
180
- * @param signal - An optional abort signal.
181
- * @returns L2 order book snapshot.
182
- *
183
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#l2-book-snapshot | Hyperliquid GitBook}
184
- * @example
185
- * ```ts
186
- * import * as hl from "@nktkas/hyperliquid";
187
- *
188
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
189
- * const client = new hl.PublicClient({ transport });
190
- *
191
- * const book = await client.l2Book({ coin: "ETH", nSigFigs: 2 });
192
- * ```
193
- */
194
- l2Book(args, signal) {
195
- return this.transport.request("info", { type: "l2Book", ...args }, signal);
196
- }
197
- /**
198
- * Request builder fee approval.
199
- * @param args - The parameters for the request.
200
- * @param signal - An optional abort signal.
201
- * @returns Maximum builder fee approval.
202
- *
203
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#check-builder-fee-approval | Hyperliquid GitBook}
204
- * @example
205
- * ```ts
206
- * import * as hl from "@nktkas/hyperliquid";
207
- *
208
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
209
- * const client = new hl.PublicClient({ transport });
210
- *
211
- * const maxBuilderFee = await client.maxBuilderFee({ user: "0x...", builder: "0x..." });
212
- * ```
213
- */
214
- maxBuilderFee(args, signal) {
215
- return this.transport.request("info", { type: "maxBuilderFee", ...args }, signal);
216
- }
217
- /**
218
- * Request trading metadata.
219
- * @param signal - An optional abort signal.
220
- * @returns Metadata for perpetual assets.
221
- *
222
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-perpetuals-metadata | Hyperliquid GitBook}
223
- * @example
224
- * ```ts
225
- * import * as hl from "@nktkas/hyperliquid";
226
- *
227
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
228
- * const client = new hl.PublicClient({ transport });
229
- *
230
- * const meta = await client.meta();
231
- * ```
232
- */
233
- meta(signal) {
234
- return this.transport.request("info", { type: "meta" }, signal);
235
- }
236
- /**
237
- * Request metadata and asset contexts.
238
- * @param signal - An optional abort signal.
239
- * @returns Metadata and context information for each perpetual asset.
240
- *
241
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-perpetuals-asset-contexts-includes-mark-price-current-funding-open-interest-etc | Hyperliquid GitBook}
242
- * @example
243
- * ```ts
244
- * import * as hl from "@nktkas/hyperliquid";
245
- *
246
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
247
- * const client = new hl.PublicClient({ transport });
248
- *
249
- * const [meta, assetCtxs] = await client.metaAndAssetCtxs();
250
- * ```
251
- */
252
- metaAndAssetCtxs(signal) {
253
- return this.transport.request("info", { type: "metaAndAssetCtxs" }, signal);
254
- }
255
- /**
256
- * Request open orders.
257
- * @param args - The parameters for the request.
258
- * @param signal - An optional abort signal.
259
- * @returns Array of open order.
260
- *
261
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders | Hyperliquid GitBook}
262
- * @example
263
- * ```ts
264
- * import * as hl from "@nktkas/hyperliquid";
265
- *
266
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
267
- * const client = new hl.PublicClient({ transport });
268
- *
269
- * const orders = await client.openOrders({ user: "0x..." });
270
- * ```
271
- */
272
- openOrders(args, signal) {
273
- return this.transport.request("info", { type: "openOrders", ...args }, signal);
274
- }
275
- /**
276
- * Request order status.
277
- * @param args - The parameters for the request.
278
- * @param signal - An optional abort signal.
279
- * @returns Result of an order status lookup.
280
- *
281
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-order-status-by-oid-or-cloid | Hyperliquid GitBook}
282
- * @example
283
- * ```ts
284
- * import * as hl from "@nktkas/hyperliquid";
285
- *
286
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
287
- * const client = new hl.PublicClient({ transport });
288
- *
289
- * const status = await client.orderStatus({ user: "0x...", oid: 12345 });
290
- * ```
291
- */
292
- orderStatus(args, signal) {
293
- return this.transport.request("info", { type: "orderStatus", ...args }, signal);
294
- }
295
- /**
296
- * Request predicted funding rates.
297
- * @param signal - An optional abort signal.
298
- * @returns Array of predicted funding rates.
299
- *
300
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-predicted-funding-rates-for-different-venues | Hyperliquid GitBook}
301
- * @example
302
- * ```ts
303
- * import * as hl from "@nktkas/hyperliquid";
304
- *
305
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
306
- * const client = new hl.PublicClient({ transport });
307
- *
308
- * const predictedFundings = await client.predictedFundings();
309
- * ```
310
- */
311
- predictedFundings(signal) {
312
- return this.transport.request("info", { type: "predictedFundings" }, signal);
313
- }
314
- /**
315
- * Request user referral.
316
- * @param args - The parameters for the request.
317
- * @param signal - An optional abort signal.
318
- * @returns Referral information for a user.
319
- *
320
- * @example
321
- * ```ts
322
- * import * as hl from "@nktkas/hyperliquid";
323
- *
324
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
325
- * const client = new hl.PublicClient({ transport });
326
- *
327
- * const referral = await client.referral({ user: "0x..." });
328
- * ```
329
- */
330
- referral(args, signal) {
331
- return this.transport.request("info", { type: "referral", ...args }, signal);
332
- }
333
- /**
334
- * Request spot clearinghouse state.
335
- * @param args - The parameters for the request.
336
- * @param signal - An optional abort signal.
337
- * @returns Balances for spot tokens.
338
- *
339
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-a-users-token-balances | Hyperliquid GitBook}
340
- * @example
341
- * ```ts
342
- * import * as hl from "@nktkas/hyperliquid";
343
- *
344
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
345
- * const client = new hl.PublicClient({ transport });
346
- *
347
- * const state = await client.spotClearinghouseState({ user: "0x..." });
348
- * ```
349
- */
350
- spotClearinghouseState(args, signal) {
351
- return this.transport.request("info", { type: "spotClearinghouseState", ...args }, signal);
352
- }
353
- /**
354
- * Request spot deploy state.
355
- * @param args - The parameters for the request.
356
- * @param signal - An optional abort signal.
357
- * @returns The deploy state of a user.
358
- *
359
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-the-spot-deploy-auction | Hyperliquid GitBook}
360
- */
361
- spotDeployState(args, signal) {
362
- return this.transport.request("info", { type: "spotDeployState", ...args }, signal);
363
- }
364
- /**
365
- * Request spot trading metadata.
366
- * @param signal - An optional abort signal.
367
- * @returns Metadata for spot assets.
368
- *
369
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-metadata | Hyperliquid GitBook}
370
- * @example
371
- * ```ts
372
- * import * as hl from "@nktkas/hyperliquid";
373
- *
374
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
375
- * const client = new hl.PublicClient({ transport });
376
- *
377
- * const meta = await client.spotMeta();
378
- * ```
379
- */
380
- spotMeta(signal) {
381
- return this.transport.request("info", { type: "spotMeta" }, signal);
382
- }
383
- /**
384
- * Request spot metadata and asset contexts.
385
- * @param signal - An optional abort signal.
386
- * @returns Metadata and context information for each spot asset.
387
- *
388
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-asset-contexts | Hyperliquid GitBook}
389
- * @example
390
- * ```ts
391
- * import * as hl from "@nktkas/hyperliquid";
392
- *
393
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
394
- * const client = new hl.PublicClient({ transport });
395
- *
396
- * const [meta, assetCtxs] = await client.spotMetaAndAssetCtxs();
397
- * ```
398
- */
399
- spotMetaAndAssetCtxs(signal) {
400
- return this.transport.request("info", { type: "spotMetaAndAssetCtxs" }, signal);
401
- }
402
- /**
403
- * Request user sub-accounts.
404
- * @param args - The parameters for the request.
405
- * @param signal - An optional abort signal.
406
- * @returns Array of user sub-account.
407
- *
408
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-subaccounts | Hyperliquid GitBook}
409
- * @example
410
- * ```ts
411
- * import * as hl from "@nktkas/hyperliquid";
412
- *
413
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
414
- * const client = new hl.PublicClient({ transport });
415
- *
416
- * const subAccounts = await client.subAccounts({ user: "0x..." });
417
- * ```
418
- */
419
- subAccounts(args, signal) {
420
- return this.transport.request("info", { type: "subAccounts", ...args }, signal);
421
- }
422
- /**
423
- * Request token details.
424
- * @param args - The parameters for the request.
425
- * @param signal - An optional abort signal.
426
- * @returns The details of a token.
427
- *
428
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-a-token | Hyperliquid GitBook}
429
- * @example
430
- * ```ts
431
- * import * as hl from "@nktkas/hyperliquid";
432
- *
433
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
434
- * const client = new hl.PublicClient({ transport });
435
- *
436
- * const details = await client.tokenDetails({ tokenId: "0x..." });
437
- * ```
438
- */
439
- tokenDetails(args, signal) {
440
- return this.transport.request("info", { type: "tokenDetails", ...args }, signal);
441
- }
442
- /**
443
- * Request twap history of a user.
444
- * @param args - The parameters for the request.
445
- * @param signal - An optional abort signal.
446
- * @returns The twap history of a user.
447
- *
448
- * @example
449
- * ```ts
450
- * import * as hl from "@nktkas/hyperliquid";
451
- *
452
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
453
- * const client = new hl.PublicClient({ transport });
454
- *
455
- * const twapHistory = await client.twapHistory({ user: "0x..." });
456
- * ```
457
- */
458
- twapHistory(args, signal) {
459
- return this.transport.request("info", { type: "twapHistory", ...args }, signal);
460
- }
461
- /**
462
- * Request user fees.
463
- * @param args - The parameters for the request.
464
- * @param signal - An optional abort signal.
465
- * @returns User fees.
466
- *
467
- * @example
468
- * ```ts
469
- * import * as hl from "@nktkas/hyperliquid";
470
- *
471
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
472
- * const client = new hl.PublicClient({ transport });
473
- *
474
- * const userFees = await client.userFees({ user: "0x..." });
475
- * ```
476
- */
477
- userFees(args, signal) {
478
- return this.transport.request("info", { type: "userFees", ...args }, signal);
479
- }
480
- /**
481
- * Request user fills.
482
- * @param args - The parameters for the request.
483
- * @param signal - An optional abort signal.
484
- * @returns Array of user's trade fill.
485
- *
486
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills | Hyperliquid GitBook}
487
- * @example
488
- * ```ts
489
- * import * as hl from "@nktkas/hyperliquid";
490
- *
491
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
492
- * const client = new hl.PublicClient({ transport });
493
- *
494
- * const fills = await client.userFills({ user: "0x..." });
495
- * ```
496
- */
497
- userFills(args, signal) {
498
- return this.transport.request("info", { type: "userFills", ...args }, signal);
499
- }
500
- /**
501
- * Request user fills by time.
502
- * @param args - The parameters for the request.
503
- * @param signal - An optional abort signal.
504
- * @returns Array of user's trade fill.
505
- *
506
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills-by-time | Hyperliquid GitBook}
507
- * @example
508
- * ```ts
509
- * import * as hl from "@nktkas/hyperliquid";
510
- *
511
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
512
- * const client = new hl.PublicClient({ transport });
513
- *
514
- * const fills = await client.userFillsByTime({
515
- * user: "0x...",
516
- * startTime: Date.now() - 1000 * 60 * 60 * 24
517
- * });
518
- * ```
519
- */
520
- userFillsByTime(args, signal) {
521
- return this.transport.request("info", { type: "userFillsByTime", ...args }, signal);
522
- }
523
- /**
524
- * Request user funding.
525
- * @param args - The parameters for the request.
526
- * @param signal - An optional abort signal.
527
- * @returns Array of user's funding ledger update.
528
- *
529
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates | Hyperliquid GitBook}
530
- * @example
531
- * ```ts
532
- * import * as hl from "@nktkas/hyperliquid";
533
- *
534
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
535
- * const client = new hl.PublicClient({ transport });
536
- *
537
- * const funding = await client.userFunding({
538
- * user: "0x...",
539
- * startTime: Date.now() - 1000 * 60 * 60 * 24
540
- * });
541
- * ```
542
- */
543
- userFunding(args, signal) {
544
- return this.transport.request("info", { type: "userFunding", ...args }, signal);
545
- }
546
- /**
547
- * Request user non-funding ledger updates.
548
- * @param args - The parameters for the request.
549
- * @param signal - An optional abort signal.
550
- * @returns Array of user's non-funding ledger update.
551
- *
552
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates | Hyperliquid GitBook}
553
- * @example
554
- * ```ts
555
- * import * as hl from "@nktkas/hyperliquid";
556
- *
557
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
558
- * const client = new hl.PublicClient({ transport });
559
- *
560
- * const funding = await client.userNonFundingLedgerUpdates({
561
- * user: "0x...",
562
- * startTime: Date.now() - 1000 * 60 * 60 * 24
563
- * });
564
- * ```
565
- */
566
- userNonFundingLedgerUpdates(args, signal) {
567
- return this.transport.request("info", { type: "userNonFundingLedgerUpdates", ...args }, signal);
568
- }
569
- /**
570
- * Request user rate limits.
571
- * @param args - The parameters for the request.
572
- * @param signal - An optional abort signal.
573
- * @returns User's rate limits.
574
- *
575
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-rate-limits | Hyperliquid GitBook}
576
- * @example
577
- * ```ts
578
- * import * as hl from "@nktkas/hyperliquid";
579
- *
580
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
581
- * const client = new hl.PublicClient({ transport });
582
- *
583
- * const rateLimit = await client.userRateLimit({ user: "0x..." });
584
- * ```
585
- */
586
- userRateLimit(args, signal) {
587
- return this.transport.request("info", { type: "userRateLimit", ...args }, signal);
588
- }
589
- /**
590
- * Request user twap slice fills.
591
- * @param args - The parameters for the request.
592
- * @param signal - An optional abort signal.
593
- * @returns Array of user's twap slice fill.
594
- *
595
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-twap-slice-fills | Hyperliquid GitBook}
596
- * @example
597
- * ```ts
598
- * import * as hl from "@nktkas/hyperliquid";
599
- *
600
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
601
- * const client = new hl.PublicClient({ transport });
602
- *
603
- * const fills = await client.userTwapSliceFills({ user: "0x..." });
604
- * ```
605
- */
606
- userTwapSliceFills(args, signal) {
607
- return this.transport.request("info", { type: "userTwapSliceFills", ...args }, signal);
608
- }
609
- /**
610
- * Request user vault deposits.
611
- * @param args - The parameters for the request.
612
- * @param signal - An optional abort signal.
613
- * @returns Array of user's vault deposits.
614
- *
615
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-vault-deposits | Hyperliquid GitBook}
616
- * @example
617
- * ```ts
618
- * import * as hl from "@nktkas/hyperliquid";
619
- *
620
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
621
- * const client = new hl.PublicClient({ transport });
622
- *
623
- * const deposits = await client.userVaultDeposits({ user: "0x..." });
624
- * ```
625
- */
626
- userVaultEquities(args, signal) {
627
- return this.transport.request("info", { type: "userVaultEquities", ...args }, signal);
628
- }
629
- /**
630
- * Request details of a vault.
631
- * @param args - The parameters for the request.
632
- * @param signal - An optional abort signal.
633
- * @returns Details of a vault.
634
- *
635
- * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-details-for-a-vault | Hyperliquid GitBook}
636
- * @example
637
- * ```ts
638
- * import * as hl from "@nktkas/hyperliquid";
639
- *
640
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
641
- * const client = new hl.PublicClient({ transport });
642
- *
643
- * const vault = await client.vaultDetails({ vaultAddress: "0x..." });
644
- * ```
645
- */
646
- vaultDetails(args, signal) {
647
- return this.transport.request("info", { type: "vaultDetails", ...args }, signal);
648
- }
649
- /**
650
- * Request a list of vaults less than 2 hours old.
651
- * @param args - The parameters for the request.
652
- * @param signal - An optional abort signal.
653
- * @returns Array of vault summaries.
654
- *
655
- * @example
656
- * ```ts
657
- * import * as hl from "@nktkas/hyperliquid";
658
- *
659
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
660
- * const client = new hl.PublicClient({ transport });
661
- *
662
- * const vaults = await client.vaultSummaries();
663
- * ```
664
- */
665
- vaultSummaries(signal) {
666
- return this.transport.request("info", { type: "vaultSummaries" }, signal);
667
- }
668
- // ———————————————Explorer API———————————————
669
- /**
670
- * Gets the details of a block.
671
- * @param args - The parameters for the request.
672
- * @param signal - An optional abort signal.
673
- * @returns A promise that resolves with the details of the block.
674
- *
675
- * @example
676
- * ```ts
677
- * import * as hl from "@nktkas/hyperliquid";
678
- *
679
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
680
- * const client = new hl.PublicClient({ transport });
681
- *
682
- * const { blockDetails } = await client.blockDetails({ height: 123 });
683
- * ```
684
- */
685
- blockDetails(args, signal) {
686
- return this.transport.request("explorer", { type: "blockDetails", ...args }, signal);
687
- }
688
- /**
689
- * Gets the details of a transaction.
690
- * @param args - The parameters for the request.
691
- * @param signal - An optional abort signal.
692
- * @returns A promise that resolves with the details of the transaction.
693
- *
694
- * @example
695
- * ```ts
696
- * import * as hl from "@nktkas/hyperliquid";
697
- *
698
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
699
- * const client = new hl.PublicClient({ transport });
700
- *
701
- * const { tx } = await client.txDetails({ hash: "0x..." });
702
- * ```
703
- */
704
- txDetails(args, signal) {
705
- return this.transport.request("explorer", { type: "txDetails", ...args }, signal);
706
- }
707
- }
708
- exports.PublicClient = PublicClient;
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PublicClient = void 0;
13
+ // ——————————————— Client ———————————————
14
+ /**
15
+ * Public client for interacting with the Hyperliquid API.
16
+ * @typeParam T The type of transport used to connect to the Hyperliquid API.
17
+ */
18
+ class PublicClient {
19
+ /**
20
+ * Initialises a new instance.
21
+ * @param args - The arguments for initialisation.
22
+ *
23
+ * @example
24
+ * ```ts
25
+ * import * as hl from "@nktkas/hyperliquid";
26
+ *
27
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
28
+ * const client = new hl.PublicClient({ transport });
29
+ * ```
30
+ */
31
+ constructor(args) {
32
+ /** The transport used to connect to the Hyperliquid API. */
33
+ Object.defineProperty(this, "transport", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+ this.transport = args.transport;
40
+ }
41
+ // ——————————————— Info API ———————————————
42
+ /**
43
+ * Request mid coin prices.
44
+ * @param signal - An optional abort signal.
45
+ * @returns Mid coin prices.
46
+ *
47
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-mids-for-all-coins
48
+ * @example
49
+ * ```ts
50
+ * import * as hl from "@nktkas/hyperliquid";
51
+ *
52
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
53
+ * const client = new hl.PublicClient({ transport });
54
+ *
55
+ * const allMids = await client.allMids();
56
+ * ```
57
+ */
58
+ allMids(signal) {
59
+ return this.transport.request("info", { type: "allMids" }, signal);
60
+ }
61
+ /**
62
+ * Request candlestick snapshots.
63
+ * @param args - The parameters for the request.
64
+ * @param signal - An optional abort signal.
65
+ * @returns Array of candlestick data points.
66
+ *
67
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#candle-snapshot
68
+ * @example
69
+ * ```ts
70
+ * import * as hl from "@nktkas/hyperliquid";
71
+ *
72
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
73
+ * const client = new hl.PublicClient({ transport });
74
+ *
75
+ * const candleSnapshot = await client.candleSnapshot({
76
+ * coin: "ETH",
77
+ * interval: "1h",
78
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
79
+ * });
80
+ * ```
81
+ */
82
+ candleSnapshot(args, signal) {
83
+ return this.transport.request("info", { type: "candleSnapshot", req: args }, signal);
84
+ }
85
+ /**
86
+ * Request clearinghouse state.
87
+ * @param args - The parameters for the request.
88
+ * @param signal - An optional abort signal.
89
+ * @returns Account summary for perpetual trading.
90
+ *
91
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-users-perpetuals-account-summary
92
+ * @example
93
+ * ```ts
94
+ * import * as hl from "@nktkas/hyperliquid";
95
+ *
96
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
97
+ * const client = new hl.PublicClient({ transport });
98
+ *
99
+ * const clearinghouseState = await client.clearinghouseState({ user: "0x..." });
100
+ * ```
101
+ */
102
+ clearinghouseState(args, signal) {
103
+ return this.transport.request("info", { type: "clearinghouseState", ...args }, signal);
104
+ }
105
+ /**
106
+ * Request user staking delegations.
107
+ * @param args - The parameters for the request.
108
+ * @param signal - An optional abort signal.
109
+ * @returns Array of user's delegations to validators.
110
+ *
111
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-staking-delegations
112
+ * @example
113
+ * ```ts
114
+ * import * as hl from "@nktkas/hyperliquid";
115
+ *
116
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
117
+ * const client = new hl.PublicClient({ transport });
118
+ *
119
+ * const delegations = await client.delegations({ user: "0x..." });
120
+ * ```
121
+ */
122
+ delegations(args, signal) {
123
+ return this.transport.request("info", { type: "delegations", ...args }, signal);
124
+ }
125
+ /**
126
+ * Request user staking history.
127
+ * @param args - The parameters for the request.
128
+ * @param signal - An optional abort signal.
129
+ * @returns Array of user's staking updates.
130
+ *
131
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-staking-history
132
+ * @example
133
+ * ```ts
134
+ * import * as hl from "@nktkas/hyperliquid";
135
+ *
136
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
137
+ * const client = new hl.PublicClient({ transport });
138
+ *
139
+ * const delegatorHistory = await client.delegatorHistory({ user: "0x..." });
140
+ * ```
141
+ */
142
+ delegatorHistory(args, signal) {
143
+ return this.transport.request("info", { type: "delegatorHistory", ...args }, signal);
144
+ }
145
+ /**
146
+ * Request user staking rewards.
147
+ * @param args - The parameters for the request.
148
+ * @param signal - An optional abort signal.
149
+ * @returns Array of user's staking rewards.
150
+ *
151
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-staking-rewards
152
+ * @example
153
+ * ```ts
154
+ * import * as hl from "@nktkas/hyperliquid";
155
+ *
156
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
157
+ * const client = new hl.PublicClient({ transport });
158
+ *
159
+ * const delegatorRewards = await client.delegatorRewards({ user: "0x..." });
160
+ * ```
161
+ */
162
+ delegatorRewards(args, signal) {
163
+ return this.transport.request("info", { type: "delegatorRewards", ...args }, signal);
164
+ }
165
+ /**
166
+ * Request user staking summary.
167
+ * @param args - The parameters for the request.
168
+ * @param signal - An optional abort signal.
169
+ * @returns Summary of a user's staking delegations.
170
+ *
171
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-staking-summary
172
+ * @example
173
+ * ```ts
174
+ * import * as hl from "@nktkas/hyperliquid";
175
+ *
176
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
177
+ * const client = new hl.PublicClient({ transport });
178
+ *
179
+ * const delegatorSummary = await client.delegatorSummary({ user: "0x..." });
180
+ * ```
181
+ */
182
+ delegatorSummary(args, signal) {
183
+ return this.transport.request("info", { type: "delegatorSummary", ...args }, signal);
184
+ }
185
+ /**
186
+ * Request user's extra agents.
187
+ * @param args - The parameters for the request.
188
+ * @param signal - An optional abort signal.
189
+ * @returns User's extra agents.
190
+ *
191
+ * @see null - no documentation
192
+ * @example
193
+ * ```ts
194
+ * import * as hl from "@nktkas/hyperliquid";
195
+ *
196
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
197
+ * const client = new hl.PublicClient({ transport });
198
+ *
199
+ * const extraAgents = await client.extraAgents({ user: "0x..." });
200
+ * ```
201
+ */
202
+ extraAgents(args, signal) {
203
+ return this.transport.request("info", { type: "extraAgents", ...args }, signal);
204
+ }
205
+ /**
206
+ * Request frontend open orders.
207
+ * @param args - The parameters for the request.
208
+ * @param signal - An optional abort signal.
209
+ * @returns Array of open orders with additional frontend information.
210
+ *
211
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders-with-additional-frontend-info
212
+ * @example
213
+ * ```ts
214
+ * import * as hl from "@nktkas/hyperliquid";
215
+ *
216
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
217
+ * const client = new hl.PublicClient({ transport });
218
+ *
219
+ * const frontendOpenOrders = await client.frontendOpenOrders({ user: "0x..." });
220
+ * ```
221
+ */
222
+ frontendOpenOrders(args, signal) {
223
+ return this.transport.request("info", { type: "frontendOpenOrders", ...args }, signal);
224
+ }
225
+ /**
226
+ * Request funding history.
227
+ * @param args - The parameters for the request.
228
+ * @param signal - An optional abort signal.
229
+ * @returns Array of historical funding rate data for an asset.
230
+ *
231
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-historical-funding-rates
232
+ * @example
233
+ * ```ts
234
+ * import * as hl from "@nktkas/hyperliquid";
235
+ *
236
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
237
+ * const client = new hl.PublicClient({ transport });
238
+ *
239
+ * const fundingHistory = await client.fundingHistory({
240
+ * coin: "ETH",
241
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
242
+ * });
243
+ * ```
244
+ */
245
+ fundingHistory(args, signal) {
246
+ return this.transport.request("info", { type: "fundingHistory", ...args }, signal);
247
+ }
248
+ /**
249
+ * Request to check if a user is a VIP.
250
+ * @param args - The parameters for the request.
251
+ * @param signal - An optional abort signal.
252
+ * @returns Boolean indicating user's VIP status.
253
+ *
254
+ * @see null - no documentation
255
+ * @example
256
+ * ```ts
257
+ * import * as hl from "@nktkas/hyperliquid";
258
+ *
259
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
260
+ * const client = new hl.PublicClient({ transport });
261
+ *
262
+ * const isVip = await client.isVip({ user: "0x..." });
263
+ * ```
264
+ */
265
+ isVip(args, signal) {
266
+ return this.transport.request("info", { type: "isVip", ...args }, signal);
267
+ }
268
+ /**
269
+ * Request user's historical orders.
270
+ * @param args - The parameters for the request.
271
+ * @param signal - An optional abort signal.
272
+ * @returns Array of user's historical orders.
273
+ *
274
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-historical-orders
275
+ * @example
276
+ * ```ts
277
+ * import * as hl from "@nktkas/hyperliquid";
278
+ *
279
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
280
+ * const client = new hl.PublicClient({ transport });
281
+ *
282
+ * const historicalOrders = await client.historicalOrders({ user: "0x..." });
283
+ * ```
284
+ */
285
+ historicalOrders(args, signal) {
286
+ return this.transport.request("info", { type: "historicalOrders", ...args }, signal);
287
+ }
288
+ /**
289
+ * Request L2 order book.
290
+ * @param args - The parameters for the request.
291
+ * @param signal - An optional abort signal.
292
+ * @returns L2 order book snapshot.
293
+ *
294
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#l2-book-snapshot
295
+ * @example
296
+ * ```ts
297
+ * import * as hl from "@nktkas/hyperliquid";
298
+ *
299
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
300
+ * const client = new hl.PublicClient({ transport });
301
+ *
302
+ * const l2Book = await client.l2Book({ coin: "ETH", nSigFigs: 2 });
303
+ * ```
304
+ */
305
+ l2Book(args, signal) {
306
+ return this.transport.request("info", { type: "l2Book", ...args }, signal);
307
+ }
308
+ /**
309
+ * Request legal verification status of a user.
310
+ * @param args - The parameters for the request.
311
+ * @param signal - An optional abort signal.
312
+ * @returns Legal verification status for a user.
313
+ *
314
+ * @see null - no documentation
315
+ * @example
316
+ * ```ts
317
+ * import * as hl from "@nktkas/hyperliquid";
318
+ *
319
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
320
+ * const client = new hl.PublicClient({ transport });
321
+ *
322
+ * const legalCheck = await client.legalCheck({ user: "0x..." });
323
+ * ```
324
+ */
325
+ legalCheck(args, signal) {
326
+ return this.transport.request("info", { type: "legalCheck", ...args }, signal);
327
+ }
328
+ /**
329
+ * Request builder fee approval.
330
+ * @param args - The parameters for the request.
331
+ * @param signal - An optional abort signal.
332
+ * @returns Maximum builder fee approval.
333
+ *
334
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#check-builder-fee-approval
335
+ * @example
336
+ * ```ts
337
+ * import * as hl from "@nktkas/hyperliquid";
338
+ *
339
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
340
+ * const client = new hl.PublicClient({ transport });
341
+ *
342
+ * const maxBuilderFee = await client.maxBuilderFee({ user: "0x...", builder: "0x..." });
343
+ * ```
344
+ */
345
+ maxBuilderFee(args, signal) {
346
+ return this.transport.request("info", { type: "maxBuilderFee", ...args }, signal);
347
+ }
348
+ /**
349
+ * Request trading metadata.
350
+ * @param signal - An optional abort signal.
351
+ * @returns Metadata for perpetual assets.
352
+ *
353
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-perpetuals-metadata
354
+ * @example
355
+ * ```ts
356
+ * import * as hl from "@nktkas/hyperliquid";
357
+ *
358
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
359
+ * const client = new hl.PublicClient({ transport });
360
+ *
361
+ * const meta = await client.meta();
362
+ * ```
363
+ */
364
+ meta(signal) {
365
+ return this.transport.request("info", { type: "meta" }, signal);
366
+ }
367
+ /**
368
+ * Request metadata and asset contexts.
369
+ * @param signal - An optional abort signal.
370
+ * @returns Metadata and context information for each perpetual asset.
371
+ *
372
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-perpetuals-asset-contexts-includes-mark-price-current-funding-open-interest-etc
373
+ * @example
374
+ * ```ts
375
+ * import * as hl from "@nktkas/hyperliquid";
376
+ *
377
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
378
+ * const client = new hl.PublicClient({ transport });
379
+ *
380
+ * const [meta, assetCtxs] = await client.metaAndAssetCtxs();
381
+ * ```
382
+ */
383
+ metaAndAssetCtxs(signal) {
384
+ return this.transport.request("info", { type: "metaAndAssetCtxs" }, signal);
385
+ }
386
+ /**
387
+ * Request open orders.
388
+ * @param args - The parameters for the request.
389
+ * @param signal - An optional abort signal.
390
+ * @returns Array of open order.
391
+ *
392
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders
393
+ * @example
394
+ * ```ts
395
+ * import * as hl from "@nktkas/hyperliquid";
396
+ *
397
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
398
+ * const client = new hl.PublicClient({ transport });
399
+ *
400
+ * const openOrders = await client.openOrders({ user: "0x..." });
401
+ * ```
402
+ */
403
+ openOrders(args, signal) {
404
+ return this.transport.request("info", { type: "openOrders", ...args }, signal);
405
+ }
406
+ /**
407
+ * Request order status.
408
+ * @param args - The parameters for the request.
409
+ * @param signal - An optional abort signal.
410
+ * @returns Result of an order status lookup.
411
+ *
412
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-order-status-by-oid-or-cloid
413
+ * @example
414
+ * ```ts
415
+ * import * as hl from "@nktkas/hyperliquid";
416
+ *
417
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
418
+ * const client = new hl.PublicClient({ transport });
419
+ *
420
+ * const orderStatus = await client.orderStatus({ user: "0x...", oid: 12345 });
421
+ * ```
422
+ */
423
+ orderStatus(args, signal) {
424
+ return this.transport.request("info", { type: "orderStatus", ...args }, signal);
425
+ }
426
+ /**
427
+ * Request portfolio.
428
+ * @param args - The parameters for the request.
429
+ * @param signal - An optional abort signal.
430
+ * @returns Portfolio of a user.
431
+ *
432
+ * @see null - no documentation
433
+ * @example
434
+ * ```ts
435
+ * import * as hl from "@nktkas/hyperliquid";
436
+ *
437
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
438
+ * const client = new hl.PublicClient({ transport });
439
+ *
440
+ * const portfolio = await client.portfolio({ user: "0x..." });
441
+ * ```
442
+ */
443
+ portfolio(args, signal) {
444
+ return this.transport.request("info", { type: "portfolio", ...args }, signal);
445
+ }
446
+ /**
447
+ * Request user's existence check before transfer.
448
+ * @param args - The parameters for the request.
449
+ * @param signal - An optional abort signal.
450
+ * @returns Pre-transfer user existence check result.
451
+ *
452
+ * @see null - no documentation
453
+ * @example
454
+ * ```ts
455
+ * import * as hl from "@nktkas/hyperliquid";
456
+ *
457
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
458
+ * const client = new hl.PublicClient({ transport });
459
+ *
460
+ * const preTransferCheck = await client.preTransferCheck({ user: "0x...", source: "0x..." });
461
+ * ```
462
+ */
463
+ preTransferCheck(args, signal) {
464
+ return this.transport.request("info", { type: "preTransferCheck", ...args }, signal);
465
+ }
466
+ /**
467
+ * Request perpetuals at open interest cap.
468
+ * @param args - The parameters for the request.
469
+ * @param signal - An optional abort signal.
470
+ * @returns Array of perpetuals at open interest caps.
471
+ *
472
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#query-perps-at-open-interest-caps
473
+ * @example
474
+ * ```ts
475
+ * import * as hl from "@nktkas/hyperliquid";
476
+ *
477
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
478
+ * const client = new hl.PublicClient({ transport });
479
+ *
480
+ * const perpsAtOpenInterestCap = await client.perpsAtOpenInterestCap();
481
+ * ```
482
+ */
483
+ perpsAtOpenInterestCap(signal) {
484
+ return this.transport.request("info", { type: "perpsAtOpenInterestCap" }, signal);
485
+ }
486
+ /**
487
+ * Request predicted funding rates.
488
+ * @param signal - An optional abort signal.
489
+ * @returns Array of predicted funding rates.
490
+ *
491
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-predicted-funding-rates-for-different-venues
492
+ * @example
493
+ * ```ts
494
+ * import * as hl from "@nktkas/hyperliquid";
495
+ *
496
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
497
+ * const client = new hl.PublicClient({ transport });
498
+ *
499
+ * const predictedFundings = await client.predictedFundings();
500
+ * ```
501
+ */
502
+ predictedFundings(signal) {
503
+ return this.transport.request("info", { type: "predictedFundings" }, signal);
504
+ }
505
+ /**
506
+ * Request user referral.
507
+ * @param args - The parameters for the request.
508
+ * @param signal - An optional abort signal.
509
+ * @returns Referral information for a user.
510
+ *
511
+ * @see null - no documentation
512
+ * @example
513
+ * ```ts
514
+ * import * as hl from "@nktkas/hyperliquid";
515
+ *
516
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
517
+ * const client = new hl.PublicClient({ transport });
518
+ *
519
+ * const referral = await client.referral({ user: "0x..." });
520
+ * ```
521
+ */
522
+ referral(args, signal) {
523
+ return this.transport.request("info", { type: "referral", ...args }, signal);
524
+ }
525
+ /**
526
+ * Request spot clearinghouse state.
527
+ * @param args - The parameters for the request.
528
+ * @param signal - An optional abort signal.
529
+ * @returns Balances for spot tokens.
530
+ *
531
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-a-users-token-balances
532
+ * @example
533
+ * ```ts
534
+ * import * as hl from "@nktkas/hyperliquid";
535
+ *
536
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
537
+ * const client = new hl.PublicClient({ transport });
538
+ *
539
+ * const spotClearinghouseState = await client.spotClearinghouseState({ user: "0x..." });
540
+ * ```
541
+ */
542
+ spotClearinghouseState(args, signal) {
543
+ return this.transport.request("info", { type: "spotClearinghouseState", ...args }, signal);
544
+ }
545
+ /**
546
+ * Request spot deploy state.
547
+ * @param args - The parameters for the request.
548
+ * @param signal - An optional abort signal.
549
+ * @returns The deploy state of a user.
550
+ *
551
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-the-spot-deploy-auction
552
+ * @example
553
+ * ```ts
554
+ * import * as hl from "@nktkas/hyperliquid";
555
+ *
556
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
557
+ * const client = new hl.PublicClient({ transport });
558
+ *
559
+ * const spotDeployState = await client.spotDeployState({ user: "0x..." });
560
+ * ```
561
+ */
562
+ spotDeployState(args, signal) {
563
+ return this.transport.request("info", { type: "spotDeployState", ...args }, signal);
564
+ }
565
+ /**
566
+ * Request spot trading metadata.
567
+ * @param signal - An optional abort signal.
568
+ * @returns Metadata for spot assets.
569
+ *
570
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-metadata
571
+ * @example
572
+ * ```ts
573
+ * import * as hl from "@nktkas/hyperliquid";
574
+ *
575
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
576
+ * const client = new hl.PublicClient({ transport });
577
+ *
578
+ * const spotMeta = await client.spotMeta();
579
+ * ```
580
+ */
581
+ spotMeta(signal) {
582
+ return this.transport.request("info", { type: "spotMeta" }, signal);
583
+ }
584
+ /**
585
+ * Request spot metadata and asset contexts.
586
+ * @param signal - An optional abort signal.
587
+ * @returns Metadata and context information for each spot asset.
588
+ *
589
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-asset-contexts
590
+ * @example
591
+ * ```ts
592
+ * import * as hl from "@nktkas/hyperliquid";
593
+ *
594
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
595
+ * const client = new hl.PublicClient({ transport });
596
+ *
597
+ * const [spotMeta, spotAssetCtxs] = await client.spotMetaAndAssetCtxs();
598
+ * ```
599
+ */
600
+ spotMetaAndAssetCtxs(signal) {
601
+ return this.transport.request("info", { type: "spotMetaAndAssetCtxs" }, signal);
602
+ }
603
+ /**
604
+ * Request user sub-accounts.
605
+ * @param args - The parameters for the request.
606
+ * @param signal - An optional abort signal.
607
+ * @returns Array of user sub-account or null if the user does not have any sub-accounts.
608
+ *
609
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-subaccounts
610
+ * @example
611
+ * ```ts
612
+ * import * as hl from "@nktkas/hyperliquid";
613
+ *
614
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
615
+ * const client = new hl.PublicClient({ transport });
616
+ *
617
+ * const subAccounts = await client.subAccounts({ user: "0x..." });
618
+ * ```
619
+ */
620
+ subAccounts(args, signal) {
621
+ return this.transport.request("info", { type: "subAccounts", ...args }, signal);
622
+ }
623
+ /**
624
+ * Request token details.
625
+ * @param args - The parameters for the request.
626
+ * @param signal - An optional abort signal.
627
+ * @returns The details of a token.
628
+ *
629
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-a-token
630
+ * @example
631
+ * ```ts
632
+ * import * as hl from "@nktkas/hyperliquid";
633
+ *
634
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
635
+ * const client = new hl.PublicClient({ transport });
636
+ *
637
+ * const tokenDetails = await client.tokenDetails({ tokenId: "0x..." });
638
+ * ```
639
+ */
640
+ tokenDetails(args, signal) {
641
+ return this.transport.request("info", { type: "tokenDetails", ...args }, signal);
642
+ }
643
+ /**
644
+ * Request twap history of a user.
645
+ * @param args - The parameters for the request.
646
+ * @param signal - An optional abort signal.
647
+ * @returns The twap history of a user.
648
+ *
649
+ * @see null - no documentation
650
+ * @example
651
+ * ```ts
652
+ * import * as hl from "@nktkas/hyperliquid";
653
+ *
654
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
655
+ * const client = new hl.PublicClient({ transport });
656
+ *
657
+ * const twapHistory = await client.twapHistory({ user: "0x..." });
658
+ * ```
659
+ */
660
+ twapHistory(args, signal) {
661
+ return this.transport.request("info", { type: "twapHistory", ...args }, signal);
662
+ }
663
+ /**
664
+ * Request user fees.
665
+ * @param args - The parameters for the request.
666
+ * @param signal - An optional abort signal.
667
+ * @returns User fees.
668
+ *
669
+ * @see null - no documentation
670
+ * @example
671
+ * ```ts
672
+ * import * as hl from "@nktkas/hyperliquid";
673
+ *
674
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
675
+ * const client = new hl.PublicClient({ transport });
676
+ *
677
+ * const fees = await client.userFees({ user: "0x..." });
678
+ * ```
679
+ */
680
+ userFees(args, signal) {
681
+ return this.transport.request("info", { type: "userFees", ...args }, signal);
682
+ }
683
+ /**
684
+ * Request user fills.
685
+ * @param args - The parameters for the request.
686
+ * @param signal - An optional abort signal.
687
+ * @returns Array of user's trade fill.
688
+ *
689
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills
690
+ * @example
691
+ * ```ts
692
+ * import * as hl from "@nktkas/hyperliquid";
693
+ *
694
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
695
+ * const client = new hl.PublicClient({ transport });
696
+ *
697
+ * const fills = await client.userFills({ user: "0x..." });
698
+ * ```
699
+ */
700
+ userFills(args, signal) {
701
+ return this.transport.request("info", { type: "userFills", ...args }, signal);
702
+ }
703
+ /**
704
+ * Request user fills by time.
705
+ * @param args - The parameters for the request.
706
+ * @param signal - An optional abort signal.
707
+ * @returns Array of user's trade fill.
708
+ *
709
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills-by-time
710
+ * @example
711
+ * ```ts
712
+ * import * as hl from "@nktkas/hyperliquid";
713
+ *
714
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
715
+ * const client = new hl.PublicClient({ transport });
716
+ *
717
+ * const fills = await client.userFillsByTime({
718
+ * user: "0x...",
719
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
720
+ * });
721
+ * ```
722
+ */
723
+ userFillsByTime(args, signal) {
724
+ return this.transport.request("info", { type: "userFillsByTime", ...args }, signal);
725
+ }
726
+ /**
727
+ * Request user funding.
728
+ * @param args - The parameters for the request.
729
+ * @param signal - An optional abort signal.
730
+ * @returns Array of user's funding ledger update.
731
+ *
732
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates
733
+ * @example
734
+ * ```ts
735
+ * import * as hl from "@nktkas/hyperliquid";
736
+ *
737
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
738
+ * const client = new hl.PublicClient({ transport });
739
+ *
740
+ * const funding = await client.userFunding({
741
+ * user: "0x...",
742
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
743
+ * });
744
+ * ```
745
+ */
746
+ userFunding(args, signal) {
747
+ return this.transport.request("info", { type: "userFunding", ...args }, signal);
748
+ }
749
+ /**
750
+ * Request user non-funding ledger updates.
751
+ * @param args - The parameters for the request.
752
+ * @param signal - An optional abort signal.
753
+ * @returns Array of user's non-funding ledger update.
754
+ *
755
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates
756
+ * @example
757
+ * ```ts
758
+ * import * as hl from "@nktkas/hyperliquid";
759
+ *
760
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
761
+ * const client = new hl.PublicClient({ transport });
762
+ *
763
+ * const nonFundingLedgerUpdates = await client.userNonFundingLedgerUpdates({
764
+ * user: "0x...",
765
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
766
+ * });
767
+ * ```
768
+ */
769
+ userNonFundingLedgerUpdates(args, signal) {
770
+ return this.transport.request("info", { type: "userNonFundingLedgerUpdates", ...args }, signal);
771
+ }
772
+ /**
773
+ * Request user rate limits.
774
+ * @param args - The parameters for the request.
775
+ * @param signal - An optional abort signal.
776
+ * @returns User's rate limits.
777
+ *
778
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-rate-limits
779
+ * @example
780
+ * ```ts
781
+ * import * as hl from "@nktkas/hyperliquid";
782
+ *
783
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
784
+ * const client = new hl.PublicClient({ transport });
785
+ *
786
+ * const rateLimit = await client.userRateLimit({ user: "0x..." });
787
+ * ```
788
+ */
789
+ userRateLimit(args, signal) {
790
+ return this.transport.request("info", { type: "userRateLimit", ...args }, signal);
791
+ }
792
+ /**
793
+ * Request user role.
794
+ * @param args - The parameters for the request.
795
+ * @param signal - An optional abort signal.
796
+ * @returns User's role.
797
+ *
798
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-role
799
+ * @example
800
+ * ```ts
801
+ * import * as hl from "@nktkas/hyperliquid";
802
+ *
803
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
804
+ * const client = new hl.PublicClient({ transport });
805
+ *
806
+ * const userRole = await client.userRole({ user: "0x..." });
807
+ * ```
808
+ */
809
+ userRole(args, signal) {
810
+ return this.transport.request("info", { type: "userRole", ...args }, signal);
811
+ }
812
+ /**
813
+ * Request multi-sig signers for a user.
814
+ * @param args - The parameters for the request.
815
+ * @param signal - An optional abort signal.
816
+ * @returns Multi-sig signers for a user or null if the user does not have any multi-sig signers.
817
+ *
818
+ * @see null - no documentation
819
+ * @example
820
+ * ```ts
821
+ * import * as hl from "@nktkas/hyperliquid";
822
+ *
823
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
824
+ * const client = new hl.PublicClient({ transport });
825
+ *
826
+ * const multiSigSigners = await client.userToMultiSigSigners({ user: "0x..." });
827
+ * ```
828
+ */
829
+ userToMultiSigSigners(args, signal) {
830
+ return this.transport.request("info", { type: "userToMultiSigSigners", ...args }, signal);
831
+ }
832
+ /**
833
+ * Request user twap slice fills.
834
+ * @param args - The parameters for the request.
835
+ * @param signal - An optional abort signal.
836
+ * @returns Array of user's twap slice fill.
837
+ *
838
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-twap-slice-fills
839
+ * @example
840
+ * ```ts
841
+ * import * as hl from "@nktkas/hyperliquid";
842
+ *
843
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
844
+ * const client = new hl.PublicClient({ transport });
845
+ *
846
+ * const twapSliceFills = await client.userTwapSliceFills({ user: "0x..." });
847
+ * ```
848
+ */
849
+ userTwapSliceFills(args, signal) {
850
+ return this.transport.request("info", { type: "userTwapSliceFills", ...args }, signal);
851
+ }
852
+ /**
853
+ * Request user twap slice fills by time.
854
+ * @param args - The parameters for the request.
855
+ * @param signal - An optional abort signal.
856
+ * @returns Array of user's twap slice fill.
857
+ *
858
+ * @see null - no documentation
859
+ * @example
860
+ * ```ts
861
+ * import * as hl from "@nktkas/hyperliquid";
862
+ *
863
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
864
+ * const client = new hl.PublicClient({ transport });
865
+ *
866
+ * const twapSliceFillsByTime = await client.userTwapSliceFillsByTime({
867
+ * user: "0x...",
868
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
869
+ * });
870
+ * ```
871
+ */
872
+ userTwapSliceFillsByTime(args, signal) {
873
+ return this.transport.request("info", { type: "userTwapSliceFillsByTime", ...args }, signal);
874
+ }
875
+ /**
876
+ * Request user vault deposits.
877
+ * @param args - The parameters for the request.
878
+ * @param signal - An optional abort signal.
879
+ * @returns Array of user's vault deposits.
880
+ *
881
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-vault-deposits
882
+ * @example
883
+ * ```ts
884
+ * import * as hl from "@nktkas/hyperliquid";
885
+ *
886
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
887
+ * const client = new hl.PublicClient({ transport });
888
+ *
889
+ * const userVaultEquities = await client.userVaultDeposits({ user: "0x..." });
890
+ * ```
891
+ */
892
+ userVaultEquities(args, signal) {
893
+ return this.transport.request("info", { type: "userVaultEquities", ...args }, signal);
894
+ }
895
+ /**
896
+ * Request validator summaries.
897
+ * @param args - The parameters for the request.
898
+ * @returns Array of validator summaries.
899
+ *
900
+ * @see null - no documentation
901
+ * @example
902
+ * ```ts
903
+ * import * as hl from "@nktkas/hyperliquid";
904
+ *
905
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
906
+ * const client = new hl.PublicClient({ transport });
907
+ *
908
+ * const validatorSummaries = await client.validatorSummaries();
909
+ * ```
910
+ */
911
+ validatorSummaries(signal) {
912
+ return this.transport.request("info", { type: "validatorSummaries" }, signal);
913
+ }
914
+ /**
915
+ * Request details of a vault.
916
+ * @param args - The parameters for the request.
917
+ * @param signal - An optional abort signal.
918
+ * @returns Details of a vault or null if the vault does not exist.
919
+ *
920
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-details-for-a-vault
921
+ * @example
922
+ * ```ts
923
+ * import * as hl from "@nktkas/hyperliquid";
924
+ *
925
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
926
+ * const client = new hl.PublicClient({ transport });
927
+ *
928
+ * const vaultDetails = await client.vaultDetails({ vaultAddress: "0x..." });
929
+ * ```
930
+ */
931
+ vaultDetails(args, signal) {
932
+ return this.transport.request("info", { type: "vaultDetails", ...args }, signal);
933
+ }
934
+ /**
935
+ * Request a list of vaults less than 2 hours old.
936
+ * @param args - The parameters for the request.
937
+ * @param signal - An optional abort signal.
938
+ * @returns Array of vault summaries.
939
+ *
940
+ * @see null - no documentation
941
+ * @example
942
+ * ```ts
943
+ * import * as hl from "@nktkas/hyperliquid";
944
+ *
945
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
946
+ * const client = new hl.PublicClient({ transport });
947
+ *
948
+ * const vaultSummaries = await client.vaultSummaries();
949
+ * ```
950
+ */
951
+ vaultSummaries(signal) {
952
+ return this.transport.request("info", { type: "vaultSummaries" }, signal);
953
+ }
954
+ // ——————————————— Explorer API ———————————————
955
+ /**
956
+ * Gets the details of a block.
957
+ * @param args - The parameters for the request.
958
+ * @param signal - An optional abort signal.
959
+ * @returns A promise that resolves with the details of the block.
960
+ *
961
+ * @see null - no documentation
962
+ * @example
963
+ * ```ts
964
+ * import * as hl from "@nktkas/hyperliquid";
965
+ *
966
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
967
+ * const client = new hl.PublicClient({ transport });
968
+ *
969
+ * const { blockDetails } = await client.blockDetails({ height: 123 });
970
+ * ```
971
+ */
972
+ blockDetails(args, signal) {
973
+ return this.transport.request("explorer", { type: "blockDetails", ...args }, signal);
974
+ }
975
+ /**
976
+ * Gets the details of a transaction.
977
+ * @param args - The parameters for the request.
978
+ * @param signal - An optional abort signal.
979
+ * @returns A promise that resolves with the details of the transaction.
980
+ *
981
+ * @see null - no documentation
982
+ * @example
983
+ * ```ts
984
+ * import * as hl from "@nktkas/hyperliquid";
985
+ *
986
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
987
+ * const client = new hl.PublicClient({ transport });
988
+ *
989
+ * const { tx } = await client.txDetails({ hash: "0x..." });
990
+ * ```
991
+ */
992
+ txDetails(args, signal) {
993
+ return this.transport.request("explorer", { type: "txDetails", ...args }, signal);
994
+ }
995
+ /**
996
+ * Request user details.
997
+ * @param args - The parameters for the request.
998
+ * @param signal - An optional abort signal.
999
+ * @returns User details.
1000
+ *
1001
+ * @see null - no documentation
1002
+ * @example
1003
+ * ```ts
1004
+ * import * as hl from "@nktkas/hyperliquid";
1005
+ *
1006
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1007
+ * const client = new hl.PublicClient({ transport });
1008
+ *
1009
+ * const { txs } = await client.userDetails({ user: "0x..." });
1010
+ * ```
1011
+ */
1012
+ userDetails(args, signal) {
1013
+ return this.transport.request("explorer", { type: "userDetails", ...args }, signal);
1014
+ }
1015
+ }
1016
+ exports.PublicClient = PublicClient;
1017
+ });