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,33 +0,0 @@
1
- /**
2
- * @fileoverview Live implementation of AccountService using ProviderService.
3
- *
4
- * @module Account
5
- * @since 0.3.0
6
- */
7
-
8
- import * as Effect from "effect/Effect";
9
- import * as Layer from "effect/Layer";
10
- import { AccountService } from "./AccountService.js";
11
- import { ProviderService } from "./ProviderService.js";
12
-
13
- /**
14
- * Live implementation of the Account layer.
15
- *
16
- * @since 0.3.0
17
- */
18
- export const Account: Layer.Layer<AccountService, never, ProviderService> =
19
- Layer.effect(
20
- AccountService,
21
- Effect.gen(function* () {
22
- const provider = yield* ProviderService;
23
- return {
24
- getBalance: provider.getBalance,
25
- getTransactionCount: provider.getTransactionCount,
26
- getCode: provider.getCode,
27
- getStorageAt: provider.getStorageAt,
28
- getProof: provider.getProof,
29
- sign: provider.sign,
30
- signTransaction: provider.signTransaction,
31
- };
32
- }),
33
- );
@@ -1,84 +0,0 @@
1
- /**
2
- * @fileoverview Account service definition for account-related JSON-RPC calls.
3
- *
4
- * @module AccountService
5
- * @since 0.3.0
6
- *
7
- * @description
8
- * The AccountService provides account state queries and optional RPC signing
9
- * operations (eth_sign, eth_signTransaction) when supported by the node.
10
- *
11
- * @see {@link ProviderService} - Combined convenience service
12
- */
13
-
14
- import type { HexType } from "@tevm/voltaire/Hex";
15
- import * as Context from "effect/Context";
16
- import type * as Effect from "effect/Effect";
17
- import type {
18
- AddressInput,
19
- BlockTag,
20
- GetBalanceError,
21
- GetCodeError,
22
- GetProofError,
23
- GetStorageAtError,
24
- GetTransactionCountError,
25
- HashInput,
26
- ProofType,
27
- RpcTransactionRequest,
28
- SignError,
29
- SignTransactionError,
30
- } from "./ProviderService.js";
31
-
32
- /**
33
- * Shape of the Account service.
34
- *
35
- * @since 0.3.0
36
- */
37
- export type AccountShape = {
38
- /** Gets the balance of an address */
39
- readonly getBalance: (
40
- address: AddressInput,
41
- blockTag?: BlockTag,
42
- ) => Effect.Effect<bigint, GetBalanceError>;
43
- /** Gets the transaction count (nonce) for an address */
44
- readonly getTransactionCount: (
45
- address: AddressInput,
46
- blockTag?: BlockTag,
47
- ) => Effect.Effect<bigint, GetTransactionCountError>;
48
- /** Gets the bytecode at an address */
49
- readonly getCode: (
50
- address: AddressInput,
51
- blockTag?: BlockTag,
52
- ) => Effect.Effect<HexType | `0x${string}`, GetCodeError>;
53
- /** Gets storage at a specific slot */
54
- readonly getStorageAt: (
55
- address: AddressInput,
56
- slot: HashInput,
57
- blockTag?: BlockTag,
58
- ) => Effect.Effect<HexType | `0x${string}`, GetStorageAtError>;
59
- /** Gets Merkle-Patricia proof for an account and storage slots */
60
- readonly getProof: (
61
- address: AddressInput,
62
- storageKeys: (HashInput | `0x${string}`)[],
63
- blockTag?: BlockTag,
64
- ) => Effect.Effect<ProofType, GetProofError>;
65
- /** Signs arbitrary data with an unlocked account (if supported) */
66
- readonly sign?: (
67
- address: AddressInput,
68
- message: HexType | `0x${string}`,
69
- ) => Effect.Effect<`0x${string}`, SignError>;
70
- /** Signs a transaction with an unlocked account (if supported) */
71
- readonly signTransaction?: (
72
- tx: RpcTransactionRequest,
73
- ) => Effect.Effect<unknown, SignTransactionError>;
74
- };
75
-
76
- /**
77
- * Account service for account-related JSON-RPC operations.
78
- *
79
- * @since 0.3.0
80
- */
81
- export class AccountService extends Context.Tag("AccountService")<
82
- AccountService,
83
- AccountShape
84
- >() {}
@@ -1,32 +0,0 @@
1
- /**
2
- * @fileoverview Live implementation of BlocksService using ProviderService.
3
- *
4
- * @module Blocks
5
- * @since 0.3.0
6
- */
7
-
8
- import * as Effect from "effect/Effect";
9
- import * as Layer from "effect/Layer";
10
- import { BlocksService } from "./BlocksService.js";
11
- import { ProviderService } from "./ProviderService.js";
12
-
13
- /**
14
- * Live implementation of the Blocks layer.
15
- *
16
- * @since 0.3.0
17
- */
18
- export const Blocks: Layer.Layer<BlocksService, never, ProviderService> =
19
- Layer.effect(
20
- BlocksService,
21
- Effect.gen(function* () {
22
- const provider = yield* ProviderService;
23
- return {
24
- getBlockNumber: provider.getBlockNumber,
25
- getBlock: provider.getBlock,
26
- getBlockTransactionCount: provider.getBlockTransactionCount,
27
- getBlockReceipts: provider.getBlockReceipts,
28
- getUncle: provider.getUncle,
29
- getUncleCount: provider.getUncleCount,
30
- };
31
- }),
32
- );
@@ -1,73 +0,0 @@
1
- /**
2
- * @fileoverview Blocks service definition for block-related JSON-RPC calls.
3
- *
4
- * @module BlocksService
5
- * @since 0.3.0
6
- *
7
- * @description
8
- * The BlocksService provides block and uncle lookup operations split out of
9
- * ProviderService. This includes block numbers, block bodies, transaction counts,
10
- * and uncle retrieval/counts.
11
- *
12
- * @see {@link ProviderService} - Combined convenience service
13
- */
14
-
15
- import * as Context from "effect/Context";
16
- import type * as Effect from "effect/Effect";
17
- import type {
18
- BlockType,
19
- GetBlockArgs,
20
- GetBlockError,
21
- GetBlockNumberError,
22
- GetBlockReceiptsArgs,
23
- GetBlockReceiptsError,
24
- GetBlockTransactionCountArgs,
25
- GetBlockTransactionCountError,
26
- GetUncleArgs,
27
- GetUncleCountArgs,
28
- GetUncleCountError,
29
- GetUncleError,
30
- ReceiptType,
31
- UncleBlockType,
32
- } from "./ProviderService.js";
33
-
34
- /**
35
- * Shape of the Blocks service.
36
- *
37
- * @since 0.3.0
38
- */
39
- export type BlocksShape = {
40
- /** Gets the current block number */
41
- readonly getBlockNumber: () => Effect.Effect<bigint, GetBlockNumberError>;
42
- /** Gets a block by tag, hash, or number */
43
- readonly getBlock: (
44
- args?: GetBlockArgs,
45
- ) => Effect.Effect<BlockType, GetBlockError>;
46
- /** Gets the transaction count in a block */
47
- readonly getBlockTransactionCount: (
48
- args: GetBlockTransactionCountArgs,
49
- ) => Effect.Effect<bigint, GetBlockTransactionCountError>;
50
- /** Gets all receipts for a block (if supported by the node) */
51
- readonly getBlockReceipts?: (
52
- args?: GetBlockReceiptsArgs,
53
- ) => Effect.Effect<ReceiptType[], GetBlockReceiptsError>;
54
- /** Gets an uncle block by block identifier and index */
55
- readonly getUncle: (
56
- args: GetUncleArgs,
57
- uncleIndex: `0x${string}`,
58
- ) => Effect.Effect<UncleBlockType, GetUncleError>;
59
- /** Gets the number of uncles in a block (if supported by the node) */
60
- readonly getUncleCount?: (
61
- args: GetUncleCountArgs,
62
- ) => Effect.Effect<bigint, GetUncleCountError>;
63
- };
64
-
65
- /**
66
- * Blocks service for block-related JSON-RPC operations.
67
- *
68
- * @since 0.3.0
69
- */
70
- export class BlocksService extends Context.Tag("BlocksService")<
71
- BlocksService,
72
- BlocksShape
73
- >() {}
@@ -1,33 +0,0 @@
1
- /**
2
- * @fileoverview Live implementation of EventsService using ProviderService.
3
- *
4
- * @module Events
5
- * @since 0.3.0
6
- */
7
-
8
- import * as Effect from "effect/Effect";
9
- import * as Layer from "effect/Layer";
10
- import { EventsService } from "./EventsService.js";
11
- import { ProviderService } from "./ProviderService.js";
12
-
13
- /**
14
- * Live implementation of the Events layer.
15
- *
16
- * @since 0.3.0
17
- */
18
- export const Events: Layer.Layer<EventsService, never, ProviderService> =
19
- Layer.effect(
20
- EventsService,
21
- Effect.gen(function* () {
22
- const provider = yield* ProviderService;
23
- return {
24
- getLogs: provider.getLogs,
25
- createEventFilter: provider.createEventFilter,
26
- createBlockFilter: provider.createBlockFilter,
27
- createPendingTransactionFilter: provider.createPendingTransactionFilter,
28
- getFilterChanges: provider.getFilterChanges,
29
- getFilterLogs: provider.getFilterLogs,
30
- uninstallFilter: provider.uninstallFilter,
31
- };
32
- }),
33
- );
@@ -1,71 +0,0 @@
1
- /**
2
- * @fileoverview Events service definition for log/filter JSON-RPC calls.
3
- *
4
- * @module EventsService
5
- * @since 0.3.0
6
- */
7
-
8
- import * as Context from "effect/Context";
9
- import type * as Effect from "effect/Effect";
10
- import type {
11
- CreateBlockFilterError,
12
- CreateEventFilterError,
13
- CreatePendingTransactionFilterError,
14
- EventFilter,
15
- FilterChanges,
16
- FilterId,
17
- GetFilterChangesError,
18
- GetFilterLogsError,
19
- GetLogsError,
20
- LogFilter,
21
- LogType,
22
- UninstallFilterError,
23
- } from "./ProviderService.js";
24
-
25
- /**
26
- * Shape of the Events service.
27
- *
28
- * @since 0.3.0
29
- */
30
- export type EventsShape = {
31
- /** Gets logs matching the filter */
32
- readonly getLogs: (
33
- filter: LogFilter,
34
- ) => Effect.Effect<LogType[], GetLogsError>;
35
- /** Creates an event filter (eth_newFilter) */
36
- readonly createEventFilter: (
37
- filter?: EventFilter,
38
- ) => Effect.Effect<FilterId, CreateEventFilterError>;
39
- /** Creates a new block filter (eth_newBlockFilter) */
40
- readonly createBlockFilter: () => Effect.Effect<
41
- FilterId,
42
- CreateBlockFilterError
43
- >;
44
- /** Creates a pending transaction filter (eth_newPendingTransactionFilter) */
45
- readonly createPendingTransactionFilter: () => Effect.Effect<
46
- FilterId,
47
- CreatePendingTransactionFilterError
48
- >;
49
- /** Gets changes since last poll for a filter (eth_getFilterChanges) */
50
- readonly getFilterChanges: (
51
- filterId: FilterId,
52
- ) => Effect.Effect<FilterChanges, GetFilterChangesError>;
53
- /** Gets all logs for a filter (eth_getFilterLogs) */
54
- readonly getFilterLogs: (
55
- filterId: FilterId,
56
- ) => Effect.Effect<LogType[], GetFilterLogsError>;
57
- /** Uninstalls a filter (eth_uninstallFilter) */
58
- readonly uninstallFilter: (
59
- filterId: FilterId,
60
- ) => Effect.Effect<boolean, UninstallFilterError>;
61
- };
62
-
63
- /**
64
- * Events service for log and filter JSON-RPC operations.
65
- *
66
- * @since 0.3.0
67
- */
68
- export class EventsService extends Context.Tag("EventsService")<
69
- EventsService,
70
- EventsShape
71
- >() {}
@@ -1,41 +0,0 @@
1
- /**
2
- * @fileoverview Live implementation of NetworkService using ProviderService.
3
- *
4
- * @module Network
5
- * @since 0.3.0
6
- */
7
-
8
- import * as Effect from "effect/Effect";
9
- import * as Layer from "effect/Layer";
10
- import { NetworkService } from "./NetworkService.js";
11
- import { ProviderService } from "./ProviderService.js";
12
-
13
- /**
14
- * Live implementation of the Network layer.
15
- *
16
- * @since 0.3.0
17
- */
18
- export const Network: Layer.Layer<NetworkService, never, ProviderService> =
19
- Layer.effect(
20
- NetworkService,
21
- Effect.gen(function* () {
22
- const provider = yield* ProviderService;
23
- return {
24
- getChainId: provider.getChainId,
25
- getGasPrice: provider.getGasPrice,
26
- getMaxPriorityFeePerGas: provider.getMaxPriorityFeePerGas,
27
- getFeeHistory: provider.getFeeHistory,
28
- getBlobBaseFee: provider.getBlobBaseFee,
29
- getSyncing: provider.getSyncing,
30
- getAccounts: provider.getAccounts,
31
- getCoinbase: provider.getCoinbase,
32
- netVersion: provider.netVersion,
33
- getProtocolVersion: provider.getProtocolVersion,
34
- getMining: provider.getMining,
35
- getHashrate: provider.getHashrate,
36
- getWork: provider.getWork,
37
- submitWork: provider.submitWork,
38
- submitHashrate: provider.submitHashrate,
39
- };
40
- }),
41
- );
@@ -1,114 +0,0 @@
1
- /**
2
- * @fileoverview Network service definition for network/meta JSON-RPC calls.
3
- *
4
- * @module NetworkService
5
- * @since 0.3.0
6
- */
7
-
8
- import * as Context from "effect/Context";
9
- import type * as Effect from "effect/Effect";
10
- import type {
11
- BlockTag,
12
- FeeHistoryType,
13
- GetAccountsError,
14
- GetBlobBaseFeeError,
15
- GetChainIdError,
16
- GetCoinbaseError,
17
- GetFeeHistoryError,
18
- GetGasPriceError,
19
- GetHashrateError,
20
- GetMaxPriorityFeePerGasError,
21
- GetMiningError,
22
- GetProtocolVersionError,
23
- GetSyncingError,
24
- GetWorkError,
25
- NetVersionError,
26
- SubmitHashrateError,
27
- SubmitWorkError,
28
- } from "./ProviderService.js";
29
-
30
- /**
31
- * Syncing status as returned by eth_syncing.
32
- *
33
- * @since 0.3.0
34
- */
35
- export type SyncingStatus =
36
- | false
37
- | {
38
- startingBlock: string;
39
- currentBlock: string;
40
- highestBlock: string;
41
- [key: string]: string;
42
- };
43
-
44
- /**
45
- * Result tuple for eth_getWork.
46
- *
47
- * @since 0.3.0
48
- */
49
- export type WorkResult = [`0x${string}`, `0x${string}`, `0x${string}`];
50
-
51
- /**
52
- * Shape of the Network service.
53
- *
54
- * @since 0.3.0
55
- */
56
- export type NetworkShape = {
57
- /** Gets the chain ID */
58
- readonly getChainId: () => Effect.Effect<number, GetChainIdError>;
59
- /** Gets the current gas price */
60
- readonly getGasPrice: () => Effect.Effect<bigint, GetGasPriceError>;
61
- /** Gets the max priority fee per gas (EIP-1559) */
62
- readonly getMaxPriorityFeePerGas: () => Effect.Effect<
63
- bigint,
64
- GetMaxPriorityFeePerGasError
65
- >;
66
- /** Gets fee history for gas estimation */
67
- readonly getFeeHistory: (
68
- blockCount: number,
69
- newestBlock: BlockTag,
70
- rewardPercentiles: number[],
71
- ) => Effect.Effect<FeeHistoryType, GetFeeHistoryError>;
72
- /** Gets the blob base fee (EIP-4844) */
73
- readonly getBlobBaseFee: () => Effect.Effect<bigint, GetBlobBaseFeeError>;
74
- /** Gets syncing status (if supported) */
75
- readonly getSyncing?: () => Effect.Effect<SyncingStatus, GetSyncingError>;
76
- /** Gets available accounts (if supported) */
77
- readonly getAccounts?: () => Effect.Effect<`0x${string}`[], GetAccountsError>;
78
- /** Gets coinbase address (if supported) */
79
- readonly getCoinbase?: () => Effect.Effect<`0x${string}`, GetCoinbaseError>;
80
- /** Gets network version (net_version) */
81
- readonly netVersion?: () => Effect.Effect<string, NetVersionError>;
82
- /** Gets protocol version (eth_protocolVersion) */
83
- readonly getProtocolVersion?: () => Effect.Effect<
84
- string,
85
- GetProtocolVersionError
86
- >;
87
- /** Returns whether the client is mining (eth_mining) */
88
- readonly getMining?: () => Effect.Effect<boolean, GetMiningError>;
89
- /** Gets the current hashrate (eth_hashrate) */
90
- readonly getHashrate?: () => Effect.Effect<bigint, GetHashrateError>;
91
- /** Gets work package for mining (eth_getWork) */
92
- readonly getWork?: () => Effect.Effect<WorkResult, GetWorkError>;
93
- /** Submits a mining solution (eth_submitWork) */
94
- readonly submitWork?: (
95
- nonce: `0x${string}`,
96
- powHash: `0x${string}`,
97
- mixDigest: `0x${string}`,
98
- ) => Effect.Effect<boolean, SubmitWorkError>;
99
- /** Submits mining hashrate (eth_submitHashrate) */
100
- readonly submitHashrate?: (
101
- hashrate: `0x${string}`,
102
- id: `0x${string}`,
103
- ) => Effect.Effect<boolean, SubmitHashrateError>;
104
- };
105
-
106
- /**
107
- * Network service for network/meta JSON-RPC operations.
108
- *
109
- * @since 0.3.0
110
- */
111
- export class NetworkService extends Context.Tag("NetworkService")<
112
- NetworkService,
113
- NetworkShape
114
- >() {}
@@ -1,34 +0,0 @@
1
- /**
2
- * @fileoverview Live implementation of SimulationService using ProviderService.
3
- *
4
- * @module Simulation
5
- * @since 0.3.0
6
- */
7
-
8
- import * as Effect from "effect/Effect";
9
- import * as Layer from "effect/Layer";
10
- import { ProviderService } from "./ProviderService.js";
11
- import { SimulationService } from "./SimulationService.js";
12
-
13
- /**
14
- * Live implementation of the Simulation layer.
15
- *
16
- * @since 0.3.0
17
- */
18
- export const Simulation: Layer.Layer<
19
- SimulationService,
20
- never,
21
- ProviderService
22
- > = Layer.effect(
23
- SimulationService,
24
- Effect.gen(function* () {
25
- const provider = yield* ProviderService;
26
- return {
27
- call: provider.call,
28
- estimateGas: provider.estimateGas,
29
- createAccessList: provider.createAccessList,
30
- simulateV1: provider.simulateV1,
31
- simulateV2: provider.simulateV2,
32
- };
33
- }),
34
- );
@@ -1,161 +0,0 @@
1
- /**
2
- * @fileoverview Simulation service definition for call and simulation JSON-RPC methods.
3
- *
4
- * @module SimulationService
5
- * @since 0.3.0
6
- */
7
-
8
- import type { HexType } from "@tevm/voltaire/Hex";
9
- import * as Context from "effect/Context";
10
- import type * as Effect from "effect/Effect";
11
- import type {
12
- AccessListType,
13
- BlockOverrides,
14
- BlockTag,
15
- CallError,
16
- CallRequest,
17
- CreateAccessListError,
18
- EstimateGasError,
19
- LogType,
20
- SimulateV1Error,
21
- SimulateV2Error,
22
- StateOverride,
23
- } from "./ProviderService.js";
24
-
25
- /**
26
- * Single block simulation input for eth_simulateV1.
27
- *
28
- * @since 0.3.0
29
- */
30
- export interface SimulateV1BlockCall {
31
- /** Optional block overrides applied during the simulation */
32
- readonly blockOverrides?: BlockOverrides;
33
- /** Optional state overrides applied during the simulation */
34
- readonly stateOverrides?: StateOverride;
35
- /** Calls to execute within the block */
36
- readonly calls: readonly CallRequest[];
37
- }
38
-
39
- /**
40
- * Payload for eth_simulateV1.
41
- *
42
- * @since 0.3.0
43
- */
44
- export interface SimulateV1Payload {
45
- /** Sequence of block simulations to execute */
46
- readonly blockStateCalls: readonly SimulateV1BlockCall[];
47
- /** Enable transfer tracing (if supported by node) */
48
- readonly traceTransfers?: boolean;
49
- /** Enable validation mode (if supported by node) */
50
- readonly validation?: boolean;
51
- /** Return full transaction objects (if supported) */
52
- readonly returnFullTransactions?: boolean;
53
- }
54
-
55
- /**
56
- * Call result from eth_simulateV1.
57
- *
58
- * @since 0.3.0
59
- */
60
- export interface SimulateV1CallResult {
61
- /** Call execution status (0x1 success, 0x0 revert) */
62
- readonly status: `0x${string}`;
63
- /** Return data (hex) */
64
- readonly returnData: `0x${string}`;
65
- /** Gas used (hex) */
66
- readonly gasUsed: `0x${string}`;
67
- /** Logs emitted by the call */
68
- readonly logs?: LogType[];
69
- /** Optional error information */
70
- readonly error?: { code?: number; message?: string };
71
- }
72
-
73
- /**
74
- * Simulated block result from eth_simulateV1.
75
- *
76
- * @since 0.3.0
77
- */
78
- export interface SimulateV1BlockResult {
79
- /** Base fee per gas (hex) */
80
- readonly baseFeePerGas?: `0x${string}`;
81
- /** Blob gas used (hex) */
82
- readonly blobGasUsed?: `0x${string}`;
83
- /** Calls executed in the block */
84
- readonly calls: SimulateV1CallResult[];
85
- /** Gas limit (hex) */
86
- readonly gasLimit?: `0x${string}`;
87
- /** Gas used (hex) */
88
- readonly gasUsed?: `0x${string}`;
89
- /** Simulated block hash */
90
- readonly hash?: `0x${string}`;
91
- /** Simulated block number (hex) */
92
- readonly number?: `0x${string}`;
93
- /** Simulated block timestamp (hex) */
94
- readonly timestamp?: `0x${string}`;
95
- }
96
-
97
- /**
98
- * Result type for eth_simulateV1.
99
- *
100
- * @since 0.3.0
101
- */
102
- export type SimulateV1Result = SimulateV1BlockResult[];
103
-
104
- /**
105
- * Payload for eth_simulateV2 (draft / evolving).
106
- *
107
- * @since 0.3.0
108
- */
109
- export type SimulateV2Payload = Record<string, unknown>;
110
-
111
- /**
112
- * Result type for eth_simulateV2 (draft / evolving).
113
- *
114
- * @since 0.3.0
115
- */
116
- export type SimulateV2Result = unknown;
117
-
118
- /**
119
- * Shape of the Simulation service.
120
- *
121
- * @since 0.3.0
122
- */
123
- export type SimulationShape = {
124
- /** Executes a call without sending a transaction */
125
- readonly call: (
126
- tx: CallRequest,
127
- blockTag?: BlockTag,
128
- stateOverride?: StateOverride,
129
- blockOverrides?: BlockOverrides,
130
- ) => Effect.Effect<HexType | `0x${string}`, CallError>;
131
- /** Estimates gas for a transaction */
132
- readonly estimateGas: (
133
- tx: CallRequest,
134
- blockTag?: BlockTag,
135
- stateOverride?: StateOverride,
136
- ) => Effect.Effect<bigint, EstimateGasError>;
137
- /** Creates an access list for a transaction */
138
- readonly createAccessList: (
139
- tx: CallRequest,
140
- ) => Effect.Effect<AccessListType, CreateAccessListError>;
141
- /** Simulates multiple blocks and calls (if supported) */
142
- readonly simulateV1?: (
143
- payload: SimulateV1Payload,
144
- blockTag?: BlockTag,
145
- ) => Effect.Effect<SimulateV1Result, SimulateV1Error>;
146
- /** Simulates with the V2 API (draft / evolving, if supported) */
147
- readonly simulateV2?: <TResult = SimulateV2Result>(
148
- payload: SimulateV2Payload,
149
- blockTag?: BlockTag,
150
- ) => Effect.Effect<TResult, SimulateV2Error>;
151
- };
152
-
153
- /**
154
- * Simulation service for call/simulation JSON-RPC operations.
155
- *
156
- * @since 0.3.0
157
- */
158
- export class SimulationService extends Context.Tag("SimulationService")<
159
- SimulationService,
160
- SimulationShape
161
- >() {}