voltaire-effect 0.2.23 → 0.2.25

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 (397) hide show
  1. package/dist/KZGService-B7PJerOb.d.ts +146 -0
  2. package/dist/ProviderService-BZ5pqDrD.d.ts +319 -0
  3. package/dist/{X25519Test-DGsk1V9o.d.ts → X25519Test-D5Q-5fL9.d.ts} +4 -143
  4. package/dist/crypto/index.d.ts +5 -6
  5. package/dist/crypto/index.js +227 -201
  6. package/dist/{index-IgkEHjBe.d.ts → index-BCOuszKZ.d.ts} +17634 -11962
  7. package/dist/index.d.ts +3195 -976
  8. package/dist/index.js +6994 -4679
  9. package/dist/native/index.d.ts +25 -16
  10. package/dist/native/index.js +7020 -4705
  11. package/dist/primitives/index.d.ts +14 -8
  12. package/dist/primitives/index.js +4060 -2539
  13. package/dist/services/index.d.ts +9054 -30
  14. package/dist/services/index.js +1592 -1331
  15. package/package.json +2 -2
  16. package/src/crypto/ERC6492/ERC6492.test.ts +32 -14
  17. package/src/crypto/ERC6492/verifySignature.ts +4 -5
  18. package/src/crypto/Keccak256/Keccak256.test.ts +42 -1
  19. package/src/crypto/Keccak256/hashSync.ts +53 -0
  20. package/src/crypto/Keccak256/index.ts +2 -0
  21. package/src/index.ts +7 -2
  22. package/src/primitives/Abi/decode.test.ts +38 -0
  23. package/src/primitives/Abi/decode.ts +67 -0
  24. package/src/primitives/Abi/decodeData.test.ts +37 -0
  25. package/src/primitives/Abi/decodeData.ts +77 -0
  26. package/src/primitives/Abi/decodeLog.test.ts +32 -0
  27. package/src/primitives/Abi/decodeLog.ts +81 -0
  28. package/src/primitives/Abi/decodeWrappedError.test.ts +41 -0
  29. package/src/primitives/Abi/decodeWrappedError.ts +68 -0
  30. package/src/primitives/Abi/encode.test.ts +43 -0
  31. package/src/primitives/Abi/encode.ts +67 -0
  32. package/src/primitives/Abi/encodePacked.test.ts +35 -0
  33. package/src/primitives/Abi/encodePacked.ts +62 -0
  34. package/src/primitives/Abi/encodeWrappedError.test.ts +21 -0
  35. package/src/primitives/Abi/encodeWrappedError.ts +64 -0
  36. package/src/primitives/Abi/findSelectorCollisions.test.ts +50 -0
  37. package/src/primitives/Abi/findSelectorCollisions.ts +83 -0
  38. package/src/primitives/Abi/index.ts +33 -7
  39. package/src/primitives/Abi/parseLogs.test.ts +37 -0
  40. package/src/primitives/Abi/parseLogs.ts +62 -0
  41. package/src/primitives/AccessList/AccessList.test.ts +229 -0
  42. package/src/primitives/AccessList/AccessListTypeSchema.ts +16 -0
  43. package/src/primitives/AccessList/addressCount.ts +21 -0
  44. package/src/primitives/AccessList/assertValid.ts +37 -0
  45. package/src/primitives/AccessList/create.ts +19 -0
  46. package/src/primitives/AccessList/deduplicate.ts +23 -0
  47. package/src/primitives/AccessList/from.ts +39 -0
  48. package/src/primitives/AccessList/fromBytes.ts +36 -0
  49. package/src/primitives/AccessList/gasCost.ts +22 -0
  50. package/src/primitives/AccessList/gasSavings.ts +26 -0
  51. package/src/primitives/AccessList/hasSavings.ts +23 -0
  52. package/src/primitives/AccessList/includesAddress.ts +25 -0
  53. package/src/primitives/AccessList/includesStorageKey.ts +28 -0
  54. package/src/primitives/AccessList/index.ts +99 -19
  55. package/src/primitives/AccessList/is.ts +23 -0
  56. package/src/primitives/AccessList/isEmpty.ts +23 -0
  57. package/src/primitives/AccessList/isItem.ts +22 -0
  58. package/src/primitives/AccessList/keysFor.ts +29 -0
  59. package/src/primitives/AccessList/merge.ts +24 -0
  60. package/src/primitives/AccessList/storageKeyCount.ts +21 -0
  61. package/src/primitives/AccessList/toBytes.ts +23 -0
  62. package/src/primitives/AccessList/withAddress.ts +27 -0
  63. package/src/primitives/AccessList/withStorageKey.ts +30 -0
  64. package/src/primitives/Address/Address.test.ts +146 -0
  65. package/src/primitives/Address/assert.ts +51 -0
  66. package/src/primitives/Address/calculateCreate2Address.ts +33 -0
  67. package/src/primitives/Address/calculateCreateAddress.ts +30 -0
  68. package/src/primitives/Address/deduplicateAddresses.ts +20 -0
  69. package/src/primitives/Address/from.ts +41 -0
  70. package/src/primitives/Address/fromAbiEncoded.ts +35 -0
  71. package/src/primitives/Address/fromBase64.ts +25 -0
  72. package/src/primitives/Address/fromBytes.ts +25 -0
  73. package/src/primitives/Address/fromHex.ts +31 -0
  74. package/src/primitives/Address/fromNumber.ts +25 -0
  75. package/src/primitives/Address/fromPrivateKey.ts +25 -0
  76. package/src/primitives/Address/fromPublicKey.ts +56 -0
  77. package/src/primitives/Address/index.ts +99 -35
  78. package/src/primitives/Address/is.ts +20 -0
  79. package/src/primitives/Address/isAddress.ts +22 -0
  80. package/src/primitives/Address/sortAddresses.ts +19 -0
  81. package/src/primitives/Address/toChecksummed.ts +32 -0
  82. package/src/primitives/Address/toHex.ts +18 -0
  83. package/src/primitives/Address/zero.ts +18 -0
  84. package/src/primitives/Base64/Base64.test.ts +75 -0
  85. package/src/primitives/Base64/convert.ts +37 -0
  86. package/src/primitives/Base64/decode.ts +59 -0
  87. package/src/primitives/Base64/encode.ts +42 -0
  88. package/src/primitives/Base64/from.ts +39 -0
  89. package/src/primitives/Base64/index.ts +81 -1
  90. package/src/primitives/Base64/size.ts +16 -0
  91. package/src/primitives/Base64/validation.ts +16 -0
  92. package/src/primitives/Blob/Blob.test.ts +292 -0
  93. package/src/primitives/Blob/calculateGas.ts +30 -0
  94. package/src/primitives/Blob/estimateBlobCount.ts +30 -0
  95. package/src/primitives/Blob/from.ts +38 -0
  96. package/src/primitives/Blob/fromData.ts +36 -0
  97. package/src/primitives/Blob/index.ts +99 -12
  98. package/src/primitives/Blob/isValidVersion.ts +27 -0
  99. package/src/primitives/Blob/joinData.ts +43 -0
  100. package/src/primitives/Blob/splitData.ts +36 -0
  101. package/src/primitives/Blob/toCommitment.ts +43 -0
  102. package/src/primitives/Blob/toProof.ts +50 -0
  103. package/src/primitives/Blob/toVersionedHash.ts +35 -0
  104. package/src/primitives/Blob/verify.ts +49 -0
  105. package/src/primitives/Blob/verifyBatch.ts +119 -0
  106. package/src/primitives/BloomFilter/BloomFilter.test.ts +138 -0
  107. package/src/primitives/BloomFilter/add.ts +23 -0
  108. package/src/primitives/BloomFilter/combine.ts +21 -0
  109. package/src/primitives/BloomFilter/contains.ts +26 -0
  110. package/src/primitives/BloomFilter/create.ts +35 -0
  111. package/src/primitives/BloomFilter/density.ts +22 -0
  112. package/src/primitives/BloomFilter/expectedFalsePositiveRate.ts +25 -0
  113. package/src/primitives/BloomFilter/fromHex.ts +37 -0
  114. package/src/primitives/BloomFilter/hash.ts +43 -0
  115. package/src/primitives/BloomFilter/index.ts +59 -37
  116. package/src/primitives/BloomFilter/isEmpty.ts +22 -0
  117. package/src/primitives/BloomFilter/merge.ts +24 -0
  118. package/src/primitives/BloomFilter/toHex.ts +22 -0
  119. package/src/primitives/Bytecode/analyze.ts +58 -0
  120. package/src/primitives/Bytecode/detectFusions.ts +10 -0
  121. package/src/primitives/Bytecode/equals.ts +10 -0
  122. package/src/primitives/Bytecode/extractRuntime.ts +12 -0
  123. package/src/primitives/Bytecode/format.ts +16 -0
  124. package/src/primitives/Bytecode/from.ts +16 -0
  125. package/src/primitives/Bytecode/fromHex.ts +14 -0
  126. package/src/primitives/Bytecode/getBlock.ts +12 -0
  127. package/src/primitives/Bytecode/getNextPc.ts +12 -0
  128. package/src/primitives/Bytecode/getPushSize.ts +8 -0
  129. package/src/primitives/Bytecode/hasMetadata.ts +10 -0
  130. package/src/primitives/Bytecode/hash.ts +9 -0
  131. package/src/primitives/Bytecode/index.ts +103 -13
  132. package/src/primitives/Bytecode/isPush.ts +8 -0
  133. package/src/primitives/Bytecode/isTerminator.ts +8 -0
  134. package/src/primitives/Bytecode/isValidJumpDest.ts +12 -0
  135. package/src/primitives/Bytecode/parseInstructions.ts +10 -0
  136. package/src/primitives/Bytecode/prettyPrint.ts +12 -0
  137. package/src/primitives/Bytecode/scan.ts +20 -0
  138. package/src/primitives/Bytecode/size.ts +9 -0
  139. package/src/primitives/Bytecode/stripMetadata.ts +10 -0
  140. package/src/primitives/Bytecode/toAbi.ts +10 -0
  141. package/src/primitives/Bytecode/toHex.ts +10 -0
  142. package/src/primitives/Bytecode/types.ts +23 -0
  143. package/src/primitives/Bytecode/validate.ts +9 -0
  144. package/src/primitives/ContractSignature/ContractSignature.test.ts +1 -13
  145. package/src/primitives/ContractSignature/verifySignature.ts +88 -62
  146. package/src/primitives/Ens/Ens.test.ts +71 -0
  147. package/src/primitives/Ens/convert.ts +13 -0
  148. package/src/primitives/Ens/from.ts +32 -0
  149. package/src/primitives/Ens/hash.ts +46 -0
  150. package/src/primitives/Ens/index.ts +86 -4
  151. package/src/primitives/Ens/normalize.ts +45 -0
  152. package/src/primitives/Ens/validation.ts +38 -0
  153. package/src/primitives/EventLog/accessors.ts +32 -0
  154. package/src/primitives/EventLog/clone.ts +17 -0
  155. package/src/primitives/EventLog/create.ts +46 -0
  156. package/src/primitives/EventLog/filtering.ts +48 -0
  157. package/src/primitives/EventLog/index.ts +96 -6
  158. package/src/primitives/EventLog/status.ts +17 -0
  159. package/src/primitives/EventLog/toRpc.ts +49 -0
  160. package/src/primitives/Hardfork/HardforkSchema.ts +3 -3
  161. package/src/primitives/Hardfork/allIds.ts +13 -0
  162. package/src/primitives/Hardfork/allNames.ts +13 -0
  163. package/src/primitives/Hardfork/compare.ts +17 -0
  164. package/src/primitives/Hardfork/comparisons.ts +45 -0
  165. package/src/primitives/Hardfork/equals.ts +17 -0
  166. package/src/primitives/Hardfork/features.ts +61 -0
  167. package/src/primitives/Hardfork/fromString.ts +16 -0
  168. package/src/primitives/Hardfork/index.ts +128 -18
  169. package/src/primitives/Hardfork/isValidName.ts +14 -0
  170. package/src/primitives/Hardfork/minMax.ts +23 -0
  171. package/src/primitives/Hardfork/range.ts +19 -0
  172. package/src/primitives/Hardfork/toString.ts +16 -0
  173. package/src/primitives/Hash/Hash.test.ts +104 -0
  174. package/src/primitives/Hash/from.ts +47 -0
  175. package/src/primitives/Hash/fromBytes.ts +46 -0
  176. package/src/primitives/Hash/fromHex.ts +44 -0
  177. package/src/primitives/Hash/index.ts +45 -8
  178. package/src/primitives/Hash/isHash.ts +31 -0
  179. package/src/primitives/Hash/toHex.ts +29 -0
  180. package/src/primitives/Hex/Hex.test.ts +327 -153
  181. package/src/primitives/Hex/assertSize.ts +41 -0
  182. package/src/primitives/Hex/concat.ts +37 -0
  183. package/src/primitives/Hex/from.ts +38 -0
  184. package/src/primitives/Hex/fromBigInt.ts +40 -0
  185. package/src/primitives/Hex/fromBoolean.ts +29 -0
  186. package/src/primitives/Hex/fromNumber.ts +41 -0
  187. package/src/primitives/Hex/fromString.ts +28 -0
  188. package/src/primitives/Hex/index.ts +68 -37
  189. package/src/primitives/Hex/pad.ts +40 -0
  190. package/src/primitives/Hex/padRight.ts +39 -0
  191. package/src/primitives/Hex/size.ts +29 -0
  192. package/src/primitives/Hex/slice.ts +42 -0
  193. package/src/primitives/Hex/toBigInt.ts +27 -0
  194. package/src/primitives/Hex/toBoolean.ts +38 -0
  195. package/src/primitives/Hex/toNumber.ts +37 -0
  196. package/src/primitives/Hex/toStringHex.ts +39 -0
  197. package/src/primitives/Hex/trim.ts +27 -0
  198. package/src/primitives/Hex/validate.ts +37 -0
  199. package/src/primitives/Hex/xor.ts +39 -0
  200. package/src/primitives/Opcode/OpcodeSchema.ts +1 -1
  201. package/src/primitives/Opcode/disassemble.ts +15 -0
  202. package/src/primitives/Opcode/dupPosition.ts +15 -0
  203. package/src/primitives/Opcode/format.ts +15 -0
  204. package/src/primitives/Opcode/getters.ts +54 -0
  205. package/src/primitives/Opcode/index.ts +301 -11
  206. package/src/primitives/Opcode/info.ts +18 -0
  207. package/src/primitives/Opcode/jumpDests.ts +15 -0
  208. package/src/primitives/Opcode/logTopics.ts +15 -0
  209. package/src/primitives/Opcode/name.ts +15 -0
  210. package/src/primitives/Opcode/parse.ts +15 -0
  211. package/src/primitives/Opcode/predicates.ts +72 -0
  212. package/src/primitives/Opcode/pushBytes.ts +15 -0
  213. package/src/primitives/Opcode/pushOpcode.ts +15 -0
  214. package/src/primitives/Opcode/swapPosition.ts +15 -0
  215. package/src/primitives/Rlp/decodeBatch.ts +46 -0
  216. package/src/primitives/Rlp/decodeObject.ts +46 -0
  217. package/src/primitives/Rlp/decodeValue.ts +51 -0
  218. package/src/primitives/Rlp/encodeBatch.ts +50 -0
  219. package/src/primitives/Rlp/encodeObject.ts +48 -0
  220. package/src/primitives/Rlp/encodeVariadic.ts +49 -0
  221. package/src/primitives/Rlp/equals.ts +22 -0
  222. package/src/primitives/Rlp/from.ts +44 -0
  223. package/src/primitives/Rlp/fromJSON.ts +45 -0
  224. package/src/primitives/Rlp/getEncodedLength.ts +47 -0
  225. package/src/primitives/Rlp/getLength.ts +44 -0
  226. package/src/primitives/Rlp/index.ts +67 -14
  227. package/src/primitives/Rlp/isBytesData.ts +21 -0
  228. package/src/primitives/Rlp/isCanonical.ts +32 -0
  229. package/src/primitives/Rlp/isData.ts +21 -0
  230. package/src/primitives/Rlp/isList.ts +46 -0
  231. package/src/primitives/Rlp/isListData.ts +21 -0
  232. package/src/primitives/Rlp/isString.ts +46 -0
  233. package/src/primitives/Rlp/toJSON.ts +20 -0
  234. package/src/primitives/Rlp/toRaw.ts +31 -0
  235. package/src/primitives/Signature/Signature.test.ts +217 -0
  236. package/src/primitives/Signature/from.ts +38 -0
  237. package/src/primitives/Signature/fromBytes.ts +31 -0
  238. package/src/primitives/Signature/fromCompact.ts +33 -0
  239. package/src/primitives/Signature/fromDER.ts +35 -0
  240. package/src/primitives/Signature/fromEd25519.ts +24 -0
  241. package/src/primitives/Signature/fromHex.ts +29 -0
  242. package/src/primitives/Signature/fromP256.ts +25 -0
  243. package/src/primitives/Signature/fromRpc.ts +38 -0
  244. package/src/primitives/Signature/fromSecp256k1.ts +29 -0
  245. package/src/primitives/Signature/fromTuple.ts +33 -0
  246. package/src/primitives/Signature/getR.ts +24 -0
  247. package/src/primitives/Signature/getS.ts +24 -0
  248. package/src/primitives/Signature/getV.ts +24 -0
  249. package/src/primitives/Signature/index.ts +61 -11
  250. package/src/primitives/Signature/toDER.ts +24 -0
  251. package/src/primitives/Signature/toHex.ts +24 -0
  252. package/src/primitives/Signature/toRpc.ts +35 -0
  253. package/src/primitives/Signature/toTuple.ts +29 -0
  254. package/src/primitives/Signature/verify.ts +31 -0
  255. package/src/primitives/Siwe/create.ts +56 -0
  256. package/src/primitives/Siwe/hash.ts +27 -0
  257. package/src/primitives/Siwe/index.ts +57 -21
  258. package/src/primitives/Siwe/parse.ts +24 -0
  259. package/src/primitives/Siwe/verify.ts +47 -0
  260. package/src/primitives/Transaction/Transaction.test.ts +309 -0
  261. package/src/primitives/Transaction/index.ts +467 -2
  262. package/src/primitives/Uint/Uint.test.ts +200 -0
  263. package/src/primitives/Uint/dividedBy.ts +34 -0
  264. package/src/primitives/Uint/from.ts +35 -0
  265. package/src/primitives/Uint/fromAbiEncoded.ts +29 -0
  266. package/src/primitives/Uint/fromBigInt.ts +30 -0
  267. package/src/primitives/Uint/fromBytes.ts +32 -0
  268. package/src/primitives/Uint/fromHex.ts +32 -0
  269. package/src/primitives/Uint/fromNumber.ts +30 -0
  270. package/src/primitives/Uint/index.ts +90 -45
  271. package/src/primitives/Uint/isUint256.ts +25 -0
  272. package/src/primitives/Uint/isValid.ts +25 -0
  273. package/src/primitives/Uint/modulo.ts +34 -0
  274. package/src/primitives/Uint/toHex.ts +31 -0
  275. package/src/primitives/Uint/tryFrom.ts +30 -0
  276. package/src/services/Contract/Contract.test.ts +46 -41
  277. package/src/services/Contract/Contract.ts +25 -29
  278. package/src/services/Contract/ContractTypes.ts +6 -3
  279. package/src/services/Contract/estimateGas.test.ts +21 -9
  280. package/src/services/Contract/estimateGas.ts +21 -23
  281. package/src/services/Debug/Debug.ts +1 -1
  282. package/src/services/Debug/DebugService.ts +1 -1
  283. package/src/services/FeeEstimator/DefaultFeeEstimator.ts +10 -6
  284. package/src/services/FeeEstimator/FeeEstimator.test.ts +68 -62
  285. package/src/services/Multicall/BalanceResolver.ts +1 -1
  286. package/src/services/Multicall/GetBalance.ts +1 -1
  287. package/src/services/Multicall/Multicall.ts +1 -1
  288. package/src/services/NonceManager/DefaultNonceManager.ts +4 -7
  289. package/src/services/NonceManager/NonceManager.test.ts +20 -33
  290. package/src/services/Provider/Provider.test.ts +155 -349
  291. package/src/services/Provider/Provider.ts +14 -1180
  292. package/src/services/Provider/ProviderService.ts +14 -1199
  293. package/src/services/Provider/actions/multicall.test.ts +29 -39
  294. package/src/services/Provider/actions/multicall.ts +2 -2
  295. package/src/services/Provider/actions/readContract.test.ts +45 -50
  296. package/src/services/Provider/actions/readContract.ts +2 -6
  297. package/src/services/Provider/actions/simulateContract.test.ts +55 -232
  298. package/src/services/Provider/actions/simulateContract.ts +2 -3
  299. package/src/services/Provider/ens/getEnsAddress.ts +11 -14
  300. package/src/services/Provider/ens/getEnsName.ts +15 -18
  301. package/src/services/Provider/ens/getEnsResolver.ts +11 -14
  302. package/src/services/Provider/ens/getEnsText.ts +15 -18
  303. package/src/services/Provider/functions/backfillBlocks.ts +97 -0
  304. package/src/services/Provider/functions/call.ts +45 -0
  305. package/src/services/Provider/functions/createAccessList.ts +61 -0
  306. package/src/services/Provider/functions/createBlockFilter.ts +41 -0
  307. package/src/services/Provider/functions/createEventFilter.ts +43 -0
  308. package/src/services/Provider/functions/createPendingTransactionFilter.ts +41 -0
  309. package/src/services/Provider/functions/estimateGas.ts +52 -0
  310. package/src/services/Provider/functions/getAccounts.ts +40 -0
  311. package/src/services/Provider/functions/getBalance.ts +50 -0
  312. package/src/services/Provider/functions/getBlobBaseFee.ts +46 -0
  313. package/src/services/Provider/functions/getBlock.ts +95 -0
  314. package/src/services/Provider/functions/getBlockNumber.ts +51 -0
  315. package/src/services/Provider/functions/getBlockReceipts.ts +78 -0
  316. package/src/services/Provider/functions/getBlockTransactionCount.ts +86 -0
  317. package/src/services/Provider/functions/getChainId.ts +46 -0
  318. package/src/services/Provider/functions/getCode.ts +43 -0
  319. package/src/services/Provider/functions/getCoinbase.ts +40 -0
  320. package/src/services/Provider/functions/getFeeHistory.ts +85 -0
  321. package/src/services/Provider/functions/getFilterChanges.ts +42 -0
  322. package/src/services/Provider/functions/getFilterLogs.ts +44 -0
  323. package/src/services/Provider/functions/getGasPrice.ts +46 -0
  324. package/src/services/Provider/functions/getHashrate.ts +46 -0
  325. package/src/services/Provider/functions/getLogs.ts +45 -0
  326. package/src/services/Provider/functions/getMaxPriorityFeePerGas.ts +46 -0
  327. package/src/services/Provider/functions/getMining.ts +40 -0
  328. package/src/services/Provider/functions/getProof.ts +52 -0
  329. package/src/services/Provider/functions/getProtocolVersion.ts +40 -0
  330. package/src/services/Provider/functions/getStorageAt.ts +52 -0
  331. package/src/services/Provider/functions/getSyncing.ts +56 -0
  332. package/src/services/Provider/functions/getTransaction.ts +57 -0
  333. package/src/services/Provider/functions/getTransactionByBlockHashAndIndex.ts +73 -0
  334. package/src/services/Provider/functions/getTransactionByBlockNumberAndIndex.ts +86 -0
  335. package/src/services/Provider/functions/getTransactionConfirmations.ts +70 -0
  336. package/src/services/Provider/functions/getTransactionCount.ts +50 -0
  337. package/src/services/Provider/functions/getTransactionReceipt.ts +57 -0
  338. package/src/services/Provider/functions/getUncle.ts +97 -0
  339. package/src/services/Provider/functions/getUncleCount.ts +86 -0
  340. package/src/services/Provider/functions/index.ts +73 -0
  341. package/src/services/Provider/functions/netVersion.ts +40 -0
  342. package/src/services/Provider/functions/sendRawTransaction.ts +40 -0
  343. package/src/services/Provider/functions/sendTransaction.ts +48 -0
  344. package/src/services/Provider/functions/sign.ts +50 -0
  345. package/src/services/Provider/functions/signTransaction.ts +52 -0
  346. package/src/services/Provider/functions/simulateV1.ts +95 -0
  347. package/src/services/Provider/functions/simulateV2.ts +51 -0
  348. package/src/services/Provider/functions/subscribe.ts +49 -0
  349. package/src/services/Provider/functions/uninstallFilter.ts +40 -0
  350. package/src/services/Provider/functions/unsubscribe.ts +41 -0
  351. package/src/services/Provider/functions/waitForTransactionReceipt.ts +168 -0
  352. package/src/services/Provider/functions/watchBlocks.ts +98 -0
  353. package/src/services/Provider/index.ts +29 -178
  354. package/src/services/Provider/types.ts +780 -0
  355. package/src/services/Provider/utils.ts +204 -0
  356. package/src/services/RawProvider/ForkProviderTransport.ts +2 -3
  357. package/src/services/RawProvider/HttpProviderTransport.ts +3 -3
  358. package/src/services/RawProvider/InMemoryProviderTransport.ts +3 -3
  359. package/src/services/RawProvider/WebSocketProviderTransport.ts +3 -3
  360. package/src/services/Signer/Signer.test.ts +211 -187
  361. package/src/services/Signer/Signer.ts +26 -16
  362. package/src/services/Signer/actions/deployContract.test.ts +125 -105
  363. package/src/services/Signer/actions/deployContract.ts +3 -2
  364. package/src/services/Signer/actions/prepareAuthorization.test.ts +47 -48
  365. package/src/services/Signer/actions/prepareAuthorization.ts +3 -3
  366. package/src/services/Signer/actions/signAuthorization.test.ts +39 -45
  367. package/src/services/Signer/actions/signAuthorization.ts +3 -3
  368. package/src/services/Signer/actions/writeContract.test.ts +41 -57
  369. package/src/services/Transport/FallbackTransport.ts +3 -3
  370. package/src/services/Transport/HttpTransport.ts +3 -3
  371. package/src/services/Transport/config.ts +7 -7
  372. package/src/services/Transport/index.ts +3 -4
  373. package/src/services/errors.test.ts +3 -8
  374. package/src/services/index.ts +8 -90
  375. package/src/services/presets/index.ts +9 -10
  376. package/src/services/presets/presets.test.ts +14 -29
  377. package/src/standards/ERC165.test.ts +19 -20
  378. package/src/standards/ERC165.ts +9 -11
  379. package/src/type-exports.test.ts +37 -0
  380. package/dist/AccountService-BetXokad.d.ts +0 -1717
  381. package/dist/RpcResolver-BpvqybjD.d.ts +0 -6439
  382. package/src/services/Provider/Account.ts +0 -33
  383. package/src/services/Provider/AccountService.ts +0 -84
  384. package/src/services/Provider/Blocks.ts +0 -32
  385. package/src/services/Provider/BlocksService.ts +0 -73
  386. package/src/services/Provider/Events.ts +0 -33
  387. package/src/services/Provider/EventsService.ts +0 -71
  388. package/src/services/Provider/Network.ts +0 -41
  389. package/src/services/Provider/NetworkService.ts +0 -114
  390. package/src/services/Provider/Simulation.ts +0 -34
  391. package/src/services/Provider/SimulationService.ts +0 -161
  392. package/src/services/Provider/Streaming.ts +0 -30
  393. package/src/services/Provider/StreamingService.ts +0 -58
  394. package/src/services/Provider/Transaction.ts +0 -39
  395. package/src/services/Provider/TransactionService.ts +0 -83
  396. package/src/services/Provider/filters.ts +0 -91
  397. package/src/services/Provider/getBlobBaseFee.ts +0 -170
