viem 0.0.0-w-20230829165118 → 0.0.0-w-20230904174840

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 (442) hide show
  1. package/README.md +6 -0
  2. package/dist/cjs/accounts/index.js +19 -19
  3. package/dist/cjs/accounts/index.js.map +1 -1
  4. package/dist/cjs/actions/getContract.js.map +1 -1
  5. package/dist/cjs/actions/public/call.js +1 -1
  6. package/dist/cjs/actions/public/call.js.map +1 -1
  7. package/dist/cjs/actions/public/getLogs.js.map +1 -1
  8. package/dist/cjs/actions/public/multicall.js +54 -31
  9. package/dist/cjs/actions/public/multicall.js.map +1 -1
  10. package/dist/cjs/actions/public/watchContractEvent.js +3 -2
  11. package/dist/cjs/actions/public/watchContractEvent.js.map +1 -1
  12. package/dist/cjs/actions/public/watchEvent.js +2 -5
  13. package/dist/cjs/actions/public/watchEvent.js.map +1 -1
  14. package/dist/cjs/actions/wallet/deployContract.js +3 -6
  15. package/dist/cjs/actions/wallet/deployContract.js.map +1 -1
  16. package/dist/cjs/actions/wallet/prepareTransactionRequest.js.map +1 -1
  17. package/dist/cjs/actions/wallet/signTypedData.js +1 -13
  18. package/dist/cjs/actions/wallet/signTypedData.js.map +1 -1
  19. package/dist/cjs/chains/definitions/base.js +1 -3
  20. package/dist/cjs/chains/definitions/base.js.map +1 -1
  21. package/dist/cjs/chains/definitions/baseGoerli.js +1 -3
  22. package/dist/cjs/chains/definitions/baseGoerli.js.map +1 -1
  23. package/dist/cjs/chains/definitions/meter.js +22 -0
  24. package/dist/cjs/chains/definitions/meter.js.map +1 -0
  25. package/dist/cjs/chains/definitions/meterTestnet.js +25 -0
  26. package/dist/cjs/chains/definitions/meterTestnet.js.map +1 -0
  27. package/dist/cjs/chains/definitions/opBNB.js +28 -0
  28. package/dist/cjs/chains/definitions/opBNB.js.map +1 -0
  29. package/dist/cjs/chains/definitions/opBNBTestnet.js +29 -0
  30. package/dist/cjs/chains/definitions/opBNBTestnet.js.map +1 -0
  31. package/dist/cjs/chains/definitions/optimism.js +0 -2
  32. package/dist/cjs/chains/definitions/optimism.js.map +1 -1
  33. package/dist/cjs/chains/definitions/optimismGoerli.js +0 -2
  34. package/dist/cjs/chains/definitions/optimismGoerli.js.map +1 -1
  35. package/dist/cjs/chains/definitions/plinga.js +31 -0
  36. package/dist/cjs/chains/definitions/plinga.js.map +1 -0
  37. package/dist/cjs/chains/definitions/scrollSepolia.js +6 -0
  38. package/dist/cjs/chains/definitions/scrollSepolia.js.map +1 -1
  39. package/dist/cjs/chains/definitions/sepolia.js +5 -0
  40. package/dist/cjs/chains/definitions/sepolia.js.map +1 -1
  41. package/dist/cjs/chains/definitions/vechain.js +29 -0
  42. package/dist/cjs/chains/definitions/vechain.js.map +1 -0
  43. package/dist/cjs/chains/definitions/zora.js +0 -2
  44. package/dist/cjs/chains/definitions/zora.js.map +1 -1
  45. package/dist/cjs/chains/definitions/zoraTestnet.js +0 -2
  46. package/dist/cjs/chains/definitions/zoraTestnet.js.map +1 -1
  47. package/dist/cjs/chains/index.js +14 -2
  48. package/dist/cjs/chains/index.js.map +1 -1
  49. package/dist/cjs/clients/decorators/public.js.map +1 -1
  50. package/dist/cjs/errors/node.js +1 -1
  51. package/dist/cjs/errors/node.js.map +1 -1
  52. package/dist/cjs/errors/utils.js +1 -1
  53. package/dist/cjs/errors/utils.js.map +1 -1
  54. package/dist/cjs/{version.js → errors/version.js} +1 -1
  55. package/dist/cjs/errors/version.js.map +1 -0
  56. package/dist/cjs/index.js +2 -3
  57. package/dist/cjs/index.js.map +1 -1
  58. package/dist/cjs/utils/abi/decodeDeployData.js +2 -1
  59. package/dist/cjs/utils/abi/decodeDeployData.js.map +1 -1
  60. package/dist/cjs/utils/abi/decodeErrorResult.js +4 -3
  61. package/dist/cjs/utils/abi/decodeErrorResult.js.map +1 -1
  62. package/dist/cjs/utils/abi/decodeEventLog.js +4 -7
  63. package/dist/cjs/utils/abi/decodeEventLog.js.map +1 -1
  64. package/dist/cjs/utils/abi/decodeFunctionData.js +2 -1
  65. package/dist/cjs/utils/abi/decodeFunctionData.js.map +1 -1
  66. package/dist/cjs/utils/abi/decodeFunctionResult.js +5 -7
  67. package/dist/cjs/utils/abi/decodeFunctionResult.js.map +1 -1
  68. package/dist/cjs/utils/abi/encodeDeployData.js +2 -1
  69. package/dist/cjs/utils/abi/encodeDeployData.js.map +1 -1
  70. package/dist/cjs/utils/abi/encodeErrorResult.js +5 -7
  71. package/dist/cjs/utils/abi/encodeErrorResult.js.map +1 -1
  72. package/dist/cjs/utils/abi/encodeEventTopics.js +8 -13
  73. package/dist/cjs/utils/abi/encodeEventTopics.js.map +1 -1
  74. package/dist/cjs/utils/abi/encodeFunctionData.js +9 -10
  75. package/dist/cjs/utils/abi/encodeFunctionData.js.map +1 -1
  76. package/dist/cjs/utils/abi/encodeFunctionResult.js +7 -12
  77. package/dist/cjs/utils/abi/encodeFunctionResult.js.map +1 -1
  78. package/dist/cjs/utils/abi/getAbiItem.js +2 -1
  79. package/dist/cjs/utils/abi/getAbiItem.js.map +1 -1
  80. package/dist/cjs/utils/buildRequest.js +2 -0
  81. package/dist/cjs/utils/buildRequest.js.map +1 -1
  82. package/dist/cjs/utils/ccip.js.map +1 -1
  83. package/dist/cjs/utils/errors/getCallError.js +4 -3
  84. package/dist/cjs/utils/errors/getCallError.js.map +1 -1
  85. package/dist/cjs/utils/errors/getContractError.js +2 -1
  86. package/dist/cjs/utils/errors/getContractError.js.map +1 -1
  87. package/dist/cjs/utils/errors/getEstimateGasError.js +4 -3
  88. package/dist/cjs/utils/errors/getEstimateGasError.js.map +1 -1
  89. package/dist/cjs/utils/errors/getNodeError.js +16 -10
  90. package/dist/cjs/utils/errors/getNodeError.js.map +1 -1
  91. package/dist/cjs/utils/errors/getTransactionError.js +4 -3
  92. package/dist/cjs/utils/errors/getTransactionError.js.map +1 -1
  93. package/dist/cjs/utils/formatters/transaction.js +5 -5
  94. package/dist/cjs/utils/formatters/transaction.js.map +1 -1
  95. package/dist/cjs/utils/hash/getFunctionSelector.js.map +1 -1
  96. package/dist/cjs/utils/hash/hashFunction.js.map +1 -1
  97. package/dist/cjs/utils/rpc.js +10 -16
  98. package/dist/cjs/utils/rpc.js.map +1 -1
  99. package/dist/cjs/utils/signature/hashTypedData.js +3 -14
  100. package/dist/cjs/utils/signature/hashTypedData.js.map +1 -1
  101. package/dist/cjs/utils/signature/hexToSignature.js +1 -1
  102. package/dist/cjs/utils/signature/hexToSignature.js.map +1 -1
  103. package/dist/cjs/utils/typedData.js +27 -1
  104. package/dist/cjs/utils/typedData.js.map +1 -1
  105. package/dist/esm/accounts/index.js +9 -9
  106. package/dist/esm/accounts/index.js.map +1 -1
  107. package/dist/esm/actions/getContract.js.map +1 -1
  108. package/dist/esm/actions/public/call.js +1 -1
  109. package/dist/esm/actions/public/call.js.map +1 -1
  110. package/dist/esm/actions/public/getLogs.js.map +1 -1
  111. package/dist/esm/actions/public/multicall.js +66 -31
  112. package/dist/esm/actions/public/multicall.js.map +1 -1
  113. package/dist/esm/actions/public/watchContractEvent.js +3 -2
  114. package/dist/esm/actions/public/watchContractEvent.js.map +1 -1
  115. package/dist/esm/actions/public/watchEvent.js +2 -5
  116. package/dist/esm/actions/public/watchEvent.js.map +1 -1
  117. package/dist/esm/actions/wallet/deployContract.js +3 -6
  118. package/dist/esm/actions/wallet/deployContract.js.map +1 -1
  119. package/dist/esm/actions/wallet/prepareTransactionRequest.js.map +1 -1
  120. package/dist/esm/actions/wallet/signTypedData.js +2 -14
  121. package/dist/esm/actions/wallet/signTypedData.js.map +1 -1
  122. package/dist/esm/chains/definitions/base.js +1 -3
  123. package/dist/esm/chains/definitions/base.js.map +1 -1
  124. package/dist/esm/chains/definitions/baseGoerli.js +1 -3
  125. package/dist/esm/chains/definitions/baseGoerli.js.map +1 -1
  126. package/dist/esm/chains/definitions/meter.js +19 -0
  127. package/dist/esm/chains/definitions/meter.js.map +1 -0
  128. package/dist/esm/chains/definitions/meterTestnet.js +22 -0
  129. package/dist/esm/chains/definitions/meterTestnet.js.map +1 -0
  130. package/dist/esm/chains/definitions/opBNB.js +25 -0
  131. package/dist/esm/chains/definitions/opBNB.js.map +1 -0
  132. package/dist/esm/chains/definitions/opBNBTestnet.js +26 -0
  133. package/dist/esm/chains/definitions/opBNBTestnet.js.map +1 -0
  134. package/dist/esm/chains/definitions/optimism.js +0 -2
  135. package/dist/esm/chains/definitions/optimism.js.map +1 -1
  136. package/dist/esm/chains/definitions/optimismGoerli.js +0 -2
  137. package/dist/esm/chains/definitions/optimismGoerli.js.map +1 -1
  138. package/dist/esm/chains/definitions/plinga.js +28 -0
  139. package/dist/esm/chains/definitions/plinga.js.map +1 -0
  140. package/dist/esm/chains/definitions/scrollSepolia.js +6 -0
  141. package/dist/esm/chains/definitions/scrollSepolia.js.map +1 -1
  142. package/dist/esm/chains/definitions/sepolia.js +5 -0
  143. package/dist/esm/chains/definitions/sepolia.js.map +1 -1
  144. package/dist/esm/chains/definitions/vechain.js +26 -0
  145. package/dist/esm/chains/definitions/vechain.js.map +1 -0
  146. package/dist/esm/chains/definitions/zora.js +0 -2
  147. package/dist/esm/chains/definitions/zora.js.map +1 -1
  148. package/dist/esm/chains/definitions/zoraTestnet.js +0 -2
  149. package/dist/esm/chains/definitions/zoraTestnet.js.map +1 -1
  150. package/dist/esm/chains/index.js +6 -0
  151. package/dist/esm/chains/index.js.map +1 -1
  152. package/dist/esm/clients/decorators/public.js.map +1 -1
  153. package/dist/esm/errors/node.js +1 -1
  154. package/dist/esm/errors/node.js.map +1 -1
  155. package/dist/esm/errors/utils.js +1 -1
  156. package/dist/esm/errors/utils.js.map +1 -1
  157. package/dist/esm/errors/version.js +2 -0
  158. package/dist/esm/errors/version.js.map +1 -0
  159. package/dist/esm/index.js +1 -2
  160. package/dist/esm/index.js.map +1 -1
  161. package/dist/esm/types/contract.js.map +1 -1
  162. package/dist/esm/utils/abi/decodeDeployData.js +2 -1
  163. package/dist/esm/utils/abi/decodeDeployData.js.map +1 -1
  164. package/dist/esm/utils/abi/decodeErrorResult.js +4 -3
  165. package/dist/esm/utils/abi/decodeErrorResult.js.map +1 -1
  166. package/dist/esm/utils/abi/decodeEventLog.js +4 -7
  167. package/dist/esm/utils/abi/decodeEventLog.js.map +1 -1
  168. package/dist/esm/utils/abi/decodeFunctionData.js +2 -1
  169. package/dist/esm/utils/abi/decodeFunctionData.js.map +1 -1
  170. package/dist/esm/utils/abi/decodeFunctionResult.js +5 -7
  171. package/dist/esm/utils/abi/decodeFunctionResult.js.map +1 -1
  172. package/dist/esm/utils/abi/encodeDeployData.js +2 -1
  173. package/dist/esm/utils/abi/encodeDeployData.js.map +1 -1
  174. package/dist/esm/utils/abi/encodeErrorResult.js +5 -7
  175. package/dist/esm/utils/abi/encodeErrorResult.js.map +1 -1
  176. package/dist/esm/utils/abi/encodeEventTopics.js +8 -13
  177. package/dist/esm/utils/abi/encodeEventTopics.js.map +1 -1
  178. package/dist/esm/utils/abi/encodeFunctionData.js +9 -10
  179. package/dist/esm/utils/abi/encodeFunctionData.js.map +1 -1
  180. package/dist/esm/utils/abi/encodeFunctionResult.js +7 -12
  181. package/dist/esm/utils/abi/encodeFunctionResult.js.map +1 -1
  182. package/dist/esm/utils/abi/getAbiItem.js +2 -1
  183. package/dist/esm/utils/abi/getAbiItem.js.map +1 -1
  184. package/dist/esm/utils/buildRequest.js +4 -0
  185. package/dist/esm/utils/buildRequest.js.map +1 -1
  186. package/dist/esm/utils/ccip.js.map +1 -1
  187. package/dist/esm/utils/errors/getCallError.js +5 -4
  188. package/dist/esm/utils/errors/getCallError.js.map +1 -1
  189. package/dist/esm/utils/errors/getContractError.js +2 -1
  190. package/dist/esm/utils/errors/getContractError.js.map +1 -1
  191. package/dist/esm/utils/errors/getEstimateGasError.js +5 -4
  192. package/dist/esm/utils/errors/getEstimateGasError.js.map +1 -1
  193. package/dist/esm/utils/errors/getNodeError.js +16 -10
  194. package/dist/esm/utils/errors/getNodeError.js.map +1 -1
  195. package/dist/esm/utils/errors/getTransactionError.js +5 -4
  196. package/dist/esm/utils/errors/getTransactionError.js.map +1 -1
  197. package/dist/esm/utils/formatters/transaction.js +5 -5
  198. package/dist/esm/utils/formatters/transaction.js.map +1 -1
  199. package/dist/esm/utils/hash/getFunctionSelector.js.map +1 -1
  200. package/dist/esm/utils/hash/hashFunction.js.map +1 -1
  201. package/dist/esm/utils/rpc.js +7 -16
  202. package/dist/esm/utils/rpc.js.map +1 -1
  203. package/dist/esm/utils/signature/hashTypedData.js +3 -15
  204. package/dist/esm/utils/signature/hashTypedData.js.map +1 -1
  205. package/dist/esm/utils/signature/hexToSignature.js +1 -1
  206. package/dist/esm/utils/signature/hexToSignature.js.map +1 -1
  207. package/dist/esm/utils/typedData.js +24 -0
  208. package/dist/esm/utils/typedData.js.map +1 -1
  209. package/dist/types/accounts/index.d.ts +9 -9
  210. package/dist/types/accounts/index.d.ts.map +1 -1
  211. package/dist/types/actions/getContract.d.ts +3 -3
  212. package/dist/types/actions/getContract.d.ts.map +1 -1
  213. package/dist/types/actions/public/getLogs.d.ts.map +1 -1
  214. package/dist/types/actions/public/multicall.d.ts.map +1 -1
  215. package/dist/types/actions/public/watchContractEvent.d.ts +29 -29
  216. package/dist/types/actions/public/watchContractEvent.d.ts.map +1 -1
  217. package/dist/types/actions/public/watchEvent.d.ts.map +1 -1
  218. package/dist/types/actions/wallet/deployContract.d.ts +10 -6
  219. package/dist/types/actions/wallet/deployContract.d.ts.map +1 -1
  220. package/dist/types/actions/wallet/prepareTransactionRequest.d.ts +1 -1
  221. package/dist/types/actions/wallet/prepareTransactionRequest.d.ts.map +1 -1
  222. package/dist/types/actions/wallet/signTypedData.d.ts.map +1 -1
  223. package/dist/types/chains/definitions/base.d.ts +1 -1
  224. package/dist/types/chains/definitions/base.d.ts.map +1 -1
  225. package/dist/types/chains/definitions/baseGoerli.d.ts +1 -1
  226. package/dist/types/chains/definitions/baseGoerli.d.ts.map +1 -1
  227. package/dist/types/chains/definitions/meter.d.ts +28 -0
  228. package/dist/types/chains/definitions/meter.d.ts.map +1 -0
  229. package/dist/types/chains/definitions/meterTestnet.d.ts +28 -0
  230. package/dist/types/chains/definitions/meterTestnet.d.ts.map +1 -0
  231. package/dist/types/chains/definitions/opBNB.d.ts +34 -0
  232. package/dist/types/chains/definitions/opBNB.d.ts.map +1 -0
  233. package/dist/types/chains/definitions/opBNBTestnet.d.ts +35 -0
  234. package/dist/types/chains/definitions/opBNBTestnet.d.ts.map +1 -0
  235. package/dist/types/chains/definitions/optimism.d.ts.map +1 -1
  236. package/dist/types/chains/definitions/optimismGoerli.d.ts.map +1 -1
  237. package/dist/types/chains/definitions/plinga.d.ts +34 -0
  238. package/dist/types/chains/definitions/plinga.d.ts.map +1 -0
  239. package/dist/types/chains/definitions/scrollSepolia.d.ts +6 -0
  240. package/dist/types/chains/definitions/scrollSepolia.d.ts.map +1 -1
  241. package/dist/types/chains/definitions/sepolia.d.ts +7 -0
  242. package/dist/types/chains/definitions/sepolia.d.ts.map +1 -1
  243. package/dist/types/chains/definitions/vechain.d.ts +32 -0
  244. package/dist/types/chains/definitions/vechain.d.ts.map +1 -0
  245. package/dist/types/chains/definitions/zora.d.ts.map +1 -1
  246. package/dist/types/chains/definitions/zoraTestnet.d.ts.map +1 -1
  247. package/dist/types/chains/index.d.ts +6 -0
  248. package/dist/types/chains/index.d.ts.map +1 -1
  249. package/dist/types/clients/decorators/public.d.ts +2 -2
  250. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  251. package/dist/types/clients/decorators/wallet.d.ts +1 -1
  252. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  253. package/dist/types/errors/version.d.ts +2 -0
  254. package/dist/types/errors/version.d.ts.map +1 -0
  255. package/dist/types/index.d.ts +6 -7
  256. package/dist/types/index.d.ts.map +1 -1
  257. package/dist/types/types/chain.d.ts +4 -0
  258. package/dist/types/types/chain.d.ts.map +1 -1
  259. package/dist/types/types/contract.d.ts +48 -82
  260. package/dist/types/types/contract.d.ts.map +1 -1
  261. package/dist/types/types/multicall.d.ts +4 -4
  262. package/dist/types/types/multicall.d.ts.map +1 -1
  263. package/dist/types/utils/abi/decodeDeployData.d.ts +7 -6
  264. package/dist/types/utils/abi/decodeDeployData.d.ts.map +1 -1
  265. package/dist/types/utils/abi/decodeErrorResult.d.ts +16 -11
  266. package/dist/types/utils/abi/decodeErrorResult.d.ts.map +1 -1
  267. package/dist/types/utils/abi/decodeEventLog.d.ts +24 -17
  268. package/dist/types/utils/abi/decodeEventLog.d.ts.map +1 -1
  269. package/dist/types/utils/abi/decodeFunctionData.d.ts +14 -10
  270. package/dist/types/utils/abi/decodeFunctionData.d.ts.map +1 -1
  271. package/dist/types/utils/abi/decodeFunctionResult.d.ts +18 -11
  272. package/dist/types/utils/abi/decodeFunctionResult.d.ts.map +1 -1
  273. package/dist/types/utils/abi/encodeDeployData.d.ts +13 -5
  274. package/dist/types/utils/abi/encodeDeployData.d.ts.map +1 -1
  275. package/dist/types/utils/abi/encodeErrorResult.d.ts +16 -10
  276. package/dist/types/utils/abi/encodeErrorResult.d.ts.map +1 -1
  277. package/dist/types/utils/abi/encodeEventTopics.d.ts +14 -12
  278. package/dist/types/utils/abi/encodeEventTopics.d.ts.map +1 -1
  279. package/dist/types/utils/abi/encodeFunctionData.d.ts +19 -10
  280. package/dist/types/utils/abi/encodeFunctionData.d.ts.map +1 -1
  281. package/dist/types/utils/abi/encodeFunctionResult.d.ts +16 -12
  282. package/dist/types/utils/abi/encodeFunctionResult.d.ts.map +1 -1
  283. package/dist/types/utils/abi/getAbiItem.d.ts +11 -8
  284. package/dist/types/utils/abi/getAbiItem.d.ts.map +1 -1
  285. package/dist/types/utils/buildRequest.d.ts.map +1 -1
  286. package/dist/types/utils/ccip.d.ts.map +1 -1
  287. package/dist/types/utils/errors/getCallError.d.ts.map +1 -1
  288. package/dist/types/utils/errors/getContractError.d.ts.map +1 -1
  289. package/dist/types/utils/errors/getEstimateGasError.d.ts.map +1 -1
  290. package/dist/types/utils/errors/getNodeError.d.ts +1 -1
  291. package/dist/types/utils/errors/getNodeError.d.ts.map +1 -1
  292. package/dist/types/utils/errors/getTransactionError.d.ts.map +1 -1
  293. package/dist/types/utils/hash/getEventSelector.d.ts +1 -1
  294. package/dist/types/utils/hash/getEventSelector.d.ts.map +1 -1
  295. package/dist/types/utils/hash/getFunctionSelector.d.ts.map +1 -1
  296. package/dist/types/utils/hash/hashFunction.d.ts.map +1 -1
  297. package/dist/types/utils/rpc.d.ts +3 -1
  298. package/dist/types/utils/rpc.d.ts.map +1 -1
  299. package/dist/types/utils/signature/hashTypedData.d.ts +10 -1
  300. package/dist/types/utils/signature/hashTypedData.d.ts.map +1 -1
  301. package/dist/types/utils/signature/verifyMessage.d.ts +2 -2
  302. package/dist/types/utils/signature/verifyMessage.d.ts.map +1 -1
  303. package/dist/types/utils/typedData.d.ts +8 -1
  304. package/dist/types/utils/typedData.d.ts.map +1 -1
  305. package/package.json +8 -8
  306. package/src/accounts/index.ts +10 -9
  307. package/src/actions/getContract.ts +5 -2
  308. package/src/actions/public/call.ts +1 -1
  309. package/src/actions/public/getLogs.ts +3 -3
  310. package/src/actions/public/multicall.ts +72 -29
  311. package/src/actions/public/watchContractEvent.ts +58 -52
  312. package/src/actions/public/watchEvent.ts +4 -7
  313. package/src/actions/wallet/deployContract.ts +29 -34
  314. package/src/actions/wallet/prepareTransactionRequest.ts +3 -6
  315. package/src/actions/wallet/signTypedData.ts +5 -14
  316. package/src/chains/definitions/base.ts +1 -3
  317. package/src/chains/definitions/baseGoerli.ts +1 -3
  318. package/src/chains/definitions/meter.ts +19 -0
  319. package/src/chains/definitions/meterTestnet.ts +22 -0
  320. package/src/chains/definitions/opBNB.ts +26 -0
  321. package/src/chains/definitions/opBNBTestnet.ts +26 -0
  322. package/src/chains/definitions/optimism.ts +0 -2
  323. package/src/chains/definitions/optimismGoerli.ts +0 -2
  324. package/src/chains/definitions/plinga.ts +28 -0
  325. package/src/chains/definitions/scrollSepolia.ts +6 -0
  326. package/src/chains/definitions/sepolia.ts +5 -0
  327. package/src/chains/definitions/vechain.ts +26 -0
  328. package/src/chains/definitions/zora.ts +0 -2
  329. package/src/chains/definitions/zoraTestnet.ts +0 -2
  330. package/src/chains/index.ts +6 -0
  331. package/src/clients/decorators/public.ts +2 -1
  332. package/src/clients/decorators/wallet.ts +3 -3
  333. package/src/errors/node.ts +1 -1
  334. package/src/errors/utils.ts +1 -1
  335. package/src/errors/version.ts +1 -0
  336. package/src/index.ts +10 -11
  337. package/src/types/chain.ts +2 -0
  338. package/src/types/contract.ts +183 -216
  339. package/src/types/multicall.ts +19 -13
  340. package/src/utils/abi/decodeDeployData.ts +16 -15
  341. package/src/utils/abi/decodeErrorResult.ts +41 -25
  342. package/src/utils/abi/decodeEventLog.ts +65 -67
  343. package/src/utils/abi/decodeFunctionData.ts +30 -22
  344. package/src/utils/abi/decodeFunctionResult.ts +124 -46
  345. package/src/utils/abi/encodeDeployData.ts +27 -16
  346. package/src/utils/abi/encodeErrorResult.ts +47 -26
  347. package/src/utils/abi/encodeEventTopics.ts +49 -30
  348. package/src/utils/abi/encodeFunctionData.ts +58 -32
  349. package/src/utils/abi/encodeFunctionResult.ts +53 -36
  350. package/src/utils/abi/getAbiItem.ts +68 -32
  351. package/src/utils/buildRequest.ts +4 -0
  352. package/src/utils/ccip.ts +1 -5
  353. package/src/utils/errors/getCallError.ts +4 -8
  354. package/src/utils/errors/getContractError.ts +2 -1
  355. package/src/utils/errors/getEstimateGasError.ts +4 -8
  356. package/src/utils/errors/getNodeError.ts +18 -13
  357. package/src/utils/errors/getTransactionError.ts +4 -8
  358. package/src/utils/formatters/transaction.ts +5 -5
  359. package/src/utils/hash/getEventSelector.ts +1 -1
  360. package/src/utils/hash/getFunctionSelector.ts +1 -1
  361. package/src/utils/hash/hashFunction.ts +1 -1
  362. package/src/utils/rpc.ts +9 -20
  363. package/src/utils/signature/hashTypedData.ts +4 -16
  364. package/src/utils/signature/hexToSignature.ts +1 -1
  365. package/src/utils/signature/verifyMessage.ts +2 -2
  366. package/src/utils/typedData.ts +29 -1
  367. package/dist/cjs/accounts/wordlists/czech.js +0 -6
  368. package/dist/cjs/accounts/wordlists/czech.js.map +0 -1
  369. package/dist/cjs/accounts/wordlists/english.js +0 -6
  370. package/dist/cjs/accounts/wordlists/english.js.map +0 -1
  371. package/dist/cjs/accounts/wordlists/french.js +0 -6
  372. package/dist/cjs/accounts/wordlists/french.js.map +0 -1
  373. package/dist/cjs/accounts/wordlists/italian.js +0 -6
  374. package/dist/cjs/accounts/wordlists/italian.js.map +0 -1
  375. package/dist/cjs/accounts/wordlists/japanese.js +0 -6
  376. package/dist/cjs/accounts/wordlists/japanese.js.map +0 -1
  377. package/dist/cjs/accounts/wordlists/korean.js +0 -6
  378. package/dist/cjs/accounts/wordlists/korean.js.map +0 -1
  379. package/dist/cjs/accounts/wordlists/simplifiedChinese.js +0 -6
  380. package/dist/cjs/accounts/wordlists/simplifiedChinese.js.map +0 -1
  381. package/dist/cjs/accounts/wordlists/spanish.js +0 -6
  382. package/dist/cjs/accounts/wordlists/spanish.js.map +0 -1
  383. package/dist/cjs/accounts/wordlists/traditionalChinese.js +0 -6
  384. package/dist/cjs/accounts/wordlists/traditionalChinese.js.map +0 -1
  385. package/dist/cjs/chains/optimism/fees.js +0 -7
  386. package/dist/cjs/chains/optimism/fees.js.map +0 -1
  387. package/dist/cjs/version.js.map +0 -1
  388. package/dist/esm/accounts/wordlists/czech.js +0 -2
  389. package/dist/esm/accounts/wordlists/czech.js.map +0 -1
  390. package/dist/esm/accounts/wordlists/english.js +0 -2
  391. package/dist/esm/accounts/wordlists/english.js.map +0 -1
  392. package/dist/esm/accounts/wordlists/french.js +0 -2
  393. package/dist/esm/accounts/wordlists/french.js.map +0 -1
  394. package/dist/esm/accounts/wordlists/italian.js +0 -2
  395. package/dist/esm/accounts/wordlists/italian.js.map +0 -1
  396. package/dist/esm/accounts/wordlists/japanese.js +0 -2
  397. package/dist/esm/accounts/wordlists/japanese.js.map +0 -1
  398. package/dist/esm/accounts/wordlists/korean.js +0 -2
  399. package/dist/esm/accounts/wordlists/korean.js.map +0 -1
  400. package/dist/esm/accounts/wordlists/simplifiedChinese.js +0 -2
  401. package/dist/esm/accounts/wordlists/simplifiedChinese.js.map +0 -1
  402. package/dist/esm/accounts/wordlists/spanish.js +0 -2
  403. package/dist/esm/accounts/wordlists/spanish.js.map +0 -1
  404. package/dist/esm/accounts/wordlists/traditionalChinese.js +0 -2
  405. package/dist/esm/accounts/wordlists/traditionalChinese.js.map +0 -1
  406. package/dist/esm/chains/optimism/fees.js +0 -4
  407. package/dist/esm/chains/optimism/fees.js.map +0 -1
  408. package/dist/esm/version.js +0 -2
  409. package/dist/esm/version.js.map +0 -1
  410. package/dist/types/accounts/wordlists/czech.d.ts +0 -2
  411. package/dist/types/accounts/wordlists/czech.d.ts.map +0 -1
  412. package/dist/types/accounts/wordlists/english.d.ts +0 -2
  413. package/dist/types/accounts/wordlists/english.d.ts.map +0 -1
  414. package/dist/types/accounts/wordlists/french.d.ts +0 -2
  415. package/dist/types/accounts/wordlists/french.d.ts.map +0 -1
  416. package/dist/types/accounts/wordlists/italian.d.ts +0 -2
  417. package/dist/types/accounts/wordlists/italian.d.ts.map +0 -1
  418. package/dist/types/accounts/wordlists/japanese.d.ts +0 -2
  419. package/dist/types/accounts/wordlists/japanese.d.ts.map +0 -1
  420. package/dist/types/accounts/wordlists/korean.d.ts +0 -2
  421. package/dist/types/accounts/wordlists/korean.d.ts.map +0 -1
  422. package/dist/types/accounts/wordlists/simplifiedChinese.d.ts +0 -2
  423. package/dist/types/accounts/wordlists/simplifiedChinese.d.ts.map +0 -1
  424. package/dist/types/accounts/wordlists/spanish.d.ts +0 -2
  425. package/dist/types/accounts/wordlists/spanish.d.ts.map +0 -1
  426. package/dist/types/accounts/wordlists/traditionalChinese.d.ts +0 -2
  427. package/dist/types/accounts/wordlists/traditionalChinese.d.ts.map +0 -1
  428. package/dist/types/chains/optimism/fees.d.ts +0 -4
  429. package/dist/types/chains/optimism/fees.d.ts.map +0 -1
  430. package/dist/types/version.d.ts +0 -2
  431. package/dist/types/version.d.ts.map +0 -1
  432. package/src/accounts/wordlists/czech.ts +0 -1
  433. package/src/accounts/wordlists/english.ts +0 -1
  434. package/src/accounts/wordlists/french.ts +0 -1
  435. package/src/accounts/wordlists/italian.ts +0 -1
  436. package/src/accounts/wordlists/japanese.ts +0 -1
  437. package/src/accounts/wordlists/korean.ts +0 -1
  438. package/src/accounts/wordlists/simplifiedChinese.ts +0 -1
  439. package/src/accounts/wordlists/spanish.ts +0 -1
  440. package/src/accounts/wordlists/traditionalChinese.ts +0 -1
  441. package/src/chains/optimism/fees.ts +0 -5
  442. package/src/version.ts +0 -1
