viem 0.0.1-alpha.25 → 0.0.1-alpha.26

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 (500) hide show
  1. package/dist/{call-ac509982.d.ts → call-3476b8ee.d.ts} +4 -5
  2. package/dist/{chain-f16512e8.d.ts → chain-42de87e5.d.ts} +1 -14
  3. package/dist/{chain-c4ccb458.d.ts → chain-b0cfb141.d.ts} +1 -1
  4. package/dist/chains.d.ts +3 -3
  5. package/dist/chains.js +46 -46
  6. package/dist/chains.mjs +1 -1
  7. package/dist/{chunk-LEPQJNVO.mjs → chunk-BSAB6UH4.mjs} +2 -2
  8. package/dist/{chunk-LEPQJNVO.mjs.map → chunk-BSAB6UH4.mjs.map} +0 -0
  9. package/dist/{chunk-THMRUG4D.js → chunk-DSQO3E4F.js} +257 -398
  10. package/dist/chunk-DSQO3E4F.js.map +1 -0
  11. package/dist/{chunk-CD2XJOBJ.js → chunk-LINNE4N4.js} +136 -91
  12. package/dist/chunk-LINNE4N4.js.map +1 -0
  13. package/dist/{chunk-KSAO4Y4Q.mjs → chunk-PRG3BBPZ.mjs} +293 -434
  14. package/dist/chunk-PRG3BBPZ.mjs.map +1 -0
  15. package/dist/{chunk-2Y3UZMSP.mjs → chunk-QSIX64VZ.mjs} +61 -16
  16. package/dist/chunk-QSIX64VZ.mjs.map +1 -0
  17. package/dist/{chunk-NUXMGPMK.js → chunk-YTG4YXMB.js} +14 -14
  18. package/dist/{chunk-NUXMGPMK.js.map → chunk-YTG4YXMB.js.map} +0 -0
  19. package/dist/{contract-9e76e561.d.ts → contract-9dd2f98b.d.ts} +1 -1
  20. package/dist/contract.d.ts +21 -15
  21. package/dist/contract.js +6 -4
  22. package/dist/contract.mjs +5 -3
  23. package/dist/{createClient-68ee4bb4.d.ts → createClient-6689596e.d.ts} +10 -4
  24. package/dist/{createPublicClient-b732194e.d.ts → createPublicClient-fd558574.d.ts} +3 -3
  25. package/dist/{createTestClient-dedf321e.d.ts → createTestClient-bc1d9028.d.ts} +3 -3
  26. package/dist/{createWalletClient-75813d83.d.ts → createWalletClient-4df88244.d.ts} +3 -3
  27. package/dist/{decodeErrorResult-0b934d23.d.ts → decodeErrorResult-ac835649.d.ts} +2 -2
  28. package/dist/{eip1193-6f9ba163.d.ts → eip1193-617a05ae.d.ts} +2 -2
  29. package/dist/ens.d.ts +8 -8
  30. package/dist/ens.js +21 -21
  31. package/dist/ens.mjs +2 -2
  32. package/dist/{getAbiItem-c8e6e7d4.d.ts → getAbiItem-d2e8bd76.d.ts} +2 -2
  33. package/dist/index.d.ts +44 -21
  34. package/dist/index.js +54 -32
  35. package/dist/index.js.map +1 -1
  36. package/dist/index.mjs +43 -21
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/public.d.ts +13 -12
  39. package/dist/public.js +3 -3
  40. package/dist/public.mjs +2 -2
  41. package/dist/{readContract-4f6e2692.d.ts → readContract-c460f23a.d.ts} +3 -3
  42. package/dist/{rpc-a5a7f376.d.ts → rpc-8c10fc98.d.ts} +3 -5
  43. package/dist/{sendTransaction-e713f90c.d.ts → sendTransaction-7ce442c0.d.ts} +3 -3
  44. package/dist/test.d.ts +4 -4
  45. package/dist/test.js +13 -13
  46. package/dist/test.mjs +1 -1
  47. package/dist/{transactionReceipt-2a86c7c7.d.ts → transactionReceipt-44dbf122.d.ts} +1 -1
  48. package/dist/{transactionRequest-c7794f5e.d.ts → transactionRequest-f437b4ba.d.ts} +1 -1
  49. package/dist/utils/index.d.ts +14 -11
  50. package/dist/utils/index.js +2 -2
  51. package/dist/utils/index.mjs +1 -1
  52. package/dist/wallet.d.ts +6 -6
  53. package/dist/wallet.js +3 -3
  54. package/dist/wallet.mjs +2 -2
  55. package/dist/{watchEvent-c346c12d.d.ts → watchEvent-569c9976.d.ts} +3 -3
  56. package/dist/window.d.ts +2 -2
  57. package/package.json +4 -4
  58. package/public/package.json +4 -0
  59. package/test/package.json +4 -0
  60. package/dist/chunk-2Y3UZMSP.mjs.map +0 -1
  61. package/dist/chunk-CD2XJOBJ.js.map +0 -1
  62. package/dist/chunk-KSAO4Y4Q.mjs.map +0 -1
  63. package/dist/chunk-THMRUG4D.js.map +0 -1
  64. package/src/_test/abis.ts +0 -1420
  65. package/src/_test/bench.ts +0 -15
  66. package/src/_test/constants.ts +0 -63
  67. package/src/_test/globalSetup.ts +0 -11
  68. package/src/_test/index.ts +0 -25
  69. package/src/_test/setup.ts +0 -8
  70. package/src/_test/utils.ts +0 -155
  71. package/src/actions/ens/getEnsAddress.bench.ts +0 -26
  72. package/src/actions/ens/getEnsAddress.test.ts +0 -97
  73. package/src/actions/ens/getEnsAddress.ts +0 -122
  74. package/src/actions/ens/getEnsName.bench.ts +0 -30
  75. package/src/actions/ens/getEnsName.test.ts +0 -101
  76. package/src/actions/ens/getEnsName.ts +0 -106
  77. package/src/actions/ens/index.test.ts +0 -12
  78. package/src/actions/ens/index.ts +0 -3
  79. package/src/actions/index.test.ts +0 -81
  80. package/src/actions/index.ts +0 -182
  81. package/src/actions/public/call.bench.ts +0 -48
  82. package/src/actions/public/call.test.ts +0 -99
  83. package/src/actions/public/call.ts +0 -97
  84. package/src/actions/public/createBlockFilter.bench.ts +0 -11
  85. package/src/actions/public/createBlockFilter.test.ts +0 -9
  86. package/src/actions/public/createBlockFilter.ts +0 -14
  87. package/src/actions/public/createContractEventFilter.test.ts +0 -119
  88. package/src/actions/public/createContractEventFilter.ts +0 -69
  89. package/src/actions/public/createEventFilter.test.ts +0 -277
  90. package/src/actions/public/createEventFilter.ts +0 -93
  91. package/src/actions/public/createPendingTransactionFilter.bench.ts +0 -11
  92. package/src/actions/public/createPendingTransactionFilter.test.ts +0 -9
  93. package/src/actions/public/createPendingTransactionFilter.ts +0 -14
  94. package/src/actions/public/estimateGas.bench.ts +0 -46
  95. package/src/actions/public/estimateGas.test.ts +0 -92
  96. package/src/actions/public/estimateGas.ts +0 -61
  97. package/src/actions/public/getBalance.test.ts +0 -83
  98. package/src/actions/public/getBalance.ts +0 -37
  99. package/src/actions/public/getBlock.bench.ts +0 -28
  100. package/src/actions/public/getBlock.test.ts +0 -575
  101. package/src/actions/public/getBlock.ts +0 -65
  102. package/src/actions/public/getBlockNumber.bench.ts +0 -28
  103. package/src/actions/public/getBlockNumber.test.ts +0 -27
  104. package/src/actions/public/getBlockNumber.ts +0 -32
  105. package/src/actions/public/getBlockTransactionCount.bench.ts +0 -15
  106. package/src/actions/public/getBlockTransactionCount.test.ts +0 -57
  107. package/src/actions/public/getBlockTransactionCount.ts +0 -52
  108. package/src/actions/public/getBytecode.test.ts +0 -27
  109. package/src/actions/public/getBytecode.ts +0 -32
  110. package/src/actions/public/getChainId.bench.ts +0 -15
  111. package/src/actions/public/getChainId.test.ts +0 -8
  112. package/src/actions/public/getChainId.ts +0 -7
  113. package/src/actions/public/getFeeHistory.bench.ts +0 -18
  114. package/src/actions/public/getFeeHistory.test.ts +0 -137
  115. package/src/actions/public/getFeeHistory.ts +0 -44
  116. package/src/actions/public/getFilterChanges.bench.ts +0 -13
  117. package/src/actions/public/getFilterChanges.test.ts +0 -383
  118. package/src/actions/public/getFilterChanges.ts +0 -23
  119. package/src/actions/public/getFilterLogs.test.ts +0 -297
  120. package/src/actions/public/getFilterLogs.ts +0 -20
  121. package/src/actions/public/getGasPrice.bench.ts +0 -19
  122. package/src/actions/public/getGasPrice.test.ts +0 -8
  123. package/src/actions/public/getGasPrice.ts +0 -15
  124. package/src/actions/public/getLogs.test.ts +0 -306
  125. package/src/actions/public/getLogs.ts +0 -84
  126. package/src/actions/public/getStorageAt.test.ts +0 -34
  127. package/src/actions/public/getStorageAt.ts +0 -32
  128. package/src/actions/public/getTransaction.bench.ts +0 -33
  129. package/src/actions/public/getTransaction.test.ts +0 -311
  130. package/src/actions/public/getTransaction.ts +0 -95
  131. package/src/actions/public/getTransactionConfirmations.test.ts +0 -69
  132. package/src/actions/public/getTransactionConfirmations.ts +0 -38
  133. package/src/actions/public/getTransactionCount.test.ts +0 -56
  134. package/src/actions/public/getTransactionCount.ts +0 -34
  135. package/src/actions/public/getTransactionReceipt.bench.ts +0 -33
  136. package/src/actions/public/getTransactionReceipt.test.ts +0 -179
  137. package/src/actions/public/getTransactionReceipt.ts +0 -34
  138. package/src/actions/public/index.test.ts +0 -43
  139. package/src/actions/public/index.ts +0 -146
  140. package/src/actions/public/multicall.test.ts +0 -452
  141. package/src/actions/public/multicall.ts +0 -108
  142. package/src/actions/public/readContract.test.ts +0 -328
  143. package/src/actions/public/readContract.ts +0 -73
  144. package/src/actions/public/simulateContract.bench.ts +0 -41
  145. package/src/actions/public/simulateContract.test.ts +0 -410
  146. package/src/actions/public/simulateContract.ts +0 -91
  147. package/src/actions/public/uninstallFilter.bench.ts +0 -13
  148. package/src/actions/public/uninstallFilter.test.ts +0 -65
  149. package/src/actions/public/uninstallFilter.ts +0 -17
  150. package/src/actions/public/waitForTransactionReceipt.test.ts +0 -322
  151. package/src/actions/public/waitForTransactionReceipt.ts +0 -170
  152. package/src/actions/public/watchBlockNumber.test.ts +0 -166
  153. package/src/actions/public/watchBlockNumber.ts +0 -79
  154. package/src/actions/public/watchBlocks.test.ts +0 -210
  155. package/src/actions/public/watchBlocks.ts +0 -114
  156. package/src/actions/public/watchContractEvent.test.ts +0 -305
  157. package/src/actions/public/watchContractEvent.ts +0 -108
  158. package/src/actions/public/watchEvent.test.ts +0 -195
  159. package/src/actions/public/watchEvent.ts +0 -95
  160. package/src/actions/public/watchPendingTransactions.test.ts +0 -116
  161. package/src/actions/public/watchPendingTransactions.ts +0 -74
  162. package/src/actions/test/dropTransaction.test.ts +0 -34
  163. package/src/actions/test/dropTransaction.ts +0 -17
  164. package/src/actions/test/getAutomine.test.ts +0 -14
  165. package/src/actions/test/getAutomine.ts +0 -11
  166. package/src/actions/test/getTxpoolContent.test.ts +0 -45
  167. package/src/actions/test/getTxpoolContent.ts +0 -7
  168. package/src/actions/test/getTxpoolStatus.test.ts +0 -41
  169. package/src/actions/test/getTxpoolStatus.ts +0 -12
  170. package/src/actions/test/impersonateAccount.test.ts +0 -26
  171. package/src/actions/test/impersonateAccount.ts +0 -17
  172. package/src/actions/test/increaseTime.test.ts +0 -18
  173. package/src/actions/test/increaseTime.ts +0 -17
  174. package/src/actions/test/index.test.ts +0 -38
  175. package/src/actions/test/index.ts +0 -77
  176. package/src/actions/test/inspectTxpool.test.ts +0 -50
  177. package/src/actions/test/inspectTxpool.ts +0 -7
  178. package/src/actions/test/mine.test.ts +0 -20
  179. package/src/actions/test/mine.ts +0 -16
  180. package/src/actions/test/removeBlockTimestampInterval.test.ts +0 -23
  181. package/src/actions/test/removeBlockTimestampInterval.ts +0 -7
  182. package/src/actions/test/reset.test.ts +0 -19
  183. package/src/actions/test/reset.ts +0 -18
  184. package/src/actions/test/revert.test.ts +0 -39
  185. package/src/actions/test/revert.ts +0 -14
  186. package/src/actions/test/sendUnsignedTransaction.test.ts +0 -52
  187. package/src/actions/test/sendUnsignedTransaction.ts +0 -19
  188. package/src/actions/test/setAutomine.test.ts +0 -14
  189. package/src/actions/test/setAutomine.ts +0 -8
  190. package/src/actions/test/setBalance.test.ts +0 -29
  191. package/src/actions/test/setBalance.ts +0 -20
  192. package/src/actions/test/setBlockGasLimit.test.ts +0 -21
  193. package/src/actions/test/setBlockGasLimit.ts +0 -17
  194. package/src/actions/test/setBlockTimestampInterval.test.ts +0 -23
  195. package/src/actions/test/setBlockTimestampInterval.ts +0 -16
  196. package/src/actions/test/setCode.test.ts +0 -26
  197. package/src/actions/test/setCode.ts +0 -19
  198. package/src/actions/test/setCoinbase.test.ts +0 -11
  199. package/src/actions/test/setCoinbase.ts +0 -17
  200. package/src/actions/test/setIntervalMining.test.ts +0 -30
  201. package/src/actions/test/setIntervalMining.ts +0 -16
  202. package/src/actions/test/setLoggingEnabled.test.ts +0 -10
  203. package/src/actions/test/setLoggingEnabled.ts +0 -8
  204. package/src/actions/test/setMinGasPrice.test.ts +0 -22
  205. package/src/actions/test/setMinGasPrice.ts +0 -17
  206. package/src/actions/test/setNextBlockBaseFeePerGas.test.ts +0 -23
  207. package/src/actions/test/setNextBlockBaseFeePerGas.ts +0 -17
  208. package/src/actions/test/setNextBlockTimestamp.test.ts +0 -19
  209. package/src/actions/test/setNextBlockTimestamp.ts +0 -17
  210. package/src/actions/test/setNonce.test.ts +0 -28
  211. package/src/actions/test/setNonce.ts +0 -20
  212. package/src/actions/test/setRpcUrl.test.ts +0 -9
  213. package/src/actions/test/setRpcUrl.ts +0 -8
  214. package/src/actions/test/setStorageAt.test.ts +0 -36
  215. package/src/actions/test/setStorageAt.ts +0 -26
  216. package/src/actions/test/snapshot.test.ts +0 -18
  217. package/src/actions/test/snapshot.ts +0 -7
  218. package/src/actions/test/stopImpersonatingAccount.test.ts +0 -29
  219. package/src/actions/test/stopImpersonatingAccount.ts +0 -17
  220. package/src/actions/wallet/addChain.test.ts +0 -14
  221. package/src/actions/wallet/addChain.ts +0 -21
  222. package/src/actions/wallet/deployContract.test.ts +0 -55
  223. package/src/actions/wallet/deployContract.ts +0 -38
  224. package/src/actions/wallet/getAccounts.test.ts +0 -22
  225. package/src/actions/wallet/getAccounts.ts +0 -7
  226. package/src/actions/wallet/getPermissions.test.ts +0 -24
  227. package/src/actions/wallet/getPermissions.ts +0 -9
  228. package/src/actions/wallet/index.test.ts +0 -21
  229. package/src/actions/wallet/index.ts +0 -36
  230. package/src/actions/wallet/requestAccounts.test.ts +0 -13
  231. package/src/actions/wallet/requestAccounts.ts +0 -7
  232. package/src/actions/wallet/requestPermissions.test.ts +0 -26
  233. package/src/actions/wallet/requestPermissions.ts +0 -19
  234. package/src/actions/wallet/sendTransaction.bench.ts +0 -57
  235. package/src/actions/wallet/sendTransaction.test.ts +0 -440
  236. package/src/actions/wallet/sendTransaction.ts +0 -77
  237. package/src/actions/wallet/signMessage.test.ts +0 -61
  238. package/src/actions/wallet/signMessage.ts +0 -35
  239. package/src/actions/wallet/switchChain.test.ts +0 -21
  240. package/src/actions/wallet/switchChain.ts +0 -19
  241. package/src/actions/wallet/watchAsset.test.ts +0 -40
  242. package/src/actions/wallet/watchAsset.ts +0 -16
  243. package/src/actions/wallet/writeContract.test.ts +0 -84
  244. package/src/actions/wallet/writeContract.ts +0 -47
  245. package/src/chains.test.ts +0 -439
  246. package/src/chains.ts +0 -99
  247. package/src/clients/createClient.test.ts +0 -295
  248. package/src/clients/createClient.ts +0 -81
  249. package/src/clients/createPublicClient.test.ts +0 -165
  250. package/src/clients/createPublicClient.ts +0 -49
  251. package/src/clients/createTestClient.test.ts +0 -145
  252. package/src/clients/createTestClient.ts +0 -72
  253. package/src/clients/createWalletClient.test.ts +0 -121
  254. package/src/clients/createWalletClient.ts +0 -54
  255. package/src/clients/index.test.ts +0 -19
  256. package/src/clients/index.ts +0 -31
  257. package/src/clients/transports/createTransport.test.ts +0 -58
  258. package/src/clients/transports/createTransport.ts +0 -48
  259. package/src/clients/transports/custom.test.ts +0 -98
  260. package/src/clients/transports/custom.ts +0 -34
  261. package/src/clients/transports/fallback.test.ts +0 -257
  262. package/src/clients/transports/fallback.ts +0 -50
  263. package/src/clients/transports/http.test.ts +0 -109
  264. package/src/clients/transports/http.ts +0 -51
  265. package/src/clients/transports/index.test.ts +0 -15
  266. package/src/clients/transports/index.ts +0 -17
  267. package/src/clients/transports/webSocket.test.ts +0 -164
  268. package/src/clients/transports/webSocket.ts +0 -118
  269. package/src/constants/abis.test.ts +0 -53
  270. package/src/constants/abis.ts +0 -44
  271. package/src/constants/index.test.ts +0 -14
  272. package/src/constants/index.ts +0 -3
  273. package/src/constants/solidity.test.ts +0 -41
  274. package/src/constants/solidity.ts +0 -35
  275. package/src/contract.test.ts +0 -31
  276. package/src/contract.ts +0 -68
  277. package/src/ens.test.ts +0 -15
  278. package/src/ens.ts +0 -8
  279. package/src/errors/abi.test.ts +0 -81
  280. package/src/errors/abi.ts +0 -254
  281. package/src/errors/address.test.ts +0 -14
  282. package/src/errors/address.ts +0 -9
  283. package/src/errors/base.test.ts +0 -114
  284. package/src/errors/base.ts +0 -57
  285. package/src/errors/block.test.ts +0 -24
  286. package/src/errors/block.ts +0 -18
  287. package/src/errors/chain.test.ts +0 -46
  288. package/src/errors/chain.ts +0 -33
  289. package/src/errors/contract.test.ts +0 -233
  290. package/src/errors/contract.ts +0 -178
  291. package/src/errors/data.ts +0 -20
  292. package/src/errors/encoding.ts +0 -60
  293. package/src/errors/index.ts +0 -82
  294. package/src/errors/log.ts +0 -8
  295. package/src/errors/request.test.ts +0 -330
  296. package/src/errors/request.ts +0 -163
  297. package/src/errors/rpc.test.ts +0 -87
  298. package/src/errors/rpc.ts +0 -113
  299. package/src/errors/transaction.test.ts +0 -83
  300. package/src/errors/transaction.ts +0 -54
  301. package/src/errors/transport.test.ts +0 -11
  302. package/src/errors/transport.ts +0 -12
  303. package/src/index.test.ts +0 -116
  304. package/src/index.ts +0 -132
  305. package/src/public.test.ts +0 -36
  306. package/src/public.ts +0 -76
  307. package/src/test.test.ts +0 -38
  308. package/src/test.ts +0 -52
  309. package/src/types/block.ts +0 -71
  310. package/src/types/chain.ts +0 -6
  311. package/src/types/contract.ts +0 -497
  312. package/src/types/eip1193.ts +0 -1041
  313. package/src/types/fee.ts +0 -47
  314. package/src/types/filter.ts +0 -8
  315. package/src/types/formatter.ts +0 -23
  316. package/src/types/index.ts +0 -84
  317. package/src/types/log.ts +0 -22
  318. package/src/types/misc.ts +0 -5
  319. package/src/types/multicall.ts +0 -82
  320. package/src/types/rpc.ts +0 -35
  321. package/src/types/transaction.ts +0 -145
  322. package/src/types/utils.ts +0 -88
  323. package/src/types/window.ts +0 -9
  324. package/src/utils/abi/decodeAbi.bench.ts +0 -135
  325. package/src/utils/abi/decodeAbi.test.ts +0 -1614
  326. package/src/utils/abi/decodeAbi.ts +0 -300
  327. package/src/utils/abi/decodeDeployData.test.ts +0 -151
  328. package/src/utils/abi/decodeDeployData.ts +0 -44
  329. package/src/utils/abi/decodeErrorResult.test.ts +0 -230
  330. package/src/utils/abi/decodeErrorResult.ts +0 -45
  331. package/src/utils/abi/decodeEventLog.test.ts +0 -542
  332. package/src/utils/abi/decodeEventLog.ts +0 -107
  333. package/src/utils/abi/decodeFunctionData.test.ts +0 -138
  334. package/src/utils/abi/decodeFunctionData.ts +0 -32
  335. package/src/utils/abi/decodeFunctionResult.test.ts +0 -333
  336. package/src/utils/abi/decodeFunctionResult.ts +0 -57
  337. package/src/utils/abi/encodeAbi.bench.ts +0 -163
  338. package/src/utils/abi/encodeAbi.test.ts +0 -1447
  339. package/src/utils/abi/encodeAbi.ts +0 -273
  340. package/src/utils/abi/encodeDeployData.test.ts +0 -124
  341. package/src/utils/abi/encodeDeployData.ts +0 -40
  342. package/src/utils/abi/encodeErrorResult.test.ts +0 -192
  343. package/src/utils/abi/encodeErrorResult.ts +0 -47
  344. package/src/utils/abi/encodeEventTopics.test.ts +0 -345
  345. package/src/utils/abi/encodeEventTopics.ts +0 -75
  346. package/src/utils/abi/encodeFunctionData.test.ts +0 -138
  347. package/src/utils/abi/encodeFunctionData.ts +0 -42
  348. package/src/utils/abi/encodeFunctionResult.test.ts +0 -279
  349. package/src/utils/abi/encodeFunctionResult.ts +0 -41
  350. package/src/utils/abi/formatAbiItem.test.ts +0 -335
  351. package/src/utils/abi/formatAbiItem.ts +0 -41
  352. package/src/utils/abi/formatAbiItemWithArgs.test.ts +0 -291
  353. package/src/utils/abi/formatAbiItemWithArgs.ts +0 -27
  354. package/src/utils/abi/getAbiItem.test.ts +0 -547
  355. package/src/utils/abi/getAbiItem.ts +0 -95
  356. package/src/utils/abi/index.test.ts +0 -24
  357. package/src/utils/abi/index.ts +0 -48
  358. package/src/utils/address/getAddress.bench.ts +0 -22
  359. package/src/utils/address/getAddress.test.ts +0 -46
  360. package/src/utils/address/getAddress.ts +0 -28
  361. package/src/utils/address/getContractAddress.bench.ts +0 -20
  362. package/src/utils/address/getContractAddress.test.ts +0 -78
  363. package/src/utils/address/getContractAddress.ts +0 -59
  364. package/src/utils/address/index.test.ts +0 -17
  365. package/src/utils/address/index.ts +0 -16
  366. package/src/utils/address/isAddress.test.ts +0 -10
  367. package/src/utils/address/isAddress.ts +0 -10
  368. package/src/utils/address/isAddressEqual.test.ts +0 -55
  369. package/src/utils/address/isAddressEqual.ts +0 -6
  370. package/src/utils/buildRequest.test.ts +0 -365
  371. package/src/utils/buildRequest.ts +0 -45
  372. package/src/utils/chain.test.ts +0 -43
  373. package/src/utils/chain.ts +0 -8
  374. package/src/utils/contract/extractFunctionParts.test.ts +0 -109
  375. package/src/utils/contract/extractFunctionParts.ts +0 -27
  376. package/src/utils/contract/getContractError.test.ts +0 -282
  377. package/src/utils/contract/getContractError.ts +0 -58
  378. package/src/utils/contract/index.test.ts +0 -15
  379. package/src/utils/contract/index.ts +0 -8
  380. package/src/utils/data/concat.test.ts +0 -35
  381. package/src/utils/data/concat.ts +0 -34
  382. package/src/utils/data/index.test.ts +0 -23
  383. package/src/utils/data/index.ts +0 -13
  384. package/src/utils/data/isBytes.test.ts +0 -9
  385. package/src/utils/data/isBytes.ts +0 -7
  386. package/src/utils/data/isHex.test.ts +0 -13
  387. package/src/utils/data/isHex.ts +0 -5
  388. package/src/utils/data/pad.bench.ts +0 -30
  389. package/src/utils/data/pad.test.ts +0 -367
  390. package/src/utils/data/pad.ts +0 -53
  391. package/src/utils/data/size.test.ts +0 -18
  392. package/src/utils/data/size.ts +0 -13
  393. package/src/utils/data/slice.test.ts +0 -203
  394. package/src/utils/data/slice.ts +0 -60
  395. package/src/utils/data/trim.bench.ts +0 -34
  396. package/src/utils/data/trim.test.ts +0 -175
  397. package/src/utils/data/trim.ts +0 -33
  398. package/src/utils/encoding/decodeBytes.bench.ts +0 -40
  399. package/src/utils/encoding/decodeBytes.test.ts +0 -144
  400. package/src/utils/encoding/decodeBytes.ts +0 -63
  401. package/src/utils/encoding/decodeHex.bench.ts +0 -24
  402. package/src/utils/encoding/decodeHex.test.ts +0 -167
  403. package/src/utils/encoding/decodeHex.ts +0 -76
  404. package/src/utils/encoding/decodeRlp.bench.ts +0 -34
  405. package/src/utils/encoding/decodeRlp.test.ts +0 -350
  406. package/src/utils/encoding/decodeRlp.ts +0 -121
  407. package/src/utils/encoding/encodeBytes.bench.ts +0 -29
  408. package/src/utils/encoding/encodeBytes.test.ts +0 -676
  409. package/src/utils/encoding/encodeBytes.ts +0 -59
  410. package/src/utils/encoding/encodeHex.bench.ts +0 -49
  411. package/src/utils/encoding/encodeHex.test.ts +0 -232
  412. package/src/utils/encoding/encodeHex.ts +0 -104
  413. package/src/utils/encoding/encodeRlp.bench.ts +0 -54
  414. package/src/utils/encoding/encodeRlp.test.ts +0 -254
  415. package/src/utils/encoding/encodeRlp.ts +0 -48
  416. package/src/utils/encoding/index.test.ts +0 -32
  417. package/src/utils/encoding/index.ts +0 -36
  418. package/src/utils/ens/index.test.ts +0 -14
  419. package/src/utils/ens/index.ts +0 -7
  420. package/src/utils/ens/labelhash.test.ts +0 -55
  421. package/src/utils/ens/labelhash.ts +0 -16
  422. package/src/utils/ens/namehash.test.ts +0 -65
  423. package/src/utils/ens/namehash.ts +0 -28
  424. package/src/utils/ens/normalize.bench.ts +0 -14
  425. package/src/utils/ens/normalize.test.ts +0 -35
  426. package/src/utils/ens/normalize.ts +0 -14
  427. package/src/utils/ens/packetToBytes.test.ts +0 -11
  428. package/src/utils/ens/packetToBytes.ts +0 -29
  429. package/src/utils/formatters/block.bench.ts +0 -51
  430. package/src/utils/formatters/block.test.ts +0 -115
  431. package/src/utils/formatters/block.ts +0 -37
  432. package/src/utils/formatters/extract.test.ts +0 -14
  433. package/src/utils/formatters/extract.ts +0 -18
  434. package/src/utils/formatters/feeHistory.test.ts +0 -66
  435. package/src/utils/formatters/feeHistory.ts +0 -12
  436. package/src/utils/formatters/format.test.ts +0 -93
  437. package/src/utils/formatters/format.ts +0 -90
  438. package/src/utils/formatters/index.test.ts +0 -27
  439. package/src/utils/formatters/index.ts +0 -34
  440. package/src/utils/formatters/log.test.ts +0 -79
  441. package/src/utils/formatters/log.ts +0 -12
  442. package/src/utils/formatters/transaction.test.ts +0 -271
  443. package/src/utils/formatters/transaction.ts +0 -63
  444. package/src/utils/formatters/transactionReceipt.bench.ts +0 -73
  445. package/src/utils/formatters/transactionReceipt.test.ts +0 -151
  446. package/src/utils/formatters/transactionReceipt.ts +0 -63
  447. package/src/utils/formatters/transactionRequest.bench.ts +0 -29
  448. package/src/utils/formatters/transactionRequest.test.ts +0 -237
  449. package/src/utils/formatters/transactionRequest.ts +0 -56
  450. package/src/utils/hash/getEventSignature.test.ts +0 -61
  451. package/src/utils/hash/getEventSignature.ts +0 -4
  452. package/src/utils/hash/getFunctionSignature.test.ts +0 -22
  453. package/src/utils/hash/getFunctionSignature.ts +0 -5
  454. package/src/utils/hash/hashFunction.test.ts +0 -65
  455. package/src/utils/hash/hashFunction.ts +0 -12
  456. package/src/utils/hash/index.test.ts +0 -13
  457. package/src/utils/hash/index.ts +0 -5
  458. package/src/utils/hash/keccak256.test.ts +0 -59
  459. package/src/utils/hash/keccak256.ts +0 -21
  460. package/src/utils/index.test.ts +0 -111
  461. package/src/utils/index.ts +0 -142
  462. package/src/utils/observe.test.ts +0 -176
  463. package/src/utils/observe.ts +0 -66
  464. package/src/utils/poll.test.ts +0 -127
  465. package/src/utils/poll.ts +0 -42
  466. package/src/utils/promise/index.test.ts +0 -14
  467. package/src/utils/promise/index.ts +0 -3
  468. package/src/utils/promise/withCache.test.ts +0 -97
  469. package/src/utils/promise/withCache.ts +0 -73
  470. package/src/utils/promise/withRetry.test.ts +0 -231
  471. package/src/utils/promise/withRetry.ts +0 -61
  472. package/src/utils/promise/withTimeout.test.ts +0 -37
  473. package/src/utils/promise/withTimeout.ts +0 -39
  474. package/src/utils/rpc.test.ts +0 -990
  475. package/src/utils/rpc.ts +0 -294
  476. package/src/utils/stringify.test.ts +0 -13
  477. package/src/utils/stringify.ts +0 -5
  478. package/src/utils/uid.ts +0 -14
  479. package/src/utils/unit/constants.test.ts +0 -22
  480. package/src/utils/unit/constants.ts +0 -12
  481. package/src/utils/unit/formatEther.test.ts +0 -75
  482. package/src/utils/unit/formatEther.ts +0 -6
  483. package/src/utils/unit/formatGwei.test.ts +0 -32
  484. package/src/utils/unit/formatGwei.ts +0 -6
  485. package/src/utils/unit/formatUnit.bench.ts +0 -21
  486. package/src/utils/unit/formatUnit.test.ts +0 -40
  487. package/src/utils/unit/formatUnit.ts +0 -16
  488. package/src/utils/unit/index.test.ts +0 -28
  489. package/src/utils/unit/index.ts +0 -7
  490. package/src/utils/unit/parseEther.test.ts +0 -126
  491. package/src/utils/unit/parseEther.ts +0 -6
  492. package/src/utils/unit/parseGwei.test.ts +0 -50
  493. package/src/utils/unit/parseGwei.ts +0 -6
  494. package/src/utils/unit/parseUnit.bench.ts +0 -21
  495. package/src/utils/unit/parseUnit.test.ts +0 -54
  496. package/src/utils/unit/parseUnit.ts +0 -27
  497. package/src/utils/wait.ts +0 -3
  498. package/src/wallet.test.ts +0 -19
  499. package/src/wallet.ts +0 -23
  500. package/src/window.ts +0 -1
