voltaire-effect 0.2.23 → 0.2.24

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 (264) hide show
  1. package/dist/KZGService-B7PJerOb.d.ts +146 -0
  2. package/dist/{X25519Test-DGsk1V9o.d.ts → X25519Test-C8Cicdd_.d.ts} +2 -139
  3. package/dist/crypto/index.d.ts +3 -2
  4. package/dist/{index-IgkEHjBe.d.ts → index-DsFjN_a3.d.ts} +17633 -11961
  5. package/dist/index.d.ts +3104 -938
  6. package/dist/index.js +4467 -2446
  7. package/dist/native/index.d.ts +14 -5
  8. package/dist/native/index.js +4489 -2468
  9. package/dist/primitives/index.d.ts +12 -4
  10. package/dist/primitives/index.js +3980 -2411
  11. package/package.json +2 -2
  12. package/src/crypto/Keccak256/index.ts +1 -0
  13. package/src/index.ts +2 -2
  14. package/src/primitives/Abi/decode.test.ts +38 -0
  15. package/src/primitives/Abi/decode.ts +67 -0
  16. package/src/primitives/Abi/decodeData.test.ts +37 -0
  17. package/src/primitives/Abi/decodeData.ts +77 -0
  18. package/src/primitives/Abi/decodeLog.test.ts +32 -0
  19. package/src/primitives/Abi/decodeLog.ts +81 -0
  20. package/src/primitives/Abi/decodeWrappedError.test.ts +41 -0
  21. package/src/primitives/Abi/decodeWrappedError.ts +68 -0
  22. package/src/primitives/Abi/encode.test.ts +43 -0
  23. package/src/primitives/Abi/encode.ts +67 -0
  24. package/src/primitives/Abi/encodePacked.test.ts +35 -0
  25. package/src/primitives/Abi/encodePacked.ts +62 -0
  26. package/src/primitives/Abi/encodeWrappedError.test.ts +21 -0
  27. package/src/primitives/Abi/encodeWrappedError.ts +64 -0
  28. package/src/primitives/Abi/findSelectorCollisions.test.ts +50 -0
  29. package/src/primitives/Abi/findSelectorCollisions.ts +83 -0
  30. package/src/primitives/Abi/index.ts +33 -7
  31. package/src/primitives/Abi/parseLogs.test.ts +37 -0
  32. package/src/primitives/Abi/parseLogs.ts +62 -0
  33. package/src/primitives/AccessList/AccessList.test.ts +229 -0
  34. package/src/primitives/AccessList/AccessListTypeSchema.ts +16 -0
  35. package/src/primitives/AccessList/addressCount.ts +21 -0
  36. package/src/primitives/AccessList/assertValid.ts +37 -0
  37. package/src/primitives/AccessList/create.ts +19 -0
  38. package/src/primitives/AccessList/deduplicate.ts +23 -0
  39. package/src/primitives/AccessList/from.ts +39 -0
  40. package/src/primitives/AccessList/fromBytes.ts +36 -0
  41. package/src/primitives/AccessList/gasCost.ts +22 -0
  42. package/src/primitives/AccessList/gasSavings.ts +26 -0
  43. package/src/primitives/AccessList/hasSavings.ts +23 -0
  44. package/src/primitives/AccessList/includesAddress.ts +25 -0
  45. package/src/primitives/AccessList/includesStorageKey.ts +28 -0
  46. package/src/primitives/AccessList/index.ts +99 -19
  47. package/src/primitives/AccessList/is.ts +23 -0
  48. package/src/primitives/AccessList/isEmpty.ts +23 -0
  49. package/src/primitives/AccessList/isItem.ts +22 -0
  50. package/src/primitives/AccessList/keysFor.ts +29 -0
  51. package/src/primitives/AccessList/merge.ts +24 -0
  52. package/src/primitives/AccessList/storageKeyCount.ts +21 -0
  53. package/src/primitives/AccessList/toBytes.ts +23 -0
  54. package/src/primitives/AccessList/withAddress.ts +27 -0
  55. package/src/primitives/AccessList/withStorageKey.ts +30 -0
  56. package/src/primitives/Address/Address.test.ts +146 -0
  57. package/src/primitives/Address/assert.ts +51 -0
  58. package/src/primitives/Address/calculateCreate2Address.ts +33 -0
  59. package/src/primitives/Address/calculateCreateAddress.ts +30 -0
  60. package/src/primitives/Address/deduplicateAddresses.ts +20 -0
  61. package/src/primitives/Address/from.ts +41 -0
  62. package/src/primitives/Address/fromAbiEncoded.ts +35 -0
  63. package/src/primitives/Address/fromBase64.ts +25 -0
  64. package/src/primitives/Address/fromBytes.ts +25 -0
  65. package/src/primitives/Address/fromHex.ts +31 -0
  66. package/src/primitives/Address/fromNumber.ts +25 -0
  67. package/src/primitives/Address/fromPrivateKey.ts +25 -0
  68. package/src/primitives/Address/fromPublicKey.ts +56 -0
  69. package/src/primitives/Address/index.ts +99 -35
  70. package/src/primitives/Address/is.ts +20 -0
  71. package/src/primitives/Address/isAddress.ts +22 -0
  72. package/src/primitives/Address/sortAddresses.ts +19 -0
  73. package/src/primitives/Address/toChecksummed.ts +32 -0
  74. package/src/primitives/Address/toHex.ts +18 -0
  75. package/src/primitives/Address/zero.ts +18 -0
  76. package/src/primitives/Base64/Base64.test.ts +75 -0
  77. package/src/primitives/Base64/convert.ts +37 -0
  78. package/src/primitives/Base64/decode.ts +59 -0
  79. package/src/primitives/Base64/encode.ts +42 -0
  80. package/src/primitives/Base64/from.ts +39 -0
  81. package/src/primitives/Base64/index.ts +81 -1
  82. package/src/primitives/Base64/size.ts +16 -0
  83. package/src/primitives/Base64/validation.ts +16 -0
  84. package/src/primitives/Blob/Blob.test.ts +292 -0
  85. package/src/primitives/Blob/calculateGas.ts +30 -0
  86. package/src/primitives/Blob/estimateBlobCount.ts +30 -0
  87. package/src/primitives/Blob/from.ts +38 -0
  88. package/src/primitives/Blob/fromData.ts +36 -0
  89. package/src/primitives/Blob/index.ts +99 -12
  90. package/src/primitives/Blob/isValidVersion.ts +27 -0
  91. package/src/primitives/Blob/joinData.ts +43 -0
  92. package/src/primitives/Blob/splitData.ts +36 -0
  93. package/src/primitives/Blob/toCommitment.ts +43 -0
  94. package/src/primitives/Blob/toProof.ts +50 -0
  95. package/src/primitives/Blob/toVersionedHash.ts +35 -0
  96. package/src/primitives/Blob/verify.ts +49 -0
  97. package/src/primitives/Blob/verifyBatch.ts +119 -0
  98. package/src/primitives/BloomFilter/BloomFilter.test.ts +138 -0
  99. package/src/primitives/BloomFilter/add.ts +23 -0
  100. package/src/primitives/BloomFilter/combine.ts +21 -0
  101. package/src/primitives/BloomFilter/contains.ts +26 -0
  102. package/src/primitives/BloomFilter/create.ts +35 -0
  103. package/src/primitives/BloomFilter/density.ts +22 -0
  104. package/src/primitives/BloomFilter/expectedFalsePositiveRate.ts +25 -0
  105. package/src/primitives/BloomFilter/fromHex.ts +37 -0
  106. package/src/primitives/BloomFilter/hash.ts +43 -0
  107. package/src/primitives/BloomFilter/index.ts +59 -37
  108. package/src/primitives/BloomFilter/isEmpty.ts +22 -0
  109. package/src/primitives/BloomFilter/merge.ts +24 -0
  110. package/src/primitives/BloomFilter/toHex.ts +22 -0
  111. package/src/primitives/Bytecode/analyze.ts +58 -0
  112. package/src/primitives/Bytecode/detectFusions.ts +10 -0
  113. package/src/primitives/Bytecode/equals.ts +10 -0
  114. package/src/primitives/Bytecode/extractRuntime.ts +12 -0
  115. package/src/primitives/Bytecode/format.ts +16 -0
  116. package/src/primitives/Bytecode/from.ts +16 -0
  117. package/src/primitives/Bytecode/fromHex.ts +14 -0
  118. package/src/primitives/Bytecode/getBlock.ts +12 -0
  119. package/src/primitives/Bytecode/getNextPc.ts +12 -0
  120. package/src/primitives/Bytecode/getPushSize.ts +8 -0
  121. package/src/primitives/Bytecode/hasMetadata.ts +10 -0
  122. package/src/primitives/Bytecode/hash.ts +9 -0
  123. package/src/primitives/Bytecode/index.ts +103 -13
  124. package/src/primitives/Bytecode/isPush.ts +8 -0
  125. package/src/primitives/Bytecode/isTerminator.ts +8 -0
  126. package/src/primitives/Bytecode/isValidJumpDest.ts +12 -0
  127. package/src/primitives/Bytecode/parseInstructions.ts +10 -0
  128. package/src/primitives/Bytecode/prettyPrint.ts +12 -0
  129. package/src/primitives/Bytecode/scan.ts +20 -0
  130. package/src/primitives/Bytecode/size.ts +9 -0
  131. package/src/primitives/Bytecode/stripMetadata.ts +10 -0
  132. package/src/primitives/Bytecode/toAbi.ts +10 -0
  133. package/src/primitives/Bytecode/toHex.ts +10 -0
  134. package/src/primitives/Bytecode/types.ts +23 -0
  135. package/src/primitives/Bytecode/validate.ts +9 -0
  136. package/src/primitives/Ens/Ens.test.ts +71 -0
  137. package/src/primitives/Ens/convert.ts +13 -0
  138. package/src/primitives/Ens/from.ts +32 -0
  139. package/src/primitives/Ens/hash.ts +46 -0
  140. package/src/primitives/Ens/index.ts +86 -4
  141. package/src/primitives/Ens/normalize.ts +45 -0
  142. package/src/primitives/Ens/validation.ts +38 -0
  143. package/src/primitives/EventLog/accessors.ts +32 -0
  144. package/src/primitives/EventLog/clone.ts +17 -0
  145. package/src/primitives/EventLog/create.ts +46 -0
  146. package/src/primitives/EventLog/filtering.ts +48 -0
  147. package/src/primitives/EventLog/index.ts +96 -6
  148. package/src/primitives/EventLog/status.ts +17 -0
  149. package/src/primitives/EventLog/toRpc.ts +49 -0
  150. package/src/primitives/Hardfork/HardforkSchema.ts +3 -3
  151. package/src/primitives/Hardfork/allIds.ts +13 -0
  152. package/src/primitives/Hardfork/allNames.ts +13 -0
  153. package/src/primitives/Hardfork/compare.ts +17 -0
  154. package/src/primitives/Hardfork/comparisons.ts +45 -0
  155. package/src/primitives/Hardfork/equals.ts +17 -0
  156. package/src/primitives/Hardfork/features.ts +61 -0
  157. package/src/primitives/Hardfork/fromString.ts +16 -0
  158. package/src/primitives/Hardfork/index.ts +128 -18
  159. package/src/primitives/Hardfork/isValidName.ts +14 -0
  160. package/src/primitives/Hardfork/minMax.ts +23 -0
  161. package/src/primitives/Hardfork/range.ts +19 -0
  162. package/src/primitives/Hardfork/toString.ts +16 -0
  163. package/src/primitives/Hash/Hash.test.ts +104 -0
  164. package/src/primitives/Hash/from.ts +47 -0
  165. package/src/primitives/Hash/fromBytes.ts +46 -0
  166. package/src/primitives/Hash/fromHex.ts +44 -0
  167. package/src/primitives/Hash/index.ts +45 -8
  168. package/src/primitives/Hash/isHash.ts +31 -0
  169. package/src/primitives/Hash/toHex.ts +29 -0
  170. package/src/primitives/Hex/Hex.test.ts +266 -155
  171. package/src/primitives/Hex/assertSize.ts +41 -0
  172. package/src/primitives/Hex/concat.ts +37 -0
  173. package/src/primitives/Hex/from.ts +38 -0
  174. package/src/primitives/Hex/fromBigInt.ts +40 -0
  175. package/src/primitives/Hex/fromBoolean.ts +29 -0
  176. package/src/primitives/Hex/fromNumber.ts +41 -0
  177. package/src/primitives/Hex/fromString.ts +28 -0
  178. package/src/primitives/Hex/index.ts +68 -37
  179. package/src/primitives/Hex/pad.ts +40 -0
  180. package/src/primitives/Hex/padRight.ts +39 -0
  181. package/src/primitives/Hex/size.ts +29 -0
  182. package/src/primitives/Hex/slice.ts +42 -0
  183. package/src/primitives/Hex/toBigInt.ts +27 -0
  184. package/src/primitives/Hex/toBoolean.ts +38 -0
  185. package/src/primitives/Hex/toNumber.ts +37 -0
  186. package/src/primitives/Hex/toStringHex.ts +39 -0
  187. package/src/primitives/Hex/trim.ts +27 -0
  188. package/src/primitives/Hex/validate.ts +37 -0
  189. package/src/primitives/Hex/xor.ts +39 -0
  190. package/src/primitives/Opcode/OpcodeSchema.ts +1 -1
  191. package/src/primitives/Opcode/disassemble.ts +15 -0
  192. package/src/primitives/Opcode/dupPosition.ts +15 -0
  193. package/src/primitives/Opcode/format.ts +15 -0
  194. package/src/primitives/Opcode/getters.ts +54 -0
  195. package/src/primitives/Opcode/index.ts +301 -11
  196. package/src/primitives/Opcode/info.ts +18 -0
  197. package/src/primitives/Opcode/jumpDests.ts +15 -0
  198. package/src/primitives/Opcode/logTopics.ts +15 -0
  199. package/src/primitives/Opcode/name.ts +15 -0
  200. package/src/primitives/Opcode/parse.ts +15 -0
  201. package/src/primitives/Opcode/predicates.ts +72 -0
  202. package/src/primitives/Opcode/pushBytes.ts +15 -0
  203. package/src/primitives/Opcode/pushOpcode.ts +15 -0
  204. package/src/primitives/Opcode/swapPosition.ts +15 -0
  205. package/src/primitives/Rlp/decodeBatch.ts +46 -0
  206. package/src/primitives/Rlp/decodeObject.ts +46 -0
  207. package/src/primitives/Rlp/decodeValue.ts +51 -0
  208. package/src/primitives/Rlp/encodeBatch.ts +50 -0
  209. package/src/primitives/Rlp/encodeObject.ts +48 -0
  210. package/src/primitives/Rlp/encodeVariadic.ts +49 -0
  211. package/src/primitives/Rlp/equals.ts +22 -0
  212. package/src/primitives/Rlp/from.ts +44 -0
  213. package/src/primitives/Rlp/fromJSON.ts +45 -0
  214. package/src/primitives/Rlp/getEncodedLength.ts +47 -0
  215. package/src/primitives/Rlp/getLength.ts +44 -0
  216. package/src/primitives/Rlp/index.ts +67 -14
  217. package/src/primitives/Rlp/isBytesData.ts +21 -0
  218. package/src/primitives/Rlp/isCanonical.ts +32 -0
  219. package/src/primitives/Rlp/isData.ts +21 -0
  220. package/src/primitives/Rlp/isList.ts +46 -0
  221. package/src/primitives/Rlp/isListData.ts +21 -0
  222. package/src/primitives/Rlp/isString.ts +46 -0
  223. package/src/primitives/Rlp/toJSON.ts +20 -0
  224. package/src/primitives/Rlp/toRaw.ts +31 -0
  225. package/src/primitives/Signature/Signature.test.ts +217 -0
  226. package/src/primitives/Signature/from.ts +38 -0
  227. package/src/primitives/Signature/fromBytes.ts +31 -0
  228. package/src/primitives/Signature/fromCompact.ts +33 -0
  229. package/src/primitives/Signature/fromDER.ts +35 -0
  230. package/src/primitives/Signature/fromEd25519.ts +24 -0
  231. package/src/primitives/Signature/fromHex.ts +29 -0
  232. package/src/primitives/Signature/fromP256.ts +25 -0
  233. package/src/primitives/Signature/fromRpc.ts +38 -0
  234. package/src/primitives/Signature/fromSecp256k1.ts +29 -0
  235. package/src/primitives/Signature/fromTuple.ts +33 -0
  236. package/src/primitives/Signature/getR.ts +24 -0
  237. package/src/primitives/Signature/getS.ts +24 -0
  238. package/src/primitives/Signature/getV.ts +24 -0
  239. package/src/primitives/Signature/index.ts +61 -11
  240. package/src/primitives/Signature/toDER.ts +24 -0
  241. package/src/primitives/Signature/toHex.ts +24 -0
  242. package/src/primitives/Signature/toRpc.ts +35 -0
  243. package/src/primitives/Signature/toTuple.ts +29 -0
  244. package/src/primitives/Signature/verify.ts +31 -0
  245. package/src/primitives/Siwe/create.ts +56 -0
  246. package/src/primitives/Siwe/hash.ts +27 -0
  247. package/src/primitives/Siwe/index.ts +57 -21
  248. package/src/primitives/Siwe/parse.ts +24 -0
  249. package/src/primitives/Siwe/verify.ts +47 -0
  250. package/src/primitives/Transaction/index.ts +467 -2
  251. package/src/primitives/Uint/Uint.test.ts +200 -0
  252. package/src/primitives/Uint/dividedBy.ts +34 -0
  253. package/src/primitives/Uint/from.ts +35 -0
  254. package/src/primitives/Uint/fromAbiEncoded.ts +29 -0
  255. package/src/primitives/Uint/fromBigInt.ts +30 -0
  256. package/src/primitives/Uint/fromBytes.ts +32 -0
  257. package/src/primitives/Uint/fromHex.ts +32 -0
  258. package/src/primitives/Uint/fromNumber.ts +30 -0
  259. package/src/primitives/Uint/index.ts +90 -45
  260. package/src/primitives/Uint/isUint256.ts +25 -0
  261. package/src/primitives/Uint/isValid.ts +25 -0
  262. package/src/primitives/Uint/modulo.ts +34 -0
  263. package/src/primitives/Uint/toHex.ts +31 -0
  264. package/src/primitives/Uint/tryFrom.ts +30 -0
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @fileoverview Create Hash from raw bytes.
3
+ *
4
+ * @module Hash/fromBytes
5
+ * @since 0.0.1
6
+ */
7
+
8
+ import type { HashType } from "@tevm/voltaire/Hash";
9
+ import * as Hash from "@tevm/voltaire/Hash";
10
+ import * as Effect from "effect/Effect";
11
+ import { ValidationError } from "@tevm/voltaire/errors";
12
+
13
+ /**
14
+ * Create Hash from raw bytes.
15
+ *
16
+ * @description Creates a hash from a 32-byte Uint8Array.
17
+ * Can fail if input is wrong length.
18
+ *
19
+ * @param {Uint8Array} bytes - Raw bytes (must be 32 bytes)
20
+ * @returns {Effect.Effect<HashType, ValidationError>} Effect containing the hash
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * import * as Hash from 'voltaire-effect/primitives/Hash'
25
+ * import * as Effect from 'effect/Effect'
26
+ *
27
+ * const hash = Effect.runSync(Hash.fromBytes(new Uint8Array(32)))
28
+ * ```
29
+ *
30
+ * @since 0.0.1
31
+ */
32
+ export const fromBytes = (
33
+ bytes: Uint8Array,
34
+ ): Effect.Effect<HashType, ValidationError> =>
35
+ Effect.try({
36
+ try: () => Hash.fromBytes(bytes),
37
+ catch: (error) =>
38
+ new ValidationError(
39
+ error instanceof Error ? error.message : "Invalid bytes input",
40
+ {
41
+ value: bytes,
42
+ expected: "32-byte Uint8Array",
43
+ cause: error instanceof Error ? error : undefined,
44
+ },
45
+ ),
46
+ });
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @fileoverview Create Hash from hex string.
3
+ *
4
+ * @module Hash/fromHex
5
+ * @since 0.0.1
6
+ */
7
+
8
+ import type { HashType } from "@tevm/voltaire/Hash";
9
+ import * as Hash from "@tevm/voltaire/Hash";
10
+ import * as Effect from "effect/Effect";
11
+ import { ValidationError } from "@tevm/voltaire/errors";
12
+
13
+ /**
14
+ * Create Hash from hex string.
15
+ *
16
+ * @description Parses a 66-character hex string (with 0x prefix) into a 32-byte hash.
17
+ * Can fail if input is invalid format or wrong length.
18
+ *
19
+ * @param {string} hex - Hex string with optional 0x prefix
20
+ * @returns {Effect.Effect<HashType, ValidationError>} Effect containing the hash
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * import * as Hash from 'voltaire-effect/primitives/Hash'
25
+ * import * as Effect from 'effect/Effect'
26
+ *
27
+ * const hash = Effect.runSync(Hash.fromHex('0x' + 'ab'.repeat(32)))
28
+ * ```
29
+ *
30
+ * @since 0.0.1
31
+ */
32
+ export const fromHex = (hex: string): Effect.Effect<HashType, ValidationError> =>
33
+ Effect.try({
34
+ try: () => Hash.fromHex(hex),
35
+ catch: (error) =>
36
+ new ValidationError(
37
+ error instanceof Error ? error.message : "Invalid hex string",
38
+ {
39
+ value: hex,
40
+ expected: "66-character hex string (0x + 64 hex chars)",
41
+ cause: error instanceof Error ? error : undefined,
42
+ },
43
+ ),
44
+ });
@@ -46,20 +46,57 @@
46
46
  */
