@nktkas/hyperliquid 0.13.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 (145) hide show
  1. package/CONTRIBUTING.md +59 -0
  2. package/LICENSE +21 -0
  3. package/README.md +363 -0
  4. package/SECURITY.md +7 -0
  5. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts +2 -0
  6. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts.map +1 -0
  7. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +1 -0
  8. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts +95 -0
  9. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts.map +1 -0
  10. package/esm/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +10 -0
  11. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.d.ts +23 -0
  12. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.d.ts.map +1 -0
  13. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.js +43 -0
  14. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.d.ts +55 -0
  15. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.d.ts.map +1 -0
  16. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.js +65 -0
  17. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.d.ts +2 -0
  18. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.d.ts.map +1 -0
  19. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.js +1 -0
  20. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.d.ts +52 -0
  21. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.d.ts.map +1 -0
  22. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.js +283 -0
  23. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/utils.d.ts +120 -0
  24. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/utils.d.ts.map +1 -0
  25. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/utils.js +211 -0
  26. package/esm/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts +19 -0
  27. package/esm/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts.map +1 -0
  28. package/esm/deps/jsr.io/@std/bytes/1.0.4/concat.js +32 -0
  29. package/esm/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.d.ts +2 -0
  30. package/esm/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.d.ts.map +1 -0
  31. package/esm/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.js +26 -0
  32. package/esm/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts +37 -0
  33. package/esm/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts.map +1 -0
  34. package/esm/deps/jsr.io/@std/encoding/1.0.6/hex.js +109 -0
  35. package/esm/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts +37 -0
  36. package/esm/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts.map +1 -0
  37. package/esm/deps/jsr.io/@std/msgpack/1.0.2/encode.js +237 -0
  38. package/esm/mod.d.ts +24 -0
  39. package/esm/mod.d.ts.map +1 -0
  40. package/esm/mod.js +9 -0
  41. package/esm/package.json +3 -0
  42. package/esm/src/clients/event.d.ts +374 -0
  43. package/esm/src/clients/event.d.ts.map +1 -0
  44. package/esm/src/clients/event.js +490 -0
  45. package/esm/src/clients/public.d.ts +695 -0
  46. package/esm/src/clients/public.d.ts.map +1 -0
  47. package/esm/src/clients/public.js +704 -0
  48. package/esm/src/clients/wallet.d.ts +682 -0
  49. package/esm/src/clients/wallet.d.ts.map +1 -0
  50. package/esm/src/clients/wallet.js +984 -0
  51. package/esm/src/transports/base.d.ts +55 -0
  52. package/esm/src/transports/base.d.ts.map +1 -0
  53. package/esm/src/transports/base.js +14 -0
  54. package/esm/src/transports/http/http_transport.d.ts +78 -0
  55. package/esm/src/transports/http/http_transport.d.ts.map +1 -0
  56. package/esm/src/transports/http/http_transport.js +170 -0
  57. package/esm/src/transports/websocket/hyperliquid_event_target.d.ts +66 -0
  58. package/esm/src/transports/websocket/hyperliquid_event_target.d.ts.map +1 -0
  59. package/esm/src/transports/websocket/hyperliquid_event_target.js +33 -0
  60. package/esm/src/transports/websocket/reconnecting_websocket.d.ts +160 -0
  61. package/esm/src/transports/websocket/reconnecting_websocket.d.ts.map +1 -0
  62. package/esm/src/transports/websocket/reconnecting_websocket.js +370 -0
  63. package/esm/src/transports/websocket/websocket_request_dispatcher.d.ts +63 -0
  64. package/esm/src/transports/websocket/websocket_request_dispatcher.d.ts.map +1 -0
  65. package/esm/src/transports/websocket/websocket_request_dispatcher.js +201 -0
  66. package/esm/src/transports/websocket/websocket_transport.d.ts +117 -0
  67. package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -0
  68. package/esm/src/transports/websocket/websocket_transport.js +233 -0
  69. package/esm/src/utils/key_sort.d.ts +21 -0
  70. package/esm/src/utils/key_sort.d.ts.map +1 -0
  71. package/esm/src/utils/key_sort.js +124 -0
  72. package/esm/src/utils/signing.d.ts +109 -0
  73. package/esm/src/utils/signing.d.ts.map +1 -0
  74. package/esm/src/utils/signing.js +164 -0
  75. package/package.json +34 -0
  76. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts +2 -0
  77. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.d.ts.map +1 -0
  78. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/mod.js +17 -0
  79. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts +95 -0
  80. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.d.ts.map +1 -0
  81. package/script/deps/jsr.io/@derzade/typescript-event-target/1.1.1/src/TypedEventTarget.js +14 -0
  82. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.d.ts +23 -0
  83. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.d.ts.map +1 -0
  84. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.js +49 -0
  85. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.d.ts +55 -0
  86. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.d.ts.map +1 -0
  87. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.js +88 -0
  88. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.d.ts +2 -0
  89. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.d.ts.map +1 -0
  90. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.js +4 -0
  91. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.d.ts +52 -0
  92. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.d.ts.map +1 -0
  93. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.js +288 -0
  94. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/utils.d.ts +120 -0
  95. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/utils.d.ts.map +1 -0
  96. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/utils.js +235 -0
  97. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts +19 -0
  98. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.d.ts.map +1 -0
  99. package/script/deps/jsr.io/@std/bytes/1.0.4/concat.js +35 -0
  100. package/script/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.d.ts +2 -0
  101. package/script/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.d.ts.map +1 -0
  102. package/script/deps/jsr.io/@std/encoding/1.0.6/_validate_binary_like.js +29 -0
  103. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts +37 -0
  104. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.d.ts.map +1 -0
  105. package/script/deps/jsr.io/@std/encoding/1.0.6/hex.js +113 -0
  106. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts +37 -0
  107. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.d.ts.map +1 -0
  108. package/script/deps/jsr.io/@std/msgpack/1.0.2/encode.js +240 -0
  109. package/script/mod.d.ts +24 -0
  110. package/script/mod.d.ts.map +1 -0
  111. package/script/mod.js +27 -0
  112. package/script/package.json +3 -0
  113. package/script/src/clients/event.d.ts +374 -0
  114. package/script/src/clients/event.d.ts.map +1 -0
  115. package/script/src/clients/event.js +494 -0
  116. package/script/src/clients/public.d.ts +695 -0
  117. package/script/src/clients/public.d.ts.map +1 -0
  118. package/script/src/clients/public.js +708 -0
  119. package/script/src/clients/wallet.d.ts +682 -0
  120. package/script/src/clients/wallet.d.ts.map +1 -0
  121. package/script/src/clients/wallet.js +989 -0
  122. package/script/src/transports/base.d.ts +55 -0
  123. package/script/src/transports/base.d.ts.map +1 -0
  124. package/script/src/transports/base.js +18 -0
  125. package/script/src/transports/http/http_transport.d.ts +78 -0
  126. package/script/src/transports/http/http_transport.d.ts.map +1 -0
  127. package/script/src/transports/http/http_transport.js +175 -0
  128. package/script/src/transports/websocket/hyperliquid_event_target.d.ts +66 -0
  129. package/script/src/transports/websocket/hyperliquid_event_target.d.ts.map +1 -0
  130. package/script/src/transports/websocket/hyperliquid_event_target.js +37 -0
  131. package/script/src/transports/websocket/reconnecting_websocket.d.ts +160 -0
  132. package/script/src/transports/websocket/reconnecting_websocket.d.ts.map +1 -0
  133. package/script/src/transports/websocket/reconnecting_websocket.js +374 -0
  134. package/script/src/transports/websocket/websocket_request_dispatcher.d.ts +63 -0
  135. package/script/src/transports/websocket/websocket_request_dispatcher.d.ts.map +1 -0
  136. package/script/src/transports/websocket/websocket_request_dispatcher.js +206 -0
  137. package/script/src/transports/websocket/websocket_transport.d.ts +117 -0
  138. package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -0
  139. package/script/src/transports/websocket/websocket_transport.js +237 -0
  140. package/script/src/utils/key_sort.d.ts +21 -0
  141. package/script/src/utils/key_sort.d.ts.map +1 -0
  142. package/script/src/utils/key_sort.js +127 -0
  143. package/script/src/utils/signing.d.ts +109 -0
  144. package/script/src/utils/signing.d.ts.map +1 -0
  145. package/script/src/utils/signing.js +172 -0
