@nktkas/hyperliquid 0.17.1 → 0.17.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 +42 -4
- package/esm/deps/jsr.io/@std/encoding/1.0.9/_common16.d.ts +23 -0
- package/esm/deps/jsr.io/@std/encoding/1.0.9/_common16.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/encoding/1.0.9/_common16.js +51 -0
- package/esm/deps/jsr.io/@std/encoding/1.0.9/_common_detach.d.ts +4 -0
- package/esm/deps/jsr.io/@std/encoding/1.0.9/_common_detach.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/encoding/1.0.9/_common_detach.js +13 -0
- package/{script/deps/jsr.io/@std/encoding/1.0.7 → esm/deps/jsr.io/@std/encoding/1.0.9}/_types.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/encoding/1.0.9/hex.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/encoding/1.0.9/hex.js +87 -0
- package/esm/src/clients/event.d.ts +25 -2
- package/esm/src/clients/event.d.ts.map +1 -1
- package/esm/src/clients/event.js +31 -0
- package/esm/src/clients/public.d.ts +86 -86
- package/esm/src/clients/public.d.ts.map +1 -1
- package/esm/src/clients/public.js +111 -111
- package/esm/src/clients/wallet.d.ts +36 -13
- package/esm/src/clients/wallet.d.ts.map +1 -1
- package/esm/src/clients/wallet.js +53 -12
- package/esm/src/signing.js +1 -1
- package/esm/src/transports/http/http_transport.d.ts.map +1 -1
- package/esm/src/transports/http/http_transport.js +8 -2
- package/esm/src/types/exchange/requests.d.ts +36 -22
- package/esm/src/types/exchange/requests.d.ts.map +1 -1
- package/esm/src/types/explorer/requests.d.ts +3 -3
- package/esm/src/types/info/accounts.d.ts +14 -1
- package/esm/src/types/info/accounts.d.ts.map +1 -1
- package/esm/src/types/info/orders.d.ts +3 -1
- package/esm/src/types/info/orders.d.ts.map +1 -1
- package/esm/src/types/info/requests.d.ts +2 -2
- package/esm/src/types/info/vaults.d.ts +22 -17
- package/esm/src/types/info/vaults.d.ts.map +1 -1
- package/esm/src/types/subscriptions/requests.d.ts +29 -22
- package/esm/src/types/subscriptions/requests.d.ts.map +1 -1
- package/esm/src/types/subscriptions/responses.d.ts +48 -48
- package/esm/src/types/subscriptions/responses.d.ts.map +1 -1
- package/package.json +1 -1
- package/script/deps/jsr.io/@std/encoding/1.0.9/_common16.d.ts +23 -0
- package/script/deps/jsr.io/@std/encoding/1.0.9/_common16.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/encoding/1.0.9/_common16.js +67 -0
- package/script/deps/jsr.io/@std/encoding/1.0.9/_common_detach.d.ts +4 -0
- package/script/deps/jsr.io/@std/encoding/1.0.9/_common_detach.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/encoding/1.0.9/_common_detach.js +26 -0
- package/{esm/deps/jsr.io/@std/encoding/1.0.7 → script/deps/jsr.io/@std/encoding/1.0.9}/_types.d.ts.map +1 -1
- package/script/deps/jsr.io/@std/encoding/1.0.9/hex.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.9}/hex.js +23 -45
- package/script/src/clients/event.d.ts +25 -2
- package/script/src/clients/event.d.ts.map +1 -1
- package/script/src/clients/event.js +31 -0
- package/script/src/clients/public.d.ts +86 -86
- package/script/src/clients/public.d.ts.map +1 -1
- package/script/src/clients/public.js +111 -111
- package/script/src/clients/wallet.d.ts +36 -13
- package/script/src/clients/wallet.d.ts.map +1 -1
- package/script/src/clients/wallet.js +53 -12
- package/script/src/signing.js +2 -2
- package/script/src/transports/http/http_transport.d.ts.map +1 -1
- package/script/src/transports/http/http_transport.js +8 -2
- package/script/src/types/exchange/requests.d.ts +36 -22
- package/script/src/types/exchange/requests.d.ts.map +1 -1
- package/script/src/types/explorer/requests.d.ts +3 -3
- package/script/src/types/info/accounts.d.ts +14 -1
- package/script/src/types/info/accounts.d.ts.map +1 -1
- package/script/src/types/info/orders.d.ts +3 -1
- package/script/src/types/info/orders.d.ts.map +1 -1
- package/script/src/types/info/requests.d.ts +2 -2
- package/script/src/types/info/vaults.d.ts +22 -17
- package/script/src/types/info/vaults.d.ts.map +1 -1
- package/script/src/types/subscriptions/requests.d.ts +29 -22
- package/script/src/types/subscriptions/requests.d.ts.map +1 -1
- package/script/src/types/subscriptions/responses.d.ts +48 -48
- package/script/src/types/subscriptions/responses.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.d.ts +0 -2
- package/esm/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.js +0 -26
- package/esm/deps/jsr.io/@std/encoding/1.0.7/hex.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/encoding/1.0.7/hex.js +0 -109
- package/script/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.d.ts +0 -2
- package/script/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.d.ts.map +0 -1
- package/script/deps/jsr.io/@std/encoding/1.0.7/_validate_binary_like.js +0 -39
- package/script/deps/jsr.io/@std/encoding/1.0.7/hex.d.ts.map +0 -1
- /package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.9}/_types.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.9}/_types.js +0 -0
- /package/esm/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.9}/hex.d.ts +0 -0
- /package/script/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.9}/_types.d.ts +0 -0
- /package/script/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.9}/_types.js +0 -0
- /package/script/deps/jsr.io/@std/encoding/{1.0.7 → 1.0.9}/hex.d.ts +0 -0
package/README.md
CHANGED
|
@@ -11,13 +11,12 @@ runtimes, written in TypeScript and provided with tests.
|
|
|
11
11
|
## Features
|
|
12
12
|
|
|
13
13
|
- 🖋️ **Typed**: Source code is 100% TypeScript.
|
|
14
|
-
- 🧪 **Tested**: Good code coverage and
|
|
14
|
+
- 🧪 **Tested**: Good code coverage and type-safe API responses.
|
|
15
15
|
- 📦 **Minimal dependencies**: A few small trusted dependencies.
|
|
16
16
|
- 🌐 **Cross-Environment Support**: Compatible with all major JS runtimes.
|
|
17
17
|
- 🔧 **Integratable**: Easy to use with [viem](https://github.com/wevm/viem),
|
|
18
18
|
[ethers](https://github.com/ethers-io/ethers.js) and other wallet libraries.
|
|
19
|
-
- 📚 **Documented**:
|
|
20
|
-
source code.
|
|
19
|
+
- 📚 **Documented**: JSDoc annotations with usage examples in source code.
|
|
21
20
|
|
|
22
21
|
## Installation
|
|
23
22
|
|
|
@@ -38,7 +37,44 @@ bun i @nktkas/hyperliquid
|
|
|
38
37
|
deno add jsr:@nktkas/hyperliquid
|
|
39
38
|
|
|
40
39
|
# web (import directly)
|
|
41
|
-
import * as hl from "https://esm.sh/jsr/@nktkas/hyperliquid"
|
|
40
|
+
import * as hl from "https://esm.sh/jsr/@nktkas/hyperliquid";
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Quick Start
|
|
44
|
+
|
|
45
|
+
```ts
|
|
46
|
+
import * as hl from "@nktkas/hyperliquid";
|
|
47
|
+
|
|
48
|
+
const transport = new hl.HttpTransport();
|
|
49
|
+
const publicClient = new hl.PublicClient({ transport });
|
|
50
|
+
|
|
51
|
+
const openOrders = await publicClient.openOrders({ user: "0x..." });
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
import * as hl from "@nktkas/hyperliquid";
|
|
56
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
57
|
+
|
|
58
|
+
const account = privateKeyToAccount("0x..."); // Change to your private key
|
|
59
|
+
|
|
60
|
+
const transport = new hl.HttpTransport();
|
|
61
|
+
const walletClient = new hl.WalletClient({ wallet: account, transport });
|
|
62
|
+
|
|
63
|
+
const result = await walletClient.order({
|
|
64
|
+
orders: [{
|
|
65
|
+
a: 0, // Asset index
|
|
66
|
+
b: true, // Buy order
|
|
67
|
+
p: "30000", // Price
|
|
68
|
+
s: "0.1", // Size
|
|
69
|
+
r: false, // Not reduce-only
|
|
70
|
+
t: {
|
|
71
|
+
limit: {
|
|
72
|
+
tif: "Gtc", // Good-til-cancelled
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
}],
|
|
76
|
+
grouping: "na", // No grouping
|
|
77
|
+
});
|
|
42
78
|
```
|
|
43
79
|
|
|
44
80
|
## Usage
|
|
@@ -321,6 +357,7 @@ class WalletClient {
|
|
|
321
357
|
claimRewards(): Promise<SuccessResponse>;
|
|
322
358
|
createSubAccount(args: CreateSubAccountParameters): Promise<CreateSubAccountResponse>;
|
|
323
359
|
evmUserModify(args: EvmUserModifyParameters): Promise<SuccessResponse>;
|
|
360
|
+
registerReferrer(args: RegisterReferrerParameters): Promise<SuccessResponse>;
|
|
324
361
|
reserveRequestWeight(args: ReserveRequestWeightParameters): Promise<SuccessResponse>;
|
|
325
362
|
setDisplayName(args: SetDisplayNameParameters): Promise<SuccessResponse>;
|
|
326
363
|
setReferrer(args: SetReferrerParameters): Promise<SuccessResponse>;
|
|
@@ -369,6 +406,7 @@ class EventClient {
|
|
|
369
406
|
activeAssetCtx(args: EventActiveAssetCtxParameters, listener: (data: WsActiveAssetCtx | WsActiveSpotAssetCtx) => void): Promise<Subscription>;
|
|
370
407
|
activeAssetData(args: EventActiveAssetDataParameters, listener: (data: WsActiveAssetData) => void): Promise<Subscription>;
|
|
371
408
|
allMids(listener: (data: WsAllMids) => void): Promise<Subscription>;
|
|
409
|
+
bbo(args: EventBboParameters, listener: (data: WsBbo) => void): Promise<Subscription>;
|
|
372
410
|
candle(args: EventCandleParameters, listener: (data: Candle) => void): Promise<Subscription>;
|
|
373
411
|
l2Book(args: EventL2BookParameters, listener: (data: Book) => void): Promise<Subscription>;
|
|
374
412
|
trades(args: EventTradesParameters, listener: (data: WsTrade[]) => void): Promise<Subscription>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Uint8Array_ } from "./_types.js";
|
|
2
|
+
export type { Uint8Array_ };
|
|
3
|
+
export declare const alphabet: Uint8Array;
|
|
4
|
+
export declare const rAlphabet: Uint8Array;
|
|
5
|
+
/**
|
|
6
|
+
* Calculate the output size needed to encode a given input size for
|
|
7
|
+
* {@linkcode encodeRawHex}.
|
|
8
|
+
*
|
|
9
|
+
* @param originalSize The size of the input buffer.
|
|
10
|
+
* @returns The size of the output buffer.
|
|
11
|
+
*
|
|
12
|
+
* @example Basic Usage
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { assertEquals } from "@std/assert";
|
|
15
|
+
* import { calcSizeHex } from "@std/encoding/unstable-hex";
|
|
16
|
+
*
|
|
17
|
+
* assertEquals(calcSizeHex(1), 2);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function calcSizeHex(originalSize: number): number;
|
|
21
|
+
export declare function encode(buffer: Uint8Array_, i: number, o: number, alphabet: Uint8Array): number;
|
|
22
|
+
export declare function decode(buffer: Uint8Array_, i: number, o: number, alphabet: Uint8Array): number;
|
|
23
|
+
//# sourceMappingURL=_common16.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_common16.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.9/_common16.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,eAAO,MAAM,QAAQ,YAA+C,CAAC;AACrE,eAAO,MAAM,SAAS,YAA+B,CAAC;AAMtD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,MAAM,CACpB,MAAM,EAAE,WAAW,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,UAAU,GACnB,MAAM,CAOR;AAED,wBAAgB,MAAM,CACpB,MAAM,EAAE,WAAW,EACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,UAAU,GACnB,MAAM,CAeR"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
export const alphabet = new TextEncoder().encode("0123456789abcdef");
|
|
3
|
+
export const rAlphabet = new Uint8Array(128).fill(16); // alphabet.Hex.length
|
|
4
|
+
alphabet.forEach((byte, i) => rAlphabet[byte] = i);
|
|
5
|
+
new TextEncoder()
|
|
6
|
+
.encode("ABCDEF")
|
|
7
|
+
.forEach((byte, i) => rAlphabet[byte] = i + 10);
|
|
8
|
+
/**
|
|
9
|
+
* Calculate the output size needed to encode a given input size for
|
|
10
|
+
* {@linkcode encodeRawHex}.
|
|
11
|
+
*
|
|
12
|
+
* @param originalSize The size of the input buffer.
|
|
13
|
+
* @returns The size of the output buffer.
|
|
14
|
+
*
|
|
15
|
+
* @example Basic Usage
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { assertEquals } from "@std/assert";
|
|
18
|
+
* import { calcSizeHex } from "@std/encoding/unstable-hex";
|
|
19
|
+
*
|
|
20
|
+
* assertEquals(calcSizeHex(1), 2);
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function calcSizeHex(originalSize) {
|
|
24
|
+
return originalSize * 2;
|
|
25
|
+
}
|
|
26
|
+
export function encode(buffer, i, o, alphabet) {
|
|
27
|
+
for (; i < buffer.length; ++i) {
|
|
28
|
+
const x = buffer[i];
|
|
29
|
+
buffer[o++] = alphabet[x >> 4];
|
|
30
|
+
buffer[o++] = alphabet[x & 0xF];
|
|
31
|
+
}
|
|
32
|
+
return o;
|
|
33
|
+
}
|
|
34
|
+
export function decode(buffer, i, o, alphabet) {
|
|
35
|
+
if ((buffer.length - o) % 2 === 1) {
|
|
36
|
+
throw new RangeError(`Cannot decode input as hex: Length (${buffer.length - o}) must be divisible by 2`);
|
|
37
|
+
}
|
|
38
|
+
i += 1;
|
|
39
|
+
for (; i < buffer.length; i += 2) {
|
|
40
|
+
buffer[o++] = (getByte(buffer[i - 1], alphabet) << 4) |
|
|
41
|
+
getByte(buffer[i], alphabet);
|
|
42
|
+
}
|
|
43
|
+
return o;
|
|
44
|
+
}
|
|
45
|
+
function getByte(char, alphabet) {
|
|
46
|
+
const byte = alphabet[char] ?? 16;
|
|
47
|
+
if (byte === 16) { // alphabet.Hex.length
|
|
48
|
+
throw new TypeError(`Cannot decode input as hex: Invalid character (${String.fromCharCode(char)})`);
|
|
49
|
+
}
|
|
50
|
+
return byte;
|
|
51
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_common_detach.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.9/_common_detach.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAgB,MAAM,CACpB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,GACd,CAAC,WAAW,EAAE,MAAM,CAAC,CAWvB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
2
|
+
export function detach(buffer, maxSize) {
|
|
3
|
+
const originalSize = buffer.length;
|
|
4
|
+
if (buffer.byteOffset) {
|
|
5
|
+
const b = new Uint8Array(buffer.buffer);
|
|
6
|
+
b.set(buffer);
|
|
7
|
+
buffer = b.subarray(0, originalSize);
|
|
8
|
+
}
|
|
9
|
+
// deno-lint-ignore no-explicit-any
|
|
10
|
+
buffer = new Uint8Array(buffer.buffer.transfer(maxSize));
|
|
11
|
+
buffer.set(buffer.subarray(0, originalSize), maxSize - originalSize);
|
|
12
|
+
return [buffer, maxSize - originalSize];
|
|
13
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.
|
|
1
|
+
{"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.9/_types.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hex.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/encoding/1.0.9/hex.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,CAAC;AAU5B;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAWxE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAKlD"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Copyright 2009 The Go Authors. All rights reserved.
|
|
2
|
+
// https://github.com/golang/go/blob/master/LICENSE
|
|
3
|
+
// Copyright 2018-2025 the Deno authors. MIT license.
|
|
4
|
+
// This module is browser compatible.
|
|
5
|
+
/**
|
|
6
|
+
* Port of the Go
|
|
7
|
+
* {@link https://github.com/golang/go/blob/go1.12.5/src/encoding/hex/hex.go | encoding/hex}
|
|
8
|
+
* library.
|
|
9
|
+
*
|
|
10
|
+
* ```ts
|
|
11
|
+
* import {
|
|
12
|
+
* decodeHex,
|
|
13
|
+
* encodeHex,
|
|
14
|
+
* } from "@std/encoding/hex";
|
|
15
|
+
* import { assertEquals } from "@std/assert";
|
|
16
|
+
*
|
|
17
|
+
* assertEquals(encodeHex("abc"), "616263");
|
|
18
|
+
*
|
|
19
|
+
* assertEquals(
|
|
20
|
+
* decodeHex("616263"),
|
|
21
|
+
* new TextEncoder().encode("abc"),
|
|
22
|
+
* );
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
import { calcSizeHex, decode, encode } from "./_common16.js";
|
|
28
|
+
import { detach } from "./_common_detach.js";
|
|
29
|
+
const alphabet = new TextEncoder()
|
|
30
|
+
.encode("0123456789abcdef");
|
|
31
|
+
const rAlphabet = new Uint8Array(128).fill(16); // alphabet.length
|
|
32
|
+
alphabet.forEach((byte, i) => rAlphabet[byte] = i);
|
|
33
|
+
new TextEncoder()
|
|
34
|
+
.encode("ABCDEF")
|
|
35
|
+
.forEach((byte, i) => rAlphabet[byte] = i + 10);
|
|
36
|
+
/**
|
|
37
|
+
* Converts data into a hex-encoded string.
|
|
38
|
+
*
|
|
39
|
+
* @param src The data to encode.
|
|
40
|
+
*
|
|
41
|
+
* @returns The hex-encoded string.
|
|
42
|
+
*
|
|
43
|
+
* @example Usage
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { encodeHex } from "@std/encoding/hex";
|
|
46
|
+
* import { assertEquals } from "@std/assert";
|
|
47
|
+
*
|
|
48
|
+
* assertEquals(encodeHex("abc"), "616263");
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export function encodeHex(src) {
|
|
52
|
+
if (typeof src === "string") {
|
|
53
|
+
src = new TextEncoder().encode(src);
|
|
54
|
+
}
|
|
55
|
+
else if (src instanceof ArrayBuffer)
|
|
56
|
+
src = new Uint8Array(src).slice();
|
|
57
|
+
else
|
|
58
|
+
src = src.slice();
|
|
59
|
+
const [output, i] = detach(src, calcSizeHex(src.length));
|
|
60
|
+
encode(output, i, 0, alphabet);
|
|
61
|
+
return new TextDecoder().decode(output);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Decodes the given hex-encoded string. If the input is malformed, an error is
|
|
65
|
+
* thrown.
|
|
66
|
+
*
|
|
67
|
+
* @param src The hex-encoded string to decode.
|
|
68
|
+
*
|
|
69
|
+
* @returns The decoded data.
|
|
70
|
+
*
|
|
71
|
+
* @example Usage
|
|
72
|
+
* ```ts
|
|
73
|
+
* import { decodeHex } from "@std/encoding/hex";
|
|
74
|
+
* import { assertEquals } from "@std/assert";
|
|
75
|
+
*
|
|
76
|
+
* assertEquals(
|
|
77
|
+
* decodeHex("616263"),
|
|
78
|
+
* new TextEncoder().encode("abc"),
|
|
79
|
+
* );
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export function decodeHex(src) {
|
|
83
|
+
const output = new TextEncoder().encode(src);
|
|
84
|
+
// deno-lint-ignore no-explicit-any
|
|
85
|
+
return new Uint8Array(output.buffer
|
|
86
|
+
.transfer(decode(output, 0, 0, rAlphabet)));
|
|
87
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ISubscriptionTransport, Subscription } from "../base.js";
|
|
2
|
-
import type { WsActiveAssetCtxRequest, WsActiveAssetDataRequest, WsCandleRequest, WsL2BookRequest, WsNotificationRequest, WsOrderUpdatesRequest, WsTradesRequest, WsUserEventsRequest, WsUserFillsRequest, WsUserFundingsRequest, WsUserNonFundingLedgerUpdatesRequest, WsUserTwapHistoryRequest, WsUserTwapSliceFillsRequest, WsWebData2Request } from "../types/subscriptions/requests.js";
|
|
3
|
-
import type { WsActiveAssetCtx, WsActiveAssetData, WsActiveSpotAssetCtx, WsAllMids, WsBlockDetails, WsNotification, WsTrade, WsUserEvent, WsUserFills, WsUserFundings, WsUserNonFundingLedgerUpdates, WsUserTwapHistory, WsUserTwapSliceFills, WsWebData2 } from "../types/subscriptions/responses.js";
|
|
2
|
+
import type { WsActiveAssetCtxRequest, WsActiveAssetDataRequest, WsBboRequest, WsCandleRequest, WsL2BookRequest, WsNotificationRequest, WsOrderUpdatesRequest, WsTradesRequest, WsUserEventsRequest, WsUserFillsRequest, WsUserFundingsRequest, WsUserNonFundingLedgerUpdatesRequest, WsUserTwapHistoryRequest, WsUserTwapSliceFillsRequest, WsWebData2Request } from "../types/subscriptions/requests.js";
|
|
3
|
+
import type { WsActiveAssetCtx, WsActiveAssetData, WsActiveSpotAssetCtx, WsAllMids, WsBbo, WsBlockDetails, WsNotification, WsTrade, WsUserEvent, WsUserFills, WsUserFundings, WsUserNonFundingLedgerUpdates, WsUserTwapHistory, WsUserTwapSliceFills, WsWebData2 } from "../types/subscriptions/responses.js";
|
|
4
4
|
import type { Candle } from "../types/info/assets.js";
|
|
5
5
|
import type { Book, Order, OrderStatus } from "../types/info/orders.js";
|
|
6
6
|
import type { TxDetails } from "../types/explorer/responses.js";
|
|
@@ -13,6 +13,8 @@ export interface EventClientParameters<T extends ISubscriptionTransport = ISubsc
|
|
|
13
13
|
export type EventActiveAssetCtxParameters = Omit<WsActiveAssetCtxRequest, "type">;
|
|
14
14
|
/** Parameters for the {@linkcode EventClient.activeAssetData} method. */
|
|
15
15
|
export type EventActiveAssetDataParameters = Omit<WsActiveAssetDataRequest, "type">;
|
|
16
|
+
/** Parameters for the {@linkcode EventClient.bbo} method. */
|
|
17
|
+
export type EventBboParameters = Omit<WsBboRequest, "type">;
|
|
16
18
|
/** Parameters for the {@linkcode EventClient.candle} method. */
|
|
17
19
|
export type EventCandleParameters = Omit<WsCandleRequest, "type">;
|
|
18
20
|
/** Parameters for the {@linkcode EventClient.l2Book} method. */
|
|
@@ -119,6 +121,27 @@ export declare class EventClient<T extends ISubscriptionTransport = ISubscriptio
|
|
|
119
121
|
* ```
|
|
120
122
|
*/
|
|
121
123
|
allMids(listener: (data: WsAllMids) => void, signal?: AbortSignal): Promise<Subscription>;
|
|
124
|
+
/**
|
|
125
|
+
* Subscribe to best bid and offer updates for a specific asset.
|
|
126
|
+
* @param args - The parameters for the subscription.
|
|
127
|
+
* @param listener - The callback function to be called when the event is received.
|
|
128
|
+
* @param signal - An optional abort signal for canceling the subscription request.
|
|
129
|
+
* @returns A promise that resolves with a {@link Subscription} object to manage the subscription lifecycle.
|
|
130
|
+
*
|
|
131
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
132
|
+
* @example
|
|
133
|
+
* ```ts
|
|
134
|
+
* import * as hl from "@nktkas/hyperliquid";
|
|
135
|
+
*
|
|
136
|
+
* const transport = new hl.WebSocketTransport();
|
|
137
|
+
* const client = new hl.EventClient({ transport });
|
|
138
|
+
*
|
|
139
|
+
* const sub = await client.bbo({ coin: "BTC" }, (data) => {
|
|
140
|
+
* console.log(data);
|
|
141
|
+
* });
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
bbo(args: EventBboParameters, listener: (data: WsBbo) => void, signal?: AbortSignal): Promise<Subscription>;
|
|
122
145
|
/**
|
|
123
146
|
* Subscribe to candlestick data updates for a specific asset.
|
|
124
147
|
* @param args - The parameters for the subscription.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/src/clients/event.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/src/clients/event.ts"],"names":[],"mappings":"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"}
|
package/esm/src/clients/event.js
CHANGED
|
@@ -116,6 +116,37 @@ export class EventClient {
|
|
|
116
116
|
listener(event.detail);
|
|
117
117
|
}, signal);
|
|
118
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Subscribe to best bid and offer updates for a specific asset.
|
|
121
|
+
* @param args - The parameters for the subscription.
|
|
122
|
+
* @param listener - The callback function to be called when the event is received.
|
|
123
|
+
* @param signal - An optional abort signal for canceling the subscription request.
|
|
124
|
+
* @returns A promise that resolves with a {@link Subscription} object to manage the subscription lifecycle.
|
|
125
|
+
*
|
|
126
|
+
* @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* import * as hl from "@nktkas/hyperliquid";
|
|
130
|
+
*
|
|
131
|
+
* const transport = new hl.WebSocketTransport();
|
|
132
|
+
* const client = new hl.EventClient({ transport });
|
|
133
|
+
*
|
|
134
|
+
* const sub = await client.bbo({ coin: "BTC" }, (data) => {
|
|
135
|
+
* console.log(data);
|
|
136
|
+
* });
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
bbo(args, listener, signal) {
|
|
140
|
+
const payload = {
|
|
141
|
+
type: "bbo",
|
|
142
|
+
coin: args.coin,
|
|
143
|
+
};
|
|
144
|
+
return this.transport.subscribe(payload.type, payload, (event) => {
|
|
145
|
+
if (event.detail.coin === args.coin) {
|
|
146
|
+
listener(event.detail);
|
|
147
|
+
}
|
|
148
|
+
}, signal);
|
|
149
|
+
}
|
|
119
150
|
/**
|
|
120
151
|
* Subscribe to candlestick data updates for a specific asset.
|
|
121
152
|
* @param args - The parameters for the subscription.
|