@@ -1,7 +1,5 @@
1
1
  import {
2
2
  type Abi,
3
- type AbiConstructor,
4
- type AbiError,
5
3
  type AbiEvent,
6
4
  type AbiFunction,
7
5
  type AbiParameter,
@@ -43,6 +41,24 @@ export type ContractFunctionName<
43
41
  : functionName
44
42
  : string
45
43
 
44
+ export type ContractErrorName<abi extends Abi | readonly unknown[] = Abi> =
45
+ ExtractAbiErrorNames<
46
+ abi extends Abi ? abi : Abi
47
+ > extends infer errorName extends string
48
+ ? [errorName] extends [never]
49
+ ? string
50
+ : errorName
51
+ : string
52
+
53
+ export type ContractEventName<abi extends Abi | readonly unknown[] = Abi> =
54
+ ExtractAbiEventNames<
55
+ abi extends Abi ? abi : Abi
56
+ > extends infer eventName extends string
57
+ ? [eventName] extends [never]
58
+ ? string
59
+ : eventName
60
+ : string
61
+
46
62
  export type ContractFunctionArgs<
47
63
  abi extends Abi | readonly unknown[] = Abi,
48
64
  mutability extends AbiStateMutability = AbiStateMutability,
@@ -63,6 +79,56 @@ export type ContractFunctionArgs<
63
79
  : args
64
80
  : readonly unknown[]
65
81
 
82
+ export type ContractConstructorArgs<
83
+ abi extends Abi | readonly unknown[] = Abi,
84
+ > = AbiParametersToPrimitiveTypes<
85
+ Extract<
86
+ (abi extends Abi ? abi : Abi)[number],
87
+ { type: 'constructor' }
88
+ >['inputs'],
89
+ 'inputs'
90
+ > extends infer args
91
+ ? [args] extends [never]
92
+ ? readonly unknown[]
93
+ : args
94
+ : readonly unknown[]
95
+
96
+ export type ContractErrorArgs<
97
+ abi extends Abi | readonly unknown[] = Abi,
98
+ errorName extends ContractErrorName<abi> = ContractErrorName<abi>,
99
+ > = AbiParametersToPrimitiveTypes<
100
+ ExtractAbiError<abi extends Abi ? abi : Abi, errorName>['inputs'],
101
+ 'inputs'
102
+ > extends infer args
103
+ ? [args] extends [never]
104
+ ? readonly unknown[]
105
+ : args
106
+ : readonly unknown[]
107
+
108
+ export type ContractEventArgs<
109
+ abi extends Abi | readonly unknown[] = Abi,
110
+ eventName extends ContractErrorName<abi> = ContractErrorName<abi>,
111
+ > = AbiEventParametersToPrimitiveTypes<
112
+ ExtractAbiEvent<abi extends Abi ? abi : Abi, eventName>['inputs']
113
+ > extends infer args
114
+ ? [args] extends [never]
115
+ ? readonly unknown[] | Record<string, unknown>
116
+ : args
117
+ : readonly unknown[] | Record<string, unknown>
118
+
119
+ export type ContractEventArgsFromTopics<
120
+ abi extends Abi | readonly unknown[] = Abi,
121
+ eventName extends ContractEventName<abi> = ContractEventName<abi>,
122
+ strict extends boolean = true,
123
+ > = AbiEventParametersToPrimitiveTypes<
124
+ ExtractAbiEvent<abi extends Abi ? abi : Abi, eventName>['inputs'],
125
+ { EnableUnion: false; IndexedOnly: false; Required: strict }
126
+ > extends infer args
127
+ ? [args] extends [never]
128
+ ? readonly unknown[] | Record<string, unknown>
129
+ : args
130
+ : readonly unknown[] | Record<string, unknown>
131
+
66
132
  export type Widen<type> =
67
133
  | ([unknown] extends [type] ? unknown : never)
68
134
  | (type extends Function ? type : never)
@@ -101,7 +167,11 @@ export type ExtractAbiFunctionForArgs<
101
167
  ? IsUnion<abiFunction> extends true // narrow overloads using `args` by converting to tuple and filtering out overloads that don't match
102
168
  ? UnionToTuple<abiFunction> extends infer abiFunctions extends readonly AbiFunction[]
103
169
  ? {
104
- [k in keyof abiFunctions]: args extends AbiParametersToPrimitiveTypes<
170
+ [k in keyof abiFunctions]: (
171
+ readonly [] extends args
172
+ ? readonly [] // fallback to `readonly []` if `args` has no value (e.g. `args` property not provided)
173
+ : args
174
+ ) extends AbiParametersToPrimitiveTypes<
105
175
  abiFunctions[k]['inputs'],
106
176
  'inputs'
107
177
  >
@@ -135,16 +205,17 @@ export type ContractFunctionParameters<
135
205
  functionName:
136
206
  | allFunctionNames // show all options
137
207
  | (functionName extends allFunctionNames ? functionName : never) // infer value
138
- args?:
139
- | allArgs // show all options
140
- | (args extends allArgs ? Widen<args> : never) // infer value, widen inferred value of `args` conditionally to match `allArgs`
141
- | undefined
142
208
  } & UnionEvaluate<
143
209
  readonly [] extends allArgs
144
210
  ? {
145
211
  args?:
146
212
  | allArgs // show all options
147
- | (args extends allArgs ? Widen<args> : never) // infer value, widen inferred value of `args` conditionally to match `allArgs`
213
+ // infer value, widen inferred value of `args` conditionally to match `allArgs`
214
+ | (abi extends Abi
215
+ ? args extends allArgs
216
+ ? Widen<args>
217
+ : never
218
+ : never)
148
219
  | undefined
149
220
  }
150
221
  : {
@@ -174,7 +245,7 @@ export type ContractFunctionReturnType<
174
245
  abi,
175
246
  mutability,
176
247
  functionName,
177
- readonly [] extends args ? readonly [] : args
248
+ args
178
249
  >['outputs']
179
250
  > extends infer types
180
251
  ? types extends readonly []
@@ -187,25 +258,59 @@ export type ContractFunctionReturnType<
187
258
 
188
259
  export type AbiItem = Abi[number]
189
260
 
190
- export type EventDefinition = `${string}(${string})`
261
+ export type ExtractAbiItemNames<abi extends Abi> = Extract<
262
+ abi[number],
263
+ { name: string }
264
+ >['name']
191
265
 
192
- export type ContractFunctionResult<
193
- TAbi extends Abi | readonly unknown[] = Abi,
194
- TFunctionName extends string = string,
195
- TAbiFunction extends AbiFunction & {
196
- type: 'function'
197
- } = TAbi extends Abi ? ExtractAbiFunction<TAbi, TFunctionName> : AbiFunction,
198
- TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['outputs']>,
199
- FailedToParseArgs =
200
- | ([TArgs] extends [never] ? true : false)
201
- | (readonly unknown[] extends TArgs ? true : false),
202
- > = true extends FailedToParseArgs
203
- ? unknown
204
- : TArgs extends readonly []
205
- ? void
206
- : TArgs extends readonly [infer Arg]
207
- ? Arg
208
- : TArgs
266
+ export type ExtractAbiItem<
267
+ abi extends Abi,
268
+ name extends ExtractAbiItemNames<abi>,
269
+ > = Extract<abi[number], { name: name }>
270
+
271
+ export type AbiItemName<abi extends Abi | readonly unknown[] = Abi> =
272
+ abi extends Abi ? ExtractAbiItemNames<abi> : string
273
+
274
+ export type AbiItemArgs<
275
+ abi extends Abi | readonly unknown[] = Abi,
276
+ name extends AbiItemName<abi> = AbiItemName<abi>,
277
+ > = AbiParametersToPrimitiveTypes<
278
+ ExtractAbiItem<abi extends Abi ? abi : Abi, name>['inputs'],
279
+ 'inputs'
280
+ > extends infer args
281
+ ? [args] extends [never]
282
+ ? readonly unknown[]
283
+ : args
284
+ : readonly unknown[]
285
+
286
+ export type ExtractAbiItemForArgs<
287
+ abi extends Abi,
288
+ name extends AbiItemName<abi>,
289
+ args extends AbiItemArgs<abi, name>,
290
+ > = ExtractAbiItem<abi, name> extends infer abiItem extends AbiItem & {
291
+ inputs: readonly AbiParameter[]
292
+ }
293
+ ? IsUnion<abiItem> extends true // narrow overloads using `args` by converting to tuple and filtering out overloads that don't match
294
+ ? UnionToTuple<abiItem> extends infer abiItems extends readonly (AbiItem & {
295
+ inputs: readonly AbiParameter[]
296
+ })[]
297
+ ? {
298
+ [k in keyof abiItems]: (
299
+ readonly [] extends args
300
+ ? readonly [] // fallback to `readonly []` if `args` has no value (e.g. `args` property not provided)
301
+ : args
302
+ ) extends AbiParametersToPrimitiveTypes<
303
+ abiItems[k]['inputs'],
304
+ 'inputs'
305
+ >
306
+ ? abiItems[k]
307
+ : never
308
+ }[number] // convert back to union (removes `never` tuple entries: `['foo', never, 'bar'][number]` => `'foo' | 'bar'`)
309
+ : never
310
+ : abiItem
311
+ : never
312
+
313
+ export type EventDefinition = `${string}(${string})`
209
314
 
210
315
  export type GetValue<
211
316
  TAbi extends Abi | readonly unknown[],
@@ -223,6 +328,8 @@ export type GetValue<
223
328
  : { value?: never }
224
329
  : { value?: TValueType }
225
330
 
331
+ //////////////////////////////////////////////////////////////////////////////////////////////////
332
+
226
333
  export type MaybeAbiEventName<TAbiEvent extends AbiEvent | undefined> =
227
334
  TAbiEvent extends AbiEvent ? TAbiEvent['name'] : undefined
228
335
 
@@ -235,21 +342,6 @@ export type MaybeExtractEventArgsFromAbi<
235
342
  : undefined
236
343
  : undefined
237
344
 
238
- //////////////////////////////////////////////////////////////////////
239
- // ABI item name
240
-
241
- export type InferErrorName<
242
- TAbi extends Abi | readonly unknown[] = Abi,
243
- TErrorName extends string | undefined = string,
244
- > = TAbi extends Abi
245
- ? ExtractAbiErrorNames<TAbi> extends infer AbiErrorNames
246
- ?
247
- | AbiErrorNames
248
- | (TErrorName extends AbiErrorNames ? TErrorName : never)
249
- | (Abi extends TAbi ? string : never)
250
- : never
251
- : TErrorName
252
-
253
345
  export type InferEventName<
254
346
  TAbi extends Abi | readonly unknown[] = Abi,
255
347
  TEventName extends string | undefined = string,
@@ -259,115 +351,9 @@ export type InferEventName<
259
351
  : never
260
352
  : TEventName
261
353
 
262
- export type InferFunctionName<
263
- TAbi extends Abi | readonly unknown[] = Abi,
264
- TFunctionName extends string | undefined = string,
265
- TAbiStateMutability extends AbiStateMutability = AbiStateMutability,
266
- > = TAbi extends Abi
267
- ? ExtractAbiFunctionNames<
268
- TAbi,
269
- TAbiStateMutability
270
- > extends infer AbiFunctionNames
271
- ?
272
- | AbiFunctionNames
273
- | (TFunctionName extends AbiFunctionNames ? TFunctionName : never)
274
- | (Abi extends TAbi ? string : never)
275
- : never
276
- : TFunctionName
277
-
278
- export type InferItemName<
279
- TAbi extends Abi | readonly unknown[] = Abi,
280
- TName extends string = string,
281
- > = TAbi extends Abi
282
- ? ExtractAbiItemNames<TAbi> extends infer AbiNames
283
- ?
284
- | AbiNames
285
- | (TName extends AbiNames ? TName : never)
286
- | (Abi extends TAbi ? string : never)
287
- : never
288
- : TName
289
- type ExtractAbiItemNames<TAbi extends Abi> =
290
- | ExtractAbiFunctionNames<TAbi>
291
- | ExtractAbiEventNames<TAbi>
292
- | ExtractAbiErrorNames<TAbi>
293
-
294
354
  //////////////////////////////////////////////////////////////////////
295
355
  // ABI item args
296
356
 
297
- export type GetFunctionArgs<
298
- TAbi extends Abi | readonly unknown[],
299
- TFunctionName extends string,
300
- TAbiFunction extends AbiFunction = TAbi extends Abi
301
- ? ExtractAbiFunction<TAbi, TFunctionName>
302
- : AbiFunction,
303
- TArgs = AbiParametersToPrimitiveTypes<TAbiFunction['inputs']>,
304
- FailedToParseArgs =
305
- | ([TArgs] extends [never] ? true : false)
306
- | (readonly unknown[] extends TArgs ? true : false),
307
- > = true extends FailedToParseArgs
308
- ? {
309
- /**
310
- * Arguments to pass contract method
311
- *
312
- * Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
313
- */
314
- args?: readonly unknown[]
315
- }
316
- : TArgs extends readonly []
317
- ? { args?: never }
318
- : {
319
- /** Arguments to pass contract method */ args: TArgs
320
- }
321
-
322
- export type GetConstructorArgs<
323
- TAbi extends Abi | readonly unknown[],
324
- TAbiConstructor extends AbiConstructor = TAbi extends Abi
325
- ? Extract<TAbi[number], { type: 'constructor' }>
326
- : AbiConstructor,
327
- TArgs = AbiParametersToPrimitiveTypes<TAbiConstructor['inputs']>,
328
- FailedToParseArgs =
329
- | ([TArgs] extends [never] ? true : false)
330
- | (readonly unknown[] extends TArgs ? true : false),
331
- > = true extends FailedToParseArgs
332
- ? {
333
- /**
334
- * Arguments to pass contract constructor
335
- *
336
- * Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
337
- */
338
- args?: readonly unknown[]
339
- }
340
- : TArgs extends readonly []
341
- ? { args?: never }
342
- : {
343
- /** Arguments to pass contract constructor */ args: TArgs
344
- }
345
-
346
- export type GetErrorArgs<
347
- TAbi extends Abi | readonly unknown[],
348
- TErrorName extends string,
349
- TAbiError extends AbiError = TAbi extends Abi
350
- ? ExtractAbiError<TAbi, TErrorName>
351
- : AbiError,
352
- TArgs = AbiParametersToPrimitiveTypes<TAbiError['inputs']>,
353
- FailedToParseArgs =
354
- | ([TArgs] extends [never] ? true : false)
355
- | (readonly unknown[] extends TArgs ? true : false),
356
- > = true extends FailedToParseArgs
357
- ? {
358
- /**
359
- * Arguments to pass contract method
360
- *
361
- * Use a [const assertion](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-4.html#const-assertions) on {@link abi} for type inference.
362
- */
363
- args?: readonly unknown[]
364
- }
365
- : TArgs extends readonly []
366
- ? { args?: never }
367
- : {
368
- /** Arguments to pass contract method */ args: TArgs
369
- }
370
-
371
357
  export type GetEventArgs<
372
358
  TAbi extends Abi | readonly unknown[],
373
359
  TEventName extends string,
@@ -383,25 +369,6 @@ export type GetEventArgs<
383
369
  ? readonly unknown[] | Record<string, unknown>
384
370
  : TArgs
385
371
 
386
- export type GetEventArgsFromTopics<
387
- TAbi extends Abi | readonly unknown[],
388
- TEventName extends string,
389
- TTopics extends LogTopic[],
390
- TData extends Hex | undefined,
391
- TStrict extends boolean = true,
392
- TAbiEvent extends AbiEvent & { type: 'event' } = TAbi extends Abi
393
- ? ExtractAbiEvent<TAbi, TEventName>
394
- : AbiEvent & { type: 'event' },
395
- TArgs = AbiEventParametersToPrimitiveTypes<
396
- TAbiEvent['inputs'],
397
- { EnableUnion: false; IndexedOnly: false; Required: TStrict }
398
- >,
399
- > = TTopics extends readonly []
400
- ? TData extends undefined
401
- ? { args?: never }
402
- : { args?: TArgs }
403
- : { args: TArgs }
404
-
405
372
  //////////////////////////////////////////////////////////////////////
406
373
  // ABI event types
407
374
 
@@ -416,55 +383,6 @@ type DefaultEventParameterOptions = {
416
383
  Required: false
417
384
  }
418
385
 
419
- type HashedEventTypes = 'bytes' | 'string' | 'tuple' | `${string}[${string}]`
420
-
421
- // TODO: Speed up by returning immediately as soon as named parameter is found.
422
- type _HasUnnamedAbiParameter<TAbiParameters extends readonly AbiParameter[]> =
423
- TAbiParameters extends readonly [
424
- infer Head extends AbiParameter,
425
- ...infer Tail extends readonly AbiParameter[],
426
- ]
427
- ? Head extends { name: string }
428
- ? Head['name'] extends ''
429
- ? true
430
- : _HasUnnamedAbiParameter<Tail>
431
- : true
432
- : false
433
-
434
- /**
435
- * @internal
436
- */
437
- export type LogTopicType<
438
- TPrimitiveType = Hex,
439
- TTopic extends LogTopic = LogTopic,
440
- > = TTopic extends Hex
441
- ? TPrimitiveType
442
- : TTopic extends Hex[]
443
- ? TPrimitiveType[]
444
- : TTopic extends null
445
- ? null
446
- : never
447
-
448
- /**
449
- * @internal
450
- */
451
- export type AbiEventParameterToPrimitiveType<
452
- TAbiParameter extends AbiParameter,
453
- Options extends EventParameterOptions = DefaultEventParameterOptions,
454
- _Type = AbiParameterToPrimitiveType<TAbiParameter>,
455
- > = Options['EnableUnion'] extends true ? LogTopicType<_Type> : _Type
456
-
457
- /**
458
- * @internal
459
- */
460
- export type AbiEventTopicToPrimitiveType<
461
- TAbiParameter extends AbiParameter,
462
- TTopic extends LogTopic,
463
- TPrimitiveType = TAbiParameter['type'] extends HashedEventTypes
464
- ? TTopic
465
- : AbiParameterToPrimitiveType<TAbiParameter>,
466
- > = LogTopicType<TPrimitiveType, TTopic>
467
-
468
386
  export type AbiEventParametersToPrimitiveTypes<
469
387
  TAbiParameters extends readonly AbiParameter[],
470
388
  Options extends EventParameterOptions = DefaultEventParameterOptions,
@@ -515,3 +433,52 @@ export type AbiEventParametersToPrimitiveTypes<
515
433
  >
516
434
  : never
517
435
  : never
436
+
437
+ // TODO: Speed up by returning immediately as soon as named parameter is found.
438
+ type _HasUnnamedAbiParameter<TAbiParameters extends readonly AbiParameter[]> =
439
+ TAbiParameters extends readonly [
440
+ infer Head extends AbiParameter,
441
+ ...infer Tail extends readonly AbiParameter[],
442
+ ]
443
+ ? Head extends { name: string }
444
+ ? Head['name'] extends ''
445
+ ? true
446
+ : _HasUnnamedAbiParameter<Tail>
447
+ : true
448
+ : false
449
+
450
+ /**
451
+ * @internal
452
+ */
453
+ export type LogTopicType<
454
+ TPrimitiveType = Hex,
455
+ TTopic extends LogTopic = LogTopic,
456
+ > = TTopic extends Hex
457
+ ? TPrimitiveType
458
+ : TTopic extends Hex[]
459
+ ? TPrimitiveType[]
460
+ : TTopic extends null
461
+ ? null
462
+ : never
463
+
464
+ /**
465
+ * @internal
466
+ */
467
+ export type AbiEventParameterToPrimitiveType<
468
+ TAbiParameter extends AbiParameter,
469
+ Options extends EventParameterOptions = DefaultEventParameterOptions,
470
+ _Type = AbiParameterToPrimitiveType<TAbiParameter>,
471
+ > = Options['EnableUnion'] extends true ? LogTopicType<_Type> : _Type
472
+
473
+ type HashedEventTypes = 'bytes' | 'string' | 'tuple' | `${string}[${string}]`
474
+
475
+ /**
476
+ * @internal
477
+ */
478
+ export type AbiEventTopicToPrimitiveType<
479
+ TAbiParameter extends AbiParameter,
480
+ TTopic extends LogTopic,
481
+ TPrimitiveType = TAbiParameter['type'] extends HashedEventTypes
482
+ ? TTopic
483
+ : AbiParameterToPrimitiveType<TAbiParameter>,
484
+ > = LogTopicType<TPrimitiveType, TTopic>
@@ -6,7 +6,7 @@ import type {
6
6
  ContractFunctionParameters,
7
7
  ContractFunctionReturnType,
8
8
  } from './contract.js'
9
- import type { MaybePartial } from './utils.js'
9
+ import type { MaybePartial, Prettify } from './utils.js'
10
10
 
11
11
  export type MulticallContracts<
12
12
  contracts extends readonly unknown[],
@@ -23,8 +23,10 @@ export type MulticallContracts<
23
23
  ? readonly [
24
24
  ...result,
25
25
  MaybePartial<
26
- GetMulticallContractParameters<contract, options['mutability']> &
27
- options['properties'],
26
+ Prettify<
27
+ GetMulticallContractParameters<contract, options['mutability']> &
28
+ options['properties']
29
+ >,
28
30
  options['optional']
29
31
  >,
30
32
  ]
@@ -35,8 +37,10 @@ export type MulticallContracts<
35
37
  [
36
38
  ...result,
37
39
  MaybePartial<
38
- GetMulticallContractParameters<contract, options['mutability']> &
39
- options['properties'],
40
+ Prettify<
41
+ GetMulticallContractParameters<contract, options['mutability']> &
42
+ options['properties']
43
+ >,
40
44
  options['optional']
41
45
  >,
42
46
  ]
@@ -52,18 +56,20 @@ export type MulticallContracts<
52
56
  infer args
53
57
  >[]
54
58
  ? readonly MaybePartial<
55
- ContractFunctionParameters<
56
- abi,
57
- options['mutability'],
58
- functionName,
59
- args
60
- > &
61
- options['properties'],
59
+ Prettify<
60
+ ContractFunctionParameters<
61
+ abi,
62
+ options['mutability'],
63
+ functionName,
64
+ args
65
+ > &
66
+ options['properties']
67
+ >,
62
68
  options['optional']
63
69
  >[]
64
70
  : // Fallback
65
71
  readonly MaybePartial<
66
- ContractFunctionParameters & options['properties'],
72
+ Prettify<ContractFunctionParameters & options['properties']>,
67
73
  options['optional']
68
74
  >[]
69
75
 
@@ -4,7 +4,7 @@ import {
4
4
  AbiConstructorNotFoundError,
5
5
  AbiConstructorParamsNotFoundError,
6
6
  } from '../../errors/abi.js'
7
- import type { GetConstructorArgs } from '../../types/contract.js'
7
+ import type { ContractConstructorArgs } from '../../types/contract.js'
8
8
  import type { Hex } from '../../types/misc.js'
9
9
 
10
10
  import { decodeAbiParameters } from './decodeAbiParameters.js'
@@ -12,28 +12,29 @@ import { decodeAbiParameters } from './decodeAbiParameters.js'
12
12
  const docsPath = '/docs/contract/decodeDeployData'
13
13
 
14
14
  export type DecodeDeployDataParameters<
15
- TAbi extends Abi | readonly unknown[] = Abi,
15
+ abi extends Abi | readonly unknown[] = Abi,
16
16
  > = {
17
- abi: TAbi
17
+ abi: abi
18
18
  bytecode: Hex
19
19
  data: Hex
20
20
  }
21
+
21
22
  export type DecodeDeployDataReturnType<
22
- TAbi extends Abi | readonly unknown[] = Abi,
23
+ abi extends Abi | readonly unknown[] = Abi,
24
+ ///
25
+ allArgs = ContractConstructorArgs<abi>,
23
26
  > = {
24
27
  bytecode: Hex
25
- } & GetConstructorArgs<TAbi>
28
+ args: allArgs
29
+ }
26
30
 
27
- export function decodeDeployData<const TAbi extends Abi | readonly unknown[]>({
28
- abi,
29
- bytecode,
30
- data,
31
- }: DecodeDeployDataParameters<TAbi>): DecodeDeployDataReturnType<TAbi> {
32
- if (data === bytecode) return { bytecode } as DecodeDeployDataReturnType<TAbi>
31
+ export function decodeDeployData<const abi extends Abi | readonly unknown[]>(
32
+ parameters: DecodeDeployDataParameters<abi>,
33
+ ): DecodeDeployDataReturnType<abi> {
34
+ const { abi, bytecode, data } = parameters as DecodeDeployDataParameters
35
+ if (data === bytecode) return { bytecode } as DecodeDeployDataReturnType<abi>
33
36
 
34
- const description = (abi as Abi).find(
35
- (x) => 'type' in x && x.type === 'constructor',
36
- )
37
+ const description = abi.find((x) => 'type' in x && x.type === 'constructor')
37
38
  if (!description) throw new AbiConstructorNotFoundError({ docsPath })
38
39
  if (!('inputs' in description))
39
40
  throw new AbiConstructorParamsNotFoundError({ docsPath })
@@ -44,5 +45,5 @@ export function decodeDeployData<const TAbi extends Abi | readonly unknown[]>({
44
45
  description.inputs,
45
46
  `0x${data.replace(bytecode, '')}`,
46
47
  )
47
- return { args, bytecode } as unknown as DecodeDeployDataReturnType<TAbi>
48
+ return { args, bytecode } as unknown as DecodeDeployDataReturnType<abi>
48
49
  }