ox 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/core/Hash.d.ts +36 -0
  3. package/dist/core/Hash.d.ts.map +1 -1
  4. package/dist/core/Hash.js +35 -0
  5. package/dist/core/Hash.js.map +1 -1
  6. package/dist/node/Hash.d.ts +3 -3
  7. package/dist/node/Hash.js +3 -3
  8. package/dist/trusted-setups/Paths.d.ts +1 -0
  9. package/dist/trusted-setups/Paths.d.ts.map +1 -1
  10. package/dist/trusted-setups/Paths.js +1 -0
  11. package/dist/trusted-setups/Paths.js.map +1 -1
  12. package/dist/trusted-setups/Setups.d.ts +35 -0
  13. package/dist/trusted-setups/Setups.d.ts.map +1 -0
  14. package/dist/trusted-setups/Setups.js +29 -0
  15. package/dist/trusted-setups/Setups.js.map +1 -0
  16. package/dist/trusted-setups/index.d.ts +20 -0
  17. package/dist/trusted-setups/index.d.ts.map +1 -1
  18. package/dist/trusted-setups/index.js +20 -0
  19. package/dist/trusted-setups/index.js.map +1 -1
  20. package/dist/trusted-setups/internal/paths.d.ts.map +1 -1
  21. package/dist/trusted-setups/internal/paths.js +1 -1
  22. package/dist/trusted-setups/internal/paths.js.map +1 -1
  23. package/dist/trusted-setups/internal/setups/mainnet.d.ts +7 -0
  24. package/dist/trusted-setups/internal/setups/mainnet.d.ts.map +1 -0
  25. package/dist/trusted-setups/internal/setups/mainnet.js +11 -0
  26. package/dist/trusted-setups/internal/setups/mainnet.js.map +1 -0
  27. package/dist/wasm/Engine.d.ts +3 -2
  28. package/dist/wasm/Engine.d.ts.map +1 -1
  29. package/dist/wasm/Engine.js +5 -5
  30. package/dist/wasm/Engine.js.map +1 -1
  31. package/dist/wasm/Keystore.d.ts +23 -9
  32. package/dist/wasm/Keystore.d.ts.map +1 -1
  33. package/dist/wasm/Keystore.js +30 -13
  34. package/dist/wasm/Keystore.js.map +1 -1
  35. package/dist/wasm/Kzg.d.ts +112 -0
  36. package/dist/wasm/Kzg.d.ts.map +1 -0
  37. package/dist/wasm/Kzg.js +333 -0
  38. package/dist/wasm/Kzg.js.map +1 -0
  39. package/dist/wasm/Secp256k1.d.ts +55 -0
  40. package/dist/wasm/Secp256k1.d.ts.map +1 -0
  41. package/dist/wasm/Secp256k1.js +181 -0
  42. package/dist/wasm/Secp256k1.js.map +1 -0
  43. package/dist/wasm/index.d.ts +44 -1
  44. package/dist/wasm/index.d.ts.map +1 -1
  45. package/dist/wasm/index.js +44 -1
  46. package/dist/wasm/index.js.map +1 -1
  47. package/dist/wasm/internal/instantiate.d.ts +12 -0
  48. package/dist/wasm/internal/instantiate.d.ts.map +1 -1
  49. package/dist/wasm/internal/instantiate.js +23 -7
  50. package/dist/wasm/internal/instantiate.js.map +1 -1
  51. package/dist/wasm/internal/keystore.d.ts +10 -0
  52. package/dist/wasm/internal/keystore.d.ts.map +1 -0
  53. package/dist/wasm/internal/keystore.js +10 -0
  54. package/dist/wasm/internal/keystore.js.map +1 -0
  55. package/dist/wasm/internal/kzg.d.ts +17 -0
  56. package/dist/wasm/internal/kzg.d.ts.map +1 -0
  57. package/dist/wasm/internal/kzg.js +8 -0
  58. package/dist/wasm/internal/kzg.js.map +1 -0
  59. package/dist/wasm/internal/kzg.wasm.d.ts +3 -0
  60. package/dist/wasm/internal/kzg.wasm.d.ts.map +1 -0
  61. package/dist/wasm/internal/kzg.wasm.js +10 -0
  62. package/dist/wasm/internal/kzg.wasm.js.map +1 -0
  63. package/dist/wasm/internal/scrypt.d.ts +16 -0
  64. package/dist/wasm/internal/scrypt.d.ts.map +1 -0
  65. package/dist/wasm/internal/scrypt.js +78 -0
  66. package/dist/wasm/internal/scrypt.js.map +1 -0
  67. package/dist/wasm/internal/scrypt.wasm.d.ts +7 -0
  68. package/dist/wasm/internal/scrypt.wasm.d.ts.map +1 -0
  69. package/dist/wasm/internal/scrypt.wasm.js +14 -0
  70. package/dist/wasm/internal/scrypt.wasm.js.map +1 -0
  71. package/dist/wasm/internal/secp256k1.d.ts +16 -0
  72. package/dist/wasm/internal/secp256k1.d.ts.map +1 -0
  73. package/dist/wasm/internal/secp256k1.js +20 -0
  74. package/dist/wasm/internal/secp256k1.js.map +1 -0
  75. package/dist/wasm/internal/secp256k1.wasm.d.ts +3 -0
  76. package/dist/wasm/internal/secp256k1.wasm.d.ts.map +1 -0
  77. package/dist/wasm/internal/secp256k1.wasm.js +10 -0
  78. package/dist/wasm/internal/secp256k1.wasm.js.map +1 -0
  79. package/package.json +19 -2
  80. package/src/core/Hash.ts +59 -0
  81. package/src/core/_test/Block.test.ts +9 -2
  82. package/src/core/_test/Hash.test-d.ts +18 -0
  83. package/src/core/_test/Hash.test.ts +100 -1
  84. package/src/core/_test/Hash.vectors.test.ts +1 -2
  85. package/src/core/_test/Transaction.test.ts +11 -2
  86. package/src/node/Hash.ts +3 -3
  87. package/src/node/_test/Hash.test-d.ts +1 -0
  88. package/src/trusted-setups/Paths.ts +1 -0
  89. package/src/trusted-setups/README.md +39 -0
  90. package/src/trusted-setups/Setups.ts +46 -0
  91. package/src/trusted-setups/_test/Paths.test.ts +16 -0
  92. package/src/trusted-setups/_test/Setups.test-d.ts +7 -0
  93. package/src/trusted-setups/_test/Setups.test.ts +43 -0
  94. package/src/trusted-setups/_test/index.test.ts +1 -0
  95. package/src/trusted-setups/index.ts +21 -0
  96. package/src/trusted-setups/internal/paths.ts +4 -1
  97. package/src/trusted-setups/internal/setups/mainnet.source.json +7 -0
  98. package/src/trusted-setups/internal/setups/mainnet.ts +16 -0
  99. package/src/version.ts +1 -1
  100. package/src/wasm/Engine.ts +8 -6
  101. package/src/wasm/Keystore.bench.ts +26 -0
  102. package/src/wasm/Keystore.ts +32 -14
  103. package/src/wasm/Kzg.bench.ts +63 -0
  104. package/src/wasm/Kzg.ts +518 -0
  105. package/src/wasm/Secp256k1.bench.ts +79 -0
  106. package/src/wasm/Secp256k1.ts +248 -0
  107. package/src/wasm/_test/Engine.test-d.ts +1 -0
  108. package/src/wasm/_test/Hash.browser.test.ts +3 -0
  109. package/src/wasm/_test/Hash.test-d.ts +1 -0
  110. package/src/wasm/_test/Hash.test.ts +2 -2
  111. package/src/wasm/_test/Keystore.browser.test.ts +31 -0
  112. package/src/wasm/_test/Keystore.fuzz.ts +50 -0
  113. package/src/wasm/_test/Keystore.test-d.ts +10 -1
  114. package/src/wasm/_test/Keystore.test.ts +289 -4
  115. package/src/wasm/_test/Kzg.test-d.ts +19 -0
  116. package/src/wasm/_test/Kzg.test.ts +220 -0
  117. package/src/wasm/_test/Runtime.test.ts +9 -0
  118. package/src/wasm/_test/Secp256k1.test-d.ts +35 -0
  119. package/src/wasm/_test/Secp256k1.test.ts +354 -0
  120. package/src/wasm/index.ts +46 -1
  121. package/src/wasm/internal/instantiate.ts +29 -9
  122. package/src/wasm/internal/keystore.ts +19 -0
  123. package/src/wasm/internal/kzg.ts +50 -0
  124. package/src/wasm/internal/kzg.wasm.ts +11 -0
  125. package/src/wasm/internal/scrypt.ts +131 -0
  126. package/src/wasm/internal/scrypt.wasm.ts +17 -0
  127. package/src/wasm/internal/secp256k1.ts +62 -0
  128. package/src/wasm/internal/secp256k1.wasm.ts +11 -0
  129. package/wasm/vendor/c-kzg-4844/LICENSE +201 -0
  130. package/wasm/vendor/c-kzg-4844/blst/LICENSE +201 -0
  131. package/src/trusted-setups/internal/setups/mainnet.txt +0 -4163
