voltaire-effect 0.2.23

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 (1262) hide show
  1. package/README.md +42 -0
  2. package/dist/AccountService-BetXokad.d.ts +1717 -0
  3. package/dist/RpcResolver-BpvqybjD.d.ts +6439 -0
  4. package/dist/Secp256k1Service-OxQ6hJFp.d.ts +250 -0
  5. package/dist/X25519Test-DGsk1V9o.d.ts +5352 -0
  6. package/dist/crypto/index.d.ts +289 -0
  7. package/dist/crypto/index.js +1254 -0
  8. package/dist/index-IgkEHjBe.d.ts +20058 -0
  9. package/dist/index.d.ts +11961 -0
  10. package/dist/index.js +20715 -0
  11. package/dist/native/index.d.ts +193 -0
  12. package/dist/native/index.js +20931 -0
  13. package/dist/primitives/index.d.ts +273 -0
  14. package/dist/primitives/index.js +8688 -0
  15. package/dist/services/index.d.ts +42 -0
  16. package/dist/services/index.js +6176 -0
  17. package/package.json +108 -0
  18. package/src/auth/index.ts +20 -0
  19. package/src/auth/siwe.test.ts +156 -0
  20. package/src/auth/siwe.ts +319 -0
  21. package/src/block/BlockError.test.ts +120 -0
  22. package/src/block/BlockError.ts +52 -0
  23. package/src/block/block.test.ts +579 -0
  24. package/src/block/fetchBlock.ts +100 -0
  25. package/src/block/fetchBlockByHash.ts +97 -0
  26. package/src/block/fetchBlockReceipts.ts +129 -0
  27. package/src/block/index.ts +52 -0
  28. package/src/block/toLightBlock.ts +43 -0
  29. package/src/blockchain/Blockchain.test.ts +468 -0
  30. package/src/blockchain/Blockchain.ts +441 -0
  31. package/src/blockchain/BlockchainService.ts +203 -0
  32. package/src/blockchain/index.ts +46 -0
  33. package/src/contract/EventStream.test.ts +802 -0
  34. package/src/contract/EventStream.ts +138 -0
  35. package/src/contract/EventStreamError.test.ts +92 -0
  36. package/src/contract/EventStreamError.ts +33 -0
  37. package/src/contract/EventStreamService.ts +124 -0
  38. package/src/contract/index.ts +39 -0
  39. package/src/crypto/AesGcm/AesGcm.test.ts +185 -0
  40. package/src/crypto/AesGcm/AesGcmService.ts +86 -0
  41. package/src/crypto/AesGcm/errors.ts +38 -0
  42. package/src/crypto/AesGcm/index.ts +101 -0
  43. package/src/crypto/AesGcm/operations.ts +191 -0
  44. package/src/crypto/Bip39/Bip39.test.ts +183 -0
  45. package/src/crypto/Bip39/Bip39Service.ts +160 -0
  46. package/src/crypto/Bip39/index.ts +52 -0
  47. package/src/crypto/Bip39/operations.ts +168 -0
  48. package/src/crypto/Bip39/types.ts +16 -0
  49. package/src/crypto/Bip39/utils.ts +42 -0
  50. package/src/crypto/Blake2/Blake2.test.ts +317 -0
  51. package/src/crypto/Blake2/Blake2Service.ts +121 -0
  52. package/src/crypto/Blake2/hash.ts +59 -0
  53. package/src/crypto/Blake2/index.ts +30 -0
  54. package/src/crypto/Bls12381/Bls12381.test.ts +464 -0
  55. package/src/crypto/Bls12381/Bls12381Live.ts +43 -0
  56. package/src/crypto/Bls12381/Bls12381Service.ts +131 -0
  57. package/src/crypto/Bls12381/aggregate.ts +66 -0
  58. package/src/crypto/Bls12381/index.ts +43 -0
  59. package/src/crypto/Bls12381/sign.ts +65 -0
  60. package/src/crypto/Bls12381/verify.ts +71 -0
  61. package/src/crypto/Bn254/Bn254.test.ts +131 -0
  62. package/src/crypto/Bn254/Bn254Service.ts +369 -0
  63. package/src/crypto/Bn254/index.ts +56 -0
  64. package/src/crypto/Bn254/operations.ts +259 -0
  65. package/src/crypto/Bn254/types.ts +15 -0
  66. package/src/crypto/ChaCha20Poly1305/ChaCha20Poly1305.test.ts +199 -0
  67. package/src/crypto/ChaCha20Poly1305/ChaCha20Poly1305Service.ts +177 -0
  68. package/src/crypto/ChaCha20Poly1305/errors.ts +38 -0
  69. package/src/crypto/ChaCha20Poly1305/index.ts +46 -0
  70. package/src/crypto/ChaCha20Poly1305/operations.ts +161 -0
  71. package/src/crypto/CryptoLive.test.ts +42 -0
  72. package/src/crypto/CryptoLive.ts +52 -0
  73. package/src/crypto/CryptoTest.ts +49 -0
  74. package/src/crypto/EIP712/EIP712.test.ts +197 -0
  75. package/src/crypto/EIP712/EIP712Service.ts +184 -0
  76. package/src/crypto/EIP712/index.ts +50 -0
  77. package/src/crypto/EIP712/operations.ts +220 -0
  78. package/src/crypto/ERC6492/ERC6492.test.ts +115 -0
  79. package/src/crypto/ERC6492/index.ts +9 -0
  80. package/src/crypto/ERC6492/unwrapSignature.ts +72 -0
  81. package/src/crypto/ERC6492/verifySignature.ts +139 -0
  82. package/src/crypto/ERC6492/wrapSignature.ts +55 -0
  83. package/src/crypto/Ed25519/Ed25519.test.ts +472 -0
  84. package/src/crypto/Ed25519/Ed25519Live.ts +44 -0
  85. package/src/crypto/Ed25519/Ed25519Service.ts +134 -0
  86. package/src/crypto/Ed25519/Ed25519Test.ts +59 -0
  87. package/src/crypto/Ed25519/getPublicKey.ts +60 -0
  88. package/src/crypto/Ed25519/index.ts +42 -0
  89. package/src/crypto/Ed25519/sign.ts +66 -0
  90. package/src/crypto/Ed25519/verify.ts +75 -0
  91. package/src/crypto/HDWallet/HDWallet.cleanup.test.ts +128 -0
  92. package/src/crypto/HDWallet/HDWallet.test.ts +383 -0
  93. package/src/crypto/HDWallet/HDWalletLive.ts +201 -0
  94. package/src/crypto/HDWallet/HDWalletService.ts +186 -0
  95. package/src/crypto/HDWallet/derive.ts +348 -0
  96. package/src/crypto/HDWallet/errors.ts +121 -0
  97. package/src/crypto/HDWallet/index.ts +65 -0
  98. package/src/crypto/HMAC/HMAC.test.ts +380 -0
  99. package/src/crypto/HMAC/HMACService.ts +174 -0
  100. package/src/crypto/HMAC/index.ts +39 -0
  101. package/src/crypto/HMAC/operations.ts +112 -0
  102. package/src/crypto/Hash/index.ts +51 -0
  103. package/src/crypto/KZG/KZG.test.ts +94 -0
  104. package/src/crypto/KZG/KZGService.ts +241 -0
  105. package/src/crypto/KZG/commit.ts +76 -0
  106. package/src/crypto/KZG/index.ts +42 -0
  107. package/src/crypto/KZG/verify.ts +52 -0
  108. package/src/crypto/Keccak256/Keccak256.test.ts +265 -0
  109. package/src/crypto/Keccak256/KeccakService.ts +177 -0
  110. package/src/crypto/Keccak256/hash.ts +76 -0
  111. package/src/crypto/Keccak256/index.ts +49 -0
  112. package/src/crypto/Keystore/Keystore.cleanup.test.ts +93 -0
  113. package/src/crypto/Keystore/Keystore.test.ts +511 -0
  114. package/src/crypto/Keystore/KeystoreLive.ts +35 -0
  115. package/src/crypto/Keystore/KeystoreService.ts +115 -0
  116. package/src/crypto/Keystore/KeystoreTest.ts +65 -0
  117. package/src/crypto/Keystore/decrypt.ts +105 -0
  118. package/src/crypto/Keystore/encrypt.ts +71 -0
  119. package/src/crypto/Keystore/index.ts +41 -0
  120. package/src/crypto/ModExp/ModExp.test.ts +177 -0
  121. package/src/crypto/ModExp/ModExpService.ts +139 -0
  122. package/src/crypto/ModExp/index.ts +39 -0
  123. package/src/crypto/ModExp/operations.ts +122 -0
  124. package/src/crypto/P256/P256.test.ts +414 -0
  125. package/src/crypto/P256/P256Live.ts +41 -0
  126. package/src/crypto/P256/P256Service.ts +115 -0
  127. package/src/crypto/P256/index.ts +37 -0
  128. package/src/crypto/P256/sign.ts +66 -0
  129. package/src/crypto/P256/verify.ts +75 -0
  130. package/src/crypto/Ripemd160/Ripemd160.test.ts +61 -0
  131. package/src/crypto/Ripemd160/Ripemd160Service.ts +119 -0
  132. package/src/crypto/Ripemd160/hash.ts +58 -0
  133. package/src/crypto/Ripemd160/index.ts +35 -0
  134. package/src/crypto/SHA256/SHA256.test.ts +284 -0
  135. package/src/crypto/SHA256/SHA256Service.ts +179 -0
  136. package/src/crypto/SHA256/hash.ts +93 -0
  137. package/src/crypto/SHA256/index.ts +48 -0
  138. package/src/crypto/Secp256k1/Secp256k1.test.ts +469 -0
  139. package/src/crypto/Secp256k1/Secp256k1Live.ts +83 -0
  140. package/src/crypto/Secp256k1/Secp256k1Service.ts +194 -0
  141. package/src/crypto/Secp256k1/Secp256k1Test.ts +101 -0
  142. package/src/crypto/Secp256k1/errors.ts +224 -0
  143. package/src/crypto/Secp256k1/index.ts +65 -0
  144. package/src/crypto/Secp256k1/recover.ts +106 -0
  145. package/src/crypto/Secp256k1/sign.ts +96 -0
  146. package/src/crypto/Secp256k1/verify.ts +111 -0
  147. package/src/crypto/Signature/Signature.test.ts +323 -0
  148. package/src/crypto/Signature/constantTimeEqual.ts +54 -0
  149. package/src/crypto/Signature/errors.ts +93 -0
  150. package/src/crypto/Signature/hashMessage.ts +83 -0
  151. package/src/crypto/Signature/index.ts +69 -0
  152. package/src/crypto/Signature/recoverAddress.ts +163 -0
  153. package/src/crypto/Signature/recoverMessageAddress.ts +70 -0
  154. package/src/crypto/Signature/verifyHash.ts +72 -0
  155. package/src/crypto/Signature/verifyMessage.ts +71 -0
  156. package/src/crypto/Signature/verifyTypedData.ts +88 -0
  157. package/src/crypto/Signers/Signers.test.ts +149 -0
  158. package/src/crypto/Signers/SignersLive.ts +40 -0
  159. package/src/crypto/Signers/SignersService.ts +73 -0
  160. package/src/crypto/Signers/SignersTest.ts +49 -0
  161. package/src/crypto/Signers/index.ts +44 -0
  162. package/src/crypto/Signers/operations.ts +123 -0
  163. package/src/crypto/Verify/errors.ts +97 -0
  164. package/src/crypto/Verify/hashMessage.ts +68 -0
  165. package/src/crypto/Verify/recoverAddress.ts +163 -0
  166. package/src/crypto/X25519/X25519.test.ts +168 -0
  167. package/src/crypto/X25519/X25519Live.ts +37 -0
  168. package/src/crypto/X25519/X25519Service.ts +81 -0
  169. package/src/crypto/X25519/X25519Test.ts +38 -0
  170. package/src/crypto/X25519/computeSecret.ts +61 -0
  171. package/src/crypto/X25519/generateKeyPair.ts +37 -0
  172. package/src/crypto/X25519/getPublicKey.ts +40 -0
  173. package/src/crypto/X25519/index.ts +41 -0
  174. package/src/crypto/index.ts +239 -0
  175. package/src/crypto/utils/constantTimeEqual.test.ts +40 -0
  176. package/src/crypto/utils/constantTimeEqual.ts +36 -0
  177. package/src/crypto/utils/index.ts +7 -0
  178. package/src/index.ts +224 -0
  179. package/src/jsonrpc/Anvil.ts +87 -0
  180. package/src/jsonrpc/BatchRequest.ts +23 -0
  181. package/src/jsonrpc/BatchResponse.ts +55 -0
  182. package/src/jsonrpc/Error.ts +107 -0
  183. package/src/jsonrpc/Eth.ts +224 -0
  184. package/src/jsonrpc/Hardhat.ts +69 -0
  185. package/src/jsonrpc/IdCounter.ts +7 -0
  186. package/src/jsonrpc/JsonRpc.test.ts +751 -0
  187. package/src/jsonrpc/Net.ts +24 -0
  188. package/src/jsonrpc/Request.ts +44 -0
  189. package/src/jsonrpc/Response.ts +98 -0
  190. package/src/jsonrpc/Txpool.ts +24 -0
  191. package/src/jsonrpc/Wallet.ts +52 -0
  192. package/src/jsonrpc/Web3.ts +22 -0
  193. package/src/jsonrpc/errors.test.ts +355 -0
  194. package/src/jsonrpc/errors.ts +680 -0
  195. package/src/jsonrpc/index.ts +112 -0
  196. package/src/jsonrpc/schemas/anvil/dropTransaction.ts +53 -0
  197. package/src/jsonrpc/schemas/anvil/impersonateAccount.ts +53 -0
  198. package/src/jsonrpc/schemas/anvil/index.ts +73 -0
  199. package/src/jsonrpc/schemas/anvil/mine.ts +52 -0
  200. package/src/jsonrpc/schemas/anvil/reset.ts +57 -0
  201. package/src/jsonrpc/schemas/anvil/revert.ts +49 -0
  202. package/src/jsonrpc/schemas/anvil/setAutomine.ts +45 -0
  203. package/src/jsonrpc/schemas/anvil/setBalance.ts +50 -0
  204. package/src/jsonrpc/schemas/anvil/setBlockTimestampInterval.ts +49 -0
  205. package/src/jsonrpc/schemas/anvil/setCode.ts +50 -0
  206. package/src/jsonrpc/schemas/anvil/setNextBlockTimestamp.ts +53 -0
  207. package/src/jsonrpc/schemas/anvil/setNonce.ts +50 -0
  208. package/src/jsonrpc/schemas/anvil/setStorageAt.ts +56 -0
  209. package/src/jsonrpc/schemas/anvil/snapshot.ts +49 -0
  210. package/src/jsonrpc/schemas/anvil/stopImpersonatingAccount.ts +53 -0
  211. package/src/jsonrpc/schemas/common.ts +450 -0
  212. package/src/jsonrpc/schemas/eth/accounts.ts +49 -0
  213. package/src/jsonrpc/schemas/eth/blobBaseFee.ts +49 -0
  214. package/src/jsonrpc/schemas/eth/blockNumber.ts +49 -0
  215. package/src/jsonrpc/schemas/eth/call.ts +69 -0
  216. package/src/jsonrpc/schemas/eth/chainId.ts +49 -0
  217. package/src/jsonrpc/schemas/eth/coinbase.ts +49 -0
  218. package/src/jsonrpc/schemas/eth/createAccessList.ts +57 -0
  219. package/src/jsonrpc/schemas/eth/estimateGas.ts +59 -0
  220. package/src/jsonrpc/schemas/eth/feeHistory.ts +54 -0
  221. package/src/jsonrpc/schemas/eth/gasPrice.ts +49 -0
  222. package/src/jsonrpc/schemas/eth/getBalance.ts +51 -0
  223. package/src/jsonrpc/schemas/eth/getBlockByHash.ts +54 -0
  224. package/src/jsonrpc/schemas/eth/getBlockByNumber.ts +54 -0
  225. package/src/jsonrpc/schemas/eth/getBlockReceipts.ts +54 -0
  226. package/src/jsonrpc/schemas/eth/getBlockTransactionCountByHash.ts +54 -0
  227. package/src/jsonrpc/schemas/eth/getBlockTransactionCountByNumber.ts +55 -0
  228. package/src/jsonrpc/schemas/eth/getCode.ts +51 -0
  229. package/src/jsonrpc/schemas/eth/getFilterChanges.ts +58 -0
  230. package/src/jsonrpc/schemas/eth/getFilterLogs.ts +54 -0
  231. package/src/jsonrpc/schemas/eth/getLogs.ts +50 -0
  232. package/src/jsonrpc/schemas/eth/getProof.ts +56 -0
  233. package/src/jsonrpc/schemas/eth/getStorageAt.ts +57 -0
  234. package/src/jsonrpc/schemas/eth/getTransactionByBlockHashAndIndex.ts +59 -0
  235. package/src/jsonrpc/schemas/eth/getTransactionByBlockNumberAndIndex.ts +59 -0
  236. package/src/jsonrpc/schemas/eth/getTransactionByHash.ts +54 -0
  237. package/src/jsonrpc/schemas/eth/getTransactionCount.ts +58 -0
  238. package/src/jsonrpc/schemas/eth/getTransactionReceipt.ts +54 -0
  239. package/src/jsonrpc/schemas/eth/getUncleByBlockHashAndIndex.ts +58 -0
  240. package/src/jsonrpc/schemas/eth/getUncleByBlockNumberAndIndex.ts +58 -0
  241. package/src/jsonrpc/schemas/eth/getUncleCountByBlockHash.ts +54 -0
  242. package/src/jsonrpc/schemas/eth/getUncleCountByBlockNumber.ts +54 -0
  243. package/src/jsonrpc/schemas/eth/getWork.ts +53 -0
  244. package/src/jsonrpc/schemas/eth/hashrate.ts +49 -0
  245. package/src/jsonrpc/schemas/eth/index.ts +178 -0
  246. package/src/jsonrpc/schemas/eth/maxPriorityFeePerGas.ts +53 -0
  247. package/src/jsonrpc/schemas/eth/mining.ts +45 -0
  248. package/src/jsonrpc/schemas/eth/newBlockFilter.ts +53 -0
  249. package/src/jsonrpc/schemas/eth/newFilter.ts +50 -0
  250. package/src/jsonrpc/schemas/eth/newPendingTransactionFilter.ts +53 -0
  251. package/src/jsonrpc/schemas/eth/protocolVersion.ts +49 -0
  252. package/src/jsonrpc/schemas/eth/sendRawTransaction.ts +54 -0
  253. package/src/jsonrpc/schemas/eth/sendTransaction.ts +54 -0
  254. package/src/jsonrpc/schemas/eth/sign.ts +50 -0
  255. package/src/jsonrpc/schemas/eth/signTransaction.ts +54 -0
  256. package/src/jsonrpc/schemas/eth/submitHashrate.ts +57 -0
  257. package/src/jsonrpc/schemas/eth/submitWork.ts +54 -0
  258. package/src/jsonrpc/schemas/eth/subscribe.ts +86 -0
  259. package/src/jsonrpc/schemas/eth/syncing.ts +49 -0
  260. package/src/jsonrpc/schemas/eth/uninstallFilter.ts +53 -0
  261. package/src/jsonrpc/schemas/eth/unsubscribe.ts +49 -0
  262. package/src/jsonrpc/schemas/hardhat/dropTransaction.ts +53 -0
  263. package/src/jsonrpc/schemas/hardhat/impersonateAccount.ts +53 -0
  264. package/src/jsonrpc/schemas/hardhat/index.ts +60 -0
  265. package/src/jsonrpc/schemas/hardhat/mine.ts +52 -0
  266. package/src/jsonrpc/schemas/hardhat/reset.ts +53 -0
  267. package/src/jsonrpc/schemas/hardhat/setBalance.ts +50 -0
  268. package/src/jsonrpc/schemas/hardhat/setCode.ts +50 -0
  269. package/src/jsonrpc/schemas/hardhat/setNonce.ts +50 -0
  270. package/src/jsonrpc/schemas/hardhat/setStorageAt.ts +56 -0
  271. package/src/jsonrpc/schemas/hardhat/stopImpersonatingAccount.ts +53 -0
  272. package/src/jsonrpc/schemas/index.ts +271 -0
  273. package/src/jsonrpc/schemas/net/index.ts +40 -0
  274. package/src/jsonrpc/schemas/net/listening.ts +45 -0
  275. package/src/jsonrpc/schemas/net/peerCount.ts +49 -0
  276. package/src/jsonrpc/schemas/net/version.ts +45 -0
  277. package/src/jsonrpc/schemas/schemas.test.ts +563 -0
  278. package/src/jsonrpc/schemas/txpool/content.ts +70 -0
  279. package/src/jsonrpc/schemas/txpool/index.ts +40 -0
  280. package/src/jsonrpc/schemas/txpool/inspect.ts +67 -0
  281. package/src/jsonrpc/schemas/txpool/status.ts +52 -0
  282. package/src/jsonrpc/schemas/wallet/addEthereumChain.ts +81 -0
  283. package/src/jsonrpc/schemas/wallet/getCallsStatus.ts +87 -0
  284. package/src/jsonrpc/schemas/wallet/getCapabilities.ts +87 -0
  285. package/src/jsonrpc/schemas/wallet/getPermissions.ts +51 -0
  286. package/src/jsonrpc/schemas/wallet/index.ts +64 -0
  287. package/src/jsonrpc/schemas/wallet/registerOnboarding.ts +50 -0
  288. package/src/jsonrpc/schemas/wallet/requestPermissions.ts +88 -0
  289. package/src/jsonrpc/schemas/wallet/revokePermissions.ts +62 -0
  290. package/src/jsonrpc/schemas/wallet/sendCalls.ts +79 -0
  291. package/src/jsonrpc/schemas/wallet/showCallsStatus.ts +50 -0
  292. package/src/jsonrpc/schemas/wallet/switchEthereumChain.ts +66 -0
  293. package/src/jsonrpc/schemas/wallet/watchAsset.ts +75 -0
  294. package/src/jsonrpc/schemas/web3/clientVersion.ts +49 -0
  295. package/src/jsonrpc/schemas/web3/index.ts +34 -0
  296. package/src/jsonrpc/schemas/web3/sha3.ts +50 -0
  297. package/src/native/CryptoLiveNative.ts +8 -0
  298. package/src/native/index.ts +14 -0
  299. package/src/primitives/Abi/Abi.test.ts +967 -0
  300. package/src/primitives/Abi/AbiSchema.test.ts +382 -0
  301. package/src/primitives/Abi/AbiSchema.ts +489 -0
  302. package/src/primitives/Abi/Item/index.ts +17 -0
  303. package/src/primitives/Abi/constructor/index.ts +5 -0
  304. package/src/primitives/Abi/decodeError.test.ts +117 -0
  305. package/src/primitives/Abi/decodeError.ts +103 -0
  306. package/src/primitives/Abi/decodeEventLog.test.ts +128 -0
  307. package/src/primitives/Abi/decodeEventLog.ts +164 -0
  308. package/src/primitives/Abi/decodeFunction.test.ts +91 -0
  309. package/src/primitives/Abi/decodeFunction.ts +87 -0
  310. package/src/primitives/Abi/decodeFunctionData.test.ts +158 -0
  311. package/src/primitives/Abi/decodeFunctionData.ts +116 -0
  312. package/src/primitives/Abi/decodeFunctionResult.test.ts +197 -0
  313. package/src/primitives/Abi/decodeFunctionResult.ts +160 -0
  314. package/src/primitives/Abi/encodeError.test.ts +106 -0
  315. package/src/primitives/Abi/encodeError.ts +96 -0
  316. package/src/primitives/Abi/encodeEventLog.test.ts +91 -0
  317. package/src/primitives/Abi/encodeEventLog.ts +86 -0
  318. package/src/primitives/Abi/encodeFunction.test.ts +65 -0
  319. package/src/primitives/Abi/encodeFunction.ts +65 -0
  320. package/src/primitives/Abi/encodeFunctionData.test.ts +149 -0
  321. package/src/primitives/Abi/encodeFunctionData.ts +124 -0
  322. package/src/primitives/Abi/encodeFunctionResult.test.ts +114 -0
  323. package/src/primitives/Abi/encodeFunctionResult.ts +96 -0
  324. package/src/primitives/Abi/error/index.ts +11 -0
  325. package/src/primitives/Abi/error/standards/index.ts +23 -0
  326. package/src/primitives/Abi/error/wrapped/index.ts +7 -0
  327. package/src/primitives/Abi/event/index.ts +15 -0
  328. package/src/primitives/Abi/findError.test.ts +97 -0
  329. package/src/primitives/Abi/findError.ts +55 -0
  330. package/src/primitives/Abi/findEvent.test.ts +100 -0
  331. package/src/primitives/Abi/findEvent.ts +51 -0
  332. package/src/primitives/Abi/findFunction.test.ts +86 -0
  333. package/src/primitives/Abi/findFunction.ts +58 -0
  334. package/src/primitives/Abi/format.test.ts +112 -0
  335. package/src/primitives/Abi/format.ts +39 -0
  336. package/src/primitives/Abi/formatWithArgs.test.ts +105 -0
  337. package/src/primitives/Abi/formatWithArgs.ts +43 -0
  338. package/src/primitives/Abi/function/errors.ts +69 -0
  339. package/src/primitives/Abi/function/index.ts +24 -0
  340. package/src/primitives/Abi/getErrorSignature.test.ts +78 -0
  341. package/src/primitives/Abi/getErrorSignature.ts +40 -0
  342. package/src/primitives/Abi/getEvent.test.ts +98 -0
  343. package/src/primitives/Abi/getEvent.ts +131 -0
  344. package/src/primitives/Abi/getEventSignature.test.ts +79 -0
  345. package/src/primitives/Abi/getEventSignature.ts +40 -0
  346. package/src/primitives/Abi/getFunction.test.ts +116 -0
  347. package/src/primitives/Abi/getFunction.ts +121 -0
  348. package/src/primitives/Abi/getFunctionSignature.test.ts +88 -0
  349. package/src/primitives/Abi/getFunctionSignature.ts +40 -0
  350. package/src/primitives/Abi/getSelector.test.ts +149 -0
  351. package/src/primitives/Abi/getSelector.ts +59 -0
  352. package/src/primitives/Abi/index.ts +53 -0
  353. package/src/primitives/Abi/interface/index.ts +11 -0
  354. package/src/primitives/Abi/parameter/index.ts +5 -0
  355. package/src/primitives/Abi/parse.test.ts +97 -0
  356. package/src/primitives/Abi/parse.ts +61 -0
  357. package/src/primitives/Abi/parseItem.test.ts +144 -0
  358. package/src/primitives/Abi/parseItem.ts +76 -0
  359. package/src/primitives/Abi/wasm/index.ts +67 -0
  360. package/src/primitives/AccessList/Rpc.ts +128 -0
  361. package/src/primitives/AccessList/index.ts +32 -0
  362. package/src/primitives/AccountState/Struct.ts +214 -0
  363. package/src/primitives/AccountState/index.ts +60 -0
  364. package/src/primitives/Address/Address.test.ts +366 -0
  365. package/src/primitives/Address/AddressSchema.ts +21 -0
  366. package/src/primitives/Address/Bytes.ts +55 -0
  367. package/src/primitives/Address/Checksummed.ts +93 -0
  368. package/src/primitives/Address/Hex.ts +56 -0
  369. package/src/primitives/Address/clone.ts +26 -0
  370. package/src/primitives/Address/compare.ts +29 -0
  371. package/src/primitives/Address/equals.ts +29 -0
  372. package/src/primitives/Address/greaterThan.ts +29 -0
  373. package/src/primitives/Address/index.ts +89 -0
  374. package/src/primitives/Address/isValid.ts +26 -0
  375. package/src/primitives/Address/isValidChecksum.ts +26 -0
  376. package/src/primitives/Address/isZero.ts +26 -0
  377. package/src/primitives/Address/lessThan.ts +29 -0
  378. package/src/primitives/Address/toAbiEncoded.ts +28 -0
  379. package/src/primitives/Address/toBytes.ts +26 -0
  380. package/src/primitives/Address/toLowercase.ts +28 -0
  381. package/src/primitives/Address/toShortHex.ts +27 -0
  382. package/src/primitives/Address/toU256.ts +28 -0
  383. package/src/primitives/Address/toUppercase.ts +28 -0
  384. package/src/primitives/Authorization/Rpc.ts +148 -0
  385. package/src/primitives/Authorization/index.ts +38 -0
  386. package/src/primitives/Balance/BigInt.ts +48 -0
  387. package/src/primitives/Balance/Number.ts +46 -0
  388. package/src/primitives/Balance/String.ts +47 -0
  389. package/src/primitives/Balance/index.ts +44 -0
  390. package/src/primitives/Base64/Base64Schema.ts +90 -0
  391. package/src/primitives/Base64/extensions/index.ts +10 -0
  392. package/src/primitives/Base64/index.ts +28 -0
  393. package/src/primitives/BaseFeePerGas/BigInt.ts +49 -0
  394. package/src/primitives/BaseFeePerGas/Gwei.ts +63 -0
  395. package/src/primitives/BaseFeePerGas/index.ts +47 -0
  396. package/src/primitives/BaseFeePerGas/toGwei.ts +28 -0
  397. package/src/primitives/BeaconBlockRoot/Hex.ts +76 -0
  398. package/src/primitives/BeaconBlockRoot/index.ts +47 -0
  399. package/src/primitives/BinaryTree/BinaryTreeSchema.ts +34 -0
  400. package/src/primitives/BinaryTree/get.ts +28 -0
  401. package/src/primitives/BinaryTree/index.ts +27 -0
  402. package/src/primitives/BinaryTree/init.ts +23 -0
  403. package/src/primitives/BinaryTree/rootHash.ts +22 -0
  404. package/src/primitives/Blob/BlobSchema.ts +87 -0
  405. package/src/primitives/Blob/index.ts +54 -0
  406. package/src/primitives/Blob/isValid.ts +22 -0
  407. package/src/primitives/Blob/toData.ts +23 -0
  408. package/src/primitives/Block/Block.test.ts +377 -0
  409. package/src/primitives/Block/BlockSchema.ts +201 -0
  410. package/src/primitives/Block/Rpc.ts +189 -0
  411. package/src/primitives/Block/index.ts +55 -0
  412. package/src/primitives/BlockBody/BlockBody.test.ts +228 -0
  413. package/src/primitives/BlockBody/BlockBodySchema.ts +85 -0
  414. package/src/primitives/BlockBody/Rpc.ts +100 -0
  415. package/src/primitives/BlockBody/index.ts +52 -0
  416. package/src/primitives/BlockFilter/BlockFilterSchema.ts +39 -0
  417. package/src/primitives/BlockFilter/index.ts +20 -0
  418. package/src/primitives/BlockHash/BlockHashTypeSchema.ts +21 -0
  419. package/src/primitives/BlockHash/Bytes.ts +53 -0
  420. package/src/primitives/BlockHash/Hex.ts +56 -0
  421. package/src/primitives/BlockHash/index.ts +55 -0
  422. package/src/primitives/BlockHeader/BlockHeaderSchema.ts +84 -0
  423. package/src/primitives/BlockHeader/Rpc.ts +95 -0
  424. package/src/primitives/BlockHeader/calculateHash.ts +24 -0
  425. package/src/primitives/BlockHeader/index.ts +61 -0
  426. package/src/primitives/BlockNumber/BigInt.ts +51 -0
  427. package/src/primitives/BlockNumber/BlockNumber.test.ts +122 -0
  428. package/src/primitives/BlockNumber/BlockNumberTypeSchema.ts +21 -0
  429. package/src/primitives/BlockNumber/Hex.ts +56 -0
  430. package/src/primitives/BlockNumber/Number.ts +66 -0
  431. package/src/primitives/BlockNumber/index.ts +60 -0
  432. package/src/primitives/BloomFilter/BloomFilterSchema.ts +96 -0
  433. package/src/primitives/BloomFilter/extensions/index.ts +12 -0
  434. package/src/primitives/BloomFilter/index.ts +64 -0
  435. package/src/primitives/Brand/Brand.test.ts +192 -0
  436. package/src/primitives/Brand/index.ts +292 -0
  437. package/src/primitives/BuilderBid/BuilderBidSchema.ts +116 -0
  438. package/src/primitives/BuilderBid/index.ts +38 -0
  439. package/src/primitives/Bundle/BundleSchema.ts +176 -0
  440. package/src/primitives/Bundle/index.ts +43 -0
  441. package/src/primitives/BundleHash/Hex.ts +68 -0
  442. package/src/primitives/BundleHash/index.ts +30 -0
  443. package/src/primitives/Bundler/BundlerSchema.ts +77 -0
  444. package/src/primitives/Bundler/index.ts +35 -0
  445. package/src/primitives/Bytecode/Bytecode.test.ts +49 -0
  446. package/src/primitives/Bytecode/BytecodeSchema.ts +48 -0
  447. package/src/primitives/Bytecode/Bytes.ts +60 -0
  448. package/src/primitives/Bytecode/Hex.ts +61 -0
  449. package/src/primitives/Bytecode/index.ts +45 -0
  450. package/src/primitives/Bytes/Bytes.test.ts +402 -0
  451. package/src/primitives/Bytes/Bytes1/index.ts +18 -0
  452. package/src/primitives/Bytes/Bytes16/index.ts +23 -0
  453. package/src/primitives/Bytes/Bytes2/index.ts +17 -0
  454. package/src/primitives/Bytes/Bytes3/index.ts +17 -0
  455. package/src/primitives/Bytes/Bytes32/index.ts +28 -0
  456. package/src/primitives/Bytes/Bytes4/index.ts +17 -0
  457. package/src/primitives/Bytes/Bytes5/index.ts +17 -0
  458. package/src/primitives/Bytes/Bytes6/index.ts +17 -0
  459. package/src/primitives/Bytes/Bytes64/index.ts +23 -0
  460. package/src/primitives/Bytes/Bytes7/index.ts +17 -0
  461. package/src/primitives/Bytes/Bytes8/index.ts +17 -0
  462. package/src/primitives/Bytes/Hex.ts +59 -0
  463. package/src/primitives/Bytes/concat.ts +23 -0
  464. package/src/primitives/Bytes/equals.ts +26 -0
  465. package/src/primitives/Bytes/extensions/index.ts +6 -0
  466. package/src/primitives/Bytes/index.ts +79 -0
  467. package/src/primitives/Bytes/isBytes.ts +23 -0
  468. package/src/primitives/Bytes/random.ts +22 -0
  469. package/src/primitives/Bytes/size.ts +22 -0
  470. package/src/primitives/Bytes/toString.ts +24 -0
  471. package/src/primitives/Bytes32/Bytes.ts +57 -0
  472. package/src/primitives/Bytes32/Bytes32.test.ts +62 -0
  473. package/src/primitives/Bytes32/Hex.ts +57 -0
  474. package/src/primitives/Bytes32/index.ts +80 -0
  475. package/src/primitives/CallData/CallData.test.ts +35 -0
  476. package/src/primitives/CallData/Hex.ts +74 -0
  477. package/src/primitives/CallData/empty.ts +24 -0
  478. package/src/primitives/CallData/index.ts +50 -0
  479. package/src/primitives/CallTrace/CallTraceSchema.ts +38 -0
  480. package/src/primitives/CallTrace/flatten.ts +21 -0
  481. package/src/primitives/CallTrace/getCalls.ts +20 -0
  482. package/src/primitives/CallTrace/hasError.ts +22 -0
  483. package/src/primitives/CallTrace/index.ts +13 -0
  484. package/src/primitives/Chain/ChainSchema.ts +231 -0
  485. package/src/primitives/Chain/index.ts +57 -0
  486. package/src/primitives/ChainHead/ChainHeadSchema.ts +130 -0
  487. package/src/primitives/ChainHead/index.ts +53 -0
  488. package/src/primitives/ChainId/BigInt.ts +79 -0
  489. package/src/primitives/ChainId/Hex.ts +83 -0
  490. package/src/primitives/ChainId/Number.ts +78 -0
  491. package/src/primitives/ChainId/index.ts +56 -0
  492. package/src/primitives/CompilerVersion/CompilerVersionSchema.ts +42 -0
  493. package/src/primitives/CompilerVersion/index.ts +10 -0
  494. package/src/primitives/ContractCode/Bytes.ts +63 -0
  495. package/src/primitives/ContractCode/ContractCode.test.ts +45 -0
  496. package/src/primitives/ContractCode/Hex.ts +65 -0
  497. package/src/primitives/ContractCode/index.ts +51 -0
  498. package/src/primitives/ContractResult/ContractResultSchema.ts +98 -0
  499. package/src/primitives/ContractResult/index.ts +13 -0
  500. package/src/primitives/ContractSignature/ContractSignature.test.ts +111 -0
  501. package/src/primitives/ContractSignature/Struct.ts +67 -0
  502. package/src/primitives/ContractSignature/index.ts +68 -0
  503. package/src/primitives/ContractSignature/verifySignature.ts +254 -0
  504. package/src/primitives/DecodedData/DecodedDataSchema.ts +72 -0
  505. package/src/primitives/DecodedData/index.ts +11 -0
  506. package/src/primitives/Denomination/EtherSchema.ts +87 -0
  507. package/src/primitives/Denomination/GweiSchema.ts +86 -0
  508. package/src/primitives/Denomination/WeiSchema.ts +87 -0
  509. package/src/primitives/Denomination/index.ts +49 -0
  510. package/src/primitives/Domain/Domain.test.ts +80 -0
  511. package/src/primitives/Domain/Struct.ts +165 -0
  512. package/src/primitives/Domain/index.ts +62 -0
  513. package/src/primitives/DomainSeparator/DomainSeparator.test.ts +67 -0
  514. package/src/primitives/DomainSeparator/Hex.ts +105 -0
  515. package/src/primitives/DomainSeparator/index.ts +50 -0
  516. package/src/primitives/EffectiveGasPrice/BigInt.ts +47 -0
  517. package/src/primitives/EffectiveGasPrice/Gwei.ts +54 -0
  518. package/src/primitives/EffectiveGasPrice/calculate.ts +39 -0
  519. package/src/primitives/EffectiveGasPrice/compare.ts +31 -0
  520. package/src/primitives/EffectiveGasPrice/equals.ts +31 -0
  521. package/src/primitives/EffectiveGasPrice/index.ts +59 -0
  522. package/src/primitives/EffectiveGasPrice/toGwei.ts +28 -0
  523. package/src/primitives/EncodedData/EncodedDataSchema.ts +66 -0
  524. package/src/primitives/EncodedData/index.ts +11 -0
  525. package/src/primitives/Ens/String.ts +45 -0
  526. package/src/primitives/Ens/index.ts +18 -0
  527. package/src/primitives/EntryPoint/EntryPointSchema.ts +113 -0
  528. package/src/primitives/EntryPoint/index.ts +47 -0
  529. package/src/primitives/Epoch/BigInt.ts +46 -0
  530. package/src/primitives/Epoch/index.ts +18 -0
  531. package/src/primitives/ErrorSignature/ErrorSignature.test.ts +43 -0
  532. package/src/primitives/ErrorSignature/String.ts +102 -0
  533. package/src/primitives/ErrorSignature/index.ts +55 -0
  534. package/src/primitives/EventLog/EventLog.test.ts +77 -0
  535. package/src/primitives/EventLog/Rpc.ts +159 -0
  536. package/src/primitives/EventLog/extensions/index.ts +17 -0
  537. package/src/primitives/EventLog/extensions/utils.ts +18 -0
  538. package/src/primitives/EventLog/index.ts +23 -0
  539. package/src/primitives/EventSignature/EventSignature.test.ts +54 -0
  540. package/src/primitives/EventSignature/String.ts +102 -0
  541. package/src/primitives/EventSignature/index.ts +53 -0
  542. package/src/primitives/FeeMarket/FeeMarketSchema.ts +160 -0
  543. package/src/primitives/FeeMarket/index.ts +36 -0
  544. package/src/primitives/FeeOracle/Struct.ts +152 -0
  545. package/src/primitives/FeeOracle/index.ts +29 -0
  546. package/src/primitives/FilterId/Hex.ts +97 -0
  547. package/src/primitives/FilterId/index.ts +57 -0
  548. package/src/primitives/ForkId/ForkIdSchema.ts +66 -0
  549. package/src/primitives/ForkId/index.ts +34 -0
  550. package/src/primitives/ForwardRequest/ForwardRequestSchema.ts +109 -0
  551. package/src/primitives/ForwardRequest/index.ts +26 -0
  552. package/src/primitives/FunctionSignature/FunctionSignature.test.ts +34 -0
  553. package/src/primitives/FunctionSignature/String.ts +77 -0
  554. package/src/primitives/FunctionSignature/index.ts +41 -0
  555. package/src/primitives/Gas/BigInt.ts +66 -0
  556. package/src/primitives/Gas/Hex.ts +66 -0
  557. package/src/primitives/Gas/Number.ts +74 -0
  558. package/src/primitives/Gas/index.ts +51 -0
  559. package/src/primitives/GasConstants/GasConstantsSchema.ts +139 -0
  560. package/src/primitives/GasConstants/index.ts +33 -0
  561. package/src/primitives/GasCosts/GasCostsSchema.ts +113 -0
  562. package/src/primitives/GasCosts/index.ts +24 -0
  563. package/src/primitives/GasEstimate/BigInt.ts +47 -0
  564. package/src/primitives/GasEstimate/Number.ts +47 -0
  565. package/src/primitives/GasEstimate/index.ts +50 -0
  566. package/src/primitives/GasEstimate/toGasLimit.ts +34 -0
  567. package/src/primitives/GasEstimate/withBuffer.ts +38 -0
  568. package/src/primitives/GasPrice/BigInt.ts +67 -0
  569. package/src/primitives/GasPrice/Gwei.ts +70 -0
  570. package/src/primitives/GasPrice/Hex.ts +67 -0
  571. package/src/primitives/GasPrice/Number.ts +71 -0
  572. package/src/primitives/GasPrice/index.ts +57 -0
  573. package/src/primitives/GasRefund/BigInt.ts +47 -0
  574. package/src/primitives/GasRefund/Number.ts +46 -0
  575. package/src/primitives/GasRefund/cappedRefund.ts +38 -0
  576. package/src/primitives/GasRefund/index.ts +49 -0
  577. package/src/primitives/GasUsed/BigInt.ts +47 -0
  578. package/src/primitives/GasUsed/Number.ts +46 -0
  579. package/src/primitives/GasUsed/calculateCost.ts +33 -0
  580. package/src/primitives/GasUsed/index.ts +48 -0
  581. package/src/primitives/Hardfork/HardforkSchema.ts +47 -0
  582. package/src/primitives/Hardfork/index.ts +39 -0
  583. package/src/primitives/Hash/Bytes.ts +71 -0
  584. package/src/primitives/Hash/Hash.test.ts +630 -0
  585. package/src/primitives/Hash/Hex.ts +72 -0
  586. package/src/primitives/Hash/assert.ts +46 -0
  587. package/src/primitives/Hash/clone.ts +32 -0
  588. package/src/primitives/Hash/concat.ts +32 -0
  589. package/src/primitives/Hash/equals.ts +35 -0
  590. package/src/primitives/Hash/extensions/index.ts +21 -0
  591. package/src/primitives/Hash/format.ts +38 -0
  592. package/src/primitives/Hash/index.ts +65 -0
  593. package/src/primitives/Hash/isValidHex.ts +30 -0
  594. package/src/primitives/Hash/isZero.ts +32 -0
  595. package/src/primitives/Hash/keccak256.ts +54 -0
  596. package/src/primitives/Hash/merkleRoot.ts +32 -0
  597. package/src/primitives/Hash/random.ts +36 -0
  598. package/src/primitives/Hash/slice.ts +38 -0
  599. package/src/primitives/Hash/toBytes.ts +43 -0
  600. package/src/primitives/Hash/toString.ts +32 -0
  601. package/src/primitives/Hex/Bytes.ts +67 -0
  602. package/src/primitives/Hex/Hex.test.ts +478 -0
  603. package/src/primitives/Hex/String.ts +64 -0
  604. package/src/primitives/Hex/clone.ts +31 -0
  605. package/src/primitives/Hex/equals.ts +32 -0
  606. package/src/primitives/Hex/index.ts +82 -0
  607. package/src/primitives/Hex/isHex.ts +32 -0
  608. package/src/primitives/Hex/isSized.ts +34 -0
  609. package/src/primitives/Hex/random.ts +31 -0
  610. package/src/primitives/Hex/zero.ts +30 -0
  611. package/src/primitives/InitCode/Bytes.ts +62 -0
  612. package/src/primitives/InitCode/Hex.ts +64 -0
  613. package/src/primitives/InitCode/InitCode.test.ts +46 -0
  614. package/src/primitives/InitCode/index.ts +50 -0
  615. package/src/primitives/Int128/BigInt.ts +52 -0
  616. package/src/primitives/Int128/Int128.test.ts +374 -0
  617. package/src/primitives/Int128/Int128Schema.ts +13 -0
  618. package/src/primitives/Int128/Number.ts +53 -0
  619. package/src/primitives/Int128/String.ts +52 -0
  620. package/src/primitives/Int128/abs.ts +10 -0
  621. package/src/primitives/Int128/add.ts +11 -0
  622. package/src/primitives/Int128/compare.ts +13 -0
  623. package/src/primitives/Int128/constants.ts +13 -0
  624. package/src/primitives/Int128/div.ts +11 -0
  625. package/src/primitives/Int128/equals.ts +11 -0
  626. package/src/primitives/Int128/index.ts +83 -0
  627. package/src/primitives/Int128/isNegative.ts +11 -0
  628. package/src/primitives/Int128/isZero.ts +11 -0
  629. package/src/primitives/Int128/mul.ts +11 -0
  630. package/src/primitives/Int128/negate.ts +11 -0
  631. package/src/primitives/Int128/sub.ts +11 -0
  632. package/src/primitives/Int16/BigInt.ts +54 -0
  633. package/src/primitives/Int16/Int16.test.ts +285 -0
  634. package/src/primitives/Int16/Int16Schema.ts +13 -0
  635. package/src/primitives/Int16/Number.ts +52 -0
  636. package/src/primitives/Int16/String.ts +52 -0
  637. package/src/primitives/Int16/abs.ts +10 -0
  638. package/src/primitives/Int16/add.ts +11 -0
  639. package/src/primitives/Int16/compare.ts +13 -0
  640. package/src/primitives/Int16/constants.ts +10 -0
  641. package/src/primitives/Int16/div.ts +11 -0
  642. package/src/primitives/Int16/equals.ts +11 -0
  643. package/src/primitives/Int16/index.ts +80 -0
  644. package/src/primitives/Int16/isNegative.ts +11 -0
  645. package/src/primitives/Int16/isZero.ts +10 -0
  646. package/src/primitives/Int16/mul.ts +11 -0
  647. package/src/primitives/Int16/negate.ts +11 -0
  648. package/src/primitives/Int16/sub.ts +11 -0
  649. package/src/primitives/Int256/BigInt.ts +53 -0
  650. package/src/primitives/Int256/Int256.test.ts +499 -0
  651. package/src/primitives/Int256/Int256Schema.ts +14 -0
  652. package/src/primitives/Int256/Number.ts +53 -0
  653. package/src/primitives/Int256/String.ts +53 -0
  654. package/src/primitives/Int256/abs.ts +10 -0
  655. package/src/primitives/Int256/add.ts +11 -0
  656. package/src/primitives/Int256/compare.ts +13 -0
  657. package/src/primitives/Int256/constants.ts +13 -0
  658. package/src/primitives/Int256/div.ts +11 -0
  659. package/src/primitives/Int256/equals.ts +11 -0
  660. package/src/primitives/Int256/index.ts +87 -0
  661. package/src/primitives/Int256/isNegative.ts +11 -0
  662. package/src/primitives/Int256/isZero.ts +11 -0
  663. package/src/primitives/Int256/mul.ts +11 -0
  664. package/src/primitives/Int256/negate.ts +11 -0
  665. package/src/primitives/Int256/sub.ts +11 -0
  666. package/src/primitives/Int32/BigInt.ts +52 -0
  667. package/src/primitives/Int32/Int32.test.ts +267 -0
  668. package/src/primitives/Int32/Int32Schema.ts +13 -0
  669. package/src/primitives/Int32/Number.ts +52 -0
  670. package/src/primitives/Int32/String.ts +52 -0
  671. package/src/primitives/Int32/abs.ts +10 -0
  672. package/src/primitives/Int32/add.ts +11 -0
  673. package/src/primitives/Int32/compare.ts +13 -0
  674. package/src/primitives/Int32/constants.ts +10 -0
  675. package/src/primitives/Int32/div.ts +11 -0
  676. package/src/primitives/Int32/equals.ts +11 -0
  677. package/src/primitives/Int32/index.ts +80 -0
  678. package/src/primitives/Int32/isNegative.ts +11 -0
  679. package/src/primitives/Int32/isZero.ts +10 -0
  680. package/src/primitives/Int32/mul.ts +11 -0
  681. package/src/primitives/Int32/negate.ts +11 -0
  682. package/src/primitives/Int32/sub.ts +11 -0
  683. package/src/primitives/Int64/BigInt.ts +52 -0
  684. package/src/primitives/Int64/Int64.test.ts +306 -0
  685. package/src/primitives/Int64/Int64Schema.ts +13 -0
  686. package/src/primitives/Int64/Number.ts +53 -0
  687. package/src/primitives/Int64/String.ts +52 -0
  688. package/src/primitives/Int64/abs.ts +10 -0
  689. package/src/primitives/Int64/add.ts +11 -0
  690. package/src/primitives/Int64/compare.ts +13 -0
  691. package/src/primitives/Int64/constants.ts +10 -0
  692. package/src/primitives/Int64/div.ts +11 -0
  693. package/src/primitives/Int64/equals.ts +11 -0
  694. package/src/primitives/Int64/index.ts +80 -0
  695. package/src/primitives/Int64/isNegative.ts +11 -0
  696. package/src/primitives/Int64/isZero.ts +10 -0
  697. package/src/primitives/Int64/mul.ts +11 -0
  698. package/src/primitives/Int64/negate.ts +11 -0
  699. package/src/primitives/Int64/sub.ts +11 -0
  700. package/src/primitives/Int8/BigInt.ts +60 -0
  701. package/src/primitives/Int8/Int8.test.ts +477 -0
  702. package/src/primitives/Int8/Int8Schema.ts +13 -0
  703. package/src/primitives/Int8/Number.ts +58 -0
  704. package/src/primitives/Int8/String.ts +58 -0
  705. package/src/primitives/Int8/abs.ts +10 -0
  706. package/src/primitives/Int8/add.ts +11 -0
  707. package/src/primitives/Int8/compare.ts +13 -0
  708. package/src/primitives/Int8/constants.ts +10 -0
  709. package/src/primitives/Int8/div.ts +11 -0
  710. package/src/primitives/Int8/equals.ts +11 -0
  711. package/src/primitives/Int8/index.ts +80 -0
  712. package/src/primitives/Int8/isNegative.ts +11 -0
  713. package/src/primitives/Int8/isZero.ts +10 -0
  714. package/src/primitives/Int8/mul.ts +11 -0
  715. package/src/primitives/Int8/negate.ts +10 -0
  716. package/src/primitives/Int8/sub.ts +11 -0
  717. package/src/primitives/License/String.ts +57 -0
  718. package/src/primitives/License/index.ts +22 -0
  719. package/src/primitives/LogFilter/LogFilter.test.ts +81 -0
  720. package/src/primitives/LogFilter/Rpc.ts +209 -0
  721. package/src/primitives/LogFilter/index.ts +36 -0
  722. package/src/primitives/LogIndex/Number.ts +93 -0
  723. package/src/primitives/LogIndex/index.ts +38 -0
  724. package/src/primitives/MaxFeePerGas/BigInt.ts +49 -0
  725. package/src/primitives/MaxFeePerGas/Gwei.ts +63 -0
  726. package/src/primitives/MaxFeePerGas/index.ts +47 -0
  727. package/src/primitives/MaxFeePerGas/toGwei.ts +28 -0
  728. package/src/primitives/MaxPriorityFeePerGas/BigInt.ts +48 -0
  729. package/src/primitives/MaxPriorityFeePerGas/Gwei.ts +63 -0
  730. package/src/primitives/MaxPriorityFeePerGas/index.ts +51 -0
  731. package/src/primitives/MaxPriorityFeePerGas/toGwei.ts +28 -0
  732. package/src/primitives/MemoryDump/MemoryDumpSchema.ts +70 -0
  733. package/src/primitives/MemoryDump/index.ts +22 -0
  734. package/src/primitives/MerkleTree/MerkleTreeSchema.ts +52 -0
  735. package/src/primitives/MerkleTree/index.ts +39 -0
  736. package/src/primitives/Metadata/MetadataSchema.ts +57 -0
  737. package/src/primitives/Metadata/index.ts +24 -0
  738. package/src/primitives/MultiTokenId/MultiTokenIdSchema.ts +48 -0
  739. package/src/primitives/MultiTokenId/index.ts +23 -0
  740. package/src/primitives/NetworkId/BigInt.ts +79 -0
  741. package/src/primitives/NetworkId/Hex.ts +86 -0
  742. package/src/primitives/NetworkId/Number.ts +104 -0
  743. package/src/primitives/NetworkId/index.ts +60 -0
  744. package/src/primitives/NodeInfo/NodeInfoSchema.ts +70 -0
  745. package/src/primitives/NodeInfo/index.ts +39 -0
  746. package/src/primitives/Nonce/BigInt.ts +66 -0
  747. package/src/primitives/Nonce/Hex.ts +66 -0
  748. package/src/primitives/Nonce/Number.ts +74 -0
  749. package/src/primitives/Nonce/index.ts +56 -0
  750. package/src/primitives/OpStep/OpStepSchema.ts +118 -0
  751. package/src/primitives/OpStep/index.ts +29 -0
  752. package/src/primitives/Opcode/OpcodeSchema.ts +55 -0
  753. package/src/primitives/Opcode/index.ts +24 -0
  754. package/src/primitives/PackedUserOperation/PackedUserOperationSchema.ts +203 -0
  755. package/src/primitives/PackedUserOperation/hash.test.ts +103 -0
  756. package/src/primitives/PackedUserOperation/hash.ts +128 -0
  757. package/src/primitives/PackedUserOperation/index.ts +80 -0
  758. package/src/primitives/PackedUserOperation/unpack.ts +101 -0
  759. package/src/primitives/Paymaster/PaymasterSchema.ts +194 -0
  760. package/src/primitives/Paymaster/index.ts +21 -0
  761. package/src/primitives/PeerId/PeerIdSchema.ts +47 -0
  762. package/src/primitives/PeerId/index.ts +31 -0
  763. package/src/primitives/PeerInfo/PeerInfoSchema.ts +61 -0
  764. package/src/primitives/PeerInfo/index.ts +39 -0
  765. package/src/primitives/PendingTransactionFilter/Struct.ts +56 -0
  766. package/src/primitives/PendingTransactionFilter/index.ts +25 -0
  767. package/src/primitives/Permit/Permit.test.ts +32 -0
  768. package/src/primitives/Permit/Struct.ts +77 -0
  769. package/src/primitives/Permit/index.ts +58 -0
  770. package/src/primitives/PrivateKey/Bytes.ts +59 -0
  771. package/src/primitives/PrivateKey/Hex.ts +64 -0
  772. package/src/primitives/PrivateKey/PrivateKey.test.ts +410 -0
  773. package/src/primitives/PrivateKey/index.ts +62 -0
  774. package/src/primitives/PrivateKey/isValid.ts +35 -0
  775. package/src/primitives/PrivateKey/random.ts +27 -0
  776. package/src/primitives/Proof/Struct.ts +32 -0
  777. package/src/primitives/Proof/equals.ts +10 -0
  778. package/src/primitives/Proof/index.ts +37 -0
  779. package/src/primitives/Proof/verify.ts +11 -0
  780. package/src/primitives/ProtocolVersion/ProtocolVersionSchema.ts +55 -0
  781. package/src/primitives/ProtocolVersion/index.ts +32 -0
  782. package/src/primitives/Proxy/Struct.ts +49 -0
  783. package/src/primitives/Proxy/index.ts +11 -0
  784. package/src/primitives/PublicKey/Bytes.ts +68 -0
  785. package/src/primitives/PublicKey/Compressed.ts +71 -0
  786. package/src/primitives/PublicKey/Hex.ts +57 -0
  787. package/src/primitives/PublicKey/PublicKey.test.ts +443 -0
  788. package/src/primitives/PublicKey/equals.ts +30 -0
  789. package/src/primitives/PublicKey/index.ts +70 -0
  790. package/src/primitives/PublicKey/isCompressed.ts +27 -0
  791. package/src/primitives/PublicKey/isValid.ts +31 -0
  792. package/src/primitives/PublicKey/toAddress.ts +29 -0
  793. package/src/primitives/PublicKey/toBytes.ts +27 -0
  794. package/src/primitives/PublicKey/verify.ts +36 -0
  795. package/src/primitives/Receipt/ReceiptSchema.test.ts +94 -0
  796. package/src/primitives/Receipt/ReceiptSchema.ts +492 -0
  797. package/src/primitives/Receipt/index.ts +65 -0
  798. package/src/primitives/RelayData/RelayDataSchema.ts +106 -0
  799. package/src/primitives/RelayData/index.ts +10 -0
  800. package/src/primitives/ReturnData/Bytes.ts +60 -0
  801. package/src/primitives/ReturnData/Hex.ts +61 -0
  802. package/src/primitives/ReturnData/ReturnData.test.ts +43 -0
  803. package/src/primitives/ReturnData/ReturnDataSchema.ts +50 -0
  804. package/src/primitives/ReturnData/index.ts +45 -0
  805. package/src/primitives/RevertReason/Bytes.ts +81 -0
  806. package/src/primitives/RevertReason/Hex.ts +85 -0
  807. package/src/primitives/RevertReason/RevertReason.test.ts +42 -0
  808. package/src/primitives/RevertReason/RevertReasonSchema.ts +108 -0
  809. package/src/primitives/RevertReason/index.ts +67 -0
  810. package/src/primitives/RevertReason/toString.ts +28 -0
  811. package/src/primitives/Rlp/Rlp.test.ts +991 -0
  812. package/src/primitives/Rlp/RlpSchema.ts +50 -0
  813. package/src/primitives/Rlp/decode.ts +57 -0
  814. package/src/primitives/Rlp/decodeArray.ts +48 -0
  815. package/src/primitives/Rlp/encode.ts +58 -0
  816. package/src/primitives/Rlp/encodeArray.ts +32 -0
  817. package/src/primitives/Rlp/encodeBytes.ts +27 -0
  818. package/src/primitives/Rlp/encodeList.ts +32 -0
  819. package/src/primitives/Rlp/flatten.ts +38 -0
  820. package/src/primitives/Rlp/index.ts +74 -0
  821. package/src/primitives/Rlp/validate.ts +25 -0
  822. package/src/primitives/RuntimeCode/Bytes.ts +60 -0
  823. package/src/primitives/RuntimeCode/Hex.ts +61 -0
  824. package/src/primitives/RuntimeCode/RuntimeCode.test.ts +43 -0
  825. package/src/primitives/RuntimeCode/RuntimeCodeSchema.ts +49 -0
  826. package/src/primitives/RuntimeCode/index.ts +46 -0
  827. package/src/primitives/Selector/Bytes.ts +64 -0
  828. package/src/primitives/Selector/Hex.ts +69 -0
  829. package/src/primitives/Selector/Selector.test.ts +258 -0
  830. package/src/primitives/Selector/SelectorSchema.ts +95 -0
  831. package/src/primitives/Selector/Signature.ts +65 -0
  832. package/src/primitives/Selector/equals.ts +33 -0
  833. package/src/primitives/Selector/index.ts +55 -0
  834. package/src/primitives/Signature/Bytes.ts +57 -0
  835. package/src/primitives/Signature/Compact.ts +59 -0
  836. package/src/primitives/Signature/DER.ts +65 -0
  837. package/src/primitives/Signature/Hex.ts +56 -0
  838. package/src/primitives/Signature/Rpc.ts +77 -0
  839. package/src/primitives/Signature/Signature.test.ts +496 -0
  840. package/src/primitives/Signature/SignatureSchema.ts +30 -0
  841. package/src/primitives/Signature/Tuple.ts +75 -0
  842. package/src/primitives/Signature/equals.ts +25 -0
  843. package/src/primitives/Signature/getAlgorithm.ts +29 -0
  844. package/src/primitives/Signature/index.ts +93 -0
  845. package/src/primitives/Signature/is.ts +26 -0
  846. package/src/primitives/Signature/isCanonical.ts +28 -0
  847. package/src/primitives/Signature/isSignature.ts +26 -0
  848. package/src/primitives/Signature/normalize.ts +24 -0
  849. package/src/primitives/Signature/toBytes.ts +24 -0
  850. package/src/primitives/Signature/toCompact.ts +26 -0
  851. package/src/primitives/SignedData/SignedDataSchema.ts +61 -0
  852. package/src/primitives/SignedData/index.ts +26 -0
  853. package/src/primitives/Siwe/Siwe.test.ts +42 -0
  854. package/src/primitives/Siwe/String.ts +136 -0
  855. package/src/primitives/Siwe/index.ts +55 -0
  856. package/src/primitives/Slot/SlotSchema.ts +51 -0
  857. package/src/primitives/Slot/index.ts +20 -0
  858. package/src/primitives/SourceMap/Struct.ts +94 -0
  859. package/src/primitives/SourceMap/index.ts +12 -0
  860. package/src/primitives/Ssz/SszSchema.ts +49 -0
  861. package/src/primitives/Ssz/index.ts +29 -0
  862. package/src/primitives/State/StateSchema.ts +112 -0
  863. package/src/primitives/State/index.ts +22 -0
  864. package/src/primitives/StateDiff/StateDiffSchema.ts +251 -0
  865. package/src/primitives/StateDiff/index.ts +28 -0
  866. package/src/primitives/StateProof/StateProofSchema.ts +109 -0
  867. package/src/primitives/StateProof/index.ts +66 -0
  868. package/src/primitives/StateRoot/StateRootSchema.ts +109 -0
  869. package/src/primitives/StateRoot/index.ts +78 -0
  870. package/src/primitives/StealthAddress/Struct.ts +48 -0
  871. package/src/primitives/StealthAddress/index.ts +6 -0
  872. package/src/primitives/Storage/StorageSchema.ts +100 -0
  873. package/src/primitives/Storage/index.ts +53 -0
  874. package/src/primitives/StorageDiff/StorageDiffSchema.ts +111 -0
  875. package/src/primitives/StorageDiff/index.ts +59 -0
  876. package/src/primitives/StorageProof/Struct.ts +93 -0
  877. package/src/primitives/StorageProof/equals.ts +72 -0
  878. package/src/primitives/StorageProof/index.ts +67 -0
  879. package/src/primitives/StorageValue/Hex.ts +109 -0
  880. package/src/primitives/StorageValue/index.ts +92 -0
  881. package/src/primitives/StructLog/Struct.ts +101 -0
  882. package/src/primitives/StructLog/index.ts +28 -0
  883. package/src/primitives/SyncStatus/SyncStatusSchema.ts +87 -0
  884. package/src/primitives/SyncStatus/index.ts +36 -0
  885. package/src/primitives/TokenBalance/Struct.ts +48 -0
  886. package/src/primitives/TokenBalance/index.ts +23 -0
  887. package/src/primitives/TokenId/BigInt.ts +50 -0
  888. package/src/primitives/TokenId/index.ts +36 -0
  889. package/src/primitives/TopicFilter/Rpc.ts +142 -0
  890. package/src/primitives/TopicFilter/TopicFilter.test.ts +22 -0
  891. package/src/primitives/TopicFilter/index.ts +29 -0
  892. package/src/primitives/TraceConfig/TraceConfigSchema.ts +104 -0
  893. package/src/primitives/TraceConfig/index.ts +22 -0
  894. package/src/primitives/TraceResult/TraceResultSchema.ts +96 -0
  895. package/src/primitives/TraceResult/index.ts +23 -0
  896. package/src/primitives/Transaction/Authorization/index.ts +5 -0
  897. package/src/primitives/Transaction/EIP1559/index.ts +17 -0
  898. package/src/primitives/Transaction/EIP2930/index.ts +16 -0
  899. package/src/primitives/Transaction/EIP4844/index.ts +18 -0
  900. package/src/primitives/Transaction/EIP7702/index.ts +17 -0
  901. package/src/primitives/Transaction/Legacy/index.ts +17 -0
  902. package/src/primitives/Transaction/Rpc.ts +176 -0
  903. package/src/primitives/Transaction/Serialized.ts +98 -0
  904. package/src/primitives/Transaction/Transaction.test.ts +1562 -0
  905. package/src/primitives/Transaction/TransactionSchema.ts +515 -0
  906. package/src/primitives/Transaction/index.ts +289 -0
  907. package/src/primitives/TransactionHash/Bytes.ts +56 -0
  908. package/src/primitives/TransactionHash/Hex.ts +62 -0
  909. package/src/primitives/TransactionHash/index.ts +58 -0
  910. package/src/primitives/TransactionIndex/Number.ts +59 -0
  911. package/src/primitives/TransactionIndex/index.ts +53 -0
  912. package/src/primitives/TransactionStatus/TransactionStatusSchema.ts +57 -0
  913. package/src/primitives/TransactionStatus/index.ts +9 -0
  914. package/src/primitives/TransactionUrl/TransactionUrlSchema.ts +54 -0
  915. package/src/primitives/TransactionUrl/index.ts +21 -0
  916. package/src/primitives/TypedData/Struct.ts +194 -0
  917. package/src/primitives/TypedData/TypedData.test.ts +63 -0
  918. package/src/primitives/TypedData/index.ts +54 -0
  919. package/src/primitives/U256/index.ts +71 -0
  920. package/src/primitives/Uint/BigInt.ts +60 -0
  921. package/src/primitives/Uint/Bytes.ts +62 -0
  922. package/src/primitives/Uint/Hex.ts +61 -0
  923. package/src/primitives/Uint/Number.ts +61 -0
  924. package/src/primitives/Uint/String.ts +57 -0
  925. package/src/primitives/Uint/Uint.test.ts +838 -0
  926. package/src/primitives/Uint/bitLength.ts +22 -0
  927. package/src/primitives/Uint/bitwiseAnd.ts +24 -0
  928. package/src/primitives/Uint/bitwiseNot.ts +23 -0
  929. package/src/primitives/Uint/bitwiseOr.ts +24 -0
  930. package/src/primitives/Uint/bitwiseXor.ts +24 -0
  931. package/src/primitives/Uint/clone.ts +22 -0
  932. package/src/primitives/Uint/equals.ts +24 -0
  933. package/src/primitives/Uint/gcd.ts +24 -0
  934. package/src/primitives/Uint/greaterThan.ts +24 -0
  935. package/src/primitives/Uint/greaterThanOrEqual.ts +24 -0
  936. package/src/primitives/Uint/index.ts +85 -0
  937. package/src/primitives/Uint/isPowerOf2.ts +23 -0
  938. package/src/primitives/Uint/isZero.ts +22 -0
  939. package/src/primitives/Uint/lcm.ts +24 -0
  940. package/src/primitives/Uint/leadingZeros.ts +24 -0
  941. package/src/primitives/Uint/lessThan.ts +24 -0
  942. package/src/primitives/Uint/lessThanOrEqual.ts +24 -0
  943. package/src/primitives/Uint/max.ts +24 -0
  944. package/src/primitives/Uint/maximum.ts +27 -0
  945. package/src/primitives/Uint/min.ts +24 -0
  946. package/src/primitives/Uint/minimum.ts +27 -0
  947. package/src/primitives/Uint/minus.ts +27 -0
  948. package/src/primitives/Uint/notEquals.ts +24 -0
  949. package/src/primitives/Uint/plus.ts +27 -0
  950. package/src/primitives/Uint/popCount.ts +24 -0
  951. package/src/primitives/Uint/product.ts +24 -0
  952. package/src/primitives/Uint/shiftLeft.ts +24 -0
  953. package/src/primitives/Uint/shiftRight.ts +24 -0
  954. package/src/primitives/Uint/sum.ts +24 -0
  955. package/src/primitives/Uint/times.ts +27 -0
  956. package/src/primitives/Uint/toAbiEncoded.ts +24 -0
  957. package/src/primitives/Uint/toBigInt.ts +25 -0
  958. package/src/primitives/Uint/toBytes.ts +25 -0
  959. package/src/primitives/Uint/toNumber.ts +28 -0
  960. package/src/primitives/Uint/toPower.ts +29 -0
  961. package/src/primitives/Uint/toString.ts +31 -0
  962. package/src/primitives/Uint128/BigInt.ts +54 -0
  963. package/src/primitives/Uint128/Bytes.ts +56 -0
  964. package/src/primitives/Uint128/Hex.ts +55 -0
  965. package/src/primitives/Uint128/Number.ts +59 -0
  966. package/src/primitives/Uint128/String.ts +55 -0
  967. package/src/primitives/Uint128/Uint128Schema.ts +119 -0
  968. package/src/primitives/Uint128/index.ts +71 -0
  969. package/src/primitives/Uint16/BigInt.ts +57 -0
  970. package/src/primitives/Uint16/Bytes.ts +55 -0
  971. package/src/primitives/Uint16/Hex.ts +55 -0
  972. package/src/primitives/Uint16/Number.ts +55 -0
  973. package/src/primitives/Uint16/String.ts +55 -0
  974. package/src/primitives/Uint16/Uint16.test.ts +313 -0
  975. package/src/primitives/Uint16/Uint16Schema.ts +117 -0
  976. package/src/primitives/Uint16/index.ts +70 -0
  977. package/src/primitives/Uint32/BigInt.ts +55 -0
  978. package/src/primitives/Uint32/Bytes.ts +55 -0
  979. package/src/primitives/Uint32/Hex.ts +55 -0
  980. package/src/primitives/Uint32/Number.ts +55 -0
  981. package/src/primitives/Uint32/String.ts +55 -0
  982. package/src/primitives/Uint32/Uint32Schema.ts +122 -0
  983. package/src/primitives/Uint32/index.ts +70 -0
  984. package/src/primitives/Uint64/BigInt.ts +55 -0
  985. package/src/primitives/Uint64/Bytes.ts +56 -0
  986. package/src/primitives/Uint64/Hex.ts +55 -0
  987. package/src/primitives/Uint64/Number.ts +59 -0
  988. package/src/primitives/Uint64/String.ts +55 -0
  989. package/src/primitives/Uint64/Uint64Schema.ts +122 -0
  990. package/src/primitives/Uint64/index.ts +71 -0
  991. package/src/primitives/Uint8/BigInt.ts +57 -0
  992. package/src/primitives/Uint8/Bytes.ts +55 -0
  993. package/src/primitives/Uint8/Hex.ts +55 -0
  994. package/src/primitives/Uint8/Number.ts +55 -0
  995. package/src/primitives/Uint8/String.ts +55 -0
  996. package/src/primitives/Uint8/Uint8.test.ts +324 -0
  997. package/src/primitives/Uint8/Uint8Schema.ts +117 -0
  998. package/src/primitives/Uint8/index.ts +70 -0
  999. package/src/primitives/Uncle/Rpc.ts +49 -0
  1000. package/src/primitives/Uncle/index.ts +11 -0
  1001. package/src/primitives/UserOperation/UserOperationSchema.ts +213 -0
  1002. package/src/primitives/UserOperation/index.ts +81 -0
  1003. package/src/primitives/ValidatorIndex/ValidatorIndexSchema.ts +44 -0
  1004. package/src/primitives/ValidatorIndex/index.ts +20 -0
  1005. package/src/primitives/Withdrawal/WithdrawalSchema.ts +47 -0
  1006. package/src/primitives/Withdrawal/index.ts +20 -0
  1007. package/src/primitives/WithdrawalIndex/WithdrawalIndexSchema.ts +47 -0
  1008. package/src/primitives/WithdrawalIndex/index.ts +20 -0
  1009. package/src/primitives/errors/index.ts +1 -0
  1010. package/src/primitives/index.ts +143 -0
  1011. package/src/primitives/validation/assertCommon.ts +40 -0
  1012. package/src/primitives/validation/assertInRange.ts +60 -0
  1013. package/src/primitives/validation/assertInt.ts +121 -0
  1014. package/src/primitives/validation/assertSize.ts +68 -0
  1015. package/src/primitives/validation/assertUint.ts +114 -0
  1016. package/src/primitives/validation/index.ts +23 -0
  1017. package/src/services/AbiEncoder/AbiEncoder.test.ts +190 -0
  1018. package/src/services/AbiEncoder/AbiEncoderService.ts +141 -0
  1019. package/src/services/AbiEncoder/DefaultAbiEncoder.ts +186 -0
  1020. package/src/services/AbiEncoder/index.ts +14 -0
  1021. package/src/services/Account/Account.test.ts +756 -0
  1022. package/src/services/Account/AccountService.ts +453 -0
  1023. package/src/services/Account/JsonRpcAccount.ts +347 -0
  1024. package/src/services/Account/LocalAccount.ts +967 -0
  1025. package/src/services/Account/fromMnemonic.test.ts +67 -0
  1026. package/src/services/Account/fromMnemonic.ts +221 -0
  1027. package/src/services/Account/index.ts +65 -0
  1028. package/src/services/Account/toAccount.test.ts +139 -0
  1029. package/src/services/Account/toAccount.ts +185 -0
  1030. package/src/services/BlockStream/BlockStream.test.ts +1246 -0
  1031. package/src/services/BlockStream/BlockStream.ts +125 -0
  1032. package/src/services/BlockStream/BlockStreamError.ts +33 -0
  1033. package/src/services/BlockStream/BlockStreamService.ts +105 -0
  1034. package/src/services/BlockStream/index.ts +32 -0
  1035. package/src/services/Cache/CacheService.ts +102 -0
  1036. package/src/services/Cache/LookupCacheService.test.ts +305 -0
  1037. package/src/services/Cache/LookupCacheService.ts +209 -0
  1038. package/src/services/Cache/MemoryCache.test.ts +154 -0
  1039. package/src/services/Cache/MemoryCache.ts +175 -0
  1040. package/src/services/Cache/NoopCache.test.ts +159 -0
  1041. package/src/services/Cache/NoopCache.ts +81 -0
  1042. package/src/services/Cache/index.ts +176 -0
  1043. package/src/services/Ccip/Ccip.test.ts +569 -0
  1044. package/src/services/Ccip/CcipService.ts +106 -0
  1045. package/src/services/Ccip/DefaultCcip.ts +189 -0
  1046. package/src/services/Ccip/NoopCcip.ts +52 -0
  1047. package/src/services/Ccip/index.ts +20 -0
  1048. package/src/services/Chain/BlockExplorerService.ts +39 -0
  1049. package/src/services/Chain/Chain.test.ts +296 -0
  1050. package/src/services/Chain/ChainService.ts +97 -0
  1051. package/src/services/Chain/ContractsService.ts +46 -0
  1052. package/src/services/Chain/chains/arbitrum.ts +73 -0
  1053. package/src/services/Chain/chains/base.ts +73 -0
  1054. package/src/services/Chain/chains/index.ts +48 -0
  1055. package/src/services/Chain/chains/mainnet.ts +77 -0
  1056. package/src/services/Chain/chains/optimism.ts +73 -0
  1057. package/src/services/Chain/chains/polygon.ts +73 -0
  1058. package/src/services/Chain/chains/sepolia.ts +78 -0
  1059. package/src/services/Chain/index.ts +77 -0
  1060. package/src/services/Chain/rpcUrls.ts +31 -0
  1061. package/src/services/Contract/Contract.test.ts +988 -0
  1062. package/src/services/Contract/Contract.ts +432 -0
  1063. package/src/services/Contract/ContractTypes.ts +412 -0
  1064. package/src/services/Contract/estimateGas.test.ts +124 -0
  1065. package/src/services/Contract/estimateGas.ts +163 -0
  1066. package/src/services/Contract/index.ts +67 -0
  1067. package/src/services/Debug/Debug.ts +121 -0
  1068. package/src/services/Debug/DebugService.ts +89 -0
  1069. package/src/services/Debug/index.ts +13 -0
  1070. package/src/services/EngineApi/EngineApi.ts +95 -0
  1071. package/src/services/EngineApi/EngineApiService.ts +99 -0
  1072. package/src/services/EngineApi/index.ts +9 -0
  1073. package/src/services/Ens/DefaultEns.ts +60 -0
  1074. package/src/services/Ens/EnsService.ts +66 -0
  1075. package/src/services/Ens/index.ts +61 -0
  1076. package/src/services/FeeEstimator/DefaultFeeEstimator.ts +277 -0
  1077. package/src/services/FeeEstimator/FeeEstimator.test.ts +810 -0
  1078. package/src/services/FeeEstimator/FeeEstimatorService.ts +168 -0
  1079. package/src/services/FeeEstimator/index.ts +57 -0
  1080. package/src/services/Formatter/DefaultFormatter.ts +74 -0
  1081. package/src/services/Formatter/Formatter.test.ts +92 -0
  1082. package/src/services/Formatter/FormatterService.ts +137 -0
  1083. package/src/services/Formatter/chains/arbitrum.ts +35 -0
  1084. package/src/services/Formatter/chains/chains.test.ts +102 -0
  1085. package/src/services/Formatter/chains/index.ts +13 -0
  1086. package/src/services/Formatter/chains/optimism.ts +36 -0
  1087. package/src/services/Formatter/chains/zksync.ts +35 -0
  1088. package/src/services/Formatter/index.ts +22 -0
  1089. package/src/services/Kzg/DefaultKzg.ts +111 -0
  1090. package/src/services/Kzg/Kzg.test.ts +320 -0
  1091. package/src/services/Kzg/KzgService.ts +123 -0
  1092. package/src/services/Kzg/NoopKzg.ts +75 -0
  1093. package/src/services/Kzg/index.ts +15 -0
  1094. package/src/services/Multicall/BalanceResolver.ts +182 -0
  1095. package/src/services/Multicall/GetBalance.ts +27 -0
  1096. package/src/services/Multicall/Multicall.test.ts +384 -0
  1097. package/src/services/Multicall/Multicall.ts +241 -0
  1098. package/src/services/Multicall/index.ts +20 -0
  1099. package/src/services/NonceManager/DefaultNonceManager.ts +154 -0
  1100. package/src/services/NonceManager/NonceManager.test.ts +468 -0
  1101. package/src/services/NonceManager/NonceManagerService.ts +191 -0
  1102. package/src/services/NonceManager/index.ts +46 -0
  1103. package/src/services/Provider/Account.ts +33 -0
  1104. package/src/services/Provider/AccountService.ts +84 -0
  1105. package/src/services/Provider/Blocks.ts +32 -0
  1106. package/src/services/Provider/BlocksService.ts +73 -0
  1107. package/src/services/Provider/Events.ts +33 -0
  1108. package/src/services/Provider/EventsService.ts +71 -0
  1109. package/src/services/Provider/Network.ts +41 -0
  1110. package/src/services/Provider/NetworkService.ts +114 -0
  1111. package/src/services/Provider/Provider.test.ts +1723 -0
  1112. package/src/services/Provider/Provider.ts +1193 -0
  1113. package/src/services/Provider/ProviderService.ts +1218 -0
  1114. package/src/services/Provider/REFACTOR_PLAN.md +203 -0
  1115. package/src/services/Provider/Simulation.ts +34 -0
  1116. package/src/services/Provider/SimulationService.ts +161 -0
  1117. package/src/services/Provider/Streaming.ts +30 -0
  1118. package/src/services/Provider/StreamingService.ts +58 -0
  1119. package/src/services/Provider/Transaction.ts +39 -0
  1120. package/src/services/Provider/TransactionService.ts +83 -0
  1121. package/src/services/Provider/actions/index.ts +26 -0
  1122. package/src/services/Provider/actions/multicall.test.ts +716 -0
  1123. package/src/services/Provider/actions/multicall.ts +304 -0
  1124. package/src/services/Provider/actions/readContract.test.ts +808 -0
  1125. package/src/services/Provider/actions/readContract.ts +311 -0
  1126. package/src/services/Provider/actions/simulateContract.test.ts +454 -0
  1127. package/src/services/Provider/actions/simulateContract.ts +189 -0
  1128. package/src/services/Provider/ens/EnsError.ts +38 -0
  1129. package/src/services/Provider/ens/constants.ts +81 -0
  1130. package/src/services/Provider/ens/ens.test.ts +322 -0
  1131. package/src/services/Provider/ens/getEnsAddress.ts +126 -0
  1132. package/src/services/Provider/ens/getEnsAvatar.ts +51 -0
  1133. package/src/services/Provider/ens/getEnsName.ts +124 -0
  1134. package/src/services/Provider/ens/getEnsResolver.ts +82 -0
  1135. package/src/services/Provider/ens/getEnsText.ts +158 -0
  1136. package/src/services/Provider/ens/index.ts +49 -0
  1137. package/src/services/Provider/ens/utils.ts +165 -0
  1138. package/src/services/Provider/filters.ts +91 -0
  1139. package/src/services/Provider/getBlobBaseFee.ts +170 -0
  1140. package/src/services/Provider/index.ts +213 -0
  1141. package/src/services/Provider/simulateCalls.test.ts +127 -0
  1142. package/src/services/Provider/simulateCalls.ts +281 -0
  1143. package/src/services/RateLimiter/DefaultRateLimiter.ts +226 -0
  1144. package/src/services/RateLimiter/RateLimiter.test.ts +181 -0
  1145. package/src/services/RateLimiter/RateLimiterService.ts +208 -0
  1146. package/src/services/RateLimiter/index.ts +54 -0
  1147. package/src/services/RawProvider/ForkProviderTransport.ts +100 -0
  1148. package/src/services/RawProvider/HttpProviderTransport.test.ts +310 -0
  1149. package/src/services/RawProvider/HttpProviderTransport.ts +76 -0
  1150. package/src/services/RawProvider/InMemoryProviderTransport.test.ts +246 -0
  1151. package/src/services/RawProvider/InMemoryProviderTransport.ts +81 -0
  1152. package/src/services/RawProvider/RawProvider.test.ts +454 -0
  1153. package/src/services/RawProvider/RawProviderService.ts +61 -0
  1154. package/src/services/RawProvider/RawProviderTransport.ts +64 -0
  1155. package/src/services/RawProvider/WebSocketProviderTransport.ts +106 -0
  1156. package/src/services/RawProvider/index.ts +31 -0
  1157. package/src/services/RpcBatch/RpcBatch.test.ts +628 -0
  1158. package/src/services/RpcBatch/RpcRequest.ts +227 -0
  1159. package/src/services/RpcBatch/RpcResolver.test.ts +315 -0
  1160. package/src/services/RpcBatch/RpcResolver.ts +362 -0
  1161. package/src/services/RpcBatch/index.ts +88 -0
  1162. package/src/services/Signer/Signer.test.ts +1629 -0
  1163. package/src/services/Signer/Signer.ts +812 -0
  1164. package/src/services/Signer/SignerService.ts +518 -0
  1165. package/src/services/Signer/actions/addChain.test.ts +178 -0
  1166. package/src/services/Signer/actions/addChain.ts +80 -0
  1167. package/src/services/Signer/actions/deployContract.test.ts +523 -0
  1168. package/src/services/Signer/actions/deployContract.ts +165 -0
  1169. package/src/services/Signer/actions/getAddresses.test.ts +118 -0
  1170. package/src/services/Signer/actions/getAddresses.ts +60 -0
  1171. package/src/services/Signer/actions/getPermissions.test.ts +122 -0
  1172. package/src/services/Signer/actions/getPermissions.ts +54 -0
  1173. package/src/services/Signer/actions/index.ts +49 -0
  1174. package/src/services/Signer/actions/prepareAuthorization.test.ts +206 -0
  1175. package/src/services/Signer/actions/prepareAuthorization.ts +92 -0
  1176. package/src/services/Signer/actions/requestPermissions.test.ts +164 -0
  1177. package/src/services/Signer/actions/requestPermissions.ts +66 -0
  1178. package/src/services/Signer/actions/signAuthorization.test.ts +279 -0
  1179. package/src/services/Signer/actions/signAuthorization.ts +127 -0
  1180. package/src/services/Signer/actions/switchChain.test.ts +129 -0
  1181. package/src/services/Signer/actions/switchChain.ts +56 -0
  1182. package/src/services/Signer/actions/watchAsset.test.ts +175 -0
  1183. package/src/services/Signer/actions/watchAsset.ts +110 -0
  1184. package/src/services/Signer/actions/writeContract.test.ts +281 -0
  1185. package/src/services/Signer/actions/writeContract.ts +109 -0
  1186. package/src/services/Signer/index.ts +108 -0
  1187. package/src/services/TransactionSerializer/DefaultTransactionSerializer.ts +110 -0
  1188. package/src/services/TransactionSerializer/TransactionSerializer.test.ts +200 -0
  1189. package/src/services/TransactionSerializer/TransactionSerializerService.ts +114 -0
  1190. package/src/services/TransactionSerializer/index.ts +38 -0
  1191. package/src/services/Transport/BatchScheduler.test.ts +209 -0
  1192. package/src/services/Transport/BatchScheduler.ts +298 -0
  1193. package/src/services/Transport/BrowserTransport.test.ts +354 -0
  1194. package/src/services/Transport/BrowserTransport.ts +209 -0
  1195. package/src/services/Transport/CustomTransport.test.ts +331 -0
  1196. package/src/services/Transport/CustomTransport.ts +355 -0
  1197. package/src/services/Transport/FallbackTransport.test.ts +492 -0
  1198. package/src/services/Transport/FallbackTransport.ts +240 -0
  1199. package/src/services/Transport/HttpTransport.ts +685 -0
  1200. package/src/services/Transport/HttpTransportConfig.test.ts +153 -0
  1201. package/src/services/Transport/HttpTransportConfig.ts +270 -0
  1202. package/src/services/Transport/HttpTransportHooks.test.ts +176 -0
  1203. package/src/services/Transport/IdGenerator.test.ts +117 -0
  1204. package/src/services/Transport/IdGenerator.ts +82 -0
  1205. package/src/services/Transport/IpcTransport.test.ts +222 -0
  1206. package/src/services/Transport/IpcTransport.ts +732 -0
  1207. package/src/services/Transport/RateLimitedTransport.test.ts +118 -0
  1208. package/src/services/Transport/RateLimitedTransport.ts +124 -0
  1209. package/src/services/Transport/RpcRequest.test.ts +266 -0
  1210. package/src/services/Transport/RpcRequest.ts +312 -0
  1211. package/src/services/Transport/RpcResolver.test.ts +280 -0
  1212. package/src/services/Transport/RpcResolver.ts +184 -0
  1213. package/src/services/Transport/TestTransport.ts +175 -0
  1214. package/src/services/Transport/Transport.test.ts +1755 -0
  1215. package/src/services/Transport/TransportConfig.test.ts +224 -0
  1216. package/src/services/Transport/TransportConfig.ts +285 -0
  1217. package/src/services/Transport/TransportError.test.ts +166 -0
  1218. package/src/services/Transport/TransportError.ts +134 -0
  1219. package/src/services/Transport/TransportFiberRef.test.ts +164 -0
  1220. package/src/services/Transport/TransportInterceptor.test.ts +341 -0
  1221. package/src/services/Transport/TransportInterceptor.ts +531 -0
  1222. package/src/services/Transport/TransportService.ts +124 -0
  1223. package/src/services/Transport/WebSocketTransport.test.ts +588 -0
  1224. package/src/services/Transport/WebSocketTransport.ts +765 -0
  1225. package/src/services/Transport/WebSocketTransportConfig.test.ts +185 -0
  1226. package/src/services/Transport/WebSocketTransportConfig.ts +247 -0
  1227. package/src/services/Transport/__testUtils__/mockIpcSocket.ts +106 -0
  1228. package/src/services/Transport/__testUtils__/mockWebSocket.ts +138 -0
  1229. package/src/services/Transport/config.ts +150 -0
  1230. package/src/services/Transport/index.ts +161 -0
  1231. package/src/services/errors.test.ts +570 -0
  1232. package/src/services/index.ts +439 -0
  1233. package/src/services/presets/index.ts +283 -0
  1234. package/src/services/presets/presets.test.ts +88 -0
  1235. package/src/standards/ERC1155.test.ts +324 -0
  1236. package/src/standards/ERC1155.ts +328 -0
  1237. package/src/standards/ERC165.test.ts +216 -0
  1238. package/src/standards/ERC165.ts +87 -0
  1239. package/src/standards/ERC20.test.ts +310 -0
  1240. package/src/standards/ERC20.ts +275 -0
  1241. package/src/standards/ERC721.test.ts +343 -0
  1242. package/src/standards/ERC721.ts +319 -0
  1243. package/src/standards/errors.test.ts +54 -0
  1244. package/src/standards/errors.ts +7 -0
  1245. package/src/standards/index.ts +5 -0
  1246. package/src/stream/index.test.ts +216 -0
  1247. package/src/stream/index.ts +37 -0
  1248. package/src/transaction/TransactionStream.test.ts +887 -0
  1249. package/src/transaction/TransactionStream.ts +142 -0
  1250. package/src/transaction/TransactionStreamError.test.ts +133 -0
  1251. package/src/transaction/TransactionStreamError.ts +35 -0
  1252. package/src/transaction/TransactionStreamService.ts +121 -0
  1253. package/src/transaction/index.ts +35 -0
  1254. package/src/utils/Unit/Unit.test.ts +337 -0
  1255. package/src/utils/Unit/errors.ts +16 -0
  1256. package/src/utils/Unit/formatEther.ts +24 -0
  1257. package/src/utils/Unit/formatGwei.ts +24 -0
  1258. package/src/utils/Unit/formatUnits.ts +55 -0
  1259. package/src/utils/Unit/index.ts +49 -0
  1260. package/src/utils/Unit/parseEther.ts +24 -0
  1261. package/src/utils/Unit/parseGwei.ts +24 -0
  1262. package/src/utils/Unit/parseUnits.ts +68 -0
