viem 0.0.1-alpha.15 → 0.0.1-alpha.17

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 (457) hide show
  1. package/dist/chains.d.ts +1 -1
  2. package/dist/chains.js +6 -5
  3. package/dist/chains.js.map +1 -0
  4. package/dist/chains.mjs +2 -1
  5. package/dist/chains.mjs.map +1 -0
  6. package/dist/{chunk-IMYI7Z6M.js → chunk-BL2ZZ7UN.js} +14 -13
  7. package/dist/chunk-BL2ZZ7UN.js.map +1 -0
  8. package/dist/{chunk-KGXH5DYI.js → chunk-EOY65E5E.js} +36 -12
  9. package/dist/chunk-EOY65E5E.js.map +1 -0
  10. package/dist/{chunk-HTYEJEWI.js → chunk-EVOCIEHK.js} +109 -52
  11. package/dist/chunk-EVOCIEHK.js.map +1 -0
  12. package/dist/{chunk-SX7GPOCZ.mjs → chunk-HF44N2P3.mjs} +2 -1
  13. package/dist/chunk-HF44N2P3.mjs.map +1 -0
  14. package/dist/{chunk-PHAG5KUF.mjs → chunk-JNAHFK7Z.mjs} +26 -2
  15. package/dist/chunk-JNAHFK7Z.mjs.map +1 -0
  16. package/dist/{chunk-EMQSYKNY.js → chunk-KCXMY4FZ.js} +12 -11
  17. package/dist/chunk-KCXMY4FZ.js.map +1 -0
  18. package/dist/{chunk-2HENAFQN.mjs → chunk-KQI5IRRL.mjs} +3 -1
  19. package/dist/chunk-KQI5IRRL.mjs.map +1 -0
  20. package/dist/{chunk-PPDHFNFM.mjs → chunk-KWHCOWNW.mjs} +63 -6
  21. package/dist/chunk-KWHCOWNW.mjs.map +1 -0
  22. package/dist/{chunk-NYXBQHNJ.mjs → chunk-WQFS6KDQ.mjs} +2 -1
  23. package/dist/chunk-WQFS6KDQ.mjs.map +1 -0
  24. package/dist/{chunk-QMLDI5JU.js → chunk-XEGTPY6M.js} +3 -1
  25. package/dist/chunk-XEGTPY6M.js.map +1 -0
  26. package/dist/clients/index.d.ts +7 -7
  27. package/dist/clients/index.js +4 -3
  28. package/dist/clients/index.js.map +1 -0
  29. package/dist/clients/index.mjs +3 -2
  30. package/dist/clients/index.mjs.map +1 -0
  31. package/dist/{createClient-cd948138.d.ts → createClient-aadeff37.d.ts} +1 -1
  32. package/dist/{createPublicClient-989a0556.d.ts → createPublicClient-88f35518.d.ts} +2 -2
  33. package/dist/{createTestClient-81507f58.d.ts → createTestClient-fbf66ec2.d.ts} +2 -2
  34. package/dist/{createWalletClient-43f801b9.d.ts → createWalletClient-b13dabd6.d.ts} +2 -2
  35. package/dist/{eip1193-4330b722.d.ts → eip1193-3a40c941.d.ts} +9 -6
  36. package/dist/index.d.ts +47 -16
  37. package/dist/index.js +11 -6
  38. package/dist/index.js.map +1 -0
  39. package/dist/index.mjs +14 -9
  40. package/dist/index.mjs.map +1 -0
  41. package/dist/{parseGwei-f2d23de6.d.ts → parseGwei-e6f49667.d.ts} +2 -2
  42. package/dist/public.d.ts +9 -9
  43. package/dist/public.js +5 -4
  44. package/dist/public.js.map +1 -0
  45. package/dist/public.mjs +6 -5
  46. package/dist/public.mjs.map +1 -0
  47. package/dist/{rpc-b77c5aee.d.ts → rpc-858670f1.d.ts} +12 -1
  48. package/dist/{sendTransaction-7a9d241a.d.ts → sendTransaction-bd109cd4.d.ts} +3 -3
  49. package/dist/{stopImpersonatingAccount-8113150e.d.ts → stopImpersonatingAccount-6603ebdd.d.ts} +2 -2
  50. package/dist/test.d.ts +5 -5
  51. package/dist/test.js +4 -3
  52. package/dist/test.js.map +1 -0
  53. package/dist/test.mjs +3 -2
  54. package/dist/test.mjs.map +1 -0
  55. package/dist/{transactionReceipt-5d332aab.d.ts → transactionReceipt-86c1094c.d.ts} +30 -4
  56. package/dist/{transactionRequest-327eb7c2.d.ts → transactionRequest-8e970b0e.d.ts} +1 -1
  57. package/dist/utils/index.d.ts +5 -5
  58. package/dist/utils/index.js +3 -2
  59. package/dist/utils/index.js.map +1 -0
  60. package/dist/utils/index.mjs +2 -1
  61. package/dist/utils/index.mjs.map +1 -0
  62. package/dist/wallet.d.ts +7 -7
  63. package/dist/wallet.js +4 -3
  64. package/dist/wallet.js.map +1 -0
  65. package/dist/wallet.mjs +3 -2
  66. package/dist/wallet.mjs.map +1 -0
  67. package/dist/{watchAsset-0088384c.d.ts → watchAsset-7ef25553.d.ts} +3 -3
  68. package/dist/{watchPendingTransactions-670a7ca3.d.ts → watchPendingTransactions-2563071e.d.ts} +26 -11
  69. package/dist/{webSocket-9a3b0b26.d.ts → webSocket-2a77cdb3.d.ts} +2 -2
  70. package/dist/window.d.ts +2 -2
  71. package/dist/window.js +1 -1
  72. package/dist/window.js.map +1 -0
  73. package/dist/window.mjs +1 -0
  74. package/dist/window.mjs.map +1 -0
  75. package/package.json +3 -1
  76. package/src/_test/abis.ts +1225 -0
  77. package/src/_test/bench.ts +15 -0
  78. package/src/_test/constants.ts +63 -0
  79. package/src/_test/globalSetup.ts +11 -0
  80. package/src/_test/index.ts +20 -0
  81. package/src/_test/setup.ts +8 -0
  82. package/src/_test/utils.ts +112 -0
  83. package/src/actions/index.test.ts +74 -0
  84. package/src/actions/index.ts +162 -0
  85. package/src/actions/public/call.bench.ts +48 -0
  86. package/src/actions/public/call.test.ts +99 -0
  87. package/src/actions/public/call.ts +96 -0
  88. package/src/actions/public/createBlockFilter.bench.ts +11 -0
  89. package/src/actions/public/createBlockFilter.test.ts +9 -0
  90. package/src/actions/public/createBlockFilter.ts +14 -0
  91. package/src/actions/public/createEventFilter.test.ts +245 -0
  92. package/src/actions/public/createEventFilter.ts +79 -0
  93. package/src/actions/public/createPendingTransactionFilter.bench.ts +11 -0
  94. package/src/actions/public/createPendingTransactionFilter.test.ts +9 -0
  95. package/src/actions/public/createPendingTransactionFilter.ts +14 -0
  96. package/src/actions/public/deployContract.test.ts +56 -0
  97. package/src/actions/public/deployContract.ts +39 -0
  98. package/src/actions/public/estimateGas.bench.ts +46 -0
  99. package/src/actions/public/estimateGas.test.ts +92 -0
  100. package/src/actions/public/estimateGas.ts +61 -0
  101. package/src/actions/public/getBalance.test.ts +83 -0
  102. package/src/actions/public/getBalance.ts +37 -0
  103. package/src/actions/public/getBlock.bench.ts +28 -0
  104. package/src/actions/public/getBlock.test.ts +575 -0
  105. package/src/actions/public/getBlock.ts +66 -0
  106. package/src/actions/public/getBlockNumber.bench.ts +28 -0
  107. package/src/actions/public/getBlockNumber.test.ts +27 -0
  108. package/src/actions/public/getBlockNumber.ts +32 -0
  109. package/src/actions/public/getBlockTransactionCount.bench.ts +15 -0
  110. package/src/actions/public/getBlockTransactionCount.test.ts +57 -0
  111. package/src/actions/public/getBlockTransactionCount.ts +53 -0
  112. package/src/actions/public/getBytecode.test.ts +27 -0
  113. package/src/actions/public/getBytecode.ts +32 -0
  114. package/src/actions/public/getChainId.bench.ts +15 -0
  115. package/src/actions/public/getChainId.test.ts +8 -0
  116. package/src/actions/public/getChainId.ts +7 -0
  117. package/src/actions/public/getFeeHistory.bench.ts +18 -0
  118. package/src/actions/public/getFeeHistory.test.ts +137 -0
  119. package/src/actions/public/getFeeHistory.ts +44 -0
  120. package/src/actions/public/getFilterChanges.bench.ts +13 -0
  121. package/src/actions/public/getFilterChanges.test.ts +187 -0
  122. package/src/actions/public/getFilterChanges.ts +23 -0
  123. package/src/actions/public/getFilterLogs.test.ts +102 -0
  124. package/src/actions/public/getFilterLogs.ts +20 -0
  125. package/src/actions/public/getGasPrice.bench.ts +28 -0
  126. package/src/actions/public/getGasPrice.test.ts +8 -0
  127. package/src/actions/public/getGasPrice.ts +15 -0
  128. package/src/actions/public/getLogs.test.ts +105 -0
  129. package/src/actions/public/getLogs.ts +83 -0
  130. package/src/actions/public/getTransaction.bench.ts +33 -0
  131. package/src/actions/public/getTransaction.test.ts +311 -0
  132. package/src/actions/public/getTransaction.ts +96 -0
  133. package/src/actions/public/getTransactionConfirmations.test.ts +69 -0
  134. package/src/actions/public/getTransactionConfirmations.ts +39 -0
  135. package/src/actions/public/getTransactionCount.test.ts +56 -0
  136. package/src/actions/public/getTransactionCount.ts +34 -0
  137. package/src/actions/public/getTransactionReceipt.bench.ts +33 -0
  138. package/src/actions/public/getTransactionReceipt.test.ts +217 -0
  139. package/src/actions/public/getTransactionReceipt.ts +35 -0
  140. package/src/actions/public/index.test.ts +37 -0
  141. package/src/actions/public/index.ts +123 -0
  142. package/src/actions/public/simulateContract.bench.ts +31 -0
  143. package/src/actions/public/simulateContract.test.ts +238 -0
  144. package/src/actions/public/simulateContract.ts +102 -0
  145. package/src/actions/public/uninstallFilter.bench.ts +13 -0
  146. package/src/actions/public/uninstallFilter.test.ts +65 -0
  147. package/src/actions/public/uninstallFilter.ts +17 -0
  148. package/src/actions/public/waitForTransactionReceipt.test.ts +322 -0
  149. package/src/actions/public/waitForTransactionReceipt.ts +171 -0
  150. package/src/actions/public/watchBlockNumber.test.ts +166 -0
  151. package/src/actions/public/watchBlockNumber.ts +79 -0
  152. package/src/actions/public/watchBlocks.test.ts +185 -0
  153. package/src/actions/public/watchBlocks.ts +95 -0
  154. package/src/actions/public/watchPendingTransactions.test.ts +116 -0
  155. package/src/actions/public/watchPendingTransactions.ts +73 -0
  156. package/src/actions/test/dropTransaction.test.ts +34 -0
  157. package/src/actions/test/dropTransaction.ts +17 -0
  158. package/src/actions/test/getAutomine.test.ts +14 -0
  159. package/src/actions/test/getAutomine.ts +11 -0
  160. package/src/actions/test/getTxpoolContent.test.ts +45 -0
  161. package/src/actions/test/getTxpoolContent.ts +7 -0
  162. package/src/actions/test/getTxpoolStatus.test.ts +41 -0
  163. package/src/actions/test/getTxpoolStatus.ts +12 -0
  164. package/src/actions/test/impersonateAccount.test.ts +28 -0
  165. package/src/actions/test/impersonateAccount.ts +17 -0
  166. package/src/actions/test/increaseTime.test.ts +18 -0
  167. package/src/actions/test/increaseTime.ts +17 -0
  168. package/src/actions/test/index.test.ts +38 -0
  169. package/src/actions/test/index.ts +77 -0
  170. package/src/actions/test/inspectTxpool.test.ts +50 -0
  171. package/src/actions/test/inspectTxpool.ts +7 -0
  172. package/src/actions/test/mine.test.ts +20 -0
  173. package/src/actions/test/mine.ts +16 -0
  174. package/src/actions/test/removeBlockTimestampInterval.test.ts +23 -0
  175. package/src/actions/test/removeBlockTimestampInterval.ts +7 -0
  176. package/src/actions/test/reset.test.ts +19 -0
  177. package/src/actions/test/reset.ts +18 -0
  178. package/src/actions/test/revert.test.ts +39 -0
  179. package/src/actions/test/revert.ts +14 -0
  180. package/src/actions/test/sendUnsignedTransaction.test.ts +52 -0
  181. package/src/actions/test/sendUnsignedTransaction.ts +19 -0
  182. package/src/actions/test/setAutomine.test.ts +14 -0
  183. package/src/actions/test/setAutomine.ts +8 -0
  184. package/src/actions/test/setBalance.test.ts +29 -0
  185. package/src/actions/test/setBalance.ts +20 -0
  186. package/src/actions/test/setBlockGasLimit.test.ts +21 -0
  187. package/src/actions/test/setBlockGasLimit.ts +17 -0
  188. package/src/actions/test/setBlockTimestampInterval.test.ts +23 -0
  189. package/src/actions/test/setBlockTimestampInterval.ts +16 -0
  190. package/src/actions/test/setCode.test.ts +26 -0
  191. package/src/actions/test/setCode.ts +19 -0
  192. package/src/actions/test/setCoinbase.test.ts +11 -0
  193. package/src/actions/test/setCoinbase.ts +17 -0
  194. package/src/actions/test/setIntervalMining.test.ts +30 -0
  195. package/src/actions/test/setIntervalMining.ts +16 -0
  196. package/src/actions/test/setLoggingEnabled.test.ts +10 -0
  197. package/src/actions/test/setLoggingEnabled.ts +8 -0
  198. package/src/actions/test/setMinGasPrice.test.ts +22 -0
  199. package/src/actions/test/setMinGasPrice.ts +17 -0
  200. package/src/actions/test/setNextBlockBaseFeePerGas.test.ts +23 -0
  201. package/src/actions/test/setNextBlockBaseFeePerGas.ts +17 -0
  202. package/src/actions/test/setNextBlockTimestamp.test.ts +19 -0
  203. package/src/actions/test/setNextBlockTimestamp.ts +17 -0
  204. package/src/actions/test/setNonce.test.ts +28 -0
  205. package/src/actions/test/setNonce.ts +20 -0
  206. package/src/actions/test/setRpcUrl.test.ts +9 -0
  207. package/src/actions/test/setRpcUrl.ts +8 -0
  208. package/src/actions/test/setStorageAt.test.ts +36 -0
  209. package/src/actions/test/setStorageAt.ts +26 -0
  210. package/src/actions/test/snapshot.test.ts +18 -0
  211. package/src/actions/test/snapshot.ts +7 -0
  212. package/src/actions/test/stopImpersonatingAccount.test.ts +31 -0
  213. package/src/actions/test/stopImpersonatingAccount.ts +17 -0
  214. package/src/actions/wallet/addChain.test.ts +14 -0
  215. package/src/actions/wallet/addChain.ts +21 -0
  216. package/src/actions/wallet/getAccounts.test.ts +22 -0
  217. package/src/actions/wallet/getAccounts.ts +7 -0
  218. package/src/actions/wallet/getPermissions.test.ts +24 -0
  219. package/src/actions/wallet/getPermissions.ts +9 -0
  220. package/src/actions/wallet/index.test.ts +20 -0
  221. package/src/actions/wallet/index.ts +30 -0
  222. package/src/actions/wallet/requestAccounts.test.ts +13 -0
  223. package/src/actions/wallet/requestAccounts.ts +7 -0
  224. package/src/actions/wallet/requestPermissions.test.ts +26 -0
  225. package/src/actions/wallet/requestPermissions.ts +19 -0
  226. package/src/actions/wallet/sendTransaction.bench.ts +57 -0
  227. package/src/actions/wallet/sendTransaction.test.ts +440 -0
  228. package/src/actions/wallet/sendTransaction.ts +76 -0
  229. package/src/actions/wallet/signMessage.test.ts +62 -0
  230. package/src/actions/wallet/signMessage.ts +35 -0
  231. package/src/actions/wallet/switchChain.test.ts +22 -0
  232. package/src/actions/wallet/switchChain.ts +19 -0
  233. package/src/actions/wallet/watchAsset.test.ts +41 -0
  234. package/src/actions/wallet/watchAsset.ts +16 -0
  235. package/src/actions/wallet/writeContract.test.ts +54 -0
  236. package/src/actions/wallet/writeContract.ts +61 -0
  237. package/src/chains.test.ts +1134 -0
  238. package/src/chains.ts +167 -0
  239. package/src/clients/createClient.test.ts +295 -0
  240. package/src/clients/createClient.ts +81 -0
  241. package/src/clients/createPublicClient.test.ts +165 -0
  242. package/src/clients/createPublicClient.ts +49 -0
  243. package/src/clients/createTestClient.test.ts +145 -0
  244. package/src/clients/createTestClient.ts +72 -0
  245. package/src/clients/createWalletClient.test.ts +121 -0
  246. package/src/clients/createWalletClient.ts +54 -0
  247. package/src/clients/index.test.ts +19 -0
  248. package/src/clients/index.ts +31 -0
  249. package/src/clients/transports/createTransport.test.ts +58 -0
  250. package/src/clients/transports/createTransport.ts +48 -0
  251. package/src/clients/transports/custom.test.ts +98 -0
  252. package/src/clients/transports/custom.ts +34 -0
  253. package/src/clients/transports/fallback.test.ts +223 -0
  254. package/src/clients/transports/fallback.ts +48 -0
  255. package/src/clients/transports/http.test.ts +110 -0
  256. package/src/clients/transports/http.ts +51 -0
  257. package/src/clients/transports/index.test.ts +15 -0
  258. package/src/clients/transports/index.ts +17 -0
  259. package/src/clients/transports/webSocket.test.ts +164 -0
  260. package/src/clients/transports/webSocket.ts +117 -0
  261. package/src/constants.test.ts +27 -0
  262. package/src/constants.ts +18 -0
  263. package/src/errors/abi.test.ts +83 -0
  264. package/src/errors/abi.ts +238 -0
  265. package/src/errors/address.test.ts +14 -0
  266. package/src/errors/address.ts +9 -0
  267. package/src/errors/base.test.ts +72 -0
  268. package/src/errors/base.ts +57 -0
  269. package/src/errors/block.test.ts +24 -0
  270. package/src/errors/block.ts +18 -0
  271. package/src/errors/contract.ts +125 -0
  272. package/src/errors/data.ts +20 -0
  273. package/src/errors/encoding.ts +60 -0
  274. package/src/errors/index.ts +77 -0
  275. package/src/errors/log.ts +8 -0
  276. package/src/errors/request.test.ts +331 -0
  277. package/src/errors/request.ts +163 -0
  278. package/src/errors/rpc.test.ts +88 -0
  279. package/src/errors/rpc.ts +113 -0
  280. package/src/errors/transaction.test.ts +83 -0
  281. package/src/errors/transaction.ts +54 -0
  282. package/src/errors/transport.test.ts +12 -0
  283. package/src/errors/transport.ts +12 -0
  284. package/src/index.test.ts +210 -0
  285. package/src/index.ts +359 -0
  286. package/src/public.ts +80 -0
  287. package/src/test.ts +51 -0
  288. package/src/types/block.ts +71 -0
  289. package/src/types/contract.ts +327 -0
  290. package/src/types/eip1193.ts +1041 -0
  291. package/src/types/fee.ts +47 -0
  292. package/src/types/filter.ts +8 -0
  293. package/src/types/index.ts +72 -0
  294. package/src/types/log.ts +22 -0
  295. package/src/types/misc.ts +5 -0
  296. package/src/types/rpc.ts +35 -0
  297. package/src/types/transaction.ts +145 -0
  298. package/src/types/utils.ts +67 -0
  299. package/src/types/window.ts +9 -0
  300. package/src/utils/abi/decodeAbi.bench.ts +135 -0
  301. package/src/utils/abi/decodeAbi.test.ts +1615 -0
  302. package/src/utils/abi/decodeAbi.ts +296 -0
  303. package/src/utils/abi/decodeDeployData.test.ts +159 -0
  304. package/src/utils/abi/decodeDeployData.ts +41 -0
  305. package/src/utils/abi/decodeErrorResult.test.ts +130 -0
  306. package/src/utils/abi/decodeErrorResult.ts +28 -0
  307. package/src/utils/abi/decodeFunctionData.test.ts +140 -0
  308. package/src/utils/abi/decodeFunctionData.ts +29 -0
  309. package/src/utils/abi/decodeFunctionResult.test.ts +262 -0
  310. package/src/utils/abi/decodeFunctionResult.ts +53 -0
  311. package/src/utils/abi/encodeAbi.bench.ts +163 -0
  312. package/src/utils/abi/encodeAbi.test.ts +1414 -0
  313. package/src/utils/abi/encodeAbi.ts +258 -0
  314. package/src/utils/abi/encodeDeployData.test.ts +131 -0
  315. package/src/utils/abi/encodeDeployData.ts +37 -0
  316. package/src/utils/abi/encodeErrorResult.test.ts +197 -0
  317. package/src/utils/abi/encodeErrorResult.ts +40 -0
  318. package/src/utils/abi/encodeEventTopics.test.ts +348 -0
  319. package/src/utils/abi/encodeEventTopics.ts +69 -0
  320. package/src/utils/abi/encodeFunctionData.test.ts +140 -0
  321. package/src/utils/abi/encodeFunctionData.ts +38 -0
  322. package/src/utils/abi/encodeFunctionResult.test.ts +284 -0
  323. package/src/utils/abi/encodeFunctionResult.ts +39 -0
  324. package/src/utils/abi/formatAbiItemWithArgs.test.ts +291 -0
  325. package/src/utils/abi/formatAbiItemWithArgs.ts +27 -0
  326. package/src/utils/abi/formatAbiItemWithParams.test.ts +335 -0
  327. package/src/utils/abi/formatAbiItemWithParams.ts +41 -0
  328. package/src/utils/abi/getAbiItem.ts +5 -0
  329. package/src/utils/abi/index.test.ts +23 -0
  330. package/src/utils/abi/index.ts +38 -0
  331. package/src/utils/address/getAddress.bench.ts +22 -0
  332. package/src/utils/address/getAddress.test.ts +46 -0
  333. package/src/utils/address/getAddress.ts +28 -0
  334. package/src/utils/address/getContractAddress.bench.ts +20 -0
  335. package/src/utils/address/getContractAddress.test.ts +78 -0
  336. package/src/utils/address/getContractAddress.ts +59 -0
  337. package/src/utils/address/index.test.ts +17 -0
  338. package/src/utils/address/index.ts +16 -0
  339. package/src/utils/address/isAddress.test.ts +10 -0
  340. package/src/utils/address/isAddress.ts +10 -0
  341. package/src/utils/address/isAddressEqual.test.ts +55 -0
  342. package/src/utils/address/isAddressEqual.ts +6 -0
  343. package/src/utils/buildRequest.test.ts +365 -0
  344. package/src/utils/buildRequest.ts +45 -0
  345. package/src/utils/contract/extractFunctionParts.test.ts +109 -0
  346. package/src/utils/contract/extractFunctionParts.ts +27 -0
  347. package/src/utils/contract/getContractError.test.ts +97 -0
  348. package/src/utils/contract/getContractError.ts +70 -0
  349. package/src/utils/contract/index.test.ts +15 -0
  350. package/src/utils/contract/index.ts +8 -0
  351. package/src/utils/data/concat.test.ts +35 -0
  352. package/src/utils/data/concat.ts +34 -0
  353. package/src/utils/data/index.test.ts +23 -0
  354. package/src/utils/data/index.ts +13 -0
  355. package/src/utils/data/isBytes.test.ts +9 -0
  356. package/src/utils/data/isBytes.ts +7 -0
  357. package/src/utils/data/isHex.test.ts +13 -0
  358. package/src/utils/data/isHex.ts +5 -0
  359. package/src/utils/data/pad.bench.ts +39 -0
  360. package/src/utils/data/pad.test.ts +367 -0
  361. package/src/utils/data/pad.ts +53 -0
  362. package/src/utils/data/size.test.ts +18 -0
  363. package/src/utils/data/size.ts +13 -0
  364. package/src/utils/data/slice.test.ts +203 -0
  365. package/src/utils/data/slice.ts +60 -0
  366. package/src/utils/data/trim.bench.ts +50 -0
  367. package/src/utils/data/trim.test.ts +175 -0
  368. package/src/utils/data/trim.ts +33 -0
  369. package/src/utils/encoding/decodeBytes.bench.ts +40 -0
  370. package/src/utils/encoding/decodeBytes.test.ts +144 -0
  371. package/src/utils/encoding/decodeBytes.ts +63 -0
  372. package/src/utils/encoding/decodeHex.bench.ts +24 -0
  373. package/src/utils/encoding/decodeHex.test.ts +167 -0
  374. package/src/utils/encoding/decodeHex.ts +76 -0
  375. package/src/utils/encoding/decodeRlp.bench.ts +34 -0
  376. package/src/utils/encoding/decodeRlp.test.ts +350 -0
  377. package/src/utils/encoding/decodeRlp.ts +121 -0
  378. package/src/utils/encoding/encodeBytes.bench.ts +41 -0
  379. package/src/utils/encoding/encodeBytes.test.ts +676 -0
  380. package/src/utils/encoding/encodeBytes.ts +59 -0
  381. package/src/utils/encoding/encodeHex.bench.ts +60 -0
  382. package/src/utils/encoding/encodeHex.test.ts +232 -0
  383. package/src/utils/encoding/encodeHex.ts +104 -0
  384. package/src/utils/encoding/encodeRlp.bench.ts +54 -0
  385. package/src/utils/encoding/encodeRlp.test.ts +254 -0
  386. package/src/utils/encoding/encodeRlp.ts +48 -0
  387. package/src/utils/encoding/index.test.ts +32 -0
  388. package/src/utils/encoding/index.ts +36 -0
  389. package/src/utils/formatters/block.bench.ts +51 -0
  390. package/src/utils/formatters/block.test.ts +115 -0
  391. package/src/utils/formatters/block.ts +36 -0
  392. package/src/utils/formatters/extract.test.ts +14 -0
  393. package/src/utils/formatters/extract.ts +18 -0
  394. package/src/utils/formatters/feeHistory.test.ts +66 -0
  395. package/src/utils/formatters/feeHistory.ts +12 -0
  396. package/src/utils/formatters/format.test.ts +93 -0
  397. package/src/utils/formatters/format.ts +53 -0
  398. package/src/utils/formatters/index.test.ts +17 -0
  399. package/src/utils/formatters/index.ts +24 -0
  400. package/src/utils/formatters/log.test.ts +79 -0
  401. package/src/utils/formatters/log.ts +12 -0
  402. package/src/utils/formatters/transaction.test.ts +271 -0
  403. package/src/utils/formatters/transaction.ts +51 -0
  404. package/src/utils/formatters/transactionReceipt.bench.ts +73 -0
  405. package/src/utils/formatters/transactionReceipt.test.ts +151 -0
  406. package/src/utils/formatters/transactionReceipt.ts +54 -0
  407. package/src/utils/formatters/transactionRequest.bench.ts +29 -0
  408. package/src/utils/formatters/transactionRequest.test.ts +237 -0
  409. package/src/utils/formatters/transactionRequest.ts +47 -0
  410. package/src/utils/hash/getEventSignature.test.ts +61 -0
  411. package/src/utils/hash/getEventSignature.ts +4 -0
  412. package/src/utils/hash/getFunctionSignature.test.ts +22 -0
  413. package/src/utils/hash/getFunctionSignature.ts +5 -0
  414. package/src/utils/hash/hashFunction.test.ts +65 -0
  415. package/src/utils/hash/hashFunction.ts +12 -0
  416. package/src/utils/hash/index.test.ts +13 -0
  417. package/src/utils/hash/index.ts +5 -0
  418. package/src/utils/hash/keccak256.test.ts +59 -0
  419. package/src/utils/hash/keccak256.ts +23 -0
  420. package/src/utils/index.test.ts +87 -0
  421. package/src/utils/index.ts +126 -0
  422. package/src/utils/observe.test.ts +176 -0
  423. package/src/utils/observe.ts +66 -0
  424. package/src/utils/poll.test.ts +127 -0
  425. package/src/utils/poll.ts +42 -0
  426. package/src/utils/promise/index.test.ts +14 -0
  427. package/src/utils/promise/index.ts +3 -0
  428. package/src/utils/promise/withCache.test.ts +97 -0
  429. package/src/utils/promise/withCache.ts +73 -0
  430. package/src/utils/promise/withRetry.test.ts +231 -0
  431. package/src/utils/promise/withRetry.ts +61 -0
  432. package/src/utils/promise/withTimeout.test.ts +37 -0
  433. package/src/utils/promise/withTimeout.ts +39 -0
  434. package/src/utils/rpc.test.ts +992 -0
  435. package/src/utils/rpc.ts +292 -0
  436. package/src/utils/stringify.test.ts +13 -0
  437. package/src/utils/stringify.ts +5 -0
  438. package/src/utils/uid.ts +14 -0
  439. package/src/utils/unit/formatEther.test.ts +75 -0
  440. package/src/utils/unit/formatEther.ts +6 -0
  441. package/src/utils/unit/formatGwei.test.ts +32 -0
  442. package/src/utils/unit/formatGwei.ts +6 -0
  443. package/src/utils/unit/formatUnit.bench.ts +26 -0
  444. package/src/utils/unit/formatUnit.test.ts +40 -0
  445. package/src/utils/unit/formatUnit.ts +16 -0
  446. package/src/utils/unit/index.test.ts +16 -0
  447. package/src/utils/unit/index.ts +6 -0
  448. package/src/utils/unit/parseEther.test.ts +126 -0
  449. package/src/utils/unit/parseEther.ts +6 -0
  450. package/src/utils/unit/parseGwei.test.ts +50 -0
  451. package/src/utils/unit/parseGwei.ts +6 -0
  452. package/src/utils/unit/parseUnit.bench.ts +26 -0
  453. package/src/utils/unit/parseUnit.test.ts +54 -0
  454. package/src/utils/unit/parseUnit.ts +27 -0
  455. package/src/utils/wait.ts +3 -0
  456. package/src/wallet.ts +23 -0
  457. package/src/window.ts +1 -0