47
47
 
48
48
  export type { HashType } from "@tevm/voltaire/Hash";
49
- // Pure functions
50
- export { assert } from "./assert.js";
49
+
50
+ // Re-export constants
51
+ export { SIZE, ZERO } from "@tevm/voltaire/Hash";
52
+
53
+ // Re-export DI factory functions for advanced use cases
54
+ // Access via: Hash.Keccak256, Hash.MerkleRoot, etc.
55
+ // Note: These are runtime exports that TypeScript types don't fully capture
56
+ import { Hash as HashNamespace } from "@tevm/voltaire/functional";
57
+ const _HashNs = HashNamespace as Record<string, unknown>;
58
+ export const Concat = _HashNs["Concat"] as typeof HashNamespace.concat;
59
+ export const Keccak256 = _HashNs["Keccak256"] as (
60
+ keccak: { keccak256: (data: Uint8Array) => Uint8Array },
61
+ ) => (data: Uint8Array | string) => import("@tevm/voltaire/Hash").HashType;
62
+ export const Keccak256Hex = _HashNs["Keccak256Hex"] as (
63
+ keccak: { keccak256: (data: Uint8Array) => Uint8Array },
64
+ ) => (hex: string) => import("@tevm/voltaire/Hash").HashType;
65
+ export const Keccak256String = _HashNs["Keccak256String"] as (
66
+ keccak: { keccak256: (data: Uint8Array) => Uint8Array },
67
+ ) => (str: string) => import("@tevm/voltaire/Hash").HashType;
68
+ export const MerkleRoot = _HashNs["MerkleRoot"] as (
69
+ keccak: { keccak256: (data: Uint8Array) => Uint8Array },
70
+ ) => (leaves: readonly Uint8Array[]) => import("@tevm/voltaire/Hash").HashType;
71
+
51
72
  // Schemas