@@ -1,39 +1,149 @@
1
1
  /**
2
2
  * @module Hardfork
3
- * @description Ethereum hardfork constants and identifiers.
3
+ * @description Ethereum hardfork constants and utilities.
4
+ *
5
+ * Hardforks represent protocol upgrades that change EVM behavior, gas costs,
6
+ * or add new features.
7
+ *
8
+ * ## Type Declarations
9
+ *
10
+ * ```typescript
11
+ * import * as Hardfork from 'voltaire-effect/primitives/Hardfork'
12
+ *
13
+ * function checkFeatures(fork: Hardfork.HardforkType) {
14
+ * // ...
15
+ * }
16
+ * ```
4
17
  *
5
18
  * ## Constants
6
19
  *
7
- * - `FRONTIER`, `HOMESTEAD`, `TANGERINE_WHISTLE`, `SPURIOUS_DRAGON`
8
- * - `BYZANTIUM`, `CONSTANTINOPLE`, `PETERSBURG`, `ISTANBUL`
9
- * - `MUIR_GLACIER`, `BERLIN`, `LONDON`, `ARROW_GLACIER`, `GRAY_GLACIER`
10
- * - `SHANGHAI`, `CANCUN`, `PRAGUE`
20
+ * ```typescript
21
+ * Hardfork.FRONTIER // Original launch (July 2015)
22
+ * Hardfork.HOMESTEAD // First planned hardfork
23
+ * Hardfork.BYZANTIUM // Added REVERT, RETURNDATASIZE, etc.
24
+ * Hardfork.CONSTANTINOPLE // Added CREATE2, shift opcodes
25
+ * Hardfork.ISTANBUL // EIP-2200: Rebalanced SSTORE
26
+ * Hardfork.BERLIN // EIP-2929: Cold/warm access
27
+ * Hardfork.LONDON // EIP-1559: Base fee
28
+ * Hardfork.MERGE // Proof of Stake transition
29
+ * Hardfork.SHANGHAI // EIP-3855: PUSH0
30
+ * Hardfork.CANCUN // EIP-4844: Blobs, EIP-1153: TLOAD/TSTORE
31
+ * Hardfork.PRAGUE // EIP-2537: BLS12-381
32
+ * ```
33
+ *
34
+ * ## Pure Functions
11
35
  *
12
- * ## Usage
36
+ * ```typescript
37
+ * // Parsing
38
+ * Hardfork.fromString(name) // HardforkType | undefined
39
+ * Hardfork.toString(fork) // string
40
+ * Hardfork.isValidName(name) // boolean
41
+ *
42
+ * // Listing
43
+ * Hardfork.allIds() // HardforkType[]
44
+ * Hardfork.allNames() // string[]
45
+ * Hardfork.range(start, end) // HardforkType[]
46
+ *
47
+ * // Comparison
48
+ * Hardfork.compare(a, b) // -1 | 0 | 1
49
+ * Hardfork.equals(a, b) // boolean
50
+ * Hardfork.gt(a, b) // boolean
51
+ * Hardfork.gte(a, b) // boolean
52
+ * Hardfork.lt(a, b) // boolean
53
+ * Hardfork.lte(a, b) // boolean
54
+ * Hardfork.isAfter(fork, min) // boolean
55
+ * Hardfork.isAtLeast(fork, min) // boolean
56
+ * Hardfork.isBefore(fork, max) // boolean
57
+ * Hardfork.min(forks) // HardforkType
58
+ * Hardfork.max(forks) // HardforkType
59
+ *
60
+ * // Feature checks
61
+ * Hardfork.hasEIP1153(fork) // boolean (transient storage)
62
+ * Hardfork.hasEIP1559(fork) // boolean (fee market)
63
+ * Hardfork.hasEIP3855(fork) // boolean (PUSH0)
64
+ * Hardfork.hasEIP4844(fork) // boolean (blobs)
65
+ * Hardfork.supportsBlobs(fork) // boolean
66
+ * Hardfork.supportsEIP1559(fork) // boolean
67
+ * Hardfork.supportsPUSH0(fork) // boolean
68
+ * Hardfork.supportsTransientStorage(fork) // boolean
69
+ * Hardfork.isPoS(fork) // boolean
70
+ * Hardfork.isPostMerge(fork) // boolean
71
+ * ```
13
72
  *
73
+ * @example
14
74
  * ```typescript
15
75
  * import * as Hardfork from 'voltaire-effect/primitives/Hardfork'
16
76
  *
17
- * const hardfork = Hardfork.CANCUN
77
+ * const fork = Hardfork.CANCUN
78
+ *
79
+ * if (Hardfork.supportsBlobs(fork)) {
80
+ * console.log('Blob transactions supported!')
81
+ * }
82
+ *
83
+ * if (Hardfork.isAtLeast(fork, Hardfork.SHANGHAI)) {
84
+ * console.log('PUSH0 available')
85
+ * }
18
86
  * ```
19
87
  *
20
88
  * @since 0.1.0
21
89
  */
