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
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @module validation
3
+ * @description ENS validation functions
4
+ * @since 0.1.0
5
+ */
6
+ import { Effect } from "effect";
7
+ import { Ens } from "@tevm/voltaire";
8
+ import type { EnsType } from "./String.js";
9
+
10
+ type EnsError =
11
+ | Ens.DisallowedCharacterError
12
+ | Ens.EmptyLabelError
13
+ | Ens.IllegalMixtureError
14
+ | Ens.InvalidLabelExtensionError
15
+ | Ens.InvalidUtf8Error
16
+ | Ens.WholeConfusableError;
17
+
18
+ /**
19
+ * Check if value is valid ENS name (pure)
20
+ */
21
+ export const isValid = (name: string): boolean => Ens.isValid(name);
22
+
23
+ /**
24
+ * Type guard for EnsType
25
+ */
26
+ export const is = (value: unknown): value is EnsType => Ens.is(value);
27
+
28
+ /**
29
+ * Validate ENS name, throwing on error
30
+ *
31
+ * @param name - ENS name to validate
32
+ * @returns Effect that succeeds if valid, fails with EnsError if invalid
33
+ */
34
+ export const validate = (name: string): Effect.Effect<void, EnsError> =>
35
+ Effect.try({
36
+ try: () => Ens.validate(name),
37
+ catch: (e) => e as EnsError,
38
+ });
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @module accessors
3
+ * @description Pure EventLog accessor functions
4
+ * @since 0.1.0
5
+ */
6
+ import * as EventLog from "@tevm/voltaire/EventLog";
7
+ import type { EventLogType } from "@tevm/voltaire/EventLog";
8
+ import type { HashType } from "@tevm/voltaire/Hash";
9
+
10
+ /**
11
+ * Get topic at index 0 (event signature)
12
+ */
13
+ export const getTopic0 = (log: EventLogType): HashType | undefined =>
14
+ EventLog.getTopic0(log);
15
+
16
+ /**
17
+ * Get event signature hash
18
+ */
19
+ export const getSignature = (log: EventLogType): HashType | undefined =>
20
+ EventLog.getSignature(log);
21
+
22
+ /**
23
+ * Get all indexed topics (topics 1-3)
24
+ */
25
+ export const getIndexedTopics = (log: EventLogType): readonly HashType[] =>
26
+ EventLog.getIndexedTopics(log);
27
+
28
+ /**
29
+ * Get indexed parameters (alias for getIndexedTopics)
30
+ */
31
+ export const getIndexed = (log: EventLogType): readonly HashType[] =>
32
+ EventLog.getIndexed(log);
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module clone
3
+ * @description Pure EventLog clone/copy functions
4
+ * @since 0.1.0
5
+ */
6
+ import * as EventLog from "@tevm/voltaire/EventLog";
7
+ import type { EventLogType } from "@tevm/voltaire/EventLog";
8
+
9
+ /**
10
+ * Create deep clone of EventLog
11
+ */
12
+ export const clone = (log: EventLogType): EventLogType => EventLog.clone(log);
13
+
14
+ /**
15
+ * Copy EventLog (alias for clone)
16
+ */
17
+ export const copy = (log: EventLogType): EventLogType => EventLog.copy(log);
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @module create
3
+ * @description Effect-wrapped EventLog constructors
4
+ * @since 0.1.0
5
+ */
6
+ import { Effect } from "effect";
7
+ import * as EventLog from "@tevm/voltaire/EventLog";
8
+ import type { EventLogType } from "@tevm/voltaire/EventLog";
9
+ import type { AddressType } from "@tevm/voltaire/Address";
10
+ import type { HashType } from "@tevm/voltaire/Hash";
11
+
12
+ interface EventLogInput {
13
+ address: AddressType;
14
+ topics: HashType[];
15
+ data: Uint8Array;
16
+ blockNumber?: bigint;
17
+ transactionHash?: HashType;
18
+ transactionIndex?: number;
19
+ blockHash?: HashType;
20
+ logIndex?: number;
21
+ removed?: boolean;
22
+ }
23
+
24
+ /**
25
+ * Create EventLog from raw values
26
+ *
27
+ * @param input - EventLog data
28
+ * @returns Effect yielding EventLogType
29
+ */
30
+ export const create = (input: EventLogInput): Effect.Effect<EventLogType, Error> =>
31
+ Effect.try({
32
+ try: () => EventLog.create(input),
33
+ catch: (e) => e as Error,
34
+ });
35
+
36
+ /**
37
+ * Create EventLog from various input formats
38
+ *
39
+ * @param input - EventLog data or compatible object
40
+ * @returns Effect yielding EventLogType
41
+ */
42
+ export const from = (input: unknown): Effect.Effect<EventLogType, Error> =>
43
+ Effect.try({
44
+ try: () => EventLog.from(input as EventLogInput),
45
+ catch: (e) => e as Error,
46
+ });
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @module filtering
3
+ * @description Pure EventLog filtering functions
4
+ * @since 0.1.0
5
+ */
6
+ import * as EventLog from "@tevm/voltaire/EventLog";
7
+ import type { EventLogType } from "@tevm/voltaire/EventLog";
8
+ import type { AddressType } from "@tevm/voltaire/Address";
9
+ import type { HashType } from "@tevm/voltaire/Hash";
10
+
11
+ interface LogFilter {
12
+ address?: AddressType | AddressType[];
13
+ topics?: (HashType | HashType[] | null)[];
14
+ }
15
+
16
+ /**
17
+ * Check if log matches given address
18
+ */
19
+ export const matchesAddress = (
20
+ log: EventLogType,
21
+ address: AddressType | AddressType[],
22
+ ): boolean => EventLog.matchesAddress(log, address);
23
+
24
+ /**
25
+ * Check if log matches topic filter
26
+ */
27
+ export const matchesTopics = (
28
+ log: EventLogType,
29
+ topics: (HashType | HashType[] | null)[],
30
+ ): boolean => EventLog.matchesTopics(log, topics);
31
+
32
+ /**
33
+ * Check if log matches full filter (address + topics)
34
+ */
35
+ export const matchesFilter = (log: EventLogType, filter: LogFilter): boolean =>
36
+ EventLog.matchesFilter(log, filter);
37
+
38
+ /**
39
+ * Filter array of logs by filter criteria
40
+ */
41
+ export const filterLogs = (logs: EventLogType[], filter: LogFilter): EventLogType[] =>
42
+ EventLog.filterLogs(logs, filter);
43
+
44
+ /**
45
+ * Sort logs by block number, transaction index, and log index
46
+ */
47
+ export const sortLogs = (logs: EventLogType[]): EventLogType[] =>
48
+ EventLog.sortLogs(logs);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @module EventLog
3
- * @description Event logs emitted by smart contracts.
3
+ * @description Effect-based operations for EVM event logs.
4
4
  *
