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,168 @@
1
+ /**
2
+ * @fileoverview Free function to wait for a transaction receipt.
3
+ *
4
+ * @module Provider/functions/waitForTransactionReceipt
5
+ * @since 0.4.0
6
+ */
7
+
8
+ import * as Duration from "effect/Duration";
9
+ import * as Effect from "effect/Effect";
10
+ import * as Schedule from "effect/Schedule";
11
+ import type { TransportError } from "../../Transport/TransportError.js";
12
+ import { ProviderService } from "../ProviderService.js";
13
+ import {
14
+ type HashInput,
15
+ ProviderConfirmationsPendingError,
16
+ ProviderReceiptPendingError,
17
+ type ProviderResponseError,
18
+ ProviderTimeoutError,
19
+ type ReceiptType,
20
+ } from "../types.js";
21
+ import { parseHexToBigInt, toHashHex } from "../utils.js";
22
+
23
+ /**
24
+ * Options for waiting for a transaction receipt.
25
+ */
26
+ export interface WaitForTransactionReceiptOptions {
27
+ readonly confirmations?: number;
28
+ readonly timeout?: number;
29
+ readonly pollingInterval?: number;
30
+ }
31
+
32
+ /**
33
+ * Waits for a transaction to be mined and confirmed.
34
+ *
35
+ * @param hash - The transaction hash
36
+ * @param opts - Options for confirmations, timeout, and polling interval
37
+ * @returns Effect yielding the transaction receipt
38
+ *
39
+ * @since 0.4.0
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * import { Effect } from 'effect'
44
+ * import { waitForTransactionReceipt, Provider, HttpTransport } from 'voltaire-effect'
45
+ *
46
+ * const program = Effect.gen(function* () {
47
+ * const receipt = yield* waitForTransactionReceipt('0x...', {
48
+ * confirmations: 3,
49
+ * timeout: 60000
50
+ * })
51
+ * console.log(`Transaction mined in block ${receipt.blockNumber}`)
52
+ * }).pipe(
53
+ * Effect.provide(Provider),
54
+ * Effect.provide(HttpTransport('https://mainnet.infura.io/v3/YOUR_KEY'))
55
+ * )
56
+ * ```
57
+ */
58
+ export const waitForTransactionReceipt = (
59
+ hash: HashInput,
60
+ opts?: WaitForTransactionReceiptOptions,
61
+ ): Effect.Effect<
62
+ ReceiptType,
63
+ TransportError | ProviderResponseError | ProviderTimeoutError,
64
+ ProviderService
65
+ > =>
66
+ Effect.flatMap(ProviderService, (svc) =>
67
+ Effect.gen(function* () {
68
+ const confirmations = opts?.confirmations ?? 1;
69
+ const timeout = opts?.timeout ?? 120_000;
70
+ const pollingInterval = opts?.pollingInterval ?? 4_000;
71
+ const hashHex = toHashHex(hash);
72
+
73
+ const pollReceipt = svc
74
+ .request<ReceiptType | null>("eth_getTransactionReceipt", [hashHex])
75
+ .pipe(
76
+ Effect.flatMap((receipt) =>
77
+ receipt
78
+ ? Effect.succeed(receipt)
79
+ : Effect.fail(
80
+ new ProviderReceiptPendingError(hash, "Transaction pending"),
81
+ ),
82
+ ),
83
+ );
84
+
85
+ const receipt = yield* pollReceipt.pipe(
86
+ Effect.retry(
87
+ Schedule.spaced(Duration.millis(pollingInterval)).pipe(
88
+ Schedule.intersect(Schedule.recurUpTo(Duration.millis(timeout))),
89
+ Schedule.whileInput(
90
+ (e) =>
91
+ (e as ProviderReceiptPendingError)._tag ===
92
+ "ProviderReceiptPendingError",
93
+ ),
94
+ ),
95
+ ),
96
+ Effect.catchTag("ProviderReceiptPendingError", () =>
97
+ Effect.fail(
98
+ new ProviderTimeoutError(
99
+ hash,
100
+ "Timeout waiting for transaction receipt",
101
+ { timeoutMs: timeout },
102
+ ),
103
+ ),
104
+ ),
105
+ Effect.timeoutFail({
106
+ duration: Duration.millis(timeout),
107
+ onTimeout: () =>
108
+ new ProviderTimeoutError(
109
+ hash,
110
+ "Timeout waiting for transaction receipt",
111
+ { timeoutMs: timeout },
112
+ ),
113
+ }),
114
+ );
115
+
116
+ if (confirmations <= 1) {
117
+ return receipt;
118
+ }
119
+
120
+ const receiptBlockNumber = yield* parseHexToBigInt({
121
+ method: "eth_getTransactionReceipt",
122
+ params: [hashHex],
123
+ response: receipt.blockNumber,
124
+ });
125
+ const targetBlock = receiptBlockNumber + BigInt(confirmations - 1);
126
+
127
+ const pollConfirmations = Effect.gen(function* () {
128
+ const currentBlockHex = yield* svc.request<string>("eth_blockNumber");
129
+ const currentBlock = yield* parseHexToBigInt({
130
+ method: "eth_blockNumber",
131
+ response: currentBlockHex,
132
+ });
133
+ if (currentBlock >= targetBlock) {
134
+ return receipt;
135
+ }
136
+ return yield* Effect.fail(
137
+ new ProviderConfirmationsPendingError(hash, "Waiting for confirmations"),
138
+ );
139
+ });
140
+
141
+ return yield* pollConfirmations.pipe(
142
+ Effect.retry(
143
+ Schedule.spaced(Duration.millis(pollingInterval)).pipe(
144
+ Schedule.intersect(Schedule.recurUpTo(Duration.millis(timeout))),
145
+ Schedule.whileInput(
146
+ (e) =>
147
+ (e as ProviderConfirmationsPendingError)._tag ===
148
+ "ProviderConfirmationsPendingError",
149
+ ),
150
+ ),
151
+ ),
152
+ Effect.catchTag("ProviderConfirmationsPendingError", () =>
153
+ Effect.fail(
154
+ new ProviderTimeoutError(hash, "Timeout waiting for confirmations", {
155
+ timeoutMs: timeout,
156
+ }),
157
+ ),
158
+ ),
159
+ Effect.timeoutFail({
160
+ duration: Duration.millis(timeout),
161
+ onTimeout: () =>
162
+ new ProviderTimeoutError(hash, "Timeout waiting for confirmations", {
163
+ timeoutMs: timeout,
164
+ }),
165
+ }),
166
+ );
167
+ }),
168
+ );
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @fileoverview Free function to watch for new blocks with reorg detection.
3
+ *
4
+ * @module Provider/functions/watchBlocks
5
+ * @since 0.4.0
6
+ */
7
+
8
+ import {
9
+ type BlockInclude,
10
+ type BlockStreamEvent,
11
+ BlockStream as CoreBlockStream,
12
+ type WatchOptions,
13
+ } from "@tevm/voltaire/block";
14
+ import * as Effect from "effect/Effect";
15
+ import * as Runtime from "effect/Runtime";
16
+ import * as Stream from "effect/Stream";
17
+ import { TransportError } from "../../Transport/TransportError.js";
18
+ import { ProviderService } from "../ProviderService.js";
19
+ import { ProviderStreamError, type WatchBlocksError } from "../types.js";
20
+
21
+ /**
22
+ * Watches for new blocks with reorg detection.
23
+ *
24
+ * Uses the core BlockStream to continuously poll for new blocks,
25
+ * tracking chain state to detect and report reorganizations.
26
+ *
27
+ * @param options - Watch options including optional fromBlock and include level
28
+ * @returns Stream yielding BlockStreamEvents (blocks or reorg events)
29
+ *
30
+ * @since 0.4.0
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * import { Effect, Stream } from 'effect'
35
+ * import { watchBlocks, Provider, HttpTransport } from 'voltaire-effect'
36
+ *
37
+ * const program = watchBlocks({ include: 'transactions' }).pipe(
38
+ * Stream.tap((event) =>
39
+ * Effect.sync(() => {
40
+ * if (event.type === 'reorg') {
41
+ * console.log('Reorg detected:', event.removed.length, 'blocks removed')
42
+ * } else {
43
+ * console.log('New blocks:', event.blocks.length)
44
+ * }
45
+ * })
46
+ * ),
47
+ * Stream.take(10),
48
+ * Stream.runDrain,
49
+ * Effect.provide(Provider),
50
+ * Effect.provide(HttpTransport('https://mainnet.infura.io/v3/YOUR_KEY'))
51
+ * )
52
+ * ```
53
+ */
54
+ export const watchBlocks = <TInclude extends BlockInclude = "header">(
55
+ options?: WatchOptions<TInclude>,
56
+ ): Stream.Stream<BlockStreamEvent<TInclude>, WatchBlocksError, ProviderService> =>
57
+ Stream.unwrap(
58
+ Effect.gen(function* () {
59
+ const svc = yield* ProviderService;
60
+ const runtime = yield* Effect.runtime<never>();
61
+ const provider = {
62
+ request: async ({
63
+ method,
64
+ params,
65
+ }: {
66
+ method: string;
67
+ params?: unknown[];
68
+ }) =>
69
+ Runtime.runPromise(runtime)(svc.request(method, params)),
70
+ on: () => {},
71
+ removeListener: () => {},
72
+ };
73
+ const coreStream = CoreBlockStream({ provider: provider as any });
74
+ const cleanup = () => {
75
+ (coreStream as unknown as { destroy?: () => void }).destroy?.();
76
+ };
77
+ return Stream.acquireRelease(
78
+ Effect.sync(() => coreStream.watch(options)),
79
+ () => Effect.sync(cleanup),
80
+ ).pipe(
81
+ Stream.flatMap((generator) =>
82
+ Stream.fromAsyncIterable(
83
+ { [Symbol.asyncIterator]: () => generator },
84
+ (error) =>
85
+ error instanceof TransportError
86
+ ? error
87
+ : new ProviderStreamError(
88
+ { method: "watchBlocks", options },
89
+ error instanceof Error
90
+ ? error.message
91
+ : "BlockStream error",
92
+ { cause: error instanceof Error ? error : undefined },
93
+ ),
94
+ ),
95
+ ),
96
+ );
97
+ }),
98
+ );
@@ -3,48 +3,6 @@
3
3
  *