@@ -2,13 +2,14 @@ import {
2
2
  BaseError,
3
3
  InvalidGasArgumentsError,
4
4
  checksumAddress,
5
+ encodeFunctionData,
5
6
  encodeHex,
6
7
  extract,
7
8
  format,
8
9
  formatTransactionRequest,
9
10
  getAddress,
10
11
  numberToHex
11
- } from "./chunk-2HENAFQN.mjs";
12
+ } from "./chunk-KQI5IRRL.mjs";
12
13
 
13
14
  // src/actions/wallet/addChain.ts
14
15
  async function addChain(client, chain) {
@@ -139,6 +140,27 @@ async function watchAsset(client, params) {
139
140
  return added;
140
141
  }
141
142
 
143
+ // src/actions/wallet/writeContract.ts
144
+ async function writeContract(client, {
145
+ abi,
146
+ address,
147
+ args,
148
+ functionName,
149
+ ...request
150
+ }) {
151
+ const data = encodeFunctionData({
152
+ abi,
153
+ args,
154
+ functionName
155
+ });
156
+ const hash = await sendTransaction(client, {
157
+ data,
158
+ to: address,
159
+ ...request
160
+ });
161
+ return hash;
162
+ }
163
+
142
164
  export {
143
165
  addChain,
144
166
  getAccounts,
@@ -148,5 +170,7 @@ export {
148
170
  sendTransaction,
149
171
  signMessage,
150
172
  switchChain,
151
- watchAsset
173
+ watchAsset,
174
+ writeContract
152
175
  };
176
+ //# sourceMappingURL=chunk-JNAHFK7Z.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/actions/wallet/addChain.ts","../src/actions/wallet/getAccounts.ts","../src/actions/wallet/getPermissions.ts","../src/actions/wallet/requestAccounts.ts","../src/actions/wallet/requestPermissions.ts","../src/actions/wallet/sendTransaction.ts","../src/actions/wallet/signMessage.ts","../src/actions/wallet/switchChain.ts","../src/actions/wallet/watchAsset.ts","../src/actions/wallet/writeContract.ts"],"sourcesContent":["import type { Chain } from '../../chains'\nimport type { WalletClient } from '../../clients'\nimport { numberToHex } from '../../utils'\n\nexport async function addChain(client: WalletClient, chain: Chain) {\n const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain\n await client.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n chainName: name,\n nativeCurrency,\n rpcUrls: rpcUrls.default.http,\n blockExplorerUrls: blockExplorers\n ? Object.values(blockExplorers).map(({ url }) => url)\n : undefined,\n },\n ],\n })\n}\n","import type { WalletClient } from '../../clients'\nimport { checksumAddress } from '../../utils/address'\n\nexport async function getAccounts(client: WalletClient) {\n const addresses = await client.request({ method: 'eth_accounts' })\n return addresses.map((address) => checksumAddress(address))\n}\n","import type { WalletClient } from '../../clients'\nimport type { WalletPermission } from '../../types/eip1193'\n\nexport type GetPermissionsResponse = WalletPermission[]\n\nexport async function getPermissions(client: WalletClient) {\n const permissions = await client.request({ method: 'wallet_getPermissions' })\n return permissions\n}\n","import type { WalletClient } from '../../clients'\nimport { getAddress } from '../../utils'\n\nexport async function requestAccounts(client: WalletClient) {\n const addresses = await client.request({ method: 'eth_requestAccounts' })\n return addresses.map((address) => getAddress(address))\n}\n","import type { WalletClient } from '../../clients'\nimport type { WalletPermission } from '../../types/eip1193'\n\nexport type RequestPermissionsArgs = {\n eth_accounts: Record<string, any>\n} & {\n [key: string]: Record<string, any>\n}\nexport type RequestPermissionsResponse = WalletPermission[]\n\nexport async function requestPermissions(\n client: WalletClient,\n permissions: RequestPermissionsArgs,\n) {\n return client.request({\n method: 'wallet_requestPermissions',\n params: [permissions],\n })\n}\n","import type { Chain, Formatter } from '../../chains'\nimport type { WalletClient } from '../../clients'\nimport { InvalidGasArgumentsError } from '../../errors'\nimport type {\n Hash,\n MergeIntersectionProperties,\n TransactionRequest,\n} from '../../types'\nimport type { Formatted, TransactionRequestFormatter } from '../../utils'\nimport { extract, format, formatTransactionRequest } from '../../utils'\n\nexport type FormattedTransactionRequest<\n TFormatter extends Formatter | undefined = Formatter,\n> = MergeIntersectionProperties<\n Formatted<TFormatter, TransactionRequest, true>,\n TransactionRequest\n>\n\nexport type SendTransactionArgs<TChain extends Chain = Chain> =\n FormattedTransactionRequest<TransactionRequestFormatter<TChain>> & {\n chain?: TChain\n }\n\nexport type SendTransactionResponse = Hash\n\nexport async function sendTransaction<TChain extends Chain>(\n client: WalletClient,\n {\n chain,\n from,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest\n }: SendTransactionArgs<TChain>,\n): Promise<SendTransactionResponse> {\n if (\n maxFeePerGas !== undefined &&\n maxPriorityFeePerGas !== undefined &&\n maxFeePerGas < maxPriorityFeePerGas\n )\n throw new InvalidGasArgumentsError()\n\n const formatter = chain?.formatters?.transactionRequest\n const request_ = format(\n {\n from,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { formatter }),\n } as TransactionRequest,\n {\n formatter: formatter || formatTransactionRequest,\n },\n )\n\n const hash = await client.request({\n method: 'eth_sendTransaction',\n params: [request_],\n })\n return hash\n}\n","import type { WalletClient } from '../../clients'\nimport { BaseError } from '../../errors'\nimport type { Address, ByteArray, Hex } from '../../types'\nimport { encodeHex } from '../../utils'\n\nexport type SignMessageArgs = {\n from: Address\n data: Hex | ByteArray\n}\n\nexport type SignMessageResponse = Hex\n\nexport async function signMessage(\n client: WalletClient,\n { from, data: data_ }: SignMessageArgs,\n): Promise<SignMessageResponse> {\n let data\n if (typeof data_ === 'string') {\n if (!data_.startsWith('0x'))\n throw new BaseError(\n `data (\"${data_}\") must be a hex value. Encode it first to a hex with the \\`encodeHex\\` util.`,\n {\n docsPath: '/TODO',\n },\n )\n data = data_\n } else {\n data = encodeHex(data_)\n }\n const signed = await client.request({\n method: 'personal_sign',\n params: [data, from],\n })\n return signed\n}\n","import type { Chain } from '../../chains'\nimport type { WalletClient } from '../../clients'\nimport { numberToHex } from '../../utils'\n\nexport type SwitchChainArgs = { id: Chain['id'] }\n\nexport async function switchChain(\n client: WalletClient,\n { id }: SwitchChainArgs,\n) {\n await client.request({\n method: 'wallet_switchEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n },\n ],\n })\n}\n","import type { WalletClient } from '../../clients'\nimport type { WatchAssetParams } from '../../types/eip1193'\n\nexport type WatchAssetArgs = WatchAssetParams\nexport type WatchAssetResponse = boolean\n\nexport async function watchAsset(\n client: WalletClient,\n params: WatchAssetParams,\n): Promise<WatchAssetResponse> {\n const added = await client.request({\n method: 'wallet_watchAsset',\n params: [params],\n })\n return added\n}\n","import { Abi } from 'abitype'\n\nimport type { Chain, Formatter } from '../../chains'\nimport type { WalletClient } from '../../clients'\nimport type {\n Address,\n ExtractArgsFromAbi,\n ExtractFunctionNameFromAbi,\n GetValue,\n} from '../../types'\nimport { EncodeFunctionDataArgs, encodeFunctionData } from '../../utils'\nimport {\n FormattedTransactionRequest,\n sendTransaction,\n SendTransactionArgs,\n SendTransactionResponse,\n} from './sendTransaction'\n\nexport type FormattedWriteContract<\n TFormatter extends Formatter | undefined = Formatter,\n> = FormattedTransactionRequest<TFormatter>\n\nexport type WriteContractArgs<\n TChain extends Chain = Chain,\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = any,\n> = Omit<SendTransactionArgs<TChain>, 'to' | 'data' | 'value'> & {\n address: Address\n abi: TAbi\n functionName: ExtractFunctionNameFromAbi<TAbi, TFunctionName>\n value?: GetValue<TAbi, TFunctionName, SendTransactionArgs<TChain>['value']>\n} & ExtractArgsFromAbi<TAbi, TFunctionName>\n\nexport type WriteContractResponse = SendTransactionResponse\n\nexport async function writeContract<\n TChain extends Chain,\n TAbi extends Abi = Abi,\n TFunctionName extends string = any,\n>(\n client: WalletClient,\n {\n abi,\n address,\n args,\n functionName,\n ...request\n }: WriteContractArgs<TChain, TAbi, TFunctionName>,\n): Promise<WriteContractResponse> {\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n } as unknown as EncodeFunctionDataArgs<TAbi, TFunctionName>)\n const hash = await sendTransaction(client, {\n data,\n to: address,\n ...request,\n } as unknown as SendTransactionArgs<TChain>)\n return hash\n}\n"],"mappings":"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","names":[]}
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkQMLDI5JUjs = require('./chunk-QMLDI5JU.js');
6
+ var _chunkXEGTPY6Mjs = require('./chunk-XEGTPY6M.js');
7
7
 
8
8
  // src/clients/transports/createTransport.ts
9
9
  function createTransport(config, value) {
@@ -60,13 +60,13 @@ function http(url, { key = "http", name = "HTTP JSON-RPC" } = {}) {
60
60
  return ({ chain }) => {
61
61
  const url_ = url || _optionalChain([chain, 'optionalAccess', _ => _.rpcUrls, 'access', _2 => _2.default, 'access', _3 => _3.http, 'access', _4 => _4[0]]);
62
62
  if (!url_)
63
- throw new (0, _chunkQMLDI5JUjs.UrlRequiredError)();
63
+ throw new (0, _chunkXEGTPY6Mjs.UrlRequiredError)();
64
64
  return createTransport(
65
65
  {
66
66
  key,
67
67
  name,
68
68
  async request({ method, params }) {
69
- const { result } = await _chunkQMLDI5JUjs.rpc.http(url_, {
69
+ const { result } = await _chunkXEGTPY6Mjs.rpc.http(url_, {
70
70
  body: {
71
71
  method,
72
72
  params
@@ -91,14 +91,14 @@ function webSocket(url, {
91
91
  return ({ chain }) => {
92
92
  const url_ = url || _optionalChain([chain, 'optionalAccess', _5 => _5.rpcUrls, 'access', _6 => _6.default, 'access', _7 => _7.webSocket, 'optionalAccess', _8 => _8[0]]);
93
93
  if (!url_)
94
- throw new (0, _chunkQMLDI5JUjs.UrlRequiredError)();
94
+ throw new (0, _chunkXEGTPY6Mjs.UrlRequiredError)();
95
95
  return createTransport(
96
96
  {
97
97
  key,
98
98
  name,
99
99
  async request({ method, params }) {
100
- const socket = await _chunkQMLDI5JUjs.getSocket.call(void 0, url_);
101
- const { result } = await _chunkQMLDI5JUjs.rpc.webSocketAsync(socket, {
100
+ const socket = await _chunkXEGTPY6Mjs.getSocket.call(void 0, url_);
101
+ const { result } = await _chunkXEGTPY6Mjs.rpc.webSocketAsync(socket, {
102
102
  body: { method, params }
103
103
  });
104
104
  return result;
@@ -107,12 +107,12 @@ function webSocket(url, {
107
107
  },
108
108
  {
109
109
  getSocket() {
110
- return _chunkQMLDI5JUjs.getSocket.call(void 0, url_);
110
+ return _chunkXEGTPY6Mjs.getSocket.call(void 0, url_);
111
111
  },
112
112
  async subscribe({ params, onData, onError }) {
113
- const socket = await _chunkQMLDI5JUjs.getSocket.call(void 0, url_);
113
+ const socket = await _chunkXEGTPY6Mjs.getSocket.call(void 0, url_);
114
114
  const { result: subscriptionId } = await new Promise(
115
- (resolve, reject) => _chunkQMLDI5JUjs.rpc.webSocket(socket, {
115
+ (resolve, reject) => _chunkXEGTPY6Mjs.rpc.webSocket(socket, {
116
116
  body: {
117
117
  method: "eth_subscribe",
118
118
  params
@@ -134,7 +134,7 @@ function webSocket(url, {
134
134
  subscriptionId,
135
135
  async unsubscribe() {
136
136
  return new Promise(
137
- (resolve, reject) => _chunkQMLDI5JUjs.rpc.webSocket(socket, {
137
+ (resolve, reject) => _chunkXEGTPY6Mjs.rpc.webSocket(socket, {
138
138
  body: {
139
139
  method: "eth_unsubscribe",
140
140
  params: [subscriptionId]
@@ -181,7 +181,7 @@ function createClient({
181
181
  key,
182
182
  name,
183
183
  pollingInterval,
184
- request: _chunkQMLDI5JUjs.buildRequest.call(void 0, config.request),
184
+ request: _chunkXEGTPY6Mjs.buildRequest.call(void 0, config.request),
185
185
  transport: { ...config, ...value },
186
186
  type,
187
187
  uid: uid()
@@ -256,3 +256,4 @@ function createWalletClient({
256
256
 
257
257
 
258
258
  exports.createTransport = createTransport; exports.custom = custom; exports.fallback = fallback; exports.http = http; exports.webSocket = webSocket; exports.createClient = createClient; exports.createPublicClient = createPublicClient; exports.createTestClient = createTestClient; exports.createWalletClient = createWalletClient;
259
+ //# sourceMappingURL=chunk-KCXMY4FZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/clients/transports/createTransport.ts","../src/clients/transports/custom.ts","../src/clients/transports/fallback.ts","../src/clients/transports/http.ts","../src/clients/transports/webSocket.ts","../src/utils/uid.ts","../src/clients/createClient.ts","../src/clients/createPublicClient.ts","../src/clients/createTestClient.ts","../src/clients/createWalletClient.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Chain } from '../../chains'\nimport type { Requests } from '../../types/eip1193'\n\nexport type BaseRpcRequests = {\n request(...args: any): Promise<any>\n}\n\nexport type TransportConfig<\n TType extends string = string,\n TRequests extends BaseRpcRequests['request'] = Requests['request'],\n> = {\n /** The name of the transport. */\n name: string\n /** The key of the transport. */\n key: string\n /** The JSON-RPC request function that matches the EIP-1193 request spec. */\n request: TRequests\n /** The type of the transport. */\n type: TType\n}\n\nexport type Transport<\n TType extends string = string,\n TRpcAttributes = Record<string, any>,\n> = <TChain extends Chain = Chain>({\n chain,\n}: {\n chain?: TChain\n}) => {\n config: TransportConfig<TType>\n value?: TRpcAttributes\n}\n\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport<\n TType extends string = string,\n TRpcAttributes = any,\n>(\n config: TransportConfig<TType>,\n value?: TRpcAttributes,\n): ReturnType<Transport<TType, TRpcAttributes>> {\n return {\n config,\n value,\n }\n}\n","import type {\n BaseRpcRequests,\n Transport,\n TransportConfig,\n} from './createTransport'\nimport { createTransport } from './createTransport'\n\ntype EthereumProvider = { request: BaseRpcRequests['request'] }\n\nexport type CustomTransportConfig = {\n /** The key of the transport. */\n key?: TransportConfig['key']\n /** The name of the transport. */\n name?: TransportConfig['name']\n}\n\nexport type CustomTransport = Transport<'custom', EthereumProvider['request']>\n\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom<TProvider extends EthereumProvider>(\n /** An Ethereum provider with an EIP-1193 \"request\" attribute. */\n provider: TProvider,\n { key = 'custom', name = 'Custom Provider' }: CustomTransportConfig = {},\n): CustomTransport {\n return () =>\n createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n type: 'custom',\n })\n}\n","import type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\nexport type FallbackTransportConfig = {\n /** The key of the Fallback transport. */\n key?: TransportConfig['key']\n /** The name of the Fallback transport. */\n name?: TransportConfig['name']\n}\n\nexport type FallbackTransport = Transport<\n 'fallback',\n { transports: Transport[] }\n>\n\nexport function fallback(\n transports: Transport[],\n { key = 'fallback', name = 'Fallback' }: FallbackTransportConfig = {},\n): FallbackTransport {\n return ({ chain }) =>\n createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i: number = 0): Promise<any> => {\n const transport = transports[i]({ chain })\n try {\n return await transport.config.request({\n method,\n params,\n } as any)\n } catch (err) {\n if (i < transports.length - 1) return fetch(i + 1)\n throw err\n }\n }\n return fetch()\n },\n type: 'fallback',\n },\n {\n transports: transports.map(\n (fn) => fn({ chain }) as unknown as Transport,\n ),\n },\n )\n}\n","import { UrlRequiredError } from '../../errors'\nimport { rpc } from '../../utils/rpc'\nimport type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\nexport type HttpTransportConfig = {\n /** The key of the HTTP transport. */\n key?: TransportConfig['key']\n /** The name of the HTTP transport. */\n name?: TransportConfig['name']\n}\n\nexport type HttpTransport = Transport<\n 'http',\n {\n url?: string\n }\n>\n\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string,\n { key = 'http', name = 'HTTP JSON-RPC' }: HttpTransportConfig = {},\n): HttpTransport {\n return ({ chain }) => {\n const url_ = url || chain?.rpcUrls.default.http[0]\n if (!url_) throw new UrlRequiredError()\n return createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const { result } = await rpc.http(url_, {\n body: {\n method,\n params,\n },\n })\n return result\n },\n type: 'http',\n },\n {\n url,\n },\n )\n }\n}\n","import { UrlRequiredError } from '../../errors'\nimport type { Hash } from '../../types'\nimport type { RpcResponse } from '../../utils/rpc'\nimport { getSocket, rpc } from '../../utils/rpc'\nimport type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\ntype WebSocketTransportSubscribeArgs = {\n onData: (data: RpcResponse) => void\n onError?: (error: any) => void\n}\n\ntype WebSocketTransportSubscribeResponse = {\n subscriptionId: Hash\n unsubscribe: () => Promise<RpcResponse<boolean>>\n}\n\ntype WebSocketTransportSubscribe = {\n subscribe(\n args: WebSocketTransportSubscribeArgs & {\n /**\n * @description Add information about compiled contracts\n * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult\n */\n params: ['newHeads']\n },\n ): Promise<WebSocketTransportSubscribeResponse>\n}\n\nexport type WebSocketTransportConfig = {\n /** The key of the WebSocket transport. */\n key?: TransportConfig['key']\n /** The name of the WebSocket transport. */\n name?: TransportConfig['name']\n}\n\nexport type WebSocketTransport = Transport<\n 'webSocket',\n {\n getSocket(): Promise<WebSocket>\n subscribe: WebSocketTransportSubscribe['subscribe']\n }\n>\n\n/**\n * @description Creates a WebSocket transport that connects to a JSON-RPC API.\n */\nexport function webSocket(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string,\n {\n key = 'webSocket',\n name = 'WebSocket JSON-RPC',\n }: WebSocketTransportConfig = {},\n): WebSocketTransport {\n return ({ chain }) => {\n const url_ = url || chain?.rpcUrls.default.webSocket?.[0]\n if (!url_) throw new UrlRequiredError()\n return createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const socket = await getSocket(url_)\n const { result } = await rpc.webSocketAsync(socket, {\n body: { method, params },\n })\n return result\n },\n type: 'webSocket',\n },\n {\n getSocket() {\n return getSocket(url_)\n },\n async subscribe({ params, onData, onError }: any) {\n const socket = await getSocket(url_)\n const { result: subscriptionId } = await new Promise<any>(\n (resolve, reject) =>\n rpc.webSocket(socket, {\n body: {\n method: 'eth_subscribe',\n params,\n },\n onData: (data) => {\n if (typeof data.id === 'number') {\n resolve(data)\n return\n }\n onData(data)\n },\n onError: (error) => {\n reject(error)\n onError?.(error)\n },\n }),\n )\n return {\n subscriptionId,\n async unsubscribe() {\n return new Promise<any>((resolve, reject) =>\n rpc.webSocket(socket, {\n body: {\n method: 'eth_unsubscribe',\n params: [subscriptionId],\n },\n onData: resolve,\n onError: reject,\n }),\n )\n },\n }\n },\n },\n )\n }\n}\n","let size = 256\nlet index = size\nlet buffer: string\n\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = ''\n index = 0\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1)\n }\n }\n return buffer.substring(index, index++ + length)\n}\n","import type { Chain } from '../chains'\nimport type { Requests } from '../types/eip1193'\nimport { buildRequest } from '../utils/buildRequest'\nimport { uid } from '../utils/uid'\nimport type { BaseRpcRequests, Transport } from './transports/createTransport'\n\nexport type Client<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TRequests extends BaseRpcRequests = Requests,\n> = {\n /** Chain for the client. */\n chain?: TChain\n /** A key for the client. */\n key: string\n /** A name for the client. */\n name: string\n /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n pollingInterval: number\n /** Request function wrapped with friendly error handling */\n request: TRequests['request']\n /** The RPC transport (http, webSocket, custom, etc) */\n transport: ReturnType<TTransport>['config'] & ReturnType<TTransport>['value']\n /** The type of client. */\n type: string\n /** A unique ID for the client. */\n uid: string\n}\n\nexport type ClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TRequests extends BaseRpcRequests = Requests,\n> = Partial<\n Pick<\n Client<TTransport, TChain, TRequests>,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'type'\n >\n> & {\n transport: TTransport\n}\n\n/**\n * @description Creates a base RPC client with the given transport.\n *\n * - Intended to be used as a base for other RPC clients.\n * - Has access to _all_ EIP-1474 RPC methods.\n *\n * @example\n * import { mainnet } from 'viem/chains'\n * import { createClient, http } from 'viem/clients'\n * const client = createClient(http({ chain: mainnet }))\n */\nexport function createClient<\n TTransport extends Transport,\n TChain extends Chain,\n TRequests extends BaseRpcRequests,\n>({\n chain,\n key = 'base',\n name = 'Base Client',\n pollingInterval = 4_000,\n transport,\n type = 'base',\n}: ClientConfig<TTransport, TChain, TRequests>): Client<\n TTransport,\n TChain,\n TRequests\n> {\n const { config, value } = transport({ chain })\n return {\n chain,\n key,\n name,\n pollingInterval,\n request: buildRequest(config.request),\n transport: { ...config, ...value },\n type,\n uid: uid(),\n }\n}\n","import type { Chain } from '../chains'\nimport type { PublicRequests } from '../types/eip1193'\nimport type { Transport } from './transports/createTransport'\nimport type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\n\nexport type PublicClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n> = Pick<\n ClientConfig<TTransport, TChain>,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'\n>\n\nexport type PublicClient<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n> = Client<TTransport, TChain, PublicRequests>\n\n/**\n * @description Creates a public client with a given transport.\n *\n * - Only has access to \"public\" EIP-1474 RPC methods (ie. `eth_blockNumber`, etc).\n *\n * @example\n * import { mainnet } from 'viem/chains'\n * import { createPublicClient, http } from 'viem/clients'\n * const client = createPublicClient(http({ chain: mainnet }))\n */\nexport function createPublicClient<\n TTransport extends Transport,\n TChain extends Chain,\n>({\n chain,\n key = 'public',\n name = 'Public Client',\n transport,\n pollingInterval,\n}: PublicClientConfig<TTransport, TChain>): PublicClient<TTransport, TChain> {\n chain\n return createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport,\n type: 'publicClient',\n })\n}\n","import type { TestRequests } from '../types/eip1193'\nimport type { Transport } from './transports/createTransport'\nimport type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\nimport type { Chain } from '../chains'\n\ntype TestClientModes = 'anvil' | 'hardhat'\n\nexport type TestClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TMode extends TestClientModes = TestClientModes,\n> = {\n chain?: ClientConfig<TTransport, TChain>['chain']\n /** The key of the client. */\n key?: ClientConfig['key']\n /** Mode of the test client. Available: \"anvil\" | \"hardhat\" */\n mode: TMode\n /** The name of the client. */\n name?: ClientConfig['name']\n /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n pollingInterval?: ClientConfig['pollingInterval']\n transport: ClientConfig<TTransport, TChain>['transport']\n}\n\nexport type TestClient<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n TMode extends TestClientModes = TestClientModes,\n> = Client<TTransport, TChain, TestRequests<TMode>> & {\n mode: TMode\n}\n\n/**\n * @description Creates a test client with a given transport.\n *\n * - Only has access to \"test\" RPC methods (ie. `anvil_setBalance`,\n * `evm_mine`, etc).\n *\n * @example\n * import { createTestClient, http } from 'viem'\n * import { local } from 'viem/chains'\n * const client = createTestClient({ chain: local, mode: 'anvil', transport: http() })\n */\nexport function createTestClient<\n TTransport extends Transport,\n TChain extends Chain,\n TMode extends TestClientModes,\n>({\n chain,\n key = 'test',\n name = 'Test Client',\n mode,\n pollingInterval,\n transport,\n}: TestClientConfig<TTransport, TChain, TMode>): TestClient<\n TTransport,\n TChain,\n TMode\n> {\n return {\n ...createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport,\n type: 'testClient',\n }),\n mode,\n }\n}\n","import type { SignableRequests, WalletRequests } from '../types/eip1193'\nimport type { Transport } from './transports/createTransport'\nimport type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\nimport type { Chain } from '../chains'\n\nexport type WalletClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n> = {\n chain?: ClientConfig<TTransport, TChain>['chain']\n /** The key of the Wallet Client. */\n key?: ClientConfig['key']\n /** The name of the Wallet Client. */\n name?: ClientConfig['name']\n /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n pollingInterval?: ClientConfig['pollingInterval']\n transport: ClientConfig<TTransport, TChain>['transport']\n}\n\nexport type WalletClient<\n TTransport extends Transport = Transport,\n TChain extends Chain = Chain,\n> = Client<TTransport, TChain, SignableRequests & WalletRequests>\n\n/**\n * @description Creates a wallet client with a given transport.\n *\n * - Only has access to \"wallet\" & \"signable\" EIP-1474 RPC methods\n * (ie. `eth_sendTransaction`, `eth_requestAccounts`, etc).\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * const client = createWalletClient(\n * custom(window.ethereum)\n * )\n */\nexport function createWalletClient<\n TTransport extends Transport,\n TChain extends Chain,\n>({\n transport,\n key = 'wallet',\n name = 'Wallet Client',\n pollingInterval,\n}: WalletClientConfig<TTransport, TChain>): WalletClient<TTransport, TChain> {\n return createClient({\n key,\n name,\n pollingInterval,\n transport,\n type: 'walletClient',\n })\n}\n"]}
@@ -9,7 +9,7 @@ var __publicField = (obj, key, value) => {
9
9
  var package_default = {
10
10
  name: "viem",
11
11
  description: "TypeScript Interface for Ethereum",
12
- version: "0.0.1-alpha.15",
12
+ version: "0.0.1-alpha.17",
13
13
  scripts: {
14
14
  anvil: "source .env && anvil --fork-url $VITE_ANVIL_FORK_URL --fork-block-number $VITE_ANVIL_BLOCK_NUMBER --block-time $VITE_ANVIL_BLOCK_TIME",
15
15
  bench: "vitest bench --no-threads",
@@ -40,6 +40,7 @@ var package_default = {
40
40
  "/chains",
41
41
  "/dist",
42
42
  "/clients",
43
+ "/src",
43
44
  "/types",
44
45
  "/utils",
45
46
  "/window"
@@ -2641,3 +2642,4 @@ export {
2641
2642
  WaitForTransactionReceiptTimeoutError,
2642
2643
  UrlRequiredError
2643
2644
  };
2645
+ //# sourceMappingURL=chunk-KQI5IRRL.mjs.map