@@ -0,0 +1,708 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicClient = void 0;
4
+ /**
5
+ * Public client for interacting with the Hyperliquid API.
6
+ * @typeParam T - The type of transport used to connect to the Hyperliquid API.
7
+ */
8
+ class PublicClient {
9
+ /**
10
+ * Initialises a new instance.
11
+ * @param args - The arguments for initialisation.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * import * as hl from "@nktkas/hyperliquid";
16
+ *
17
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
18
+ * const client = new hl.PublicClient({ transport });
19
+ * ```
20
+ */
21
+ constructor(args) {
22
+ /** The transport used to connect to the Hyperliquid API. */
23
+ Object.defineProperty(this, "transport", {
24
+ enumerable: true,
25
+ configurable: true,
26
+ writable: true,
27
+ value: void 0
28
+ });
29
+ this.transport = args.transport;
30
+ }
31
+ // ———————————————Info API———————————————
32
+ /**
33
+ * Request mid coin prices.
34
+ * @param signal - An optional abort signal.
35
+ * @returns Mid coin prices.
36
+ *
37
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-mids-for-all-coins | Hyperliquid GitBook}
38
+ * @example
39
+ * ```ts
40
+ * import * as hl from "@nktkas/hyperliquid";
41
+ *
42
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
43
+ * const client = new hl.PublicClient({ transport });
44
+ *
45
+ * const allMids = await client.allMids();
46
+ * ```
47
+ */
48
+ allMids(signal) {
49
+ return this.transport.request("info", { type: "allMids" }, signal);
50
+ }
51
+ /**
52
+ * Request candlestick snapshots.
53
+ * @param args - The parameters for the request.
54
+ * @param signal - An optional abort signal.
55
+ * @returns Array of candlestick data points.
56
+ *
57
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#candle-snapshot | Hyperliquid GitBook}
58
+ * @example
59
+ * ```ts
60
+ * import * as hl from "@nktkas/hyperliquid";
61
+ *
62
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
63
+ * const client = new hl.PublicClient({ transport });
64
+ *
65
+ * const candles = await client.candleSnapshot({
66
+ * coin: "ETH",
67
+ * interval: "1h",
68
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
69
+ * });
70
+ * ```
71
+ */
72
+ candleSnapshot(args, signal) {
73
+ return this.transport.request("info", { type: "candleSnapshot", req: args }, signal);
74
+ }
75
+ /**
76
+ * Request clearinghouse state.
77
+ * @param args - The parameters for the request.
78
+ * @param signal - An optional abort signal.
79
+ * @returns Account summary for perpetual trading.
80
+ *
81
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-users-perpetuals-account-summary | Hyperliquid GitBook}
82
+ * @example
83
+ * ```ts
84
+ * import * as hl from "@nktkas/hyperliquid";
85
+ *
86
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
87
+ * const client = new hl.PublicClient({ transport });
88
+ *
89
+ * const state = await client.clearinghouseState({ user: "0x..." });
90
+ * ```
91
+ */
92
+ clearinghouseState(args, signal) {
93
+ return this.transport.request("info", { type: "clearinghouseState", ...args }, signal);
94
+ }
95
+ /**
96
+ * Request user's extra agents.
97
+ * @param args - The parameters for the request.
98
+ * @param signal - An optional abort signal.
99
+ * @returns User's extra agents.
100
+ *
101
+ * @example
102
+ * ```ts
103
+ * import * as hl from "@nktkas/hyperliquid";
104
+ *
105
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
106
+ * const client = new hl.PublicClient({ transport });
107
+ *
108
+ * const extraAgents = await client.extraAgents({ user: "0x..." });
109
+ * ```
110
+ */
111
+ extraAgents(args, signal) {
112
+ return this.transport.request("info", { type: "extraAgents", ...args }, signal);
113
+ }
114
+ /**
115
+ * Request frontend open orders.
116
+ * @param args - The parameters for the request.
117
+ * @param signal - An optional abort signal.
118
+ * @returns Array of open orders with additional frontend information.
119
+ *
120
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders-with-additional-frontend-info | Hyperliquid GitBook}
121
+ * @example
122
+ * ```ts
123
+ * import * as hl from "@nktkas/hyperliquid";
124
+ *
125
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
126
+ * const client = new hl.PublicClient({ transport });
127
+ *
128
+ * const orders = await client.frontendOpenOrders({ user: "0x..." });
129
+ * ```
130
+ */
131
+ frontendOpenOrders(args, signal) {
132
+ return this.transport.request("info", { type: "frontendOpenOrders", ...args }, signal);
133
+ }
134
+ /**
135
+ * Request funding history.
136
+ * @param args - The parameters for the request.
137
+ * @param signal - An optional abort signal.
138
+ * @returns Array of historical funding rate data for an asset.
139
+ *
140
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-historical-funding-rates | Hyperliquid GitBook}
141
+ * @example
142
+ * ```ts
143
+ * import * as hl from "@nktkas/hyperliquid";
144
+ *
145
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
146
+ * const client = new hl.PublicClient({ transport });
147
+ *
148
+ * const funding = await client.fundingHistory({
149
+ * coin: "ETH",
150
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
151
+ * });
152
+ * ```
153
+ */
154
+ fundingHistory(args, signal) {
155
+ return this.transport.request("info", { type: "fundingHistory", ...args }, signal);
156
+ }
157
+ /**
158
+ * Request user's historical orders.
159
+ * @param args - The parameters for the request.
160
+ * @param signal - An optional abort signal.
161
+ * @returns Array of user's historical orders.
162
+ *
163
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-historical-orders | Hyperliquid GitBook}
164
+ * @example
165
+ * ```ts
166
+ * import * as hl from "@nktkas/hyperliquid";
167
+ *
168
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
169
+ * const client = new hl.PublicClient({ transport });
170
+ *
171
+ * const orders = await client.historicalOrders({ user: "0x..." });
172
+ * ```
173
+ */
174
+ historicalOrders(args, signal) {
175
+ return this.transport.request("info", { type: "historicalOrders", ...args }, signal);
176
+ }
177
+ /**
178
+ * Request L2 order book.
179
+ * @param args - The parameters for the request.
180
+ * @param signal - An optional abort signal.
181
+ * @returns L2 order book snapshot.
182
+ *
183
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#l2-book-snapshot | Hyperliquid GitBook}
184
+ * @example
185
+ * ```ts
186
+ * import * as hl from "@nktkas/hyperliquid";
187
+ *
188
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
189
+ * const client = new hl.PublicClient({ transport });
190
+ *
191
+ * const book = await client.l2Book({ coin: "ETH", nSigFigs: 2 });
192
+ * ```
193
+ */
194
+ l2Book(args, signal) {
195
+ return this.transport.request("info", { type: "l2Book", ...args }, signal);
196
+ }
197
+ /**
198
+ * Request builder fee approval.
199
+ * @param args - The parameters for the request.
200
+ * @param signal - An optional abort signal.
201
+ * @returns Maximum builder fee approval.
202
+ *
203
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#check-builder-fee-approval | Hyperliquid GitBook}
204
+ * @example
205
+ * ```ts
206
+ * import * as hl from "@nktkas/hyperliquid";
207
+ *
208
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
209
+ * const client = new hl.PublicClient({ transport });
210
+ *
211
+ * const maxBuilderFee = await client.maxBuilderFee({ user: "0x...", builder: "0x..." });
212
+ * ```
213
+ */
214
+ maxBuilderFee(args, signal) {
215
+ return this.transport.request("info", { type: "maxBuilderFee", ...args }, signal);
216
+ }
217
+ /**
218
+ * Request trading metadata.
219
+ * @param signal - An optional abort signal.
220
+ * @returns Metadata for perpetual assets.
221
+ *
222
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-perpetuals-metadata | Hyperliquid GitBook}
223
+ * @example
224
+ * ```ts
225
+ * import * as hl from "@nktkas/hyperliquid";
226
+ *
227
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
228
+ * const client = new hl.PublicClient({ transport });
229
+ *
230
+ * const meta = await client.meta();
231
+ * ```
232
+ */
233
+ meta(signal) {
234
+ return this.transport.request("info", { type: "meta" }, signal);
235
+ }
236
+ /**
237
+ * Request metadata and asset contexts.
238
+ * @param signal - An optional abort signal.
239
+ * @returns Metadata and context information for each perpetual asset.
240
+ *
241
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-perpetuals-asset-contexts-includes-mark-price-current-funding-open-interest-etc | Hyperliquid GitBook}
242
+ * @example
243
+ * ```ts
244
+ * import * as hl from "@nktkas/hyperliquid";
245
+ *
246
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
247
+ * const client = new hl.PublicClient({ transport });
248
+ *
249
+ * const [meta, assetCtxs] = await client.metaAndAssetCtxs();
250
+ * ```
251
+ */
252
+ metaAndAssetCtxs(signal) {
253
+ return this.transport.request("info", { type: "metaAndAssetCtxs" }, signal);
254
+ }
255
+ /**
256
+ * Request open orders.
257
+ * @param args - The parameters for the request.
258
+ * @param signal - An optional abort signal.
259
+ * @returns Array of open order.
260
+ *
261
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-open-orders | Hyperliquid GitBook}
262
+ * @example
263
+ * ```ts
264
+ * import * as hl from "@nktkas/hyperliquid";
265
+ *
266
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
267
+ * const client = new hl.PublicClient({ transport });
268
+ *
269
+ * const orders = await client.openOrders({ user: "0x..." });
270
+ * ```
271
+ */
272
+ openOrders(args, signal) {
273
+ return this.transport.request("info", { type: "openOrders", ...args }, signal);
274
+ }
275
+ /**
276
+ * Request order status.
277
+ * @param args - The parameters for the request.
278
+ * @param signal - An optional abort signal.
279
+ * @returns Result of an order status lookup.
280
+ *
281
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-order-status-by-oid-or-cloid | Hyperliquid GitBook}
282
+ * @example
283
+ * ```ts
284
+ * import * as hl from "@nktkas/hyperliquid";
285
+ *
286
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
287
+ * const client = new hl.PublicClient({ transport });
288
+ *
289
+ * const status = await client.orderStatus({ user: "0x...", oid: 12345 });
290
+ * ```
291
+ */
292
+ orderStatus(args, signal) {
293
+ return this.transport.request("info", { type: "orderStatus", ...args }, signal);
294
+ }
295
+ /**
296
+ * Request predicted funding rates.
297
+ * @param signal - An optional abort signal.
298
+ * @returns Array of predicted funding rates.
299
+ *
300
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-predicted-funding-rates-for-different-venues | Hyperliquid GitBook}
301
+ * @example
302
+ * ```ts
303
+ * import * as hl from "@nktkas/hyperliquid";
304
+ *
305
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
306
+ * const client = new hl.PublicClient({ transport });
307
+ *
308
+ * const predictedFundings = await client.predictedFundings();
309
+ * ```
310
+ */
311
+ predictedFundings(signal) {
312
+ return this.transport.request("info", { type: "predictedFundings" }, signal);
313
+ }
314
+ /**
315
+ * Request user referral.
316
+ * @param args - The parameters for the request.
317
+ * @param signal - An optional abort signal.
318
+ * @returns Referral information for a user.
319
+ *
320
+ * @example
321
+ * ```ts
322
+ * import * as hl from "@nktkas/hyperliquid";
323
+ *
324
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
325
+ * const client = new hl.PublicClient({ transport });
326
+ *
327
+ * const referral = await client.referral({ user: "0x..." });
328
+ * ```
329
+ */
330
+ referral(args, signal) {
331
+ return this.transport.request("info", { type: "referral", ...args }, signal);
332
+ }
333
+ /**
334
+ * Request spot clearinghouse state.
335
+ * @param args - The parameters for the request.
336
+ * @param signal - An optional abort signal.
337
+ * @returns Balances for spot tokens.
338
+ *
339
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-a-users-token-balances | Hyperliquid GitBook}
340
+ * @example
341
+ * ```ts
342
+ * import * as hl from "@nktkas/hyperliquid";
343
+ *
344
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
345
+ * const client = new hl.PublicClient({ transport });
346
+ *
347
+ * const state = await client.spotClearinghouseState({ user: "0x..." });
348
+ * ```
349
+ */
350
+ spotClearinghouseState(args, signal) {
351
+ return this.transport.request("info", { type: "spotClearinghouseState", ...args }, signal);
352
+ }
353
+ /**
354
+ * Request spot deploy state.
355
+ * @param args - The parameters for the request.
356
+ * @param signal - An optional abort signal.
357
+ * @returns The deploy state of a user.
358
+ *
359
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-the-spot-deploy-auction | Hyperliquid GitBook}
360
+ */
361
+ spotDeployState(args, signal) {
362
+ return this.transport.request("info", { type: "spotDeployState", ...args }, signal);
363
+ }
364
+ /**
365
+ * Request spot trading metadata.
366
+ * @param signal - An optional abort signal.
367
+ * @returns Metadata for spot assets.
368
+ *
369
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-metadata | Hyperliquid GitBook}
370
+ * @example
371
+ * ```ts
372
+ * import * as hl from "@nktkas/hyperliquid";
373
+ *
374
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
375
+ * const client = new hl.PublicClient({ transport });
376
+ *
377
+ * const meta = await client.spotMeta();
378
+ * ```
379
+ */
380
+ spotMeta(signal) {
381
+ return this.transport.request("info", { type: "spotMeta" }, signal);
382
+ }
383
+ /**
384
+ * Request spot metadata and asset contexts.
385
+ * @param signal - An optional abort signal.
386
+ * @returns Metadata and context information for each spot asset.
387
+ *
388
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-spot-asset-contexts | Hyperliquid GitBook}
389
+ * @example
390
+ * ```ts
391
+ * import * as hl from "@nktkas/hyperliquid";
392
+ *
393
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
394
+ * const client = new hl.PublicClient({ transport });
395
+ *
396
+ * const [meta, assetCtxs] = await client.spotMetaAndAssetCtxs();
397
+ * ```
398
+ */
399
+ spotMetaAndAssetCtxs(signal) {
400
+ return this.transport.request("info", { type: "spotMetaAndAssetCtxs" }, signal);
401
+ }
402
+ /**
403
+ * Request user sub-accounts.
404
+ * @param args - The parameters for the request.
405
+ * @param signal - An optional abort signal.
406
+ * @returns Array of user sub-account.
407
+ *
408
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-subaccounts | Hyperliquid GitBook}
409
+ * @example
410
+ * ```ts
411
+ * import * as hl from "@nktkas/hyperliquid";
412
+ *
413
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
414
+ * const client = new hl.PublicClient({ transport });
415
+ *
416
+ * const subAccounts = await client.subAccounts({ user: "0x..." });
417
+ * ```
418
+ */
419
+ subAccounts(args, signal) {
420
+ return this.transport.request("info", { type: "subAccounts", ...args }, signal);
421
+ }
422
+ /**
423
+ * Request token details.
424
+ * @param args - The parameters for the request.
425
+ * @param signal - An optional abort signal.
426
+ * @returns The details of a token.
427
+ *
428
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/spot#retrieve-information-about-a-token | Hyperliquid GitBook}
429
+ * @example
430
+ * ```ts
431
+ * import * as hl from "@nktkas/hyperliquid";
432
+ *
433
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
434
+ * const client = new hl.PublicClient({ transport });
435
+ *
436
+ * const details = await client.tokenDetails({ tokenId: "0x..." });
437
+ * ```
438
+ */
439
+ tokenDetails(args, signal) {
440
+ return this.transport.request("info", { type: "tokenDetails", ...args }, signal);
441
+ }
442
+ /**
443
+ * Request twap history of a user.
444
+ * @param args - The parameters for the request.
445
+ * @param signal - An optional abort signal.
446
+ * @returns The twap history of a user.
447
+ *
448
+ * @example
449
+ * ```ts
450
+ * import * as hl from "@nktkas/hyperliquid";
451
+ *
452
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
453
+ * const client = new hl.PublicClient({ transport });
454
+ *
455
+ * const twapHistory = await client.twapHistory({ user: "0x..." });
456
+ * ```
457
+ */
458
+ twapHistory(args, signal) {
459
+ return this.transport.request("info", { type: "twapHistory", ...args }, signal);
460
+ }
461
+ /**
462
+ * Request user fees.
463
+ * @param args - The parameters for the request.
464
+ * @param signal - An optional abort signal.
465
+ * @returns User fees.
466
+ *
467
+ * @example
468
+ * ```ts
469
+ * import * as hl from "@nktkas/hyperliquid";
470
+ *
471
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
472
+ * const client = new hl.PublicClient({ transport });
473
+ *
474
+ * const userFees = await client.userFees({ user: "0x..." });
475
+ * ```
476
+ */
477
+ userFees(args, signal) {
478
+ return this.transport.request("info", { type: "userFees", ...args }, signal);
479
+ }
480
+ /**
481
+ * Request user fills.
482
+ * @param args - The parameters for the request.
483
+ * @param signal - An optional abort signal.
484
+ * @returns Array of user's trade fill.
485
+ *
486
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills | Hyperliquid GitBook}
487
+ * @example
488
+ * ```ts
489
+ * import * as hl from "@nktkas/hyperliquid";
490
+ *
491
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
492
+ * const client = new hl.PublicClient({ transport });
493
+ *
494
+ * const fills = await client.userFills({ user: "0x..." });
495
+ * ```
496
+ */
497
+ userFills(args, signal) {
498
+ return this.transport.request("info", { type: "userFills", ...args }, signal);
499
+ }
500
+ /**
501
+ * Request user fills by time.
502
+ * @param args - The parameters for the request.
503
+ * @param signal - An optional abort signal.
504
+ * @returns Array of user's trade fill.
505
+ *
506
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-fills-by-time | Hyperliquid GitBook}
507
+ * @example
508
+ * ```ts
509
+ * import * as hl from "@nktkas/hyperliquid";
510
+ *
511
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
512
+ * const client = new hl.PublicClient({ transport });
513
+ *
514
+ * const fills = await client.userFillsByTime({
515
+ * user: "0x...",
516
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
517
+ * });
518
+ * ```
519
+ */
520
+ userFillsByTime(args, signal) {
521
+ return this.transport.request("info", { type: "userFillsByTime", ...args }, signal);
522
+ }
523
+ /**
524
+ * Request user funding.
525
+ * @param args - The parameters for the request.
526
+ * @param signal - An optional abort signal.
527
+ * @returns Array of user's funding ledger update.
528
+ *
529
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates | Hyperliquid GitBook}
530
+ * @example
531
+ * ```ts
532
+ * import * as hl from "@nktkas/hyperliquid";
533
+ *
534
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
535
+ * const client = new hl.PublicClient({ transport });
536
+ *
537
+ * const funding = await client.userFunding({
538
+ * user: "0x...",
539
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
540
+ * });
541
+ * ```
542
+ */
543
+ userFunding(args, signal) {
544
+ return this.transport.request("info", { type: "userFunding", ...args }, signal);
545
+ }
546
+ /**
547
+ * Request user non-funding ledger updates.
548
+ * @param args - The parameters for the request.
549
+ * @param signal - An optional abort signal.
550
+ * @returns Array of user's non-funding ledger update.
551
+ *
552
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint/perpetuals#retrieve-a-users-funding-history-or-non-funding-ledger-updates | Hyperliquid GitBook}
553
+ * @example
554
+ * ```ts
555
+ * import * as hl from "@nktkas/hyperliquid";
556
+ *
557
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
558
+ * const client = new hl.PublicClient({ transport });
559
+ *
560
+ * const funding = await client.userNonFundingLedgerUpdates({
561
+ * user: "0x...",
562
+ * startTime: Date.now() - 1000 * 60 * 60 * 24
563
+ * });
564
+ * ```
565
+ */
566
+ userNonFundingLedgerUpdates(args, signal) {
567
+ return this.transport.request("info", { type: "userNonFundingLedgerUpdates", ...args }, signal);
568
+ }
569
+ /**
570
+ * Request user rate limits.
571
+ * @param args - The parameters for the request.
572
+ * @param signal - An optional abort signal.
573
+ * @returns User's rate limits.
574
+ *
575
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#query-user-rate-limits | Hyperliquid GitBook}
576
+ * @example
577
+ * ```ts
578
+ * import * as hl from "@nktkas/hyperliquid";
579
+ *
580
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
581
+ * const client = new hl.PublicClient({ transport });
582
+ *
583
+ * const rateLimit = await client.userRateLimit({ user: "0x..." });
584
+ * ```
585
+ */
586
+ userRateLimit(args, signal) {
587
+ return this.transport.request("info", { type: "userRateLimit", ...args }, signal);
588
+ }
589
+ /**
590
+ * Request user twap slice fills.
591
+ * @param args - The parameters for the request.
592
+ * @param signal - An optional abort signal.
593
+ * @returns Array of user's twap slice fill.
594
+ *
595
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-twap-slice-fills | Hyperliquid GitBook}
596
+ * @example
597
+ * ```ts
598
+ * import * as hl from "@nktkas/hyperliquid";
599
+ *
600
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
601
+ * const client = new hl.PublicClient({ transport });
602
+ *
603
+ * const fills = await client.userTwapSliceFills({ user: "0x..." });
604
+ * ```
605
+ */
606
+ userTwapSliceFills(args, signal) {
607
+ return this.transport.request("info", { type: "userTwapSliceFills", ...args }, signal);
608
+ }
609
+ /**
610
+ * Request user vault deposits.
611
+ * @param args - The parameters for the request.
612
+ * @param signal - An optional abort signal.
613
+ * @returns Array of user's vault deposits.
614
+ *
615
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-a-users-vault-deposits | Hyperliquid GitBook}
616
+ * @example
617
+ * ```ts
618
+ * import * as hl from "@nktkas/hyperliquid";
619
+ *
620
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
621
+ * const client = new hl.PublicClient({ transport });
622
+ *
623
+ * const deposits = await client.userVaultDeposits({ user: "0x..." });
624
+ * ```
625
+ */
626
+ userVaultEquities(args, signal) {
627
+ return this.transport.request("info", { type: "userVaultEquities", ...args }, signal);
628
+ }
629
+ /**
630
+ * Request details of a vault.
631
+ * @param args - The parameters for the request.
632
+ * @param signal - An optional abort signal.
633
+ * @returns Details of a vault.
634
+ *
635
+ * @see {@link https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/info-endpoint#retrieve-details-for-a-vault | Hyperliquid GitBook}
636
+ * @example
637
+ * ```ts
638
+ * import * as hl from "@nktkas/hyperliquid";
639
+ *
640
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
641
+ * const client = new hl.PublicClient({ transport });
642
+ *
643
+ * const vault = await client.vaultDetails({ vaultAddress: "0x..." });
644
+ * ```
645
+ */
646
+ vaultDetails(args, signal) {
647
+ return this.transport.request("info", { type: "vaultDetails", ...args }, signal);
648
+ }
649
+ /**
650
+ * Request a list of vaults less than 2 hours old.
651
+ * @param args - The parameters for the request.
652
+ * @param signal - An optional abort signal.
653
+ * @returns Array of vault summaries.
654
+ *
655
+ * @example
656
+ * ```ts
657
+ * import * as hl from "@nktkas/hyperliquid";
658
+ *
659
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
660
+ * const client = new hl.PublicClient({ transport });
661
+ *
662
+ * const vaults = await client.vaultSummaries();
663
+ * ```
664
+ */
665
+ vaultSummaries(signal) {
666
+ return this.transport.request("info", { type: "vaultSummaries" }, signal);
667
+ }
668
+ // ———————————————Explorer API———————————————
669
+ /**
670
+ * Gets the details of a block.
671
+ * @param args - The parameters for the request.
672
+ * @param signal - An optional abort signal.
673
+ * @returns A promise that resolves with the details of the block.
674
+ *
675
+ * @example
676
+ * ```ts
677
+ * import * as hl from "@nktkas/hyperliquid";
678
+ *
679
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
680
+ * const client = new hl.PublicClient({ transport });
681
+ *
682
+ * const { blockDetails } = await client.blockDetails({ height: 123 });
683
+ * ```
684
+ */
685
+ blockDetails(args, signal) {
686
+ return this.transport.request("explorer", { type: "blockDetails", ...args }, signal);
687
+ }
688
+ /**
689
+ * Gets the details of a transaction.
690
+ * @param args - The parameters for the request.
691
+ * @param signal - An optional abort signal.
692
+ * @returns A promise that resolves with the details of the transaction.
693
+ *
694
+ * @example
695
+ * ```ts
696
+ * import * as hl from "@nktkas/hyperliquid";
697
+ *
698
+ * const transport = new hl.HttpTransport(); // or WebSocketTransport
699
+ * const client = new hl.PublicClient({ transport });
700
+ *
701
+ * const { tx } = await client.txDetails({ hash: "0x..." });
702
+ * ```
703
+ */
704
+ txDetails(args, signal) {
705
+ return this.transport.request("explorer", { type: "txDetails", ...args }, signal);
706
+ }
707
+ }
708
+ exports.PublicClient = PublicClient;