90
+
91
+ // Re-export type
92
+ export type { HardforkType } from "@tevm/voltaire/Hardfork";
93
+
94
+ // Schema
95
+ export { HardforkSchema } from "./HardforkSchema.js";
96
+
97
+ // Parsing
98
+ export { fromString } from "./fromString.js";
99
+ export { toString } from "./toString.js";
100
+ export { isValidName } from "./isValidName.js";
101
+
102
+ // Listing
103
+ export { allIds } from "./allIds.js";
104
+ export { allNames } from "./allNames.js";
105
+ export { range } from "./range.js";
106
+
107
+ // Comparison
108
+ export { compare } from "./compare.js";
109
+ export { equals } from "./equals.js";
110
+ export { gt, gte, lt, lte, isAfter, isAtLeast, isBefore } from "./comparisons.js";
111
+ export { min, max } from "./minMax.js";
112
+
113
+ // Feature checks
114
+ export {
115
+ hasEIP1153,
116
+ hasEIP1559,
117
+ hasEIP3855,
118
+ hasEIP4844,
119
+ supportsBlobs,
120
+ supportsEIP1559,
121
+ supportsPUSH0,
122
+ supportsTransientStorage,
123
+ isPoS,
124
+ isPostMerge,
125
+ } from "./features.js";
126
+
127
+ // Constants
22
128
  export {
23
- ARROW_GLACIER,
24
- BERLIN,
25
- BYZANTIUM,
26
- CANCUN,
27
- CONSTANTINOPLE,
28
129
  FRONTIER,
29
- GRAY_GLACIER,
30
130
  HOMESTEAD,
131
+ DAO,
132
+ TANGERINE_WHISTLE,
133
+ SPURIOUS_DRAGON,
134
+ BYZANTIUM,
135
+ CONSTANTINOPLE,
136
+ PETERSBURG,
31
137
  ISTANBUL,
32
- LONDON,
33
138
  MUIR_GLACIER,
34
- PETERSBURG,
35
- PRAGUE,
139
+ BERLIN,
140
+ LONDON,
141
+ ARROW_GLACIER,
142
+ GRAY_GLACIER,
143
+ MERGE,
36
144
  SHANGHAI,
37
- SPURIOUS_DRAGON,
38
- TANGERINE_WHISTLE,
145
+ CANCUN,
146
+ PRAGUE,
147
+ OSAKA,
148
+ DEFAULT,
39
149
  } from "@tevm/voltaire/Hardfork";
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @module isValidName
3
+ * @description Validate hardfork name (pure)
4
+ * @since 0.1.0
5
+ */
6
+ import * as Hardfork from "@tevm/voltaire/Hardfork";
7
+
8
+ /**
9
+ * Check if a string is a valid hardfork name
10
+ *
11
+ * @param name - Name to validate
12
+ * @returns true if name is a valid hardfork
13
+ */
14
+ export const isValidName: (name: string) => boolean = Hardfork.isValidName;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module minMax
3
+ * @description Min/max hardfork functions (pure)
4
+ * @since 0.1.0
5
+ */
6
+ import * as Hardfork from "@tevm/voltaire/Hardfork";
7
+ import type { HardforkType } from "@tevm/voltaire/Hardfork";
8
+
9
+ /**
10
+ * Get the minimum (earliest) hardfork from an array
11
+ *
12
+ * @param forks - Array of hardforks
13
+ * @returns Earliest hardfork
14
+ */
15
+ export const min: (forks: HardforkType[]) => HardforkType = Hardfork.min;
16
+
17
+ /**
18
+ * Get the maximum (latest) hardfork from an array
19
+ *
20
+ * @param forks - Array of hardforks
21
+ * @returns Latest hardfork
22
+ */
23
+ export const max: (forks: HardforkType[]) => HardforkType = Hardfork.max;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module range
3
+ * @description Get range of hardforks (pure)
4
+ * @since 0.1.0
5
+ */
6
+ import * as Hardfork from "@tevm/voltaire/Hardfork";
7
+ import type { HardforkType } from "@tevm/voltaire/Hardfork";
8
+
9
+ /**
10
+ * Get a range of hardforks between start and end (inclusive)
11
+ *
12
+ * @param start - Start hardfork
13
+ * @param end - End hardfork
14
+ * @returns Array of hardforks in range
15
+ */
16
+ export const range: (
17
+ start: HardforkType,
18
+ end: HardforkType,
19
+ ) => HardforkType[] = Hardfork.range;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module toString
3
+ * @description Convert hardfork to string (pure)
4
+ * @since 0.1.0
5
+ */
6
+ import * as Hardfork from "@tevm/voltaire/Hardfork";
7
+ import type { HardforkType } from "@tevm/voltaire/Hardfork";
8
+
9
+ /**
10
+ * Convert hardfork to string name
11
+ *
12
+ * @param fork - Hardfork to convert
13
+ * @returns Hardfork name string
14
+ */
15
+ // biome-ignore lint/suspicious/noShadowRestrictedNames: toString is the function name in our API
16
+ export const toString: (fork: HardforkType) => string = Hardfork.toString;
@@ -564,6 +564,110 @@ describe("error cases", () => {
564
564
  });
