viem 0.0.1-alpha.14 → 0.0.1-alpha.16

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 (456) hide show
  1. package/dist/chains.js +6 -5
  2. package/dist/chains.js.map +1 -0
  3. package/dist/chains.mjs +2 -1
  4. package/dist/chains.mjs.map +1 -0
  5. package/dist/chunk-4XREGFHD.js +153 -0
  6. package/dist/chunk-4XREGFHD.js.map +1 -0
  7. package/dist/{chunk-DUNJAMH5.mjs → chunk-B7A2CAHU.mjs} +95 -480
  8. package/dist/chunk-B7A2CAHU.mjs.map +1 -0
  9. package/dist/{chunk-6Z62LPKB.js → chunk-EWTLCB3N.js} +18 -6
  10. package/dist/chunk-EWTLCB3N.js.map +1 -0
  11. package/dist/chunk-KCMYVU3Z.mjs +153 -0
  12. package/dist/chunk-KCMYVU3Z.mjs.map +1 -0
  13. package/dist/{chunk-KB6CBNKW.mjs → chunk-KM6AFT2K.mjs} +18 -6
  14. package/dist/chunk-KM6AFT2K.mjs.map +1 -0
  15. package/dist/chunk-LQXQPPTU.js +256 -0
  16. package/dist/chunk-LQXQPPTU.js.map +1 -0
  17. package/dist/{chunk-5TCPFLFT.mjs → chunk-TSJ3OOJW.mjs} +2 -1
  18. package/dist/chunk-TSJ3OOJW.mjs.map +1 -0
  19. package/dist/chunk-U7QDLGQL.mjs +256 -0
  20. package/dist/chunk-U7QDLGQL.mjs.map +1 -0
  21. package/dist/{chunk-VUNR7KGG.js → chunk-WTXKCAG7.js} +146 -531
  22. package/dist/chunk-WTXKCAG7.js.map +1 -0
  23. package/dist/{chunk-E7IQYTLV.js → chunk-XJKOJIX3.js} +12 -11
  24. package/dist/chunk-XJKOJIX3.js.map +1 -0
  25. package/dist/clients/index.d.ts +6 -3
  26. package/dist/clients/index.js +4 -3
  27. package/dist/clients/index.js.map +1 -0
  28. package/dist/clients/index.mjs +3 -2
  29. package/dist/clients/index.mjs.map +1 -0
  30. package/dist/createClient-cd948138.d.ts +62 -0
  31. package/dist/createPublicClient-989a0556.d.ts +19 -0
  32. package/dist/createTestClient-81507f58.d.ts +34 -0
  33. package/dist/createWalletClient-43f801b9.d.ts +30 -0
  34. package/dist/{eip1193-c001fcd5.d.ts → eip1193-4330b722.d.ts} +1 -1
  35. package/dist/index.d.ts +13 -6
  36. package/dist/index.js +9 -4
  37. package/dist/index.js.map +1 -0
  38. package/dist/index.mjs +34 -29
  39. package/dist/index.mjs.map +1 -0
  40. package/dist/{parseGwei-21f98a29.d.ts → parseGwei-f2d23de6.d.ts} +1 -1
  41. package/dist/public.d.ts +12 -0
  42. package/dist/public.js +59 -0
  43. package/dist/public.js.map +1 -0
  44. package/dist/public.mjs +59 -0
  45. package/dist/public.mjs.map +1 -0
  46. package/dist/sendTransaction-7a9d241a.d.ts +13 -0
  47. package/dist/stopImpersonatingAccount-8113150e.d.ts +156 -0
  48. package/dist/test.d.ts +7 -0
  49. package/dist/test.js +60 -0
  50. package/dist/test.js.map +1 -0
  51. package/dist/test.mjs +60 -0
  52. package/dist/test.mjs.map +1 -0
  53. package/dist/{transactionRequest-1d4e4385.d.ts → transactionReceipt-5d332aab.d.ts} +4 -32
  54. package/dist/transactionRequest-327eb7c2.d.ts +33 -0
  55. package/dist/utils/index.d.ts +4 -3
  56. package/dist/utils/index.js +3 -2
  57. package/dist/utils/index.js.map +1 -0
  58. package/dist/utils/index.mjs +2 -1
  59. package/dist/utils/index.mjs.map +1 -0
  60. package/dist/wallet.d.ts +9 -0
  61. package/dist/wallet.js +24 -0
  62. package/dist/wallet.js.map +1 -0
  63. package/dist/wallet.mjs +24 -0
  64. package/dist/wallet.mjs.map +1 -0
  65. package/dist/watchAsset-0088384c.d.ts +39 -0
  66. package/dist/{stopImpersonatingAccount-fcc5a678.d.ts → watchPendingTransactions-670a7ca3.d.ts} +7 -197
  67. package/dist/{webSocket-3385e295.d.ts → webSocket-9a3b0b26.d.ts} +1 -1
  68. package/dist/window.d.ts +1 -1
  69. package/dist/window.js +1 -1
  70. package/dist/window.js.map +1 -0
  71. package/dist/window.mjs +1 -0
  72. package/dist/window.mjs.map +1 -0
  73. package/package.json +18 -6
  74. package/src/_test/abis.ts +1225 -0
  75. package/src/_test/bench.ts +15 -0
  76. package/src/_test/constants.ts +63 -0
  77. package/src/_test/globalSetup.ts +11 -0
  78. package/src/_test/index.ts +20 -0
  79. package/src/_test/setup.ts +8 -0
  80. package/src/_test/utils.ts +112 -0
  81. package/src/actions/index.test.ts +72 -0
  82. package/src/actions/index.ts +156 -0
  83. package/src/actions/public/call.bench.ts +48 -0
  84. package/src/actions/public/call.test.ts +99 -0
  85. package/src/actions/public/call.ts +96 -0
  86. package/src/actions/public/callContract.bench.ts +24 -0
  87. package/src/actions/public/callContract.test.ts +285 -0
  88. package/src/actions/public/callContract.ts +80 -0
  89. package/src/actions/public/createBlockFilter.bench.ts +11 -0
  90. package/src/actions/public/createBlockFilter.test.ts +9 -0
  91. package/src/actions/public/createBlockFilter.ts +14 -0
  92. package/src/actions/public/createEventFilter.test.ts +245 -0
  93. package/src/actions/public/createEventFilter.ts +81 -0
  94. package/src/actions/public/createPendingTransactionFilter.bench.ts +11 -0
  95. package/src/actions/public/createPendingTransactionFilter.test.ts +9 -0
  96. package/src/actions/public/createPendingTransactionFilter.ts +14 -0
  97. package/src/actions/public/deployContract.test.ts +56 -0
  98. package/src/actions/public/deployContract.ts +39 -0
  99. package/src/actions/public/estimateGas.bench.ts +46 -0
  100. package/src/actions/public/estimateGas.test.ts +92 -0
  101. package/src/actions/public/estimateGas.ts +61 -0
  102. package/src/actions/public/getBalance.test.ts +83 -0
  103. package/src/actions/public/getBalance.ts +37 -0
  104. package/src/actions/public/getBlock.bench.ts +28 -0
  105. package/src/actions/public/getBlock.test.ts +575 -0
  106. package/src/actions/public/getBlock.ts +66 -0
  107. package/src/actions/public/getBlockNumber.bench.ts +28 -0
  108. package/src/actions/public/getBlockNumber.test.ts +27 -0
  109. package/src/actions/public/getBlockNumber.ts +32 -0
  110. package/src/actions/public/getBlockTransactionCount.bench.ts +15 -0
  111. package/src/actions/public/getBlockTransactionCount.test.ts +57 -0
  112. package/src/actions/public/getBlockTransactionCount.ts +53 -0
  113. package/src/actions/public/getBytecode.test.ts +27 -0
  114. package/src/actions/public/getBytecode.ts +32 -0
  115. package/src/actions/public/getChainId.bench.ts +15 -0
  116. package/src/actions/public/getChainId.test.ts +8 -0
  117. package/src/actions/public/getChainId.ts +7 -0
  118. package/src/actions/public/getFeeHistory.bench.ts +18 -0
  119. package/src/actions/public/getFeeHistory.test.ts +137 -0
  120. package/src/actions/public/getFeeHistory.ts +44 -0
  121. package/src/actions/public/getFilterChanges.bench.ts +13 -0
  122. package/src/actions/public/getFilterChanges.test.ts +187 -0
  123. package/src/actions/public/getFilterChanges.ts +23 -0
  124. package/src/actions/public/getFilterLogs.test.ts +102 -0
  125. package/src/actions/public/getFilterLogs.ts +20 -0
  126. package/src/actions/public/getGasPrice.bench.ts +28 -0
  127. package/src/actions/public/getGasPrice.test.ts +8 -0
  128. package/src/actions/public/getGasPrice.ts +15 -0
  129. package/src/actions/public/getTransaction.bench.ts +33 -0
  130. package/src/actions/public/getTransaction.test.ts +311 -0
  131. package/src/actions/public/getTransaction.ts +96 -0
  132. package/src/actions/public/getTransactionConfirmations.test.ts +69 -0
  133. package/src/actions/public/getTransactionConfirmations.ts +39 -0
  134. package/src/actions/public/getTransactionCount.test.ts +56 -0
  135. package/src/actions/public/getTransactionCount.ts +34 -0
  136. package/src/actions/public/getTransactionReceipt.bench.ts +33 -0
  137. package/src/actions/public/getTransactionReceipt.test.ts +217 -0
  138. package/src/actions/public/getTransactionReceipt.ts +35 -0
  139. package/src/actions/public/index.test.ts +36 -0
  140. package/src/actions/public/index.ts +120 -0
  141. package/src/actions/public/uninstallFilter.bench.ts +13 -0
  142. package/src/actions/public/uninstallFilter.test.ts +65 -0
  143. package/src/actions/public/uninstallFilter.ts +17 -0
  144. package/src/actions/public/waitForTransactionReceipt.test.ts +322 -0
  145. package/src/actions/public/waitForTransactionReceipt.ts +171 -0
  146. package/src/actions/public/watchBlockNumber.test.ts +166 -0
  147. package/src/actions/public/watchBlockNumber.ts +79 -0
  148. package/src/actions/public/watchBlocks.test.ts +185 -0
  149. package/src/actions/public/watchBlocks.ts +95 -0
  150. package/src/actions/public/watchPendingTransactions.test.ts +116 -0
  151. package/src/actions/public/watchPendingTransactions.ts +73 -0
  152. package/src/actions/test/dropTransaction.test.ts +34 -0
  153. package/src/actions/test/dropTransaction.ts +17 -0
  154. package/src/actions/test/getAutomine.test.ts +14 -0
  155. package/src/actions/test/getAutomine.ts +11 -0
  156. package/src/actions/test/getTxpoolContent.test.ts +45 -0
  157. package/src/actions/test/getTxpoolContent.ts +7 -0
  158. package/src/actions/test/getTxpoolStatus.test.ts +41 -0
  159. package/src/actions/test/getTxpoolStatus.ts +12 -0
  160. package/src/actions/test/impersonateAccount.test.ts +28 -0
  161. package/src/actions/test/impersonateAccount.ts +17 -0
  162. package/src/actions/test/increaseTime.test.ts +18 -0
  163. package/src/actions/test/increaseTime.ts +17 -0
  164. package/src/actions/test/index.test.ts +38 -0
  165. package/src/actions/test/index.ts +77 -0
  166. package/src/actions/test/inspectTxpool.test.ts +50 -0
  167. package/src/actions/test/inspectTxpool.ts +7 -0
  168. package/src/actions/test/mine.test.ts +20 -0
  169. package/src/actions/test/mine.ts +16 -0
  170. package/src/actions/test/removeBlockTimestampInterval.test.ts +23 -0
  171. package/src/actions/test/removeBlockTimestampInterval.ts +7 -0
  172. package/src/actions/test/reset.test.ts +19 -0
  173. package/src/actions/test/reset.ts +18 -0
  174. package/src/actions/test/revert.test.ts +39 -0
  175. package/src/actions/test/revert.ts +14 -0
  176. package/src/actions/test/sendUnsignedTransaction.test.ts +52 -0
  177. package/src/actions/test/sendUnsignedTransaction.ts +19 -0
  178. package/src/actions/test/setAutomine.test.ts +14 -0
  179. package/src/actions/test/setAutomine.ts +8 -0
  180. package/src/actions/test/setBalance.test.ts +29 -0
  181. package/src/actions/test/setBalance.ts +20 -0
  182. package/src/actions/test/setBlockGasLimit.test.ts +21 -0
  183. package/src/actions/test/setBlockGasLimit.ts +17 -0
  184. package/src/actions/test/setBlockTimestampInterval.test.ts +23 -0
  185. package/src/actions/test/setBlockTimestampInterval.ts +16 -0
  186. package/src/actions/test/setCode.test.ts +26 -0
  187. package/src/actions/test/setCode.ts +19 -0
  188. package/src/actions/test/setCoinbase.test.ts +11 -0
  189. package/src/actions/test/setCoinbase.ts +17 -0
  190. package/src/actions/test/setIntervalMining.test.ts +30 -0
  191. package/src/actions/test/setIntervalMining.ts +16 -0
  192. package/src/actions/test/setLoggingEnabled.test.ts +10 -0
  193. package/src/actions/test/setLoggingEnabled.ts +8 -0
  194. package/src/actions/test/setMinGasPrice.test.ts +22 -0
  195. package/src/actions/test/setMinGasPrice.ts +17 -0
  196. package/src/actions/test/setNextBlockBaseFeePerGas.test.ts +23 -0
  197. package/src/actions/test/setNextBlockBaseFeePerGas.ts +17 -0
  198. package/src/actions/test/setNextBlockTimestamp.test.ts +19 -0
  199. package/src/actions/test/setNextBlockTimestamp.ts +17 -0
  200. package/src/actions/test/setNonce.test.ts +28 -0
  201. package/src/actions/test/setNonce.ts +20 -0
  202. package/src/actions/test/setRpcUrl.test.ts +9 -0
  203. package/src/actions/test/setRpcUrl.ts +8 -0
  204. package/src/actions/test/setStorageAt.test.ts +36 -0
  205. package/src/actions/test/setStorageAt.ts +26 -0
  206. package/src/actions/test/snapshot.test.ts +18 -0
  207. package/src/actions/test/snapshot.ts +7 -0
  208. package/src/actions/test/stopImpersonatingAccount.test.ts +31 -0
  209. package/src/actions/test/stopImpersonatingAccount.ts +17 -0
  210. package/src/actions/wallet/addChain.test.ts +14 -0
  211. package/src/actions/wallet/addChain.ts +21 -0
  212. package/src/actions/wallet/getAccounts.test.ts +22 -0
  213. package/src/actions/wallet/getAccounts.ts +7 -0
  214. package/src/actions/wallet/getPermissions.test.ts +24 -0
  215. package/src/actions/wallet/getPermissions.ts +9 -0
  216. package/src/actions/wallet/index.test.ts +19 -0
  217. package/src/actions/wallet/index.ts +27 -0
  218. package/src/actions/wallet/requestAccounts.test.ts +13 -0
  219. package/src/actions/wallet/requestAccounts.ts +7 -0
  220. package/src/actions/wallet/requestPermissions.test.ts +26 -0
  221. package/src/actions/wallet/requestPermissions.ts +19 -0
  222. package/src/actions/wallet/sendTransaction.bench.ts +57 -0
  223. package/src/actions/wallet/sendTransaction.test.ts +440 -0
  224. package/src/actions/wallet/sendTransaction.ts +76 -0
  225. package/src/actions/wallet/signMessage.test.ts +62 -0
  226. package/src/actions/wallet/signMessage.ts +35 -0
  227. package/src/actions/wallet/switchChain.test.ts +22 -0
  228. package/src/actions/wallet/switchChain.ts +19 -0
  229. package/src/actions/wallet/watchAsset.test.ts +41 -0
  230. package/src/actions/wallet/watchAsset.ts +16 -0
  231. package/src/chains.test.ts +1134 -0
  232. package/src/chains.ts +167 -0
  233. package/src/clients/createClient.test.ts +295 -0
  234. package/src/clients/createClient.ts +81 -0
  235. package/src/clients/createPublicClient.test.ts +165 -0
  236. package/src/clients/createPublicClient.ts +49 -0
  237. package/src/clients/createTestClient.test.ts +145 -0
  238. package/src/clients/createTestClient.ts +72 -0
  239. package/src/clients/createWalletClient.test.ts +121 -0
  240. package/src/clients/createWalletClient.ts +54 -0
  241. package/src/clients/index.test.ts +19 -0
  242. package/src/clients/index.ts +31 -0
  243. package/src/clients/transports/createTransport.test.ts +58 -0
  244. package/src/clients/transports/createTransport.ts +48 -0
  245. package/src/clients/transports/custom.test.ts +98 -0
  246. package/src/clients/transports/custom.ts +34 -0
  247. package/src/clients/transports/fallback.test.ts +223 -0
  248. package/src/clients/transports/fallback.ts +48 -0
  249. package/src/clients/transports/http.test.ts +110 -0
  250. package/src/clients/transports/http.ts +51 -0
  251. package/src/clients/transports/index.test.ts +15 -0
  252. package/src/clients/transports/index.ts +17 -0
  253. package/src/clients/transports/webSocket.test.ts +164 -0
  254. package/src/clients/transports/webSocket.ts +117 -0
  255. package/src/constants.test.ts +27 -0
  256. package/src/constants.ts +18 -0
  257. package/src/errors/abi.test.ts +83 -0
  258. package/src/errors/abi.ts +238 -0
  259. package/src/errors/address.test.ts +14 -0
  260. package/src/errors/address.ts +9 -0
  261. package/src/errors/base.test.ts +72 -0
  262. package/src/errors/base.ts +57 -0
  263. package/src/errors/block.test.ts +24 -0
  264. package/src/errors/block.ts +18 -0
  265. package/src/errors/contract.ts +125 -0
  266. package/src/errors/data.ts +20 -0
  267. package/src/errors/encoding.ts +60 -0
  268. package/src/errors/index.ts +77 -0
  269. package/src/errors/log.ts +8 -0
  270. package/src/errors/request.test.ts +331 -0
  271. package/src/errors/request.ts +163 -0
  272. package/src/errors/rpc.test.ts +88 -0
  273. package/src/errors/rpc.ts +113 -0
  274. package/src/errors/transaction.test.ts +83 -0
  275. package/src/errors/transaction.ts +54 -0
  276. package/src/errors/transport.test.ts +12 -0
  277. package/src/errors/transport.ts +12 -0
  278. package/src/index.test.ts +208 -0
  279. package/src/index.ts +353 -0
  280. package/src/public.ts +80 -0
  281. package/src/test.ts +51 -0
  282. package/src/types/block.ts +71 -0
  283. package/src/types/contract.ts +327 -0
  284. package/src/types/eip1193.ts +1038 -0
  285. package/src/types/fee.ts +47 -0
  286. package/src/types/filter.ts +8 -0
  287. package/src/types/index.ts +72 -0
  288. package/src/types/log.ts +22 -0
  289. package/src/types/misc.ts +4 -0
  290. package/src/types/rpc.ts +35 -0
  291. package/src/types/transaction.ts +145 -0
  292. package/src/types/utils.ts +67 -0
  293. package/src/types/window.ts +9 -0
  294. package/src/utils/abi/decodeAbi.bench.ts +135 -0
  295. package/src/utils/abi/decodeAbi.test.ts +1615 -0
  296. package/src/utils/abi/decodeAbi.ts +296 -0
  297. package/src/utils/abi/decodeDeployData.test.ts +159 -0
  298. package/src/utils/abi/decodeDeployData.ts +41 -0
  299. package/src/utils/abi/decodeErrorResult.test.ts +130 -0
  300. package/src/utils/abi/decodeErrorResult.ts +28 -0
  301. package/src/utils/abi/decodeFunctionData.test.ts +140 -0
  302. package/src/utils/abi/decodeFunctionData.ts +29 -0
  303. package/src/utils/abi/decodeFunctionResult.test.ts +262 -0
  304. package/src/utils/abi/decodeFunctionResult.ts +53 -0
  305. package/src/utils/abi/encodeAbi.bench.ts +163 -0
  306. package/src/utils/abi/encodeAbi.test.ts +1414 -0
  307. package/src/utils/abi/encodeAbi.ts +258 -0
  308. package/src/utils/abi/encodeDeployData.test.ts +131 -0
  309. package/src/utils/abi/encodeDeployData.ts +37 -0
  310. package/src/utils/abi/encodeErrorResult.test.ts +197 -0
  311. package/src/utils/abi/encodeErrorResult.ts +40 -0
  312. package/src/utils/abi/encodeEventTopics.test.ts +348 -0
  313. package/src/utils/abi/encodeEventTopics.ts +69 -0
  314. package/src/utils/abi/encodeFunctionData.test.ts +140 -0
  315. package/src/utils/abi/encodeFunctionData.ts +38 -0
  316. package/src/utils/abi/encodeFunctionResult.test.ts +284 -0
  317. package/src/utils/abi/encodeFunctionResult.ts +39 -0
  318. package/src/utils/abi/formatAbiItemWithArgs.test.ts +291 -0
  319. package/src/utils/abi/formatAbiItemWithArgs.ts +27 -0
  320. package/src/utils/abi/formatAbiItemWithParams.test.ts +335 -0
  321. package/src/utils/abi/formatAbiItemWithParams.ts +41 -0
  322. package/src/utils/abi/getAbiItem.ts +5 -0
  323. package/src/utils/abi/index.test.ts +23 -0
  324. package/src/utils/abi/index.ts +38 -0
  325. package/src/utils/address/getAddress.bench.ts +22 -0
  326. package/src/utils/address/getAddress.test.ts +46 -0
  327. package/src/utils/address/getAddress.ts +28 -0
  328. package/src/utils/address/getContractAddress.bench.ts +20 -0
  329. package/src/utils/address/getContractAddress.test.ts +78 -0
  330. package/src/utils/address/getContractAddress.ts +59 -0
  331. package/src/utils/address/index.test.ts +17 -0
  332. package/src/utils/address/index.ts +16 -0
  333. package/src/utils/address/isAddress.test.ts +10 -0
  334. package/src/utils/address/isAddress.ts +10 -0
  335. package/src/utils/address/isAddressEqual.test.ts +55 -0
  336. package/src/utils/address/isAddressEqual.ts +6 -0
  337. package/src/utils/buildRequest.test.ts +365 -0
  338. package/src/utils/buildRequest.ts +45 -0
  339. package/src/utils/contract/extractFunctionParts.test.ts +109 -0
  340. package/src/utils/contract/extractFunctionParts.ts +27 -0
  341. package/src/utils/contract/getContractError.test.ts +97 -0
  342. package/src/utils/contract/getContractError.ts +70 -0
  343. package/src/utils/contract/index.test.ts +15 -0
  344. package/src/utils/contract/index.ts +8 -0
  345. package/src/utils/data/concat.test.ts +35 -0
  346. package/src/utils/data/concat.ts +34 -0
  347. package/src/utils/data/index.test.ts +23 -0
  348. package/src/utils/data/index.ts +13 -0
  349. package/src/utils/data/isBytes.test.ts +9 -0
  350. package/src/utils/data/isBytes.ts +7 -0
  351. package/src/utils/data/isHex.test.ts +13 -0
  352. package/src/utils/data/isHex.ts +5 -0
  353. package/src/utils/data/pad.bench.ts +39 -0
  354. package/src/utils/data/pad.test.ts +367 -0
  355. package/src/utils/data/pad.ts +53 -0
  356. package/src/utils/data/size.test.ts +18 -0
  357. package/src/utils/data/size.ts +13 -0
  358. package/src/utils/data/slice.test.ts +203 -0
  359. package/src/utils/data/slice.ts +60 -0
  360. package/src/utils/data/trim.bench.ts +50 -0
  361. package/src/utils/data/trim.test.ts +175 -0
  362. package/src/utils/data/trim.ts +33 -0
  363. package/src/utils/encoding/decodeBytes.bench.ts +40 -0
  364. package/src/utils/encoding/decodeBytes.test.ts +144 -0
  365. package/src/utils/encoding/decodeBytes.ts +63 -0
  366. package/src/utils/encoding/decodeHex.bench.ts +24 -0
  367. package/src/utils/encoding/decodeHex.test.ts +167 -0
  368. package/src/utils/encoding/decodeHex.ts +76 -0
  369. package/src/utils/encoding/decodeRlp.bench.ts +34 -0
  370. package/src/utils/encoding/decodeRlp.test.ts +350 -0
  371. package/src/utils/encoding/decodeRlp.ts +121 -0
  372. package/src/utils/encoding/encodeBytes.bench.ts +41 -0
  373. package/src/utils/encoding/encodeBytes.test.ts +676 -0
  374. package/src/utils/encoding/encodeBytes.ts +59 -0
  375. package/src/utils/encoding/encodeHex.bench.ts +60 -0
  376. package/src/utils/encoding/encodeHex.test.ts +232 -0
  377. package/src/utils/encoding/encodeHex.ts +104 -0
  378. package/src/utils/encoding/encodeRlp.bench.ts +54 -0
  379. package/src/utils/encoding/encodeRlp.test.ts +254 -0
  380. package/src/utils/encoding/encodeRlp.ts +48 -0
  381. package/src/utils/encoding/index.test.ts +32 -0
  382. package/src/utils/encoding/index.ts +36 -0
  383. package/src/utils/formatters/block.bench.ts +51 -0
  384. package/src/utils/formatters/block.test.ts +115 -0
  385. package/src/utils/formatters/block.ts +36 -0
  386. package/src/utils/formatters/extract.test.ts +14 -0
  387. package/src/utils/formatters/extract.ts +18 -0
  388. package/src/utils/formatters/feeHistory.test.ts +66 -0
  389. package/src/utils/formatters/feeHistory.ts +12 -0
  390. package/src/utils/formatters/format.test.ts +93 -0
  391. package/src/utils/formatters/format.ts +53 -0
  392. package/src/utils/formatters/index.test.ts +17 -0
  393. package/src/utils/formatters/index.ts +24 -0
  394. package/src/utils/formatters/log.test.ts +79 -0
  395. package/src/utils/formatters/log.ts +12 -0
  396. package/src/utils/formatters/transaction.test.ts +271 -0
  397. package/src/utils/formatters/transaction.ts +51 -0
  398. package/src/utils/formatters/transactionReceipt.bench.ts +73 -0
  399. package/src/utils/formatters/transactionReceipt.test.ts +151 -0
  400. package/src/utils/formatters/transactionReceipt.ts +54 -0
  401. package/src/utils/formatters/transactionRequest.bench.ts +29 -0
  402. package/src/utils/formatters/transactionRequest.test.ts +237 -0
  403. package/src/utils/formatters/transactionRequest.ts +47 -0
  404. package/src/utils/hash/getEventSignature.test.ts +61 -0
  405. package/src/utils/hash/getEventSignature.ts +4 -0
  406. package/src/utils/hash/getFunctionSignature.test.ts +22 -0
  407. package/src/utils/hash/getFunctionSignature.ts +5 -0
  408. package/src/utils/hash/hashFunction.test.ts +65 -0
  409. package/src/utils/hash/hashFunction.ts +12 -0
  410. package/src/utils/hash/index.test.ts +13 -0
  411. package/src/utils/hash/index.ts +5 -0
  412. package/src/utils/hash/keccak256.test.ts +59 -0
  413. package/src/utils/hash/keccak256.ts +23 -0
  414. package/src/utils/index.test.ts +87 -0
  415. package/src/utils/index.ts +126 -0
  416. package/src/utils/observe.test.ts +176 -0
  417. package/src/utils/observe.ts +66 -0
  418. package/src/utils/poll.test.ts +127 -0
  419. package/src/utils/poll.ts +42 -0
  420. package/src/utils/promise/index.test.ts +14 -0
  421. package/src/utils/promise/index.ts +3 -0
  422. package/src/utils/promise/withCache.test.ts +97 -0
  423. package/src/utils/promise/withCache.ts +73 -0
  424. package/src/utils/promise/withRetry.test.ts +231 -0
  425. package/src/utils/promise/withRetry.ts +61 -0
  426. package/src/utils/promise/withTimeout.test.ts +37 -0
  427. package/src/utils/promise/withTimeout.ts +39 -0
  428. package/src/utils/rpc.test.ts +992 -0
  429. package/src/utils/rpc.ts +292 -0
  430. package/src/utils/stringify.test.ts +13 -0
  431. package/src/utils/stringify.ts +5 -0
  432. package/src/utils/uid.ts +14 -0
  433. package/src/utils/unit/formatEther.test.ts +75 -0
  434. package/src/utils/unit/formatEther.ts +6 -0
  435. package/src/utils/unit/formatGwei.test.ts +32 -0
  436. package/src/utils/unit/formatGwei.ts +6 -0
  437. package/src/utils/unit/formatUnit.bench.ts +26 -0
  438. package/src/utils/unit/formatUnit.test.ts +40 -0
  439. package/src/utils/unit/formatUnit.ts +16 -0
  440. package/src/utils/unit/index.test.ts +16 -0
  441. package/src/utils/unit/index.ts +6 -0
  442. package/src/utils/unit/parseEther.test.ts +126 -0
  443. package/src/utils/unit/parseEther.ts +6 -0
  444. package/src/utils/unit/parseGwei.test.ts +50 -0
  445. package/src/utils/unit/parseGwei.ts +6 -0
  446. package/src/utils/unit/parseUnit.bench.ts +26 -0
  447. package/src/utils/unit/parseUnit.test.ts +54 -0
  448. package/src/utils/unit/parseUnit.ts +27 -0
  449. package/src/utils/wait.ts +3 -0
  450. package/src/wallet.ts +23 -0
  451. package/src/window.ts +1 -0
  452. package/actions/package.json +0 -4
  453. package/dist/actions/index.d.ts +0 -8
  454. package/dist/actions/index.js +0 -129
  455. package/dist/actions/index.mjs +0 -129
  456. package/dist/createWalletClient-3f9fa8b6.d.ts +0 -130