@@ -0,0 +1,1254 @@
1
+ import * as Context from 'effect/Context';
2
+ import * as Data5 from 'effect/Data';
3
+ import { Bip39, Blake2, BN254, ChaCha20Poly1305, EIP712, HMAC, Keccak256, KZG, Ripemd160, SHA256, ModExp, AesGcm, Hash } from '@tevm/voltaire';
4
+ import * as Effect46 from 'effect/Effect';
5
+ import * as Layer from 'effect/Layer';
6
+ import * as Bls12381 from '@tevm/voltaire/Bls12381';
7
+ import * as Ed25519 from '@tevm/voltaire/Ed25519';
8
+ import { Keystore, DecryptionError, InvalidMacError, UnsupportedVersionError, UnsupportedKdfError, InvalidScryptNError, InvalidPbkdf2IterationsError, EncryptionError } from '@tevm/voltaire/Keystore';
9
+ import * as P256 from '@tevm/voltaire/P256';
10
+ import * as Secp256k1 from '@tevm/voltaire/Secp256k1';
11
+ import { InvalidSignatureError as InvalidSignatureError$1, InvalidPublicKeyError as InvalidPublicKeyError$1, Secp256k1Error as Secp256k1Error$1, InvalidPrivateKeyError as InvalidPrivateKeyError$1 } from '@tevm/voltaire/Secp256k1';
12
+ import { decodeParameters, encodeParameters } from '@tevm/voltaire/Abi';
13
+ import { Address } from '@tevm/voltaire/Address';
14
+ import * as Hex2 from '@tevm/voltaire/Hex';
15
+ import * as X25519 from '@tevm/voltaire/X25519';
16
+
17
+ // src/crypto/AesGcm/AesGcmService.ts
18
+ var AesGcmService = class extends Context.Tag("AesGcmService")() {
19
+ };
20
+ var InvalidKeyError = class extends Data5.TaggedError("InvalidKeyError") {
21
+ };
22
+ var InvalidNonceError = class extends Data5.TaggedError("InvalidNonceError") {
23
+ };
24
+ var VALID_KEY_LENGTHS = [16, 32];
25
+ var NONCE_LENGTH = 12;
26
+ var validateKey = (key) => VALID_KEY_LENGTHS.includes(key.length) ? Effect46.void : Effect46.fail(
27
+ new InvalidKeyError({
28
+ message: `Key must be 16 or 32 bytes, got ${key.length}`,
29
+ keyLength: key.length,
30
+ expectedLengths: VALID_KEY_LENGTHS
31
+ })
32
+ );
33
+ var validateNonce = (nonce) => nonce.length === NONCE_LENGTH ? Effect46.void : Effect46.fail(
34
+ new InvalidNonceError({
35
+ message: `Nonce must be ${NONCE_LENGTH} bytes, got ${nonce.length}`,
36
+ nonceLength: nonce.length,
37
+ expectedLength: NONCE_LENGTH
38
+ })
39
+ );
40
+ var encrypt = (key, plaintext, nonce, aad) => Effect46.gen(function* () {
41
+ yield* validateKey(key);
42
+ yield* validateNonce(nonce);
43
+ return yield* Effect46.tryPromise({
44
+ try: async () => {
45
+ const cryptoKey = await AesGcm.importKey(key);
46
+ return AesGcm.encrypt(plaintext, cryptoKey, nonce, aad);
47
+ },
48
+ catch: (e) => e
49
+ });
50
+ });
51
+ var decrypt = (key, ciphertext, nonce, aad) => Effect46.gen(function* () {
52
+ yield* validateKey(key);
53
+ yield* validateNonce(nonce);
54
+ return yield* Effect46.tryPromise({
55
+ try: async () => {
56
+ const cryptoKey = await AesGcm.importKey(key);
57
+ return AesGcm.decrypt(ciphertext, cryptoKey, nonce, aad);
58
+ },
59
+ catch: (e) => e
60
+ });
61
+ });
62
+ var generateKey = (bits = 256) => Effect46.tryPromise({
63
+ try: async () => {
64
+ const cryptoKey = await AesGcm.generateKey(bits);
65
+ return AesGcm.exportKey(cryptoKey);
66
+ },
67
+ catch: (e) => e
68
+ });
69
+ var generateNonce = () => Effect46.try({
70
+ try: () => AesGcm.generateNonce(),
71
+ catch: (e) => e
72
+ });
73
+ var AesGcmLive = Layer.succeed(AesGcmService, {
74
+ encrypt: (key, plaintext, nonce, aad) => encrypt(key, plaintext, nonce, aad),
75
+ decrypt: (key, ciphertext, nonce, aad) => decrypt(key, ciphertext, nonce, aad),
76
+ generateKey: (bits) => generateKey(bits ?? 256),
77
+ generateNonce: () => generateNonce()
78
+ });
79
+ var AesGcmTest = Layer.succeed(AesGcmService, {
80
+ encrypt: () => Effect46.succeed(new Uint8Array(32)),
81
+ decrypt: () => Effect46.succeed(new Uint8Array(16)),
82
+ generateKey: () => Effect46.succeed(new Uint8Array(32)),
83
+ generateNonce: () => Effect46.succeed(new Uint8Array(12))
84
+ });
85
+ var Bip39Service = class extends Context.Tag("Bip39Service")() {
86
+ };
87
+ var Bip39Live = Layer.succeed(Bip39Service, {
88
+ generateMnemonic: (strength = 128) => Effect46.sync(() => Bip39.generateMnemonic(strength)),
89
+ validateMnemonic: (mnemonic) => Effect46.sync(() => Bip39.validateMnemonic(mnemonic)),
90
+ mnemonicToSeed: (mnemonic, passphrase) => Effect46.promise(() => Bip39.mnemonicToSeed(mnemonic, passphrase)),
91
+ mnemonicToSeedSync: (mnemonic, passphrase) => Effect46.sync(() => Bip39.mnemonicToSeedSync(mnemonic, passphrase)),
92
+ getWordCount: (entropyBits) => Effect46.sync(() => Bip39.getWordCount(entropyBits))
93
+ });
94
+ var TEST_MNEMONIC = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
95
+ var Bip39Test = Layer.succeed(Bip39Service, {
96
+ generateMnemonic: (_strength) => Effect46.succeed(TEST_MNEMONIC),
97
+ validateMnemonic: (_mnemonic) => Effect46.succeed(true),
98
+ mnemonicToSeed: (_mnemonic, _passphrase) => Effect46.succeed(new Uint8Array(64)),
99
+ mnemonicToSeedSync: (_mnemonic, _passphrase) => Effect46.succeed(new Uint8Array(64)),
100
+ getWordCount: (_entropyBits) => Effect46.succeed(12)
101
+ });
102
+ var generateMnemonic = (strength) => Effect46.gen(function* () {
103
+ const bip39 = yield* Bip39Service;
104
+ return yield* bip39.generateMnemonic(strength);
105
+ });
106
+ var validateMnemonic = (mnemonic) => Effect46.gen(function* () {
107
+ const bip39 = yield* Bip39Service;
108
+ return yield* bip39.validateMnemonic(mnemonic);
109
+ });
110
+ var mnemonicToSeed = (mnemonic, passphrase) => Effect46.gen(function* () {
111
+ const bip39 = yield* Bip39Service;
112
+ return yield* bip39.mnemonicToSeed(mnemonic, passphrase);
113
+ });
114
+ var mnemonicToSeedSync = (mnemonic, passphrase) => Effect46.gen(function* () {
115
+ const bip39 = yield* Bip39Service;
116
+ return yield* bip39.mnemonicToSeedSync(mnemonic, passphrase);
117
+ });
118
+ var getWordCount = (entropyBits) => Effect46.gen(function* () {
119
+ const bip39 = yield* Bip39Service;
120
+ return yield* bip39.getWordCount(entropyBits);
121
+ });
122
+ var Blake2Service = class extends Context.Tag("Blake2Service")() {
123
+ };
124
+ var Blake2Live = Layer.succeed(Blake2Service, {
125
+ hash: (data, outputLength = 64) => Effect46.sync(() => Blake2.hash(data, outputLength))
126
+ });
127
+ var Blake2Test = Layer.succeed(Blake2Service, {
128
+ hash: (_data, outputLength = 64) => Effect46.sync(() => new Uint8Array(outputLength))
129
+ });
130
+ var hash = (data, outputLength) => Effect46.gen(function* () {
131
+ const blake2 = yield* Blake2Service;
132
+ return yield* blake2.hash(data, outputLength);
133
+ });
134
+ var aggregate2 = (signatures) => Effect46.try({
135
+ try: () => Bls12381.aggregate(signatures),
136
+ catch: (e) => e
137
+ });
138
+ var Bls12381Service = class extends Context.Tag("Bls12381Service")() {
139
+ };
140
+ var sign2 = (message, privateKey) => Effect46.try({
141
+ try: () => Bls12381.sign(message, privateKey),
142
+ catch: (e) => e
143
+ });
144
+ var verify2 = (signature, message, publicKey) => Effect46.try({
145
+ try: () => Bls12381.verify(signature, message, publicKey),
146
+ catch: (e) => e
147
+ });
148
+
149
+ // src/crypto/Bls12381/Bls12381Live.ts
150
+ var Bls12381Live = Layer.succeed(Bls12381Service, {
151
+ sign: sign2,
152
+ verify: verify2,
153
+ aggregate: aggregate2
154
+ });
155
+ var Bn254Error = class extends Data5.TaggedError("Bn254Error") {
156
+ };
157
+ var Bn254Service = class extends Context.Tag("Bn254Service")() {
158
+ };
159
+ var Bn254Live = Layer.succeed(Bn254Service, {
160
+ g1Add: (a, b) => Effect46.try({
161
+ try: () => BN254.G1.add(a, b),
162
+ catch: (e) => new Bn254Error({
163
+ operation: "g1Add",
164
+ message: `G1 point addition failed: ${e}`,
165
+ cause: e
166
+ })
167
+ }),
168
+ g1Mul: (point, scalar) => Effect46.try({
169
+ try: () => BN254.G1.mul(point, scalar),
170
+ catch: (e) => new Bn254Error({
171
+ operation: "g1Mul",
172
+ message: `G1 scalar multiplication failed: ${e}`,
173
+ cause: e
174
+ })
175
+ }),
176
+ g1Generator: () => Effect46.try({
177
+ try: () => BN254.G1.generator(),
178
+ catch: (e) => new Bn254Error({
179
+ operation: "g1Generator",
180
+ message: `Failed to get G1 generator: ${e}`,
181
+ cause: e
182
+ })
183
+ }),
184
+ g2Add: (a, b) => Effect46.try({
185
+ try: () => BN254.G2.add(a, b),
186
+ catch: (e) => new Bn254Error({
187
+ operation: "g2Add",
188
+ message: `G2 point addition failed: ${e}`,
189
+ cause: e
190
+ })
191
+ }),
192
+ g2Mul: (point, scalar) => Effect46.try({
193
+ try: () => BN254.G2.mul(point, scalar),
194
+ catch: (e) => new Bn254Error({
195
+ operation: "g2Mul",
196
+ message: `G2 scalar multiplication failed: ${e}`,
197
+ cause: e
198
+ })
199
+ }),
200
+ g2Generator: () => Effect46.try({
201
+ try: () => BN254.G2.generator(),
202
+ catch: (e) => new Bn254Error({
203
+ operation: "g2Generator",
204
+ message: `Failed to get G2 generator: ${e}`,
205
+ cause: e
206
+ })
207
+ }),
208
+ pairingCheck: (pairs) => Effect46.try({
209
+ try: () => BN254.Pairing.pairingCheck(pairs),
210
+ catch: (e) => new Bn254Error({
211
+ operation: "pairingCheck",
212
+ message: `Pairing check failed: ${e}`,
213
+ cause: e
214
+ })
215
+ })
216
+ });
217
+ var mockG1Point = {
218
+ x: 1n,
219
+ y: 2n,
220
+ z: 1n
221
+ };
222
+ var mockG2Point = {
223
+ x: { c0: 1n, c1: 0n },
224
+ y: { c0: 1n, c1: 0n },
225
+ z: { c0: 1n, c1: 0n }
226
+ };
227
+ var Bn254Test = Layer.succeed(Bn254Service, {
228
+ g1Add: (_a, _b) => Effect46.succeed(mockG1Point),
229
+ g1Mul: (_point, _scalar) => Effect46.succeed(mockG1Point),
230
+ g1Generator: () => Effect46.succeed(mockG1Point),
231
+ g2Add: (_a, _b) => Effect46.succeed(mockG2Point),
232
+ g2Mul: (_point, _scalar) => Effect46.succeed(mockG2Point),
233
+ g2Generator: () => Effect46.succeed(mockG2Point),
234
+ pairingCheck: (_pairs) => Effect46.succeed(true)
235
+ });
236
+ var g1Add = (a, b) => Effect46.gen(function* () {
237
+ const bn254 = yield* Bn254Service;
238
+ return yield* bn254.g1Add(a, b);
239
+ });
240
+ var g1Mul = (point, scalar) => Effect46.gen(function* () {
241
+ const bn254 = yield* Bn254Service;
242
+ return yield* bn254.g1Mul(point, scalar);
243
+ });
244
+ var g1Generator = () => Effect46.gen(function* () {
245
+ const bn254 = yield* Bn254Service;
246
+ return yield* bn254.g1Generator();
247
+ });
248
+ var g2Add = (a, b) => Effect46.gen(function* () {
249
+ const bn254 = yield* Bn254Service;
250
+ return yield* bn254.g2Add(a, b);
251
+ });
252
+ var g2Mul = (point, scalar) => Effect46.gen(function* () {
253
+ const bn254 = yield* Bn254Service;
254
+ return yield* bn254.g2Mul(point, scalar);
255
+ });
256
+ var g2Generator = () => Effect46.gen(function* () {
257
+ const bn254 = yield* Bn254Service;
258
+ return yield* bn254.g2Generator();
259
+ });
260
+ var pairingCheck = (pairs) => Effect46.gen(function* () {
261
+ const bn254 = yield* Bn254Service;
262
+ return yield* bn254.pairingCheck(pairs);
263
+ });
264
+ var InvalidKeyError2 = class extends Data5.TaggedError("InvalidKeyError") {
265
+ };
266
+ var InvalidNonceError2 = class extends Data5.TaggedError("InvalidNonceError") {
267
+ };
268
+
269
+ // src/crypto/ChaCha20Poly1305/ChaCha20Poly1305Service.ts
270
+ var KEY_LENGTH = 32;
271
+ var NONCE_LENGTH2 = 12;
272
+ var validateKey2 = (key) => key.length === KEY_LENGTH ? Effect46.void : Effect46.fail(
273
+ new InvalidKeyError2({
274
+ message: `Key must be ${KEY_LENGTH} bytes, got ${key.length}`,
275
+ keyLength: key.length,
276
+ expectedLength: KEY_LENGTH
277
+ })
278
+ );
279
+ var validateNonce2 = (nonce) => nonce.length === NONCE_LENGTH2 ? Effect46.void : Effect46.fail(
280
+ new InvalidNonceError2({
281
+ message: `Nonce must be ${NONCE_LENGTH2} bytes, got ${nonce.length}`,
282
+ nonceLength: nonce.length,
283
+ expectedLength: NONCE_LENGTH2
284
+ })
285
+ );
286
+ var ChaCha20Poly1305Service = class extends Context.Tag(
287
+ "ChaCha20Poly1305Service"
288
+ )() {
289
+ };
290
+ var ChaCha20Poly1305Live = Layer.succeed(ChaCha20Poly1305Service, {
291
+ encrypt: (plaintext, key, nonce, additionalData) => Effect46.gen(function* () {
292
+ yield* validateKey2(key);
293
+ yield* validateNonce2(nonce);
294
+ return ChaCha20Poly1305.encrypt(plaintext, key, nonce, additionalData);
295
+ }),
296
+ decrypt: (ciphertext, key, nonce, additionalData) => Effect46.gen(function* () {
297
+ yield* validateKey2(key);
298
+ yield* validateNonce2(nonce);
299
+ return ChaCha20Poly1305.decrypt(ciphertext, key, nonce, additionalData);
300
+ }),
301
+ generateKey: () => Effect46.sync(() => ChaCha20Poly1305.generateKey()),
302
+ generateNonce: () => Effect46.sync(() => ChaCha20Poly1305.generateNonce())
303
+ });
304
+ var ChaCha20Poly1305Test = Layer.succeed(ChaCha20Poly1305Service, {
305
+ encrypt: (_plaintext, _key, _nonce, _additionalData) => Effect46.sync(() => new Uint8Array(32)),
306
+ decrypt: (_ciphertext, _key, _nonce, _additionalData) => Effect46.sync(() => new Uint8Array(16)),
307
+ generateKey: () => Effect46.sync(() => new Uint8Array(32)),
308
+ generateNonce: () => Effect46.sync(() => new Uint8Array(12))
309
+ });
310
+ var encrypt2 = (plaintext, key, nonce, additionalData) => Effect46.gen(function* () {
311
+ const service = yield* ChaCha20Poly1305Service;
312
+ return yield* service.encrypt(plaintext, key, nonce, additionalData);
313
+ });
314
+ var decrypt2 = (ciphertext, key, nonce, additionalData) => Effect46.gen(function* () {
315
+ const service = yield* ChaCha20Poly1305Service;
316
+ return yield* service.decrypt(ciphertext, key, nonce, additionalData);
317
+ });
318
+ var generateKey2 = () => Effect46.gen(function* () {
319
+ const service = yield* ChaCha20Poly1305Service;
320
+ return yield* service.generateKey();
321
+ });
322
+ var generateNonce2 = () => Effect46.gen(function* () {
323
+ const service = yield* ChaCha20Poly1305Service;
324
+ return yield* service.generateNonce();
325
+ });
326
+ var Ed25519Service = class extends Context.Tag("Ed25519Service")() {
327
+ };
328
+ var getPublicKey = (secretKey) => Effect46.try({
329
+ try: () => Ed25519.derivePublicKey(secretKey),
330
+ catch: (e) => e
331
+ });
332
+ var sign4 = (message, secretKey) => Effect46.try({
333
+ try: () => Ed25519.sign(message, secretKey),
334
+ catch: (e) => e
335
+ });
336
+ var verify4 = (signature, message, publicKey) => Effect46.try({
337
+ try: () => Ed25519.verify(signature, message, publicKey),
338
+ catch: (e) => e
339
+ });
340
+
341
+ // src/crypto/Ed25519/Ed25519Live.ts
342
+ var Ed25519Live = Layer.succeed(Ed25519Service, {
343
+ sign: sign4,
344
+ verify: verify4,
345
+ getPublicKey
346
+ });
347
+ var EIP712Service = class extends Context.Tag("EIP712Service")() {
348
+ };
349
+ var EIP712Live = Layer.succeed(EIP712Service, {
350
+ hashTypedData: (typedData) => Effect46.sync(() => EIP712.hashTypedData(typedData)),
351
+ signTypedData: (typedData, privateKey) => Effect46.sync(() => EIP712.signTypedData(typedData, privateKey)),
352
+ verifyTypedData: (signature, typedData, address) => Effect46.sync(() => EIP712.verifyTypedData(signature, typedData, address)),
353
+ recoverAddress: (signature, typedData) => Effect46.sync(() => EIP712.recoverAddress(signature, typedData)),
354
+ hashDomain: (domain) => Effect46.sync(() => EIP712.Domain.hash(domain)),
355
+ hashStruct: (primaryType, data, types) => Effect46.sync(() => EIP712.hashStruct(primaryType, data, types))
356
+ });
357
+ var mockHash = new Uint8Array(32);
358
+ var mockAddress = new Uint8Array(20);
359
+ var mockSignature = {
360
+ r: new Uint8Array(32),
361
+ s: new Uint8Array(32),
362
+ v: 27
363
+ };
364
+ var EIP712Test = Layer.succeed(EIP712Service, {
365
+ hashTypedData: (_typedData) => Effect46.succeed(mockHash),
366
+ signTypedData: (_typedData, _privateKey) => Effect46.succeed(mockSignature),
367
+ verifyTypedData: (_signature, _typedData, _address) => Effect46.succeed(true),
368
+ recoverAddress: (_signature, _typedData) => Effect46.succeed(mockAddress),
369
+ hashDomain: (_domain) => Effect46.succeed(mockHash),
370
+ hashStruct: (_primaryType, _data, _types) => Effect46.succeed(mockHash)
371
+ });
372
+ var hashTypedData = (typedData) => Effect46.gen(function* () {
373
+ const eip712 = yield* EIP712Service;
374
+ return yield* eip712.hashTypedData(typedData);
375
+ });
376
+ var signTypedData = (typedData, privateKey) => Effect46.gen(function* () {
377
+ const eip712 = yield* EIP712Service;
378
+ return yield* eip712.signTypedData(typedData, privateKey);
379
+ });
380
+ var verifyTypedData = (signature, typedData, address) => Effect46.gen(function* () {
381
+ const eip712 = yield* EIP712Service;
382
+ return yield* eip712.verifyTypedData(signature, typedData, address);
383
+ });
384
+ var recoverAddress = (signature, typedData) => Effect46.gen(function* () {
385
+ const eip712 = yield* EIP712Service;
386
+ return yield* eip712.recoverAddress(signature, typedData);
387
+ });
388
+ var hashDomain = (domain) => Effect46.gen(function* () {
389
+ const eip712 = yield* EIP712Service;
390
+ return yield* eip712.hashDomain(domain);
391
+ });
392
+ var hashStruct = (primaryType, data, types) => Effect46.gen(function* () {
393
+ const eip712 = yield* EIP712Service;
394
+ return yield* eip712.hashStruct(primaryType, data, types);
395
+ });
396
+ var HMACService = class extends Context.Tag("HMACService")() {
397
+ };
398
+ var HMACLive = Layer.succeed(HMACService, {
399
+ sha256: (key, message) => Effect46.sync(() => HMAC.sha256(key, message)),
400
+ sha512: (key, message) => Effect46.sync(() => HMAC.sha512(key, message))
401
+ });
402
+ var HMACTest = Layer.succeed(HMACService, {
403
+ sha256: (_key, _message) => Effect46.succeed(new Uint8Array(32)),
404
+ sha512: (_key, _message) => Effect46.succeed(new Uint8Array(64))
405
+ });
406
+ var hmacSha256 = (key, message) => Effect46.gen(function* () {
407
+ const hmac = yield* HMACService;
408
+ return yield* hmac.sha256(key, message);
409
+ });
410
+ var hmacSha512 = (key, message) => Effect46.gen(function* () {
411
+ const hmac = yield* HMACService;
412
+ return yield* hmac.sha512(key, message);
413
+ });
414
+ var KeccakService = class extends Context.Tag("KeccakService")() {
415
+ };
416
+ var KeccakLive = Layer.succeed(KeccakService, {
417
+ hash: (data) => Effect46.sync(() => Keccak256.hash(data))
418
+ });
419
+ var KeccakTest = Layer.succeed(KeccakService, {
420
+ hash: (_data) => Effect46.sync(() => new Uint8Array(32))
421
+ });
422
+
423
+ // src/crypto/Keccak256/hash.ts
424
+ var hash2 = (data) => Effect46.gen(function* () {
425
+ const keccak = yield* KeccakService;
426
+ return yield* keccak.hash(data);
427
+ });
428
+ var toDecryptError = (error) => {
429
+ if (error instanceof DecryptionError) return error;
430
+ if (error instanceof InvalidMacError) return error;
431
+ if (error instanceof UnsupportedVersionError) return error;
432
+ if (error instanceof UnsupportedKdfError) return error;
433
+ if (error instanceof InvalidScryptNError) return error;
434
+ if (error instanceof InvalidPbkdf2IterationsError) return error;
435
+ const message = error instanceof Error ? error.message : String(error);
436
+ return new DecryptionError(message, {
437
+ cause: error instanceof Error ? error : void 0
438
+ });
439
+ };
440
+ var decrypt3 = (keystore, password) => Effect46.try({
441
+ try: () => Keystore.decrypt(keystore, password),
442
+ catch: toDecryptError
443
+ });
444
+ var withDecryptedKey = (keystore, password, use) => Effect46.acquireRelease(
445
+ decrypt3(keystore, password),
446
+ (privateKey) => Effect46.sync(() => privateKey.fill(0))
447
+ ).pipe(Effect46.flatMap(use), Effect46.scoped);
448
+ var toEncryptionError = (error) => {
449
+ if (error instanceof EncryptionError) return error;
450
+ if (error instanceof InvalidScryptNError) return error;
451
+ if (error instanceof InvalidPbkdf2IterationsError) return error;
452
+ const message = error instanceof Error ? error.message : String(error);
453
+ return new EncryptionError(message, {
454
+ cause: error instanceof Error ? error : void 0
455
+ });
456
+ };
457
+ var encrypt3 = (privateKey, password, options) => Effect46.tryPromise({
458
+ try: () => Keystore.encrypt(privateKey, password, options),
459
+ catch: toEncryptionError
460
+ });
461
+ var KeystoreService = class extends Context.Tag("KeystoreService")() {
462
+ };
463
+
464
+ // src/crypto/Keystore/KeystoreLive.ts
465
+ var KeystoreLive = Layer.succeed(KeystoreService, {
466
+ encrypt: encrypt3,
467
+ decrypt: decrypt3
468
+ });
469
+ var mockPrivateKey = new Uint8Array(32).fill(
470
+ 66
471
+ );
472
+ var mockKeystore = {
473
+ version: 3,
474
+ id: "test-uuid",
475
+ crypto: {
476
+ cipher: "aes-128-ctr",
477
+ ciphertext: "0".repeat(64),
478
+ cipherparams: { iv: "0".repeat(32) },
479
+ kdf: "scrypt",
480
+ kdfparams: {
481
+ dklen: 32,
482
+ n: 262144,
483
+ r: 8,
484
+ p: 1,
485
+ salt: "0".repeat(64)
486
+ },
487
+ mac: "0".repeat(64)
488
+ }
489
+ };
490
+ var testImpl = {
491
+ encrypt: (_privateKey, _password, _options) => Effect46.succeed(mockKeystore),
492
+ decrypt: (_keystore, _password) => Effect46.succeed(mockPrivateKey)
493
+ };
494
+ var KeystoreTest = Layer.succeed(KeystoreService, testImpl);
495
+ var KZGError = class extends Data5.TaggedError("KZGError") {
496
+ };
497
+ var KZGService = class extends Context.Tag("KZGService")() {
498
+ };
499
+ var KZGLive = Layer.succeed(KZGService, {
500
+ blobToKzgCommitment: (blob) => Effect46.try({
501
+ try: () => KZG.blobToKzgCommitment(blob),
502
+ catch: (e) => new KZGError({
503
+ code: "INVALID_BLOB",
504
+ operation: "blobToKzgCommitment",
505
+ message: `Failed to compute KZG commitment: ${e}`,
506
+ cause: e
507
+ })
508
+ }),
509
+ computeBlobKzgProof: (blob, commitment) => Effect46.try({
510
+ try: () => KZG.computeBlobKzgProof(blob, commitment),
511
+ catch: (e) => new KZGError({
512
+ code: "OPERATION_FAILED",
513
+ operation: "computeBlobKzgProof",
514
+ message: `Failed to compute KZG proof: ${e}`,
515
+ cause: e
516
+ })
517
+ }),
518
+ verifyBlobKzgProof: (blob, commitment, proof) => Effect46.try({
519
+ try: () => KZG.verifyBlobKzgProof(blob, commitment, proof),
520
+ catch: (e) => new KZGError({
521
+ code: "OPERATION_FAILED",
522
+ operation: "verifyBlobKzgProof",
523
+ message: `Failed to verify KZG proof: ${e}`,
524
+ cause: e
525
+ })
526
+ }),
527
+ loadTrustedSetup: () => Effect46.try({
528
+ try: () => KZG.loadTrustedSetup(),
529
+ catch: (e) => new KZGError({
530
+ code: "SETUP_NOT_LOADED",
531
+ operation: "loadTrustedSetup",
532
+ message: `Failed to load trusted setup: ${e}`,
533
+ cause: e
534
+ })
535
+ }),
536
+ isInitialized: () => Effect46.try({
537
+ try: () => KZG.isInitialized(),
538
+ catch: (e) => new KZGError({
539
+ code: "OPERATION_FAILED",
540
+ operation: "isInitialized",
541
+ message: `Failed to check initialization status: ${e}`,
542
+ cause: e
543
+ })
544
+ })
545
+ });
546
+ var KZGTest = Layer.succeed(KZGService, {
547
+ blobToKzgCommitment: (_blob) => Effect46.sync(() => new Uint8Array(48)),
548
+ computeBlobKzgProof: (_blob, _commitment) => Effect46.sync(() => new Uint8Array(48)),
549
+ verifyBlobKzgProof: (_blob, _commitment, _proof) => Effect46.succeed(true),
550
+ loadTrustedSetup: () => Effect46.succeed(void 0),
551
+ isInitialized: () => Effect46.succeed(true)
552
+ });
553
+
554
+ // src/crypto/KZG/commit.ts
555
+ var blobToKzgCommitment = (blob) => Effect46.gen(function* () {
556
+ const kzg = yield* KZGService;
557
+ return yield* kzg.blobToKzgCommitment(blob);
558
+ });
559
+ var computeBlobKzgProof = (blob, commitment) => Effect46.gen(function* () {
560
+ const kzg = yield* KZGService;
561
+ return yield* kzg.computeBlobKzgProof(blob, commitment);
562
+ });
563
+ var verifyBlobKzgProof = (blob, commitment, proof) => Effect46.gen(function* () {
564
+ const kzg = yield* KZGService;
565
+ return yield* kzg.verifyBlobKzgProof(blob, commitment, proof);
566
+ });
567
+ var P256Service = class extends Context.Tag("P256Service")() {
568
+ };
569
+ var sign6 = (messageHash, privateKey) => Effect46.try({
570
+ try: () => P256.sign(messageHash, privateKey),
571
+ catch: (e) => e
572
+ });
573
+ var verify6 = (signature, messageHash, publicKey) => Effect46.try({
574
+ try: () => P256.verify(signature, messageHash, publicKey),
575
+ catch: (e) => e
576
+ });
577
+
578
+ // src/crypto/P256/P256Live.ts
579
+ var P256Live = Layer.succeed(P256Service, {
580
+ sign: sign6,
581
+ verify: verify6
582
+ });
583
+ var Ripemd160Service = class extends Context.Tag("Ripemd160Service")() {
584
+ };
585
+ var Ripemd160Live = Layer.succeed(Ripemd160Service, {
586
+ hash: (data) => Effect46.sync(() => Ripemd160.hash(data))
587
+ });
588
+ var Ripemd160Test = Layer.succeed(Ripemd160Service, {
589
+ hash: (_data) => Effect46.sync(() => new Uint8Array(20))
590
+ });
591
+
592
+ // src/crypto/Ripemd160/hash.ts
593
+ var hash3 = (data) => Effect46.gen(function* () {
594
+ const ripemd160 = yield* Ripemd160Service;
595
+ return yield* ripemd160.hash(data);
596
+ });
597
+ var Secp256k1Error = class extends Data5.TaggedError("Secp256k1Error") {
598
+ };
599
+ var InvalidPrivateKeyError = class extends Data5.TaggedError(
600
+ "InvalidPrivateKeyError"
601
+ ) {
602
+ };
603
+ var InvalidPublicKeyError = class extends Data5.TaggedError(
604
+ "InvalidPublicKeyError"
605
+ ) {
606
+ };
607
+ var InvalidSignatureError = class extends Data5.TaggedError(
608
+ "InvalidSignatureError"
609
+ ) {
610
+ };
611
+ var InvalidRecoveryIdError = class extends Data5.TaggedError(
612
+ "InvalidRecoveryIdError"
613
+ ) {
614
+ };
615
+ var getMessage = (error) => error instanceof Error ? error.message : String(error);
616
+ var getRecoveryId = (error) => {
617
+ if (!error || typeof error !== "object") return void 0;
618
+ const candidate = error.recoveryId ?? error.v;
619
+ return typeof candidate === "number" ? candidate : void 0;
620
+ };
621
+ function mapToSecp256k1Error(error, operation) {
622
+ const message = getMessage(error);
623
+ const normalized = message.toLowerCase();
624
+ const isPrivateKey = normalized.includes("private key") || normalized.includes("scalar");
625
+ const isPublicKey = normalized.includes("public key") || normalized.includes("point");
626
+ const isSignature = normalized.includes("signature");
627
+ const isRecovery = normalized.includes("recovery") || normalized.includes("recovery id");
628
+ const recoveryId = getRecoveryId(error);
629
+ switch (operation) {
630
+ case "sign": {
631
+ if (error instanceof InvalidPrivateKeyError) return error;
632
+ if (error instanceof Secp256k1Error) return error;
633
+ if (error instanceof InvalidPrivateKeyError$1) {
634
+ return new InvalidPrivateKeyError({
635
+ message: error.message,
636
+ cause: error
637
+ });
638
+ }
639
+ if (error instanceof Secp256k1Error$1) {
640
+ return new Secp256k1Error({ message: error.message, cause: error });
641
+ }
642
+ if (isPrivateKey) {
643
+ return new InvalidPrivateKeyError({
644
+ message: `Invalid private key: ${message}`,
645
+ cause: error
646
+ });
647
+ }
648
+ return new Secp256k1Error({
649
+ message: `sign failed: ${message}`,
650
+ cause: error
651
+ });
652
+ }
653
+ case "recover": {
654
+ if (error instanceof InvalidSignatureError) return error;
655
+ if (error instanceof InvalidRecoveryIdError) return error;
656
+ if (error instanceof Secp256k1Error) return error;
657
+ if (error instanceof InvalidSignatureError$1) {
658
+ return new InvalidSignatureError({
659
+ message: error.message,
660
+ cause: error
661
+ });
662
+ }
663
+ if (error instanceof Secp256k1Error$1) {
664
+ return new Secp256k1Error({ message: error.message, cause: error });
665
+ }
666
+ if (isRecovery) {
667
+ return new InvalidRecoveryIdError({
668
+ message: `Invalid recovery ID: ${message}`,
669
+ recoveryId: recoveryId ?? -1,
670
+ cause: error
671
+ });
672
+ }
673
+ if (isSignature) {
674
+ return new InvalidSignatureError({
675
+ message: `Invalid signature: ${message}`,
676
+ cause: error
677
+ });
678
+ }
679
+ return new Secp256k1Error({
680
+ message: `recover failed: ${message}`,
681
+ cause: error
682
+ });
683
+ }
684
+ case "verify": {
685
+ if (error instanceof InvalidSignatureError) return error;
686
+ if (error instanceof InvalidPublicKeyError) return error;
687
+ if (error instanceof Secp256k1Error) return error;
688
+ if (error instanceof InvalidSignatureError$1) {
689
+ return new InvalidSignatureError({
690
+ message: error.message,
691
+ cause: error
692
+ });
693
+ }
694
+ if (error instanceof InvalidPublicKeyError$1) {
695
+ return new InvalidPublicKeyError({
696
+ message: error.message,
697
+ cause: error
698
+ });
699
+ }
700
+ if (error instanceof Secp256k1Error$1) {
701
+ return new Secp256k1Error({ message: error.message, cause: error });
702
+ }
703
+ if (isPublicKey) {
704
+ return new InvalidPublicKeyError({
705
+ message: `Invalid public key: ${message}`,
706
+ cause: error
707
+ });
708
+ }
709
+ if (isSignature) {
710
+ return new InvalidSignatureError({
711
+ message: `Invalid signature: ${message}`,
712
+ cause: error
713
+ });
714
+ }
715
+ return new Secp256k1Error({
716
+ message: `verify failed: ${message}`,
717
+ cause: error
718
+ });
719
+ }
720
+ }
721
+ }
722
+ var Secp256k1Service = class extends Context.Tag("Secp256k1Service")() {
723
+ };
724
+
725
+ // src/crypto/Secp256k1/Secp256k1Live.ts
726
+ var Secp256k1Live = Layer.succeed(Secp256k1Service, {
727
+ sign: (messageHash, privateKey, options) => Effect46.try({
728
+ try: () => Secp256k1.sign(messageHash, privateKey, options),
729
+ catch: (e) => mapToSecp256k1Error(e, "sign")
730
+ }),
731
+ recover: (signature, messageHash) => Effect46.try({
732
+ try: () => Secp256k1.recoverPublicKey(signature, messageHash),
733
+ catch: (e) => mapToSecp256k1Error(e, "recover")
734
+ }),
735
+ verify: (signature, messageHash, publicKey) => Effect46.try({
736
+ try: () => Secp256k1.verify(signature, messageHash, publicKey),
737
+ catch: (e) => mapToSecp256k1Error(e, "verify")
738
+ })
739
+ });
740
+ var SHA256Service = class extends Context.Tag("SHA256Service")() {
741
+ };
742
+ var SHA256Live = Layer.succeed(SHA256Service, {
743
+ hash: (data) => Effect46.sync(() => SHA256.hash(data))
744
+ });
745
+ var SHA256Test = Layer.succeed(SHA256Service, {
746
+ hash: (_data) => Effect46.sync(() => new Uint8Array(32))
747
+ });
748
+
749
+ // src/crypto/SHA256/hash.ts
750
+ var hash4 = (data) => Effect46.gen(function* () {
751
+ const sha256 = yield* SHA256Service;
752
+ return yield* sha256.hash(data);
753
+ });
754
+
755
+ // src/crypto/CryptoLive.ts
756
+ var CryptoLive = Layer.mergeAll(
757
+ KeccakLive,
758
+ Secp256k1Live,
759
+ SHA256Live,
760
+ Blake2Live,
761
+ Ripemd160Live,
762
+ Bls12381Live,
763
+ Ed25519Live,
764
+ P256Live,
765
+ KZGLive,
766
+ Bn254Live,
767
+ Bip39Live,
768
+ HMACLive,
769
+ EIP712Live,
770
+ ChaCha20Poly1305Live,
771
+ KeystoreLive
772
+ );
773
+ var Ed25519Test = Layer.succeed(Ed25519Service, {
774
+ sign: (_message, _secretKey) => Effect46.succeed(new Uint8Array(64)),
775
+ verify: (_signature, _message, _publicKey) => Effect46.succeed(true),
776
+ getPublicKey: (_secretKey) => Effect46.succeed(new Uint8Array(32))
777
+ });
778
+ var HDWalletService = class extends Context.Tag("HDWalletService")() {
779
+ };
780
+ var TEST_MNEMONIC2 = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
781
+ var HDWalletTest = Layer.succeed(HDWalletService, {
782
+ derive: (_node, _path) => Effect46.succeed({}),
783
+ generateMnemonic: (_strength) => Effect46.succeed(TEST_MNEMONIC2),
784
+ fromSeed: (_seed) => Effect46.succeed({}),
785
+ fromMnemonic: (_mnemonic, _passphrase) => Effect46.succeed({}),
786
+ mnemonicToSeed: (_mnemonic) => Effect46.succeed(new Uint8Array(64)),
787
+ getPrivateKey: (_node) => Effect46.succeed(new Uint8Array(32)),
788
+ getPublicKey: (_node) => Effect46.succeed(new Uint8Array(33))
789
+ });
790
+ var recover = (signature, messageHash) => Effect46.try({
791
+ try: () => Secp256k1.recoverPublicKey(signature, messageHash),
792
+ catch: (e) => mapToSecp256k1Error(e, "recover")
793
+ });
794
+ var mockSignature2 = new Uint8Array(65);
795
+ var mockPublicKey = new Uint8Array(65);
796
+ var testImpl2 = {
797
+ sign: (_messageHash, _privateKey, _options) => Effect46.succeed(mockSignature2),
798
+ recover: (_signature, _messageHash) => Effect46.succeed(mockPublicKey),
799
+ verify: (_signature, _messageHash, _publicKey) => Effect46.succeed(true)
800
+ };
801
+ var Secp256k1Test = Layer.succeed(Secp256k1Service, testImpl2);
802
+ var sign9 = (messageHash, privateKey, options) => Effect46.try({
803
+ try: () => Secp256k1.sign(messageHash, privateKey, options),
804
+ catch: (e) => mapToSecp256k1Error(e, "sign")
805
+ });
806
+ var verify9 = (signature, messageHash, publicKey) => Effect46.try({
807
+ try: () => Secp256k1.verify(signature, messageHash, publicKey),
808
+ catch: (e) => mapToSecp256k1Error(e, "verify")
809
+ });
810
+
811
+ // src/crypto/CryptoTest.ts
812
+ var CryptoTest = Layer.mergeAll(
813
+ KeccakTest,
814
+ Secp256k1Test,
815
+ SHA256Test,
816
+ Blake2Test,
817
+ Ripemd160Test,
818
+ Ed25519Test,
819
+ KZGTest,
820
+ HDWalletTest,
821
+ Bn254Test,
822
+ Bip39Test,
823
+ HMACTest,
824
+ EIP712Test,
825
+ ChaCha20Poly1305Test,
826
+ KeystoreTest
827
+ );
828
+ var ERC6492_SUFFIX = "0x6492649264926492649264926492649264926492649264926492649264926492";
829
+ var ERC6492_PARAMS = [
830
+ { type: "address", name: "factory" },
831
+ { type: "bytes", name: "factoryData" },
832
+ { type: "bytes", name: "signature" }
833
+ ];
834
+ var normalizeHex = (value) => typeof value === "string" ? value : Hex2.fromBytes(value);
835
+ var unwrapSignature = (signature) => Effect46.sync(() => {
836
+ const lower = signature.toLowerCase();
837
+ const suffix = ERC6492_SUFFIX.slice(2);
838
+ if (!lower.endsWith(suffix)) {
839
+ return null;
840
+ }
841
+ const encoded = `0x${lower.slice(2, lower.length - suffix.length)}`;
842
+ try {
843
+ const decoded = decodeParameters(
844
+ ERC6492_PARAMS,
845
+ Hex2.toBytes(encoded)
846
+ );
847
+ const [factory, factoryData, innerSignature] = decoded;
848
+ return {
849
+ factoryAddress: Address(factory),
850
+ factoryData: normalizeHex(factoryData),
851
+ signature: normalizeHex(innerSignature)
852
+ };
853
+ } catch {
854
+ return null;
855
+ }
856
+ });
857
+ var VerifyError = class _VerifyError extends Data5.TaggedError("VerifyError") {
858
+ /**
859
+ * Creates a new VerifyError.
860
+ *
861
+ * @param message - Error description
862
+ * @param options - Optional cause
863
+ */
864
+ static of(message, options) {
865
+ return new _VerifyError({ message, cause: options?.cause });
866
+ }
867
+ };
868
+ var RecoverError = class _RecoverError extends Data5.TaggedError("RecoverError") {
869
+ /**
870
+ * Creates a new RecoverError.
871
+ *
872
+ * @param message - Error description
873
+ * @param options - Optional cause
874
+ */
875
+ static of(message, options) {
876
+ return new _RecoverError({ message, cause: options?.cause });
877
+ }
878
+ };
879
+ var AddressDerivationError = class _AddressDerivationError extends Data5.TaggedError(
880
+ "AddressDerivationError"
881
+ ) {
882
+ /**
883
+ * Creates a new AddressDerivationError.
884
+ *
885
+ * @param message - Error description
886
+ * @param options - Optional cause
887
+ */
888
+ static of(message, options) {
889
+ return new _AddressDerivationError({ message, cause: options?.cause });
890
+ }
891
+ };
892
+
893
+ // src/crypto/ERC6492/verifySignature.ts
894
+ var UNIVERSAL_VALIDATOR_BYTECODE = "0x60806040523480156200001157600080fd5b50604051620007003803806200070083398101604081905262000034916200056f565b6000620000438484846200004f565b9050806000526001601ff35b600080846001600160a01b0316803b806020016040519081016040528181526000908060200190933c90507f6492649264926492649264926492649264926492649264926492649264926492620000a68462000451565b036200021f57600060608085806020019051810190620000c79190620005ce565b8651929550909350915060000362000192576000836001600160a01b031683604051620000f5919062000643565b6000604051808303816000865af19150503d806000811462000134576040519150601f19603f3d011682016040523d82523d6000602084013e62000139565b606091505b5050905080620001905760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b505b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90620001c4908b90869060040162000661565b602060405180830381865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200020891906200069d565b6001600160e01b031916149450505050506200044a565b805115620002b157604051630b135d3f60e11b808252906001600160a01b03871690631626ba7e9062000259908890889060040162000661565b602060405180830381865afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200069d565b6001600160e01b031916149150506200044a565b8251604114620003195760405162461bcd60e51b815260206004820152603a6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e677468000000000000606482015260840162000187565b620003236200046b565b506020830151604080850151855186939260009185919081106200034b576200034b620006c9565b016020015160f81c9050601b81148015906200036b57508060ff16601c14155b15620003cf5760405162461bcd60e51b815260206004820152603b6024820152600080516020620006e083398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c75650000000000606482015260840162000187565b6040805160008152602081018083528a905260ff83169181019190915260608101849052608081018390526001600160a01b038a169060019060a0016020604051602081039080840390855afa1580156200042e573d6000803e3d6000fd5b505050602060405103516001600160a01b031614955050505050505b9392505050565b60006020825110156200046357600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b03811681146200049f57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620004d5578181015183820152602001620004bb565b50506000910152565b600082601f830112620004f057600080fd5b81516001600160401b03808211156200050d576200050d620004a2565b604051601f8301601f19908116603f01168101908282118183101715620005385762000538620004a2565b816040528381528660208588010111156200055257600080fd5b62000565846020830160208901620004b8565b9695505050505050565b6000806000606084860312156200058557600080fd5b8351620005928162000489565b6020850151604086015191945092506001600160401b03811115620005b657600080fd5b620005c486828701620004de565b9150509250925092565b600080600060608486031215620005e457600080fd5b8351620005f18162000489565b60208501519093506001600160401b03808211156200060f57600080fd5b6200061d87838801620004de565b935060408601519150808211156200063457600080fd5b50620005c486828701620004de565b6000825162000657818460208701620004b8565b9190910192915050565b828152604060208201526000825180604084015262000688816060850160208701620004b8565b601f01601f1916919091016060019392505050565b600060208284031215620006b057600080fd5b81516001600160e01b0319811681146200044a57600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572";
895
+ var VALIDATOR_PARAMS = [
896
+ { type: "address", name: "signer" },
897
+ { type: "bytes32", name: "hash" },
898
+ { type: "bytes", name: "signature" }
899
+ ];
900
+ var normalizeAddress = (address) => typeof address === "string" ? address : Address.toHex(address);
901
+ var decodeRevertReason = (data) => {
902
+ if (!data.startsWith("0x08c379a0")) {
903
+ return null;
904
+ }
905
+ try {
906
+ const decoded = decodeParameters(
907
+ [{ type: "string" }],
908
+ Hex2.toBytes(`0x${data.slice(10)}`)
909
+ );
910
+ return decoded[0];
911
+ } catch {
912
+ return null;
913
+ }
914
+ };
915
+ var normalizeCallResult = (value) => typeof value === "string" ? value : Hex2.fromBytes(value);
916
+ var verifySignature = (params) => Effect46.gen(function* () {
917
+ const messageHex = params.message;
918
+ const messageBytes = yield* Effect46.try({
919
+ try: () => Hex2.toBytes(messageHex),
920
+ catch: (e) => new VerifyError({
921
+ message: `Invalid message hash: ${e instanceof Error ? e.message : String(e)}`,
922
+ cause: e
923
+ })
924
+ });
925
+ if (messageBytes.length !== 32) {
926
+ return yield* Effect46.fail(
927
+ new VerifyError({
928
+ message: `Invalid message hash length: expected 32 bytes, got ${messageBytes.length}`
929
+ })
930
+ );
931
+ }
932
+ const encodedParams = yield* Effect46.try({
933
+ try: () => encodeParameters(
934
+ VALIDATOR_PARAMS,
935
+ [
936
+ normalizeAddress(params.address),
937
+ messageHex,
938
+ params.signature
939
+ ]
940
+ ),
941
+ catch: (e) => new VerifyError({
942
+ message: `Failed to encode validation calldata: ${e instanceof Error ? e.message : String(e)}`,
943
+ cause: e
944
+ })
945
+ });
946
+ const data = `${UNIVERSAL_VALIDATOR_BYTECODE}${Hex2.fromBytes(encodedParams).slice(2)}`;
947
+ const callResult = yield* params.provider.call({ data }).pipe(
948
+ Effect46.mapError(
949
+ (e) => new VerifyError({
950
+ message: `Signature verification call failed: ${e instanceof Error ? e.message : String(e)}`,
951
+ cause: e
952
+ })
953
+ )
954
+ );
955
+ const callHex = normalizeCallResult(
956
+ callResult
957
+ ).toLowerCase();
958
+ const revertReason = decodeRevertReason(callHex);
959
+ if (revertReason) {
960
+ return yield* Effect46.fail(
961
+ new VerifyError({
962
+ message: `Signature verification reverted: ${revertReason}`
963
+ })
964
+ );
965
+ }
966
+ if (callHex === "0x01" || callHex === "0x1") {
967
+ return true;
968
+ }
969
+ if (callHex === "0x" || callHex === "0x00" || callHex === "0x0") {
970
+ return false;
971
+ }
972
+ return yield* Effect46.fail(
973
+ new VerifyError({
974
+ message: `Unexpected result from UniversalSigValidator: ${callHex}`
975
+ })
976
+ );
977
+ });
978
+ var ERC6492_SUFFIX2 = "0x6492649264926492649264926492649264926492649264926492649264926492";
979
+ var ERC6492_PARAMS2 = [
980
+ { type: "address", name: "factory" },
981
+ { type: "bytes", name: "factoryData" },
982
+ { type: "bytes", name: "signature" }
983
+ ];
984
+ var normalizeAddress2 = (address) => typeof address === "string" ? address : Address.toHex(address);
985
+ var wrapSignature = (params) => Effect46.sync(() => {
986
+ const encoded = encodeParameters(
987
+ ERC6492_PARAMS2,
988
+ [
989
+ normalizeAddress2(params.factoryAddress),
990
+ params.factoryData,
991
+ params.signature
992
+ ]
993
+ );
994
+ const encodedHex = Hex2.fromBytes(encoded);
995
+ return `${encodedHex}${ERC6492_SUFFIX2.slice(2)}`;
996
+ });
997
+ var EIP191_PREFIX = "Ethereum Signed Message:\n";
998
+ var hashMessage = (message) => Effect46.gen(function* () {
999
+ const keccak = yield* KeccakService;
1000
+ let messageBytes;
1001
+ if (typeof message === "string") {
1002
+ if (message.startsWith("0x")) {
1003
+ const hexStr = message.slice(2);
1004
+ messageBytes = new Uint8Array(hexStr.length / 2);
1005
+ for (let i = 0; i < messageBytes.length; i++) {
1006
+ messageBytes[i] = Number.parseInt(hexStr.slice(i * 2, i * 2 + 2), 16);
1007
+ }
1008
+ } else {
1009
+ messageBytes = new TextEncoder().encode(message);
1010
+ }
1011
+ } else {
1012
+ messageBytes = message;
1013
+ }
1014
+ const lenStr = String(messageBytes.length);
1015
+ const lenBytes = new TextEncoder().encode(lenStr);
1016
+ const prefixBytes = new TextEncoder().encode(EIP191_PREFIX);
1017
+ const totalLength = prefixBytes.length + lenBytes.length + messageBytes.length;
1018
+ const data = new Uint8Array(totalLength);
1019
+ data.set(prefixBytes, 0);
1020
+ data.set(lenBytes, prefixBytes.length);
1021
+ data.set(messageBytes, prefixBytes.length + lenBytes.length);
1022
+ return yield* keccak.hash(data);
1023
+ });
1024
+ var InvalidPathError = class extends Data5.TaggedError("InvalidPathError") {
1025
+ };
1026
+ var InvalidSeedError = class extends Data5.TaggedError("InvalidSeedError") {
1027
+ };
1028
+ var HardenedDerivationError = class extends Data5.TaggedError(
1029
+ "HardenedDerivationError"
1030
+ ) {
1031
+ };
1032
+ var InvalidKeyError3 = class extends Data5.TaggedError("InvalidKeyError") {
1033
+ };
1034
+
1035
+ // src/crypto/HDWallet/derive.ts
1036
+ var derive = (node, path) => Effect46.gen(function* () {
1037
+ const hdwallet = yield* HDWalletService;
1038
+ return yield* hdwallet.derive(node, path);
1039
+ });
1040
+ var generateMnemonic2 = (strength = 128) => Effect46.gen(function* () {
1041
+ const hdwallet = yield* HDWalletService;
1042
+ return yield* hdwallet.generateMnemonic(strength);
1043
+ });
1044
+ var fromSeed = (seed) => Effect46.gen(function* () {
1045
+ const hdwallet = yield* HDWalletService;
1046
+ return yield* hdwallet.fromSeed(seed);
1047
+ });
1048
+ var fromMnemonic = (mnemonic, passphrase) => Effect46.gen(function* () {
1049
+ const hdwallet = yield* HDWalletService;
1050
+ return yield* hdwallet.fromMnemonic(mnemonic, passphrase);
1051
+ });
1052
+ var mnemonicToSeed2 = (mnemonic) => Effect46.gen(function* () {
1053
+ const hdwallet = yield* HDWalletService;
1054
+ return yield* hdwallet.mnemonicToSeed(mnemonic);
1055
+ });
1056
+ var withSeed = (mnemonic, use) => Effect46.acquireRelease(
1057
+ mnemonicToSeed2(mnemonic),
1058
+ (seed) => Effect46.sync(() => seed.fill(0))
1059
+ ).pipe(Effect46.flatMap(use), Effect46.scoped);
1060
+ var getPrivateKey = (node) => Effect46.gen(function* () {
1061
+ const hdwallet = yield* HDWalletService;
1062
+ return yield* hdwallet.getPrivateKey(node);
1063
+ });
1064
+ var withPrivateKey = (node, use) => Effect46.acquireRelease(
1065
+ getPrivateKey(node),
1066
+ (key) => Effect46.sync(() => {
1067
+ if (key) {
1068
+ key.fill(0);
1069
+ }
1070
+ })
1071
+ ).pipe(
1072
+ Effect46.flatMap(
1073
+ (key) => key ? use(key) : Effect46.fail(
1074
+ new InvalidKeyError3({
1075
+ message: "HD node does not contain a private key."
1076
+ })
1077
+ )
1078
+ ),
1079
+ Effect46.scoped
1080
+ );
1081
+ var getPublicKey2 = (node) => Effect46.gen(function* () {
1082
+ const hdwallet = yield* HDWalletService;
1083
+ return yield* hdwallet.getPublicKey(node);
1084
+ });
1085
+ var ModExpService = class extends Context.Tag("ModExpService")() {
1086
+ };
1087
+ var ModExpLive = Layer.succeed(ModExpService, {
1088
+ modexp: (base, exp, modulus) => Effect46.sync(() => ModExp.modexp(base, exp, modulus)),
1089
+ modexpBytes: (baseBytes, expBytes, modBytes) => Effect46.sync(() => ModExp.modexpBytes(baseBytes, expBytes, modBytes)),
1090
+ calculateGas: (baseLen, expLen, modLen, expHead) => Effect46.sync(() => ModExp.calculateGas(baseLen, expLen, modLen, expHead))
1091
+ });
1092
+ var ModExpTest = Layer.succeed(ModExpService, {
1093
+ modexp: (_base, _exp, _modulus) => Effect46.sync(() => 0n),
1094
+ modexpBytes: (_baseBytes, _expBytes, modBytes) => Effect46.sync(() => new Uint8Array(modBytes.length)),
1095
+ calculateGas: (_baseLen, _expLen, _modLen, _expHead) => Effect46.sync(() => 200n)
1096
+ });
1097
+ var modexp = (base, exp, modulus) => Effect46.gen(function* () {
1098
+ const service = yield* ModExpService;
1099
+ return yield* service.modexp(base, exp, modulus);
1100
+ });
1101
+ var modexpBytes = (baseBytes, expBytes, modBytes) => Effect46.gen(function* () {
1102
+ const service = yield* ModExpService;
1103
+ return yield* service.modexpBytes(baseBytes, expBytes, modBytes);
1104
+ });
1105
+ var calculateGas = (baseLen, expLen, modLen, expHead) => Effect46.gen(function* () {
1106
+ const service = yield* ModExpService;
1107
+ return yield* service.calculateGas(baseLen, expLen, modLen, expHead);
1108
+ });
1109
+
1110
+ // src/crypto/Signature/constantTimeEqual.ts
1111
+ function constantTimeEqual(a, b) {
1112
+ if (a.length !== b.length) {
1113
+ return false;
1114
+ }
1115
+ let result = 0;
1116
+ for (let i = 0; i < a.length; i++) {
1117
+ result |= a[i] ^ b[i];
1118
+ }
1119
+ return result === 0;
1120
+ }
1121
+ var normalizeSignature = (signature) => {
1122
+ if (signature instanceof Uint8Array) {
1123
+ if (signature.length !== 65) {
1124
+ throw new Error(`Expected 65-byte signature, got ${signature.length}`);
1125
+ }
1126
+ const r2 = signature.slice(0, 32);
1127
+ const s2 = signature.slice(32, 64);
1128
+ const vByte = signature[64];
1129
+ const v2 = vByte !== void 0 && vByte < 27 ? vByte + 27 : vByte ?? 27;
1130
+ return { r: r2, s: s2, v: v2 };
1131
+ }
1132
+ const { r, s } = signature;
1133
+ let v;
1134
+ if (signature.v !== void 0) {
1135
+ v = signature.v < 27 ? signature.v + 27 : signature.v;
1136
+ } else if (signature.yParity !== void 0) {
1137
+ v = signature.yParity + 27;
1138
+ } else {
1139
+ throw new Error("Signature must have either v or yParity");
1140
+ }
1141
+ return { r, s, v };
1142
+ };
1143
+ var recoverAddress2 = (params) => Effect46.gen(function* () {
1144
+ const keccak = yield* KeccakService;
1145
+ const secp256k1 = yield* Secp256k1Service;
1146
+ const normalizedSig = yield* Effect46.try({
1147
+ try: () => normalizeSignature(params.signature),
1148
+ catch: (e) => RecoverError.of(`Invalid signature format: ${e}`, {
1149
+ cause: e
1150
+ })
1151
+ });
1152
+ const secp256k1Sig = {
1153
+ r: Hash(normalizedSig.r),
1154
+ s: Hash(normalizedSig.s),
1155
+ v: normalizedSig.v
1156
+ };
1157
+ const publicKey = yield* secp256k1.recover(secp256k1Sig, params.hash).pipe(
1158
+ Effect46.mapError(
1159
+ (e) => new RecoverError({
1160
+ message: `Public key recovery failed: ${e}`,
1161
+ cause: e
1162
+ })
1163
+ )
1164
+ );
1165
+ const pubKeyBytes = publicKey;
1166
+ const addressHash = yield* keccak.hash(pubKeyBytes).pipe(
1167
+ Effect46.mapError(
1168
+ (e) => new AddressDerivationError({
1169
+ message: `Address hash failed: ${e}`,
1170
+ cause: e
1171
+ })
1172
+ )
1173
+ );
1174
+ return addressHash.slice(12);
1175
+ });
1176
+ var recoverMessageAddress = (params) => Effect46.gen(function* () {
1177
+ const hash5 = yield* hashMessage(params.message);
1178
+ return yield* recoverAddress2({
1179
+ hash: hash5,
1180
+ signature: params.signature
1181
+ });
1182
+ });
1183
+ var verifyHash = (params) => Effect46.gen(function* () {
1184
+ const recoveredAddress = yield* recoverAddress2({
1185
+ hash: params.hash,
1186
+ signature: params.signature
1187
+ }).pipe(
1188
+ Effect46.mapError(
1189
+ (e) => new VerifyError({
1190
+ message: `Signature verification failed: ${e.message}`,
1191
+ cause: e
1192
+ })
1193
+ )
1194
+ );
1195
+ return constantTimeEqual(recoveredAddress, params.address);
1196
+ });
1197
+ var verifyMessage = (params) => Effect46.gen(function* () {
1198
+ const recoveredAddress = yield* recoverMessageAddress({
1199
+ message: params.message,
1200
+ signature: params.signature
1201
+ }).pipe(
1202
+ Effect46.mapError(
1203
+ (e) => new VerifyError({
1204
+ message: `Signature verification failed: ${e.message}`,
1205
+ cause: e
1206
+ })
1207
+ )
1208
+ );
1209
+ return constantTimeEqual(recoveredAddress, params.address);
1210
+ });
1211
+ var verifyTypedData2 = (params) => Effect46.gen(function* () {
1212
+ const eip712 = yield* EIP712Service;
1213
+ const hash5 = yield* eip712.hashTypedData(params.typedData);
1214
+ const recoveredAddress = yield* recoverAddress2({
1215
+ hash: hash5,
1216
+ signature: params.signature
1217
+ }).pipe(
1218
+ Effect46.mapError(
1219
+ (e) => new VerifyError({
1220
+ message: `Signature verification failed: ${e.message}`,
1221
+ cause: e
1222
+ })
1223
+ )
1224
+ );
1225
+ return constantTimeEqual(recoveredAddress, params.address);
1226
+ });
1227
+ var computeSecret = (secretKey, publicKey) => Effect46.try({
1228
+ try: () => X25519.scalarmult(secretKey, publicKey),
1229
+ catch: (e) => e
1230
+ });
1231
+ var generateKeyPair = () => Effect46.sync(() => X25519.generateKeypair());
1232
+ var getPublicKey3 = (secretKey) => Effect46.try({
1233
+ try: () => X25519.derivePublicKey(secretKey),
1234
+ catch: (e) => e
1235
+ });
1236
+ var X25519Service = class extends Context.Tag("X25519Service")() {
1237
+ };
1238
+
1239
+ // src/crypto/X25519/X25519Live.ts
1240
+ var X25519Live = Layer.succeed(X25519Service, {
1241
+ generateKeyPair,
1242
+ getPublicKey: getPublicKey3,
1243
+ computeSecret
1244
+ });
1245
+ var X25519Test = Layer.succeed(X25519Service, {
1246
+ generateKeyPair: () => Effect46.succeed({
1247
+ secretKey: new Uint8Array(32),
1248
+ publicKey: new Uint8Array(32)
1249
+ }),
1250
+ getPublicKey: (_secretKey) => Effect46.succeed(new Uint8Array(32)),
1251
+ computeSecret: (_secretKey, _publicKey) => Effect46.succeed(new Uint8Array(32))
1252
+ });
1253
+
1254
+ export { AddressDerivationError, AesGcmLive, AesGcmService, AesGcmTest, Bip39Live, Bip39Service, Bip39Test, Blake2Live, Blake2Service, Blake2Test, Bls12381Live, Bls12381Service, Bn254Error, Bn254Live, Bn254Service, Bn254Test, ChaCha20Poly1305Live, ChaCha20Poly1305Service, ChaCha20Poly1305Test, CryptoLive, CryptoTest, EIP712Live, EIP712Service, EIP712Test, Ed25519Live, Ed25519Service, Ed25519Test, HDWalletService, HDWalletTest, HMACLive, HMACService, HMACTest, HardenedDerivationError, InvalidKeyError3 as InvalidKeyError, InvalidPathError, InvalidPrivateKeyError, InvalidPublicKeyError, InvalidRecoveryIdError, InvalidSeedError, InvalidSignatureError, KZGError, KZGLive, KZGService, KZGTest, KeccakLive, KeccakService, KeccakTest, KeystoreLive, KeystoreService, KeystoreTest, ModExpLive, ModExpService, ModExpTest, P256Live, P256Service, RecoverError, Ripemd160Live, Ripemd160Service, Ripemd160Test, SHA256Live, SHA256Service, SHA256Test, Secp256k1Error, Secp256k1Live, Secp256k1Service, Secp256k1Test, VerifyError, X25519Live, X25519Service, X25519Test, decrypt as aesGcmDecrypt, encrypt as aesGcmEncrypt, generateKey as aesGcmGenerateKey, generateNonce as aesGcmGenerateNonce, generateMnemonic as bip39GenerateMnemonic, mnemonicToSeed as bip39MnemonicToSeed, hash as blake2Hash, blobToKzgCommitment, aggregate2 as bls12381Aggregate, sign2 as bls12381Sign, verify2 as bls12381Verify, decrypt2 as chaCha20Poly1305Decrypt, encrypt2 as chaCha20Poly1305Encrypt, generateKey2 as chaCha20Poly1305GenerateKey, generateNonce2 as chaCha20Poly1305GenerateNonce, computeBlobKzgProof, constantTimeEqual, getPublicKey as ed25519GetPublicKey, sign4 as ed25519Sign, verify4 as ed25519Verify, recoverAddress as eip712RecoverAddress, unwrapSignature as erc6492UnwrapSignature, verifySignature as erc6492VerifySignature, wrapSignature as erc6492WrapSignature, fromMnemonic, fromSeed, g1Add, g1Generator, g1Mul, g2Add, g2Generator, g2Mul, generateMnemonic2 as generateMnemonic, getWordCount, hashDomain, hashMessage, hashMessage as hashPersonalMessage, hashStruct, hashTypedData, derive as hdwalletDerive, getPrivateKey as hdwalletGetPrivateKey, getPublicKey2 as hdwalletGetPublicKey, withPrivateKey as hdwalletWithPrivateKey, withSeed as hdwalletWithSeed, hmacSha256, hmacSha512, hash2 as keccakHash, decrypt3 as keystoreDecrypt, encrypt3 as keystoreEncrypt, withDecryptedKey as keystoreWithDecryptedKey, mapToSecp256k1Error, mnemonicToSeed2 as mnemonicToSeed, mnemonicToSeedSync, modexp, modexpBytes, calculateGas as modexpCalculateGas, sign6 as p256Sign, verify6 as p256Verify, pairingCheck, recover, recoverAddress2 as recoverAddress, recoverMessageAddress, hash3 as ripemd160Hash, hash4 as sha256Hash, sign9 as sign, signTypedData, hashTypedData as signatureHashTypedData, validateMnemonic, verify9 as verify, verifyBlobKzgProof, verifyHash, verifyMessage, verifyTypedData, verifyTypedData2 as verifyTypedDataSignature, computeSecret as x25519ComputeSecret, generateKeyPair as x25519GenerateKeyPair, getPublicKey3 as x25519GetPublicKey };