@@ -1,15 +0,0 @@
1
- import { providers } from 'ethers'
2
- import { JsonRpcProvider } from 'ethers@6'
3
- import Web3 from 'web3'
4
-
5
- import { localhost } from '../chains'
6
-
7
- export const ethersProvider = new providers.JsonRpcProvider(
8
- localhost.rpcUrls.default.http[0],
9
- )
10
-
11
- export const ethersV6Provider = new JsonRpcProvider(
12
- localhost.rpcUrls.default.http[0],
13
- )
14
-
15
- export const web3Provider = new Web3(localhost.rpcUrls.default.http[0])
@@ -1,63 +0,0 @@
1
- import type { Hex } from '../types'
2
-
3
- export const accounts = [
4
- {
5
- address: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
6
- balance: 10000000000000000000000n,
7
- },
8
- {
9
- address: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
10
- balance: 10000000000000000000000n,
11
- },
12
- {
13
- address: '0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc',
14
- balance: 10000000000000000000000n,
15
- },
16
- {
17
- address: '0x90f79bf6eb2c4f870365e785982e1f101e93b906',
18
- balance: 10000000000000000000000n,
19
- },
20
- {
21
- address: '0x15d34aaf54267db7d7c367839aaf71a00a2c6a65',
22
- balance: 10000000000000000000000n,
23
- },
24
- {
25
- address: '0x9965507d1a55bcc2695c58ba16fb37d819b0a4dc',
26
- balance: 10000000000000000000000n,
27
- },
28
- {
29
- address: '0x976ea74026e726554db657fa54763abd0c3a0aa9',
30
- balance: 10000000000000000000000n,
31
- },
32
- {
33
- address: '0x14dc79964da2c08b23698b3d3cc7ca32193d9955',
34
- balance: 10000000000000000000000n,
35
- },
36
- {
37
- address: '0x23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f',
38
- balance: 10000000000000000000000n,
39
- },
40
- {
41
- address: '0xa0ee7a142d267c1f36714e4a8f75612f20a79720',
42
- balance: 10000000000000000000000n,
43
- },
44
- ] as const
45
-
46
- export const address = {
47
- burn: '0x0000000000000000000000000000000000000000',
48
- usdcHolder: '0x5414d89a8bf7e99d732bc52f3e6a3ef461c0c078',
49
- vitalik: '0xd8da6bf26964af9d7eed9e03e53415d37aa96045',
50
- } as const
51
-
52
- export const initialBlockNumber = BigInt(
53
- Number(process.env.VITE_ANVIL_BLOCK_NUMBER),
54
- )
55
-
56
- export const localHttpUrl = 'http://127.0.0.1:8545'
57
- export const localWsUrl = 'ws://127.0.0.1:8545'
58
-
59
- // ERC20 `transferFrom` method
60
- export const transfer1Data = (address: string): Hex =>
61
- `0xa9059cbb000000000000000000000000${address
62
- .slice(2)
63
- .toLowerCase()}0000000000000000000000000000000000000000000000000000000000000001`
@@ -1,11 +0,0 @@
1
- import { testClient } from './utils'
2
- import { reset, setAutomine, setIntervalMining } from '../actions'
3
-
4
- export async function setup() {
5
- await reset(testClient, {
6
- blockNumber: BigInt(parseInt(process.env.VITE_ANVIL_BLOCK_NUMBER!)),
7
- jsonRpcUrl: process.env.VITE_ANVIL_FORK_URL,
8
- })
9
- await setAutomine(testClient, false)
10
- await setIntervalMining(testClient, { interval: 1 })
11
- }
@@ -1,25 +0,0 @@
1
- export {
2
- wagmiContractConfig,
3
- uniswapV3PositionsContractConfig,
4
- usdcContractConfig,
5
- } from './abis'
6
-
7
- export { ethersProvider, ethersV6Provider, web3Provider } from './bench'
8
-
9
- export {
10
- accounts,
11
- address,
12
- initialBlockNumber,
13
- localHttpUrl,
14
- localWsUrl,
15
- transfer1Data,
16
- } from './constants'
17
-
18
- export {
19
- createHttpServer,
20
- deploy,
21
- deployBAYC,
22
- publicClient,
23
- testClient,
24
- walletClient,
25
- } from './utils'
@@ -1,8 +0,0 @@
1
- import { beforeEach } from 'vitest'
2
-
3
- import { promiseCache, responseCache } from '../utils/promise/withCache'
4
-
5
- beforeEach(() => {
6
- promiseCache.clear()
7
- responseCache.clear()
8
- })
@@ -1,155 +0,0 @@
1
- /* c8 ignore start */
2
- import { Abi } from 'abitype'
3
- import errorsExample from '../../contracts/out/ErrorsExample.sol/ErrorsExample.json'
4
- import {
5
- deployContract,
6
- DeployContractArgs,
7
- getTransactionReceipt,
8
- mine,
9
- } from '../actions'
10
- import { Chain, localhost, mainnet } from '../chains'
11
- import {
12
- createPublicClient,
13
- createTestClient,
14
- createWalletClient,
15
- custom,
16
- http,
17
- webSocket,
18
- } from '../clients'
19
- import { rpc } from '../utils'
20
- import { RpcError } from '../types/eip1193'
21
- import { accounts, localWsUrl } from './constants'
22
- import { errorsExampleABI } from './generated'
23
-
24
- import type { RequestListener } from 'http'
25
- import { createServer } from 'http'
26
- import type { AddressInfo } from 'net'
27
- import { baycContractConfig } from './abis'
28
- import { Hex } from '../types'
29
-
30
- const anvil = {
31
- ...localhost,
32
- contracts: mainnet.contracts,
33
- } as const satisfies Chain
34
-
35
- export const publicClient =
36
- process.env.VITE_NETWORK_TRANSPORT_MODE === 'webSocket'
37
- ? createPublicClient({
38
- chain: anvil,
39
- pollingInterval: 1_000,
40
- transport: webSocket(localWsUrl),
41
- })
42
- : createPublicClient({
43
- chain: anvil,
44
- pollingInterval: 1_000,
45
- transport: http(),
46
- })
47
-
48
- export const walletClient = createWalletClient({
49
- transport: custom({
50
- on: (message: string, listener: (...args: any[]) => null) => {
51
- if (message === 'accountsChanged') {
52
- listener([accounts[0].address] as any)
53
- }
54
- },
55
- removeListener: () => null,
56
- request: async ({ method, params }: any) => {
57
- if (method === 'eth_requestAccounts') {
58
- return [accounts[0].address]
59
- }
60
- if (method === 'personal_sign') {
61
- method = 'eth_sign'
62
- params = [params[1], params[0]]
63
- }
64
- if (method === 'wallet_watchAsset') {
65
- if (params[0].type === 'ERC721') {
66
- throw new RpcError(-32602, 'Token type ERC721 not supported.')
67
- }
68
- return true
69
- }
70
- if (method === 'wallet_addEthereumChain') return null
71
- if (method === 'wallet_switchEthereumChain') {
72
- if (params[0].chainId === '0xfa') {
73
- throw new RpcError(-4902, 'Unrecognized chain.')
74
- }
75
- return null
76
- }
77
- if (
78
- method === 'wallet_getPermissions' ||
79
- method === 'wallet_requestPermissions'
80
- )
81
- return [
82
- {
83
- invoker: 'https://example.com',
84
- parentCapability: 'eth_accounts',
85
- caveats: [
86
- {
87
- type: 'filterResponse',
88
- value: ['0x0c54fccd2e384b4bb6f2e405bf5cbc15a017aafb'],
89
- },
90
- ],
91
- },
92
- ]
93
-
94
- const { result } = await rpc.http(anvil.rpcUrls.default.http[0], {
95
- body: {
96
- method,
97
- params,
98
- },
99
- })
100
- return result
101
- },
102
- }),
103
- })
104
-
105
- export const testClient = createTestClient({
106
- chain: anvil,
107
- mode: 'anvil',
108
- transport: http(),
109
- })
110
-
111
- export function createHttpServer(
112
- handler: RequestListener,
113
- ): Promise<{ close: () => Promise<unknown>; url: string }> {
114
- const server = createServer(handler)
115
-
116
- const closeAsync = () =>
117
- new Promise((resolve, reject) =>
118
- server.close((err) => (err ? reject(err) : resolve(undefined))),
119
- )
120
-
121
- return new Promise((resolve) => {
122
- server.listen(() => {
123
- const { port } = server.address() as AddressInfo
124
- resolve({ close: closeAsync, url: `http://localhost:${port}` })
125
- })
126
- })
127
- }
128
-
129
- export async function deploy<TAbi extends Abi = Abi>(
130
- args: DeployContractArgs<Chain, TAbi>,
131
- ) {
132
- const hash = await deployContract(walletClient, args)
133
- await mine(testClient, { blocks: 1 })
134
- const { contractAddress } = await getTransactionReceipt(publicClient, {
135
- hash,
136
- })
137
- return { contractAddress }
138
- }
139
-
140
- export async function deployBAYC() {
141
- return deploy({
142
- ...baycContractConfig,
143
- args: ['Bored Ape Wagmi Club', 'BAYC', 69420n, 0n],
144
- from: accounts[0].address,
145
- })
146
- }
147
-
148
- export async function deployErrorExample() {
149
- return deploy({
150
- abi: errorsExampleABI,
151
- bytecode: errorsExample.bytecode.object as Hex,
152
- from: accounts[0].address,
153
- })
154
- }
155
- /* c8 ignore stop */
@@ -1,26 +0,0 @@
1
- import { bench, describe } from 'vitest'
2
-
3
- import {
4
- ethersProvider,
5
- ethersV6Provider,
6
- publicClient,
7
- web3Provider,
8
- } from '../../_test'
9
-
10
- import { getEnsAddress } from './getEnsAddress'
11
-
12
- describe('Get ENS Name', () => {
13
- bench('viem: `getEnsAddress`', async () => {
14
- await getEnsAddress(publicClient, {
15
- name: 'awkweb.eth',
16
- })
17
- })
18
-
19
- bench('ethers: `resolveName`', async () => {
20
- await ethersProvider.resolveName('awkweb.eth')
21
- })
22
-
23
- bench('ethers@6: `resolveName`', async () => {
24
- await ethersV6Provider.resolveName('awkweb.eth')
25
- })
26
- })
@@ -1,97 +0,0 @@
1
- import { expect, test } from 'vitest'
2
- import { optimism } from '../../chains'
3
- import { createPublicClient, http } from '../../clients'
4
-
5
- import { localHttpUrl, publicClient } from '../../_test'
6
- import { getEnsAddress } from './getEnsAddress'
7
-
8
- test('gets address for name', async () => {
9
- await expect(
10
- getEnsAddress(publicClient, { name: 'awkweb.eth' }),
11
- ).resolves.toMatchInlineSnapshot(
12
- '"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e"',
13
- )
14
- })
15
-
16
- test('name without address', async () => {
17
- await expect(
18
- getEnsAddress(publicClient, { name: 'unregistered-name.eth' }),
19
- ).resolves.toMatchInlineSnapshot(
20
- '"0x0000000000000000000000000000000000000000"',
21
- )
22
- })
23
-
24
- test('custom universal resolver address', async () => {
25
- await expect(
26
- getEnsAddress(publicClient, {
27
- name: 'awkweb.eth',
28
- universalResolverAddress: '0x74E20Bd2A1fE0cdbe45b9A1d89cb7e0a45b36376',
29
- }),
30
- ).resolves.toMatchInlineSnapshot(
31
- '"0xA0Cf798816D4b9b9866b5330EEa46a18382f251e"',
32
- )
33
- })
34
-
35
- test('chain not provided', async () => {
36
- await expect(
37
- getEnsAddress(
38
- createPublicClient({
39
- transport: http(localHttpUrl),
40
- }),
41
- { name: 'awkweb.eth' },
42
- ),
43
- ).rejects.toThrowErrorMatchingInlineSnapshot(
44
- '"client chain not configured. universalResolverAddress is required."',
45
- )
46
- })
47
-
48
- test('universal resolver contract not configured for chain', async () => {
49
- await expect(
50
- getEnsAddress(
51
- createPublicClient({
52
- chain: optimism,
53
- transport: http(),
54
- }),
55
- { name: 'awkweb.eth' },
56
- ),
57
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
58
- "Chain \\"Optimism\\" does not support contract \\"ensUniversalResolver\\".
59
-
60
- This could be due to any of the following:
61
- - The chain does not have the contract \\"ensUniversalResolver\\" configured.
62
-
63
- Version: viem@1.0.2"
64
- `)
65
- })
66
-
67
- test('universal resolver contract deployed on later block', async () => {
68
- await expect(
69
- getEnsAddress(publicClient, { name: 'awkweb.eth', blockNumber: 14353601n }),
70
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
71
- "Chain \\"Localhost\\" does not support contract \\"ensUniversalResolver\\".
72
-
73
- This could be due to any of the following:
74
- - The contract \\"ensUniversalResolver\\" was not deployed until block 16172161 (current block 14353601).
75
-
76
- Version: viem@1.0.2"
77
- `)
78
- })
79
-
80
- test('invalid universal resolver address', async () => {
81
- await expect(
82
- getEnsAddress(publicClient, {
83
- name: 'awkweb.eth',
84
- universalResolverAddress: '0xecb504d39723b0be0e3a9aa33d646642d1051ee1',
85
- }),
86
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
87
- "The contract function \\"resolve\\" reverted with the following reason:
88
- execution reverted
89
-
90
- Contract: 0x0000000000000000000000000000000000000000
91
- Function: resolve(bytes name, bytes data)
92
- Arguments: (0x0661776b7765620365746800, 0x3b3b57de52d0f5fbf348925621be297a61b88ec492ebbbdfa9477d82892e2786020ad61c)
93
-
94
- Docs: https://viem.sh/docs/contract/readContract
95
- Version: viem@1.0.2"
96
- `)
97
- })
@@ -1,122 +0,0 @@
1
- import { PublicClient } from '../../clients'
2
- import { ChainDoesNotSupportContract } from '../../errors'
3
- import type { Address, Prettify } from '../../types'
4
- import {
5
- decodeFunctionResult,
6
- encodeFunctionData,
7
- encodeHex,
8
- } from '../../utils'
9
- import { namehash, packetToBytes } from '../../utils/ens'
10
- import { readContract, ReadContractArgs } from '../public'
11
-
12
- export type GetEnsAddressArgs = Prettify<
13
- Pick<ReadContractArgs, 'blockNumber' | 'blockTag'> & {
14
- /** ENS name to get address. */
15
- name: string
16
- /** Address of ENS Universal Resolver Contract */
17
- universalResolverAddress?: Address
18
- }
19
- >
20
-
21
- /**
22
- * @description Gets address for ENS name.
23
- *
24
- * - Calls `resolve(bytes, bytes)` on ENS Universal Resolver Contract.
25
- *
26
- * @example
27
- * const ensAddress = await getEnsAddress(publicClient, {
28
- * name: 'wagmi-dev.eth',
29
- * })
30
- * // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
31
- */
32
- export async function getEnsAddress(
33
- client: PublicClient,
34
- {
35
- blockNumber,
36
- blockTag,
37
- name,
38
- universalResolverAddress: universalResolverAddress_,
39
- }: GetEnsAddressArgs,
40
- ) {
41
- let universalResolverAddress = universalResolverAddress_
42
- if (!universalResolverAddress) {
43
- if (!client.chain)
44
- throw new Error(
45
- 'client chain not configured. universalResolverAddress is required.',
46
- )
47
-
48
- const contract = client.chain?.contracts?.ensUniversalResolver
49
- if (!contract)
50
- throw new ChainDoesNotSupportContract({
51
- chain: client.chain,
52
- contract: { name: 'ensUniversalResolver' },
53
- })
54
-
55
- if (
56
- blockNumber &&
57
- contract.blockCreated &&
58
- contract.blockCreated > blockNumber
59
- )
60
- throw new ChainDoesNotSupportContract({
61
- blockNumber,
62
- chain: client.chain,
63
- contract: {
64
- name: 'ensUniversalResolver',
65
- blockCreated: contract.blockCreated,
66
- },
67
- })
68
-
69
- universalResolverAddress = contract.address
70
- }
71
-
72
- const res = await readContract(client, {
73
- address: universalResolverAddress,
74
- abi: [
75
- {
76
- name: 'resolve',
77
- type: 'function',
78
- stateMutability: 'view',
79
- inputs: [
80
- { name: 'name', type: 'bytes' },
81
- { name: 'data', type: 'bytes' },
82
- ],
83
- outputs: [
84
- { name: '', type: 'bytes' },
85
- { name: 'address', type: 'address' },
86
- ],
87
- },
88
- ],
89
- functionName: 'resolve',
90
- args: [
91
- encodeHex(packetToBytes(name)),
92
- encodeFunctionData({
93
- abi: [
94
- {
95
- name: 'addr',
96
- type: 'function',
97
- stateMutability: 'view',
98
- inputs: [{ name: 'name', type: 'bytes32' }],
99
- outputs: [],
100
- },
101
- ],
102
- functionName: 'addr',
103
- args: [namehash(name)],
104
- }),
105
- ],
106
- blockNumber,
107
- blockTag,
108
- })
109
- return decodeFunctionResult({
110
- abi: [
111
- {
112
- name: 'addr',
113
- type: 'function',
114
- stateMutability: 'view',
115
- inputs: [],
116
- outputs: [{ name: 'name', type: 'address' }],
117
- },
118
- ],
119
- functionName: 'addr',
120
- data: res[0],
121
- })
122
- }
@@ -1,30 +0,0 @@
1
- import { bench, describe } from 'vitest'
2
-
3
- import {
4
- ethersProvider,
5
- ethersV6Provider,
6
- publicClient,
7
- web3Provider,
8
- } from '../../_test'
9
-
10
- import { getEnsName } from './getEnsName'
11
-
12
- describe('Get ENS Name', () => {
13
- bench('viem: `getEnsName`', async () => {
14
- await getEnsName(publicClient, {
15
- address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
16
- })
17
- })
18
-
19
- bench('ethers: `lookupAddress`', async () => {
20
- await ethersProvider.lookupAddress(
21
- '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
22
- )
23
- })
24
-
25
- bench('ethers@6: `lookupAddress`', async () => {
26
- await ethersV6Provider.lookupAddress(
27
- '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
28
- )
29
- })
30
- })
@@ -1,101 +0,0 @@
1
- import { expect, test } from 'vitest'
2
- import { localhost, mainnet, optimism } from '../../chains'
3
- import { createPublicClient, http } from '../../clients'
4
-
5
- import { address, localHttpUrl, publicClient } from '../../_test'
6
-
7
- import { getEnsName } from './getEnsName'
8
-
9
- test('gets primary name for address', async () => {
10
- await expect(
11
- getEnsName(publicClient, {
12
- address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
13
- }),
14
- ).resolves.toMatchInlineSnapshot('"awkweb.eth"')
15
- })
16
-
17
- test('address with no primary name', async () => {
18
- await expect(
19
- getEnsName(publicClient, {
20
- address: address.burn,
21
- }),
22
- ).resolves.toMatchInlineSnapshot('null')
23
- })
24
-
25
- test('custom universal resolver address', async () => {
26
- await expect(
27
- getEnsName(publicClient, {
28
- address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
29
- universalResolverAddress: '0x74E20Bd2A1fE0cdbe45b9A1d89cb7e0a45b36376',
30
- }),
31
- ).resolves.toMatchInlineSnapshot('"awkweb.eth"')
32
- })
33
-
34
- test('chain not provided', async () => {
35
- await expect(
36
- getEnsName(
37
- createPublicClient({
38
- transport: http(localHttpUrl),
39
- }),
40
- { address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e' },
41
- ),
42
- ).rejects.toThrowErrorMatchingInlineSnapshot(
43
- '"client chain not configured. universalResolverAddress is required."',
44
- )
45
- })
46
-
47
- test('universal resolver contract not configured for chain', async () => {
48
- await expect(
49
- getEnsName(
50
- createPublicClient({
51
- chain: optimism,
52
- transport: http(),
53
- }),
54
- {
55
- address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
56
- },
57
- ),
58
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
59
- "Chain \\"Optimism\\" does not support contract \\"ensUniversalResolver\\".
60
-
61
- This could be due to any of the following:
62
- - The chain does not have the contract \\"ensUniversalResolver\\" configured.
63
-
64
- Version: viem@1.0.2"
65
- `)
66
- })
67
-
68
- test('universal resolver contract deployed on later block', async () => {
69
- await expect(
70
- getEnsName(publicClient, {
71
- address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
72
- blockNumber: 14353601n,
73
- }),
74
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
75
- "Chain \\"Localhost\\" does not support contract \\"ensUniversalResolver\\".
76
-
77
- This could be due to any of the following:
78
- - The contract \\"ensUniversalResolver\\" was not deployed until block 16172161 (current block 14353601).
79
-
80
- Version: viem@1.0.2"
81
- `)
82
- })
83
-
84
- test('invalid universal resolver address', async () => {
85
- await expect(
86
- getEnsName(publicClient, {
87
- address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
88
- universalResolverAddress: '0xecb504d39723b0be0e3a9aa33d646642d1051ee1',
89
- }),
90
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
91
- "The contract function \\"reverse\\" reverted with the following reason:
92
- execution reverted
93
-
94
- Contract: 0x0000000000000000000000000000000000000000
95
- Function: reverse(bytes reverseName)
96
- Arguments: (0x28613063663739383831366434623962393836366235333330656561343661313833383266323531650461646472077265766572736500)
97
-
98
- Docs: https://viem.sh/docs/contract/readContract
99
- Version: viem@1.0.2"
100
- `)
101
- })