52
73
  export { Bytes } from "./Bytes.js";
74
+ export { Hex } from "./Hex.js";
75
+
76
+ // Constructors (fallible)
77
+ export { from } from "./from.js";
78
+ export { fromBytes } from "./fromBytes.js";
79
+ export { fromHex } from "./fromHex.js";
80
+
81
+ // Validation
82
+ export { assert } from "./assert.js";
83
+ export { isHash } from "./isHash.js";
84
+ export { isValidHex } from "./isValidHex.js";
85
+ export { isZero } from "./isZero.js";
86
+
87
+ // Operations
53
88
  export { clone } from "./clone.js";
54
89
  export { concat } from "./concat.js";
55
90
  export { equals } from "./equals.js";
91
+ export { slice } from "./slice.js";
92
+
93
+ // Conversions
56
94
  export { format } from "./format.js";
57
- export { Hex } from "./Hex.js";
58
- export { isValidHex } from "./isValidHex.js";
59
- export { isZero } from "./isZero.js";
95
+ export { toBytes } from "./toBytes.js";
96
+ export { toHex } from "./toHex.js";
97
+ export { toString } from "./toString.js";
98
+
99
+ // Crypto
60
100
  export { keccak256, keccak256Hex, keccak256String } from "./keccak256.js";
61
101
  export { merkleRoot } from "./merkleRoot.js";
