viem 0.0.1-alpha.25 → 0.0.1-alpha.27

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 (503) 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-NUXMGPMK.js → chunk-2DSFM32P.js} +15 -15
  8. package/dist/{chunk-NUXMGPMK.js.map → chunk-2DSFM32P.js.map} +1 -1
  9. package/dist/{chunk-KSAO4Y4Q.mjs → chunk-AKGXRZDN.mjs} +355 -337
  10. package/dist/chunk-AKGXRZDN.mjs.map +1 -0
  11. package/dist/{chunk-2Y3UZMSP.mjs → chunk-BJJH7RYH.mjs} +61 -16
  12. package/dist/chunk-BJJH7RYH.mjs.map +1 -0
  13. package/dist/{chunk-CD2XJOBJ.js → chunk-JY7JGKSA.js} +136 -91
  14. package/dist/chunk-JY7JGKSA.js.map +1 -0
  15. package/dist/{chunk-LEPQJNVO.mjs → chunk-LF6P33WQ.mjs} +6 -6
  16. package/dist/chunk-LF6P33WQ.mjs.map +1 -0
  17. package/dist/{chunk-THMRUG4D.js → chunk-W7KWIGWO.js} +314 -296
  18. package/dist/chunk-W7KWIGWO.js.map +1 -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.js.map +1 -1
  32. package/dist/ens.mjs +9 -9
  33. package/dist/ens.mjs.map +1 -1
  34. package/dist/{getAbiItem-c8e6e7d4.d.ts → getAbiItem-d2e8bd76.d.ts} +2 -2
  35. package/dist/index.d.ts +44 -21
  36. package/dist/index.js +54 -32
  37. package/dist/index.js.map +1 -1
  38. package/dist/index.mjs +43 -21
  39. package/dist/index.mjs.map +1 -1
  40. package/dist/public.d.ts +13 -12
  41. package/dist/public.js +3 -3
  42. package/dist/public.mjs +2 -2
  43. package/dist/{readContract-4f6e2692.d.ts → readContract-c460f23a.d.ts} +3 -3
  44. package/dist/{rpc-a5a7f376.d.ts → rpc-8c10fc98.d.ts} +3 -5
  45. package/dist/{sendTransaction-e713f90c.d.ts → sendTransaction-7ce442c0.d.ts} +3 -3
  46. package/dist/test.d.ts +4 -4
  47. package/dist/test.js +13 -13
  48. package/dist/test.mjs +1 -1
  49. package/dist/{transactionReceipt-2a86c7c7.d.ts → transactionReceipt-44dbf122.d.ts} +1 -1
  50. package/dist/{transactionRequest-c7794f5e.d.ts → transactionRequest-f437b4ba.d.ts} +1 -1
  51. package/dist/utils/index.d.ts +25 -22
  52. package/dist/utils/index.js +2 -2
  53. package/dist/utils/index.mjs +13 -13
  54. package/dist/wallet.d.ts +6 -6
  55. package/dist/wallet.js +3 -3
  56. package/dist/wallet.mjs +2 -2
  57. package/dist/{watchEvent-c346c12d.d.ts → watchEvent-569c9976.d.ts} +3 -3
  58. package/dist/window.d.ts +2 -2
  59. package/package.json +4 -5
  60. package/public/package.json +4 -0
  61. package/test/package.json +4 -0
  62. package/dist/chunk-2Y3UZMSP.mjs.map +0 -1
  63. package/dist/chunk-CD2XJOBJ.js.map +0 -1
  64. package/dist/chunk-KSAO4Y4Q.mjs.map +0 -1
  65. package/dist/chunk-LEPQJNVO.mjs.map +0 -1
  66. package/dist/chunk-THMRUG4D.js.map +0 -1
  67. package/src/_test/abis.ts +0 -1420
  68. package/src/_test/bench.ts +0 -15
  69. package/src/_test/constants.ts +0 -63
  70. package/src/_test/globalSetup.ts +0 -11
  71. package/src/_test/index.ts +0 -25
  72. package/src/_test/setup.ts +0 -8
  73. package/src/_test/utils.ts +0 -155
  74. package/src/actions/ens/getEnsAddress.bench.ts +0 -26
  75. package/src/actions/ens/getEnsAddress.test.ts +0 -97
  76. package/src/actions/ens/getEnsAddress.ts +0 -122
  77. package/src/actions/ens/getEnsName.bench.ts +0 -30
  78. package/src/actions/ens/getEnsName.test.ts +0 -101
  79. package/src/actions/ens/getEnsName.ts +0 -106
  80. package/src/actions/ens/index.test.ts +0 -12
  81. package/src/actions/ens/index.ts +0 -3
  82. package/src/actions/index.test.ts +0 -81
  83. package/src/actions/index.ts +0 -182
  84. package/src/actions/public/call.bench.ts +0 -48
  85. package/src/actions/public/call.test.ts +0 -99
  86. package/src/actions/public/call.ts +0 -97
  87. package/src/actions/public/createBlockFilter.bench.ts +0 -11
  88. package/src/actions/public/createBlockFilter.test.ts +0 -9
  89. package/src/actions/public/createBlockFilter.ts +0 -14
  90. package/src/actions/public/createContractEventFilter.test.ts +0 -119
  91. package/src/actions/public/createContractEventFilter.ts +0 -69
  92. package/src/actions/public/createEventFilter.test.ts +0 -277
  93. package/src/actions/public/createEventFilter.ts +0 -93
  94. package/src/actions/public/createPendingTransactionFilter.bench.ts +0 -11
  95. package/src/actions/public/createPendingTransactionFilter.test.ts +0 -9
  96. package/src/actions/public/createPendingTransactionFilter.ts +0 -14
  97. package/src/actions/public/estimateGas.bench.ts +0 -46
  98. package/src/actions/public/estimateGas.test.ts +0 -92
  99. package/src/actions/public/estimateGas.ts +0 -61
  100. package/src/actions/public/getBalance.test.ts +0 -83
  101. package/src/actions/public/getBalance.ts +0 -37
  102. package/src/actions/public/getBlock.bench.ts +0 -28
  103. package/src/actions/public/getBlock.test.ts +0 -575
  104. package/src/actions/public/getBlock.ts +0 -65
  105. package/src/actions/public/getBlockNumber.bench.ts +0 -28
  106. package/src/actions/public/getBlockNumber.test.ts +0 -27
  107. package/src/actions/public/getBlockNumber.ts +0 -32
  108. package/src/actions/public/getBlockTransactionCount.bench.ts +0 -15
  109. package/src/actions/public/getBlockTransactionCount.test.ts +0 -57
  110. package/src/actions/public/getBlockTransactionCount.ts +0 -52
  111. package/src/actions/public/getBytecode.test.ts +0 -27
  112. package/src/actions/public/getBytecode.ts +0 -32
  113. package/src/actions/public/getChainId.bench.ts +0 -15
  114. package/src/actions/public/getChainId.test.ts +0 -8
  115. package/src/actions/public/getChainId.ts +0 -7
  116. package/src/actions/public/getFeeHistory.bench.ts +0 -18
  117. package/src/actions/public/getFeeHistory.test.ts +0 -137
  118. package/src/actions/public/getFeeHistory.ts +0 -44
  119. package/src/actions/public/getFilterChanges.bench.ts +0 -13
  120. package/src/actions/public/getFilterChanges.test.ts +0 -383
  121. package/src/actions/public/getFilterChanges.ts +0 -23
  122. package/src/actions/public/getFilterLogs.test.ts +0 -297
  123. package/src/actions/public/getFilterLogs.ts +0 -20
  124. package/src/actions/public/getGasPrice.bench.ts +0 -19
  125. package/src/actions/public/getGasPrice.test.ts +0 -8
  126. package/src/actions/public/getGasPrice.ts +0 -15
  127. package/src/actions/public/getLogs.test.ts +0 -306
  128. package/src/actions/public/getLogs.ts +0 -84
  129. package/src/actions/public/getStorageAt.test.ts +0 -34
  130. package/src/actions/public/getStorageAt.ts +0 -32
  131. package/src/actions/public/getTransaction.bench.ts +0 -33
  132. package/src/actions/public/getTransaction.test.ts +0 -311
  133. package/src/actions/public/getTransaction.ts +0 -95
  134. package/src/actions/public/getTransactionConfirmations.test.ts +0 -69
  135. package/src/actions/public/getTransactionConfirmations.ts +0 -38
  136. package/src/actions/public/getTransactionCount.test.ts +0 -56
  137. package/src/actions/public/getTransactionCount.ts +0 -34
  138. package/src/actions/public/getTransactionReceipt.bench.ts +0 -33
  139. package/src/actions/public/getTransactionReceipt.test.ts +0 -179
  140. package/src/actions/public/getTransactionReceipt.ts +0 -34
  141. package/src/actions/public/index.test.ts +0 -43
  142. package/src/actions/public/index.ts +0 -146
  143. package/src/actions/public/multicall.test.ts +0 -452
  144. package/src/actions/public/multicall.ts +0 -108
  145. package/src/actions/public/readContract.test.ts +0 -328
  146. package/src/actions/public/readContract.ts +0 -73
  147. package/src/actions/public/simulateContract.bench.ts +0 -41
  148. package/src/actions/public/simulateContract.test.ts +0 -410
  149. package/src/actions/public/simulateContract.ts +0 -91
  150. package/src/actions/public/uninstallFilter.bench.ts +0 -13
  151. package/src/actions/public/uninstallFilter.test.ts +0 -65
  152. package/src/actions/public/uninstallFilter.ts +0 -17
  153. package/src/actions/public/waitForTransactionReceipt.test.ts +0 -322
  154. package/src/actions/public/waitForTransactionReceipt.ts +0 -170
  155. package/src/actions/public/watchBlockNumber.test.ts +0 -166
  156. package/src/actions/public/watchBlockNumber.ts +0 -79
  157. package/src/actions/public/watchBlocks.test.ts +0 -210
  158. package/src/actions/public/watchBlocks.ts +0 -114
  159. package/src/actions/public/watchContractEvent.test.ts +0 -305
  160. package/src/actions/public/watchContractEvent.ts +0 -108
  161. package/src/actions/public/watchEvent.test.ts +0 -195
  162. package/src/actions/public/watchEvent.ts +0 -95
  163. package/src/actions/public/watchPendingTransactions.test.ts +0 -116
  164. package/src/actions/public/watchPendingTransactions.ts +0 -74
  165. package/src/actions/test/dropTransaction.test.ts +0 -34
  166. package/src/actions/test/dropTransaction.ts +0 -17
  167. package/src/actions/test/getAutomine.test.ts +0 -14
  168. package/src/actions/test/getAutomine.ts +0 -11
  169. package/src/actions/test/getTxpoolContent.test.ts +0 -45
  170. package/src/actions/test/getTxpoolContent.ts +0 -7
  171. package/src/actions/test/getTxpoolStatus.test.ts +0 -41
  172. package/src/actions/test/getTxpoolStatus.ts +0 -12
  173. package/src/actions/test/impersonateAccount.test.ts +0 -26
  174. package/src/actions/test/impersonateAccount.ts +0 -17
  175. package/src/actions/test/increaseTime.test.ts +0 -18
  176. package/src/actions/test/increaseTime.ts +0 -17
  177. package/src/actions/test/index.test.ts +0 -38
  178. package/src/actions/test/index.ts +0 -77
  179. package/src/actions/test/inspectTxpool.test.ts +0 -50
  180. package/src/actions/test/inspectTxpool.ts +0 -7
  181. package/src/actions/test/mine.test.ts +0 -20
  182. package/src/actions/test/mine.ts +0 -16
  183. package/src/actions/test/removeBlockTimestampInterval.test.ts +0 -23
  184. package/src/actions/test/removeBlockTimestampInterval.ts +0 -7
  185. package/src/actions/test/reset.test.ts +0 -19
  186. package/src/actions/test/reset.ts +0 -18
  187. package/src/actions/test/revert.test.ts +0 -39
  188. package/src/actions/test/revert.ts +0 -14
  189. package/src/actions/test/sendUnsignedTransaction.test.ts +0 -52
  190. package/src/actions/test/sendUnsignedTransaction.ts +0 -19
  191. package/src/actions/test/setAutomine.test.ts +0 -14
  192. package/src/actions/test/setAutomine.ts +0 -8
  193. package/src/actions/test/setBalance.test.ts +0 -29
  194. package/src/actions/test/setBalance.ts +0 -20
  195. package/src/actions/test/setBlockGasLimit.test.ts +0 -21
  196. package/src/actions/test/setBlockGasLimit.ts +0 -17
  197. package/src/actions/test/setBlockTimestampInterval.test.ts +0 -23
  198. package/src/actions/test/setBlockTimestampInterval.ts +0 -16
  199. package/src/actions/test/setCode.test.ts +0 -26
  200. package/src/actions/test/setCode.ts +0 -19
  201. package/src/actions/test/setCoinbase.test.ts +0 -11
  202. package/src/actions/test/setCoinbase.ts +0 -17
  203. package/src/actions/test/setIntervalMining.test.ts +0 -30
  204. package/src/actions/test/setIntervalMining.ts +0 -16
  205. package/src/actions/test/setLoggingEnabled.test.ts +0 -10
  206. package/src/actions/test/setLoggingEnabled.ts +0 -8
  207. package/src/actions/test/setMinGasPrice.test.ts +0 -22
  208. package/src/actions/test/setMinGasPrice.ts +0 -17
  209. package/src/actions/test/setNextBlockBaseFeePerGas.test.ts +0 -23
  210. package/src/actions/test/setNextBlockBaseFeePerGas.ts +0 -17
  211. package/src/actions/test/setNextBlockTimestamp.test.ts +0 -19
  212. package/src/actions/test/setNextBlockTimestamp.ts +0 -17
  213. package/src/actions/test/setNonce.test.ts +0 -28
  214. package/src/actions/test/setNonce.ts +0 -20
  215. package/src/actions/test/setRpcUrl.test.ts +0 -9
  216. package/src/actions/test/setRpcUrl.ts +0 -8
  217. package/src/actions/test/setStorageAt.test.ts +0 -36
  218. package/src/actions/test/setStorageAt.ts +0 -26
  219. package/src/actions/test/snapshot.test.ts +0 -18
  220. package/src/actions/test/snapshot.ts +0 -7
  221. package/src/actions/test/stopImpersonatingAccount.test.ts +0 -29
  222. package/src/actions/test/stopImpersonatingAccount.ts +0 -17
  223. package/src/actions/wallet/addChain.test.ts +0 -14
  224. package/src/actions/wallet/addChain.ts +0 -21
  225. package/src/actions/wallet/deployContract.test.ts +0 -55
  226. package/src/actions/wallet/deployContract.ts +0 -38
  227. package/src/actions/wallet/getAccounts.test.ts +0 -22
  228. package/src/actions/wallet/getAccounts.ts +0 -7
  229. package/src/actions/wallet/getPermissions.test.ts +0 -24
  230. package/src/actions/wallet/getPermissions.ts +0 -9
  231. package/src/actions/wallet/index.test.ts +0 -21
  232. package/src/actions/wallet/index.ts +0 -36
  233. package/src/actions/wallet/requestAccounts.test.ts +0 -13
  234. package/src/actions/wallet/requestAccounts.ts +0 -7
  235. package/src/actions/wallet/requestPermissions.test.ts +0 -26
  236. package/src/actions/wallet/requestPermissions.ts +0 -19
  237. package/src/actions/wallet/sendTransaction.bench.ts +0 -57
  238. package/src/actions/wallet/sendTransaction.test.ts +0 -440
  239. package/src/actions/wallet/sendTransaction.ts +0 -77
  240. package/src/actions/wallet/signMessage.test.ts +0 -61
  241. package/src/actions/wallet/signMessage.ts +0 -35
  242. package/src/actions/wallet/switchChain.test.ts +0 -21
  243. package/src/actions/wallet/switchChain.ts +0 -19
  244. package/src/actions/wallet/watchAsset.test.ts +0 -40
  245. package/src/actions/wallet/watchAsset.ts +0 -16
  246. package/src/actions/wallet/writeContract.test.ts +0 -84
  247. package/src/actions/wallet/writeContract.ts +0 -47
  248. package/src/chains.test.ts +0 -439
  249. package/src/chains.ts +0 -99
  250. package/src/clients/createClient.test.ts +0 -295
  251. package/src/clients/createClient.ts +0 -81
  252. package/src/clients/createPublicClient.test.ts +0 -165
  253. package/src/clients/createPublicClient.ts +0 -49
  254. package/src/clients/createTestClient.test.ts +0 -145
  255. package/src/clients/createTestClient.ts +0 -72
  256. package/src/clients/createWalletClient.test.ts +0 -121
  257. package/src/clients/createWalletClient.ts +0 -54
  258. package/src/clients/index.test.ts +0 -19
  259. package/src/clients/index.ts +0 -31
  260. package/src/clients/transports/createTransport.test.ts +0 -58
  261. package/src/clients/transports/createTransport.ts +0 -48
  262. package/src/clients/transports/custom.test.ts +0 -98
  263. package/src/clients/transports/custom.ts +0 -34
  264. package/src/clients/transports/fallback.test.ts +0 -257
  265. package/src/clients/transports/fallback.ts +0 -50
  266. package/src/clients/transports/http.test.ts +0 -109
  267. package/src/clients/transports/http.ts +0 -51
  268. package/src/clients/transports/index.test.ts +0 -15
  269. package/src/clients/transports/index.ts +0 -17
  270. package/src/clients/transports/webSocket.test.ts +0 -164
  271. package/src/clients/transports/webSocket.ts +0 -118
  272. package/src/constants/abis.test.ts +0 -53
  273. package/src/constants/abis.ts +0 -44
  274. package/src/constants/index.test.ts +0 -14
  275. package/src/constants/index.ts +0 -3
  276. package/src/constants/solidity.test.ts +0 -41
  277. package/src/constants/solidity.ts +0 -35
  278. package/src/contract.test.ts +0 -31
  279. package/src/contract.ts +0 -68
  280. package/src/ens.test.ts +0 -15
  281. package/src/ens.ts +0 -8
  282. package/src/errors/abi.test.ts +0 -81
  283. package/src/errors/abi.ts +0 -254
  284. package/src/errors/address.test.ts +0 -14
  285. package/src/errors/address.ts +0 -9
  286. package/src/errors/base.test.ts +0 -114
  287. package/src/errors/base.ts +0 -57
  288. package/src/errors/block.test.ts +0 -24
  289. package/src/errors/block.ts +0 -18
  290. package/src/errors/chain.test.ts +0 -46
  291. package/src/errors/chain.ts +0 -33
  292. package/src/errors/contract.test.ts +0 -233
  293. package/src/errors/contract.ts +0 -178
  294. package/src/errors/data.ts +0 -20
  295. package/src/errors/encoding.ts +0 -60
  296. package/src/errors/index.ts +0 -82
  297. package/src/errors/log.ts +0 -8
  298. package/src/errors/request.test.ts +0 -330
  299. package/src/errors/request.ts +0 -163
  300. package/src/errors/rpc.test.ts +0 -87
  301. package/src/errors/rpc.ts +0 -113
  302. package/src/errors/transaction.test.ts +0 -83
  303. package/src/errors/transaction.ts +0 -54
  304. package/src/errors/transport.test.ts +0 -11
  305. package/src/errors/transport.ts +0 -12
  306. package/src/index.test.ts +0 -116
  307. package/src/index.ts +0 -132
  308. package/src/public.test.ts +0 -36
  309. package/src/public.ts +0 -76
  310. package/src/test.test.ts +0 -38
  311. package/src/test.ts +0 -52
  312. package/src/types/block.ts +0 -71
  313. package/src/types/chain.ts +0 -6
  314. package/src/types/contract.ts +0 -497
  315. package/src/types/eip1193.ts +0 -1041
  316. package/src/types/fee.ts +0 -47
  317. package/src/types/filter.ts +0 -8
  318. package/src/types/formatter.ts +0 -23
  319. package/src/types/index.ts +0 -84
  320. package/src/types/log.ts +0 -22
  321. package/src/types/misc.ts +0 -5
  322. package/src/types/multicall.ts +0 -82
  323. package/src/types/rpc.ts +0 -35
  324. package/src/types/transaction.ts +0 -145
  325. package/src/types/utils.ts +0 -88
  326. package/src/types/window.ts +0 -9
  327. package/src/utils/abi/decodeAbi.bench.ts +0 -135
  328. package/src/utils/abi/decodeAbi.test.ts +0 -1614
  329. package/src/utils/abi/decodeAbi.ts +0 -300
  330. package/src/utils/abi/decodeDeployData.test.ts +0 -151
  331. package/src/utils/abi/decodeDeployData.ts +0 -44
  332. package/src/utils/abi/decodeErrorResult.test.ts +0 -230
  333. package/src/utils/abi/decodeErrorResult.ts +0 -45
  334. package/src/utils/abi/decodeEventLog.test.ts +0 -542
  335. package/src/utils/abi/decodeEventLog.ts +0 -107
  336. package/src/utils/abi/decodeFunctionData.test.ts +0 -138
  337. package/src/utils/abi/decodeFunctionData.ts +0 -32
  338. package/src/utils/abi/decodeFunctionResult.test.ts +0 -333
  339. package/src/utils/abi/decodeFunctionResult.ts +0 -57
  340. package/src/utils/abi/encodeAbi.bench.ts +0 -163
  341. package/src/utils/abi/encodeAbi.test.ts +0 -1447
  342. package/src/utils/abi/encodeAbi.ts +0 -273
  343. package/src/utils/abi/encodeDeployData.test.ts +0 -124
  344. package/src/utils/abi/encodeDeployData.ts +0 -40
  345. package/src/utils/abi/encodeErrorResult.test.ts +0 -192
  346. package/src/utils/abi/encodeErrorResult.ts +0 -47
  347. package/src/utils/abi/encodeEventTopics.test.ts +0 -345
  348. package/src/utils/abi/encodeEventTopics.ts +0 -75
  349. package/src/utils/abi/encodeFunctionData.test.ts +0 -138
  350. package/src/utils/abi/encodeFunctionData.ts +0 -42
  351. package/src/utils/abi/encodeFunctionResult.test.ts +0 -279
  352. package/src/utils/abi/encodeFunctionResult.ts +0 -41
  353. package/src/utils/abi/formatAbiItem.test.ts +0 -335
  354. package/src/utils/abi/formatAbiItem.ts +0 -41
  355. package/src/utils/abi/formatAbiItemWithArgs.test.ts +0 -291
  356. package/src/utils/abi/formatAbiItemWithArgs.ts +0 -27
  357. package/src/utils/abi/getAbiItem.test.ts +0 -547
  358. package/src/utils/abi/getAbiItem.ts +0 -95
  359. package/src/utils/abi/index.test.ts +0 -24
  360. package/src/utils/abi/index.ts +0 -48
  361. package/src/utils/address/getAddress.bench.ts +0 -22
  362. package/src/utils/address/getAddress.test.ts +0 -46
  363. package/src/utils/address/getAddress.ts +0 -28
  364. package/src/utils/address/getContractAddress.bench.ts +0 -20
  365. package/src/utils/address/getContractAddress.test.ts +0 -78
  366. package/src/utils/address/getContractAddress.ts +0 -59
  367. package/src/utils/address/index.test.ts +0 -17
  368. package/src/utils/address/index.ts +0 -16
  369. package/src/utils/address/isAddress.test.ts +0 -10
  370. package/src/utils/address/isAddress.ts +0 -10
  371. package/src/utils/address/isAddressEqual.test.ts +0 -55
  372. package/src/utils/address/isAddressEqual.ts +0 -6
  373. package/src/utils/buildRequest.test.ts +0 -365
  374. package/src/utils/buildRequest.ts +0 -45
  375. package/src/utils/chain.test.ts +0 -43
  376. package/src/utils/chain.ts +0 -8
  377. package/src/utils/contract/extractFunctionParts.test.ts +0 -109
  378. package/src/utils/contract/extractFunctionParts.ts +0 -27
  379. package/src/utils/contract/getContractError.test.ts +0 -282
  380. package/src/utils/contract/getContractError.ts +0 -58
  381. package/src/utils/contract/index.test.ts +0 -15
  382. package/src/utils/contract/index.ts +0 -8
  383. package/src/utils/data/concat.test.ts +0 -35
  384. package/src/utils/data/concat.ts +0 -34
  385. package/src/utils/data/index.test.ts +0 -23
  386. package/src/utils/data/index.ts +0 -13
  387. package/src/utils/data/isBytes.test.ts +0 -9
  388. package/src/utils/data/isBytes.ts +0 -7
  389. package/src/utils/data/isHex.test.ts +0 -13
  390. package/src/utils/data/isHex.ts +0 -5
  391. package/src/utils/data/pad.bench.ts +0 -30
  392. package/src/utils/data/pad.test.ts +0 -367
  393. package/src/utils/data/pad.ts +0 -53
  394. package/src/utils/data/size.test.ts +0 -18
  395. package/src/utils/data/size.ts +0 -13
  396. package/src/utils/data/slice.test.ts +0 -203
  397. package/src/utils/data/slice.ts +0 -60
  398. package/src/utils/data/trim.bench.ts +0 -34
  399. package/src/utils/data/trim.test.ts +0 -175
  400. package/src/utils/data/trim.ts +0 -33
  401. package/src/utils/encoding/decodeBytes.bench.ts +0 -40
  402. package/src/utils/encoding/decodeBytes.test.ts +0 -144
  403. package/src/utils/encoding/decodeBytes.ts +0 -63
  404. package/src/utils/encoding/decodeHex.bench.ts +0 -24
  405. package/src/utils/encoding/decodeHex.test.ts +0 -167
  406. package/src/utils/encoding/decodeHex.ts +0 -76
  407. package/src/utils/encoding/decodeRlp.bench.ts +0 -34
  408. package/src/utils/encoding/decodeRlp.test.ts +0 -350
  409. package/src/utils/encoding/decodeRlp.ts +0 -121
  410. package/src/utils/encoding/encodeBytes.bench.ts +0 -29
  411. package/src/utils/encoding/encodeBytes.test.ts +0 -676
  412. package/src/utils/encoding/encodeBytes.ts +0 -59
  413. package/src/utils/encoding/encodeHex.bench.ts +0 -49
  414. package/src/utils/encoding/encodeHex.test.ts +0 -232
  415. package/src/utils/encoding/encodeHex.ts +0 -104
  416. package/src/utils/encoding/encodeRlp.bench.ts +0 -54
  417. package/src/utils/encoding/encodeRlp.test.ts +0 -254
  418. package/src/utils/encoding/encodeRlp.ts +0 -48
  419. package/src/utils/encoding/index.test.ts +0 -32
  420. package/src/utils/encoding/index.ts +0 -36
  421. package/src/utils/ens/index.test.ts +0 -14
  422. package/src/utils/ens/index.ts +0 -7
  423. package/src/utils/ens/labelhash.test.ts +0 -55
  424. package/src/utils/ens/labelhash.ts +0 -16
  425. package/src/utils/ens/namehash.test.ts +0 -65
  426. package/src/utils/ens/namehash.ts +0 -28
  427. package/src/utils/ens/normalize.bench.ts +0 -14
  428. package/src/utils/ens/normalize.test.ts +0 -35
  429. package/src/utils/ens/normalize.ts +0 -14
  430. package/src/utils/ens/packetToBytes.test.ts +0 -11
  431. package/src/utils/ens/packetToBytes.ts +0 -29
  432. package/src/utils/formatters/block.bench.ts +0 -51
  433. package/src/utils/formatters/block.test.ts +0 -115
  434. package/src/utils/formatters/block.ts +0 -37
  435. package/src/utils/formatters/extract.test.ts +0 -14
  436. package/src/utils/formatters/extract.ts +0 -18
  437. package/src/utils/formatters/feeHistory.test.ts +0 -66
  438. package/src/utils/formatters/feeHistory.ts +0 -12
  439. package/src/utils/formatters/format.test.ts +0 -93
  440. package/src/utils/formatters/format.ts +0 -90
  441. package/src/utils/formatters/index.test.ts +0 -27
  442. package/src/utils/formatters/index.ts +0 -34
  443. package/src/utils/formatters/log.test.ts +0 -79
  444. package/src/utils/formatters/log.ts +0 -12
  445. package/src/utils/formatters/transaction.test.ts +0 -271
  446. package/src/utils/formatters/transaction.ts +0 -63
  447. package/src/utils/formatters/transactionReceipt.bench.ts +0 -73
  448. package/src/utils/formatters/transactionReceipt.test.ts +0 -151
  449. package/src/utils/formatters/transactionReceipt.ts +0 -63
  450. package/src/utils/formatters/transactionRequest.bench.ts +0 -29
  451. package/src/utils/formatters/transactionRequest.test.ts +0 -237
  452. package/src/utils/formatters/transactionRequest.ts +0 -56
  453. package/src/utils/hash/getEventSignature.test.ts +0 -61
  454. package/src/utils/hash/getEventSignature.ts +0 -4
  455. package/src/utils/hash/getFunctionSignature.test.ts +0 -22
  456. package/src/utils/hash/getFunctionSignature.ts +0 -5
  457. package/src/utils/hash/hashFunction.test.ts +0 -65
  458. package/src/utils/hash/hashFunction.ts +0 -12
  459. package/src/utils/hash/index.test.ts +0 -13
  460. package/src/utils/hash/index.ts +0 -5
  461. package/src/utils/hash/keccak256.test.ts +0 -59
  462. package/src/utils/hash/keccak256.ts +0 -21
  463. package/src/utils/index.test.ts +0 -111
  464. package/src/utils/index.ts +0 -142
  465. package/src/utils/observe.test.ts +0 -176
  466. package/src/utils/observe.ts +0 -66
  467. package/src/utils/poll.test.ts +0 -127
  468. package/src/utils/poll.ts +0 -42
  469. package/src/utils/promise/index.test.ts +0 -14
  470. package/src/utils/promise/index.ts +0 -3
  471. package/src/utils/promise/withCache.test.ts +0 -97
  472. package/src/utils/promise/withCache.ts +0 -73
  473. package/src/utils/promise/withRetry.test.ts +0 -231
  474. package/src/utils/promise/withRetry.ts +0 -61
  475. package/src/utils/promise/withTimeout.test.ts +0 -37
  476. package/src/utils/promise/withTimeout.ts +0 -39
  477. package/src/utils/rpc.test.ts +0 -990
  478. package/src/utils/rpc.ts +0 -294
  479. package/src/utils/stringify.test.ts +0 -13
  480. package/src/utils/stringify.ts +0 -5
  481. package/src/utils/uid.ts +0 -14
  482. package/src/utils/unit/constants.test.ts +0 -22
  483. package/src/utils/unit/constants.ts +0 -12
  484. package/src/utils/unit/formatEther.test.ts +0 -75
  485. package/src/utils/unit/formatEther.ts +0 -6
  486. package/src/utils/unit/formatGwei.test.ts +0 -32
  487. package/src/utils/unit/formatGwei.ts +0 -6
  488. package/src/utils/unit/formatUnit.bench.ts +0 -21
  489. package/src/utils/unit/formatUnit.test.ts +0 -40
  490. package/src/utils/unit/formatUnit.ts +0 -16
  491. package/src/utils/unit/index.test.ts +0 -28
  492. package/src/utils/unit/index.ts +0 -7
  493. package/src/utils/unit/parseEther.test.ts +0 -126
  494. package/src/utils/unit/parseEther.ts +0 -6
  495. package/src/utils/unit/parseGwei.test.ts +0 -50
  496. package/src/utils/unit/parseGwei.ts +0 -6
  497. package/src/utils/unit/parseUnit.bench.ts +0 -21
  498. package/src/utils/unit/parseUnit.test.ts +0 -54
  499. package/src/utils/unit/parseUnit.ts +0 -27
  500. package/src/utils/wait.ts +0 -3
  501. package/src/wallet.test.ts +0 -19
  502. package/src/wallet.ts +0 -23
  503. package/src/window.ts +0 -1
