@nktkas/hyperliquid 0.22.2 → 0.23.0

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