5
5
  * ## Type Declarations
6
6
  *
@@ -12,12 +12,102 @@
12
12
  * }
13
13
  * ```
14
14
  *
15
+ * ## Schemas
16
+ *
17
+ * | Schema | Input | Output |
18
+ * |--------|-------|--------|
19
+ * | `EventLog.Rpc` | RPC log object | EventLogType |
20
+ * | `EventLog.Schema` | RPC log object | EventLogType |
21
+ *
22
+ * ## Constructors (Effect-wrapped)
23
+ *
24
+ * ```typescript
25
+ * EventLog.create(input) // Effect<EventLogType, Error>
26
+ * EventLog.from(input) // Effect<EventLogType, Error>
27
+ * ```
28
+ *
29
+ * ## Accessors (Pure)
30
+ *
31
+ * ```typescript
32
+ * EventLog.getTopic0(log) // HashType | undefined
33
+ * EventLog.getSignature(log) // HashType | undefined
34
+ * EventLog.getIndexed(log) // readonly HashType[]
35
+ * EventLog.getIndexedTopics(log) // readonly HashType[]
36
+ * ```
37
+ *
38
+ * ## Filtering (Pure)
39
+ *
40
+ * ```typescript
41
+ * EventLog.matchesAddress(log, address) // boolean
42
+ * EventLog.matchesTopics(log, topics) // boolean
43
+ * EventLog.matchesFilter(log, filter) // boolean
44
+ * EventLog.filterLogs(logs, filter) // EventLogType[]
45
+ * EventLog.sortLogs(logs) // EventLogType[]
46
+ * ```
47
+ *
48
+ * ## Status (Pure)
49
+ *
50
+ * ```typescript
51
+ * EventLog.isRemoved(log) // boolean
52
+ * EventLog.wasRemoved(log) // boolean
53
+ * ```
54
+ *
55
+ * ## Clone/Copy (Pure)
56
+ *
57
+ * ```typescript
58
+ * EventLog.clone(log) // EventLogType
59
+ * EventLog.copy(log) // EventLogType
60
+ * ```
61
+ *
62
+ * ## Conversion (Pure)
63
+ *
64
+ * ```typescript
65
+ * EventLog.toRpc(log) // RpcLog
66
+ * ```
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * import * as EventLog from 'voltaire-effect/primitives/EventLog'
71
+ * import * as Schema from 'effect/Schema'
72
+ *
73
+ * const log = Schema.decodeSync(EventLog.Rpc)({
74
+ * address: '0x...',
75
+ * topics: ['0x...'],
76
+ * data: new Uint8Array(32),
77
+ * })
78
+ *
79
+ * const signature = EventLog.getSignature(log)
80
+ * const transfers = EventLog.filterLogs(logs, { topics: [transferTopic] })
81
+ * ```
82
+ *
15
83
  * @since 0.0.1