@@ -1,410 +0,0 @@
1
- /**
2
- * TODO: Heaps more test cases :D
3
- * - Complex calldata types
4
- * - Complex return types (tuple/structs)
5
- * - EIP-1559
6
- * - Calls against blocks
7
- * - Custom chain types
8
- * - Custom nonce
9
- */
10
-
11
- import { describe, expect, test } from 'vitest'
12
- import {
13
- accounts,
14
- deployBAYC,
15
- publicClient,
16
- testClient,
17
- wagmiContractConfig,
18
- walletClient,
19
- } from '../../_test'
20
- import { baycContractConfig } from '../../_test/abis'
21
- import { encodeFunctionData } from '../../utils'
22
- import { mine } from '../test'
23
- import { sendTransaction } from '../wallet'
24
-
25
- import { simulateContract } from './simulateContract'
26
- import { deployErrorExample } from '../../_test/utils'
27
- import { errorsExampleABI } from '../../_test/generated'
28
-
29
- describe('wagmi', () => {
30
- test('default', async () => {
31
- expect(
32
- (
33
- await simulateContract(publicClient, {
34
- ...wagmiContractConfig,
35
- from: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
36
- functionName: 'mint',
37
- args: [69420n],
38
- })
39
- ).result,
40
- ).toEqual(undefined)
41
- expect(
42
- (
43
- await simulateContract(publicClient, {
44
- ...wagmiContractConfig,
45
- functionName: 'safeTransferFrom',
46
- from: '0x1a1E021A302C237453D3D45c7B82B19cEEB7E2e6',
47
- args: [
48
- '0x1a1E021A302C237453D3D45c7B82B19cEEB7E2e6',
49
- '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
50
- 1n,
51
- ],
52
- })
53
- ).result,
54
- ).toEqual(undefined)
55
- })
56
-
57
- test('overloaded function', async () => {
58
- expect(
59
- (
60
- await simulateContract(publicClient, {
61
- ...wagmiContractConfig,
62
- from: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
63
- functionName: 'mint',
64
- })
65
- ).result,
66
- ).toEqual(undefined)
67
- })
68
-
69
- test('revert', async () => {
70
- await expect(() =>
71
- simulateContract(publicClient, {
72
- ...wagmiContractConfig,
73
- functionName: 'approve',
74
- args: ['0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC', 420n],
75
- from: accounts[0].address,
76
- }),
77
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
78
- "The contract function \\"approve\\" reverted with the following reason:
79
- ERC721: approval to current owner
80
-
81
- Contract: 0x0000000000000000000000000000000000000000
82
- Function: approve(address to, uint256 tokenId)
83
- Arguments: (0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC, 420)
84
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
85
-
86
- Docs: https://viem.sh/docs/contract/simulateContract
87
- Version: viem@1.0.2"
88
- `)
89
- await expect(() =>
90
- simulateContract(publicClient, {
91
- ...wagmiContractConfig,
92
- functionName: 'mint',
93
- args: [1n],
94
- from: accounts[0].address,
95
- }),
96
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
97
- "The contract function \\"mint\\" reverted with the following reason:
98
- Token ID is taken
99
-
100
- Contract: 0x0000000000000000000000000000000000000000
101
- Function: mint(uint256 tokenId)
102
- Arguments: (1)
103
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
104
-
105
- Docs: https://viem.sh/docs/contract/simulateContract
106
- Version: viem@1.0.2"
107
- `)
108
- await expect(() =>
109
- simulateContract(publicClient, {
110
- ...wagmiContractConfig,
111
- functionName: 'safeTransferFrom',
112
- from: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
113
- args: [
114
- '0x1a1E021A302C237453D3D45c7B82B19cEEB7E2e6',
115
- '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
116
- 1n,
117
- ],
118
- }),
119
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
120
- "The contract function \\"safeTransferFrom\\" reverted with the following reason:
121
- ERC721: transfer caller is not owner nor approved
122
-
123
- Contract: 0x0000000000000000000000000000000000000000
124
- Function: safeTransferFrom(address from, address to, uint256 tokenId)
125
- Arguments: (0x1a1E021A302C237453D3D45c7B82B19cEEB7E2e6, 0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC, 1)
126
- Sender: 0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC
127
-
128
- Docs: https://viem.sh/docs/contract/simulateContract
129
- Version: viem@1.0.2"
130
- `)
131
- })
132
- })
133
-
134
- describe('BAYC', () => {
135
- describe('default', () => {
136
- test('mintApe', async () => {
137
- const { contractAddress } = await deployBAYC()
138
-
139
- // Set sale state to active
140
- // TODO: replace w/ writeContract
141
- await sendTransaction(walletClient, {
142
- data: encodeFunctionData({
143
- abi: baycContractConfig.abi,
144
- functionName: 'flipSaleState',
145
- }),
146
- from: accounts[0].address,
147
- to: contractAddress!,
148
- })
149
- await mine(testClient, { blocks: 1 })
150
-
151
- // Mint an Ape!
152
- expect(
153
- (
154
- await simulateContract(publicClient, {
155
- abi: baycContractConfig.abi,
156
- address: contractAddress!,
157
- functionName: 'mintApe',
158
- from: accounts[0].address,
159
- args: [1n],
160
- value: 1000000000000000000n,
161
- })
162
- ).result,
163
- ).toBe(undefined)
164
- })
165
-
166
- test('get a free $100k', async () => {
167
- const { contractAddress } = await deployBAYC()
168
-
169
- // Reserve apes
170
- expect(
171
- (
172
- await simulateContract(publicClient, {
173
- abi: baycContractConfig.abi,
174
- address: contractAddress!,
175
- functionName: 'reserveApes',
176
- from: accounts[0].address,
177
- })
178
- ).result,
179
- ).toBe(undefined)
180
- })
181
- })
182
-
183
- describe('revert', () => {
184
- test('sale inactive', async () => {
185
- const { contractAddress } = await deployBAYC()
186
-
187
- // Expect mint to fail.
188
- await expect(() =>
189
- simulateContract(publicClient, {
190
- abi: baycContractConfig.abi,
191
- address: contractAddress!,
192
- functionName: 'mintApe',
193
- from: accounts[0].address,
194
- args: [1n],
195
- }),
196
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
197
- "The contract function \\"mintApe\\" reverted with the following reason:
198
- Sale must be active to mint Ape
199
-
200
- Contract: 0x0000000000000000000000000000000000000000
201
- Function: mintApe(uint256 numberOfTokens)
202
- Arguments: (1)
203
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
204
-
205
- Docs: https://viem.sh/docs/contract/simulateContract
206
- Version: viem@1.0.2"
207
- `)
208
- })
209
- })
210
- })
211
-
212
- describe('contract errors', () => {
213
- test('revert', async () => {
214
- const { contractAddress } = await deployErrorExample()
215
-
216
- await expect(() =>
217
- simulateContract(publicClient, {
218
- abi: errorsExampleABI,
219
- address: contractAddress!,
220
- functionName: 'revertWrite',
221
- from: accounts[0].address,
222
- }),
223
- ).rejects.toMatchInlineSnapshot(`
224
- [ContractFunctionExecutionError: The contract function "revertWrite" reverted with the following reason:
225
- This is a revert message
226
-
227
- Contract: 0x0000000000000000000000000000000000000000
228
- Function: revertWrite()
229
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
230
-
231
- Docs: https://viem.sh/docs/contract/simulateContract
232
- Version: viem@1.0.2]
233
- `)
234
- })
235
-
236
- test('assert', async () => {
237
- const { contractAddress } = await deployErrorExample()
238
-
239
- await expect(() =>
240
- simulateContract(publicClient, {
241
- abi: errorsExampleABI,
242
- address: contractAddress!,
243
- functionName: 'assertWrite',
244
- from: accounts[0].address,
245
- }),
246
- ).rejects.toMatchInlineSnapshot(`
247
- [ContractFunctionExecutionError: The contract function "assertWrite" reverted with the following reason:
248
- An \`assert\` condition failed.
249
-
250
- Contract: 0x0000000000000000000000000000000000000000
251
- Function: assertWrite()
252
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
253
-
254
- Docs: https://viem.sh/docs/contract/simulateContract
255
- Version: viem@1.0.2]
256
- `)
257
- })
258
-
259
- test('overflow', async () => {
260
- const { contractAddress } = await deployErrorExample()
261
-
262
- await expect(() =>
263
- simulateContract(publicClient, {
264
- abi: errorsExampleABI,
265
- address: contractAddress!,
266
- functionName: 'overflowWrite',
267
- from: accounts[0].address,
268
- }),
269
- ).rejects.toMatchInlineSnapshot(`
270
- [ContractFunctionExecutionError: The contract function "overflowWrite" reverted with the following reason:
271
- Arithmic operation resulted in underflow or overflow.
272
-
273
- Contract: 0x0000000000000000000000000000000000000000
274
- Function: overflowWrite()
275
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
276
-
277
- Docs: https://viem.sh/docs/contract/simulateContract
278
- Version: viem@1.0.2]
279
- `)
280
- })
281
-
282
- test('divide by zero', async () => {
283
- const { contractAddress } = await deployErrorExample()
284
-
285
- await expect(() =>
286
- simulateContract(publicClient, {
287
- abi: errorsExampleABI,
288
- address: contractAddress!,
289
- functionName: 'divideByZeroWrite',
290
- from: accounts[0].address,
291
- }),
292
- ).rejects.toMatchInlineSnapshot(`
293
- [ContractFunctionExecutionError: The contract function "divideByZeroWrite" reverted with the following reason:
294
- Division or modulo by zero (e.g. \`5 / 0\` or \`23 % 0\`).
295
-
296
- Contract: 0x0000000000000000000000000000000000000000
297
- Function: divideByZeroWrite()
298
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
299
-
300
- Docs: https://viem.sh/docs/contract/simulateContract
301
- Version: viem@1.0.2]
302
- `)
303
- })
304
-
305
- test('require', async () => {
306
- const { contractAddress } = await deployErrorExample()
307
-
308
- await expect(() =>
309
- simulateContract(publicClient, {
310
- abi: errorsExampleABI,
311
- address: contractAddress!,
312
- functionName: 'requireWrite',
313
- from: accounts[0].address,
314
- }),
315
- ).rejects.toMatchInlineSnapshot(`
316
- [ContractFunctionExecutionError: The contract function "requireWrite" reverted with the following reason:
317
- execution reverted
318
-
319
- Contract: 0x0000000000000000000000000000000000000000
320
- Function: requireWrite()
321
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
322
-
323
- Docs: https://viem.sh/docs/contract/simulateContract
324
- Version: viem@1.0.2]
325
- `)
326
- })
327
-
328
- test('custom error: simple', async () => {
329
- const { contractAddress } = await deployErrorExample()
330
-
331
- await expect(() =>
332
- simulateContract(publicClient, {
333
- abi: errorsExampleABI,
334
- address: contractAddress!,
335
- functionName: 'simpleCustomWrite',
336
- from: accounts[0].address,
337
- }),
338
- ).rejects.toMatchInlineSnapshot(`
339
- [ContractFunctionExecutionError: The contract function "simpleCustomWrite" reverted.
340
-
341
- Error: SimpleError(string message)
342
- Arguments: (bugger)
343
-
344
- Contract: 0x0000000000000000000000000000000000000000
345
- Function: simpleCustomWrite()
346
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
347
-
348
- Docs: https://viem.sh/docs/contract/simulateContract
349
- Version: viem@1.0.2]
350
- `)
351
- })
352
-
353
- test('custom error: complex', async () => {
354
- const { contractAddress } = await deployErrorExample()
355
-
356
- await expect(() =>
357
- simulateContract(publicClient, {
358
- abi: errorsExampleABI,
359
- address: contractAddress!,
360
- functionName: 'complexCustomWrite',
361
- from: accounts[0].address,
362
- }),
363
- ).rejects.toMatchInlineSnapshot(`
364
- [ContractFunctionExecutionError: The contract function "complexCustomWrite" reverted.
365
-
366
- Error: ComplexError((address sender, uint256 bar), string message, uint256 number)
367
- Arguments: ({"sender":"0x0000000000000000000000000000000000000000","bar":"69"}, bugger, 69)
368
-
369
- Contract: 0x0000000000000000000000000000000000000000
370
- Function: complexCustomWrite()
371
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
372
-
373
- Docs: https://viem.sh/docs/contract/simulateContract
374
- Version: viem@1.0.2]
375
- `)
376
- })
377
- })
378
-
379
- test('fake contract address', async () => {
380
- await expect(() =>
381
- simulateContract(publicClient, {
382
- abi: [
383
- {
384
- name: 'mint',
385
- type: 'function',
386
- stateMutability: 'nonpayable',
387
- inputs: [],
388
- outputs: [{ type: 'uint256' }],
389
- },
390
- ],
391
- address: '0x0000000000000000000000000000000000000069',
392
- functionName: 'mint',
393
- from: accounts[0].address,
394
- }),
395
- ).rejects.toThrowErrorMatchingInlineSnapshot(`
396
- "The contract function \\"mint\\" returned no data (\\"0x\\").
397
-
398
- This could be due to any of the following:
399
- - The contract does not have the function \\"mint\\",
400
- - The parameters passed to the contract function may be invalid, or
401
- - The address is not a contract.
402
-
403
- Contract: 0x0000000000000000000000000000000000000000
404
- Function: mint()
405
- Sender: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266
406
-
407
- Docs: https://viem.sh/docs/contract/simulateContract
408
- Version: viem@1.0.2"
409
- `)
410
- })
@@ -1,91 +0,0 @@
1
- import { Abi, Narrow } from 'abitype'
2
-
3
- import type { PublicClient } from '../../clients'
4
- import { BaseError } from '../../errors'
5
- import type {
6
- Chain,
7
- ContractConfig,
8
- ExtractResultFromAbi,
9
- GetValue,
10
- } from '../../types'
11
- import {
12
- DecodeFunctionResultArgs,
13
- EncodeFunctionDataArgs,
14
- decodeFunctionResult,
15
- encodeFunctionData,
16
- getContractError,
17
- } from '../../utils'
18
- import { WriteContractArgs } from '../wallet'
19
- import { call, CallArgs } from './call'
20
-
21
- export type SimulateContractArgs<
22
- TChain extends Chain = Chain,
23
- TAbi extends Abi | readonly unknown[] = Abi,
24
- TFunctionName extends string = any,
25
- > = Omit<CallArgs<TChain>, 'to' | 'data' | 'value'> &
26
- ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'> & {
27
- value?: GetValue<TAbi, TFunctionName, CallArgs<TChain>['value']>
28
- }
29
-
30
- export type SimulateContractResponse<
31
- TChain extends Chain = Chain,
32
- TAbi extends Abi | readonly unknown[] = Abi,
33
- TFunctionName extends string = string,
34
- > = {
35
- result: ExtractResultFromAbi<TAbi, TFunctionName>
36
- request: WriteContractArgs<TChain, TAbi, TFunctionName> &
37
- ContractConfig<TAbi, TFunctionName, 'payable' | 'nonpayable'>
38
- }
39
-
40
- export async function simulateContract<
41
- TChain extends Chain,
42
- TAbi extends Abi | readonly unknown[],
43
- TFunctionName extends string,
44
- >(
45
- client: PublicClient,
46
- {
47
- abi,
48
- address,
49
- args,
50
- functionName,
51
- ...callRequest
52
- }: SimulateContractArgs<TChain, TAbi, TFunctionName>,
53
- ): Promise<SimulateContractResponse<TChain, TAbi, TFunctionName>> {
54
- const calldata = encodeFunctionData({
55
- abi,
56
- args,
57
- functionName,
58
- } as unknown as EncodeFunctionDataArgs<TAbi, TFunctionName>)
59
- try {
60
- const { data } = await call(client, {
61
- data: calldata,
62
- to: address,
63
- ...callRequest,
64
- } as unknown as CallArgs<TChain>)
65
- const result = decodeFunctionResult({
66
- abi,
67
- args,
68
- functionName,
69
- data: data || '0x',
70
- } as DecodeFunctionResultArgs)
71
- return {
72
- result,
73
- request: {
74
- abi,
75
- address,
76
- args,
77
- functionName,
78
- ...callRequest,
79
- },
80
- } as unknown as SimulateContractResponse<TChain, TAbi, TFunctionName>
81
- } catch (err) {
82
- throw getContractError(err as BaseError, {
83
- abi: abi as Abi,
84
- address,
85
- args,
86
- docsPath: '/docs/contract/simulateContract',
87
- functionName,
88
- sender: callRequest.from,
89
- })
90
- }
91
- }
@@ -1,13 +0,0 @@
1
- import { bench, describe } from 'vitest'
2
-
3
- import { publicClient } from '../../_test'
4
- import { createPendingTransactionFilter } from './createPendingTransactionFilter'
5
- import { uninstallFilter } from './uninstallFilter'
6
-
7
- const filter = await createPendingTransactionFilter(publicClient)
8
-
9
- describe('Get Filter Changes', () => {
10
- bench('viem: `uninstallFilter`', async () => {
11
- await uninstallFilter(publicClient, { filter })
12
- })
13
- })
@@ -1,65 +0,0 @@
1
- import { assertType, expect, test } from 'vitest'
2
-
3
- import { accounts, publicClient, testClient, walletClient } from '../../_test'
4
-
5
- import { createPendingTransactionFilter } from './createPendingTransactionFilter'
6
- import { getFilterChanges } from './getFilterChanges'
7
- import { uninstallFilter } from './uninstallFilter'
8
- import { mine } from '../test'
9
- import { sendTransaction } from '../wallet'
10
- import { parseEther } from '../../utils'
11
- import type { Hash } from '../../types'
12
-
13
- test('default', async () => {
14
- const filter = await createPendingTransactionFilter(publicClient)
15
- expect(await uninstallFilter(publicClient, { filter })).toBeTruthy()
16
- })
17
-
18
- test('pending txns', async () => {
19
- const filter = await createPendingTransactionFilter(publicClient)
20
-
21
- await sendTransaction(walletClient, {
22
- from: accounts[0].address,
23
- to: accounts[1].address,
24
- value: parseEther('1'),
25
- })
26
- await sendTransaction(walletClient, {
27
- from: accounts[0].address,
28
- to: accounts[1].address,
29
- value: parseEther('1'),
30
- })
31
-
32
- let hashes = await getFilterChanges(publicClient, { filter })
33
- assertType<Hash[]>(hashes)
34
- expect(hashes.length).toBe(2)
35
-
36
- mine(testClient, { blocks: 1 })
37
-
38
- hashes = await getFilterChanges(publicClient, { filter })
39
- expect(hashes.length).toBe(0)
40
-
41
- expect(await uninstallFilter(publicClient, { filter })).toBeTruthy()
42
-
43
- await sendTransaction(walletClient, {
44
- from: accounts[0].address,
45
- to: accounts[1].address,
46
- value: parseEther('1'),
47
- })
48
-
49
- hashes = await getFilterChanges(publicClient, { filter })
50
- expect(hashes.length).toBe(0)
51
- })
52
-
53
- test('filter does not exist', async () => {
54
- expect(
55
- await uninstallFilter(publicClient, {
56
- filter: { id: '0x1', type: 'default' },
57
- }),
58
- ).toBeFalsy()
59
- })
60
-
61
- test('filter already uninstalled', async () => {
62
- const filter = await createPendingTransactionFilter(publicClient)
63
- expect(await uninstallFilter(publicClient, { filter })).toBeTruthy()
64
- expect(await uninstallFilter(publicClient, { filter })).toBeFalsy()
65
- })
@@ -1,17 +0,0 @@
1
- import type { PublicClient } from '../../clients'
2
- import type { Filter } from '../../types'
3
-
4
- export type UninstallFilterArgs = {
5
- filter: Filter<any>
6
- }
7
- export type UninstallFilterResponse = boolean
8
-
9
- export async function uninstallFilter(
10
- client: PublicClient,
11
- { filter }: UninstallFilterArgs,
12
- ): Promise<UninstallFilterResponse> {
13
- return client.request({
14
- method: 'eth_uninstallFilter',
15
- params: [filter.id],
16
- })
17
- }