@nktkas/hyperliquid 0.17.2 → 0.17.4

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 (84) hide show
  1. package/README.md +41 -4
  2. package/{script/deps/jsr.io/@noble/hashes/1.7.1 → esm/deps/jsr.io/@noble/hashes/1.8.0}/src/_u64.d.ts +1 -1
  3. package/esm/deps/jsr.io/@noble/hashes/1.8.0/src/_u64.d.ts.map +1 -0
  4. package/esm/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/_u64.js +5 -4
  5. package/esm/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/crypto.d.ts.map +1 -1
  6. package/esm/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/sha3.d.ts +6 -5
  7. package/esm/deps/jsr.io/@noble/hashes/1.8.0/src/sha3.d.ts.map +1 -0
  8. package/esm/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/sha3.js +63 -52
  9. package/{script/deps/jsr.io/@noble/hashes/1.7.1 → esm/deps/jsr.io/@noble/hashes/1.8.0}/src/utils.d.ts +60 -19
  10. package/esm/deps/jsr.io/@noble/hashes/1.8.0/src/utils.d.ts.map +1 -0
  11. package/esm/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/utils.js +94 -25
  12. package/{script/deps/jsr.io/@std/encoding/1.0.8 → esm/deps/jsr.io/@std/encoding/1.0.9}/_common16.d.ts +5 -3
  13. package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common16.d.ts.map +1 -1
  14. package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common16.js +9 -3
  15. package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common_detach.d.ts.map +1 -1
  16. package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_types.d.ts.map +1 -1
  17. package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/hex.d.ts.map +1 -1
  18. package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/hex.js +2 -2
  19. package/esm/src/clients/public.d.ts +85 -85
  20. package/esm/src/clients/public.d.ts.map +1 -1
  21. package/esm/src/clients/public.js +110 -110
  22. package/esm/src/signing.js +2 -2
  23. package/esm/src/transports/http/http_transport.d.ts +69 -8
  24. package/esm/src/transports/http/http_transport.d.ts.map +1 -1
  25. package/esm/src/transports/http/http_transport.js +65 -12
  26. package/esm/src/types/info/accounts.d.ts +1 -0
  27. package/esm/src/types/info/accounts.d.ts.map +1 -1
  28. package/esm/src/types/info/assets.d.ts +2 -0
  29. package/esm/src/types/info/assets.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/{esm/deps/jsr.io/@noble/hashes/1.7.1 → script/deps/jsr.io/@noble/hashes/1.8.0}/src/_u64.d.ts +1 -1
  32. package/script/deps/jsr.io/@noble/hashes/1.8.0/src/_u64.d.ts.map +1 -0
  33. package/script/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/_u64.js +6 -5
  34. package/script/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/crypto.d.ts.map +1 -1
  35. package/script/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/sha3.d.ts +6 -5
  36. package/script/deps/jsr.io/@noble/hashes/1.8.0/src/sha3.d.ts.map +1 -0
  37. package/script/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/sha3.js +69 -58
  38. package/{esm/deps/jsr.io/@noble/hashes/1.7.1 → script/deps/jsr.io/@noble/hashes/1.8.0}/src/utils.d.ts +60 -19
  39. package/script/deps/jsr.io/@noble/hashes/1.8.0/src/utils.d.ts.map +1 -0
  40. package/script/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/utils.js +111 -34
  41. package/{esm/deps/jsr.io/@std/encoding/1.0.8 → script/deps/jsr.io/@std/encoding/1.0.9}/_common16.d.ts +5 -3
  42. package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common16.d.ts.map +1 -1
  43. package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common16.js +11 -4
  44. package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common_detach.d.ts.map +1 -1
  45. package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_types.d.ts.map +1 -1
  46. package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/hex.d.ts.map +1 -1
  47. package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/hex.js +1 -1
  48. package/script/src/clients/public.d.ts +85 -85
  49. package/script/src/clients/public.d.ts.map +1 -1
  50. package/script/src/clients/public.js +110 -110
  51. package/script/src/signing.js +3 -3
  52. package/script/src/transports/http/http_transport.d.ts +69 -8
  53. package/script/src/transports/http/http_transport.d.ts.map +1 -1
  54. package/script/src/transports/http/http_transport.js +65 -12
  55. package/script/src/types/info/accounts.d.ts +1 -0
  56. package/script/src/types/info/accounts.d.ts.map +1 -1
  57. package/script/src/types/info/assets.d.ts +2 -0
  58. package/script/src/types/info/assets.d.ts.map +1 -1
  59. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.d.ts +0 -23
  60. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.d.ts.map +0 -1
  61. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.js +0 -43
  62. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.d.ts.map +0 -1
  63. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.d.ts.map +0 -1
  64. package/esm/deps/jsr.io/@noble/hashes/1.7.1/src/utils.d.ts.map +0 -1
  65. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.d.ts +0 -23
  66. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.d.ts.map +0 -1
  67. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_assert.js +0 -59
  68. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/_u64.d.ts.map +0 -1
  69. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/sha3.d.ts.map +0 -1
  70. package/script/deps/jsr.io/@noble/hashes/1.7.1/src/utils.d.ts.map +0 -1
  71. /package/esm/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/crypto.d.ts +0 -0
  72. /package/esm/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/crypto.js +0 -0
  73. /package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common_detach.d.ts +0 -0
  74. /package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common_detach.js +0 -0
  75. /package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_types.d.ts +0 -0
  76. /package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_types.js +0 -0
  77. /package/esm/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/hex.d.ts +0 -0
  78. /package/script/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/crypto.d.ts +0 -0
  79. /package/script/deps/jsr.io/@noble/hashes/{1.7.1 → 1.8.0}/src/crypto.js +0 -0
  80. /package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common_detach.d.ts +0 -0
  81. /package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_common_detach.js +0 -0
  82. /package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_types.d.ts +0 -0
  83. /package/script/deps/jsr.io/@std/encoding/{1.0.8 → 1.0.9}/_types.js +0 -0
  84. /package/script/deps/jsr.io/@std/encoding/{1.0.8 → 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 guarantee of type validity.
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**: Comprehensive documentation and usage examples, provided directly in JSDoc annotations within the
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
@@ -412,6 +448,7 @@ class HttpTransport {
412
448
  constructor(options?: {
413
449
  isTestnet?: boolean; // Whether to use testnet url (default: false)
414
450
  timeout?: number; // Request timeout in ms (default: 10_000)
451
+ server?: "api" | "api2" | "api-ui"; // Server URL (default: "api" = "https://api.hyperliquid.xyz")
415
452
  fetchOptions?: RequestInit; // A custom fetch options
416
453
  onRequest?: (request: Request) => MaybePromise<Request | void | null | undefined>; // A callback before request is sent
417
454
  onResponse?: (response: Response) => MaybePromise<Response | void | null | undefined>; // A callback after response is received
@@ -26,7 +26,7 @@ declare const add4L: (Al: number, Bl: number, Cl: number, Dl: number) => number;
26
26
  declare const add4H: (low: number, Ah: number, Bh: number, Ch: number, Dh: number) => number;
27
27
  declare const add5L: (Al: number, Bl: number, Cl: number, Dl: number, El: number) => number;
28
28
  declare const add5H: (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) => number;
29
- export { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };
29
+ export { add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig };
30
30
  declare const u64: {
31
31
  fromBig: typeof fromBig;
32
32
  split: typeof split;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_u64.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@noble/hashes/1.8.0/src/_u64.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,10 @@ function fromBig(n, le = false) {
11
11
  return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };
12
12
  }
13
13
  function split(lst, le = false) {
14
- let Ah = new Uint32Array(lst.length);
15
- let Al = new Uint32Array(lst.length);
16
- for (let i = 0; i < lst.length; i++) {
14
+ const len = lst.length;
15
+ let Ah = new Uint32Array(len);
16
+ let Al = new Uint32Array(len);
17
+ for (let i = 0; i < len; i++) {
17
18
  const { h, l } = fromBig(lst[i], le);
18
19
  [Ah[i], Al[i]] = [h, l];
19
20
  }
@@ -52,7 +53,7 @@ const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0
52
53
  const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);
53
54
  const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;
54
55
  // prettier-ignore
55
- export { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };
56
+ export { add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig };
56
57
  // prettier-ignore
57
58
  const u64 = {
58
59
  fromBig, split, toBig,
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@noble/hashes/1.7.1/src/crypto.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM,EAAE,GACqE,CAAC"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@noble/hashes/1.8.0/src/crypto.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,MAAM,EAAE,GACqE,CAAC"}
@@ -3,18 +3,19 @@ import { Hash, type CHash, type CHashXO, type HashXOF, type Input } from './util
3
3
  export declare function keccakP(s: Uint32Array, rounds?: number): void;
4
4
  /** Keccak sponge function. */
5
5
  export declare class Keccak extends Hash<Keccak> implements HashXOF<Keccak> {
6
- blockLen: number;
7
- suffix: number;
8
- outputLen: number;
9
- protected enableXOF: boolean;
10
- protected rounds: number;
11
6
  protected state: Uint8Array;
12
7
  protected pos: number;
13
8
  protected posOut: number;
14
9
  protected finished: boolean;
15
10
  protected state32: Uint32Array;
16
11
  protected destroyed: boolean;
12
+ blockLen: number;
13
+ suffix: number;
14
+ outputLen: number;
15
+ protected enableXOF: boolean;
16
+ protected rounds: number;
17
17
  constructor(blockLen: number, suffix: number, outputLen: number, enableXOF?: boolean, rounds?: number);
18
+ clone(): Keccak;
18
19
  protected keccak(): void;
19
20
  update(data: Input): this;
20
21
  protected finish(): void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sha3.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@noble/hashes/1.8.0/src/sha3.ts"],"names":[],"mappings":"AAaA,OAAO,EAE6B,IAAI,EAGtC,KAAK,KAAK,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EACnD,MAAM,YAAY,CAAC;AAoCpB,kFAAkF;AAClF,wBAAgB,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CAyCjE;AAED,8BAA8B;AAC9B,qBAAa,MAAO,SAAQ,IAAI,CAAC,MAAM,CAAE,YAAW,OAAO,CAAC,MAAM,CAAC;IACjE,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC;IAC5B,SAAS,CAAC,GAAG,SAAK;IAClB,SAAS,CAAC,MAAM,SAAK;IACrB,SAAS,CAAC,QAAQ,UAAS;IAC3B,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,SAAS,CAAC,SAAS,UAAS;IAErB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,SAAS,UAAS;IAC5B,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;gBAIvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,UAAQ,EACjB,MAAM,GAAE,MAAW;IAiBrB,KAAK,IAAI,MAAM;IAGf,SAAS,CAAC,MAAM,IAAI,IAAI;IAOxB,MAAM,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAazB,SAAS,CAAC,MAAM,IAAI,IAAI;IAUxB,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU;IAehD,OAAO,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU;IAKpC,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAI9B,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU;IAOvC,MAAM,IAAI,UAAU;IAGpB,OAAO,IAAI,IAAI;IAIf,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;CAehC;AAKD,8BAA8B;AAC9B,eAAO,MAAM,QAAQ,EAAE,KAAyD,CAAC;AACjF,yDAAyD;AACzD,eAAO,MAAM,QAAQ,EAAE,KAAyD,CAAC;AACjF,8BAA8B;AAC9B,eAAO,MAAM,QAAQ,EAAE,KAAyD,CAAC;AACjF,8BAA8B;AAC9B,eAAO,MAAM,QAAQ,EAAE,KAAwD,CAAC;AAEhF,gCAAgC;AAChC,eAAO,MAAM,UAAU,EAAE,KAAyD,CAAC;AACnF,yDAAyD;AACzD,eAAO,MAAM,UAAU,EAAE,KAAyD,CAAC;AACnF,gCAAgC;AAChC,eAAO,MAAM,UAAU,EAAE,KAAyD,CAAC;AACnF,gCAAgC;AAChC,eAAO,MAAM,UAAU,EAAE,KAAwD,CAAC;AAElF,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAQ3C,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,EAAE,OAAgE,CAAC;AACxF,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,EAAE,OAAgE,CAAC"}
@@ -9,19 +9,21 @@
9
9
  * Check out `sha3-addons` module for cSHAKE, k12, and others.
10
10
  * @module
11
11
  */
12
- import { abytes, aexists, anumber, aoutput } from './_assert.js';
13
12
  import { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';
14
- import { byteSwap32, Hash, isLE, toBytes, u32, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';
13
+ // prettier-ignore
14
+ import { abytes, aexists, anumber, aoutput, clean, createHasher, createXOFer, Hash, swap32IfBE, toBytes, u32 } from './utils.js';
15
+ // No __PURE__ annotations in sha3 header:
16
+ // EVERYTHING is in fact used on every export.
15
17
  // Various per round constants calculations
18
+ const _0n = BigInt(0);
19
+ const _1n = BigInt(1);
20
+ const _2n = BigInt(2);
21
+ const _7n = BigInt(7);
22
+ const _256n = BigInt(256);
23
+ const _0x71n = BigInt(0x71);
16
24
  const SHA3_PI = [];
17
25
  const SHA3_ROTL = [];
18
26
  const _SHA3_IOTA = [];
19
- const _0n = /* @__PURE__ */ BigInt(0);
20
- const _1n = /* @__PURE__ */ BigInt(1);
21
- const _2n = /* @__PURE__ */ BigInt(2);
22
- const _7n = /* @__PURE__ */ BigInt(7);
23
- const _256n = /* @__PURE__ */ BigInt(256);
24
- const _0x71n = /* @__PURE__ */ BigInt(0x71);
25
27
  for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {
26
28
  // Pi
27
29
  [x, y] = [y, (2 * x + 3 * y) % 5];
@@ -37,7 +39,9 @@ for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {
37
39
  }
38
40
  _SHA3_IOTA.push(t);
39
41
  }
40
- const [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);
42
+ const IOTAS = split(_SHA3_IOTA, true);
43
+ const SHA3_IOTA_H = IOTAS[0];
44
+ const SHA3_IOTA_L = IOTAS[1];
41
45
  // Left rotation (without 0, 32, 64)
42
46
  const rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));
43
47
  const rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));
@@ -85,101 +89,108 @@ export function keccakP(s, rounds = 24) {
85
89
  s[0] ^= SHA3_IOTA_H[round];
86
90
  s[1] ^= SHA3_IOTA_L[round];
87
91
  }
88
- B.fill(0);
92
+ clean(B);
89
93
  }
90
94
  /** Keccak sponge function. */
91
95
  export class Keccak extends Hash {
92
96
  // NOTE: we accept arguments in bytes instead of bits here.
93
97
  constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {
94
98
  super();
95
- Object.defineProperty(this, "blockLen", {
99
+ Object.defineProperty(this, "state", {
96
100
  enumerable: true,
97
101
  configurable: true,
98
102
  writable: true,
99
- value: blockLen
103
+ value: void 0
100
104
  });
101
- Object.defineProperty(this, "suffix", {
105
+ Object.defineProperty(this, "pos", {
102
106
  enumerable: true,
103
107
  configurable: true,
104
108
  writable: true,
105
- value: suffix
109
+ value: 0
106
110
  });
107
- Object.defineProperty(this, "outputLen", {
111
+ Object.defineProperty(this, "posOut", {
108
112
  enumerable: true,
109
113
  configurable: true,
110
114
  writable: true,
111
- value: outputLen
115
+ value: 0
112
116
  });
113
- Object.defineProperty(this, "enableXOF", {
117
+ Object.defineProperty(this, "finished", {
114
118
  enumerable: true,
115
119
  configurable: true,
116
120
  writable: true,
117
- value: enableXOF
121
+ value: false
118
122
  });
119
- Object.defineProperty(this, "rounds", {
123
+ Object.defineProperty(this, "state32", {
120
124
  enumerable: true,
121
125
  configurable: true,
122
126
  writable: true,
123
- value: rounds
127
+ value: void 0
124
128
  });
125
- Object.defineProperty(this, "state", {
129
+ Object.defineProperty(this, "destroyed", {
126
130
  enumerable: true,
127
131
  configurable: true,
128
132
  writable: true,
129
- value: void 0
133
+ value: false
130
134
  });
131
- Object.defineProperty(this, "pos", {
135
+ Object.defineProperty(this, "blockLen", {
132
136
  enumerable: true,
133
137
  configurable: true,
134
138
  writable: true,
135
- value: 0
139
+ value: void 0
136
140
  });
137
- Object.defineProperty(this, "posOut", {
141
+ Object.defineProperty(this, "suffix", {
138
142
  enumerable: true,
139
143
  configurable: true,
140
144
  writable: true,
141
- value: 0
145
+ value: void 0
142
146
  });
143
- Object.defineProperty(this, "finished", {
147
+ Object.defineProperty(this, "outputLen", {
144
148
  enumerable: true,
145
149
  configurable: true,
146
150
  writable: true,
147
- value: false
151
+ value: void 0
148
152
  });
149
- Object.defineProperty(this, "state32", {
153
+ Object.defineProperty(this, "enableXOF", {
150
154
  enumerable: true,
151
155
  configurable: true,
152
156
  writable: true,
153
- value: void 0
157
+ value: false
154
158
  });
155
- Object.defineProperty(this, "destroyed", {
159
+ Object.defineProperty(this, "rounds", {
156
160
  enumerable: true,
157
161
  configurable: true,
158
162
  writable: true,
159
- value: false
163
+ value: void 0
160
164
  });
165
+ this.blockLen = blockLen;
166
+ this.suffix = suffix;
167
+ this.outputLen = outputLen;
168
+ this.enableXOF = enableXOF;
169
+ this.rounds = rounds;
161
170
  // Can be passed from user as dkLen
162
171
  anumber(outputLen);
163
172
  // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes
164
173
  // 0 < blockLen < 200
165
- if (0 >= this.blockLen || this.blockLen >= 200)
166
- throw new Error('Sha3 supports only keccak-f1600 function');
174
+ if (!(0 < blockLen && blockLen < 200))
175
+ throw new Error('only keccak-f1600 function is supported');
167
176
  this.state = new Uint8Array(200);
168
177
  this.state32 = u32(this.state);
169
178
  }
179
+ clone() {
180
+ return this._cloneInto();
181
+ }
170
182
  keccak() {
171
- if (!isLE)
172
- byteSwap32(this.state32);
183
+ swap32IfBE(this.state32);
173
184
  keccakP(this.state32, this.rounds);
174
- if (!isLE)
175
- byteSwap32(this.state32);
185
+ swap32IfBE(this.state32);
176
186
  this.posOut = 0;
177
187
  this.pos = 0;
178
188
  }
179
189
  update(data) {
180
190
  aexists(this);
181
- const { blockLen, state } = this;
182
191
  data = toBytes(data);
192
+ abytes(data);
193
+ const { blockLen, state } = this;
183
194
  const len = data.length;
184
195
  for (let pos = 0; pos < len;) {
185
196
  const take = Math.min(blockLen - this.pos, len - pos);
@@ -241,7 +252,7 @@ export class Keccak extends Hash {
241
252
  }
242
253
  destroy() {
243
254
  this.destroyed = true;
244
- this.state.fill(0);
255
+ clean(this.state);
245
256
  }
246
257
  _cloneInto(to) {
247
258
  const { blockLen, suffix, outputLen, rounds, enableXOF } = this;
@@ -259,25 +270,25 @@ export class Keccak extends Hash {
259
270
  return to;
260
271
  }
261
272
  }
262
- const gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));
273
+ const gen = (suffix, blockLen, outputLen) => createHasher(() => new Keccak(blockLen, suffix, outputLen));
263
274
  /** SHA3-224 hash function. */
264
- export const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);
275
+ export const sha3_224 = /* @__PURE__ */ (() => gen(0x06, 144, 224 / 8))();
265
276
  /** SHA3-256 hash function. Different from keccak-256. */
266
- export const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);
277
+ export const sha3_256 = /* @__PURE__ */ (() => gen(0x06, 136, 256 / 8))();
267
278
  /** SHA3-384 hash function. */
268
- export const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);
279
+ export const sha3_384 = /* @__PURE__ */ (() => gen(0x06, 104, 384 / 8))();
269
280
  /** SHA3-512 hash function. */
270
- export const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);
281
+ export const sha3_512 = /* @__PURE__ */ (() => gen(0x06, 72, 512 / 8))();
271
282
  /** keccak-224 hash function. */
272
- export const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);
283
+ export const keccak_224 = /* @__PURE__ */ (() => gen(0x01, 144, 224 / 8))();
273
284
  /** keccak-256 hash function. Different from SHA3-256. */
274
- export const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);
285
+ export const keccak_256 = /* @__PURE__ */ (() => gen(0x01, 136, 256 / 8))();
275
286
  /** keccak-384 hash function. */
276
- export const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);
287
+ export const keccak_384 = /* @__PURE__ */ (() => gen(0x01, 104, 384 / 8))();
277
288
  /** keccak-512 hash function. */
278
- export const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);
279
- const genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));
289
+ export const keccak_512 = /* @__PURE__ */ (() => gen(0x01, 72, 512 / 8))();
290
+ const genShake = (suffix, blockLen, outputLen) => createXOFer((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));
280
291
  /** SHAKE128 XOF with 128-bit security. */
281
- export const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);
292
+ export const shake128 = /* @__PURE__ */ (() => genShake(0x1f, 168, 128 / 8))();
282
293
  /** SHAKE256 XOF with 256-bit security. */
283
- export const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);
294
+ export const shake256 = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))();
@@ -3,10 +3,27 @@
3
3
  * @module
4
4
  */
5
5
  /*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
6
+ /** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */
6
7
  export declare function isBytes(a: unknown): a is Uint8Array;
8
+ /** Asserts something is positive integer. */
9
+ export declare function anumber(n: number): void;
10
+ /** Asserts something is Uint8Array. */
11
+ export declare function abytes(b: Uint8Array | undefined, ...lengths: number[]): void;
12
+ /** Asserts something is hash */
13
+ export declare function ahash(h: IHash): void;
14
+ /** Asserts a hash instance has not been destroyed / finished */
15
+ export declare function aexists(instance: any, checkFinished?: boolean): void;
16
+ /** Asserts output is properly-sized byte array */
17
+ export declare function aoutput(out: any, instance: any): void;
18
+ /** Generic type encompassing 8/16/32-byte arrays - but not 64-byte. */
7
19
  export type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array | Uint16Array | Int16Array | Uint32Array | Int32Array;
20
+ /** Cast u8 / u16 / u32 to u8. */
8
21
  export declare function u8(arr: TypedArray): Uint8Array;
22
+ /** Cast u8 / u16 / u32 to u32. */
9
23
  export declare function u32(arr: TypedArray): Uint32Array;
24
+ /** Zeroize a byte array. Warning: JS provides no guarantees. */
25
+ export declare function clean(...arrays: TypedArray[]): void;
26
+ /** Create DataView of an array for easy byte-level manipulation. */
10
27
  export declare function createView(arr: TypedArray): DataView;
11
28
  /** The rotate right (circular right shift) operation for uint32 */
12
29
  export declare function rotr(word: number, shift: number): number;
@@ -14,18 +31,22 @@ export declare function rotr(word: number, shift: number): number;
14
31
  export declare function rotl(word: number, shift: number): number;
15
32
  /** Is current platform little-endian? Most are. Big-Endian platform: IBM */
16
33
  export declare const isLE: boolean;
34
+ /** The byte swap operation for uint32 */
17
35
  export declare function byteSwap(word: number): number;
18
36
  /** Conditionally byte swap if on a big-endian platform */
19
- export declare const byteSwapIfBE: (n: number) => number;
37
+ export declare const swap8IfBE: (n: number) => number;
38
+ /** @deprecated */
39
+ export declare const byteSwapIfBE: typeof swap8IfBE;
20
40
  /** In place byte swap for Uint32Array */
21
- export declare function byteSwap32(arr: Uint32Array): void;
41
+ export declare function byteSwap32(arr: Uint32Array): Uint32Array;
42
+ export declare const swap32IfBE: (u: Uint32Array) => Uint32Array;
22
43
  /**
23
- * Convert byte array to hex string.
44
+ * Convert byte array to hex string. Uses built-in function, when available.
24
45
  * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'
25
46
  */
26
47
  export declare function bytesToHex(bytes: Uint8Array): string;
27
48
  /**
28
- * Convert hex string to byte array.
49
+ * Convert hex string to byte array. Uses built-in function, when available.
29
50
  * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])
30
51
  */
31
52
  export declare function hexToBytes(hex: string): Uint8Array;
@@ -38,22 +59,41 @@ export declare const nextTick: () => Promise<void>;
38
59
  /** Returns control to thread each 'tick' ms to avoid blocking. */
39
60
  export declare function asyncLoop(iters: number, tick: number, cb: (i: number) => void): Promise<void>;
40
61
  /**
41
- * Convert JS string to byte array.
42
- * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])
62
+ * Converts string to bytes using UTF8 encoding.
63
+ * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])
43
64
  */
44
65
  export declare function utf8ToBytes(str: string): Uint8Array;
66
+ /**
67
+ * Converts bytes to string using UTF8 encoding.
68
+ * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'
69
+ */
70
+ export declare function bytesToUtf8(bytes: Uint8Array): string;
45
71
  /** Accepted input of hash functions. Strings are converted to byte arrays. */
46
- export type Input = Uint8Array | string;
72
+ export type Input = string | Uint8Array;
47
73
  /**
48
74
  * Normalizes (non-hex) string or Uint8Array to Uint8Array.
49
75
  * Warning: when Uint8Array is passed, it would NOT get copied.
50
76
  * Keep in mind for future mutable operations.
51
77
  */
52
78
  export declare function toBytes(data: Input): Uint8Array;
79
+ /** KDFs can accept string or Uint8Array for user convenience. */
80
+ export type KDFInput = string | Uint8Array;
53
81
  /**
54
- * Copies several Uint8Arrays into one.
82
+ * Helper for KDFs: consumes uint8array or string.
83
+ * When string is passed, does utf8 decoding, using TextDecoder.
55
84
  */
85
+ export declare function kdfInputToBytes(data: KDFInput): Uint8Array;
86
+ /** Copies several Uint8Arrays into one. */
56
87
  export declare function concatBytes(...arrays: Uint8Array[]): Uint8Array;
88
+ type EmptyObj = {};
89
+ export declare function checkOpts<T1 extends EmptyObj, T2 extends EmptyObj>(defaults: T1, opts?: T2): T1 & T2;
90
+ /** Hash interface. */
91
+ export type IHash = {
92
+ (data: Uint8Array): Uint8Array;
93
+ blockLen: number;
94
+ outputLen: number;
95
+ create: any;
96
+ };
57
97
  /** For runtime check if class implements interface */
58
98
  export declare abstract class Hash<T extends Hash<T>> {
59
99
  abstract blockLen: number;
@@ -75,7 +115,7 @@ export declare abstract class Hash<T extends Hash<T>> {
75
115
  * There are no guarantees for clean-up because it's impossible in JS.
76
116
  */
77
117
  abstract _cloneInto(to?: T): T;
78
- clone(): T;
118
+ abstract clone(): T;
79
119
  }
80
120
  /**
81
121
  * XOF: streaming API to read digest in chunks.
@@ -87,33 +127,34 @@ export type HashXOF<T extends Hash<T>> = Hash<T> & {
87
127
  xof(bytes: number): Uint8Array;
88
128
  xofInto(buf: Uint8Array): Uint8Array;
89
129
  };
90
- type EmptyObj = {};
91
- export declare function checkOpts<T1 extends EmptyObj, T2 extends EmptyObj>(defaults: T1, opts?: T2): T1 & T2;
92
130
  /** Hash function */
93
- export type CHash = ReturnType<typeof wrapConstructor>;
131
+ export type CHash = ReturnType<typeof createHasher>;
94
132
  /** Hash function with output */
95
- export type CHashO = ReturnType<typeof wrapConstructorWithOpts>;
133
+ export type CHashO = ReturnType<typeof createOptHasher>;
96
134
  /** XOF with output */
97
- export type CHashXO = ReturnType<typeof wrapXOFConstructorWithOpts>;
135
+ export type CHashXO = ReturnType<typeof createXOFer>;
98
136
  /** Wraps hash function, creating an interface on top of it */
99
- export declare function wrapConstructor<T extends Hash<T>>(hashCons: () => Hash<T>): {
137
+ export declare function createHasher<T extends Hash<T>>(hashCons: () => Hash<T>): {
100
138
  (msg: Input): Uint8Array;
101
139
  outputLen: number;
102
140
  blockLen: number;
103
141
  create(): Hash<T>;
104
142
  };
105
- export declare function wrapConstructorWithOpts<H extends Hash<H>, T extends Object>(hashCons: (opts?: T) => Hash<H>): {
143
+ export declare function createOptHasher<H extends Hash<H>, T extends Object>(hashCons: (opts?: T) => Hash<H>): {
106
144
  (msg: Input, opts?: T): Uint8Array;
107
145
  outputLen: number;
108
146
  blockLen: number;
109
- create(opts: T): Hash<H>;
147
+ create(opts?: T): Hash<H>;
110
148
  };
111
- export declare function wrapXOFConstructorWithOpts<H extends HashXOF<H>, T extends Object>(hashCons: (opts?: T) => HashXOF<H>): {
149
+ export declare function createXOFer<H extends HashXOF<H>, T extends Object>(hashCons: (opts?: T) => HashXOF<H>): {
112
150
  (msg: Input, opts?: T): Uint8Array;
113
151
  outputLen: number;
114
152
  blockLen: number;
115
- create(opts: T): HashXOF<H>;
153
+ create(opts?: T): HashXOF<H>;
116
154
  };
155
+ export declare const wrapConstructor: typeof createHasher;
156
+ export declare const wrapConstructorWithOpts: typeof createOptHasher;
157
+ export declare const wrapXOFConstructorWithOpts: typeof createXOFer;
117
158
  /** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */
118
159
  export declare function randomBytes(bytesLength?: number): Uint8Array;
119
160
  export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@noble/hashes/1.8.0/src/utils.ts"],"names":[],"mappings":"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"}