@wagmi/core 2.0.0-beta.0 → 2.0.0-beta.10

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 (264) hide show
  1. package/dist/esm/actions/codegen/createReadContract.js +31 -0
  2. package/dist/esm/actions/codegen/createReadContract.js.map +1 -0
  3. package/dist/esm/actions/codegen/createSimulateContract.js +33 -0
  4. package/dist/esm/actions/codegen/createSimulateContract.js.map +1 -0
  5. package/dist/esm/actions/codegen/createWatchContractEvent.js +31 -0
  6. package/dist/esm/actions/codegen/createWatchContractEvent.js.map +1 -0
  7. package/dist/esm/actions/codegen/createWriteContract.js +43 -0
  8. package/dist/esm/actions/codegen/createWriteContract.js.map +1 -0
  9. package/dist/esm/actions/disconnect.js +7 -11
  10. package/dist/esm/actions/disconnect.js.map +1 -1
  11. package/dist/esm/actions/estimateMaxPriorityFeePerGas.js +12 -0
  12. package/dist/esm/actions/estimateMaxPriorityFeePerGas.js.map +1 -0
  13. package/dist/esm/actions/getBlock.js.map +1 -1
  14. package/dist/esm/actions/getBlockTransactionCount.js +11 -0
  15. package/dist/esm/actions/getBlockTransactionCount.js.map +1 -0
  16. package/dist/esm/actions/getFeeHistory.js +11 -0
  17. package/dist/esm/actions/getFeeHistory.js.map +1 -0
  18. package/dist/esm/actions/getGasPrice.js +11 -0
  19. package/dist/esm/actions/getGasPrice.js.map +1 -0
  20. package/dist/esm/actions/getTransaction.js.map +1 -1
  21. package/dist/esm/actions/getTransactionCount.js +11 -0
  22. package/dist/esm/actions/getTransactionCount.js.map +1 -0
  23. package/dist/esm/actions/simulateContract.js +3 -0
  24. package/dist/esm/actions/simulateContract.js.map +1 -1
  25. package/dist/esm/actions/verifyMessage.js +11 -0
  26. package/dist/esm/actions/verifyMessage.js.map +1 -0
  27. package/dist/esm/actions/verifyTypedData.js +12 -0
  28. package/dist/esm/actions/verifyTypedData.js.map +1 -0
  29. package/dist/esm/actions/waitForTransactionReceipt.js.map +1 -1
  30. package/dist/esm/actions/watchContractEvent.js +3 -0
  31. package/dist/esm/actions/watchContractEvent.js.map +1 -1
  32. package/dist/esm/actions/writeContract.js +3 -0
  33. package/dist/esm/actions/writeContract.js.map +1 -1
  34. package/dist/esm/connectors/createConnector.js.map +1 -1
  35. package/dist/esm/connectors/injected.js +10 -4
  36. package/dist/esm/connectors/injected.js.map +1 -1
  37. package/dist/esm/connectors/mock.js +2 -0
  38. package/dist/esm/connectors/mock.js.map +1 -1
  39. package/dist/esm/createConfig.js +13 -2
  40. package/dist/esm/createConfig.js.map +1 -1
  41. package/dist/esm/exports/actions.js +8 -0
  42. package/dist/esm/exports/actions.js.map +1 -1
  43. package/dist/esm/exports/chains.js +1 -0
  44. package/dist/esm/exports/chains.js.map +1 -1
  45. package/dist/esm/exports/codegen.js +5 -0
  46. package/dist/esm/exports/codegen.js.map +1 -0
  47. package/dist/esm/exports/index.js +26 -6
  48. package/dist/esm/exports/index.js.map +1 -1
  49. package/dist/esm/exports/internal.js +5 -4
  50. package/dist/esm/exports/internal.js.map +1 -1
  51. package/dist/esm/exports/query.js +8 -1
  52. package/dist/esm/exports/query.js.map +1 -1
  53. package/dist/esm/query/estimateMaxPriorityFeePerGas.js +19 -0
  54. package/dist/esm/query/estimateMaxPriorityFeePerGas.js.map +1 -0
  55. package/dist/esm/query/getBlock.js +1 -1
  56. package/dist/esm/query/getBlock.js.map +1 -1
  57. package/dist/esm/query/getBlockTransactionCount.js +20 -0
  58. package/dist/esm/query/getBlockTransactionCount.js.map +1 -0
  59. package/dist/esm/query/getFeeHistory.js +27 -0
  60. package/dist/esm/query/getFeeHistory.js.map +1 -0
  61. package/dist/esm/query/getGasPrice.js +20 -0
  62. package/dist/esm/query/getGasPrice.js.map +1 -0
  63. package/dist/esm/query/getTransactionCount.js +23 -0
  64. package/dist/esm/query/getTransactionCount.js.map +1 -0
  65. package/dist/esm/query/infiniteReadContracts.js +2 -0
  66. package/dist/esm/query/infiniteReadContracts.js.map +1 -1
  67. package/dist/esm/query/readContract.js +4 -0
  68. package/dist/esm/query/readContract.js.map +1 -1
  69. package/dist/esm/query/readContracts.js +1 -1
  70. package/dist/esm/query/readContracts.js.map +1 -1
  71. package/dist/esm/query/verifyMessage.js +21 -0
  72. package/dist/esm/query/verifyMessage.js.map +1 -0
  73. package/dist/esm/query/verifyTypedData.js +38 -0
  74. package/dist/esm/query/verifyTypedData.js.map +1 -0
  75. package/dist/esm/query/waitForTransactionReceipt.js +1 -1
  76. package/dist/esm/query/waitForTransactionReceipt.js.map +1 -1
  77. package/dist/esm/transports/connector.js +37 -0
  78. package/dist/esm/transports/connector.js.map +1 -0
  79. package/dist/esm/transports/fallback.js +6 -0
  80. package/dist/esm/transports/fallback.js.map +1 -0
  81. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  82. package/dist/esm/version.js +1 -1
  83. package/dist/esm/version.js.map +1 -1
  84. package/dist/types/actions/codegen/createReadContract.d.ts +16 -0
  85. package/dist/types/actions/codegen/createReadContract.d.ts.map +1 -0
  86. package/dist/types/actions/codegen/createSimulateContract.d.ts +20 -0
  87. package/dist/types/actions/codegen/createSimulateContract.d.ts.map +1 -0
  88. package/dist/types/actions/codegen/createWatchContractEvent.d.ts +14 -0
  89. package/dist/types/actions/codegen/createWatchContractEvent.d.ts.map +1 -0
  90. package/dist/types/actions/codegen/createWriteContract.d.ts +22 -0
  91. package/dist/types/actions/codegen/createWriteContract.d.ts.map +1 -0
  92. package/dist/types/actions/disconnect.d.ts +2 -2
  93. package/dist/types/actions/disconnect.d.ts.map +1 -1
  94. package/dist/types/actions/estimateGas.d.ts +2 -2
  95. package/dist/types/actions/estimateGas.d.ts.map +1 -1
  96. package/dist/types/actions/estimateMaxPriorityFeePerGas.d.ts +11 -0
  97. package/dist/types/actions/estimateMaxPriorityFeePerGas.d.ts.map +1 -0
  98. package/dist/types/actions/getBlock.d.ts +2 -2
  99. package/dist/types/actions/getBlock.d.ts.map +1 -1
  100. package/dist/types/actions/getBlockTransactionCount.d.ts +10 -0
  101. package/dist/types/actions/getBlockTransactionCount.d.ts.map +1 -0
  102. package/dist/types/actions/getFeeHistory.d.ts +10 -0
  103. package/dist/types/actions/getFeeHistory.d.ts.map +1 -0
  104. package/dist/types/actions/getGasPrice.d.ts +10 -0
  105. package/dist/types/actions/getGasPrice.d.ts.map +1 -0
  106. package/dist/types/actions/getTransaction.d.ts +2 -2
  107. package/dist/types/actions/getTransaction.d.ts.map +1 -1
  108. package/dist/types/actions/getTransactionCount.d.ts +10 -0
  109. package/dist/types/actions/getTransactionCount.d.ts.map +1 -0
  110. package/dist/types/actions/simulateContract.d.ts +3 -3
  111. package/dist/types/actions/simulateContract.d.ts.map +1 -1
  112. package/dist/types/actions/verifyMessage.d.ts +10 -0
  113. package/dist/types/actions/verifyMessage.d.ts.map +1 -0
  114. package/dist/types/actions/verifyTypedData.d.ts +11 -0
  115. package/dist/types/actions/verifyTypedData.d.ts.map +1 -0
  116. package/dist/types/actions/waitForTransactionReceipt.d.ts +2 -2
  117. package/dist/types/actions/waitForTransactionReceipt.d.ts.map +1 -1
  118. package/dist/types/actions/watchBlocks.d.ts +2 -2
  119. package/dist/types/actions/watchBlocks.d.ts.map +1 -1
  120. package/dist/types/actions/watchContractEvent.d.ts +3 -3
  121. package/dist/types/actions/watchContractEvent.d.ts.map +1 -1
  122. package/dist/types/actions/writeContract.d.ts +3 -3
  123. package/dist/types/actions/writeContract.d.ts.map +1 -1
  124. package/dist/types/connectors/createConnector.d.ts +1 -0
  125. package/dist/types/connectors/createConnector.d.ts.map +1 -1
  126. package/dist/types/connectors/injected.d.ts +7 -0
  127. package/dist/types/connectors/injected.d.ts.map +1 -1
  128. package/dist/types/connectors/mock.d.ts +3 -0
  129. package/dist/types/connectors/mock.d.ts.map +1 -1
  130. package/dist/types/createConfig.d.ts +4 -1
  131. package/dist/types/createConfig.d.ts.map +1 -1
  132. package/dist/types/exports/actions.d.ts +7 -0
  133. package/dist/types/exports/actions.d.ts.map +1 -1
  134. package/dist/types/exports/chains.d.ts.map +1 -1
  135. package/dist/types/exports/codegen.d.ts +5 -0
  136. package/dist/types/exports/codegen.d.ts.map +1 -0
  137. package/dist/types/exports/index.d.ts +12 -1
  138. package/dist/types/exports/index.d.ts.map +1 -1
  139. package/dist/types/exports/internal.d.ts +2 -2
  140. package/dist/types/exports/internal.d.ts.map +1 -1
  141. package/dist/types/exports/query.d.ts +7 -1
  142. package/dist/types/exports/query.d.ts.map +1 -1
  143. package/dist/types/query/estimateFeesPerGas.d.ts +1 -1
  144. package/dist/types/query/estimateFeesPerGas.d.ts.map +1 -1
  145. package/dist/types/query/estimateGas.d.ts +1 -1
  146. package/dist/types/query/estimateGas.d.ts.map +1 -1
  147. package/dist/types/query/estimateMaxPriorityFeePerGas.d.ts +27 -0
  148. package/dist/types/query/estimateMaxPriorityFeePerGas.d.ts.map +1 -0
  149. package/dist/types/query/getBalance.d.ts +1 -1
  150. package/dist/types/query/getBalance.d.ts.map +1 -1
  151. package/dist/types/query/getBlock.d.ts +2 -2
  152. package/dist/types/query/getBlock.d.ts.map +1 -1
  153. package/dist/types/query/getBlockNumber.d.ts +1 -4
  154. package/dist/types/query/getBlockNumber.d.ts.map +1 -1
  155. package/dist/types/query/getBlockTransactionCount.d.ts +18 -0
  156. package/dist/types/query/getBlockTransactionCount.d.ts.map +1 -0
  157. package/dist/types/query/getConnectorClient.d.ts +5 -1
  158. package/dist/types/query/getConnectorClient.d.ts.map +1 -1
  159. package/dist/types/query/getEnsAddress.d.ts +1 -1
  160. package/dist/types/query/getEnsAddress.d.ts.map +1 -1
  161. package/dist/types/query/getEnsAvatar.d.ts +1 -1
  162. package/dist/types/query/getEnsAvatar.d.ts.map +1 -1
  163. package/dist/types/query/getEnsName.d.ts +1 -1
  164. package/dist/types/query/getEnsName.d.ts.map +1 -1
  165. package/dist/types/query/getEnsResolver.d.ts +1 -1
  166. package/dist/types/query/getEnsResolver.d.ts.map +1 -1
  167. package/dist/types/query/getFeeHistory.d.ts +39 -0
  168. package/dist/types/query/getFeeHistory.d.ts.map +1 -0
  169. package/dist/types/query/getGasPrice.d.ts +27 -0
  170. package/dist/types/query/getGasPrice.d.ts.map +1 -0
  171. package/dist/types/query/getToken.d.ts +1 -1
  172. package/dist/types/query/getToken.d.ts.map +1 -1
  173. package/dist/types/query/getTransaction.d.ts +2 -2
  174. package/dist/types/query/getTransaction.d.ts.map +1 -1
  175. package/dist/types/query/getTransactionCount.d.ts +36 -0
  176. package/dist/types/query/getTransactionCount.d.ts.map +1 -0
  177. package/dist/types/query/getWalletClient.d.ts +13 -13
  178. package/dist/types/query/getWalletClient.d.ts.map +1 -1
  179. package/dist/types/query/infiniteReadContracts.d.ts +2 -3
  180. package/dist/types/query/infiniteReadContracts.d.ts.map +1 -1
  181. package/dist/types/query/readContract.d.ts +2 -2
  182. package/dist/types/query/readContract.d.ts.map +1 -1
  183. package/dist/types/query/readContracts.d.ts +5 -5
  184. package/dist/types/query/readContracts.d.ts.map +1 -1
  185. package/dist/types/query/signTypedData.d.ts +8 -8
  186. package/dist/types/query/simulateContract.d.ts +1 -1
  187. package/dist/types/query/simulateContract.d.ts.map +1 -1
  188. package/dist/types/query/types.d.ts +0 -3
  189. package/dist/types/query/types.d.ts.map +1 -1
  190. package/dist/types/query/verifyMessage.d.ts +42 -0
  191. package/dist/types/query/verifyMessage.d.ts.map +1 -0
  192. package/dist/types/query/verifyTypedData.d.ts +19 -0
  193. package/dist/types/query/verifyTypedData.d.ts.map +1 -0
  194. package/dist/types/query/waitForTransactionReceipt.d.ts +2 -2
  195. package/dist/types/query/waitForTransactionReceipt.d.ts.map +1 -1
  196. package/dist/types/transports/connector.d.ts +15 -0
  197. package/dist/types/transports/connector.d.ts.map +1 -0
  198. package/dist/types/transports/fallback.d.ts +4 -0
  199. package/dist/types/transports/fallback.d.ts.map +1 -0
  200. package/dist/types/types/properties.d.ts +3 -0
  201. package/dist/types/types/properties.d.ts.map +1 -1
  202. package/dist/types/version.d.ts +1 -1
  203. package/dist/types/version.d.ts.map +1 -1
  204. package/package.json +17 -20
  205. package/src/actions/codegen/createReadContract.ts +100 -0
  206. package/src/actions/codegen/createSimulateContract.ts +122 -0
  207. package/src/actions/codegen/createWatchContractEvent.ts +87 -0
  208. package/src/actions/codegen/createWriteContract.ts +142 -0
  209. package/src/actions/disconnect.ts +11 -17
  210. package/src/actions/estimateGas.ts +1 -1
  211. package/src/actions/estimateMaxPriorityFeePerGas.ts +41 -0
  212. package/src/actions/getBlock.ts +2 -2
  213. package/src/actions/getBlockTransactionCount.ts +36 -0
  214. package/src/actions/getFeeHistory.ts +32 -0
  215. package/src/actions/getGasPrice.ts +31 -0
  216. package/src/actions/getTransaction.ts +4 -2
  217. package/src/actions/getTransactionCount.ts +31 -0
  218. package/src/actions/simulateContract.ts +5 -5
  219. package/src/actions/verifyMessage.ts +28 -0
  220. package/src/actions/verifyTypedData.ts +41 -0
  221. package/src/actions/waitForTransactionReceipt.ts +4 -2
  222. package/src/actions/watchBlocks.ts +2 -2
  223. package/src/actions/watchContractEvent.ts +6 -5
  224. package/src/actions/writeContract.ts +6 -7
  225. package/src/connectors/createConnector.ts +1 -0
  226. package/src/connectors/injected.ts +13 -3
  227. package/src/connectors/mock.ts +2 -0
  228. package/src/createConfig.ts +23 -4
  229. package/src/exports/actions.ts +48 -0
  230. package/src/exports/chains.ts +1 -0
  231. package/src/exports/codegen.ts +7 -0
  232. package/src/exports/index.ts +80 -13
  233. package/src/exports/internal.ts +11 -13
  234. package/src/exports/query.ts +64 -1
  235. package/src/query/estimateFeesPerGas.ts +1 -1
  236. package/src/query/estimateGas.ts +1 -1
  237. package/src/query/estimateMaxPriorityFeePerGas.ts +51 -0
  238. package/src/query/getBalance.ts +1 -1
  239. package/src/query/getBlock.ts +2 -2
  240. package/src/query/getBlockNumber.ts +1 -1
  241. package/src/query/getBlockTransactionCount.ts +62 -0
  242. package/src/query/getConnectorClient.ts +1 -1
  243. package/src/query/getEnsAddress.ts +1 -1
  244. package/src/query/getEnsAvatar.ts +1 -1
  245. package/src/query/getEnsName.ts +1 -1
  246. package/src/query/getEnsResolver.ts +1 -1
  247. package/src/query/getFeeHistory.ts +69 -0
  248. package/src/query/getGasPrice.ts +54 -0
  249. package/src/query/getToken.ts +1 -1
  250. package/src/query/getTransaction.ts +1 -1
  251. package/src/query/getTransactionCount.ts +55 -0
  252. package/src/query/getWalletClient.ts +1 -1
  253. package/src/query/infiniteReadContracts.ts +6 -3
  254. package/src/query/readContract.ts +4 -2
  255. package/src/query/readContracts.ts +3 -3
  256. package/src/query/simulateContract.ts +1 -1
  257. package/src/query/types.ts +0 -2
  258. package/src/query/verifyMessage.ts +54 -0
  259. package/src/query/verifyTypedData.ts +81 -0
  260. package/src/query/waitForTransactionReceipt.ts +1 -1
  261. package/src/transports/connector.ts +87 -0
  262. package/src/transports/fallback.ts +10 -0
  263. package/src/types/properties.ts +2 -0
  264. package/src/version.ts +1 -1
