@nktkas/hyperliquid 0.22.2 → 0.23.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 (256) hide show
  1. package/README.md +79 -67
  2. package/esm/mod.d.ts +1 -1
  3. package/esm/mod.d.ts.map +1 -1
  4. package/esm/src/base.d.ts +4 -1
  5. package/esm/src/base.d.ts.map +1 -1
  6. package/esm/src/base.js +2 -2
  7. package/esm/src/clients/exchange.d.ts +289 -207
  8. package/esm/src/clients/exchange.d.ts.map +1 -1
  9. package/esm/src/clients/exchange.js +605 -410
  10. package/esm/src/clients/info.d.ts +264 -48
  11. package/esm/src/clients/info.d.ts.map +1 -1
  12. package/esm/src/clients/info.js +273 -31
  13. package/esm/src/clients/multiSign.d.ts +285 -204
  14. package/esm/src/clients/multiSign.d.ts.map +1 -1
  15. package/esm/src/clients/multiSign.js +521 -493
  16. package/esm/src/clients/subscription.d.ts +38 -3
  17. package/esm/src/clients/subscription.d.ts.map +1 -1
  18. package/esm/src/clients/subscription.js +36 -3
  19. package/esm/src/signing/{_ethers.d.ts → _signTypedData/ethers.d.ts} +1 -1
  20. package/esm/src/signing/_signTypedData/ethers.d.ts.map +1 -0
  21. package/esm/src/signing/_signTypedData/mod.d.ts +35 -0
  22. package/esm/src/signing/_signTypedData/mod.d.ts.map +1 -0
  23. package/esm/src/signing/_signTypedData/mod.js +59 -0
  24. package/esm/src/signing/_signTypedData/private_key.d.ts +26 -0
  25. package/esm/src/signing/_signTypedData/private_key.d.ts.map +1 -0
  26. package/esm/src/signing/_signTypedData/private_key.js +144 -0
  27. package/esm/src/signing/{_viem.d.ts → _signTypedData/viem.d.ts} +2 -2
  28. package/esm/src/signing/_signTypedData/viem.d.ts.map +1 -0
  29. package/{script/src/signing/_window.d.ts → esm/src/signing/_signTypedData/window.d.ts} +18 -12
  30. package/esm/src/signing/_signTypedData/window.d.ts.map +1 -0
  31. package/esm/src/signing/{_window.js → _signTypedData/window.js} +3 -2
  32. package/esm/src/signing/_sorter.d.ts +56 -82
  33. package/esm/src/signing/_sorter.d.ts.map +1 -1
  34. package/esm/src/signing/_sorter.js +36 -49
  35. package/esm/src/signing/mod.d.ts +151 -130
  36. package/esm/src/signing/mod.d.ts.map +1 -1
  37. package/esm/src/signing/mod.js +182 -228
  38. package/esm/src/transports/base.d.ts +1 -1
  39. package/esm/src/transports/base.d.ts.map +1 -1
  40. package/esm/src/transports/base.js +2 -2
  41. package/esm/src/transports/http/http_transport.d.ts +9 -15
  42. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  43. package/esm/src/transports/http/http_transport.js +64 -59
  44. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts +1 -1
  45. package/esm/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  46. package/esm/src/transports/websocket/_hyperliquid_event_target.js +1 -1
  47. package/esm/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -1
  48. package/esm/src/transports/websocket/_reconnecting_websocket.js +17 -4
  49. package/esm/src/transports/websocket/_websocket_async_request.d.ts +0 -9
  50. package/esm/src/transports/websocket/_websocket_async_request.d.ts.map +1 -1
  51. package/esm/src/transports/websocket/_websocket_async_request.js +14 -20
  52. package/esm/src/transports/websocket/websocket_transport.d.ts +8 -4
  53. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  54. package/esm/src/transports/websocket/websocket_transport.js +83 -54
  55. package/esm/src/types/exchange/requests.d.ts +27 -51
  56. package/esm/src/types/exchange/requests.d.ts.map +1 -1
  57. package/esm/src/types/explorer/requests.d.ts +5 -8
  58. package/esm/src/types/explorer/requests.d.ts.map +1 -1
  59. package/esm/src/types/info/accounts.d.ts +5 -5
  60. package/esm/src/types/info/accounts.d.ts.map +1 -1
  61. package/esm/src/types/info/markets.d.ts +6 -0
  62. package/esm/src/types/info/markets.d.ts.map +1 -1
  63. package/esm/src/types/info/orders.d.ts +1 -1
  64. package/esm/src/types/info/orders.d.ts.map +1 -1
  65. package/esm/src/types/info/requests.d.ts +129 -124
  66. package/esm/src/types/info/requests.d.ts.map +1 -1
  67. package/{script/src/types/info/delegations.d.ts → esm/src/types/info/validators.d.ts} +2 -2
  68. package/esm/src/types/info/validators.d.ts.map +1 -0
  69. package/esm/src/types/info/vaults.d.ts +7 -0
  70. package/esm/src/types/info/vaults.d.ts.map +1 -1
  71. package/esm/src/types/mod.d.ts +1 -1
  72. package/esm/src/types/mod.d.ts.map +1 -1
  73. package/esm/src/types/subscriptions/requests.d.ts +72 -18
  74. package/esm/src/types/subscriptions/requests.d.ts.map +1 -1
  75. package/esm/src/types/subscriptions/responses.d.ts +2 -0
  76. package/esm/src/types/subscriptions/responses.d.ts.map +1 -1
  77. package/package.json +8 -5
  78. package/script/mod.d.ts +1 -1
  79. package/script/mod.d.ts.map +1 -1
  80. package/script/mod.js +13 -23
  81. package/script/src/base.d.ts +4 -1
  82. package/script/src/base.d.ts.map +1 -1
  83. package/script/src/base.js +10 -20
  84. package/script/src/clients/exchange.d.ts +289 -207
  85. package/script/src/clients/exchange.d.ts.map +1 -1
  86. package/script/src/clients/exchange.js +2000 -1815
  87. package/script/src/clients/info.d.ts +264 -48
  88. package/script/src/clients/info.d.ts.map +1 -1
  89. package/script/src/clients/info.js +1442 -1210
  90. package/script/src/clients/multiSign.d.ts +285 -204
  91. package/script/src/clients/multiSign.d.ts.map +1 -1
  92. package/script/src/clients/multiSign.js +2043 -2025
  93. package/script/src/clients/subscription.d.ts +38 -3
  94. package/script/src/clients/subscription.d.ts.map +1 -1
  95. package/script/src/clients/subscription.js +568 -545
  96. package/script/src/signing/{_ethers.d.ts → _signTypedData/ethers.d.ts} +1 -1
  97. package/script/src/signing/_signTypedData/ethers.d.ts.map +1 -0
  98. package/script/src/signing/_signTypedData/ethers.js +16 -0
  99. package/script/src/signing/_signTypedData/mod.d.ts +35 -0
  100. package/script/src/signing/_signTypedData/mod.d.ts.map +1 -0
  101. package/script/src/signing/_signTypedData/mod.js +67 -0
  102. package/script/src/signing/_signTypedData/private_key.d.ts +26 -0
  103. package/script/src/signing/_signTypedData/private_key.d.ts.map +1 -0
  104. package/script/src/signing/_signTypedData/private_key.js +148 -0
  105. package/script/src/signing/{_viem.d.ts → _signTypedData/viem.d.ts} +2 -2
  106. package/script/src/signing/_signTypedData/viem.d.ts.map +1 -0
  107. package/script/src/signing/_signTypedData/viem.js +9 -0
  108. package/{esm/src/signing/_window.d.ts → script/src/signing/_signTypedData/window.d.ts} +18 -12
  109. package/script/src/signing/_signTypedData/window.d.ts.map +1 -0
  110. package/script/src/signing/_signTypedData/window.js +34 -0
  111. package/script/src/signing/_sorter.d.ts +56 -82
  112. package/script/src/signing/_sorter.d.ts.map +1 -1
  113. package/script/src/signing/_sorter.js +655 -678
  114. package/script/src/signing/mod.d.ts +151 -130
  115. package/script/src/signing/mod.d.ts.map +1 -1
  116. package/script/src/signing/mod.js +286 -342
  117. package/script/src/transports/base.d.ts +1 -1
  118. package/script/src/transports/base.d.ts.map +1 -1
  119. package/script/src/transports/base.js +11 -21
  120. package/script/src/transports/http/http_transport.d.ts +9 -15
  121. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  122. package/script/src/transports/http/http_transport.js +97 -102
  123. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts +1 -1
  124. package/script/src/transports/websocket/_hyperliquid_event_target.d.ts.map +1 -1
  125. package/script/src/transports/websocket/_hyperliquid_event_target.js +51 -61
  126. package/script/src/transports/websocket/_reconnecting_websocket.d.ts.map +1 -1
  127. package/script/src/transports/websocket/_reconnecting_websocket.js +271 -268
  128. package/script/src/transports/websocket/_websocket_async_request.d.ts +0 -9
  129. package/script/src/transports/websocket/_websocket_async_request.d.ts.map +1 -1
  130. package/script/src/transports/websocket/_websocket_async_request.js +157 -174
  131. package/script/src/transports/websocket/websocket_transport.d.ts +8 -4
  132. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
  133. package/script/src/transports/websocket/websocket_transport.js +209 -189
  134. package/script/src/types/exchange/requests.d.ts +27 -51
  135. package/script/src/types/exchange/requests.d.ts.map +1 -1
  136. package/script/src/types/exchange/requests.js +2 -12
  137. package/script/src/types/exchange/responses.js +2 -12
  138. package/script/src/types/explorer/requests.d.ts +5 -8
  139. package/script/src/types/explorer/requests.d.ts.map +1 -1
  140. package/script/src/types/explorer/requests.js +2 -12
  141. package/script/src/types/explorer/responses.js +2 -12
  142. package/script/src/types/info/accounts.d.ts +5 -5
  143. package/script/src/types/info/accounts.d.ts.map +1 -1
  144. package/script/src/types/info/accounts.js +2 -12
  145. package/script/src/types/info/assets.js +2 -12
  146. package/script/src/types/info/markets.d.ts +6 -0
  147. package/script/src/types/info/markets.d.ts.map +1 -1
  148. package/script/src/types/info/markets.js +2 -12
  149. package/script/src/types/info/orders.d.ts +1 -1
  150. package/script/src/types/info/orders.d.ts.map +1 -1
  151. package/script/src/types/info/orders.js +2 -12
  152. package/script/src/types/info/requests.d.ts +129 -124
  153. package/script/src/types/info/requests.d.ts.map +1 -1
  154. package/script/src/types/info/requests.js +2 -12
  155. package/{esm/src/types/info/delegations.d.ts → script/src/types/info/validators.d.ts} +2 -2
  156. package/script/src/types/info/validators.d.ts.map +1 -0
  157. package/script/src/types/info/validators.js +2 -0
  158. package/script/src/types/info/vaults.d.ts +7 -0
  159. package/script/src/types/info/vaults.d.ts.map +1 -1
  160. package/script/src/types/info/vaults.js +2 -12
  161. package/script/src/types/mod.d.ts +1 -1
  162. package/script/src/types/mod.d.ts.map +1 -1
  163. package/script/src/types/mod.js +2 -12
  164. package/script/src/types/subscriptions/requests.d.ts +72 -18
  165. package/script/src/types/subscriptions/requests.d.ts.map +1 -1
  166. package/script/src/types/subscriptions/requests.js +2 -12
  167. package/script/src/types/subscriptions/responses.d.ts +2 -0
  168. package/script/src/types/subscriptions/responses.d.ts.map +1 -1
  169. package/script/src/types/subscriptions/responses.js +2 -12
  170. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts +0 -2
  171. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts.map +0 -1
  172. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +0 -1
  173. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts +0 -95
  174. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts.map +0 -1
  175. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +0 -10
  176. package/esm/deps/jsr.io/@std/async/1.0.13/delay.d.ts +0 -43
  177. package/esm/deps/jsr.io/@std/async/1.0.13/delay.d.ts.map +0 -1
  178. package/esm/deps/jsr.io/@std/async/1.0.13/delay.js +0 -63
  179. package/esm/deps/jsr.io/@std/bytes/1.0.6/_types.d.ts +0 -9
  180. package/esm/deps/jsr.io/@std/bytes/1.0.6/_types.d.ts.map +0 -1
  181. package/esm/deps/jsr.io/@std/bytes/1.0.6/_types.js +0 -2
  182. package/esm/deps/jsr.io/@std/bytes/1.0.6/concat.d.ts +0 -21
  183. package/esm/deps/jsr.io/@std/bytes/1.0.6/concat.d.ts.map +0 -1
  184. package/esm/deps/jsr.io/@std/bytes/1.0.6/concat.js +0 -32
  185. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts +0 -23
  186. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts.map +0 -1
  187. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common16.js +0 -51
  188. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts +0 -4
  189. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts.map +0 -1
  190. package/esm/deps/jsr.io/@std/encoding/1.0.10/_common_detach.js +0 -13
  191. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts +0 -9
  192. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts.map +0 -1
  193. package/esm/deps/jsr.io/@std/encoding/1.0.10/_types.js +0 -2
  194. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts +0 -39
  195. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts.map +0 -1
  196. package/esm/deps/jsr.io/@std/encoding/1.0.10/hex.js +0 -87
  197. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +0 -9
  198. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +0 -1
  199. package/esm/deps/jsr.io/@std/msgpack/1.0.3/_types.js +0 -2
  200. package/esm/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts +0 -39
  201. package/esm/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +0 -1
  202. package/esm/deps/jsr.io/@std/msgpack/1.0.3/encode.js +0 -237
  203. package/esm/src/signing/_ethers.d.ts.map +0 -1
  204. package/esm/src/signing/_private_key.d.ts +0 -22
  205. package/esm/src/signing/_private_key.d.ts.map +0 -1
  206. package/esm/src/signing/_private_key.js +0 -124
  207. package/esm/src/signing/_viem.d.ts.map +0 -1
  208. package/esm/src/signing/_window.d.ts.map +0 -1
  209. package/esm/src/types/info/delegations.d.ts.map +0 -1
  210. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts +0 -2
  211. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts.map +0 -1
  212. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +0 -27
  213. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts +0 -95
  214. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts.map +0 -1
  215. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +0 -24
  216. package/script/deps/jsr.io/@std/async/1.0.13/delay.d.ts +0 -43
  217. package/script/deps/jsr.io/@std/async/1.0.13/delay.d.ts.map +0 -1
  218. package/script/deps/jsr.io/@std/async/1.0.13/delay.js +0 -76
  219. package/script/deps/jsr.io/@std/bytes/1.0.6/_types.d.ts +0 -9
  220. package/script/deps/jsr.io/@std/bytes/1.0.6/_types.d.ts.map +0 -1
  221. package/script/deps/jsr.io/@std/bytes/1.0.6/_types.js +0 -13
  222. package/script/deps/jsr.io/@std/bytes/1.0.6/concat.d.ts +0 -21
  223. package/script/deps/jsr.io/@std/bytes/1.0.6/concat.d.ts.map +0 -1
  224. package/script/deps/jsr.io/@std/bytes/1.0.6/concat.js +0 -45
  225. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts +0 -23
  226. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.d.ts.map +0 -1
  227. package/script/deps/jsr.io/@std/encoding/1.0.10/_common16.js +0 -67
  228. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts +0 -4
  229. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.d.ts.map +0 -1
  230. package/script/deps/jsr.io/@std/encoding/1.0.10/_common_detach.js +0 -26
  231. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts +0 -9
  232. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.d.ts.map +0 -1
  233. package/script/deps/jsr.io/@std/encoding/1.0.10/_types.js +0 -13
  234. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts +0 -39
  235. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.d.ts.map +0 -1
  236. package/script/deps/jsr.io/@std/encoding/1.0.10/hex.js +0 -101
  237. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts +0 -9
  238. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.d.ts.map +0 -1
  239. package/script/deps/jsr.io/@std/msgpack/1.0.3/_types.js +0 -13
  240. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts +0 -39
  241. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.d.ts.map +0 -1
  242. package/script/deps/jsr.io/@std/msgpack/1.0.3/encode.js +0 -250
  243. package/script/src/signing/_ethers.d.ts.map +0 -1
  244. package/script/src/signing/_ethers.js +0 -26
  245. package/script/src/signing/_private_key.d.ts +0 -22
  246. package/script/src/signing/_private_key.d.ts.map +0 -1
  247. package/script/src/signing/_private_key.js +0 -138
  248. package/script/src/signing/_viem.d.ts.map +0 -1
  249. package/script/src/signing/_viem.js +0 -19
  250. package/script/src/signing/_window.d.ts.map +0 -1
  251. package/script/src/signing/_window.js +0 -43
  252. package/script/src/types/info/delegations.d.ts.map +0 -1
  253. package/script/src/types/info/delegations.js +0 -12
  254. /package/esm/src/signing/{_ethers.js → _signTypedData/ethers.js} +0 -0
  255. /package/esm/src/signing/{_viem.js → _signTypedData/viem.js} +0 -0
  256. /package/esm/src/types/info/{delegations.js → validators.js} +0 -0