565
565
  });
566
566
 
567
+ describe("from functions", () => {
568
+ describe("from", () => {
569
+ it("parses valid hex string", () => {
570
+ const hash = Effect.runSync(Hash.from(`0x${"ab".repeat(32)}`));
571
+ expect(hash.length).toBe(32);
572
+ });
573
+
574
+ it("parses valid Uint8Array", () => {
575
+ const hash = Effect.runSync(Hash.from(new Uint8Array(32).fill(0xab)));
576
+ expect(hash.length).toBe(32);
577
+ });
578
+
579
+ it("fails on invalid hex", () => {
580
+ expect(() => Effect.runSync(Hash.from("invalid"))).toThrow();
581
+ });
582
+
583
+ it("fails on wrong length bytes", () => {
584
+ expect(() => Effect.runSync(Hash.from(new Uint8Array(16)))).toThrow();
585
+ });
586
+ });
587
+
588
+ describe("fromHex", () => {
589
+ it("parses valid hex", () => {
590
+ const hash = Effect.runSync(Hash.fromHex(`0x${"ab".repeat(32)}`));
591
+ expect(hash.length).toBe(32);
592
+ });
593
+
594
+ it("parses hex without 0x prefix", () => {
595
+ const hash = Effect.runSync(Hash.fromHex("ab".repeat(32)));
596
+ expect(hash.length).toBe(32);
597
+ });
598
+
599
+ it("fails on invalid characters", () => {
600
+ expect(() =>
601
+ Effect.runSync(Hash.fromHex(`0x${"gg".repeat(32)}`)),
602
+ ).toThrow();
603
+ });
604
+
605
+ it("fails on wrong length", () => {
606
+ expect(() => Effect.runSync(Hash.fromHex(`0x${"ab".repeat(16)}`))).toThrow();
607
+ });
608
+ });
609
+
610
+ describe("fromBytes", () => {
611
+ it("parses valid 32-byte array", () => {
612
+ const hash = Effect.runSync(Hash.fromBytes(new Uint8Array(32)));
613
+ expect(hash.length).toBe(32);
614
+ });
615
+
616
+ it("fails on wrong length (too short)", () => {
617
+ expect(() => Effect.runSync(Hash.fromBytes(new Uint8Array(31)))).toThrow();
618
+ });
619
+
620
+ it("fails on wrong length (too long)", () => {
621
+ expect(() => Effect.runSync(Hash.fromBytes(new Uint8Array(33)))).toThrow();
622
+ });
623
+ });
624
+ });
625
+
626
+ describe("isHash", () => {
627
+ it("returns true for valid hash", () => {
628
+ const hash = S.decodeSync(Hash.Hex)(`0x${"ab".repeat(32)}`);
629
+ expect(Hash.isHash(hash)).toBe(true);
630
+ });
631
+
632
+ it("returns false for wrong length", () => {
633
+ expect(Hash.isHash(new Uint8Array(16))).toBe(false);
634
+ });
635
+
636
+ it("returns false for non-Uint8Array", () => {
637
+ expect(Hash.isHash("0x" + "ab".repeat(32))).toBe(false);
638
+ });
639
+
640
+ it("returns false for null", () => {
641
+ expect(Hash.isHash(null)).toBe(false);
642
+ });
643
+
644
+ it("returns false for undefined", () => {
645
+ expect(Hash.isHash(undefined)).toBe(false);
646
+ });
647
+ });
648
+
649
+ describe("toHex", () => {
650
+ it("converts hash to hex string", () => {
651
+ const hash = S.decodeSync(Hash.Hex)(`0x${"ab".repeat(32)}`);
652
+ expect(Hash.toHex(hash)).toBe(`0x${"ab".repeat(32)}`);
653
+ });
654
+
655
+ it("returns lowercase hex", () => {
656
+ const hash = S.decodeSync(Hash.Hex)(`0x${"AB".repeat(32)}`);
657
+ expect(Hash.toHex(hash)).toBe(`0x${"ab".repeat(32)}`);
658
+ });
659
+
660
+ it("produces 66-character string", () => {
661
+ const hash = S.decodeSync(Hash.Hex)(`0x${"00".repeat(32)}`);
662
+ expect(Hash.toHex(hash).length).toBe(66);
663
+ });
664
+
665
+ it("starts with 0x", () => {
666
+ const hash = S.decodeSync(Hash.Hex)(`0x${"ab".repeat(32)}`);
667
+ expect(Hash.toHex(hash).startsWith("0x")).toBe(true);
668
+ });
669
+ });
670
+
567
671
  describe("additional edge cases", () => {
568
672
  it("isValidHex with missing 0x prefix accepts raw hex", () => {
569
673
  const result = Effect.runSync(Hash.isValidHex("ab".repeat(32)));
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @fileoverview Create Hash from string or bytes.
3
+ *
4
+ * @module Hash/from
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 string or bytes.
15
+ *
16
+ * @description Parses hex string or Uint8Array into a 32-byte hash.
17
+ * Can fail if input is invalid format or wrong length.
18
+ *
19
+ * @param {string | Uint8Array} value - Hex string or Uint8Array
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.from('0x' + 'ab'.repeat(32)))
28
+ * const hash2 = Effect.runSync(Hash.from(new Uint8Array(32)))
29
+ * ```
30
+ *
31
+ * @since 0.0.1
32
+ */
33
+ export const from = (
34
+ value: string | Uint8Array,
35
+ ): Effect.Effect<HashType, ValidationError> =>
36
+ Effect.try({
37
+ try: () => Hash.from(value),
38
+ catch: (error) =>
39
+ new ValidationError(
40
+ error instanceof Error ? error.message : "Invalid hash input",
41
+ {
42
+ value,
43
+ expected: "32-byte hash",
44
+ cause: error instanceof Error ? error : undefined,
45
+ },
46
+ ),
47
+ });
@@ -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);