4
4
  * @module Provider
5
5
  * @since 0.0.1
6
- *
7
- * @description
8
- * This module provides the provider service for querying Ethereum
9
- * blockchain data. It includes the service definition, layer implementation,
10
- * and all related types.
11
- *
12
- * Main exports:
13
- * - {@link ProviderService} - The service tag/interface
14
- * - {@link Provider} - The live implementation layer
15
- * - {@link ProviderResponseError} - Invalid or unexpected responses
16
- * - {@link ProviderNotFoundError} - Missing resources
17
- * - {@link ProviderValidationError} - Invalid inputs
18
- * - {@link ProviderTimeoutError} - Timeout while waiting
19
- *
20
- * Type exports:
21
- * - {@link BlockTag} - Block identifier type
22
- * - {@link BlockType} - Block data structure
23
- * - {@link TransactionType} - Transaction data structure
24
- * - {@link ReceiptType} - Transaction receipt structure
25
- * - {@link LogType} - Event log structure
26
- * - {@link CallRequest} - eth_call parameters
27
- * - {@link LogFilter} - eth_getLogs parameters
28
- *
29
- * @example Typical usage
30
- * ```typescript
31
- * import { Effect } from 'effect'
32
- * import {
33
- * ProviderService,
34
- * Provider,
35
- * HttpTransport
36
- * } from 'voltaire-effect'
37
- *
38
- * const program = Effect.gen(function* () {
39
- * const provider = yield* ProviderService
40
- * return yield* provider.getBlockNumber()
41
- * }).pipe(
42
- * Effect.provide(Provider),
43
- * Effect.provide(HttpTransport('https://mainnet.infura.io/v3/YOUR_KEY'))
44
- * )
45
- * ```
46
- *
47
- * @see {@link TransportService} - Required dependency for RPC communication
48
6
  */