@@ -0,0 +1,71 @@
1
+ import type { Address, Hash, Hex } from './misc'
2
+ import type { Transaction } from './transaction'
3
+
4
+ export type Block<TQuantity = bigint, TTransaction = Transaction> = {
5
+ /** Base fee per gas */
6
+ baseFeePerGas: TQuantity | null
7
+ /** Difficulty for this block */
8
+ difficulty: TQuantity
9
+ /** "Extra data" field of this block */
10
+ extraData: Hex
11
+ /** Maximum gas allowed in this block */
12
+ gasLimit: TQuantity
13
+ /** Total used gas by all transactions in this block */
14
+ gasUsed: TQuantity
15
+ /** Block hash or `null` if pending */
16
+ hash: Hash | null
17
+ /** Logs bloom filter or `null` if pending */
18
+ logsBloom: Hex | null
19
+ /** Address that received this block’s mining rewards */
20
+ miner: Address
21
+ /** Unique identifier for the block. */
22
+ mixHash: Hash
23
+ /** Proof-of-work hash or `null` if pending */
24
+ nonce: Hex | null
25
+ /** Block number or `null` if pending */
26
+ number: TQuantity | null
27
+ /** Parent block hash */
28
+ parentHash: Hash
29
+ /** Root of the this block’s receipts trie */
30
+ receiptsRoot: Hex
31
+ sealFields: Hex[]
32
+ /** SHA3 of the uncles data in this block */
33
+ sha3Uncles: Hash
34
+ /** Size of this block in bytes */
35
+ size: TQuantity
36
+ /** Root of this block’s final state trie */
37
+ stateRoot: Hash
38
+ /** Unix timestamp of when this block was collated */
39
+ timestamp: TQuantity
40
+ /** Total difficulty of the chain until this block */
41
+ totalDifficulty: TQuantity | null
42
+ /** List of transaction objects or hashes */
43
+ transactions: Hash[] | TTransaction[]
44
+ /** Root of this block’s transaction trie */
45
+ transactionsRoot: Hash
46
+ /** List of uncle hashes */
47
+ uncles: Hash[]
48
+ }
49
+
50
+ export type BlockIdentifier<TQuantity = bigint> = {
51
+ /** Whether or not to throw an error if the block is not in the canonical chain as described below. Only allowed in conjunction with the blockHash tag. Defaults to false. */
52
+ requireCanonical?: boolean
53
+ } & (
54
+ | {
55
+ /** The block in the canonical chain with this number */
56
+ blockNumber: BlockNumber<TQuantity>
57
+ }
58
+ | {
59
+ /** The block uniquely identified by this hash. The `blockNumber` and `blockHash` properties are mutually exclusive; exactly one of them must be set. */
60
+ blockHash: Hash
61
+ }
62
+ )
63
+
64
+ export type BlockNumber<TQuantity = bigint> = TQuantity
65
+
66
+ export type BlockTag = 'latest' | 'earliest' | 'pending' | 'safe' | 'finalized'
67
+
68
+ export type Uncle<TQuantity = bigint, TTransaction = Transaction> = Block<
69
+ TQuantity,
70
+ TTransaction
71
+ >
@@ -0,0 +1,327 @@
1
+ import type {
2
+ Abi,
3
+ AbiError,
4
+ AbiEvent,
5
+ AbiFunction,
6
+ AbiType,
7
+ AbiTypeToPrimitiveType,
8
+ AbiParameter,
9
+ AbiParameterToPrimitiveType,
10
+ AbiParametersToPrimitiveTypes,
11
+ ExtractAbiFunction,
12
+ ExtractAbiEvent,
13
+ ExtractAbiError,
14
+ AbiStateMutability,
15
+ ExtractAbiFunctionNames,
16
+ } from 'abitype'
17
+ import { TransactionRequest } from './transaction'
18
+
19
+ import type { Trim } from './utils'
20
+
21
+ //////////////////////////////////////////////////////////////////////
22
+ // ABIs
23
+
24
+ export type AbiItem = Abi[number]
25
+
26
+ export type AbiEventParametersToPrimitiveTypes<
27
+ TAbiParameters extends readonly AbiParameter[],
28
+ TBase = TAbiParameters[0] extends { name: string } ? {} : [],
29
+ > = TAbiParameters extends readonly [infer Head, ...infer Tail]
30
+ ? Head extends { indexed: true }
31
+ ? Head extends AbiParameter
32
+ ? Head extends { name: infer Name }
33
+ ? Name extends string
34
+ ? {
35
+ [name in Name]?:
36
+ | AbiParameterToPrimitiveType<Head>
37
+ | AbiParameterToPrimitiveType<Head>[]
38
+ | null
39
+ } & (Tail extends readonly []
40
+ ? {}
41
+ : Tail extends readonly AbiParameter[]
42
+ ? AbiEventParametersToPrimitiveTypes<Tail>
43
+ : {})
44
+ : never
45
+ : [
46
+ (
47
+ | AbiParameterToPrimitiveType<Head>
48
+ | AbiParameterToPrimitiveType<Head>[]
49
+ | null
50
+ ),
51
+ ...(Tail extends readonly []
52
+ ? []
53
+ : Tail extends readonly AbiParameter[]
54
+ ? AbiEventParametersToPrimitiveTypes<Tail>
55
+ : []),
56
+ ]
57
+ : TBase
58
+ : TBase
59
+ : TBase
60
+
61
+ export type ExtractArgsFromAbi<
62
+ TAbi extends Abi | readonly unknown[],
63
+ TFunctionName extends string,
64
+ TAbiFunction extends AbiFunction & { type: 'function' } = TAbi extends Abi
65
+ ? ExtractAbiFunction<TAbi, TFunctionName>
66
+ : AbiFunction & { type: 'function' },
67
+ TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>,
68
+ FailedToParseArgs =
69
+ | ([TArgs] extends [never] ? true : false)
70
+ | (readonly unknown[] extends TArgs ? true : false),
71
+ > = true extends FailedToParseArgs
72
+ ? {
73
+ /**
74
+ * Arguments to pass contract method
75
+ *
76
+ * Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
77
+ */
78
+ args?: readonly unknown[]
79
+ }
80
+ : TArgs extends readonly []
81
+ ? { args?: never }
82
+ : {
83
+ /** Arguments to pass contract method */ args: TArgs
84
+ }
85
+
86
+ export type ExtractConstructorArgsFromAbi<
87
+ TAbi extends Abi | readonly unknown[],
88
+ TAbiFunction extends AbiFunction & { type: 'constructor' } = TAbi extends Abi
89
+ ? Extract<
90
+ TAbi[number],
91
+ {
92
+ type: 'constructor'
93
+ }
94
+ >
95
+ : AbiFunction & { type: 'constructor' },
96
+ TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>,
97
+ FailedToParseArgs =
98
+ | ([TArgs] extends [never] ? true : false)
99
+ | (readonly unknown[] extends TArgs ? true : false),
100
+ > = true extends FailedToParseArgs
101
+ ? {
102
+ /**
103
+ * Arguments to pass contract method
104
+ *
105
+ * Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
106
+ */
107
+ args?: readonly unknown[]
108
+ }
109
+ : TArgs extends readonly []
110
+ ? { args?: never }
111
+ : {
112
+ /** Arguments to pass contract method */ args: TArgs
113
+ }
114
+
115
+ export type ExtractErrorArgsFromAbi<
116
+ TAbi extends Abi | readonly unknown[],
117
+ TErrorName extends string,
118
+ TAbiError extends AbiError = TAbi extends Abi
119
+ ? ExtractAbiError<TAbi, TErrorName>
120
+ : AbiError,
121
+ TArgs = AbiParametersToPrimitiveTypes<TAbiError['inputs']>,
122
+ FailedToParseArgs =
123
+ | ([TArgs] extends [never] ? true : false)
124
+ | (readonly unknown[] extends TArgs ? true : false),
125
+ > = true extends FailedToParseArgs
126
+ ? {
127
+ /**
128
+ * Arguments to pass contract method
129
+ *
130
+ * Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
131
+ */
132
+ args?: readonly unknown[]
133
+ }
134
+ : TArgs extends readonly []
135
+ ? { args?: never }
136
+ : {
137
+ /** Arguments to pass contract method */ args: TArgs
138
+ }
139
+
140
+ export type ExtractEventArgsFromAbi<
141
+ TAbi extends Abi | readonly unknown[],
142
+ TFunctionName extends string,
143
+ TAbiEvent extends AbiEvent & { type: 'event' } = TAbi extends Abi
144
+ ? ExtractAbiEvent<TAbi, TFunctionName>
145
+ : AbiEvent & { type: 'event' },
146
+ TArgs = AbiEventParametersToPrimitiveTypes<TAbiEvent['inputs']>,
147
+ FailedToParseArgs =
148
+ | ([TArgs] extends [never] ? true : false)
149
+ | (readonly unknown[] extends TArgs ? true : false),
150
+ > = true extends FailedToParseArgs
151
+ ? {
152
+ /**
153
+ * Arguments to pass contract method
154
+ *
155
+ * Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
156
+ */
157
+ args?: readonly unknown[]
158
+ }
159
+ : TArgs extends readonly []
160
+ ? { args?: never }
161
+ : {
162
+ args?: TArgs
163
+ }
164
+
165
+ export type ExtractFunctionNameFromAbi<
166
+ TAbi extends Abi | readonly unknown[] = Abi,
167
+ TFunctionName extends string = string,
168
+ TAbiStateMutability extends AbiStateMutability = AbiStateMutability,
169
+ > = TAbi extends Abi
170
+ ? ExtractAbiFunctionNames<
171
+ TAbi,
172
+ TAbiStateMutability
173
+ > extends infer AbiFunctionNames
174
+ ?
175
+ | AbiFunctionNames
176
+ | (TFunctionName extends AbiFunctionNames ? TFunctionName : never)
177
+ | (Abi extends TAbi ? string : never)
178
+ : never
179
+ : TFunctionName
180
+
181
+ export type ExtractResultFromAbi<
182
+ TAbi extends Abi | readonly unknown[] = Abi,
183
+ TFunctionName extends string = string,
184
+ TAbiFunction extends AbiFunction & {
185
+ type: 'function'
186
+ } = TAbi extends Abi
187
+ ? ExtractAbiFunction<TAbi, TFunctionName>
188
+ : AbiFunction & { type: 'function' },
189
+ TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['outputs']>,
190
+ FailedToParseArgs =
191
+ | ([TArgs] extends [never] ? true : false)
192
+ | (readonly unknown[] extends TArgs ? true : false),
193
+ > = true extends FailedToParseArgs
194
+ ? unknown
195
+ : TArgs extends readonly []
196
+ ? void
197
+ : TArgs extends readonly [infer Arg]
198
+ ? Arg
199
+ : TArgs
200
+
201
+ //////////////////////////////////////////////////////////////////////
202
+ // Event/Function Definitions
203
+
204
+ type ExtractArgsFromDefinitionConfig = {
205
+ indexedOnly: unknown
206
+ }
207
+
208
+ type ExtractArgsFromDefinitionDefaultConfig = {
209
+ indexedOnly: false
210
+ }
211
+
212
+ type NamedArg<
213
+ TType extends string,
214
+ TName extends string,
215
+ TIndexed = false,
216
+ > = `${TType}${TIndexed extends true ? ' indexed ' : ' '}${TName}`
217
+ type UnnamedArg<TType extends string> = `${TType}`
218
+ type IndexedArg<TType extends string> = `${TType} indexed`
219
+
220
+ type ExtractTypeFromArg<
221
+ TArg,
222
+ TRest = unknown,
223
+ TConfig extends ExtractArgsFromDefinitionConfig = ExtractArgsFromDefinitionDefaultConfig,
224
+ > = Trim<TArg> extends NamedArg<infer Type, infer Name, true>
225
+ ? Type extends AbiType
226
+ ? Name extends ''
227
+ ? TRest extends [...args: any]
228
+ ? [AbiTypeToPrimitiveType<Type>, ...TRest]
229
+ : never
230
+ : {
231
+ [name in Trim<Name>]?:
232
+ | AbiTypeToPrimitiveType<Type>
233
+ | AbiTypeToPrimitiveType<Type>[]
234
+ } & TRest
235
+ : never
236
+ : TConfig extends { indexedOnly: false }
237
+ ? TArg extends NamedArg<infer Type, infer Name, false>
238
+ ? Type extends AbiType
239
+ ? Name extends 'indexed'
240
+ ? TRest extends [...args: any]
241
+ ? [AbiTypeToPrimitiveType<Type>, ...TRest]
242
+ : never
243
+ : { [name in Trim<Name>]: AbiTypeToPrimitiveType<Type> } & TRest
244
+ : never
245
+ : TArg extends UnnamedArg<infer Type>
246
+ ? Type extends AbiType
247
+ ? TRest extends [...args: any]
248
+ ? [AbiTypeToPrimitiveType<Type>, ...TRest]
249
+ : never
250
+ : never
251
+ : never
252
+ : TArg extends NamedArg<infer Type, string, true>
253
+ ? Type extends AbiType
254
+ ? TRest extends [...args: any]
255
+ ? [AbiTypeToPrimitiveType<Type>, ...TRest]
256
+ : never
257
+ : TRest
258
+ : TArg extends IndexedArg<infer Type>
259
+ ? Type extends AbiType
260
+ ? TRest extends [...args: any]
261
+ ?
262
+ | [
263
+ | AbiTypeToPrimitiveType<Type>
264
+ | AbiTypeToPrimitiveType<Type>[]
265
+ | null,
266
+ ]
267
+ | [
268
+ (
269
+ | AbiTypeToPrimitiveType<Type>
270
+ | AbiTypeToPrimitiveType<Type>[]
271
+ | null
272
+ ),
273
+ ...TRest,
274
+ ]
275
+ : never
276
+ : TRest
277
+ : TRest
278
+
279
+ type ExtractTypesFromArgs<
280
+ TArgs,
281
+ TConfig extends ExtractArgsFromDefinitionConfig = ExtractArgsFromDefinitionDefaultConfig,
282
+ > = Trim<TArgs> extends `${infer Head},${infer Tail}`
283
+ ? ExtractTypeFromArg<Head, ExtractTypesFromArgs<Tail, TConfig>, TConfig>
284
+ : ExtractTypeFromArg<
285
+ Trim<TArgs>,
286
+ Trim<TArgs> extends NamedArg<string, string>
287
+ ? Trim<TArgs> extends IndexedArg<string>
288
+ ? []
289
+ : unknown
290
+ : [],
291
+ TConfig
292
+ >
293
+
294
+ type ExtractArgsFromDefinition<
295
+ TDef,
296
+ TConfig extends ExtractArgsFromDefinitionConfig = ExtractArgsFromDefinitionDefaultConfig,
297
+ > = TDef extends `${string}(${infer Args})`
298
+ ? ExtractTypesFromArgs<Args, TConfig>
299
+ : 'Error: Invalid definition was provided.'
300
+
301
+ export type ExtractArgsFromEventDefinition<
302
+ TDef,
303
+ TConfig extends ExtractArgsFromDefinitionConfig = { indexedOnly: true },
304
+ > = ExtractArgsFromDefinition<TDef, TConfig> extends [...args: any]
305
+ ? ExtractArgsFromDefinition<TDef, TConfig> | []
306
+ : ExtractArgsFromDefinition<TDef, TConfig>
307
+
308
+ export type ExtractArgsFromFunctionDefinition<TDef> = ExtractArgsFromDefinition<
309
+ TDef,
310
+ { indexedOnly: false }
311
+ >
312
+
313
+ //////////////////////////////////////////////////////////////////////
314
+ // Call Args
315
+
316
+ export type GetValue<
317
+ TAbi extends Abi | readonly unknown[],
318
+ TFunctionName extends string,
319
+ TValueType = TransactionRequest['value'],
320
+ TAbiFunction extends AbiFunction & { type: 'function' } = TAbi extends Abi
321
+ ? ExtractAbiFunction<TAbi, TFunctionName>
322
+ : AbiFunction & { type: 'function' },
323
+ > = TAbiFunction['stateMutability'] extends 'payable'
324
+ ? TValueType
325
+ : TAbiFunction['payable'] extends true
326
+ ? TValueType
327
+ : never