@@ -0,0 +1,19 @@
1
+ import { type TypedData } from 'viem';
2
+ import { type VerifyTypedDataParameters, type VerifyTypedDataReturnType } from '../actions/verifyTypedData.js';
3
+ import { type Config } from '../createConfig.js';
4
+ import { type ScopeKeyParameter } from '../types/properties.js';
5
+ import { type ExactPartial } from '../types/utils.js';
6
+ export type VerifyTypedDataOptions<typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain', config extends Config> = ExactPartial<VerifyTypedDataParameters<typedData, primaryType, config>> & ScopeKeyParameter;
7
+ export declare function verifyTypedDataQueryOptions<config extends Config, const typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain'>(config: config, options?: VerifyTypedDataOptions<typedData, primaryType, config>): {
8
+ readonly queryFn: ({ queryKey }: {
9
+ queryKey: readonly ["verifyTypedData", VerifyTypedDataOptions<typedData, primaryType, config>];
10
+ signal: AbortSignal;
11
+ meta: Record<string, unknown> | undefined;
12
+ }) => Promise<boolean>;
13
+ readonly queryKey: readonly ["verifyTypedData", VerifyTypedDataOptions<typedData, primaryType, config>];
14
+ };
15
+ export type VerifyTypedDataQueryFnData = VerifyTypedDataReturnType;
16
+ export type VerifyTypedDataData = VerifyTypedDataQueryFnData;
17
+ export declare function verifyTypedDataQueryKey<config extends Config, const typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain'>(options: VerifyTypedDataOptions<typedData, primaryType, config>): readonly ["verifyTypedData", VerifyTypedDataOptions<typedData, primaryType, config>];
18
+ export type VerifyTypedDataQueryKey<typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | 'EIP712Domain', config extends Config> = ReturnType<typeof verifyTypedDataQueryKey<config, typedData, primaryType>>;
19
+ //# sourceMappingURL=verifyTypedData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyTypedData.d.ts","sourceRoot":"","sources":["../../../src/query/verifyTypedData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,MAAM,CAAA;AAErC,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,yBAAyB,EAE/B,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGrD,MAAM,MAAM,sBAAsB,CAChC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrD,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EACpD,MAAM,SAAS,MAAM,IACnB,YAAY,CAAC,yBAAyB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,GACzE,iBAAiB,CAAA;AAEnB,wBAAgB,2BAA2B,CACzC,MAAM,SAAS,MAAM,EACrB,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EAEpD,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAAsB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAa;;;;;;;EAoC5E;AACD,MAAM,MAAM,0BAA0B,GAAG,yBAAyB,CAAA;AAElE,MAAM,MAAM,mBAAmB,GAAG,0BAA0B,CAAA;AAE5D,wBAAgB,uBAAuB,CACrC,MAAM,SAAS,MAAM,EACrB,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EACpD,OAAO,EAAE,sBAAsB,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,wFAEhE;AAED,MAAM,MAAM,uBAAuB,CACjC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrD,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EACpD,MAAM,SAAS,MAAM,IACnB,UAAU,CAAC,OAAO,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { type WaitForTransactionReceiptParameters, type WaitForTransactionReceiptReturnType } from '../actions/waitForTransactionReceipt.js';
2
2
  import { type Config } from '../createConfig.js';