@@ -1,1215 +1,1447 @@
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;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InfoClient = void 0;
4
+ /**
5
+ * Info client for interacting with the Hyperliquid API.
6
+ * @typeParam T The type of transport used to connect to the Hyperliquid API.
7
+ */
8
+ class InfoClient {
9
+ transport;
10
+ /**
11
+ * Initialises a new instance.
12
+ * @param args - The arguments for initialisation.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import * as hl from "@nktkas/hyperliquid";
17
+ *
18
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
19
+ * const infoClient = new hl.InfoClient({ transport });
20
+ * ```
21
+ */
22
+ constructor(args) {
23
+ this.transport = args.transport;
24
+ }
25
+ allMids(args_or_signal, maybeSignal) {
26
+ const args = args_or_signal instanceof AbortSignal ? {} : args_or_signal;
27
+ const signal = args_or_signal instanceof AbortSignal ? args_or_signal : maybeSignal;
28
+ const request = {
29
+ type: "allMids",
30
+ ...args,
31
+ };
32
+ return this.transport.request("info", request, signal);
33
+ }
34
+ /**
35
+ * Block details by block height.
36
+ * @param args - The parameters for the request.
37
+ * @param signal - An optional abort signal.
38
+ * @returns Block details.
39
+ *
40
+ * @throws {TransportError} When the transport layer throws an error.
41
+ *
42
+ * @see null
43
+ * @example
44
+ * ```ts
45
+ * import * as hl from "@nktkas/hyperliquid";
46
+ *
47
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
48
+ * const infoClient = new hl.InfoClient({ transport });
49
+ *
50
+ * const data = await infoClient.blockDetails({ height: 123 });
51
+ * ```
52
+ */
53
+ async blockDetails(args, signal) {
54
+ const request = {
55
+ type: "blockDetails",
56
+ ...args,
57
+ };
58
+ const { blockDetails } = await this.transport.request("explorer", request, signal);
59
+ return blockDetails;
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
+ * @throws {TransportError} When the transport layer throws an error.
68
+ *
69
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#candle-snapshot
70
+ * @example
71
+ * ```ts
72
+ * import * as hl from "@nktkas/hyperliquid";
73
+ *
74
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
75
+ * const infoClient = new hl.InfoClient({ transport });
76
+ *
77
+ * const data = await infoClient.candleSnapshot({
78
+ * coin: "ETH",
79
+ * interval: "1h",
80
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
81
+ * });
82
+ * ```
83
+ */
84
+ candleSnapshot(args, signal) {
85
+ const request = {
86
+ type: "candleSnapshot",
87
+ req: args,
88
+ };
89
+ return this.transport.request("info", request, signal);
90
+ }
91
+ /**
92
+ * Request clearinghouse state.
93
+ * @param args - The parameters for the request.
94
+ * @param signal - An optional abort signal.
95
+ * @returns Account summary for perpetual trading.
96
+ *
97
+ * @throws {TransportError} When the transport layer throws an error.
98
+ *
99
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-users-perpetuals-account-summary
100
+ * @example
101
+ * ```ts
102
+ * import * as hl from "@nktkas/hyperliquid";
103
+ *
104
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
105
+ * const infoClient = new hl.InfoClient({ transport });
106
+ *
107
+ * const data = await infoClient.clearinghouseState({ user: "0x..." });
108
+ * ```
109
+ */
110
+ clearinghouseState(args, signal) {
111
+ const request = {
112
+ type: "clearinghouseState",
113
+ ...args,
114
+ };
115
+ return this.transport.request("info", request, signal);
116
+ }
117
+ /**
118
+ * Request user staking delegations.
119
+ * @param args - The parameters for the request.
120
+ * @param signal - An optional abort signal.
121
+ * @returns Array of user's delegations to validators.
122
+ *
123
+ * @throws {TransportError} When the transport layer throws an error.
124
+ *
125
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-delegations
126
+ * @example
127
+ * ```ts
128
+ * import * as hl from "@nktkas/hyperliquid";
129
+ *
130
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
131
+ * const infoClient = new hl.InfoClient({ transport });
132
+ *
133
+ * const data = await infoClient.delegations({ user: "0x..." });
134
+ * ```
135
+ */
136
+ delegations(args, signal) {
137
+ const request = {
138
+ type: "delegations",
139
+ ...args,
140
+ };
141
+ return this.transport.request("info", request, signal);
142
+ }
143
+ /**
144
+ * Request user staking history.
145
+ * @param args - The parameters for the request.
146
+ * @param signal - An optional abort signal.
147
+ * @returns Array of user's staking updates.
148
+ *
149
+ * @throws {TransportError} When the transport layer throws an error.
150
+ *
151
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-history
152
+ * @example
153
+ * ```ts
154
+ * import * as hl from "@nktkas/hyperliquid";
155
+ *
156
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
157
+ * const infoClient = new hl.InfoClient({ transport });
158
+ *
159
+ * const data = await infoClient.delegatorHistory({ user: "0x..." });
160
+ * ```
161
+ */
162
+ delegatorHistory(args, signal) {
163
+ const request = {
164
+ type: "delegatorHistory",
165
+ ...args,
166
+ };
167
+ return this.transport.request("info", request, signal);
168
+ }
169
+ /**
170
+ * Request user staking rewards.
171
+ * @param args - The parameters for the request.
172
+ * @param signal - An optional abort signal.
173
+ * @returns Array of user's staking rewards.
174
+ *
175
+ * @throws {TransportError} When the transport layer throws an error.
176
+ *
177
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-rewards
178
+ * @example
179
+ * ```ts
180
+ * import * as hl from "@nktkas/hyperliquid";
181
+ *
182
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
183
+ * const infoClient = new hl.InfoClient({ transport });
184
+ *
185
+ * const data = await infoClient.delegatorRewards({ user: "0x..." });
186
+ * ```
187
+ */
188
+ delegatorRewards(args, signal) {
189
+ const request = {
190
+ type: "delegatorRewards",
191
+ ...args,
192
+ };
193
+ return this.transport.request("info", request, signal);
194
+ }
195
+ /**
196
+ * Request user staking summary.
197
+ * @param args - The parameters for the request.
198
+ * @param signal - An optional abort signal.
199
+ * @returns Summary of a user's staking delegations.
200
+ *
201
+ * @throws {TransportError} When the transport layer throws an error.
202
+ *
203
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-summary
204
+ * @example
205
+ * ```ts
206
+ * import * as hl from "@nktkas/hyperliquid";
207
+ *
208
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
209
+ * const infoClient = new hl.InfoClient({ transport });
210
+ *
211
+ * const data = await infoClient.delegatorSummary({ user: "0x..." });
212
+ * ```
213
+ */
214
+ delegatorSummary(args, signal) {
215
+ const request = {
216
+ type: "delegatorSummary",
217
+ ...args,
218
+ };
219
+ return this.transport.request("info", request, signal);
220
+ }
221
+ /**
222
+ * Request exchange status information.
223
+ * @param signal - An optional abort signal.
224
+ * @returns Exchange system status information.
225
+ *
226
+ * @throws {TransportError} When the transport layer throws an error.
227
+ *
228
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-summary
229
+ * @example
230
+ * ```ts
231
+ * import * as hl from "@nktkas/hyperliquid";
232
+ *
233
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
234
+ * const infoClient = new hl.InfoClient({ transport });
235
+ *
236
+ * const data = await infoClient.exchangeStatus();
237
+ * ```
238
+ */
239
+ exchangeStatus(signal) {
240
+ const request = {
241
+ type: "exchangeStatus",
242
+ };
243
+ return this.transport.request("info", request, signal);
244
+ }
245
+ /**
246
+ * Request user's extra agents.
247
+ * @param args - The parameters for the request.
248
+ * @param signal - An optional abort signal.
249
+ * @returns User's extra agents.
250
+ *
251
+ * @throws {TransportError} When the transport layer throws an error.
252
+ *
253
+ * @see null
254
+ * @example
255
+ * ```ts
256
+ * import * as hl from "@nktkas/hyperliquid";
257
+ *
258
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
259
+ * const infoClient = new hl.InfoClient({ transport });
260
+ *
261
+ * const data = await infoClient.extraAgents({ user: "0x..." });
262
+ * ```
263
+ */
264
+ extraAgents(args, signal) {
265
+ const request = {
266
+ type: "extraAgents",
267
+ ...args,
268
+ };
269
+ return this.transport.request("info", request, signal);
270
+ }
271
+ /**
272
+ * Request frontend open orders.
273
+ * @param args - The parameters for the request.
274
+ * @param signal - An optional abort signal.
275
+ * @returns Array of open orders with additional frontend information.
276
+ *
277
+ * @throws {TransportError} When the transport layer throws an error.
278
+ *
279
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders-with-additional-frontend-info
280
+ * @example
281
+ * ```ts
282
+ * import * as hl from "@nktkas/hyperliquid";
283
+ *
284
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
285
+ * const infoClient = new hl.InfoClient({ transport });
286
+ *
287
+ * const data = await infoClient.frontendOpenOrders({ user: "0x..." });
288
+ * ```
289
+ */
290
+ frontendOpenOrders(args, signal) {
291
+ const request = {
292
+ type: "frontendOpenOrders",
293
+ ...args,
294
+ };
295
+ return this.transport.request("info", request, signal);
296
+ }
297
+ /**
298
+ * Request funding history.
299
+ * @param args - The parameters for the request.
300
+ * @param signal - An optional abort signal.
301
+ * @returns Array of historical funding rate data for an asset.
302
+ *
303
+ * @throws {TransportError} When the transport layer throws an error.
304
+ *
305
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-historical-funding-rates
306
+ * @example
307
+ * ```ts
308
+ * import * as hl from "@nktkas/hyperliquid";
309
+ *
310
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
311
+ * const infoClient = new hl.InfoClient({ transport });
312
+ *
313
+ * const data = await infoClient.fundingHistory({
314
+ * coin: "ETH",
315
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
316
+ * });
317
+ * ```
318
+ */
319
+ fundingHistory(args, signal) {
320
+ const request = {
321
+ type: "fundingHistory",
322
+ ...args,
323
+ };
324
+ return this.transport.request("info", request, signal);
325
+ }
326
+ /**
327
+ * Request user's historical orders.
328
+ * @param args - The parameters for the request.
329
+ * @param signal - An optional abort signal.
330
+ * @returns Array of user's historical orders.
331
+ *
332
+ * @throws {TransportError} When the transport layer throws an error.
333
+ *
334
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-historical-orders
335
+ * @example
336
+ * ```ts
337
+ * import * as hl from "@nktkas/hyperliquid";
338
+ *
339
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
340
+ * const infoClient = new hl.InfoClient({ transport });
341
+ *
342
+ * const data = await infoClient.historicalOrders({ user: "0x..." });
343
+ * ```
344
+ */
345
+ historicalOrders(args, signal) {
346
+ const request = {
347
+ type: "historicalOrders",
348
+ ...args,
349
+ };
350
+ return this.transport.request("info", request, signal);
351
+ }
352
+ /**
353
+ * Request to check if a user is a VIP.
354
+ * @param args - The parameters for the request.
355
+ * @param signal - An optional abort signal.
356
+ * @returns Boolean indicating user's VIP status.
357
+ *
358
+ * @throws {TransportError} When the transport layer throws an error.
359
+ *
360
+ * @see null
361
+ * @example
362
+ * ```ts
363
+ * import * as hl from "@nktkas/hyperliquid";
364
+ *
365
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
366
+ * const infoClient = new hl.InfoClient({ transport });
367
+ *
368
+ * const data = await infoClient.isVip({ user: "0x..." });
369
+ * ```
370
+ */
371
+ isVip(args, signal) {
372
+ const request = {
373
+ type: "isVip",
374
+ ...args,
375
+ };
376
+ return this.transport.request("info", request, signal);
377
+ }
378
+ /**
379
+ * Request L2 order book.
380
+ * @param args - The parameters for the request.
381
+ * @param signal - An optional abort signal.
382
+ * @returns L2 order book snapshot.
383
+ *
384
+ * @throws {TransportError} When the transport layer throws an error.
385
+ *
386
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#l2-book-snapshot
387
+ * @example
388
+ * ```ts
389
+ * import * as hl from "@nktkas/hyperliquid";
390
+ *
391
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
392
+ * const infoClient = new hl.InfoClient({ transport });
393
+ *
394
+ * const data = await infoClient.l2Book({ coin: "ETH", nSigFigs: 2 });
395
+ * ```
396
+ */
397
+ l2Book(args, signal) {
398
+ const request = {
399
+ type: "l2Book",
400
+ ...args,
401
+ };
402
+ return this.transport.request("info", request, signal);
5
403
  }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
404
+ /**
405
+ * Request leading vaults for a user.
406
+ * @param args - The parameters for the request.
407
+ * @param signal - An optional abort signal.
408
+ * @returns
409
+ *
410
+ * @throws {TransportError} When the transport layer throws an error.
411
+ *
412
+ * @see null
413
+ * @example
414
+ * ```ts
415
+ * import * as hl from "@nktkas/hyperliquid";
416
+ *
417
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
418
+ * const infoClient = new hl.InfoClient({ transport });
419
+ *
420
+ * const data = await infoClient.leadingVaults({ user: "0x..." });
421
+ * ```
422
+ */
423
+ leadingVaults(args, signal) {
424
+ const request = {
425
+ type: "leadingVaults",
426
+ ...args,
427
+ };
428
+ return this.transport.request("info", request, signal);
8
429
  }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.InfoClient = void 0;
13
430
  /**
14
- * Info client for interacting with the Hyperliquid API.
15
- * @typeParam T The type of transport used to connect to the Hyperliquid API.
431
+ * Request legal verification status of a user.
432
+ * @param args - The parameters for the request.
433
+ * @param signal - An optional abort signal.
434
+ * @returns Legal verification status for a user.
435
+ *
436
+ * @throws {TransportError} When the transport layer throws an error.
437
+ *
438
+ * @see null
439
+ * @example
440
+ * ```ts
441
+ * import * as hl from "@nktkas/hyperliquid";
442
+ *
443
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
444
+ * const infoClient = new hl.InfoClient({ transport });
445
+ *
446
+ * const data = await infoClient.legalCheck({ user: "0x..." });
447
+ * ```
16
448
  */
17
- class InfoClient {
18
- transport;
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 infoClient = new hl.InfoClient({ transport });
29
- * ```
30
- */
31
- constructor(args) {
32
- this.transport = args.transport;
33
- }
34
- allMids(args_or_signal, maybeSignal) {
35
- const args = args_or_signal instanceof AbortSignal ? {} : args_or_signal;
36
- const signal = args_or_signal instanceof AbortSignal ? args_or_signal : maybeSignal;
37
- const request = {
38
- type: "allMids",
39
- ...args,
40
- };
41
- return this.transport.request("info", request, signal);
42
- }
43
- /**
44
- * Block details by block height.
45
- * @param args - The parameters for the request.
46
- * @param signal - An optional abort signal.
47
- * @returns Block details response.
48
- *
49
- * @see null - no documentation
50
- * @example
51
- * ```ts
52
- * import * as hl from "@nktkas/hyperliquid";
53
- *
54
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
55
- * const infoClient = new hl.InfoClient({ transport });
56
- *
57
- * const data = await infoClient.blockDetails({ height: 123 });
58
- * ```
59
- */
60
- async blockDetails(args, signal) {
61
- const request = {
62
- type: "blockDetails",
63
- ...args,
64
- };
65
- const { blockDetails } = await this.transport.request("explorer", request, signal);
66
- return blockDetails;
67
- }
68
- /**
69
- * Request candlestick snapshots.
70
- * @param args - The parameters for the request.
71
- * @param signal - An optional abort signal.
72
- * @returns Array of candlestick data points.
73
- *
74
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#candle-snapshot
75
- * @example
76
- * ```ts
77
- * import * as hl from "@nktkas/hyperliquid";
78
- *
79
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
80
- * const infoClient = new hl.InfoClient({ transport });
81
- *
82
- * const data = await infoClient.candleSnapshot({
83
- * coin: "ETH",
84
- * interval: "1h",
85
- * startTime: Date.now() - 1000 * 60 * 60 * 24
86
- * });
87
- * ```
88
- */
89
- candleSnapshot(args, signal) {
90
- const request = {
91
- type: "candleSnapshot",
92
- req: args,
93
- };
94
- return this.transport.request("info", request, signal);
95
- }
96
- /**
97
- * Request clearinghouse state.
98
- * @param args - The parameters for the request.
99
- * @param signal - An optional abort signal.
100
- * @returns Account summary for perpetual trading.
101
- *
102
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-users-perpetuals-account-summary
103
- * @example
104
- * ```ts
105
- * import * as hl from "@nktkas/hyperliquid";
106
- *
107
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
108
- * const infoClient = new hl.InfoClient({ transport });
109
- *
110
- * const data = await infoClient.clearinghouseState({ user: "0x..." });
111
- * ```
112
- */
113
- clearinghouseState(args, signal) {
114
- const request = {
115
- type: "clearinghouseState",
116
- ...args,
117
- };
118
- return this.transport.request("info", request, signal);
119
- }
120
- /**
121
- * Request user staking delegations.
122
- * @param args - The parameters for the request.
123
- * @param signal - An optional abort signal.
124
- * @returns Array of user's delegations to validators.
125
- *
126
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-delegations
127
- * @example
128
- * ```ts
129
- * import * as hl from "@nktkas/hyperliquid";
130
- *
131
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
132
- * const infoClient = new hl.InfoClient({ transport });
133
- *
134
- * const data = await infoClient.delegations({ user: "0x..." });
135
- * ```
136
- */
137
- delegations(args, signal) {
138
- const request = {
139
- type: "delegations",
140
- ...args,
141
- };
142
- return this.transport.request("info", request, signal);
143
- }
144
- /**
145
- * Request user staking history.
146
- * @param args - The parameters for the request.
147
- * @param signal - An optional abort signal.
148
- * @returns Array of user's staking updates.
149
- *
150
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-history
151
- * @example
152
- * ```ts
153
- * import * as hl from "@nktkas/hyperliquid";
154
- *
155
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
156
- * const infoClient = new hl.InfoClient({ transport });
157
- *
158
- * const data = await infoClient.delegatorHistory({ user: "0x..." });
159
- * ```
160
- */
161
- delegatorHistory(args, signal) {
162
- const request = {
163
- type: "delegatorHistory",
164
- ...args,
165
- };
166
- return this.transport.request("info", request, signal);
167
- }
168
- /**
169
- * Request user staking rewards.
170
- * @param args - The parameters for the request.
171
- * @param signal - An optional abort signal.
172
- * @returns Array of user's staking rewards.
173
- *
174
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-rewards
175
- * @example
176
- * ```ts
177
- * import * as hl from "@nktkas/hyperliquid";
178
- *
179
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
180
- * const infoClient = new hl.InfoClient({ transport });
181
- *
182
- * const data = await infoClient.delegatorRewards({ user: "0x..." });
183
- * ```
184
- */
185
- delegatorRewards(args, signal) {
186
- const request = {
187
- type: "delegatorRewards",
188
- ...args,
189
- };
190
- return this.transport.request("info", request, signal);
191
- }
192
- /**
193
- * Request user staking summary.
194
- * @param args - The parameters for the request.
195
- * @param signal - An optional abort signal.
196
- * @returns Summary of a user's staking delegations.
197
- *
198
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-summary
199
- * @example
200
- * ```ts
201
- * import * as hl from "@nktkas/hyperliquid";
202
- *
203
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
204
- * const infoClient = new hl.InfoClient({ transport });
205
- *
206
- * const data = await infoClient.delegatorSummary({ user: "0x..." });
207
- * ```
208
- */
209
- delegatorSummary(args, signal) {
210
- const request = {
211
- type: "delegatorSummary",
212
- ...args,
213
- };
214
- return this.transport.request("info", request, signal);
215
- }
216
- /**
217
- * Request user's extra agents.
218
- * @param args - The parameters for the request.
219
- * @param signal - An optional abort signal.
220
- * @returns User's extra agents.
221
- *
222
- * @see null - no documentation
223
- * @example
224
- * ```ts
225
- * import * as hl from "@nktkas/hyperliquid";
226
- *
227
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
228
- * const infoClient = new hl.InfoClient({ transport });
229
- *
230
- * const data = await infoClient.extraAgents({ user: "0x..." });
231
- * ```
232
- */
233
- extraAgents(args, signal) {
234
- const request = {
235
- type: "extraAgents",
236
- ...args,
237
- };
238
- return this.transport.request("info", request, signal);
239
- }
240
- /**
241
- * Request frontend open orders.
242
- * @param args - The parameters for the request.
243
- * @param signal - An optional abort signal.
244
- * @returns Array of open orders with additional frontend information.
245
- *
246
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders-with-additional-frontend-info
247
- * @example
248
- * ```ts
249
- * import * as hl from "@nktkas/hyperliquid";
250
- *
251
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
252
- * const infoClient = new hl.InfoClient({ transport });
253
- *
254
- * const data = await infoClient.frontendOpenOrders({ user: "0x..." });
255
- * ```
256
- */
257
- frontendOpenOrders(args, signal) {
258
- const request = {
259
- type: "frontendOpenOrders",
260
- ...args,
261
- };
262
- return this.transport.request("info", request, signal);
263
- }
264
- /**
265
- * Request funding history.
266
- * @param args - The parameters for the request.
267
- * @param signal - An optional abort signal.
268
- * @returns Array of historical funding rate data for an asset.
269
- *
270
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-historical-funding-rates
271
- * @example
272
- * ```ts
273
- * import * as hl from "@nktkas/hyperliquid";
274
- *
275
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
276
- * const infoClient = new hl.InfoClient({ transport });
277
- *
278
- * const data = await infoClient.fundingHistory({
279
- * coin: "ETH",
280
- * startTime: Date.now() - 1000 * 60 * 60 * 24
281
- * });
282
- * ```
283
- */
284
- fundingHistory(args, signal) {
285
- const request = {
286
- type: "fundingHistory",
287
- ...args,
288
- };
289
- return this.transport.request("info", request, signal);
290
- }
291
- /**
292
- * Request user's historical orders.
293
- * @param args - The parameters for the request.
294
- * @param signal - An optional abort signal.
295
- * @returns Array of user's historical orders.
296
- *
297
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-historical-orders
298
- * @example
299
- * ```ts
300
- * import * as hl from "@nktkas/hyperliquid";
301
- *
302
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
303
- * const infoClient = new hl.InfoClient({ transport });
304
- *
305
- * const data = await infoClient.historicalOrders({ user: "0x..." });
306
- * ```
307
- */
308
- historicalOrders(args, signal) {
309
- const request = {
310
- type: "historicalOrders",
311
- ...args,
312
- };
313
- return this.transport.request("info", request, signal);
314
- }
315
- /**
316
- * Request to check if a user is a VIP.
317
- * @param args - The parameters for the request.
318
- * @param signal - An optional abort signal.
319
- * @returns Boolean indicating user's VIP status.
320
- *
321
- * @see null - no documentation
322
- * @example
323
- * ```ts
324
- * import * as hl from "@nktkas/hyperliquid";
325
- *
326
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
327
- * const infoClient = new hl.InfoClient({ transport });
328
- *
329
- * const data = await infoClient.isVip({ user: "0x..." });
330
- * ```
331
- */
332
- isVip(args, signal) {
333
- const request = {
334
- type: "isVip",
335
- ...args,
336
- };
337
- return this.transport.request("info", request, signal);
338
- }
339
- /**
340
- * Request L2 order book.
341
- * @param args - The parameters for the request.
342
- * @param signal - An optional abort signal.
343
- * @returns L2 order book snapshot.
344
- *
345
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#l2-book-snapshot
346
- * @example
347
- * ```ts
348
- * import * as hl from "@nktkas/hyperliquid";
349
- *
350
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
351
- * const infoClient = new hl.InfoClient({ transport });
352
- *
353
- * const data = await infoClient.l2Book({ coin: "ETH", nSigFigs: 2 });
354
- * ```
355
- */
356
- l2Book(args, signal) {
357
- const request = {
358
- type: "l2Book",
359
- ...args,
360
- };
361
- return this.transport.request("info", request, signal);
362
- }
363
- /**
364
- * Request legal verification status of a user.
365
- * @param args - The parameters for the request.
366
- * @param signal - An optional abort signal.
367
- * @returns Legal verification status for a user.
368
- *
369
- * @see null - no documentation
370
- * @example
371
- * ```ts
372
- * import * as hl from "@nktkas/hyperliquid";
373
- *
374
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
375
- * const infoClient = new hl.InfoClient({ transport });
376
- *
377
- * const data = await infoClient.legalCheck({ user: "0x..." });
378
- * ```
379
- */
380
- legalCheck(args, signal) {
381
- const request = {
382
- type: "legalCheck",
383
- ...args,
384
- };
385
- return this.transport.request("info", request, signal);
386
- }
387
- /**
388
- * Request builder fee approval.
389
- * @param args - The parameters for the request.
390
- * @param signal - An optional abort signal.
391
- * @returns Maximum builder fee approval.
392
- *
393
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#check-builder-fee-approval
394
- * @example
395
- * ```ts
396
- * import * as hl from "@nktkas/hyperliquid";
397
- *
398
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
399
- * const infoClient = new hl.InfoClient({ transport });
400
- *
401
- * const data = await infoClient.maxBuilderFee({ user: "0x...", builder: "0x..." });
402
- * ```
403
- */
404
- maxBuilderFee(args, signal) {
405
- const request = {
406
- type: "maxBuilderFee",
407
- ...args,
408
- };
409
- return this.transport.request("info", request, signal);
410
- }
411
- meta(args_or_signal, maybeSignal) {
412
- const args = args_or_signal instanceof AbortSignal ? {} : args_or_signal;
413
- const signal = args_or_signal instanceof AbortSignal ? args_or_signal : maybeSignal;
414
- const request = {
415
- type: "meta",
416
- ...args,
417
- };
418
- return this.transport.request("info", request, signal);
419
- }
420
- /**
421
- * Request metadata and asset contexts.
422
- * @param signal - An optional abort signal.
423
- * @returns Metadata and context information for each perpetual asset.
424
- *
425
- * @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
426
- * @example
427
- * ```ts
428
- * import * as hl from "@nktkas/hyperliquid";
429
- *
430
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
431
- * const infoClient = new hl.InfoClient({ transport });
432
- *
433
- * const data = await infoClient.metaAndAssetCtxs();
434
- * ```
435
- */
436
- metaAndAssetCtxs(signal) {
437
- const request = {
438
- type: "metaAndAssetCtxs",
439
- };
440
- return this.transport.request("info", request, signal);
441
- }
442
- /**
443
- * Request open orders.
444
- * @param args - The parameters for the request.
445
- * @param signal - An optional abort signal.
446
- * @returns Array of open order.
447
- *
448
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders
449
- * @example
450
- * ```ts
451
- * import * as hl from "@nktkas/hyperliquid";
452
- *
453
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
454
- * const infoClient = new hl.InfoClient({ transport });
455
- *
456
- * const data = await infoClient.openOrders({ user: "0x..." });
457
- * ```
458
- */
459
- openOrders(args, signal) {
460
- const request = {
461
- type: "openOrders",
462
- ...args,
463
- };
464
- return this.transport.request("info", request, signal);
465
- }
466
- /**
467
- * Request order status.
468
- * @param args - The parameters for the request.
469
- * @param signal - An optional abort signal.
470
- * @returns Result of an order status lookup.
471
- *
472
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-order-status-by-oid-or-cloid
473
- * @example
474
- * ```ts
475
- * import * as hl from "@nktkas/hyperliquid";
476
- *
477
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
478
- * const infoClient = new hl.InfoClient({ transport });
479
- *
480
- * const data = await infoClient.orderStatus({ user: "0x...", oid: 12345 });
481
- * ```
482
- */
483
- orderStatus(args, signal) {
484
- const request = {
485
- type: "orderStatus",
486
- ...args,
487
- };
488
- return this.transport.request("info", request, signal);
489
- }
490
- /**
491
- * Request for the status of the perpetual deploy auction.
492
- * @param signal - An optional abort signal.
493
- * @returns Status of the perpetual deploy auction.
494
- *
495
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-information-about-the-perp-deploy-auction
496
- * @example
497
- * ```ts
498
- * import * as hl from "@nktkas/hyperliquid";
499
- *
500
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
501
- * const infoClient = new hl.InfoClient({ transport });
502
- *
503
- * const data = await infoClient.perpDeployAuctionStatus();
504
- * ```
505
- */
506
- perpDeployAuctionStatus(signal) {
507
- const request = {
508
- type: "perpDeployAuctionStatus",
509
- };
510
- return this.transport.request("info", request, signal);
511
- }
512
- /**
513
- * Request all perpetual dexs.
514
- * @param signal - An optional abort signal.
515
- * @returns Array of perpetual dexes.
516
- *
517
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-all-perpetual-dexs
518
- * @example
519
- * ```ts
520
- * import * as hl from "@nktkas/hyperliquid";
521
- *
522
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
523
- * const infoClient = new hl.InfoClient({ transport });
524
- *
525
- * const data = await infoClient.perpDexs();
526
- * ```
527
- */
528
- perpDexs(signal) {
529
- const request = {
530
- type: "perpDexs",
531
- };
532
- return this.transport.request("info", request, signal);
533
- }
534
- /**
535
- * Request perpetuals at open interest cap.
536
- * @param args - The parameters for the request.
537
- * @param signal - An optional abort signal.
538
- * @returns Array of perpetuals at open interest caps.
539
- *
540
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#query-perps-at-open-interest-caps
541
- * @example
542
- * ```ts
543
- * import * as hl from "@nktkas/hyperliquid";
544
- *
545
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
546
- * const infoClient = new hl.InfoClient({ transport });
547
- *
548
- * const data = await infoClient.perpsAtOpenInterestCap();
549
- * ```
550
- */
551
- perpsAtOpenInterestCap(signal) {
552
- const request = {
553
- type: "perpsAtOpenInterestCap",
554
- };
555
- return this.transport.request("info", request, signal);
556
- }
557
- /**
558
- * Request portfolio.
559
- * @param args - The parameters for the request.
560
- * @param signal - An optional abort signal.
561
- * @returns Portfolio of a user.
562
- *
563
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-portfolio
564
- * @example
565
- * ```ts
566
- * import * as hl from "@nktkas/hyperliquid";
567
- *
568
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
569
- * const infoClient = new hl.InfoClient({ transport });
570
- *
571
- * const data = await infoClient.portfolio({ user: "0x..." });
572
- * ```
573
- */
574
- portfolio(args, signal) {
575
- const request = {
576
- type: "portfolio",
577
- ...args,
578
- };
579
- return this.transport.request("info", request, signal);
580
- }
581
- /**
582
- * Request predicted funding rates.
583
- * @param signal - An optional abort signal.
584
- * @returns Array of predicted funding rates.
585
- *
586
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-predicted-funding-rates-for-different-venues
587
- * @example
588
- * ```ts
589
- * import * as hl from "@nktkas/hyperliquid";
590
- *
591
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
592
- * const infoClient = new hl.InfoClient({ transport });
593
- *
594
- * const data = await infoClient.predictedFundings();
595
- * ```
596
- */
597
- predictedFundings(signal) {
598
- const request = {
599
- type: "predictedFundings",
600
- };
601
- return this.transport.request("info", request, signal);
602
- }
603
- /**
604
- * Request user's existence check before transfer.
605
- * @param args - The parameters for the request.
606
- * @param signal - An optional abort signal.
607
- * @returns Pre-transfer user existence check result.
608
- *
609
- * @see null - no documentation
610
- * @example
611
- * ```ts
612
- * import * as hl from "@nktkas/hyperliquid";
613
- *
614
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
615
- * const infoClient = new hl.InfoClient({ transport });
616
- *
617
- * const data = await infoClient.preTransferCheck({ user: "0x...", source: "0x..." });
618
- * ```
619
- */
620
- preTransferCheck(args, signal) {
621
- const request = {
622
- type: "preTransferCheck",
623
- ...args,
624
- };
625
- return this.transport.request("info", request, signal);
626
- }
627
- /**
628
- * Request user referral.
629
- * @param args - The parameters for the request.
630
- * @param signal - An optional abort signal.
631
- * @returns Referral information for a user.
632
- *
633
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-referral-information
634
- * @example
635
- * ```ts
636
- * import * as hl from "@nktkas/hyperliquid";
637
- *
638
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
639
- * const infoClient = new hl.InfoClient({ transport });
640
- *
641
- * const data = await infoClient.referral({ user: "0x..." });
642
- * ```
643
- */
644
- referral(args, signal) {
645
- const request = {
646
- type: "referral",
647
- ...args,
648
- };
649
- return this.transport.request("info", request, signal);
650
- }
651
- /**
652
- * Request spot clearinghouse state.
653
- * @param args - The parameters for the request.
654
- * @param signal - An optional abort signal.
655
- * @returns Balances for spot tokens.
656
- *
657
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-a-users-token-balances
658
- * @example
659
- * ```ts
660
- * import * as hl from "@nktkas/hyperliquid";
661
- *
662
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
663
- * const infoClient = new hl.InfoClient({ transport });
664
- *
665
- * const data = await infoClient.spotClearinghouseState({ user: "0x..." });
666
- * ```
667
- */
668
- spotClearinghouseState(args, signal) {
669
- const request = {
670
- type: "spotClearinghouseState",
671
- ...args,
672
- };
673
- return this.transport.request("info", request, signal);
674
- }
675
- /**
676
- * Request spot deploy state.
677
- * @param args - The parameters for the request.
678
- * @param signal - An optional abort signal.
679
- * @returns The deploy state of a user.
680
- *
681
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-the-spot-deploy-auction
682
- * @example
683
- * ```ts
684
- * import * as hl from "@nktkas/hyperliquid";
685
- *
686
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
687
- * const infoClient = new hl.InfoClient({ transport });
688
- *
689
- * const data = await infoClient.spotDeployState({ user: "0x..." });
690
- * ```
691
- */
692
- spotDeployState(args, signal) {
693
- const request = {
694
- type: "spotDeployState",
695
- ...args,
696
- };
697
- return this.transport.request("info", request, signal);
698
- }
699
- /**
700
- * Request spot trading metadata.
701
- * @param signal - An optional abort signal.
702
- * @returns Metadata for spot assets.
703
- *
704
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-metadata
705
- * @example
706
- * ```ts
707
- * import * as hl from "@nktkas/hyperliquid";
708
- *
709
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
710
- * const infoClient = new hl.InfoClient({ transport });
711
- *
712
- * const data = await infoClient.spotMeta();
713
- * ```
714
- */
715
- spotMeta(signal) {
716
- const request = {
717
- type: "spotMeta",
718
- };
719
- return this.transport.request("info", request, signal);
720
- }
721
- /**
722
- * Request spot metadata and asset contexts.
723
- * @param signal - An optional abort signal.
724
- * @returns Metadata and context information for each spot asset.
725
- *
726
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-asset-contexts
727
- * @example
728
- * ```ts
729
- * import * as hl from "@nktkas/hyperliquid";
730
- *
731
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
732
- * const infoClient = new hl.InfoClient({ transport });
733
- *
734
- * const data = await infoClient.spotMetaAndAssetCtxs();
735
- * ```
736
- */
737
- spotMetaAndAssetCtxs(signal) {
738
- const request = {
739
- type: "spotMetaAndAssetCtxs",
740
- };
741
- return this.transport.request("info", request, signal);
742
- }
743
- /**
744
- * Request user sub-accounts.
745
- * @param args - The parameters for the request.
746
- * @param signal - An optional abort signal.
747
- * @returns Array of user sub-account or null if the user does not have any sub-accounts.
748
- *
749
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-subaccounts
750
- * @example
751
- * ```ts
752
- * import * as hl from "@nktkas/hyperliquid";
753
- *
754
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
755
- * const infoClient = new hl.InfoClient({ transport });
756
- *
757
- * const data = await infoClient.subAccounts({ user: "0x..." });
758
- * ```
759
- */
760
- subAccounts(args, signal) {
761
- const request = {
762
- type: "subAccounts",
763
- ...args,
764
- };
765
- return this.transport.request("info", request, signal);
766
- }
767
- /**
768
- * Request token details.
769
- * @param args - The parameters for the request.
770
- * @param signal - An optional abort signal.
771
- * @returns The details of a token.
772
- *
773
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-a-token
774
- * @example
775
- * ```ts
776
- * import * as hl from "@nktkas/hyperliquid";
777
- *
778
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
779
- * const infoClient = new hl.InfoClient({ transport });
780
- *
781
- * const data = await infoClient.tokenDetails({ tokenId: "0x..." });
782
- * ```
783
- */
784
- tokenDetails(args, signal) {
785
- const request = {
786
- type: "tokenDetails",
787
- ...args,
788
- };
789
- return this.transport.request("info", request, signal);
790
- }
791
- /**
792
- * Request twap history of a user.
793
- * @param args - The parameters for the request.
794
- * @param signal - An optional abort signal.
795
- * @returns The twap history of a user.
796
- *
797
- * @see null - no documentation
798
- * @example
799
- * ```ts
800
- * import * as hl from "@nktkas/hyperliquid";
801
- *
802
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
803
- * const infoClient = new hl.InfoClient({ transport });
804
- *
805
- * const data = await infoClient.twapHistory({ user: "0x..." });
806
- * ```
807
- */
808
- twapHistory(args, signal) {
809
- const request = {
810
- type: "twapHistory",
811
- ...args,
812
- };
813
- return this.transport.request("info", request, signal);
814
- }
815
- /**
816
- * Transaction details by transaction hash.
817
- * @param args - The parameters for the request.
818
- * @param signal - An optional abort signal.
819
- * @returns Transaction details response.
820
- *
821
- * @see null - no documentation
822
- * @example
823
- * ```ts
824
- * import * as hl from "@nktkas/hyperliquid";
825
- *
826
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
827
- * const infoClient = new hl.InfoClient({ transport });
828
- *
829
- * const data = await infoClient.txDetails({ hash: "0x..." });
830
- * ```
831
- */
832
- async txDetails(args, signal) {
833
- const request = {
834
- type: "txDetails",
835
- ...args,
836
- };
837
- const { tx } = await this.transport.request("explorer", request, signal);
838
- return tx;
839
- }
840
- /**
841
- * User details by user's address.
842
- * @param args - The parameters for the request.
843
- * @param signal - An optional abort signal.
844
- * @returns User details response.
845
- *
846
- * @see null - no documentation
847
- * @example
848
- * ```ts
849
- * import * as hl from "@nktkas/hyperliquid";
850
- *
851
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
852
- * const infoClient = new hl.InfoClient({ transport });
853
- *
854
- * const data = await infoClient.userDetails({ user: "0x..." });
855
- * ```
856
- */
857
- async userDetails(args, signal) {
858
- const request = {
859
- type: "userDetails",
860
- ...args,
861
- };
862
- const { txs } = await this.transport.request("explorer", request, signal);
863
- return txs;
864
- }
865
- /**
866
- * Request user fees.
867
- * @param args - The parameters for the request.
868
- * @param signal - An optional abort signal.
869
- * @returns User fees.
870
- *
871
- * @see null - no documentation
872
- * @example
873
- * ```ts
874
- * import * as hl from "@nktkas/hyperliquid";
875
- *
876
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
877
- * const infoClient = new hl.InfoClient({ transport });
878
- *
879
- * const data = await infoClient.userFees({ user: "0x..." });
880
- * ```
881
- */
882
- userFees(args, signal) {
883
- const request = {
884
- type: "userFees",
885
- ...args,
886
- };
887
- return this.transport.request("info", request, signal);
888
- }
889
- /**
890
- * Request user fills.
891
- * @param args - The parameters for the request.
892
- * @param signal - An optional abort signal.
893
- * @returns Array of user's trade fill.
894
- *
895
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills
896
- * @example
897
- * ```ts
898
- * import * as hl from "@nktkas/hyperliquid";
899
- *
900
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
901
- * const infoClient = new hl.InfoClient({ transport });
902
- *
903
- * const data = await infoClient.userFills({ user: "0x..." });
904
- * ```
905
- */
906
- userFills(args, signal) {
907
- const request = {
908
- type: "userFills",
909
- ...args,
910
- };
911
- return this.transport.request("info", request, signal);
912
- }
913
- /**
914
- * Request user fills by time.
915
- * @param args - The parameters for the request.
916
- * @param signal - An optional abort signal.
917
- * @returns Array of user's trade fill.
918
- *
919
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills-by-time
920
- * @example
921
- * ```ts
922
- * import * as hl from "@nktkas/hyperliquid";
923
- *
924
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
925
- * const infoClient = new hl.InfoClient({ transport });
926
- *
927
- * const data = await infoClient.userFillsByTime({
928
- * user: "0x...",
929
- * startTime: Date.now() - 1000 * 60 * 60 * 24
930
- * });
931
- * ```
932
- */
933
- userFillsByTime(args, signal) {
934
- const request = {
935
- type: "userFillsByTime",
936
- ...args,
937
- };
938
- return this.transport.request("info", request, signal);
939
- }
940
- /**
941
- * Request user funding.
942
- * @param args - The parameters for the request.
943
- * @param signal - An optional abort signal.
944
- * @returns Array of user's funding ledger update.
945
- *
946
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates
947
- * @example
948
- * ```ts
949
- * import * as hl from "@nktkas/hyperliquid";
950
- *
951
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
952
- * const infoClient = new hl.InfoClient({ transport });
953
- *
954
- * const data = await infoClient.userFunding({
955
- * user: "0x...",
956
- * startTime: Date.now() - 1000 * 60 * 60 * 24
957
- * });
958
- * ```
959
- */
960
- userFunding(args, signal) {
961
- const request = {
962
- type: "userFunding",
963
- ...args,
964
- };
965
- return this.transport.request("info", request, signal);
966
- }
967
- /**
968
- * Request user non-funding ledger updates.
969
- * @param args - The parameters for the request.
970
- * @param signal - An optional abort signal.
971
- * @returns Array of user's non-funding ledger update.
972
- *
973
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates
974
- * @example
975
- * ```ts
976
- * import * as hl from "@nktkas/hyperliquid";
977
- *
978
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
979
- * const infoClient = new hl.InfoClient({ transport });
980
- *
981
- * const data = await infoClient.userNonFundingLedgerUpdates({
982
- * user: "0x...",
983
- * startTime: Date.now() - 1000 * 60 * 60 * 24
984
- * });
985
- * ```
986
- */
987
- userNonFundingLedgerUpdates(args, signal) {
988
- const request = {
989
- type: "userNonFundingLedgerUpdates",
990
- ...args,
991
- };
992
- return this.transport.request("info", request, signal);
993
- }
994
- /**
995
- * Request user rate limits.
996
- * @param args - The parameters for the request.
997
- * @param signal - An optional abort signal.
998
- * @returns User's rate limits.
999
- *
1000
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-rate-limits
1001
- * @example
1002
- * ```ts
1003
- * import * as hl from "@nktkas/hyperliquid";
1004
- *
1005
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1006
- * const infoClient = new hl.InfoClient({ transport });
1007
- *
1008
- * const data = await infoClient.userRateLimit({ user: "0x..." });
1009
- * ```
1010
- */
1011
- userRateLimit(args, signal) {
1012
- const request = {
1013
- type: "userRateLimit",
1014
- ...args,
1015
- };
1016
- return this.transport.request("info", request, signal);
1017
- }
1018
- /**
1019
- * Request user role.
1020
- * @param args - The parameters for the request.
1021
- * @param signal - An optional abort signal.
1022
- * @returns User's role.
1023
- *
1024
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-role
1025
- * @example
1026
- * ```ts
1027
- * import * as hl from "@nktkas/hyperliquid";
1028
- *
1029
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1030
- * const infoClient = new hl.InfoClient({ transport });
1031
- *
1032
- * const data = await infoClient.userRole({ user: "0x..." });
1033
- * ```
1034
- */
1035
- userRole(args, signal) {
1036
- const request = {
1037
- type: "userRole",
1038
- ...args,
1039
- };
1040
- return this.transport.request("info", request, signal);
1041
- }
1042
- /**
1043
- * Request multi-sig signers for a user.
1044
- * @param args - The parameters for the request.
1045
- * @param signal - An optional abort signal.
1046
- * @returns Multi-sig signers for a user or null if the user does not have any multi-sig signers.
1047
- *
1048
- * @see null - no documentation
1049
- * @example
1050
- * ```ts
1051
- * import * as hl from "@nktkas/hyperliquid";
1052
- *
1053
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1054
- * const infoClient = new hl.InfoClient({ transport });
1055
- *
1056
- * const data = await infoClient.userToMultiSigSigners({ user: "0x..." });
1057
- * ```
1058
- */
1059
- userToMultiSigSigners(args, signal) {
1060
- const request = {
1061
- type: "userToMultiSigSigners",
1062
- ...args,
1063
- };
1064
- return this.transport.request("info", request, signal);
1065
- }
1066
- /**
1067
- * Request user twap slice fills.
1068
- * @param args - The parameters for the request.
1069
- * @param signal - An optional abort signal.
1070
- * @returns Array of user's twap slice fill.
1071
- *
1072
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-twap-slice-fills
1073
- * @example
1074
- * ```ts
1075
- * import * as hl from "@nktkas/hyperliquid";
1076
- *
1077
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1078
- * const infoClient = new hl.InfoClient({ transport });
1079
- *
1080
- * const data = await infoClient.userTwapSliceFills({ user: "0x..." });
1081
- * ```
1082
- */
1083
- userTwapSliceFills(args, signal) {
1084
- const request = {
1085
- type: "userTwapSliceFills",
1086
- ...args,
1087
- };
1088
- return this.transport.request("info", request, signal);
1089
- }
1090
- /**
1091
- * Request user twap slice fills by time.
1092
- * @param args - The parameters for the request.
1093
- * @param signal - An optional abort signal.
1094
- * @returns Array of user's twap slice fill.
1095
- *
1096
- * @see null - no documentation
1097
- * @example
1098
- * ```ts
1099
- * import * as hl from "@nktkas/hyperliquid";
1100
- *
1101
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1102
- * const infoClient = new hl.InfoClient({ transport });
1103
- *
1104
- * const data = await infoClient.userTwapSliceFillsByTime({
1105
- * user: "0x...",
1106
- * startTime: Date.now() - 1000 * 60 * 60 * 24
1107
- * });
1108
- * ```
1109
- */
1110
- userTwapSliceFillsByTime(args, signal) {
1111
- const request = {
1112
- type: "userTwapSliceFillsByTime",
1113
- ...args,
1114
- };
1115
- return this.transport.request("info", request, signal);
1116
- }
1117
- /**
1118
- * Request user vault deposits.
1119
- * @param args - The parameters for the request.
1120
- * @param signal - An optional abort signal.
1121
- * @returns Array of user's vault deposits.
1122
- *
1123
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-vault-deposits
1124
- * @example
1125
- * ```ts
1126
- * import * as hl from "@nktkas/hyperliquid";
1127
- *
1128
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1129
- * const infoClient = new hl.InfoClient({ transport });
1130
- *
1131
- * const data = await infoClient.userVaultDeposits({ user: "0x..." });
1132
- * ```
1133
- */
1134
- userVaultEquities(args, signal) {
1135
- const request = {
1136
- type: "userVaultEquities",
1137
- ...args,
1138
- };
1139
- return this.transport.request("info", request, signal);
1140
- }
1141
- /**
1142
- * Request validator summaries.
1143
- * @param args - The parameters for the request.
1144
- * @returns Array of validator summaries.
1145
- *
1146
- * @see null - no documentation
1147
- * @example
1148
- * ```ts
1149
- * import * as hl from "@nktkas/hyperliquid";
1150
- *
1151
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1152
- * const infoClient = new hl.InfoClient({ transport });
1153
- *
1154
- * const data = await infoClient.validatorSummaries();
1155
- * ```
1156
- */
1157
- validatorSummaries(signal) {
1158
- const request = {
1159
- type: "validatorSummaries",
1160
- };
1161
- return this.transport.request("info", request, signal);
1162
- }
1163
- /**
1164
- * Request details of a vault.
1165
- * @param args - The parameters for the request.
1166
- * @param signal - An optional abort signal.
1167
- * @returns Details of a vault or null if the vault does not exist.
1168
- *
1169
- * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-details-for-a-vault
1170
- * @example
1171
- * ```ts
1172
- * import * as hl from "@nktkas/hyperliquid";
1173
- *
1174
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1175
- * const infoClient = new hl.InfoClient({ transport });
1176
- *
1177
- * const data = await infoClient.vaultDetails({ vaultAddress: "0x..." });
1178
- * ```
1179
- */
1180
- vaultDetails(args, signal) {
1181
- const request = {
1182
- type: "vaultDetails",
1183
- ...args,
1184
- };
1185
- return this.transport.request("info", request, signal);
1186
- }
1187
- /**
1188
- * Request a list of vaults less than 2 hours old.
1189
- * @param args - The parameters for the request.
1190
- * @param signal - An optional abort signal.
1191
- * @returns Array of vault summaries.
1192
- *
1193
- * @see null - no documentation
1194
- * @example
1195
- * ```ts
1196
- * import * as hl from "@nktkas/hyperliquid";
1197
- *
1198
- * const transport = new hl.HttpTransport(); // or WebSocketTransport
1199
- * const infoClient = new hl.InfoClient({ transport });
1200
- *
1201
- * const data = await infoClient.vaultSummaries();
1202
- * ```
1203
- */
1204
- vaultSummaries(signal) {
1205
- const request = {
1206
- type: "vaultSummaries",
1207
- };
1208
- return this.transport.request("info", request, signal);
1209
- }
1210
- async [Symbol.asyncDispose]() {
1211
- await this.transport[Symbol.asyncDispose]?.();
1212
- }
449
+ legalCheck(args, signal) {
450
+ const request = {
451
+ type: "legalCheck",
452
+ ...args,
453
+ };
454
+ return this.transport.request("info", request, signal);
455
+ }
456
+ /**
457
+ * Request liquidatable (unknown).
458
+ * @param signal - An optional abort signal.
459
+ * @returns
460
+ *
461
+ * @throws {TransportError} When the transport layer throws an error.
462
+ *
463
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-summary
464
+ * @example
465
+ * ```ts
466
+ * import * as hl from "@nktkas/hyperliquid";
467
+ *
468
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
469
+ * const infoClient = new hl.InfoClient({ transport });
470
+ *
471
+ * const data = await infoClient.liquidatable();
472
+ * ```
473
+ */
474
+ liquidatable(signal) {
475
+ const request = {
476
+ type: "liquidatable",
477
+ };
478
+ return this.transport.request("info", request, signal);
479
+ }
480
+ /**
481
+ * Request margin table data.
482
+ * @param args - The parameters for the request.
483
+ * @param signal - An optional abort signal.
484
+ * @returns Margin requirements table with multiple tiers.
485
+ *
486
+ * @throws {TransportError} When the transport layer throws an error.
487
+ *
488
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-summary
489
+ * @example
490
+ * ```ts
491
+ * import * as hl from "@nktkas/hyperliquid";
492
+ *
493
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
494
+ * const infoClient = new hl.InfoClient({ transport });
495
+ *
496
+ * const data = await infoClient.marginTable({ id: 1 });
497
+ * ```
498
+ */
499
+ marginTable(args, signal) {
500
+ const request = {
501
+ type: "marginTable",
502
+ ...args,
503
+ };
504
+ return this.transport.request("info", request, signal);
505
+ }
506
+ /**
507
+ * Request builder fee approval.
508
+ * @param args - The parameters for the request.
509
+ * @param signal - An optional abort signal.
510
+ * @returns Maximum builder fee approval.
511
+ *
512
+ * @throws {TransportError} When the transport layer throws an error.
513
+ *
514
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#check-builder-fee-approval
515
+ * @example
516
+ * ```ts
517
+ * import * as hl from "@nktkas/hyperliquid";
518
+ *
519
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
520
+ * const infoClient = new hl.InfoClient({ transport });
521
+ *
522
+ * const data = await infoClient.maxBuilderFee({ user: "0x...", builder: "0x..." });
523
+ * ```
524
+ */
525
+ maxBuilderFee(args, signal) {
526
+ const request = {
527
+ type: "maxBuilderFee",
528
+ ...args,
529
+ };
530
+ return this.transport.request("info", request, signal);
531
+ }
532
+ /**
533
+ * Request maximum market order notionals.
534
+ * @param signal - An optional abort signal.
535
+ * @returns
536
+ *
537
+ * @throws {TransportError} When the transport layer throws an error.
538
+ *
539
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-summary
540
+ * @example
541
+ * ```ts
542
+ * import * as hl from "@nktkas/hyperliquid";
543
+ *
544
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
545
+ * const infoClient = new hl.InfoClient({ transport });
546
+ *
547
+ * const data = await infoClient.maxMarketOrderNtls();
548
+ * ```
549
+ */
550
+ maxMarketOrderNtls(signal) {
551
+ const request = {
552
+ type: "maxMarketOrderNtls",
553
+ };
554
+ return this.transport.request("info", request, signal);
555
+ }
556
+ meta(args_or_signal, maybeSignal) {
557
+ const args = args_or_signal instanceof AbortSignal ? {} : args_or_signal;
558
+ const signal = args_or_signal instanceof AbortSignal ? args_or_signal : maybeSignal;
559
+ const request = {
560
+ type: "meta",
561
+ ...args,
562
+ };
563
+ return this.transport.request("info", request, signal);
564
+ }
565
+ /**
566
+ * Request metadata and asset contexts.
567
+ * @param signal - An optional abort signal.
568
+ * @returns Metadata and context for perpetual assets.
569
+ *
570
+ * @throws {TransportError} When the transport layer throws an error.
571
+ *
572
+ * @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
573
+ * @example
574
+ * ```ts
575
+ * import * as hl from "@nktkas/hyperliquid";
576
+ *
577
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
578
+ * const infoClient = new hl.InfoClient({ transport });
579
+ *
580
+ * const data = await infoClient.metaAndAssetCtxs();
581
+ * ```
582
+ */
583
+ metaAndAssetCtxs(signal) {
584
+ const request = {
585
+ type: "metaAndAssetCtxs",
586
+ };
587
+ return this.transport.request("info", request, signal);
588
+ }
589
+ /**
590
+ * Request open orders.
591
+ * @param args - The parameters for the request.
592
+ * @param signal - An optional abort signal.
593
+ * @returns Array of open order.
594
+ *
595
+ * @throws {TransportError} When the transport layer throws an error.
596
+ *
597
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders
598
+ * @example
599
+ * ```ts
600
+ * import * as hl from "@nktkas/hyperliquid";
601
+ *
602
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
603
+ * const infoClient = new hl.InfoClient({ transport });
604
+ *
605
+ * const data = await infoClient.openOrders({ user: "0x..." });
606
+ * ```
607
+ */
608
+ openOrders(args, signal) {
609
+ const request = {
610
+ type: "openOrders",
611
+ ...args,
612
+ };
613
+ return this.transport.request("info", request, signal);
614
+ }
615
+ /**
616
+ * Request order status.
617
+ * @param args - The parameters for the request.
618
+ * @param signal - An optional abort signal.
619
+ * @returns Result of an order status lookup.
620
+ *
621
+ * @throws {TransportError} When the transport layer throws an error.
622
+ *
623
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-order-status-by-oid-or-cloid
624
+ * @example
625
+ * ```ts
626
+ * import * as hl from "@nktkas/hyperliquid";
627
+ *
628
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
629
+ * const infoClient = new hl.InfoClient({ transport });
630
+ *
631
+ * const data = await infoClient.orderStatus({ user: "0x...", oid: 12345 });
632
+ * ```
633
+ */
634
+ orderStatus(args, signal) {
635
+ const request = {
636
+ type: "orderStatus",
637
+ ...args,
638
+ };
639
+ return this.transport.request("info", request, signal);
640
+ }
641
+ /**
642
+ * Request for the status of the perpetual deploy auction.
643
+ * @param signal - An optional abort signal.
644
+ * @returns Status of the perpetual deploy auction.
645
+ *
646
+ * @throws {TransportError} When the transport layer throws an error.
647
+ *
648
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-information-about-the-perp-deploy-auction
649
+ * @example
650
+ * ```ts
651
+ * import * as hl from "@nktkas/hyperliquid";
652
+ *
653
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
654
+ * const infoClient = new hl.InfoClient({ transport });
655
+ *
656
+ * const data = await infoClient.perpDeployAuctionStatus();
657
+ * ```
658
+ */
659
+ perpDeployAuctionStatus(signal) {
660
+ const request = {
661
+ type: "perpDeployAuctionStatus",
662
+ };
663
+ return this.transport.request("info", request, signal);
664
+ }
665
+ /**
666
+ * Request all perpetual dexs.
667
+ * @param signal - An optional abort signal.
668
+ * @returns Array of perpetual dexes (null is main dex).
669
+ *
670
+ * @throws {TransportError} When the transport layer throws an error.
671
+ *
672
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-all-perpetual-dexs
673
+ * @example
674
+ * ```ts
675
+ * import * as hl from "@nktkas/hyperliquid";
676
+ *
677
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
678
+ * const infoClient = new hl.InfoClient({ transport });
679
+ *
680
+ * const data = await infoClient.perpDexs();
681
+ * ```
682
+ */
683
+ perpDexs(signal) {
684
+ const request = {
685
+ type: "perpDexs",
686
+ };
687
+ return this.transport.request("info", request, signal);
688
+ }
689
+ /**
690
+ * Request perpetuals at open interest cap.
691
+ * @param signal - An optional abort signal.
692
+ * @returns Array of perpetuals at open interest caps.
693
+ *
694
+ * @throws {TransportError} When the transport layer throws an error.
695
+ *
696
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#query-perps-at-open-interest-caps
697
+ * @example
698
+ * ```ts
699
+ * import * as hl from "@nktkas/hyperliquid";
700
+ *
701
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
702
+ * const infoClient = new hl.InfoClient({ transport });
703
+ *
704
+ * const data = await infoClient.perpsAtOpenInterestCap();
705
+ * ```
706
+ */
707
+ perpsAtOpenInterestCap(signal) {
708
+ const request = {
709
+ type: "perpsAtOpenInterestCap",
710
+ };
711
+ return this.transport.request("info", request, signal);
712
+ }
713
+ /**
714
+ * Request user portfolio.
715
+ * @param args - The parameters for the request.
716
+ * @param signal - An optional abort signal.
717
+ * @returns Portfolio metrics grouped by time periods.
718
+ *
719
+ * @throws {TransportError} When the transport layer throws an error.
720
+ *
721
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-portfolio
722
+ * @example
723
+ * ```ts
724
+ * import * as hl from "@nktkas/hyperliquid";
725
+ *
726
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
727
+ * const infoClient = new hl.InfoClient({ transport });
728
+ *
729
+ * const data = await infoClient.portfolio({ user: "0x..." });
730
+ * ```
731
+ */
732
+ portfolio(args, signal) {
733
+ const request = {
734
+ type: "portfolio",
735
+ ...args,
736
+ };
737
+ return this.transport.request("info", request, signal);
738
+ }
739
+ /**
740
+ * Request predicted funding rates.
741
+ * @param signal - An optional abort signal.
742
+ * @returns Array of predicted funding rates.
743
+ *
744
+ * @throws {TransportError} When the transport layer throws an error.
745
+ *
746
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-predicted-funding-rates-for-different-venues
747
+ * @example
748
+ * ```ts
749
+ * import * as hl from "@nktkas/hyperliquid";
750
+ *
751
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
752
+ * const infoClient = new hl.InfoClient({ transport });
753
+ *
754
+ * const data = await infoClient.predictedFundings();
755
+ * ```
756
+ */
757
+ predictedFundings(signal) {
758
+ const request = {
759
+ type: "predictedFundings",
760
+ };
761
+ return this.transport.request("info", request, signal);
762
+ }
763
+ /**
764
+ * Request user's existence check before transfer.
765
+ * @param args - The parameters for the request.
766
+ * @param signal - An optional abort signal.
767
+ * @returns Pre-transfer user existence check result.
768
+ *
769
+ * @throws {TransportError} When the transport layer throws an error.
770
+ *
771
+ * @see null
772
+ * @example
773
+ * ```ts
774
+ * import * as hl from "@nktkas/hyperliquid";
775
+ *
776
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
777
+ * const infoClient = new hl.InfoClient({ transport });
778
+ *
779
+ * const data = await infoClient.preTransferCheck({ user: "0x...", source: "0x..." });
780
+ * ```
781
+ */
782
+ preTransferCheck(args, signal) {
783
+ const request = {
784
+ type: "preTransferCheck",
785
+ ...args,
786
+ };
787
+ return this.transport.request("info", request, signal);
788
+ }
789
+ /**
790
+ * Request user referral.
791
+ * @param args - The parameters for the request.
792
+ * @param signal - An optional abort signal.
793
+ * @returns Referral information for a user.
794
+ *
795
+ * @throws {TransportError} When the transport layer throws an error.
796
+ *
797
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-referral-information
798
+ * @example
799
+ * ```ts
800
+ * import * as hl from "@nktkas/hyperliquid";
801
+ *
802
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
803
+ * const infoClient = new hl.InfoClient({ transport });
804
+ *
805
+ * const data = await infoClient.referral({ user: "0x..." });
806
+ * ```
807
+ */
808
+ referral(args, signal) {
809
+ const request = {
810
+ type: "referral",
811
+ ...args,
812
+ };
813
+ return this.transport.request("info", request, signal);
814
+ }
815
+ /**
816
+ * Request spot clearinghouse state.
817
+ * @param args - The parameters for the request.
818
+ * @param signal - An optional abort signal.
819
+ * @returns Account summary for spot trading.
820
+ *
821
+ * @throws {TransportError} When the transport layer throws an error.
822
+ *
823
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-a-users-token-balances
824
+ * @example
825
+ * ```ts
826
+ * import * as hl from "@nktkas/hyperliquid";
827
+ *
828
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
829
+ * const infoClient = new hl.InfoClient({ transport });
830
+ *
831
+ * const data = await infoClient.spotClearinghouseState({ user: "0x..." });
832
+ * ```
833
+ */
834
+ spotClearinghouseState(args, signal) {
835
+ const request = {
836
+ type: "spotClearinghouseState",
837
+ ...args,
838
+ };
839
+ return this.transport.request("info", request, signal);
840
+ }
841
+ /**
842
+ * Request spot deploy state.
843
+ * @param args - The parameters for the request.
844
+ * @param signal - An optional abort signal.
845
+ * @returns Deploy state for spot tokens.
846
+ *
847
+ * @throws {TransportError} When the transport layer throws an error.
848
+ *
849
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-the-spot-deploy-auction
850
+ * @example
851
+ * ```ts
852
+ * import * as hl from "@nktkas/hyperliquid";
853
+ *
854
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
855
+ * const infoClient = new hl.InfoClient({ transport });
856
+ *
857
+ * const data = await infoClient.spotDeployState({ user: "0x..." });
858
+ * ```
859
+ */
860
+ spotDeployState(args, signal) {
861
+ const request = {
862
+ type: "spotDeployState",
863
+ ...args,
864
+ };
865
+ return this.transport.request("info", request, signal);
866
+ }
867
+ /**
868
+ * Request spot trading metadata.
869
+ * @param signal - An optional abort signal.
870
+ * @returns Metadata for spot assets.
871
+ *
872
+ * @throws {TransportError} When the transport layer throws an error.
873
+ *
874
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-metadata
875
+ * @example
876
+ * ```ts
877
+ * import * as hl from "@nktkas/hyperliquid";
878
+ *
879
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
880
+ * const infoClient = new hl.InfoClient({ transport });
881
+ *
882
+ * const data = await infoClient.spotMeta();
883
+ * ```
884
+ */
885
+ spotMeta(signal) {
886
+ const request = {
887
+ type: "spotMeta",
888
+ };
889
+ return this.transport.request("info", request, signal);
890
+ }
891
+ /**
892
+ * Request spot metadata and asset contexts.
893
+ * @param signal - An optional abort signal.
894
+ * @returns Metadata and context for spot assets.
895
+ *
896
+ * @throws {TransportError} When the transport layer throws an error.
897
+ *
898
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-asset-contexts
899
+ * @example
900
+ * ```ts
901
+ * import * as hl from "@nktkas/hyperliquid";
902
+ *
903
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
904
+ * const infoClient = new hl.InfoClient({ transport });
905
+ *
906
+ * const data = await infoClient.spotMetaAndAssetCtxs();
907
+ * ```
908
+ */
909
+ spotMetaAndAssetCtxs(signal) {
910
+ const request = {
911
+ type: "spotMetaAndAssetCtxs",
912
+ };
913
+ return this.transport.request("info", request, signal);
914
+ }
915
+ /**
916
+ * Request user sub-accounts.
917
+ * @param args - The parameters for the request.
918
+ * @param signal - An optional abort signal.
919
+ * @returns Array of user sub-account or null if the user does not have any sub-accounts.
920
+ *
921
+ * @throws {TransportError} When the transport layer throws an error.
922
+ *
923
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-subaccounts
924
+ * @example
925
+ * ```ts
926
+ * import * as hl from "@nktkas/hyperliquid";
927
+ *
928
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
929
+ * const infoClient = new hl.InfoClient({ transport });
930
+ *
931
+ * const data = await infoClient.subAccounts({ user: "0x..." });
932
+ * ```
933
+ */
934
+ subAccounts(args, signal) {
935
+ const request = {
936
+ type: "subAccounts",
937
+ ...args,
938
+ };
939
+ return this.transport.request("info", request, signal);
940
+ }
941
+ /**
942
+ * Request token details.
943
+ * @param args - The parameters for the request.
944
+ * @param signal - An optional abort signal.
945
+ * @returns Details of a token.
946
+ *
947
+ * @throws {TransportError} When the transport layer throws an error.
948
+ *
949
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-a-token
950
+ * @example
951
+ * ```ts
952
+ * import * as hl from "@nktkas/hyperliquid";
953
+ *
954
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
955
+ * const infoClient = new hl.InfoClient({ transport });
956
+ *
957
+ * const data = await infoClient.tokenDetails({ tokenId: "0x..." });
958
+ * ```
959
+ */
960
+ tokenDetails(args, signal) {
961
+ const request = {
962
+ type: "tokenDetails",
963
+ ...args,
964
+ };
965
+ return this.transport.request("info", request, signal);
966
+ }
967
+ /**
968
+ * Request twap history of a user.
969
+ * @param args - The parameters for the request.
970
+ * @param signal - An optional abort signal.
971
+ * @returns Array of user's TWAP history.
972
+ *
973
+ * @throws {TransportError} When the transport layer throws an error.
974
+ *
975
+ * @see null
976
+ * @example
977
+ * ```ts
978
+ * import * as hl from "@nktkas/hyperliquid";
979
+ *
980
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
981
+ * const infoClient = new hl.InfoClient({ transport });
982
+ *
983
+ * const data = await infoClient.twapHistory({ user: "0x..." });
984
+ * ```
985
+ */
986
+ twapHistory(args, signal) {
987
+ const request = {
988
+ type: "twapHistory",
989
+ ...args,
990
+ };
991
+ return this.transport.request("info", request, signal);
992
+ }
993
+ /**
994
+ * Request transaction details by transaction hash.
995
+ * @param args - The parameters for the request.
996
+ * @param signal - An optional abort signal.
997
+ * @returns Transaction details.
998
+ *
999
+ * @throws {TransportError} When the transport layer throws an error.
1000
+ *
1001
+ * @see null
1002
+ * @example
1003
+ * ```ts
1004
+ * import * as hl from "@nktkas/hyperliquid";
1005
+ *
1006
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1007
+ * const infoClient = new hl.InfoClient({ transport });
1008
+ *
1009
+ * const data = await infoClient.txDetails({ hash: "0x..." });
1010
+ * ```
1011
+ */
1012
+ async txDetails(args, signal) {
1013
+ const request = {
1014
+ type: "txDetails",
1015
+ ...args,
1016
+ };
1017
+ const { tx } = await this.transport.request("explorer", request, signal);
1018
+ return tx;
1019
+ }
1020
+ /**
1021
+ * Request user details by user's address.
1022
+ * @param args - The parameters for the request.
1023
+ * @param signal - An optional abort signal.
1024
+ * @returns User details.
1025
+ *
1026
+ * @throws {TransportError} When the transport layer throws an error.
1027
+ *
1028
+ * @see null
1029
+ * @example
1030
+ * ```ts
1031
+ * import * as hl from "@nktkas/hyperliquid";
1032
+ *
1033
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1034
+ * const infoClient = new hl.InfoClient({ transport });
1035
+ *
1036
+ * const data = await infoClient.userDetails({ user: "0x..." });
1037
+ * ```
1038
+ */
1039
+ async userDetails(args, signal) {
1040
+ const request = {
1041
+ type: "userDetails",
1042
+ ...args,
1043
+ };
1044
+ const { txs } = await this.transport.request("explorer", request, signal);
1045
+ return txs;
1046
+ }
1047
+ /**
1048
+ * Request user fees.
1049
+ * @param args - The parameters for the request.
1050
+ * @param signal - An optional abort signal.
1051
+ * @returns User fees.
1052
+ *
1053
+ * @throws {TransportError} When the transport layer throws an error.
1054
+ *
1055
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-fees
1056
+ * @example
1057
+ * ```ts
1058
+ * import * as hl from "@nktkas/hyperliquid";
1059
+ *
1060
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1061
+ * const infoClient = new hl.InfoClient({ transport });
1062
+ *
1063
+ * const data = await infoClient.userFees({ user: "0x..." });
1064
+ * ```
1065
+ */
1066
+ userFees(args, signal) {
1067
+ const request = {
1068
+ type: "userFees",
1069
+ ...args,
1070
+ };
1071
+ return this.transport.request("info", request, signal);
1072
+ }
1073
+ /**
1074
+ * Request user fills.
1075
+ * @param args - The parameters for the request.
1076
+ * @param signal - An optional abort signal.
1077
+ * @returns Array of user's trade fill.
1078
+ *
1079
+ * @throws {TransportError} When the transport layer throws an error.
1080
+ *
1081
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills
1082
+ * @example
1083
+ * ```ts
1084
+ * import * as hl from "@nktkas/hyperliquid";
1085
+ *
1086
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1087
+ * const infoClient = new hl.InfoClient({ transport });
1088
+ *
1089
+ * const data = await infoClient.userFills({ user: "0x..." });
1090
+ * ```
1091
+ */
1092
+ userFills(args, signal) {
1093
+ const request = {
1094
+ type: "userFills",
1095
+ ...args,
1096
+ };
1097
+ return this.transport.request("info", request, signal);
1098
+ }
1099
+ /**
1100
+ * Request user fills by time.
1101
+ * @param args - The parameters for the request.
1102
+ * @param signal - An optional abort signal.
1103
+ * @returns Array of user's trade fill.
1104
+ *
1105
+ * @throws {TransportError} When the transport layer throws an error.
1106
+ *
1107
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills-by-time
1108
+ * @example
1109
+ * ```ts
1110
+ * import * as hl from "@nktkas/hyperliquid";
1111
+ *
1112
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1113
+ * const infoClient = new hl.InfoClient({ transport });
1114
+ *
1115
+ * const data = await infoClient.userFillsByTime({
1116
+ * user: "0x...",
1117
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
1118
+ * });
1119
+ * ```
1120
+ */
1121
+ userFillsByTime(args, signal) {
1122
+ const request = {
1123
+ type: "userFillsByTime",
1124
+ ...args,
1125
+ };
1126
+ return this.transport.request("info", request, signal);
1127
+ }
1128
+ /**
1129
+ * Request user funding.
1130
+ * @param args - The parameters for the request.
1131
+ * @param signal - An optional abort signal.
1132
+ * @returns Array of user's funding ledger update.
1133
+ *
1134
+ * @throws {TransportError} When the transport layer throws an error.
1135
+ *
1136
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates
1137
+ * @example
1138
+ * ```ts
1139
+ * import * as hl from "@nktkas/hyperliquid";
1140
+ *
1141
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1142
+ * const infoClient = new hl.InfoClient({ transport });
1143
+ *
1144
+ * const data = await infoClient.userFunding({
1145
+ * user: "0x...",
1146
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
1147
+ * });
1148
+ * ```
1149
+ */
1150
+ userFunding(args, signal) {
1151
+ const request = {
1152
+ type: "userFunding",
1153
+ ...args,
1154
+ };
1155
+ return this.transport.request("info", request, signal);
1156
+ }
1157
+ /**
1158
+ * Request user non-funding ledger updates.
1159
+ * @param args - The parameters for the request.
1160
+ * @param signal - An optional abort signal.
1161
+ * @returns Array of user's non-funding ledger update.
1162
+ *
1163
+ * @throws {TransportError} When the transport layer throws an error.
1164
+ *
1165
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates
1166
+ * @example
1167
+ * ```ts
1168
+ * import * as hl from "@nktkas/hyperliquid";
1169
+ *
1170
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1171
+ * const infoClient = new hl.InfoClient({ transport });
1172
+ *
1173
+ * const data = await infoClient.userNonFundingLedgerUpdates({
1174
+ * user: "0x...",
1175
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
1176
+ * });
1177
+ * ```
1178
+ */
1179
+ userNonFundingLedgerUpdates(args, signal) {
1180
+ const request = {
1181
+ type: "userNonFundingLedgerUpdates",
1182
+ ...args,
1183
+ };
1184
+ return this.transport.request("info", request, signal);
1185
+ }
1186
+ /**
1187
+ * Request user rate limits.
1188
+ * @param args - The parameters for the request.
1189
+ * @param signal - An optional abort signal.
1190
+ * @returns User's rate limits.
1191
+ *
1192
+ * @throws {TransportError} When the transport layer throws an error.
1193
+ *
1194
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-rate-limits
1195
+ * @example
1196
+ * ```ts
1197
+ * import * as hl from "@nktkas/hyperliquid";
1198
+ *
1199
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1200
+ * const infoClient = new hl.InfoClient({ transport });
1201
+ *
1202
+ * const data = await infoClient.userRateLimit({ user: "0x..." });
1203
+ * ```
1204
+ */
1205
+ userRateLimit(args, signal) {
1206
+ const request = {
1207
+ type: "userRateLimit",
1208
+ ...args,
1209
+ };
1210
+ return this.transport.request("info", request, signal);
1211
+ }
1212
+ /**
1213
+ * Request user role.
1214
+ * @param args - The parameters for the request.
1215
+ * @param signal - An optional abort signal.
1216
+ * @returns User's role.
1217
+ *
1218
+ * @throws {TransportError} When the transport layer throws an error.
1219
+ *
1220
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-role
1221
+ * @example
1222
+ * ```ts
1223
+ * import * as hl from "@nktkas/hyperliquid";
1224
+ *
1225
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1226
+ * const infoClient = new hl.InfoClient({ transport });
1227
+ *
1228
+ * const data = await infoClient.userRole({ user: "0x..." });
1229
+ * ```
1230
+ */
1231
+ userRole(args, signal) {
1232
+ const request = {
1233
+ type: "userRole",
1234
+ ...args,
1235
+ };
1236
+ return this.transport.request("info", request, signal);
1237
+ }
1238
+ /**
1239
+ * Request multi-sig signers for a user.
1240
+ * @param args - The parameters for the request.
1241
+ * @param signal - An optional abort signal.
1242
+ * @returns Multi-sig signers for a user or null if the user does not have any multi-sig signers.
1243
+ *
1244
+ * @throws {TransportError} When the transport layer throws an error.
1245
+ *
1246
+ * @see null
1247
+ * @example
1248
+ * ```ts
1249
+ * import * as hl from "@nktkas/hyperliquid";
1250
+ *
1251
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1252
+ * const infoClient = new hl.InfoClient({ transport });
1253
+ *
1254
+ * const data = await infoClient.userToMultiSigSigners({ user: "0x..." });
1255
+ * ```
1256
+ */
1257
+ userToMultiSigSigners(args, signal) {
1258
+ const request = {
1259
+ type: "userToMultiSigSigners",
1260
+ ...args,
1261
+ };
1262
+ return this.transport.request("info", request, signal);
1263
+ }
1264
+ /**
1265
+ * Request user twap slice fills.
1266
+ * @param args - The parameters for the request.
1267
+ * @param signal - An optional abort signal.
1268
+ * @returns Array of user's twap slice fill.
1269
+ *
1270
+ * @throws {TransportError} When the transport layer throws an error.
1271
+ *
1272
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-twap-slice-fills
1273
+ * @example
1274
+ * ```ts
1275
+ * import * as hl from "@nktkas/hyperliquid";
1276
+ *
1277
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1278
+ * const infoClient = new hl.InfoClient({ transport });
1279
+ *
1280
+ * const data = await infoClient.userTwapSliceFills({ user: "0x..." });
1281
+ * ```
1282
+ */
1283
+ userTwapSliceFills(args, signal) {
1284
+ const request = {
1285
+ type: "userTwapSliceFills",
1286
+ ...args,
1287
+ };
1288
+ return this.transport.request("info", request, signal);
1289
+ }
1290
+ /**
1291
+ * Request user twap slice fills by time.
1292
+ * @param args - The parameters for the request.
1293
+ * @param signal - An optional abort signal.
1294
+ * @returns Array of user's twap slice fill.
1295
+ *
1296
+ * @throws {TransportError} When the transport layer throws an error.
1297
+ *
1298
+ * @see null
1299
+ * @example
1300
+ * ```ts
1301
+ * import * as hl from "@nktkas/hyperliquid";
1302
+ *
1303
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1304
+ * const infoClient = new hl.InfoClient({ transport });
1305
+ *
1306
+ * const data = await infoClient.userTwapSliceFillsByTime({
1307
+ * user: "0x...",
1308
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
1309
+ * });
1310
+ * ```
1311
+ */
1312
+ userTwapSliceFillsByTime(args, signal) {
1313
+ const request = {
1314
+ type: "userTwapSliceFillsByTime",
1315
+ ...args,
1316
+ };
1317
+ return this.transport.request("info", request, signal);
1318
+ }
1319
+ /**
1320
+ * Request user vault deposits.
1321
+ * @param args - The parameters for the request.
1322
+ * @param signal - An optional abort signal.
1323
+ * @returns Array of user's vault deposits.
1324
+ *
1325
+ * @throws {TransportError} When the transport layer throws an error.
1326
+ *
1327
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-vault-deposits
1328
+ * @example
1329
+ * ```ts
1330
+ * import * as hl from "@nktkas/hyperliquid";
1331
+ *
1332
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1333
+ * const infoClient = new hl.InfoClient({ transport });
1334
+ *
1335
+ * const data = await infoClient.userVaultEquities({ user: "0x..." });
1336
+ * ```
1337
+ */
1338
+ userVaultEquities(args, signal) {
1339
+ const request = {
1340
+ type: "userVaultEquities",
1341
+ ...args,
1342
+ };
1343
+ return this.transport.request("info", request, signal);
1344
+ }
1345
+ /**
1346
+ * Request validator L1 votes.
1347
+ * @param signal - An optional abort signal.
1348
+ * @returns
1349
+ *
1350
+ * @throws {TransportError} When the transport layer throws an error.
1351
+ *
1352
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-a-users-staking-summary
1353
+ * @example
1354
+ * ```ts
1355
+ * import * as hl from "@nktkas/hyperliquid";
1356
+ *
1357
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1358
+ * const infoClient = new hl.InfoClient({ transport });
1359
+ *
1360
+ * const data = await infoClient.validatorL1Votes();
1361
+ * ```
1362
+ */
1363
+ validatorL1Votes(signal) {
1364
+ const request = {
1365
+ type: "validatorL1Votes",
1366
+ };
1367
+ return this.transport.request("info", request, signal);
1368
+ }
1369
+ /**
1370
+ * Request validator summaries.
1371
+ * @param signal - An optional abort signal.
1372
+ * @returns Array of validator summaries.
1373
+ *
1374
+ * @throws {TransportError} When the transport layer throws an error.
1375
+ *
1376
+ * @see null
1377
+ * @example
1378
+ * ```ts
1379
+ * import * as hl from "@nktkas/hyperliquid";
1380
+ *
1381
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1382
+ * const infoClient = new hl.InfoClient({ transport });
1383
+ *
1384
+ * const data = await infoClient.validatorSummaries();
1385
+ * ```
1386
+ */
1387
+ validatorSummaries(signal) {
1388
+ const request = {
1389
+ type: "validatorSummaries",
1390
+ };
1391
+ return this.transport.request("info", request, signal);
1392
+ }
1393
+ /**
1394
+ * Request details of a vault.
1395
+ * @param args - The parameters for the request.
1396
+ * @param signal - An optional abort signal.
1397
+ * @returns Details of a vault or null if the vault does not exist.
1398
+ *
1399
+ * @throws {TransportError} When the transport layer throws an error.
1400
+ *
1401
+ * @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-details-for-a-vault
1402
+ * @example
1403
+ * ```ts
1404
+ * import * as hl from "@nktkas/hyperliquid";
1405
+ *
1406
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1407
+ * const infoClient = new hl.InfoClient({ transport });
1408
+ *
1409
+ * const data = await infoClient.vaultDetails({ vaultAddress: "0x..." });
1410
+ * ```
1411
+ */
1412
+ vaultDetails(args, signal) {
1413
+ const request = {
1414
+ type: "vaultDetails",
1415
+ ...args,
1416
+ };
1417
+ return this.transport.request("info", request, signal);
1418
+ }
1419
+ /**
1420
+ * Request a list of vaults less than 2 hours old.
1421
+ * @param signal - An optional abort signal.
1422
+ * @returns Array of vault summaries.
1423
+ *
1424
+ * @throws {TransportError} When the transport layer throws an error.
1425
+ *
1426
+ * @see null
1427
+ * @example
1428
+ * ```ts
1429
+ * import * as hl from "@nktkas/hyperliquid";
1430
+ *
1431
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
1432
+ * const infoClient = new hl.InfoClient({ transport });
1433
+ *
1434
+ * const data = await infoClient.vaultSummaries();
1435
+ * ```
1436
+ */
1437
+ vaultSummaries(signal) {
1438
+ const request = {
1439
+ type: "vaultSummaries",
1440
+ };
1441
+ return this.transport.request("info", request, signal);
1442
+ }
1443
+ async [Symbol.asyncDispose]() {
1444
+ await this.transport[Symbol.asyncDispose]?.();
1213
1445
  }
1214
- exports.InfoClient = InfoClient;
1215
- });
1446
+ }
1447
+ exports.InfoClient = InfoClient;