16
84
  */
85
+
86
+ // Types
87
+ export type { EventLogType } from "@tevm/voltaire/EventLog";
88
+
89
+ // Schemas
17
90
  export {
18
- EventLogSchema,
19
- type EventLogType,
20
- EventLogTypeSchema,
21
- Rpc,
22
- Schema,
91
+ EventLogSchema,
92
+ EventLogTypeSchema,
93
+ Rpc,
94
+ Schema,
23
95
  } from "./Rpc.js";
96
+
97
+ // Constructors (Effect-wrapped)
98
+ export { create, from } from "./create.js";
99
+
100
+ // Accessors (Pure)
101
+ export { getTopic0, getSignature, getIndexed, getIndexedTopics } from "./accessors.js";
102
+
103
+ // Filtering (Pure)
104
+ export { matchesAddress, matchesTopics, matchesFilter, filterLogs, sortLogs } from "./filtering.js";
105
+
106
+ // Status (Pure)
107
+ export { isRemoved, wasRemoved } from "./status.js";
108
+
109
+ // Clone/Copy (Pure)
110
+ export { clone, copy } from "./clone.js";
111
+
112
+ // Conversion (Pure)
113
+ export { toRpc } from "./toRpc.js";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module status
3
+ * @description Pure EventLog status functions
4
+ * @since 0.1.0
5
+ */
6
+ import * as EventLog from "@tevm/voltaire/EventLog";
7
+ import type { EventLogType } from "@tevm/voltaire/EventLog";
8
+
9
+ /**
10
+ * Check if log was removed due to reorg
11
+ */
12
+ export const isRemoved = (log: EventLogType): boolean => EventLog.isRemoved(log);
13
+
14
+ /**
15
+ * Check if log was removed (alias)
16
+ */
17
+ export const wasRemoved = (log: EventLogType): boolean => EventLog.wasRemoved(log);
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @module toRpc
3
+ * @description Convert EventLog to RPC format
4
+ * @since 0.1.0
5
+ */
6
+ import type { EventLogType } from "@tevm/voltaire/EventLog";
7
+ import * as Hex from "@tevm/voltaire/Hex";
8
+
9
+ interface RpcLog {
10
+ address: string;
11
+ topics: string[];
12
+ data: string;
13
+ blockNumber?: string;
14
+ transactionHash?: string;
15
+ transactionIndex?: string;
16
+ blockHash?: string;
17
+ logIndex?: string;
18
+ removed?: boolean;
19
+ }
20
+
21
+ /**
22
+ * Convert EventLog to RPC response format
23
+ */
24
+ export const toRpc = (log: EventLogType): RpcLog => {
25
+ const result: RpcLog = {
26
+ address: Hex.fromBytes(log.address),
27
+ topics: log.topics.map((t) => Hex.fromBytes(t)),
28
+ data: Hex.fromBytes(log.data),
29
+ };
30
+ if (log.blockNumber !== undefined) {
31
+ result.blockNumber = `0x${log.blockNumber.toString(16)}`;
32
+ }
33
+ if (log.transactionHash !== undefined) {
34
+ result.transactionHash = Hex.fromBytes(log.transactionHash);
35
+ }
36
+ if (log.transactionIndex !== undefined) {
37
+ result.transactionIndex = `0x${log.transactionIndex.toString(16)}`;
38
+ }
39
+ if (log.blockHash !== undefined) {
40
+ result.blockHash = Hex.fromBytes(log.blockHash);
41
+ }
42
+ if (log.logIndex !== undefined) {
43
+ result.logIndex = `0x${log.logIndex.toString(16)}`;
44
+ }
45
+ if (log.removed !== undefined) {
46
+ result.removed = log.removed;
47
+ }
48
+ return result;
49
+ };
@@ -22,13 +22,13 @@ const HardforkTypeSchema = S.declare<HardforkType>(
22
22
  * @example
23
23
  * ```ts
24
24
  * import * as S from 'effect/Schema'
25
- * import { Schema } from 'voltaire-effect/primitives/Hardfork'
25
+ * import { HardforkSchema } from 'voltaire-effect/primitives/Hardfork'
26
26
  *
27
- * const fork = S.decodeSync(Schema)('london')
27
+ * const fork = S.decodeSync(HardforkSchema)('london')
28
28
  * ```
29
29
  * @since 0.0.1
30
30
  */
31
- export const Schema: S.Schema<HardforkType, string> = S.transformOrFail(
31
+ export const HardforkSchema: S.Schema<HardforkType, string> = S.transformOrFail(
32
32
  S.String,
33
33
  HardforkTypeSchema,
34
34
  {
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module allIds
3
+ * @description Get all hardfork IDs (pure)
4
+ * @since 0.1.0
5
+ */
6
+ import * as Hardfork from "@tevm/voltaire/Hardfork";
7
+
8
+ /**
9
+ * Get all hardfork IDs in order
10
+ *
11
+ * @returns Array of all hardfork types in chronological order
12
+ */
13
+ export const allIds = Hardfork.allIds;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module allNames
3
+ * @description Get all hardfork names (pure)
4
+ * @since 0.1.0
5
+ */
6
+ import * as Hardfork from "@tevm/voltaire/Hardfork";
7
+
8
+ /**
9
+ * Get all hardfork names in order
10
+ *
11
+ * @returns Array of all hardfork names in chronological order
12
+ */
13
+ export const allNames = Hardfork.allNames;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module compare
3
+ * @description Compare 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
+ * Compare two hardforks chronologically
11
+ *
12
+ * @param a - First hardfork
13
+ * @param b - Second hardfork
14
+ * @returns -1 if a < b, 0 if equal, 1 if a > b
15
+ */
16
+ export const compare: (a: HardforkType, b: HardforkType) => number =
17
+ Hardfork.compare;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @module comparisons
3
+ * @description Hardfork comparison predicates (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
+ * Check if a > b chronologically
11
+ */
12
+ export const gt: (a: HardforkType, b: HardforkType) => boolean = Hardfork.gt;
13
+
14
+ /**
15
+ * Check if a >= b chronologically
16
+ */
17
+ export const gte: (a: HardforkType, b: HardforkType) => boolean = Hardfork.gte;
18
+
19
+ /**
20
+ * Check if a < b chronologically
21
+ */
22
+ export const lt: (a: HardforkType, b: HardforkType) => boolean = Hardfork.lt;
23
+
24
+ /**
25
+ * Check if a <= b chronologically
26
+ */
27
+ export const lte: (a: HardforkType, b: HardforkType) => boolean = Hardfork.lte;
28
+
29
+ /**
30
+ * Check if fork is after a minimum fork
31
+ */
32
+ export const isAfter: (fork: HardforkType, minFork: HardforkType) => boolean =
33
+ Hardfork.isAfter;
34
+
35
+ /**
36
+ * Check if fork is at least a minimum fork
37
+ */
38
+ export const isAtLeast: (fork: HardforkType, minFork: HardforkType) => boolean =
39
+ Hardfork.isAtLeast;
40
+
41
+ /**
42
+ * Check if fork is before a maximum fork
43
+ */
44
+ export const isBefore: (fork: HardforkType, maxFork: HardforkType) => boolean =
45
+ Hardfork.isBefore;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module equals
3
+ * @description Check hardfork equality (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
+ * Check if two hardforks are equal
11
+ *
12
+ * @param a - First hardfork
13
+ * @param b - Second hardfork
14
+ * @returns true if hardforks are the same
15
+ */
16
+ export const equals: (a: HardforkType, b: HardforkType) => boolean =
17
+ Hardfork.equals;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @module features
3
+ * @description Hardfork feature checks (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
+ * Check if hardfork has EIP-1153 (transient storage)
11
+ */
12
+ export const hasEIP1153: (fork: HardforkType) => boolean = Hardfork.hasEIP1153;
13
+
14
+ /**
15
+ * Check if hardfork has EIP-1559 (fee market)
16
+ */
17
+ export const hasEIP1559: (fork: HardforkType) => boolean = Hardfork.hasEIP1559;
18
+
19
+ /**
20
+ * Check if hardfork has EIP-3855 (PUSH0)
21
+ */
22
+ export const hasEIP3855: (fork: HardforkType) => boolean = Hardfork.hasEIP3855;
23
+
24
+ /**
25
+ * Check if hardfork has EIP-4844 (blobs)
26
+ */
27
+ export const hasEIP4844: (fork: HardforkType) => boolean = Hardfork.hasEIP4844;
28
+
29
+ /**
30
+ * Check if hardfork supports blob transactions
31
+ */
32
+ export const supportsBlobs: (fork: HardforkType) => boolean =
33
+ Hardfork.supportsBlobs;
34
+
35
+ /**
36
+ * Check if hardfork supports EIP-1559 fee market
37
+ */
38
+ export const supportsEIP1559: (fork: HardforkType) => boolean =
39
+ Hardfork.supportsEIP1559;
40
+
41
+ /**
42
+ * Check if hardfork supports PUSH0 opcode
43
+ */
44
+ export const supportsPUSH0: (fork: HardforkType) => boolean =
45
+ Hardfork.supportsPUSH0;
46
+
47
+ /**
48
+ * Check if hardfork supports transient storage
49
+ */
50
+ export const supportsTransientStorage: (fork: HardforkType) => boolean =
51
+ Hardfork.supportsTransientStorage;
52
+
53
+ /**
54
+ * Check if hardfork is Proof of Stake
55
+ */
56
+ export const isPoS: (fork: HardforkType) => boolean = Hardfork.isPoS;
57
+
58
+ /**
59
+ * Check if hardfork is post-Merge
60
+ */
61
+ export const isPostMerge: (fork: HardforkType) => boolean = Hardfork.isPostMerge;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @module fromString
3
+ * @description Parse hardfork from 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
+ * Parse a hardfork from string name
11
+ *
12
+ * @param name - Hardfork name (case insensitive)
13
+ * @returns HardforkType or undefined if invalid
14
+ */
15
+ export const fromString: (name: string) => HardforkType | undefined =
16
+ Hardfork.fromString;