3
+ import { type ScopeKeyParameter } from '../types/properties.js';
3
4
  import { type Evaluate, type ExactPartial } from '../types/utils.js';
4
- import { type ScopeKeyParameter } from './types.js';
5
5
  export type WaitForTransactionReceiptOptions<config extends Config, chainId extends config['chains'][number]['id']> = Evaluate<ExactPartial<WaitForTransactionReceiptParameters<config, chainId>> & ScopeKeyParameter>;
6
6
  export declare function waitForTransactionReceiptQueryOptions<config extends Config, chainId extends config['chains'][number]['id']>(config: config, options?: WaitForTransactionReceiptOptions<config, chainId>): {
7
7
  readonly queryFn: ({ queryKey }: {
@@ -15,7 +15,7 @@ export declare function waitForTransactionReceiptQueryOptions<config extends Con
15
15
  }];
16
16
  signal: AbortSignal;
17
17
  meta: Record<string, unknown> | undefined;
18
- }) => Promise<(import("../types/chain.js").SelectChains<config, chainId> extends infer T_2 extends readonly import("viem").Chain[] ? { [key_1 in keyof T_2]: import("viem").ExtractChainFormatterReturnType<import("../types/chain.js").SelectChains<config, chainId>[key_1], "transactionReceipt", import("viem").TransactionReceipt>; } : never)[number] extends infer T ? { [key in keyof T]: (import("../types/chain.js").SelectChains<config, chainId> extends infer T_1 extends readonly import("viem").Chain[] ? { [key_1 in keyof T_1]: import("viem").ExtractChainFormatterReturnType<import("../types/chain.js").SelectChains<config, chainId>[key_1], "transactionReceipt", import("viem").TransactionReceipt>; } : never)[number][key]; } : never>;
18
+ }) => Promise<(import("../types/chain.js").SelectChains<config, chainId> extends infer T_2 extends readonly import("viem").Chain[] ? { [key_1 in keyof T_2]: import("viem").ExtractChainFormatterReturnType<import("../types/utils.js").IsNarrowable<import("../types/chain.js").SelectChains<config, chainId>[key_1], import("viem").Chain> extends true ? import("../types/chain.js").SelectChains<config, chainId>[key_1] : undefined, "transactionReceipt", import("viem").TransactionReceipt>; } : never)[number] extends infer T ? { [key in keyof T]: (import("../types/chain.js").SelectChains<config, chainId> extends infer T_1 extends readonly import("viem").Chain[] ? { [key_1 in keyof T_1]: import("viem").ExtractChainFormatterReturnType<import("../types/utils.js").IsNarrowable<import("../types/chain.js").SelectChains<config, chainId>[key_1], import("viem").Chain> extends true ? import("../types/chain.js").SelectChains<config, chainId>[key_1] : undefined, "transactionReceipt", import("viem").TransactionReceipt>; } : never)[number][key]; } : never>;
19
19
  readonly queryKey: readonly ["waitForTransactionReceipt", {
20
20
  confirmations?: number | undefined;
21
21
  hash?: `0x${string}` | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"waitForTransactionReceipt.d.ts","sourceRoot":"","sources":["../../../src/query/waitForTransactionReceipt.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,mCAAmC,EACxC,KAAK,mCAAmC,EAEzC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAGnD,MAAM,MAAM,gCAAgC,CAC1C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,QAAQ,CACV,YAAY,CAAC,mCAAmC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAChE,iBAAiB,CACpB,CAAA;AAED,wBAAgB,qCAAqC,CACnD,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAE9C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;;;;;;;;;;;;;EAqBhE;AAED,MAAM,MAAM,oCAAoC,CAC9C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,mCAAmC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAExD,MAAM,MAAM,6BAA6B,CACvC,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzD,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAC9C,OAAO,GAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;GAGhE;AAED,MAAM,MAAM,iCAAiC,CAC3C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,UAAU,CAAC,OAAO,iCAAiC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"waitForTransactionReceipt.d.ts","sourceRoot":"","sources":["../../../src/query/waitForTransactionReceipt.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,mCAAmC,EACxC,KAAK,mCAAmC,EAEzC,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGpE,MAAM,MAAM,gCAAgC,CAC1C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,QAAQ,CACV,YAAY,CAAC,mCAAmC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAChE,iBAAiB,CACpB,CAAA;AAED,wBAAgB,qCAAqC,CACnD,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAE9C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;;;;;;;;;;;;;;;EAqBhE;AAED,MAAM,MAAM,oCAAoC,CAC9C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,mCAAmC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAExD,MAAM,MAAM,6BAA6B,CACvC,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,oCAAoC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzD,wBAAgB,iCAAiC,CAC/C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAC9C,OAAO,GAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAM;;;;;;;GAGhE;AAED,MAAM,MAAM,iCAAiC,CAC3C,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C,UAAU,CAAC,OAAO,iCAAiC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { type TransportConfig } from 'viem';
2
+ import type { Connector, Transport } from '../createConfig.js';
3
+ export type ConnectorTransportConfig = {
4
+ /** The key of the transport. */
5
+ key?: TransportConfig['key'] | undefined;
6
+ /** The name of the transport. */
7
+ name?: TransportConfig['name'] | undefined;
8
+ /** The max number of times to retry. */
9
+ retryCount?: TransportConfig['retryCount'] | undefined;
10
+ /** The base delay (in ms) between retries. */
11
+ retryDelay?: TransportConfig['retryDelay'] | undefined;
12
+ };
13
+ export type ConnectorTransport = Transport;
14
+ export declare function unstable_connector(connector: Pick<Connector, 'type'>, config?: ConnectorTransportConfig): Transport;
15
+ //# sourceMappingURL=connector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../../src/transports/connector.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,eAAe,EAMrB,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9D,MAAM,MAAM,wBAAwB,GAAG;IACrC,gCAAgC;IAChC,GAAG,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;IACxC,iCAAiC;IACjC,IAAI,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAC1C,wCAAwC;IACxC,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;IACtD,8CAA8C;IAC9C,UAAU,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;CACvD,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,SAAS,CAAA;AAE1C,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAClC,MAAM,GAAE,wBAA6B,GACpC,SAAS,CAsDX"}
@@ -0,0 +1,4 @@
1
+ import { fallback as viem_fallback } from 'viem';
2
+ import { type Transport } from '../createConfig.js';
3
+ export declare function fallback(transports: Transport[], config?: Parameters<typeof viem_fallback>[1]): import("viem").FallbackTransport;
4
+ //# sourceMappingURL=fallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../../../src/transports/fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,MAAM,CAAA;AAEhD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,wBAAgB,QAAQ,CACtB,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,oCAG7C"}
@@ -5,6 +5,9 @@ export type ChainIdParameter<config extends Config, chainId extends config['chai
5
5
  export type ConnectorParameter = {
6
6
  connector?: Connector | undefined;
7
7
  };
8
+ export type ScopeKeyParameter = {
9
+ scopeKey?: string | undefined;
10
+ };
8
11
  export type SyncConnectedChainParameter = {
9
12
  syncConnectedChain?: boolean | undefined;
10
13
  };
@@ -1 +1 @@
1
- {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/types/properties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEhE,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,MAAM,EACrB,OAAO,SACH,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAC9B,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C;IACF,OAAO,CAAC,EACJ,CAAC,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,GACtE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAC9B,SAAS,CAAA;CACd,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACzC,CAAA"}
1
+ {"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../src/types/properties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEhE,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,MAAM,EACrB,OAAO,SACH,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAC9B,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAC5C;IACF,OAAO,CAAC,EACJ,CAAC,OAAO,SAAS,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,GACtE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAC9B,SAAS,CAAA;CACd,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAA;AAEjE,MAAM,MAAM,2BAA2B,GAAG;IACxC,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACzC,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const version = "2.0.0-beta.0";
1
+ export declare const version = "2.0.0-beta.10";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,iBAAiB,CAAA"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,kBAAkB,CAAA"}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@wagmi/core",
3
3
  "description": "VanillaJS library for Ethereum",
4
- "version": "2.0.0-beta.0",
4
+ "version": "2.0.0-beta.10",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/wagmi-dev/wagmi.git",
8
+ "url": "https://github.com/wevm/wagmi.git",
9
9
  "directory": "packages/core"
10
10
  },
11
11
  "files": [
@@ -37,6 +37,10 @@
37
37
  "types": "./dist/types/exports/chains.d.ts",
38
38
  "default": "./dist/esm/exports/chains.js"
39
39
  },
40
+ "./codegen": {
41
+ "types": "./dist/types/exports/codegen.d.ts",
42
+ "default": "./dist/esm/exports/codegen.js"
43
+ },
40
44
  "./internal": {
41
45
  "types": "./dist/types/exports/internal.d.ts",
42
46
  "default": "./dist/esm/exports/internal.js"
@@ -55,6 +59,9 @@
55
59
  "chains": [
56
60
  "./dist/types/exports/chains.d.ts"
57
61
  ],
62
+ "codegen": [
63
+ "./dist/types/exports/codegen.d.ts"
64
+ ],
58
65
  "internal": [
59
66
  "./dist/types/exports/internal.d.ts"
60
67
  ],
@@ -66,7 +73,7 @@
66
73
  "peerDependencies": {
67
74
  "@tanstack/query-core": ">=5.0.0",
68
75
  "typescript": ">=5.0.4",
69
- "viem": "2.0.0-beta.0"
76
+ "viem": "2.0.0-beta.16"
70
77
  },
71
78
  "peerDependenciesMeta": {
72
79
  "@tanstack/query-core": {
@@ -77,18 +84,15 @@
77
84
  }
78
85
  },
79
86
  "dependencies": {
80
- "eventemitter3": "^5.0.1",
81
- "mipd": "^0.0.5",
82
- "zustand": "^4.4.1"
83
- },
84
- "devDependencies": {
85
- "@tanstack/query-core": "5.0.5"
87
+ "eventemitter3": "5.0.1",
88
+ "mipd": "0.0.5",
89
+ "zustand": "4.4.1"
86
90
  },
87
91
  "contributors": [
88
- "awkweb.eth <t@wagmi.sh>",
89
- "jxom.eth <j@wagmi.sh>"
92
+ "awkweb.eth <t@wevm.dev>",
93
+ "jxom.eth <j@wevm.dev>"
90
94
  ],
91
- "funding": "https://github.com/sponsors/wagmi-dev",
95
+ "funding": "https://github.com/sponsors/wevm",
92
96
  "keywords": [
93
97
  "wagmi",
94
98
  "eth",
@@ -96,12 +100,5 @@
96
100
  "dapps",
97
101
  "wallet",
98
102
  "web3"
99
- ],
100
- "scripts": {
101
- "build": "pnpm run clean && pnpm run build:esm+types",
102
- "build:esm+types": "tsc --project tsconfig.build.json --module es2020 --outDir ./dist/esm --declaration --declarationMap --declarationDir ./dist/types",
103
- "clean": "rm -rf dist tsconfig.tsbuildinfo actions chains internal query",
104
- "test:build": "publint --strict",
105
- "typecheck": "tsc --noEmit"
106
- }
103
+ ]
107
104
  }
@@ -0,0 +1,100 @@
1
+ import {
2
+ type Abi,
3
+ type Address,
4
+ type ContractFunctionArgs,
5
+ type ContractFunctionName,
6
+ } from 'viem'
7
+
8
+ import { type Config } from '../../createConfig.js'
9
+ import { type UnionEvaluate, type UnionOmit } from '../../types/utils.js'
10
+ import { getAccount } from '../getAccount.js'
11
+ import { getChainId } from '../getChainId.js'
12
+ import {
13
+ type ReadContractParameters,
14
+ type ReadContractReturnType,
15
+ readContract,
16
+ } from '../readContract.js'
17
+
18
+ type stateMutability = 'pure' | 'view'
19
+
20
+ export type CreateReadContractParameters<
21
+ abi extends Abi | readonly unknown[],
22
+ address extends Address | Record<number, Address> | undefined = undefined,
23
+ functionName extends
24
+ | ContractFunctionName<abi, stateMutability>
25
+ | undefined = undefined,
26
+ > = {
27
+ abi: abi | Abi | readonly unknown[]
28
+ address?: address | Address | Record<number, Address> | undefined
29
+ functionName?:
30
+ | functionName
31
+ | ContractFunctionName<abi, stateMutability>
32
+ | undefined
33
+ }
34
+
35
+ export type CreateReadContractReturnType<
36
+ abi extends Abi | readonly unknown[],
37
+ address extends Address | Record<number, Address> | undefined,
38
+ functionName extends ContractFunctionName<abi, stateMutability> | undefined,
39
+ ///
40
+ omittedProperties extends 'abi' | 'address' | 'chainId' | 'functionName' =
41
+ | 'abi'
42
+ | (address extends undefined ? never : 'address')
43
+ | (address extends Record<number, Address> ? 'chainId' : never)
44
+ | (functionName extends undefined ? never : 'functionName'),
45
+ > = <
46
+ config extends Config,
47
+ name extends functionName extends ContractFunctionName<abi, stateMutability>
48
+ ? functionName
49
+ : ContractFunctionName<abi, stateMutability>,
50
+ args extends ContractFunctionArgs<abi, stateMutability, name>,
51
+ >(
52
+ config: config,
53
+ parameters: UnionEvaluate<
54
+ UnionOmit<
55
+ ReadContractParameters<abi, name, args, config>,
56
+ omittedProperties
57
+ >
58
+ > &
59
+ (address extends Record<number, Address>
60
+ ? { chainId?: keyof address | undefined }
61
+ : unknown),
62
+ ) => Promise<ReadContractReturnType<abi, name, args>>
63
+
64
+ export function createReadContract<
65
+ const abi extends Abi | readonly unknown[],
66
+ const address extends
67
+ | Address
68
+ | Record<number, Address>
69
+ | undefined = undefined,
70
+ functionName extends
71
+ | ContractFunctionName<abi, stateMutability>
72
+ | undefined = undefined,
73
+ >(
74
+ c: CreateReadContractParameters<abi, address, functionName>,
75
+ ): CreateReadContractReturnType<abi, address, functionName> {
76
+ if (c.address !== undefined && typeof c.address === 'object')
77
+ return (config, parameters) => {
78
+ const configChainId = getChainId(config)
79
+ const account = getAccount(config)
80
+ const chainId =
81
+ (parameters as { chainId?: number })?.chainId ??
82
+ account.chainId ??
83
+ configChainId
84
+ return readContract(config, {
85
+ ...(parameters as any),
86
+ ...(c.functionName ? { functionName: c.functionName } : {}),
87
+ address: c.address?.[chainId],
88
+ abi: c.abi,
89
+ })
90
+ }
91
+
92
+ return (config, parameters) => {
93
+ return readContract(config, {
94
+ ...(parameters as any),
95
+ ...(c.address ? { address: c.address } : {}),
96
+ ...(c.functionName ? { functionName: c.functionName } : {}),
97
+ abi: c.abi,
98
+ })
99
+ }
100
+ }
@@ -0,0 +1,122 @@
1
+ import {
2
+ type Abi,
3
+ type Account,
4
+ type Address,
5
+ type Chain,
6
+ type ContractFunctionArgs,
7
+ type ContractFunctionName,
8
+ type SimulateContractParameters as viem_SimulateContractParameters,
9
+ } from 'viem'
10
+
11
+ import { type Config } from '../../createConfig.js'
12
+ import { type SelectChains } from '../../types/chain.js'
13
+ import {
14
+ type ChainIdParameter,
15
+ type ConnectorParameter,
16
+ } from '../../types/properties.js'
17
+ import { type UnionEvaluate, type UnionOmit } from '../../types/utils.js'
18
+ import { getAccount } from '../getAccount.js'
19
+ import { getChainId } from '../getChainId.js'
20
+ import {
21
+ type SimulateContractReturnType,
22
+ simulateContract,
23
+ } from '../simulateContract.js'
24
+
25
+ type stateMutability = 'nonpayable' | 'payable'
26
+
27
+ export type CreateSimulateContractParameters<
28
+ abi extends Abi | readonly unknown[],
29
+ address extends Address | Record<number, Address> | undefined = undefined,
30
+ functionName extends
31
+ | ContractFunctionName<abi, stateMutability>
32
+ | undefined = undefined,
33
+ > = {
34
+ abi: abi | Abi | readonly unknown[]
35
+ address?: address | Address | Record<number, Address> | undefined
36
+ functionName?:
37
+ | functionName
38
+ | ContractFunctionName<abi, stateMutability>
39
+ | undefined
40
+ }
41
+
42
+ export type CreateSimulateContractReturnType<
43
+ abi extends Abi | readonly unknown[],
44
+ address extends Address | Record<number, Address> | undefined,
45
+ functionName extends ContractFunctionName<abi, stateMutability> | undefined,
46
+ > = <
47
+ config extends Config,
48
+ name extends functionName extends ContractFunctionName<abi, stateMutability>
49
+ ? functionName
50
+ : ContractFunctionName<abi, stateMutability>,
51
+ args extends ContractFunctionArgs<abi, stateMutability, name>,
52
+ chainId extends config['chains'][number]['id'] | undefined = undefined,
53
+ ///
54
+ chains extends readonly Chain[] = SelectChains<config, chainId>,
55
+ >(
56
+ config: config,
57
+ parameters: {
58
+ [key in keyof chains]: UnionEvaluate<
59
+ UnionOmit<
60
+ viem_SimulateContractParameters<
61
+ abi,
62
+ name,
63
+ args,
64
+ chains[key],
65
+ chains[key],
66
+ Account | Address
67
+ >,
68
+ | 'abi'
69
+ | 'chain'
70
+ | (address extends undefined ? never : 'address')
71
+ | (functionName extends undefined ? never : 'functionName')
72
+ >
73
+ > &
74
+ ChainIdParameter<config, chainId> &
75
+ ConnectorParameter & {
76
+ chainId?: address extends Record<number, Address>
77
+ ?
78
+ | keyof address
79
+ | (chainId extends keyof address ? chainId : never)
80
+ | undefined
81
+ : chainId | number | undefined
82
+ }
83
+ }[number],
84
+ ) => Promise<SimulateContractReturnType<abi, name, args, config, chainId>>
85
+
86
+ export function createSimulateContract<
87
+ const abi extends Abi | readonly unknown[],
88
+ const address extends
89
+ | Address
90
+ | Record<number, Address>
91
+ | undefined = undefined,
92
+ functionName extends
93
+ | ContractFunctionName<abi, stateMutability>
94
+ | undefined = undefined,
95
+ >(
96
+ c: CreateSimulateContractParameters<abi, address, functionName>,
97
+ ): CreateSimulateContractReturnType<abi, address, functionName> {
98
+ if (c.address !== undefined && typeof c.address === 'object')
99
+ return (config, parameters) => {
100
+ const configChainId = getChainId(config)
101
+ const account = getAccount(config)
102
+ const chainId =
103
+ (parameters as { chainId?: number })?.chainId ??
104
+ account.chainId ??
105
+ configChainId
106
+ return simulateContract(config, {
107
+ ...(parameters as any),
108
+ ...(c.functionName ? { functionName: c.functionName } : {}),
109
+ address: c.address?.[chainId],
110
+ abi: c.abi,
111
+ })
112
+ }
113
+
114
+ return (config, parameters) => {
115
+ return simulateContract(config, {
116
+ ...(parameters as any),
117
+ ...(c.address ? { address: c.address } : {}),
118
+ ...(c.functionName ? { functionName: c.functionName } : {}),
119
+ abi: c.abi,
120
+ })
121
+ }
122
+ }
@@ -0,0 +1,87 @@
1
+ import { type Abi, type Address, type ContractEventName } from 'viem'
2
+
3
+ import { type Config } from '../../createConfig.js'
4
+ import { type UnionEvaluate, type UnionOmit } from '../../types/utils.js'
5
+ import { getAccount } from '../getAccount.js'
6
+ import { getChainId } from '../getChainId.js'
7
+ import {
8
+ type WatchContractEventParameters,
9
+ type WatchContractEventReturnType,
10
+ watchContractEvent,
11
+ } from '../watchContractEvent.js'
12
+
13
+ export type CreateWatchContractEventParameters<
14
+ abi extends Abi | readonly unknown[],
15
+ address extends Address | Record<number, Address> | undefined = undefined,
16
+ eventName extends ContractEventName<abi> | undefined = undefined,
17
+ > = {
18
+ abi: abi | Abi | readonly unknown[]
19
+ address?: address | Address | Record<number, Address> | undefined
20
+ eventName?: eventName | ContractEventName<abi> | undefined
21
+ }
22
+
23
+ export type CreateWatchContractEventReturnType<
24
+ abi extends Abi | readonly unknown[],
25
+ address extends Address | Record<number, Address> | undefined,
26
+ eventName extends ContractEventName<abi> | undefined,
27
+ ///
28
+ omittedProperties extends 'abi' | 'address' | 'chainId' | 'eventName' =
29
+ | 'abi'
30
+ | (address extends undefined ? never : 'address')
31
+ | (address extends Record<number, Address> ? 'chainId' : never)
32
+ | (eventName extends undefined ? never : 'eventName'),
33
+ > = <
34
+ config extends Config,
35
+ name extends eventName extends ContractEventName<abi>
36
+ ? eventName
37
+ : ContractEventName<abi>,
38
+ strict extends boolean | undefined = undefined,
39
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
40
+ >(
41
+ config: config,
42
+ parameters: UnionEvaluate<
43
+ UnionOmit<
44
+ WatchContractEventParameters<abi, name, strict, config, chainId>,
45
+ omittedProperties
46
+ >
47
+ > &
48
+ (address extends Record<number, Address>
49
+ ? { chainId?: keyof address | undefined }
50
+ : unknown),
51
+ ) => WatchContractEventReturnType
52
+
53
+ export function createWatchContractEvent<
54
+ const abi extends Abi | readonly unknown[],
55
+ const address extends
56
+ | Address
57
+ | Record<number, Address>
58
+ | undefined = undefined,
59
+ eventName extends ContractEventName<abi> | undefined = undefined,
60
+ >(
61
+ c: CreateWatchContractEventParameters<abi, address, eventName>,
62
+ ): CreateWatchContractEventReturnType<abi, address, eventName> {
63
+ if (c.address !== undefined && typeof c.address === 'object')
64
+ return (config, parameters) => {
65
+ const configChainId = getChainId(config)
66
+ const account = getAccount(config)
67
+ const chainId =
68
+ (parameters as { chainId?: number })?.chainId ??
69
+ account.chainId ??
70
+ configChainId
71
+ return watchContractEvent(config, {
72
+ ...(parameters as any),
73
+ ...(c.eventName ? { functionName: c.eventName } : {}),
74
+ address: c.address?.[chainId],
75
+ abi: c.abi,
76
+ })
77
+ }
78
+
79
+ return (config, parameters) => {
80
+ return watchContractEvent(config, {
81
+ ...(parameters as any),
82
+ ...(c.address ? { address: c.address } : {}),
83
+ ...(c.eventName ? { functionName: c.eventName } : {}),
84
+ abi: c.abi,
85
+ })
86
+ }
87
+ }
@@ -0,0 +1,142 @@
1
+ import {
2
+ type Abi,
3
+ type Account,
4
+ type Address,
5
+ type Chain,
6
+ type ContractFunctionArgs,
7
+ type ContractFunctionName,
8
+ type WriteContractParameters as viem_WriteContractParameters,
9
+ } from 'viem'
10
+
11
+ import { type Config } from '../../createConfig.js'
12
+ import { type SelectChains } from '../../types/chain.js'
13
+ import {
14
+ type ChainIdParameter,
15
+ type ConnectorParameter,
16
+ } from '../../types/properties.js'
17
+ import {
18
+ type Evaluate,
19
+ type UnionEvaluate,
20
+ type UnionOmit,
21
+ } from '../../types/utils.js'
22
+ import { getAccount } from '../getAccount.js'
23
+ import { getChainId } from '../getChainId.js'
24
+ import {
25
+ type WriteContractReturnType,
26
+ writeContract,
27
+ } from '../writeContract.js'
28
+
29
+ type stateMutability = 'nonpayable' | 'payable'
30
+
31
+ export type CreateWriteContractParameters<
32
+ abi extends Abi | readonly unknown[],
33
+ address extends Address | Record<number, Address> | undefined = undefined,
34
+ functionName extends
35
+ | ContractFunctionName<abi, stateMutability>
36
+ | undefined = undefined,
37
+ > = {
38
+ abi: abi | Abi | readonly unknown[]
39
+ address?: address | Address | Record<number, Address> | undefined
40
+ functionName?:
41
+ | functionName
42
+ | ContractFunctionName<abi, stateMutability>
43
+ | undefined
44
+ }
45
+
46
+ export type CreateWriteContractReturnType<
47
+ abi extends Abi | readonly unknown[],
48
+ address extends Address | Record<number, Address> | undefined,
49
+ functionName extends ContractFunctionName<abi, stateMutability> | undefined,
50
+ > = <
51
+ config extends Config,
52
+ name extends functionName extends ContractFunctionName<abi, stateMutability>
53
+ ? functionName
54
+ : ContractFunctionName<abi, stateMutability>,
55
+ args extends ContractFunctionArgs<abi, stateMutability, name>,
56
+ chainId extends config['chains'][number]['id'],
57
+ ///
58
+ allFunctionNames = ContractFunctionName<abi, 'nonpayable' | 'payable'>,
59
+ chains extends readonly Chain[] = SelectChains<config, chainId>,
60
+ omittedProperties extends 'abi' | 'address' | 'functionName' =
61
+ | 'abi'
62
+ | (address extends undefined ? never : 'address')
63
+ | (functionName extends undefined ? never : 'functionName'),
64
+ >(
65
+ config: config,
66
+ parameters: UnionEvaluate<
67
+ {
68
+ [key in keyof chains]: UnionOmit<
69
+ viem_WriteContractParameters<
70
+ abi,
71
+ name,
72
+ args,
73
+ chains[key],
74
+ Account,
75
+ chains[key],
76
+ allFunctionNames
77
+ >,
78
+ omittedProperties | 'chain'
79
+ >
80
+ }[number] &
81
+ (address extends Record<number, Address>
82
+ ? {
83
+ chainId?:
84
+ | keyof address
85
+ | (chainId extends keyof address ? chainId : never)
86
+ | undefined
87
+ }
88
+ : Evaluate<ChainIdParameter<config, chainId>>) &
89
+ ConnectorParameter & { __mode?: 'prepared' }
90
+ >,
91
+ ) => Promise<WriteContractReturnType>
92
+
93
+ export function createWriteContract<
94
+ const abi extends Abi | readonly unknown[],
95
+ const address extends
96
+ | Address
97
+ | Record<number, Address>
98
+ | undefined = undefined,
99
+ functionName extends
100
+ | ContractFunctionName<abi, stateMutability>
101
+ | undefined = undefined,
102
+ >(
103
+ c: CreateWriteContractParameters<abi, address, functionName>,
104
+ ): CreateWriteContractReturnType<abi, address, functionName> {
105
+ if (c.address !== undefined && typeof c.address === 'object')
106
+ return (config, parameters) => {
107
+ const configChainId = getChainId(config)
108
+ const account = getAccount(config)
109
+
110
+ let chainId
111
+ if (parameters.chainId) chainId = parameters.chainId
112
+ else if (
113
+ (parameters as unknown as { account: Address | Account | undefined })
114
+ .account &&
115
+ (parameters as unknown as { account: Address | Account | undefined })
116
+ .account === account.address
117
+ )
118
+ chainId = account.chainId
119
+ else if (
120
+ (parameters as unknown as { account: Address | Account | undefined })
121
+ .account === undefined
122
+ )
123
+ chainId = account.chainId
124
+ else chainId = configChainId
125
+
126
+ return writeContract(config, {
127
+ ...(parameters as any),
128
+ ...(c.functionName ? { functionName: c.functionName } : {}),
129
+ address: chainId ? c.address?.[chainId] : undefined,
130
+ abi: c.abi,
131
+ })
132
+ }
133
+
134
+ return (config, parameters) => {
135
+ return writeContract(config, {
136
+ ...(parameters as any),
137
+ ...(c.address ? { address: c.address } : {}),
138
+ ...(c.functionName ? { functionName: c.functionName } : {}),
139
+ abi: c.abi,
140
+ })
141
+ }
142
+ }