62
102
  export { random } from "./random.js";
63
- export { slice } from "./slice.js";
64
- export { toBytes } from "./toBytes.js";
65
- export { toString } from "./toString.js";
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @fileoverview Check if value is a valid Hash.
3
+ *
4
+ * @module Hash/isHash
5
+ * @since 0.0.1
6
+ */
7
+
8
+ import type { HashType } from "@tevm/voltaire/Hash";
9
+ import * as Hash from "@tevm/voltaire/Hash";
10
+
11
+ /**
12
+ * Check if value is a valid Hash.
13
+ *
14
+ * @description Type guard that checks if a value is a valid 32-byte hash.
15
+ * This is a pure synchronous function that never fails.
16
+ *
17
+ * @param {unknown} value - Value to check
18
+ * @returns {boolean} True if value is a valid HashType
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import * as Hash from 'voltaire-effect/primitives/Hash'
23
+ *
24
+ * if (Hash.isHash(value)) {
25
+ * // value is HashType
26
+ * }
27
+ * ```
28
+ *
29
+ * @since 0.0.1
30
+ */
31
+ export const isHash = (value: unknown): value is HashType => Hash.isHash(value);
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @fileoverview Convert Hash to hex string.
3
+ *
4
+ * @module Hash/toHex
5
+ * @since 0.0.1
6
+ */
7
+
8
+ import type { HashType } from "@tevm/voltaire/Hash";
9
+ import * as Hash from "@tevm/voltaire/Hash";
10
+
11
+ /**
12
+ * Convert Hash to hex string.
13
+ *
14
+ * @description Converts a 32-byte hash to a 66-character hex string with 0x prefix.
15
+ * This is a pure synchronous function that never fails.
16
+ *
17
+ * @param {HashType} hash - Hash to convert
18
+ * @returns {string} Hex string with 0x prefix
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * import * as Hash from 'voltaire-effect/primitives/Hash'
23
+ *
24
+ * const hex = Hash.toHex(hash) // "0x..."
25
+ * ```
26
+ *
27
+ * @since 0.0.1
28
+ */
29
+ export const toHex = (hash: HashType): string => Hash.toHex(hash);