package/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # ox
2
2
 
3
+ ## 1.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#335](https://github.com/wevm/ox/pull/335) [`0aaacc4`](https://github.com/wevm/ox/commit/0aaacc4ee7c1e711cc9da162fb50432ef736a0a3) Thanks [@jxom](https://github.com/jxom)! - Added first-party trusted setup data and an explicit disposable c-kzg WASM factory for EIP-4844 and EIP-7594 operations.
8
+
9
+ - [#333](https://github.com/wevm/ox/pull/333) [`a41c325`](https://github.com/wevm/ox/commit/a41c325bf33994c4a00caaf53ac186c8f6b87223) Thanks [@jxom](https://github.com/jxom)! - Added an opt-in `ox/wasm/Secp256k1` provider backed by libsecp256k1.
10
+
11
+ ```ts
12
+ import { Engine } from "ox";
13
+ import { Secp256k1 } from "ox/wasm";
14
+
15
+ await Engine.install({ Secp256k1: Secp256k1.engine() });
16
+ ```
17
+
18
+ ### Patch Changes
19
+
20
+ - [#331](https://github.com/wevm/ox/pull/331) [`ee873dc`](https://github.com/wevm/ox/commit/ee873dc7f6a4fe2dbf7092e8b6a687f456d452f4) Thanks [@jxom](https://github.com/jxom)! - Added `Hash.blake3` for BLAKE3 hashing through Ox's default or an installed engine implementation.
21
+
22
+ ```ts
23
+ import { Hash } from "ox";
24
+
25
+ const digest = Hash.blake3("0xdeadbeef");
26
+ ```
27
+
28
+ - [#334](https://github.com/wevm/ox/pull/334) [`1ef21a0`](https://github.com/wevm/ox/commit/1ef21a09675e4a1443a2098b0474ab2bb7cc34fa) Thanks [@jxom](https://github.com/jxom)! - Added opt-in synchronous scrypt to the WASM Keystore provider.
29
+
3
30
  ## 1.1.2
4
31
 
5
32
  ### Patch Changes
@@ -1,6 +1,42 @@
1
1
  import * as Bytes from './Bytes.js';
2
2
  import type * as Errors from './Errors.js';
3
3
  import * as Hex from './Hex.js';
4
+ /**
5
+ * Calculates the [BLAKE3](https://github.com/BLAKE3-team/BLAKE3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
6
+ *
7
+ * Backed by `blake3` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
8
+ *
9
+ * @example
10
+ * ```ts twoslash
11
+ * import { Hash } from 'ox'
12
+ *
13
+ * Hash.blake3('0xdeadbeef')
14
+ * // @log: '0x53147f3ce49ed4f60dfa5b9654c36ba6103c11f5737df3dabd4cbd296c4161bd'
15
+ * ```
16
+ *
17
+ * @example
18
+ * ### Configure Return Type
19
+ *
20
+ * ```ts twoslash
21
+ * import { Hash } from 'ox'
22
+ *
23
+ * Hash.blake3('0xdeadbeef', { as: 'Bytes' })
24
+ * // @log: Uint8Array [...]
25
+ * ```
26
+ *
27
+ * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
28
+ * @param options - Options.
29
+ * @returns BLAKE3 hash.
30
+ */
31
+ export declare function blake3<value extends Hex.Hex | Bytes.Bytes, as extends 'Hex' | 'Bytes' = (value extends Hex.Hex ? 'Hex' : never) | (value extends Bytes.Bytes ? 'Bytes' : never)>(value: value | Hex.Hex | Bytes.Bytes, options?: blake3.Options<as>): blake3.ReturnType<as>;
32
+ export declare namespace blake3 {
33
+ type Options<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = {
34
+ /** The return type. Defaults to the input format. */
35
+ as?: as | 'Hex' | 'Bytes' | undefined;
36
+ };
37
+ type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
38
+ type ErrorType = Bytes.from.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
39
+ }
4
40
  /**
5
41
  * Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
6
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../src/core/Hash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../src/core/Hash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAG/B;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,MAAM,CACpB,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACnC,EAAE,SAAS,KAAK,GAAG,OAAO,GACtB,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,GACvC,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,EAEjD,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACpC,OAAO,GAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAM,GAC/B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAMvB;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IAAI;QAC3D,qDAAqD;QACrD,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IACxD,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;IAExC,KAAK,SAAS,GACV,KAAK,CAAC,IAAI,CAAC,SAAS,GACpB,GAAG,CAAC,SAAS,CAAC,SAAS,GACvB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,SAAS,CACvB,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACnC,EAAE,SAAS,KAAK,GAAG,OAAO,GACtB,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,GACvC,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,EAEjD,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACpC,OAAO,GAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAM,GAClC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAM1B;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IAAI;QAC3D,sCAAsC;QACtC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IACxD,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;IAExC,KAAK,SAAS,GACV,KAAK,CAAC,IAAI,CAAC,SAAS,GACpB,GAAG,CAAC,SAAS,CAAC,SAAS,GACvB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,OAAO,CACrB,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACnC,EAAE,SAAS,KAAK,GAAG,OAAO,GACtB,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,GACvC,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,EAEjD,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EAC1B,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACpC,OAAO,GAAE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAM,GAChC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAQxB;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IAAI;QAC3D,sCAAsC;QACtC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IACxD,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;IAExC,KAAK,SAAS,GACV,KAAK,CAAC,IAAI,CAAC,SAAS,GACpB,GAAG,CAAC,SAAS,CAAC,SAAS,GACvB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,SAAS,CACvB,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACnC,EAAE,SAAS,KAAK,GAAG,OAAO,GACtB,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,GACvC,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,EAEjD,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACpC,OAAO,GAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAM,GAClC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAM1B;AAED,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IAAI;QAC3D,sCAAsC;QACtC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,IACxD,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;IAExC,KAAK,SAAS,GACV,KAAK,CAAC,IAAI,CAAC,SAAS,GACpB,GAAG,CAAC,SAAS,CAAC,SAAS,GACvB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CACpB,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACnC,EAAE,SAAS,KAAK,GAAG,OAAO,GACtB,CAAC,KAAK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,GACvC,CAAC,KAAK,SAAS,KAAK,CAAC,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,EAEjD,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,EACpC,OAAO,GAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAM,GAC/B,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAMvB;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI;QACjD,sCAAsC;QACtC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,IAC9C,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;IAExC,KAAK,SAAS,GACV,KAAK,CAAC,IAAI,CAAC,SAAS,GACpB,GAAG,CAAC,SAAS,CAAC,SAAS,GACvB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG,CAExD;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,KAAK,SAAS,GACV,GAAG,CAAC,QAAQ,CAAC,SAAS,GACtB,GAAG,CAAC,IAAI,CAAC,SAAS,GAClB,MAAM,CAAC,eAAe,CAAA;CAC3B"}
package/dist/core/Hash.js CHANGED
@@ -1,6 +1,41 @@
1
1
  import * as Bytes from './Bytes.js';
2
2
  import * as Hex from './Hex.js';
3
3
  import * as engine from './internal/hash.js';
4
+ /**
5
+ * Calculates the [BLAKE3](https://github.com/BLAKE3-team/BLAKE3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
6
+ *
7
+ * Backed by `blake3` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library, unless another implementation is installed with {@link ox#Engine.set}.
8
+ *
9
+ * @example
10
+ * ```ts twoslash
11
+ * import { Hash } from 'ox'
12
+ *
13
+ * Hash.blake3('0xdeadbeef')
14
+ * // @log: '0x53147f3ce49ed4f60dfa5b9654c36ba6103c11f5737df3dabd4cbd296c4161bd'
15
+ * ```
16
+ *
17
+ * @example
18
+ * ### Configure Return Type
19
+ *
20
+ * ```ts twoslash
21
+ * import { Hash } from 'ox'
22
+ *
23
+ * Hash.blake3('0xdeadbeef', { as: 'Bytes' })
24
+ * // @log: Uint8Array [...]
25
+ * ```
26
+ *
27
+ * @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
28
+ * @param options - Options.
29
+ * @returns BLAKE3 hash.
30
+ */
31
+ export function blake3(value, options = {}) {
32
+ const isBytes = value instanceof Uint8Array;
33
+ const { as = isBytes ? 'Bytes' : 'Hex' } = options;
34
+ const bytes = engine.blake3(isBytes ? value : Bytes.from(value));
35
+ if (as === 'Bytes')
36
+ return bytes;
37
+ return Hex.fromBytes(bytes);
38
+ }
4
39
  /**
5
40
  * Calculates the [Keccak256](https://en.wikipedia.org/wiki/SHA-3) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
6
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../src/core/Hash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../src/core/Hash.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,9 @@ export * from '../core/Hash.js';
9
9
  * which installs every implementation this entrypoint provides. Reach for this
10
10
  * to install or hold the `Hash` slot on its own.
11
11
  *
12
- * Node's `sha3-256` is not Ethereum Keccak256, so this engine deliberately
13
- * omits `keccak256`. Any earlier override remains installed; otherwise Ox uses
14
- * its default implementation.
12
+ * Node does not provide BLAKE3, and its `sha3-256` is not Ethereum Keccak256, so
13
+ * this engine deliberately omits `blake3` and `keccak256`. Any earlier override
14
+ * remains installed; otherwise Ox uses its default implementation.
15
15
  *
16
16
  * @example
17
17
  * ```ts twoslash
package/dist/node/Hash.js CHANGED
@@ -8,9 +8,9 @@ export * from '../core/Hash.js';
8
8
  * which installs every implementation this entrypoint provides. Reach for this
9
9
  * to install or hold the `Hash` slot on its own.
10
10
  *
11
- * Node's `sha3-256` is not Ethereum Keccak256, so this engine deliberately
12
- * omits `keccak256`. Any earlier override remains installed; otherwise Ox uses
13
- * its default implementation.
11
+ * Node does not provide BLAKE3, and its `sha3-256` is not Ethereum Keccak256, so
12
+ * this engine deliberately omits `blake3` and `keccak256`. Any earlier override
13
+ * remains installed; otherwise Ox uses its default implementation.
14
14
  *
15
15
  * @example
16
16
  * ```ts twoslash
@@ -1,2 +1,3 @@
1
+ /** File-system path to the Ethereum mainnet trusted setup. */
1
2
  export declare const mainnet: string;
2
3
  //# sourceMappingURL=Paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../../src/trusted-setups/Paths.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,QAAkB,CAAA"}
1
+ {"version":3,"file":"Paths.d.ts","sourceRoot":"","sources":["../../src/trusted-setups/Paths.ts"],"names":[],"mappings":"AAEA,8DAA8D;AAC9D,eAAO,MAAM,OAAO,QAAkB,CAAA"}
@@ -1,3 +1,4 @@
1
1
  import { path } from './internal/paths.js';
2
+ /** File-system path to the Ethereum mainnet trusted setup. */
2
3
  export const mainnet = path('mainnet');
3
4
  //# sourceMappingURL=Paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paths.js","sourceRoot":"","sources":["../../src/trusted-setups/Paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA"}
1
+ {"version":3,"file":"Paths.js","sourceRoot":"","sources":["../../src/trusted-setups/Paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAE1C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAA"}
@@ -0,0 +1,35 @@
1
+ import type * as Bytes from '../core/Bytes.js';
2
+ /**
3
+ * Trusted setup points for EIP-4844 and EIP-7594 KZG operations.
4
+ */
5
+ export type TrustedSetup = {
6
+ /** G1 points in Lagrange form. */
7
+ readonly g1_lagrange: Bytes.Bytes;
8
+ /** G1 points in monomial form. */
9
+ readonly g1_monomial: Bytes.Bytes;
10
+ /** G2 points in monomial form. */
11
+ readonly g2_monomial: Bytes.Bytes;
12
+ };
13
+ /**
14
+ * Ethereum mainnet trusted setup for EIP-4844 and EIP-7594.
15
+ *
16
+ * The setup stores packed points and is safe to reuse across `Kzg.create`
17
+ * calls. `Kzg.create` copies every field before asynchronous initialization.
18
+ *
19
+ * Treat the exported byte arrays as read-only.
20
+ *
21
+ * @example
22
+ * ```ts twoslash
23
+ * // @noErrors
24
+ * import { Setups } from 'ox/trusted-setups'
25
+ * import { Kzg } from 'ox/wasm'
26
+ *
27
+ * const kzg = await Kzg.create({
28
+ * trustedSetup: Setups.mainnet
29
+ * })
30
+ *
31
+ * kzg.dispose()
32
+ * ```
33
+ */
34
+ export declare const mainnet: TrustedSetup;
35
+ //# sourceMappingURL=Setups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Setups.d.ts","sourceRoot":"","sources":["../../src/trusted-setups/Setups.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAO9C;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAA;IACjC,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAA;IACjC,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,CAAA;CAClC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,OAAO,EAAE,YAIpB,CAAA"}
@@ -0,0 +1,29 @@
1
+ import * as Base64 from '../core/Base64.js';
2
+ import { g1Lagrange, g1Monomial, g2Monomial, } from './internal/setups/mainnet.js';
3
+ /**
4
+ * Ethereum mainnet trusted setup for EIP-4844 and EIP-7594.
5
+ *
6
+ * The setup stores packed points and is safe to reuse across `Kzg.create`
7
+ * calls. `Kzg.create` copies every field before asynchronous initialization.
8
+ *
9
+ * Treat the exported byte arrays as read-only.
10
+ *
11
+ * @example
12
+ * ```ts twoslash
13
+ * // @noErrors
14
+ * import { Setups } from 'ox/trusted-setups'
15
+ * import { Kzg } from 'ox/wasm'
16
+ *
17
+ * const kzg = await Kzg.create({
18
+ * trustedSetup: Setups.mainnet
19
+ * })
20
+ *
21
+ * kzg.dispose()
22
+ * ```
23
+ */
24
+ export const mainnet = /* @__PURE__ */ Object.freeze({
25
+ g1_lagrange: /* @__PURE__ */ Base64.toBytes(g1Lagrange),
26
+ g1_monomial: /* @__PURE__ */ Base64.toBytes(g1Monomial),
27
+ g2_monomial: /* @__PURE__ */ Base64.toBytes(g2Monomial),
28
+ });
29
+ //# sourceMappingURL=Setups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Setups.js","sourceRoot":"","sources":["../../src/trusted-setups/Setups.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,EACL,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,8BAA8B,CAAA;AAcrC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAiB,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;IACjE,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;IACvD,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;IACvD,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;CACxD,CAAC,CAAA"}
@@ -1,2 +1,22 @@
1
+ /**
2
+ * File-system paths for trusted setup files bundled with Ox.
3
+ */
1
4
  export * as Paths from './Paths.js';
5
+ /**
6
+ * Trusted setup data bundled with Ox.
7
+ *
8
+ * @example
9
+ * ```ts twoslash
10
+ * // @noErrors
11
+ * import { Setups } from 'ox/trusted-setups'
12
+ * import { Kzg } from 'ox/wasm'
13
+ *
14
+ * const kzg = await Kzg.create({
15
+ * trustedSetup: Setups.mainnet
16
+ * })
17
+ *
18
+ * kzg.dispose()
19
+ * ```
20
+ */
21
+ export * as Setups from './Setups.js';
2
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trusted-setups/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trusted-setups/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -1,2 +1,22 @@
1
+ /**
2
+ * File-system paths for trusted setup files bundled with Ox.
3
+ */
1
4
  export * as Paths from './Paths.js';
5
+ /**
6
+ * Trusted setup data bundled with Ox.
7
+ *
8
+ * @example
9
+ * ```ts twoslash
10
+ * // @noErrors
11
+ * import { Setups } from 'ox/trusted-setups'
12
+ * import { Kzg } from 'ox/wasm'
13
+ *
14
+ * const kzg = await Kzg.create({
15
+ * trustedSetup: Setups.mainnet
16
+ * })
17
+ *
18
+ * kzg.dispose()
19
+ * ```
20
+ */
21
+ export * as Setups from './Setups.js';
2
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trusted-setups/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trusted-setups/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/trusted-setups/internal/paths.ts"],"names":[],"mappings":"AAGA,gBAAgB;AAChB,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,UAShC"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/trusted-setups/internal/paths.ts"],"names":[],"mappings":"AAGA,gBAAgB;AAChB,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,UAYhC"}
@@ -8,6 +8,6 @@ export function path(name) {
8
8
  // @ts-ignore
9
9
  import.meta.url);
10
10
  const __dirname = dirname(__filename);
11
- return resolve(__dirname, `./setups/${name}.json`);
11
+ return resolve(__dirname, `../../../src/trusted-setups/internal/setups/${name}.json`);
12
12
  }
13
13
  //# sourceMappingURL=paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/trusted-setups/internal/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,gBAAgB;AAChB,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,MAAM,UAAU,GAAG,aAAa;IAC9B,2IAA2I;IAC3I,6CAA6C;IAC7C,aAAa;IACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CAAA;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrC,OAAO,OAAO,CAAC,SAAS,EAAE,YAAY,IAAI,OAAO,CAAC,CAAA;AACpD,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/trusted-setups/internal/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAExC,gBAAgB;AAChB,MAAM,UAAU,IAAI,CAAC,IAAY;IAC/B,MAAM,UAAU,GAAG,aAAa;IAC9B,2IAA2I;IAC3I,6CAA6C;IAC7C,aAAa;IACb,MAAM,CAAC,IAAI,CAAC,GAAG,CAChB,CAAA;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IACrC,OAAO,OAAO,CACZ,SAAS,EACT,+CAA+C,IAAI,OAAO,CAC3D,CAAA;AACH,CAAC"}