49
7
 
50
8
  // Re-export block streaming types for convenience
@@ -55,150 +13,36 @@ export type {
55
13
  BlocksEvent,
56
14
  WatchOptions,
57
15
  } from "@tevm/voltaire/block";
58
- export { Account } from "./Account.js";
59
- export { AccountService, type AccountShape } from "./AccountService.js";
16
+
17
+ // Free functions (all blockchain operations)
18
+ export * from "./functions/index.js";
19
+
20
+ // Types and errors
21
+ export * from "./types.js";
22
+
23
+ // Service and layer
24
+ export { ProviderService, type ProviderShape } from "./ProviderService.js";
25
+ export { Provider } from "./Provider.js";
26
+
27
+ // Contract actions
60
28
  export {
61
29
  type ContractCall,
30
+ type MulticallError,
62
31
  type MulticallParams,
63
32
  type MulticallResults,
64
33
  multicall,
34
+ type SimulateContractError,
65
35
  type SimulateContractParams,
66
36
  type SimulateContractResult,
67
37
  type StateOverride,
68
38
  simulateContract,
69
- } from "./actions/index.js";
70
- export {
71
39
  type Abi,
40
+ type ReadContractError,
72
41
  type ReadContractParams,
73
42
  readContract,
74
- } from "./actions/readContract.js";
75
- export { Blocks } from "./Blocks.js";
76
- export { BlocksService, type BlocksShape } from "./BlocksService.js";
77
- export { Events } from "./Events.js";
78
- export { EventsService, type EventsShape } from "./EventsService.js";
79
- export {
80
- createBlockFilter,
81
- createEventFilter,
82
- createPendingTransactionFilter,
83
- getFilterChanges,
84
- getFilterLogs,
85
- uninstallFilter,
86
- } from "./filters.js";
87
- export {
88
- calculateBlobGasPrice,
89
- estimateBlobGas,
90
- getBlobBaseFee,
91
- } from "./getBlobBaseFee.js";
92
- export { Network } from "./Network.js";
93
- export {
94
- NetworkService,
95
- type NetworkShape,
96
- type SyncingStatus,
97
- type WorkResult,
98
- } from "./NetworkService.js";
99
- export { Provider } from "./Provider.js";
100
- export {
101
- type AccessListInput,
102
- type AccessListType,
103
- type AddressInput,
104
- type BackfillBlocksError,
105
- type BlockTag,
106
- type BlockType,
107
- type CallError,
108
- type CallRequest,
109
- type CreateAccessListError,
110
- type CreateBlockFilterError,
111
- type CreateEventFilterError,
112
- type CreatePendingTransactionFilterError,
113
- type EstimateGasError,
114
- type EventFilter,
115
- type FeeHistoryType,
116
- type FilterChanges,
117
- type FilterId,
118
- type GetAccountsError,
119
- type GetBalanceError,
120
- type GetBlobBaseFeeError,
121
- type GetBlockArgs,
122
- type GetBlockError,
123
- type GetBlockNumberError,
124
- type GetBlockReceiptsArgs,
125
- type GetBlockReceiptsError,
126
- type GetBlockTransactionCountArgs,
127
- type GetBlockTransactionCountError,
128
- type GetChainIdError,
129
- type GetCodeError,
130
- type GetCoinbaseError,
131
- type GetFeeHistoryError,
132
- type GetFilterChangesError,
133
- type GetFilterLogsError,
134
- type GetGasPriceError,
135
- type GetHashrateError,
136
- type GetLogsError,
137
- type GetMaxPriorityFeePerGasError,
138
- type GetMiningError,
139
- type GetProofError,
140
- type GetProtocolVersionError,
141
- type GetStorageAtError,
142
- type GetSyncingError,
143
- type GetTransactionByBlockHashAndIndexError,
144
- type GetTransactionByBlockNumberAndIndexError,
145
- type GetTransactionConfirmationsError,
146
- type GetTransactionCountError,
147
- type GetTransactionError,
148
- type GetTransactionReceiptError,
149
- type GetUncleArgs,
150
- type GetUncleCountArgs,
151
- type GetUncleCountError,
152
- type GetUncleError,
153
- type GetWorkError,
154
- type HashInput,
155
- type LogFilter,
156
- type LogType,
157
- type NetVersionError,
158
- type ProofType,
159
- ProviderConfirmationsPendingError,
160
- type ProviderError,
161
- ProviderNotFoundError,
162
- ProviderReceiptPendingError,
163
- ProviderResponseError,
164
- ProviderService,
165
- type ProviderShape,
166
- ProviderStreamError,
167
- ProviderTimeoutError,
168
- ProviderValidationError,
169
- type ReceiptType,
170
- type RpcTransactionRequest,
171
- type SendRawTransactionError,
172
- type SendTransactionError,
173
- type SignError,
174
- type SignTransactionError,
175
- type SimulateV1Error,
176
- type SimulateV2Error,
177
- type StorageProofType,
178
- type SubmitHashrateError,
179
- type SubmitWorkError,
180
- type SubscribeError,
181
- type TransactionIndexInput,
182
- type TransactionType,
183
- type UncleBlockType,
184
- type UninstallFilterError,
185
- type UnsubscribeError,
186
- type WaitForTransactionReceiptError,
187
- type WatchBlocksError,
188
- } from "./ProviderService.js";
189
- export { Simulation } from "./Simulation.js";
190
- export {
191
- type SimulateV1BlockResult,
192
- type SimulateV1CallResult,
193
- type SimulateV1Payload,
194
- type SimulateV1Result,
195
- type SimulateV2Payload,
196
- type SimulateV2Result,
197
- SimulationService,
198
- type SimulationShape,
199
- } from "./SimulationService.js";
200
- export { Streaming } from "./Streaming.js";
201
- export { StreamingService, type StreamingShape } from "./StreamingService.js";
43
+ } from "./actions/index.js";
44
+
45
+ // Simulate calls
202
46
  export {
203
47
  type AssetChange,
204
48
  type SimulateCallsError,
@@ -206,8 +50,15 @@ export {
206
50
  type SimulationResult,
207
51
  simulateCalls,
208
52
  } from "./simulateCalls.js";
209
- export { Transaction } from "./Transaction.js";
53
+
54
+ // Utils
210
55
  export {
211
- TransactionService,
212
- type TransactionShape,
213
- } from "./TransactionService.js";
56
+ bytesToHex,
57
+ formatAccessList,
58
+ formatCallRequest,
59
+ formatLogFilterParams,
60
+ formatTransactionRequest,
61
+ parseHexToBigInt,
62
+ toAddressHex,
63
+ toHashHex,
64
+ } from "./utils.js";