@nktkas/hyperliquid 0.25.0-beta.1 → 0.25.0-beta.3
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.
- package/README.md +64 -16
- package/esm/bin/cli.d.ts +3 -0
- package/esm/bin/cli.d.ts.map +1 -0
- package/esm/bin/cli.js +452 -0
- package/esm/bin/cli.js.map +1 -0
- package/{script/src/errors.d.ts → esm/src/_errors.d.ts} +1 -1
- package/esm/src/_errors.d.ts.map +1 -0
- package/esm/src/{errors.js → _errors.js} +1 -0
- package/esm/src/_errors.js.map +1 -0
- package/esm/src/clients/exchange.d.ts +4 -11
- package/esm/src/clients/exchange.d.ts.map +1 -1
- package/esm/src/clients/exchange.js +8 -9
- package/esm/src/clients/exchange.js.map +1 -0
- package/esm/src/clients/info.d.ts +86 -2
- package/esm/src/clients/info.d.ts.map +1 -1
- package/esm/src/clients/info.js +103 -1
- package/esm/src/clients/info.js.map +1 -0
- package/esm/src/clients/multiSign.d.ts +1 -1
- package/esm/src/clients/multiSign.d.ts.map +1 -1
- package/esm/src/clients/multiSign.js +3 -2
- package/esm/src/clients/multiSign.js.map +1 -0
- package/esm/src/clients/subscription.js +1 -0
- package/esm/src/clients/subscription.js.map +1 -0
- package/esm/src/mod.d.ts +21 -0
- package/esm/src/mod.d.ts.map +1 -0
- package/esm/src/mod.js +14 -0
- package/esm/src/mod.js.map +1 -0
- package/esm/src/schemas/_base.d.ts +11 -3
- package/esm/src/schemas/_base.d.ts.map +1 -1
- package/esm/src/schemas/_base.js +30 -2
- package/esm/src/schemas/_base.js.map +1 -0
- package/esm/src/schemas/exchange/requests.d.ts +1872 -1872
- package/esm/src/schemas/exchange/requests.d.ts.map +1 -1
- package/esm/src/schemas/exchange/requests.js +277 -281
- package/esm/src/schemas/exchange/requests.js.map +1 -0
- package/esm/src/schemas/exchange/responses.d.ts +51 -51
- package/esm/src/schemas/exchange/responses.js +55 -54
- package/esm/src/schemas/exchange/responses.js.map +1 -0
- package/esm/src/schemas/explorer/requests.d.ts +5 -5
- package/esm/src/schemas/explorer/requests.js +6 -5
- package/esm/src/schemas/explorer/requests.js.map +1 -0
- package/esm/src/schemas/explorer/responses.d.ts +10 -10
- package/esm/src/schemas/explorer/responses.js +12 -11
- package/esm/src/schemas/explorer/responses.js.map +1 -0
- package/esm/src/schemas/info/accounts.d.ts +1042 -296
- package/esm/src/schemas/info/accounts.d.ts.map +1 -1
- package/esm/src/schemas/info/accounts.js +154 -109
- package/esm/src/schemas/info/accounts.js.map +1 -0
- package/esm/src/schemas/info/assets.d.ts +130 -101
- package/esm/src/schemas/info/assets.d.ts.map +1 -1
- package/esm/src/schemas/info/assets.js +69 -49
- package/esm/src/schemas/info/assets.js.map +1 -0
- package/esm/src/schemas/info/markets.d.ts +35 -18
- package/esm/src/schemas/info/markets.d.ts.map +1 -1
- package/esm/src/schemas/info/markets.js +27 -15
- package/esm/src/schemas/info/markets.js.map +1 -0
- package/esm/src/schemas/info/orders.d.ts +151 -151
- package/esm/src/schemas/info/orders.js +37 -36
- package/esm/src/schemas/info/orders.js.map +1 -0
- package/esm/src/schemas/info/requests.d.ts +145 -88
- package/esm/src/schemas/info/requests.d.ts.map +1 -1
- package/esm/src/schemas/info/requests.js +116 -73
- package/esm/src/schemas/info/requests.js.map +1 -0
- package/esm/src/schemas/info/validators.d.ts +60 -39
- package/esm/src/schemas/info/validators.d.ts.map +1 -1
- package/esm/src/schemas/info/validators.js +40 -26
- package/esm/src/schemas/info/validators.js.map +1 -0
- package/esm/src/schemas/info/vaults.d.ts +59 -59
- package/esm/src/schemas/info/vaults.js +20 -19
- package/esm/src/schemas/info/vaults.js.map +1 -0
- package/esm/src/schemas/mod.d.ts +4 -3
- package/esm/src/schemas/mod.d.ts.map +1 -1
- package/esm/src/schemas/mod.js +5 -3
- package/esm/src/schemas/mod.js.map +1 -0
- package/esm/src/schemas/subscriptions/requests.d.ts +23 -23
- package/esm/src/schemas/subscriptions/requests.d.ts.map +1 -1
- package/esm/src/schemas/subscriptions/requests.js +25 -24
- package/esm/src/schemas/subscriptions/requests.js.map +1 -0
- package/esm/src/schemas/subscriptions/responses.d.ts +547 -547
- package/esm/src/schemas/subscriptions/responses.js +41 -40
- package/esm/src/schemas/subscriptions/responses.js.map +1 -0
- package/esm/src/signing/mod.d.ts +1 -1
- package/esm/src/signing/mod.d.ts.map +1 -1
- package/esm/src/signing/mod.js +3 -2
- package/esm/src/signing/mod.js.map +1 -0
- package/esm/src/signing/signTypedData/ethers.d.ts.map +1 -0
- package/esm/src/signing/{_signTypedData → signTypedData}/ethers.js +1 -0
- package/esm/src/signing/signTypedData/ethers.js.map +1 -0
- package/esm/src/signing/signTypedData/mod.d.ts.map +1 -0
- package/esm/src/signing/{_signTypedData → signTypedData}/mod.js +1 -0
- package/esm/src/signing/signTypedData/mod.js.map +1 -0
- package/esm/src/signing/signTypedData/private_key.d.ts.map +1 -0
- package/esm/src/signing/{_signTypedData → signTypedData}/private_key.js +10 -8
- package/esm/src/signing/signTypedData/private_key.js.map +1 -0
- package/esm/src/signing/signTypedData/viem.d.ts.map +1 -0
- package/esm/src/signing/{_signTypedData → signTypedData}/viem.js +1 -0
- package/esm/src/signing/signTypedData/viem.js.map +1 -0
- package/esm/src/transports/base.d.ts +4 -4
- package/esm/src/transports/base.d.ts.map +1 -1
- package/esm/src/transports/base.js +3 -2
- package/esm/src/transports/base.js.map +1 -0
- package/esm/src/transports/http/http_transport.d.ts +1 -1
- package/esm/src/transports/http/http_transport.js +1 -0
- package/esm/src/transports/http/http_transport.js.map +1 -0
- package/esm/src/transports/websocket/_hyperliquid_event_target.js +1 -0
- package/esm/src/transports/websocket/_hyperliquid_event_target.js.map +1 -0
- package/esm/src/transports/websocket/_reconnecting_websocket.js +1 -0
- package/esm/src/transports/websocket/_reconnecting_websocket.js.map +1 -0
- package/esm/src/transports/websocket/_websocket_async_request.js +1 -0
- package/esm/src/transports/websocket/_websocket_async_request.js.map +1 -0
- package/esm/src/transports/websocket/websocket_transport.d.ts +7 -0
- package/esm/src/transports/websocket/websocket_transport.d.ts.map +1 -1
- package/esm/src/transports/websocket/websocket_transport.js +4 -0
- package/esm/src/transports/websocket/websocket_transport.js.map +1 -0
- package/package.json +15 -7
- package/script/bin/cli.d.ts +3 -0
- package/script/bin/cli.d.ts.map +1 -0
- package/script/bin/cli.js +490 -0
- package/script/bin/cli.js.map +1 -0
- package/{esm/src/errors.d.ts → script/src/_errors.d.ts} +1 -1
- package/script/src/_errors.d.ts.map +1 -0
- package/script/src/{errors.js → _errors.js} +1 -0
- package/script/src/_errors.js.map +1 -0
- package/script/src/clients/exchange.d.ts +4 -11
- package/script/src/clients/exchange.d.ts.map +1 -1
- package/script/src/clients/exchange.js +9 -10
- package/script/src/clients/exchange.js.map +1 -0
- package/script/src/clients/info.d.ts +86 -2
- package/script/src/clients/info.d.ts.map +1 -1
- package/script/src/clients/info.js +102 -0
- package/script/src/clients/info.js.map +1 -0
- package/script/src/clients/multiSign.d.ts +1 -1
- package/script/src/clients/multiSign.d.ts.map +1 -1
- package/script/src/clients/multiSign.js +3 -2
- package/script/src/clients/multiSign.js.map +1 -0
- package/script/src/clients/subscription.js +1 -0
- package/script/src/clients/subscription.js.map +1 -0
- package/script/src/mod.d.ts +21 -0
- package/script/src/mod.d.ts.map +1 -0
- package/script/{mod.js → src/mod.js} +13 -8
- package/script/src/mod.js.map +1 -0
- package/script/src/schemas/_base.d.ts +11 -3
- package/script/src/schemas/_base.d.ts.map +1 -1
- package/script/src/schemas/_base.js +31 -3
- package/script/src/schemas/_base.js.map +1 -0
- package/script/src/schemas/exchange/requests.d.ts +1872 -1872
- package/script/src/schemas/exchange/requests.d.ts.map +1 -1
- package/script/src/schemas/exchange/requests.js +276 -280
- package/script/src/schemas/exchange/requests.js.map +1 -0
- package/script/src/schemas/exchange/responses.d.ts +51 -51
- package/script/src/schemas/exchange/responses.js +54 -53
- package/script/src/schemas/exchange/responses.js.map +1 -0
- package/script/src/schemas/explorer/requests.d.ts +5 -5
- package/script/src/schemas/explorer/requests.js +5 -4
- package/script/src/schemas/explorer/requests.js.map +1 -0
- package/script/src/schemas/explorer/responses.d.ts +10 -10
- package/script/src/schemas/explorer/responses.js +11 -10
- package/script/src/schemas/explorer/responses.js.map +1 -0
- package/script/src/schemas/info/accounts.d.ts +1042 -296
- package/script/src/schemas/info/accounts.d.ts.map +1 -1
- package/script/src/schemas/info/accounts.js +154 -109
- package/script/src/schemas/info/accounts.js.map +1 -0
- package/script/src/schemas/info/assets.d.ts +130 -101
- package/script/src/schemas/info/assets.d.ts.map +1 -1
- package/script/src/schemas/info/assets.js +69 -49
- package/script/src/schemas/info/assets.js.map +1 -0
- package/script/src/schemas/info/markets.d.ts +35 -18
- package/script/src/schemas/info/markets.d.ts.map +1 -1
- package/script/src/schemas/info/markets.js +27 -15
- package/script/src/schemas/info/markets.js.map +1 -0
- package/script/src/schemas/info/orders.d.ts +151 -151
- package/script/src/schemas/info/orders.js +36 -35
- package/script/src/schemas/info/orders.js.map +1 -0
- package/script/src/schemas/info/requests.d.ts +145 -88
- package/script/src/schemas/info/requests.d.ts.map +1 -1
- package/script/src/schemas/info/requests.js +116 -73
- package/script/src/schemas/info/requests.js.map +1 -0
- package/script/src/schemas/info/validators.d.ts +60 -39
- package/script/src/schemas/info/validators.d.ts.map +1 -1
- package/script/src/schemas/info/validators.js +40 -26
- package/script/src/schemas/info/validators.js.map +1 -0
- package/script/src/schemas/info/vaults.d.ts +59 -59
- package/script/src/schemas/info/vaults.js +19 -18
- package/script/src/schemas/info/vaults.js.map +1 -0
- package/script/src/schemas/mod.d.ts +4 -3
- package/script/src/schemas/mod.d.ts.map +1 -1
- package/script/src/schemas/mod.js +8 -5
- package/script/src/schemas/mod.js.map +1 -0
- package/script/src/schemas/subscriptions/requests.d.ts +23 -23
- package/script/src/schemas/subscriptions/requests.d.ts.map +1 -1
- package/script/src/schemas/subscriptions/requests.js +24 -23
- package/script/src/schemas/subscriptions/requests.js.map +1 -0
- package/script/src/schemas/subscriptions/responses.d.ts +547 -547
- package/script/src/schemas/subscriptions/responses.js +40 -39
- package/script/src/schemas/subscriptions/responses.js.map +1 -0
- package/script/src/signing/mod.d.ts +1 -1
- package/script/src/signing/mod.d.ts.map +1 -1
- package/script/src/signing/mod.js +4 -3
- package/script/src/signing/mod.js.map +1 -0
- package/script/src/signing/signTypedData/ethers.d.ts.map +1 -0
- package/script/src/signing/{_signTypedData → signTypedData}/ethers.js +1 -0
- package/script/src/signing/signTypedData/ethers.js.map +1 -0
- package/script/src/signing/signTypedData/mod.d.ts.map +1 -0
- package/script/src/signing/{_signTypedData → signTypedData}/mod.js +1 -0
- package/script/src/signing/signTypedData/mod.js.map +1 -0
- package/script/src/signing/signTypedData/private_key.d.ts.map +1 -0
- package/script/src/signing/{_signTypedData → signTypedData}/private_key.js +17 -15
- package/script/src/signing/signTypedData/private_key.js.map +1 -0
- package/script/src/signing/signTypedData/viem.d.ts.map +1 -0
- package/script/src/signing/{_signTypedData → signTypedData}/viem.js +1 -0
- package/script/src/signing/signTypedData/viem.js.map +1 -0
- package/script/src/transports/base.d.ts +4 -4
- package/script/src/transports/base.d.ts.map +1 -1
- package/script/src/transports/base.js +4 -3
- package/script/src/transports/base.js.map +1 -0
- package/script/src/transports/http/http_transport.d.ts +1 -1
- package/script/src/transports/http/http_transport.js +1 -0
- package/script/src/transports/http/http_transport.js.map +1 -0
- package/script/src/transports/websocket/_hyperliquid_event_target.js +1 -0
- package/script/src/transports/websocket/_hyperliquid_event_target.js.map +1 -0
- package/script/src/transports/websocket/_reconnecting_websocket.js +1 -0
- package/script/src/transports/websocket/_reconnecting_websocket.js.map +1 -0
- package/script/src/transports/websocket/_websocket_async_request.js +1 -0
- package/script/src/transports/websocket/_websocket_async_request.js.map +1 -0
- package/script/src/transports/websocket/websocket_transport.d.ts +7 -0
- package/script/src/transports/websocket/websocket_transport.d.ts.map +1 -1
- package/script/src/transports/websocket/websocket_transport.js +4 -0
- package/script/src/transports/websocket/websocket_transport.js.map +1 -0
- package/src/bin/cli.ts +481 -0
- package/src/src/_errors.ts +7 -0
- package/src/src/clients/exchange.ts +2246 -0
- package/src/src/clients/info.ts +2110 -0
- package/src/src/clients/multiSign.ts +183 -0
- package/src/src/clients/subscription.ts +841 -0
- package/src/src/mod.ts +29 -0
- package/src/src/schemas/_base.ts +82 -0
- package/src/src/schemas/exchange/requests.ts +3052 -0
- package/src/src/schemas/exchange/responses.ts +540 -0
- package/src/src/schemas/explorer/requests.ts +65 -0
- package/src/src/schemas/explorer/responses.ts +138 -0
- package/src/src/schemas/info/accounts.ts +1598 -0
- package/src/src/schemas/info/assets.ts +693 -0
- package/src/src/schemas/info/markets.ts +171 -0
- package/src/src/schemas/info/orders.ts +597 -0
- package/src/src/schemas/info/requests.ts +1401 -0
- package/src/src/schemas/info/validators.ts +297 -0
- package/src/src/schemas/info/vaults.ts +262 -0
- package/src/src/schemas/mod.ts +121 -0
- package/src/src/schemas/subscriptions/requests.ts +514 -0
- package/src/src/schemas/subscriptions/responses.ts +576 -0
- package/src/src/signing/mod.ts +572 -0
- package/src/src/signing/signTypedData/ethers.ts +59 -0
- package/src/src/signing/signTypedData/mod.ts +121 -0
- package/src/src/signing/signTypedData/private_key.ts +234 -0
- package/src/src/signing/signTypedData/viem.ts +55 -0
- package/src/src/transports/base.ts +54 -0
- package/src/src/transports/http/http_transport.ts +208 -0
- package/src/src/transports/websocket/_hyperliquid_event_target.ts +118 -0
- package/src/src/transports/websocket/_reconnecting_websocket.ts +404 -0
- package/src/src/transports/websocket/_websocket_async_request.ts +229 -0
- package/src/src/transports/websocket/websocket_transport.ts +394 -0
- package/esm/mod.d.ts +0 -20
- package/esm/mod.d.ts.map +0 -1
- package/esm/mod.js +0 -11
- package/esm/src/errors.d.ts.map +0 -1
- package/esm/src/signing/_signTypedData/ethers.d.ts.map +0 -1
- package/esm/src/signing/_signTypedData/mod.d.ts.map +0 -1
- package/esm/src/signing/_signTypedData/private_key.d.ts.map +0 -1
- package/esm/src/signing/_signTypedData/viem.d.ts.map +0 -1
- package/script/mod.d.ts +0 -20
- package/script/mod.d.ts.map +0 -1
- package/script/src/errors.d.ts.map +0 -1
- package/script/src/signing/_signTypedData/ethers.d.ts.map +0 -1
- package/script/src/signing/_signTypedData/mod.d.ts.map +0 -1
- package/script/src/signing/_signTypedData/private_key.d.ts.map +0 -1
- package/script/src/signing/_signTypedData/viem.d.ts.map +0 -1
- /package/esm/src/signing/{_signTypedData → signTypedData}/ethers.d.ts +0 -0
- /package/esm/src/signing/{_signTypedData → signTypedData}/mod.d.ts +0 -0
- /package/esm/src/signing/{_signTypedData → signTypedData}/private_key.d.ts +0 -0
- /package/esm/src/signing/{_signTypedData → signTypedData}/viem.d.ts +0 -0
- /package/script/src/signing/{_signTypedData → signTypedData}/ethers.d.ts +0 -0
- /package/script/src/signing/{_signTypedData → signTypedData}/mod.d.ts +0 -0
- /package/script/src/signing/{_signTypedData → signTypedData}/private_key.d.ts +0 -0
- /package/script/src/signing/{_signTypedData → signTypedData}/viem.d.ts +0 -0
package/README.md
CHANGED
|
@@ -57,9 +57,15 @@ deno add jsr:@nktkas/hyperliquid
|
|
|
57
57
|
// Issues:
|
|
58
58
|
// - signing: does not support private keys directly, use `viem` or `ethers`
|
|
59
59
|
|
|
60
|
-
import "event-target-polyfill";
|
|
60
|
+
import "event-target-polyfill"; // for `WebSocketTransport`
|
|
61
|
+
// or
|
|
62
|
+
// import { Event, EventTarget } from "event-target-shim";
|
|
63
|
+
// if (!globalThis.EventTarget || !globalThis.Event) {
|
|
64
|
+
// globalThis.EventTarget = EventTarget;
|
|
65
|
+
// globalThis.Event = Event;
|
|
66
|
+
// }
|
|
61
67
|
|
|
62
|
-
if (!globalThis.CustomEvent) {
|
|
68
|
+
if (!globalThis.CustomEvent) { // for `WebSocketTransport`
|
|
63
69
|
globalThis.CustomEvent = function (type, params) {
|
|
64
70
|
params = params || {};
|
|
65
71
|
const event = new Event(type, params);
|
|
@@ -68,15 +74,7 @@ if (!globalThis.CustomEvent) {
|
|
|
68
74
|
};
|
|
69
75
|
}
|
|
70
76
|
|
|
71
|
-
if (!
|
|
72
|
-
AbortSignal.timeout = function (delay) {
|
|
73
|
-
const controller = new AbortController();
|
|
74
|
-
setTimeout(() => controller.abort(), delay);
|
|
75
|
-
return controller.signal;
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
if (!Promise.withResolvers) {
|
|
77
|
+
if (!Promise.withResolvers) { // for `WebSocketTransport`
|
|
80
78
|
Promise.withResolvers = function () {
|
|
81
79
|
let resolve, reject;
|
|
82
80
|
const promise = new Promise((res, rej) => {
|
|
@@ -86,6 +84,30 @@ if (!Promise.withResolvers) {
|
|
|
86
84
|
return { promise, resolve, reject };
|
|
87
85
|
};
|
|
88
86
|
}
|
|
87
|
+
|
|
88
|
+
if (!AbortSignal.any) {
|
|
89
|
+
AbortSignal.any = function (signals) {
|
|
90
|
+
const controller = new AbortController();
|
|
91
|
+
for (const signal of signals) {
|
|
92
|
+
if (signal.aborted) {
|
|
93
|
+
controller.abort(signal.reason);
|
|
94
|
+
return controller.signal;
|
|
95
|
+
}
|
|
96
|
+
signal.addEventListener("abort", () => {
|
|
97
|
+
controller.abort(signal.reason);
|
|
98
|
+
}, { once: true, signal: controller.signal });
|
|
99
|
+
}
|
|
100
|
+
return controller.signal;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (!AbortSignal.timeout) {
|
|
105
|
+
AbortSignal.timeout = function (delay) {
|
|
106
|
+
const controller = new AbortController();
|
|
107
|
+
setTimeout(() => controller.abort(), delay);
|
|
108
|
+
return controller.signal;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
89
111
|
```
|
|
90
112
|
|
|
91
113
|
</details>
|
|
@@ -174,6 +196,14 @@ const multiSignClient = new hl.MultiSignClient({
|
|
|
174
196
|
await multiSignClient.approveAgent({ agentAddress: "0x..." });
|
|
175
197
|
```
|
|
176
198
|
|
|
199
|
+
### CLI
|
|
200
|
+
|
|
201
|
+
The SDK includes a command-line interface for quick interactions with Hyperliquid API without writing code.
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
npx @nktkas/hyperliquid --help
|
|
205
|
+
```
|
|
206
|
+
|
|
177
207
|
## Usage
|
|
178
208
|
|
|
179
209
|
### 1) Initialize Transport
|
|
@@ -187,7 +217,7 @@ import * as hl from "@nktkas/hyperliquid";
|
|
|
187
217
|
const httpTransport = new hl.HttpTransport({...}); // Accepts optional parameters (e.g. isTestnet, timeout, etc.)
|
|
188
218
|
|
|
189
219
|
// 2. WebSocket Transport: has better network latency than HTTP transport
|
|
190
|
-
const wsTransport = new hl.WebSocketTransport({...}); // Accepts optional parameters (e.g. url, timeout, reconnect, etc.)
|
|
220
|
+
const wsTransport = new hl.WebSocketTransport({...}); // Accepts optional parameters (e.g. url, isTestnet, timeout, reconnect, etc.)
|
|
191
221
|
```
|
|
192
222
|
|
|
193
223
|
### 2) Initialize Client
|
|
@@ -406,9 +436,11 @@ class InfoClient {
|
|
|
406
436
|
meta(params?: MetaParameters): Promise<PerpsMeta>;
|
|
407
437
|
metaAndAssetCtxs(params?: MetaAndAssetCtxsParameters): Promise<PerpsMetaAndAssetCtxs>;
|
|
408
438
|
perpDeployAuctionStatus(): Promise<DeployAuctionStatus>;
|
|
439
|
+
perpDexLimits(params: PerpDexLimitsParameters): Promise<PerpDexLimits | null>;
|
|
409
440
|
perpDexs(): Promise<(PerpDex | null)[]>;
|
|
410
441
|
perpsAtOpenInterestCap(params?: PerpsAtOpenInterestCapParameters): Promise<string[]>;
|
|
411
442
|
predictedFundings(): Promise<PredictedFunding[]>;
|
|
443
|
+
recentTrades(params: RecentTradesParameters): Promise<Trade[]>;
|
|
412
444
|
spotDeployState(params: SpotDeployStateParameters): Promise<SpotDeployState>;
|
|
413
445
|
spotMeta(): Promise<SpotMeta>;
|
|
414
446
|
spotMetaAndAssetCtxs(): Promise<SpotMetaAndAssetCtxs>;
|
|
@@ -446,6 +478,7 @@ class InfoClient {
|
|
|
446
478
|
userTwapSliceFillsByTime(params: UserTwapSliceFillsByTimeParameters): Promise<TwapSliceFill[]>;
|
|
447
479
|
|
|
448
480
|
// Validator
|
|
481
|
+
gossipRootIps(): Promise<GossipRootIps>;
|
|
449
482
|
delegations(params: DelegationsParameters): Promise<Delegation[]>;
|
|
450
483
|
delegatorHistory(params: DelegatorHistoryParameters): Promise<DelegatorUpdate[]>;
|
|
451
484
|
delegatorRewards(params: DelegatorRewardsParameters): Promise<DelegatorReward[]>;
|
|
@@ -476,7 +509,6 @@ class ExchangeClient {
|
|
|
476
509
|
constructor(args: {
|
|
477
510
|
transport: HttpTransport | WebSocketTransport;
|
|
478
511
|
wallet: AbstractWallet; // `viem`, `ethers` (v5 or v6), or private key directly
|
|
479
|
-
isTestnet?: boolean; // Whether to use testnet (default: false)
|
|
480
512
|
defaultVaultAddress?: Hex; // Vault address used by default if not provided in method call
|
|
481
513
|
signatureChainId?: Hex | (() => MaybePromise<Hex>); // Chain ID used for signing (default: get chain id from wallet otherwise `0x1`)
|
|
482
514
|
nonceManager?: () => MaybePromise<number>; // Function to get the next nonce (default: monotonically incrementing `Date.now()`)
|
|
@@ -507,6 +539,7 @@ class ExchangeClient {
|
|
|
507
539
|
setReferrer(params: SetReferrerParameters): Promise<SuccessResponse>;
|
|
508
540
|
subAccountModify(params: SubAccountModifyParameters): Promise<SuccessResponse>;
|
|
509
541
|
spotUser(params: SpotUserParameters): Promise<SuccessResponse>;
|
|
542
|
+
webData2(params: WebData2Parameters): Promise<WebData2>;
|
|
510
543
|
|
|
511
544
|
// Transfer
|
|
512
545
|
sendAsset(params: SendAssetParameters): Promise<SuccessResponse>;
|
|
@@ -660,6 +693,7 @@ class HttpTransport {
|
|
|
660
693
|
class WebSocketTransport {
|
|
661
694
|
constructor(options?: {
|
|
662
695
|
url?: string | URL; // WebSocket URL (default: "wss://api.hyperliquid.xyz/ws")
|
|
696
|
+
isTestnet?: boolean; // Indicates this transport uses testnet endpoint (default: false)
|
|
663
697
|
timeout?: number; // Request timeout in ms (default: 10_000)
|
|
664
698
|
keepAlive?: {
|
|
665
699
|
interval?: number; // Ping interval in ms (default: 30_000)
|
|
@@ -679,6 +713,13 @@ class WebSocketTransport {
|
|
|
679
713
|
}
|
|
680
714
|
```
|
|
681
715
|
|
|
716
|
+
### Errors
|
|
717
|
+
|
|
718
|
+
- [`HyperliquidError`](src/errors.ts#L2) - Base error class for all SDK errors.
|
|
719
|
+
- [`TransportError`](src/transports/base.ts#L49) - Thrown when a transport layer error occurs.
|
|
720
|
+
- [`ApiRequestError`](src/clients//exchange.ts#L294) - Thrown when an API request fails.
|
|
721
|
+
- [`SchemaError`](src/schemas/mod.ts#L79) - Thrown when a schema validation error occurs.
|
|
722
|
+
|
|
682
723
|
## Additional Import Points
|
|
683
724
|
|
|
684
725
|
### `/schemas`
|
|
@@ -705,7 +746,7 @@ const action = {
|
|
|
705
746
|
} satisfies OrderRequest["action"]; // can be used as type
|
|
706
747
|
|
|
707
748
|
// or as valibot schema
|
|
708
|
-
//
|
|
749
|
+
// ⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄⌄
|
|
709
750
|
const validatedAction = parser(OrderRequest.entries.action)(action);
|
|
710
751
|
// ^^^^^^
|
|
711
752
|
// validates, formats, sorts object keys for correct signature generation
|
|
@@ -764,7 +805,7 @@ import { CancelRequest, parser } from "@nktkas/hyperliquid/schemas";
|
|
|
764
805
|
|
|
765
806
|
const privateKey = "0x..."; // `viem`, `ethers`, or private key directly
|
|
766
807
|
|
|
767
|
-
const action = parser(CancelRequest.entries.action)({ // for correct signature generation
|
|
808
|
+
const action = parser(CancelRequest.entries.action)({ // for correct signature generation (optional)
|
|
768
809
|
type: "cancel",
|
|
769
810
|
cancels: [
|
|
770
811
|
{ a: 0, o: 12345 },
|
|
@@ -791,7 +832,7 @@ import { ApproveAgentRequest, parser } from "@nktkas/hyperliquid/schemas";
|
|
|
791
832
|
|
|
792
833
|
const privateKey = "0x..."; // `viem`, `ethers`, or private key directly
|
|
793
834
|
|
|
794
|
-
const action = parser(ApproveAgentRequest.entries.action)({ // for correct signature generation
|
|
835
|
+
const action = parser(ApproveAgentRequest.entries.action)({ // for correct signature generation (optional)
|
|
795
836
|
type: "approveAgent",
|
|
796
837
|
signatureChainId: "0x66eee",
|
|
797
838
|
hyperliquidChain: "Mainnet",
|
|
@@ -841,6 +882,13 @@ with `tif: "Ioc"` and price that guarantee immediate execution:
|
|
|
841
882
|
**Vault and Sub-Account**: Pass vault or sub-account address via `vaultAddress` options to methods or set
|
|
842
883
|
`defaultVaultAddress` in constructor.
|
|
843
884
|
|
|
885
|
+
### How to use Testnet?
|
|
886
|
+
|
|
887
|
+
[**HttpTransport**](#http-transport): Set the `isTestnet` flag to `true`.
|
|
888
|
+
|
|
889
|
+
[**WebSocketTransport**](#websocket-transport): Set the `isTestnet` flag to `true` and provide the testnet `url` when
|
|
890
|
+
initializing the transport.
|
|
891
|
+
|
|
844
892
|
## Contributing
|
|
845
893
|
|
|
846
894
|
We appreciate your help! To contribute, please read the [contributing instructions](CONTRIBUTING.md).
|
package/esm/bin/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":""}
|
package/esm/bin/cli.js
ADDED
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import * as hl from "../src/mod.js";
|
|
3
|
+
import { Hex } from "../src/schemas/mod.js";
|
|
4
|
+
import * as v from "valibot";
|
|
5
|
+
import parseArgs from "minimist";
|
|
6
|
+
import process from "node:process";
|
|
7
|
+
// deno-lint-ignore no-explicit-any
|
|
8
|
+
function getClassMethods(classConstructor) {
|
|
9
|
+
return Object.getOwnPropertyNames(classConstructor.prototype)
|
|
10
|
+
.filter((name) => {
|
|
11
|
+
if (name === "constructor")
|
|
12
|
+
return false;
|
|
13
|
+
const descriptor = Object.getOwnPropertyDescriptor(classConstructor.prototype, name);
|
|
14
|
+
return descriptor?.value && typeof descriptor.value === "function";
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
// deno-lint-ignore no-explicit-any
|
|
18
|
+
function isClassMethod(classConstructor, method) {
|
|
19
|
+
const classMethods = getClassMethods(classConstructor);
|
|
20
|
+
// deno-lint-ignore no-explicit-any
|
|
21
|
+
return classMethods.includes(method);
|
|
22
|
+
}
|
|
23
|
+
function transformParams(method, params) {
|
|
24
|
+
switch (method) {
|
|
25
|
+
case "modify": {
|
|
26
|
+
v.assert(v.string(), params?.order);
|
|
27
|
+
return {
|
|
28
|
+
...params,
|
|
29
|
+
order: JSON.parse(params.order),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
case "convertToMultiSigUser": {
|
|
33
|
+
v.assert(v.string(), params?.authorizedUsers);
|
|
34
|
+
return {
|
|
35
|
+
...params,
|
|
36
|
+
authorizedUsers: JSON.parse(params.authorizedUsers),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
case "cSignerAction": {
|
|
40
|
+
return {
|
|
41
|
+
...params,
|
|
42
|
+
jailSelf: "jailSelf" in params ? null : undefined,
|
|
43
|
+
unjailSelf: "unjailSelf" in params ? null : undefined,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
case "order": {
|
|
47
|
+
v.assert(v.string(), params?.orders);
|
|
48
|
+
return {
|
|
49
|
+
...params,
|
|
50
|
+
orders: JSON.parse(params.orders),
|
|
51
|
+
grouping: params.grouping ?? "na",
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
case "approveAgent": {
|
|
55
|
+
return {
|
|
56
|
+
...params,
|
|
57
|
+
agentName: params.agentName ?? null,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
case "sendAsset": {
|
|
61
|
+
return {
|
|
62
|
+
...params,
|
|
63
|
+
fromSubAccount: params.fromSubAccount ?? "",
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
case "vaultModify": {
|
|
67
|
+
return {
|
|
68
|
+
...params,
|
|
69
|
+
allowDeposits: params.allowDeposits ?? null,
|
|
70
|
+
alwaysCloseOnWithdraw: params.alwaysCloseOnWithdraw ?? null,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
case "setDisplayName": {
|
|
74
|
+
return {
|
|
75
|
+
...params,
|
|
76
|
+
displayName: params.displayName ?? "",
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
case "batchModify": {
|
|
80
|
+
v.assert(v.string(), params?.modifies);
|
|
81
|
+
return {
|
|
82
|
+
...params,
|
|
83
|
+
modifies: JSON.parse(params.modifies),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
case "cancel": {
|
|
87
|
+
v.assert(v.string(), params?.cancels);
|
|
88
|
+
return {
|
|
89
|
+
...params,
|
|
90
|
+
cancels: JSON.parse(params.cancels),
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
case "cancelByCloid": {
|
|
94
|
+
v.assert(v.string(), params?.cancels);
|
|
95
|
+
return {
|
|
96
|
+
...params,
|
|
97
|
+
cancels: JSON.parse(params.cancels),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
case "createVault": {
|
|
101
|
+
return {
|
|
102
|
+
...params,
|
|
103
|
+
nonce: Date.now(),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
case "spotUser": {
|
|
107
|
+
return {
|
|
108
|
+
toggleSpotDusting: {
|
|
109
|
+
...params,
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
case "twapOrder": {
|
|
114
|
+
return {
|
|
115
|
+
twap: {
|
|
116
|
+
...params,
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
default: {
|
|
121
|
+
return {
|
|
122
|
+
...params,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
class EchoTransport {
|
|
128
|
+
isTestnet;
|
|
129
|
+
constructor(isTestnet) {
|
|
130
|
+
this.isTestnet = isTestnet;
|
|
131
|
+
}
|
|
132
|
+
request(endpoint, payload) {
|
|
133
|
+
if (endpoint === "explorer") {
|
|
134
|
+
if (typeof payload === "object" && payload !== null && "type" in payload) {
|
|
135
|
+
if (payload.type === "blockDetails") {
|
|
136
|
+
return new Promise((resolve) => resolve({ blockDetails: payload }));
|
|
137
|
+
}
|
|
138
|
+
else if (payload.type === "txDetails") {
|
|
139
|
+
return new Promise((resolve) => resolve({ tx: payload }));
|
|
140
|
+
}
|
|
141
|
+
else if (payload.type === "userDetails") {
|
|
142
|
+
return new Promise((resolve) => resolve({ txs: payload }));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return new Promise((resolve) => resolve(payload));
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
class ExchangeClientWithoutValidation extends hl.ExchangeClient {
|
|
150
|
+
_validateResponse = () => true;
|
|
151
|
+
}
|
|
152
|
+
async function executeEndpointMethod(endpoint, method, cliArgs) {
|
|
153
|
+
const isTestnet = Boolean(cliArgs?.testnet);
|
|
154
|
+
const timeout = Number(cliArgs.timeout) || undefined;
|
|
155
|
+
const isOffline = Boolean(cliArgs?.offline);
|
|
156
|
+
const transport = isOffline ? new EchoTransport(isTestnet) : new hl.HttpTransport({ isTestnet, timeout });
|
|
157
|
+
let client;
|
|
158
|
+
if (endpoint === "info") {
|
|
159
|
+
if (!isClassMethod(hl.InfoClient, method)) {
|
|
160
|
+
throw new Error(`CLI does not support the "${method}" method in the "info" endpoint`);
|
|
161
|
+
}
|
|
162
|
+
client = new hl.InfoClient({ transport });
|
|
163
|
+
}
|
|
164
|
+
else if (endpoint === "exchange") {
|
|
165
|
+
if (!isClassMethod(hl.ExchangeClient, method)) {
|
|
166
|
+
throw new Error(`CLI does not support the "${method}" method in the "exchange" endpoint`);
|
|
167
|
+
}
|
|
168
|
+
const privateKey = v.parse(v.pipe(Hex, v.minLength(66)), cliArgs["private-key"], { message: 'Invalid format "private-key": Expected 32-byte hexadecimal string' });
|
|
169
|
+
delete cliArgs["private-key"]; // just in case
|
|
170
|
+
const vaultAddress = v.parse(v.optional(v.pipe(Hex, v.minLength(42))), cliArgs.vault, { message: 'Invalid format "vault": Expected 20-byte hexadecimal string OR nothing' });
|
|
171
|
+
client = isOffline
|
|
172
|
+
? new ExchangeClientWithoutValidation({
|
|
173
|
+
transport,
|
|
174
|
+
wallet: privateKey,
|
|
175
|
+
defaultVaultAddress: vaultAddress,
|
|
176
|
+
})
|
|
177
|
+
: new hl.ExchangeClient({
|
|
178
|
+
transport,
|
|
179
|
+
wallet: privateKey,
|
|
180
|
+
defaultVaultAddress: vaultAddress,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
throw new Error(`Invalid endpoint "${endpoint}". Use "info" or "exchange"`);
|
|
185
|
+
}
|
|
186
|
+
// @ts-ignore - dynamic method access
|
|
187
|
+
return await client[method](transformParams(method, cliArgs));
|
|
188
|
+
}
|
|
189
|
+
// ──────────────────── Main ────────────────────
|
|
190
|
+
function printHelp() {
|
|
191
|
+
console.log(`Hyperliquid CLI
|
|
192
|
+
|
|
193
|
+
Usage:
|
|
194
|
+
npx @nktkas/hyperliquid <endpoint> <method> [options]
|
|
195
|
+
|
|
196
|
+
Endpoints:
|
|
197
|
+
info - Query blockchain and market information
|
|
198
|
+
exchange - Execute trading operations (requires --private-key)
|
|
199
|
+
|
|
200
|
+
Common Options:
|
|
201
|
+
--testnet Use testnet instead of mainnet
|
|
202
|
+
--timeout <number> Request timeout in milliseconds (default: 10000)
|
|
203
|
+
--help, -h Show this help message
|
|
204
|
+
--offline Generate transactions offline without broadcasting
|
|
205
|
+
|
|
206
|
+
Exchange Options:
|
|
207
|
+
--private-key <key> Private key for exchange operations (required)
|
|
208
|
+
--vault <address> Vault address for operations
|
|
209
|
+
|
|
210
|
+
=============================================================================
|
|
211
|
+
INFO ENDPOINT METHODS
|
|
212
|
+
=============================================================================
|
|
213
|
+
|
|
214
|
+
Market Data:
|
|
215
|
+
allMids [--dex <string>]
|
|
216
|
+
l2Book --coin <string> [--nSigFigs <2|3|4|5>] [--mantissa <2|5>]
|
|
217
|
+
candleSnapshot --coin <string> --interval <1m|3m|5m|15m|30m|1h|2h|4h|8h|12h|1d|3d|1w|1M>
|
|
218
|
+
--startTime <number> [--endTime <number>]
|
|
219
|
+
fundingHistory --coin <string> --startTime <number> [--endTime <number>]
|
|
220
|
+
predictedFundings (no params)
|
|
221
|
+
recentTrades --coin <string>
|
|
222
|
+
|
|
223
|
+
Exchange Information:
|
|
224
|
+
meta [--dex <string>]
|
|
225
|
+
metaAndAssetCtxs [--dex <string>]
|
|
226
|
+
spotMeta (no params)
|
|
227
|
+
spotMetaAndAssetCtxs (no params)
|
|
228
|
+
exchangeStatus (no params)
|
|
229
|
+
perpDexs (no params)
|
|
230
|
+
perpDexLimits --dex <string>
|
|
231
|
+
spotPairDeployAuctionStatus (no params)
|
|
232
|
+
perpDeployAuctionStatus (no params)
|
|
233
|
+
perpsAtOpenInterestCap [--dex <string>]
|
|
234
|
+
maxMarketOrderNtls (no params)
|
|
235
|
+
liquidatable (no params)
|
|
236
|
+
marginTable --id <number>
|
|
237
|
+
|
|
238
|
+
User Account Data:
|
|
239
|
+
clearinghouseState --user <address> [--dex <string>]
|
|
240
|
+
spotClearinghouseState --user <address> [--dex <string>]
|
|
241
|
+
portfolio --user <address>
|
|
242
|
+
openOrders --user <address> [--dex <string>]
|
|
243
|
+
frontendOpenOrders --user <address> [--dex <string>]
|
|
244
|
+
historicalOrders --user <address>
|
|
245
|
+
orderStatus --user <address> --oid <number|hex>
|
|
246
|
+
userDetails --user <address>
|
|
247
|
+
userFees --user <address>
|
|
248
|
+
userRateLimit --user <address>
|
|
249
|
+
userRole --user <address>
|
|
250
|
+
activeAssetData --user <address> --coin <string>
|
|
251
|
+
isVip --user <address>
|
|
252
|
+
legalCheck --user <address>
|
|
253
|
+
referral --user <address>
|
|
254
|
+
spotDeployState --user <address>
|
|
255
|
+
preTransferCheck --user <address> --source <address>
|
|
256
|
+
maxBuilderFee --user <address> --builder <address>
|
|
257
|
+
webData2 --user <address>
|
|
258
|
+
|
|
259
|
+
User Trading History:
|
|
260
|
+
userFills --user <address> [--aggregateByTime <bool>]
|
|
261
|
+
userFillsByTime --user <address> --startTime <number> [--endTime <number>] [--aggregateByTime <bool>]
|
|
262
|
+
userFunding --user <address> --startTime <number> [--endTime <number>]
|
|
263
|
+
userNonFundingLedgerUpdates --user <address> --startTime <number> [--endTime <number>]
|
|
264
|
+
twapHistory --user <address>
|
|
265
|
+
userTwapSliceFills --user <address>
|
|
266
|
+
userTwapSliceFillsByTime --user <address> --startTime <number> [--endTime <number>] [--aggregateByTime <bool>]
|
|
267
|
+
|
|
268
|
+
Sub-Account & Multi-Sig:
|
|
269
|
+
subAccounts --user <address>
|
|
270
|
+
extraAgents --user <address>
|
|
271
|
+
userToMultiSigSigners --user <address>
|
|
272
|
+
|
|
273
|
+
Vault Information:
|
|
274
|
+
vaultSummaries (no params)
|
|
275
|
+
vaultDetails --vaultAddress <address> [--user <address>]
|
|
276
|
+
leadingVaults --user <address>
|
|
277
|
+
userVaultEquities --user <address>
|
|
278
|
+
|
|
279
|
+
Delegation & Validators:
|
|
280
|
+
delegations --user <address>
|
|
281
|
+
delegatorHistory --user <address>
|
|
282
|
+
delegatorRewards --user <address>
|
|
283
|
+
delegatorSummary --user <address>
|
|
284
|
+
validatorL1Votes (no params)
|
|
285
|
+
validatorSummaries (no params)
|
|
286
|
+
gossipRootIps (no params)
|
|
287
|
+
|
|
288
|
+
Transaction & Block Details:
|
|
289
|
+
txDetails --hash <hex>
|
|
290
|
+
blockDetails --height <number>
|
|
291
|
+
tokenDetails --tokenId <hex>
|
|
292
|
+
|
|
293
|
+
=============================================================================
|
|
294
|
+
EXCHANGE ENDPOINT METHODS
|
|
295
|
+
=============================================================================
|
|
296
|
+
|
|
297
|
+
Trading Operations:
|
|
298
|
+
order --orders <json> [--grouping <na|normalTpsl|positionTpsl>]
|
|
299
|
+
[--builder <json>]
|
|
300
|
+
modify --oid <number|hex> --order <json>
|
|
301
|
+
batchModify --modifies <json>
|
|
302
|
+
cancel --cancels <json>
|
|
303
|
+
cancelByCloid --cancels <json>
|
|
304
|
+
scheduleCancel [--time <number>]
|
|
305
|
+
|
|
306
|
+
TWAP Operations:
|
|
307
|
+
twapOrder --a <number> --b <bool> --s <string> --r <bool> --m <number> --t <bool>
|
|
308
|
+
twapCancel --a <number> --t <number>
|
|
309
|
+
|
|
310
|
+
Position Management:
|
|
311
|
+
updateLeverage --asset <number> --isCross <bool> --leverage <number>
|
|
312
|
+
updateIsolatedMargin --asset <number> --isBuy <bool> --ntli <number>
|
|
313
|
+
|
|
314
|
+
Fund Transfers:
|
|
315
|
+
withdraw3 --destination <address> --amount <string>
|
|
316
|
+
usdSend --destination <address> --amount <string>
|
|
317
|
+
spotSend --destination <address> --token <name:address> --amount <string>
|
|
318
|
+
sendAsset --destination <address> --token <name:address> --amount <string>
|
|
319
|
+
--sourceDex <string> --destinationDex <string> [--fromSubAccount <address>]
|
|
320
|
+
usdClassTransfer --amount <string> --toPerp <bool>
|
|
321
|
+
|
|
322
|
+
Sub-Account Management:
|
|
323
|
+
createSubAccount --name <string>
|
|
324
|
+
subAccountModify --subAccountUser <address> --name <string>
|
|
325
|
+
subAccountTransfer --subAccountUser <address> --isDeposit <bool> --usd <number>
|
|
326
|
+
subAccountSpotTransfer --subAccountUser <address> --isDeposit <bool>
|
|
327
|
+
--token <name:address> --amount <string>
|
|
328
|
+
|
|
329
|
+
Vault Operations:
|
|
330
|
+
createVault --name <string> --description <string> --initialUsd <number>
|
|
331
|
+
vaultModify --vaultAddress <address> [--allowDeposits <bool>]
|
|
332
|
+
[--alwaysCloseOnWithdraw <bool>]
|
|
333
|
+
vaultTransfer --vaultAddress <address> --isDeposit <bool> --usd <number>
|
|
334
|
+
vaultDistribute --vaultAddress <address> --usd <number>
|
|
335
|
+
|
|
336
|
+
Agent & Referrer:
|
|
337
|
+
approveAgent --agentAddress <address> [--agentName <string>]
|
|
338
|
+
approveBuilderFee --maxFeeRate <number> --builder <address>
|
|
339
|
+
registerReferrer --code <string>
|
|
340
|
+
setReferrer --code <string>
|
|
341
|
+
setDisplayName [--displayName <string>]
|
|
342
|
+
|
|
343
|
+
Staking & Delegation:
|
|
344
|
+
tokenDelegate --validator <address> --wei <number> --isUndelegate <bool>
|
|
345
|
+
cDeposit --wei <number>
|
|
346
|
+
cWithdraw --wei <number>
|
|
347
|
+
claimRewards (no params)
|
|
348
|
+
|
|
349
|
+
Spot & EVM Operations:
|
|
350
|
+
spotUser --optOut <bool>
|
|
351
|
+
evmUserModify --usingBigBlocks <bool>
|
|
352
|
+
reserveRequestWeight --weight <number>
|
|
353
|
+
|
|
354
|
+
Multi-Sig & Advanced:
|
|
355
|
+
convertToMultiSigUser --authorizedUsers <json> --threshold <number>
|
|
356
|
+
cSignerAction --jailSelf | --unjailSelf
|
|
357
|
+
noop (no params)
|
|
358
|
+
|
|
359
|
+
=============================================================================
|
|
360
|
+
|
|
361
|
+
Examples:
|
|
362
|
+
# Get all mid prices
|
|
363
|
+
npx @nktkas/hyperliquid info allMids
|
|
364
|
+
|
|
365
|
+
# Get ETH order book with 3 significant figures
|
|
366
|
+
npx @nktkas/hyperliquid info l2Book --coin ETH --nSigFigs 3
|
|
367
|
+
|
|
368
|
+
# Get user's portfolio
|
|
369
|
+
npx @nktkas/hyperliquid info portfolio --user 0x...
|
|
370
|
+
|
|
371
|
+
# Get candle data for BTC
|
|
372
|
+
npx @nktkas/hyperliquid info candleSnapshot --coin BTC --interval 1h --startTime 1700000000000
|
|
373
|
+
|
|
374
|
+
# Place a limit order
|
|
375
|
+
npx @nktkas/hyperliquid exchange order --private-key 0x... --orders '[{\\"a\\":0,\\"b\\":true,\\"p\\":\\"30000\\",\\"s\\":\\"0.1\\",\\"r\\":false,\\"t\\":{\\"limit\\":{\\"tif\\":\\"Gtc\\"}}}]'
|
|
376
|
+
|
|
377
|
+
# Modify an existing order
|
|
378
|
+
npx @nktkas/hyperliquid exchange modify --private-key 0x... --oid 12345 --order '{\\"a\\":0,\\"b\\":true,\\"p\\":\\"31000\\",\\"s\\":\\"0.1\\",\\"r\\":false,\\"t\\":{\\"limit\\":{\\"tif\\":\\"Gtc\\"}}}'
|
|
379
|
+
|
|
380
|
+
# Cancel orders
|
|
381
|
+
npx @nktkas/hyperliquid exchange cancel --private-key 0x... --cancels '[{\\"a\\":0,\\"o\\":12345}]'
|
|
382
|
+
|
|
383
|
+
# Update leverage
|
|
384
|
+
npx @nktkas/hyperliquid exchange updateLeverage --private-key 0x... --asset 0 --isCross true --leverage 5
|
|
385
|
+
|
|
386
|
+
# Withdraw funds
|
|
387
|
+
npx @nktkas/hyperliquid exchange withdraw3 --private-key 0x... --destination 0x... --amount "100.5"
|
|
388
|
+
|
|
389
|
+
# Send USD to another user
|
|
390
|
+
npx @nktkas/hyperliquid exchange usdSend --private-key 0x... --destination 0x... --amount "50.0"
|
|
391
|
+
|
|
392
|
+
# Create a vault
|
|
393
|
+
npx @nktkas/hyperliquid exchange createVault --private-key 0x... --name "My Vault" --description "Test vault" --initialUsd 1000`);
|
|
394
|
+
}
|
|
395
|
+
function findInArgv(types) {
|
|
396
|
+
// Convert to array if one type is passed in
|
|
397
|
+
const typeArray = Array.isArray(types) ? types : [types];
|
|
398
|
+
// Validation functions for each type
|
|
399
|
+
const validators = {
|
|
400
|
+
// to avoid converting them to numbers
|
|
401
|
+
hex: (value) => /^0[xX][0-9a-fA-F]+$/.test(value),
|
|
402
|
+
// to avoid converting them to strings
|
|
403
|
+
bool: (value) => /^(true|false)$/i.test(value),
|
|
404
|
+
// to avoid losing precision in fractional numbers
|
|
405
|
+
number: (value) => /^-?\d+(\.\d+)?([eE][+-]?\d+)?$/.test(value),
|
|
406
|
+
// to avoid converting them to booleans
|
|
407
|
+
empty: (value) => value === "",
|
|
408
|
+
};
|
|
409
|
+
const foundKeys = [];
|
|
410
|
+
for (let i = 0; i < process.argv.length; i++) {
|
|
411
|
+
const arg = process.argv[i];
|
|
412
|
+
// Processing format --key=value
|
|
413
|
+
if (arg.startsWith("--") && arg.includes("=")) {
|
|
414
|
+
const eqIndex = arg.indexOf("=");
|
|
415
|
+
const key = arg.slice(2, eqIndex);
|
|
416
|
+
const value = arg.slice(eqIndex + 1);
|
|
417
|
+
// Check value for all requested types
|
|
418
|
+
for (const type of typeArray) {
|
|
419
|
+
if (validators[type] && validators[type](value)) {
|
|
420
|
+
foundKeys.push(key);
|
|
421
|
+
break; // Don't add duplicates
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
} // Processing format --key value
|
|
425
|
+
else if (arg.startsWith("--") && i + 1 < process.argv.length) {
|
|
426
|
+
const nextArg = process.argv[i + 1];
|
|
427
|
+
const key = arg.slice(2);
|
|
428
|
+
// Check value for all requested types
|
|
429
|
+
for (const type of typeArray) {
|
|
430
|
+
if (validators[type] && validators[type](nextArg)) {
|
|
431
|
+
foundKeys.push(key);
|
|
432
|
+
break; // Don't add duplicates
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
return foundKeys;
|
|
438
|
+
}
|
|
439
|
+
const cliArgs = parseArgs(process.argv.slice(2), {
|
|
440
|
+
boolean: ["testnet", "offline", ...findInArgv("bool")],
|
|
441
|
+
string: ["_", ...findInArgv(["hex", "number", "empty"])],
|
|
442
|
+
});
|
|
443
|
+
const [endpoint, method] = cliArgs._;
|
|
444
|
+
if (cliArgs.help || cliArgs.h || !endpoint || !method) {
|
|
445
|
+
printHelp();
|
|
446
|
+
}
|
|
447
|
+
else {
|
|
448
|
+
executeEndpointMethod(endpoint, method, cliArgs)
|
|
449
|
+
.then((result) => console.log(JSON.stringify(result)))
|
|
450
|
+
.catch((error) => console.error("Error:", error instanceof Error ? error.message : String(error)));
|
|
451
|
+
}
|
|
452
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/bin/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_errors.d.ts","sourceRoot":"","sources":["../../src/src/_errors.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,qBAAa,gBAAiB,SAAQ,KAAK;gBAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIvD"}
|