wagmi 2.0.0 → 2.0.2

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 (327) hide show
  1. package/README.md +13 -0
  2. package/actions/package.json +5 -0
  3. package/chains/package.json +5 -0
  4. package/codegen/package.json +5 -0
  5. package/connectors/package.json +5 -0
  6. package/dist/esm/context.js +6 -11
  7. package/dist/esm/context.js.map +1 -1
  8. package/dist/esm/errors/base.js +1 -1
  9. package/dist/esm/errors/base.js.map +1 -1
  10. package/dist/esm/errors/context.js +3 -1
  11. package/dist/esm/errors/context.js.map +1 -1
  12. package/dist/esm/exports/actions.js +2 -1
  13. package/dist/esm/exports/actions.js.map +1 -1
  14. package/dist/esm/exports/chains.js +1 -0
  15. package/dist/esm/exports/chains.js.map +1 -1
  16. package/dist/esm/exports/codegen.js +12 -0
  17. package/dist/esm/exports/codegen.js.map +1 -0
  18. package/dist/esm/exports/connectors.js +1 -0
  19. package/dist/esm/exports/connectors.js.map +1 -1
  20. package/dist/esm/exports/index.js +43 -15
  21. package/dist/esm/exports/index.js.map +1 -1
  22. package/dist/esm/exports/query.js +1 -0
  23. package/dist/esm/exports/query.js.map +1 -1
  24. package/dist/esm/hooks/codegen/createUseReadContract.js +33 -0
  25. package/dist/esm/hooks/codegen/createUseReadContract.js.map +1 -0
  26. package/dist/esm/hooks/codegen/createUseSimulateContract.js +33 -0
  27. package/dist/esm/hooks/codegen/createUseSimulateContract.js.map +1 -0
  28. package/dist/esm/hooks/codegen/createUseWatchContractEvent.js +32 -0
  29. package/dist/esm/hooks/codegen/createUseWatchContractEvent.js.map +1 -0
  30. package/dist/esm/hooks/codegen/createUseWriteContract.js +95 -0
  31. package/dist/esm/hooks/codegen/createUseWriteContract.js.map +1 -0
  32. package/dist/esm/hooks/useAccount.js +1 -1
  33. package/dist/esm/hooks/useAccount.js.map +1 -1
  34. package/dist/esm/hooks/useAccountEffect.js +10 -3
  35. package/dist/esm/hooks/useAccountEffect.js.map +1 -1
  36. package/dist/esm/hooks/useBalance.js +4 -4
  37. package/dist/esm/hooks/useBalance.js.map +1 -1
  38. package/dist/esm/hooks/useBlock.js +36 -0
  39. package/dist/esm/hooks/useBlock.js.map +1 -0
  40. package/dist/esm/hooks/useBlockNumber.js +6 -8
  41. package/dist/esm/hooks/useBlockNumber.js.map +1 -1
  42. package/dist/esm/hooks/useBlockTransactionCount.js +20 -0
  43. package/dist/esm/hooks/useBlockTransactionCount.js.map +1 -0
  44. package/dist/esm/hooks/useChainId.js +2 -2
  45. package/dist/esm/hooks/useChainId.js.map +1 -1
  46. package/dist/esm/hooks/useClient.js +1 -1
  47. package/dist/esm/hooks/useClient.js.map +1 -1
  48. package/dist/esm/hooks/useConfig.js +1 -1
  49. package/dist/esm/hooks/useConfig.js.map +1 -1
  50. package/dist/esm/hooks/useConnect.js +12 -2
  51. package/dist/esm/hooks/useConnect.js.map +1 -1
  52. package/dist/esm/hooks/useConnections.js +2 -2
  53. package/dist/esm/hooks/useConnections.js.map +1 -1
  54. package/dist/esm/hooks/useConnectorClient.js +2 -3
  55. package/dist/esm/hooks/useConnectorClient.js.map +1 -1
  56. package/dist/esm/hooks/useConnectors.js +10 -0
  57. package/dist/esm/hooks/useConnectors.js.map +1 -0
  58. package/dist/esm/hooks/useDisconnect.js +1 -1
  59. package/dist/esm/hooks/useDisconnect.js.map +1 -1
  60. package/dist/esm/hooks/useEnsAddress.js +4 -4
  61. package/dist/esm/hooks/useEnsAddress.js.map +1 -1
  62. package/dist/esm/hooks/useEnsAvatar.js +4 -4
  63. package/dist/esm/hooks/useEnsAvatar.js.map +1 -1
  64. package/dist/esm/hooks/useEnsName.js +4 -4
  65. package/dist/esm/hooks/useEnsName.js.map +1 -1
  66. package/dist/esm/hooks/useEnsResolver.js +4 -4
  67. package/dist/esm/hooks/useEnsResolver.js.map +1 -1
  68. package/dist/esm/hooks/useEstimateFeesPerGas.js +4 -4
  69. package/dist/esm/hooks/useEstimateFeesPerGas.js.map +1 -1
  70. package/dist/esm/hooks/useEstimateGas.js +3 -3
  71. package/dist/esm/hooks/useEstimateGas.js.map +1 -1
  72. package/dist/esm/hooks/useEstimateMaxPriorityFeePerGas.js +19 -0
  73. package/dist/esm/hooks/useEstimateMaxPriorityFeePerGas.js.map +1 -0
  74. package/dist/esm/hooks/useFeeHistory.js +20 -0
  75. package/dist/esm/hooks/useFeeHistory.js.map +1 -0
  76. package/dist/esm/hooks/useGasPrice.js +20 -0
  77. package/dist/esm/hooks/useGasPrice.js.map +1 -0
  78. package/dist/esm/hooks/useInfiniteReadContracts.js +24 -0
  79. package/dist/esm/hooks/useInfiniteReadContracts.js.map +1 -0
  80. package/dist/esm/hooks/usePublicClient.js +1 -1
  81. package/dist/esm/hooks/usePublicClient.js.map +1 -1
  82. package/dist/esm/hooks/{useContractRead.js → useReadContract.js} +5 -8
  83. package/dist/esm/hooks/useReadContract.js.map +1 -0
  84. package/dist/esm/hooks/{useContractReads.js → useReadContracts.js} +7 -9
  85. package/dist/esm/hooks/useReadContracts.js.map +1 -0
  86. package/dist/esm/hooks/useReconnect.js +1 -1
  87. package/dist/esm/hooks/useReconnect.js.map +1 -1
  88. package/dist/esm/hooks/useSendTransaction.js +1 -1
  89. package/dist/esm/hooks/useSendTransaction.js.map +1 -1
  90. package/dist/esm/hooks/useSignMessage.js +1 -1
  91. package/dist/esm/hooks/useSignMessage.js.map +1 -1
  92. package/dist/esm/hooks/useSignTypedData.js +1 -1
  93. package/dist/esm/hooks/useSignTypedData.js.map +1 -1
  94. package/dist/esm/hooks/{useContractSimulate.js → useSimulateContract.js} +6 -6
  95. package/dist/esm/hooks/useSimulateContract.js.map +1 -0
  96. package/dist/esm/hooks/useSwitchAccount.js +1 -1
  97. package/dist/esm/hooks/useSwitchAccount.js.map +1 -1
  98. package/dist/esm/hooks/useSwitchChain.js +1 -1
  99. package/dist/esm/hooks/useSwitchChain.js.map +1 -1
  100. package/dist/esm/hooks/useToken.js +8 -4
  101. package/dist/esm/hooks/useToken.js.map +1 -1
  102. package/dist/esm/hooks/useTransaction.js +8 -4
  103. package/dist/esm/hooks/useTransaction.js.map +1 -1
  104. package/dist/esm/hooks/useTransactionCount.js +19 -0
  105. package/dist/esm/hooks/useTransactionCount.js.map +1 -0
  106. package/dist/esm/hooks/useVerifyMessage.js +19 -0
  107. package/dist/esm/hooks/useVerifyMessage.js.map +1 -0
  108. package/dist/esm/hooks/useVerifyTypedData.js +25 -0
  109. package/dist/esm/hooks/useVerifyTypedData.js.map +1 -0
  110. package/dist/esm/hooks/useWaitForTransactionReceipt.js +9 -5
  111. package/dist/esm/hooks/useWaitForTransactionReceipt.js.map +1 -1
  112. package/dist/esm/hooks/useWalletClient.js +2 -3
  113. package/dist/esm/hooks/useWalletClient.js.map +1 -1
  114. package/dist/esm/hooks/useWatchBlockNumber.js +1 -1
  115. package/dist/esm/hooks/useWatchBlockNumber.js.map +1 -1
  116. package/dist/esm/hooks/useWatchBlocks.js +25 -0
  117. package/dist/esm/hooks/useWatchBlocks.js.map +1 -0
  118. package/dist/esm/hooks/useWatchContractEvent.js +1 -1
  119. package/dist/esm/hooks/useWatchContractEvent.js.map +1 -1
  120. package/dist/esm/hooks/useWatchPendingTransactions.js +1 -1
  121. package/dist/esm/hooks/useWatchPendingTransactions.js.map +1 -1
  122. package/dist/esm/hooks/{useContractWrite.js → useWriteContract.js} +5 -5
  123. package/dist/esm/hooks/useWriteContract.js.map +1 -0
  124. package/dist/esm/hydrate.js +28 -0
  125. package/dist/esm/hydrate.js.map +1 -0
  126. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  127. package/dist/esm/types/properties.js +3 -1
  128. package/dist/esm/types/properties.js.map +1 -1
  129. package/dist/esm/utils/query.js +10 -1
  130. package/dist/esm/utils/query.js.map +1 -1
  131. package/dist/esm/version.js +1 -1
  132. package/dist/types/context.d.ts +6 -7
  133. package/dist/types/context.d.ts.map +1 -1
  134. package/dist/types/errors/base.d.ts +3 -0
  135. package/dist/types/errors/base.d.ts.map +1 -1
  136. package/dist/types/errors/context.d.ts +3 -0
  137. package/dist/types/errors/context.d.ts.map +1 -1
  138. package/dist/types/exports/actions.d.ts.map +1 -1
  139. package/dist/types/exports/chains.d.ts.map +1 -1
  140. package/dist/types/exports/codegen.d.ts +6 -0
  141. package/dist/types/exports/codegen.d.ts.map +1 -0
  142. package/dist/types/exports/connectors.d.ts.map +1 -1
  143. package/dist/types/exports/index.d.ts +33 -10
  144. package/dist/types/exports/index.d.ts.map +1 -1
  145. package/dist/types/exports/query.d.ts.map +1 -1
  146. package/dist/types/hooks/codegen/createUseReadContract.d.ts +18 -0
  147. package/dist/types/hooks/codegen/createUseReadContract.d.ts.map +1 -0
  148. package/dist/types/hooks/codegen/createUseSimulateContract.d.ts +21 -0
  149. package/dist/types/hooks/codegen/createUseSimulateContract.d.ts.map +1 -0
  150. package/dist/types/hooks/codegen/createUseWatchContractEvent.d.ts +14 -0
  151. package/dist/types/hooks/codegen/createUseWatchContractEvent.d.ts.map +1 -0
  152. package/dist/types/hooks/codegen/createUseWriteContract.d.ts +27 -0
  153. package/dist/types/hooks/codegen/createUseWriteContract.d.ts.map +1 -0
  154. package/dist/types/hooks/useAccount.d.ts +1 -1
  155. package/dist/types/hooks/useAccount.d.ts.map +1 -1
  156. package/dist/types/hooks/useAccountEffect.d.ts +2 -2
  157. package/dist/types/hooks/useAccountEffect.d.ts.map +1 -1
  158. package/dist/types/hooks/useBalance.d.ts +6 -8
  159. package/dist/types/hooks/useBalance.d.ts.map +1 -1
  160. package/dist/types/hooks/useBlock.d.ts +14 -0
  161. package/dist/types/hooks/useBlock.d.ts.map +1 -0
  162. package/dist/types/hooks/useBlockNumber.d.ts +8 -9
  163. package/dist/types/hooks/useBlockNumber.d.ts.map +1 -1
  164. package/dist/types/hooks/useBlockTransactionCount.d.ts +10 -0
  165. package/dist/types/hooks/useBlockTransactionCount.d.ts.map +1 -0
  166. package/dist/types/hooks/useChainId.d.ts +1 -1
  167. package/dist/types/hooks/useChainId.d.ts.map +1 -1
  168. package/dist/types/hooks/useClient.d.ts +1 -1
  169. package/dist/types/hooks/useClient.d.ts.map +1 -1
  170. package/dist/types/hooks/useConfig.d.ts +1 -1
  171. package/dist/types/hooks/useConfig.d.ts.map +1 -1
  172. package/dist/types/hooks/useConnect.d.ts +5 -5
  173. package/dist/types/hooks/useConnect.d.ts.map +1 -1
  174. package/dist/types/hooks/useConnections.d.ts +1 -1
  175. package/dist/types/hooks/useConnections.d.ts.map +1 -1
  176. package/dist/types/hooks/useConnectorClient.d.ts +4 -4
  177. package/dist/types/hooks/useConnectorClient.d.ts.map +1 -1
  178. package/dist/types/hooks/useConnectors.d.ts +7 -0
  179. package/dist/types/hooks/useConnectors.d.ts.map +1 -0
  180. package/dist/types/hooks/useDisconnect.d.ts +4 -4
  181. package/dist/types/hooks/useDisconnect.d.ts.map +1 -1
  182. package/dist/types/hooks/useEnsAddress.d.ts +6 -8
  183. package/dist/types/hooks/useEnsAddress.d.ts.map +1 -1
  184. package/dist/types/hooks/useEnsAvatar.d.ts +6 -8
  185. package/dist/types/hooks/useEnsAvatar.d.ts.map +1 -1
  186. package/dist/types/hooks/useEnsName.d.ts +6 -8
  187. package/dist/types/hooks/useEnsName.d.ts.map +1 -1
  188. package/dist/types/hooks/useEnsResolver.d.ts +6 -8
  189. package/dist/types/hooks/useEnsResolver.d.ts.map +1 -1
  190. package/dist/types/hooks/useEstimateFeesPerGas.d.ts +6 -8
  191. package/dist/types/hooks/useEstimateFeesPerGas.d.ts.map +1 -1
  192. package/dist/types/hooks/useEstimateGas.d.ts +6 -8
  193. package/dist/types/hooks/useEstimateGas.d.ts.map +1 -1
  194. package/dist/types/hooks/useEstimateMaxPriorityFeePerGas.d.ts +10 -0
  195. package/dist/types/hooks/useEstimateMaxPriorityFeePerGas.d.ts.map +1 -0
  196. package/dist/types/hooks/useFeeHistory.d.ts +10 -0
  197. package/dist/types/hooks/useFeeHistory.d.ts.map +1 -0
  198. package/dist/types/hooks/useGasPrice.d.ts +10 -0
  199. package/dist/types/hooks/useGasPrice.d.ts.map +1 -0
  200. package/dist/types/hooks/useInfiniteReadContracts.d.ts +11 -0
  201. package/dist/types/hooks/useInfiniteReadContracts.d.ts.map +1 -0
  202. package/dist/types/hooks/usePublicClient.d.ts +1 -1
  203. package/dist/types/hooks/usePublicClient.d.ts.map +1 -1
  204. package/dist/types/hooks/{useContractRead.d.ts → useReadContract.d.ts} +8 -10
  205. package/dist/types/hooks/useReadContract.d.ts.map +1 -0
  206. package/dist/types/hooks/useReadContracts.d.ts +11 -0
  207. package/dist/types/hooks/useReadContracts.d.ts.map +1 -0
  208. package/dist/types/hooks/useReconnect.d.ts +4 -4
  209. package/dist/types/hooks/useReconnect.d.ts.map +1 -1
  210. package/dist/types/hooks/useSendTransaction.d.ts +4 -4
  211. package/dist/types/hooks/useSendTransaction.d.ts.map +1 -1
  212. package/dist/types/hooks/useSignMessage.d.ts +4 -4
  213. package/dist/types/hooks/useSignMessage.d.ts.map +1 -1
  214. package/dist/types/hooks/useSignTypedData.d.ts +4 -4
  215. package/dist/types/hooks/useSignTypedData.d.ts.map +1 -1
  216. package/dist/types/hooks/{useContractSimulate.d.ts → useSimulateContract.d.ts} +8 -10
  217. package/dist/types/hooks/useSimulateContract.d.ts.map +1 -0
  218. package/dist/types/hooks/useSwitchAccount.d.ts +4 -4
  219. package/dist/types/hooks/useSwitchAccount.d.ts.map +1 -1
  220. package/dist/types/hooks/useSwitchChain.d.ts +4 -4
  221. package/dist/types/hooks/useSwitchChain.d.ts.map +1 -1
  222. package/dist/types/hooks/useToken.d.ts +10 -8
  223. package/dist/types/hooks/useToken.d.ts.map +1 -1
  224. package/dist/types/hooks/useTransaction.d.ts +6 -8
  225. package/dist/types/hooks/useTransaction.d.ts.map +1 -1
  226. package/dist/types/hooks/useTransactionCount.d.ts +11 -0
  227. package/dist/types/hooks/useTransactionCount.d.ts.map +1 -0
  228. package/dist/types/hooks/useVerifyMessage.d.ts +11 -0
  229. package/dist/types/hooks/useVerifyMessage.d.ts.map +1 -0
  230. package/dist/types/hooks/useVerifyTypedData.d.ts +11 -0
  231. package/dist/types/hooks/useVerifyTypedData.d.ts.map +1 -0
  232. package/dist/types/hooks/useWaitForTransactionReceipt.d.ts +6 -8
  233. package/dist/types/hooks/useWaitForTransactionReceipt.d.ts.map +1 -1
  234. package/dist/types/hooks/useWalletClient.d.ts +4 -4
  235. package/dist/types/hooks/useWalletClient.d.ts.map +1 -1
  236. package/dist/types/hooks/useWatchBlockNumber.d.ts +1 -1
  237. package/dist/types/hooks/useWatchBlockNumber.d.ts.map +1 -1
  238. package/dist/types/hooks/useWatchBlocks.d.ts +9 -0
  239. package/dist/types/hooks/useWatchBlocks.d.ts.map +1 -0
  240. package/dist/types/hooks/useWatchContractEvent.d.ts +1 -1
  241. package/dist/types/hooks/useWatchContractEvent.d.ts.map +1 -1
  242. package/dist/types/hooks/useWatchPendingTransactions.d.ts +1 -1
  243. package/dist/types/hooks/useWatchPendingTransactions.d.ts.map +1 -1
  244. package/dist/types/hooks/useWriteContract.d.ts +15 -0
  245. package/dist/types/hooks/useWriteContract.d.ts.map +1 -0
  246. package/dist/types/hydrate.d.ts +9 -0
  247. package/dist/types/hydrate.d.ts.map +1 -0
  248. package/dist/types/types/properties.d.ts +10 -1
  249. package/dist/types/types/properties.d.ts.map +1 -1
  250. package/dist/types/utils/query.d.ts +12 -3
  251. package/dist/types/utils/query.d.ts.map +1 -1
  252. package/dist/types/version.d.ts +1 -1
  253. package/package.json +26 -34
  254. package/query/package.json +5 -0
  255. package/src/context.ts +15 -14
  256. package/src/errors/base.ts +2 -1
  257. package/src/errors/context.ts +6 -1
  258. package/src/exports/actions.ts +2 -1
  259. package/src/exports/chains.ts +1 -0
  260. package/src/exports/codegen.ts +17 -0
  261. package/src/exports/connectors.ts +1 -0
  262. package/src/exports/index.ts +135 -37
  263. package/src/exports/query.ts +1 -0
  264. package/src/hooks/codegen/createUseReadContract.ts +128 -0
  265. package/src/hooks/codegen/createUseSimulateContract.ts +121 -0
  266. package/src/hooks/codegen/createUseWatchContractEvent.ts +98 -0
  267. package/src/hooks/codegen/createUseWriteContract.ts +290 -0
  268. package/src/hooks/useAccount.ts +1 -1
  269. package/src/hooks/useAccountEffect.ts +11 -4
  270. package/src/hooks/useBalance.ts +14 -21
  271. package/src/hooks/useBlock.ts +129 -0
  272. package/src/hooks/useBlockNumber.ts +30 -32
  273. package/src/hooks/useBlockTransactionCount.ts +65 -0
  274. package/src/hooks/useChainId.ts +2 -1
  275. package/src/hooks/useClient.ts +1 -1
  276. package/src/hooks/useConfig.ts +1 -1
  277. package/src/hooks/useConnect.ts +21 -6
  278. package/src/hooks/useConnections.ts +2 -1
  279. package/src/hooks/useConnectorClient.ts +9 -7
  280. package/src/hooks/useConnectors.ts +28 -0
  281. package/src/hooks/useDisconnect.ts +4 -4
  282. package/src/hooks/useEnsAddress.ts +18 -21
  283. package/src/hooks/useEnsAvatar.ts +18 -19
  284. package/src/hooks/useEnsName.ts +14 -21
  285. package/src/hooks/useEnsResolver.ts +18 -21
  286. package/src/hooks/useEstimateFeesPerGas.ts +14 -21
  287. package/src/hooks/useEstimateGas.ts +19 -22
  288. package/src/hooks/useEstimateMaxPriorityFeePerGas.ts +61 -0
  289. package/src/hooks/useFeeHistory.ts +62 -0
  290. package/src/hooks/useGasPrice.ts +60 -0
  291. package/src/hooks/useInfiniteReadContracts.ts +89 -0
  292. package/src/hooks/usePublicClient.ts +1 -1
  293. package/src/hooks/{useContractRead.ts → useReadContract.ts} +22 -25
  294. package/src/hooks/{useContractReads.ts → useReadContracts.ts} +27 -28
  295. package/src/hooks/useReconnect.ts +4 -4
  296. package/src/hooks/useSendTransaction.ts +4 -4
  297. package/src/hooks/useSignMessage.ts +4 -4
  298. package/src/hooks/useSignTypedData.ts +4 -4
  299. package/src/hooks/{useContractSimulate.ts → useSimulateContract.ts} +26 -27
  300. package/src/hooks/useSwitchAccount.ts +4 -4
  301. package/src/hooks/useSwitchChain.ts +8 -4
  302. package/src/hooks/useToken.ts +18 -21
  303. package/src/hooks/useTransaction.ts +22 -21
  304. package/src/hooks/useTransactionCount.ts +59 -0
  305. package/src/hooks/useVerifyMessage.ts +59 -0
  306. package/src/hooks/useVerifyTypedData.ts +81 -0
  307. package/src/hooks/useWaitForTransactionReceipt.ts +19 -22
  308. package/src/hooks/useWalletClient.ts +25 -21
  309. package/src/hooks/useWatchBlockNumber.ts +1 -1
  310. package/src/hooks/useWatchBlocks.ts +61 -0
  311. package/src/hooks/useWatchContractEvent.ts +1 -1
  312. package/src/hooks/useWatchPendingTransactions.ts +1 -1
  313. package/src/hooks/{useContractWrite.ts → useWriteContract.ts} +18 -14
  314. package/src/hydrate.ts +36 -0
  315. package/src/types/properties.ts +43 -1
  316. package/src/utils/query.ts +66 -15
  317. package/src/version.ts +1 -1
  318. package/dist/esm/hooks/useContractRead.js.map +0 -1
  319. package/dist/esm/hooks/useContractReads.js.map +0 -1
  320. package/dist/esm/hooks/useContractSimulate.js.map +0 -1
  321. package/dist/esm/hooks/useContractWrite.js.map +0 -1
  322. package/dist/types/hooks/useContractRead.d.ts.map +0 -1
  323. package/dist/types/hooks/useContractReads.d.ts +0 -13
  324. package/dist/types/hooks/useContractReads.d.ts.map +0 -1
  325. package/dist/types/hooks/useContractSimulate.d.ts.map +0 -1
  326. package/dist/types/hooks/useContractWrite.d.ts +0 -15
  327. package/dist/types/hooks/useContractWrite.d.ts.map +0 -1
@@ -1,6 +1,10 @@
1
1
  'use client'
2
2
 
3
- import type { Config, GetTransactionError, ResolvedRegister } from '@wagmi/core'
3
+ import type {
4
+ Config,
5
+ GetTransactionErrorType,
6
+ ResolvedRegister,
7
+ } from '@wagmi/core'
4
8
  import { type Evaluate } from '@wagmi/core/internal'
5
9
  import {
6
10
  type GetTransactionData,
@@ -10,12 +14,8 @@ import {
10
14
  getTransactionQueryOptions,
11
15
  } from '@wagmi/core/query'
12
16
 
13
- import type { ConfigParameter } from '../types/properties.js'
14
- import {
15
- type UseQueryParameters,
16
- type UseQueryReturnType,
17
- useQuery,
18
- } from '../utils/query.js'
17
+ import type { ConfigParameter, QueryParameter } from '../types/properties.js'
18
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
19
19
  import { useChainId } from './useChainId.js'
20
20
  import { useConfig } from './useConfig.js'
21
21
 
@@ -25,25 +25,22 @@ export type UseTransactionParameters<
25
25
  selectData = GetTransactionData<config, chainId>,
26
26
  > = Evaluate<
27
27
  GetTransactionOptions<config, chainId> &
28
- ConfigParameter<config> & {
29
- query?:
30
- | UseQueryParameters<
31
- GetTransactionQueryFnData<config, chainId>,
32
- GetTransactionError,
33
- selectData,
34
- GetTransactionQueryKey<config, chainId>
35
- >
36
- | undefined
37
- }
28
+ ConfigParameter<config> &
29
+ QueryParameter<
30
+ GetTransactionQueryFnData<config, chainId>,
31
+ GetTransactionErrorType,
32
+ selectData,
33
+ GetTransactionQueryKey<config, chainId>
34
+ >
38
35
  >
39
36
 
40
37
  export type UseTransactionReturnType<
41
38
  config extends Config = Config,
42
39
  chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
43
40
  selectData = GetTransactionData<config, chainId>,
44
- > = UseQueryReturnType<selectData, GetTransactionError>
41
+ > = UseQueryReturnType<selectData, GetTransactionErrorType>
45
42
 
46
- /** https://alpha.wagmi.sh/react/api/hooks/useTransaction */
43
+ /** https://wagmi.sh/react/api/hooks/useTransaction */
47
44
  export function useTransaction<
48
45
  config extends Config = ResolvedRegister['config'],
49
46
  chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
@@ -56,7 +53,7 @@ export function useTransaction<
56
53
  const config = useConfig(parameters)
57
54
  const chainId = useChainId()
58
55
 
59
- const queryOptions = getTransactionQueryOptions(config, {
56
+ const options = getTransactionQueryOptions(config, {
60
57
  ...parameters,
61
58
  chainId: parameters.chainId ?? chainId,
62
59
  })
@@ -64,5 +61,9 @@ export function useTransaction<
64
61
  !(blockHash && blockNumber && blockTag && hash) && (query.enabled ?? true),
65
62
  )
66
63
 
67
- return useQuery({ ...queryOptions, ...query, enabled })
64
+ return useQuery({
65
+ ...(query as any),
66
+ ...options,
67
+ enabled,
68
+ }) as UseTransactionReturnType<config, chainId, selectData>
68
69
  }
@@ -0,0 +1,59 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type Config,
5
+ type GetTransactionCountErrorType,
6
+ type ResolvedRegister,
7
+ } from '@wagmi/core'
8
+ import type { Evaluate } from '@wagmi/core/internal'
9
+ import type { GetTransactionCountQueryFnData } from '@wagmi/core/query'
10
+ import {
11
+ type GetTransactionCountData,
12
+ type GetTransactionCountOptions,
13
+ type GetTransactionCountQueryKey,
14
+ getTransactionCountQueryOptions,
15
+ } from '@wagmi/core/query'
16
+
17
+ import type { ConfigParameter, QueryParameter } from '../types/properties.js'
18
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
19
+ import { useChainId } from './useChainId.js'
20
+ import { useConfig } from './useConfig.js'
21
+
22
+ export type UseTransactionCountParameters<
23
+ config extends Config = Config,
24
+ selectData = GetTransactionCountData,
25
+ > = Evaluate<
26
+ GetTransactionCountOptions<config> &
27
+ ConfigParameter<config> &
28
+ QueryParameter<
29
+ GetTransactionCountQueryFnData,
30
+ GetTransactionCountErrorType,
31
+ selectData,
32
+ GetTransactionCountQueryKey<config>
33
+ >
34
+ >
35
+
36
+ export type UseTransactionCountReturnType<
37
+ selectData = GetTransactionCountData,
38
+ > = UseQueryReturnType<selectData, GetTransactionCountErrorType>
39
+
40
+ /** https://wagmi.sh/react/api/hooks/useTransactionCount */
41
+ export function useTransactionCount<
42
+ config extends Config = ResolvedRegister['config'],
43
+ selectData = GetTransactionCountData,
44
+ >(
45
+ parameters: UseTransactionCountParameters<config, selectData> = {},
46
+ ): UseTransactionCountReturnType<selectData> {
47
+ const { address, query = {} } = parameters
48
+
49
+ const config = useConfig(parameters)
50
+ const chainId = useChainId()
51
+
52
+ const options = getTransactionCountQueryOptions(config, {
53
+ ...parameters,
54
+ chainId: parameters.chainId ?? chainId,
55
+ })
56
+ const enabled = Boolean(address && (query.enabled ?? true))
57
+
58
+ return useQuery({ ...query, ...options, enabled })
59
+ }
@@ -0,0 +1,59 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type Config,
5
+ type ResolvedRegister,
6
+ type VerifyMessageErrorType,
7
+ } from '@wagmi/core'
8
+ import type { Evaluate } from '@wagmi/core/internal'
9
+ import {
10
+ type VerifyMessageData,
11
+ type VerifyMessageOptions,
12
+ type VerifyMessageQueryKey,
13
+ verifyMessageQueryOptions,
14
+ } from '@wagmi/core/query'
15
+ import type { VerifyMessageQueryFnData } from '@wagmi/core/query'
16
+ import type { ConfigParameter, QueryParameter } from '../types/properties.js'
17
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
18
+ import { useChainId } from './useChainId.js'
19
+ import { useConfig } from './useConfig.js'
20
+
21
+ export type UseVerifyMessageParameters<
22
+ config extends Config = Config,
23
+ selectData = VerifyMessageData,
24
+ > = Evaluate<
25
+ VerifyMessageOptions<config> &
26
+ ConfigParameter<config> &
27
+ QueryParameter<
28
+ VerifyMessageQueryFnData,
29
+ VerifyMessageErrorType,
30
+ selectData,
31
+ VerifyMessageQueryKey
32
+ >
33
+ >
34
+
35
+ export type UseVerifyMessageReturnType<selectData = VerifyMessageData> =
36
+ UseQueryReturnType<selectData, VerifyMessageErrorType>
37
+
38
+ /** https://wagmi.sh/react/api/hooks/useVerifyMessage */
39
+ export function useVerifyMessage<
40
+ config extends Config = ResolvedRegister['config'],
41
+ selectData = VerifyMessageData,
42
+ >(
43
+ parameters: UseVerifyMessageParameters<config, selectData> = {},
44
+ ): UseVerifyMessageReturnType<selectData> {
45
+ const { address, message, signature, query = {} } = parameters
46
+
47
+ const config = useConfig(parameters)
48
+ const chainId = useChainId()
49
+
50
+ const options = verifyMessageQueryOptions(config, {
51
+ ...parameters,
52
+ chainId: parameters.chainId ?? chainId,
53
+ })
54
+ const enabled = Boolean(
55
+ address && message && signature && (query.enabled ?? true),
56
+ )
57
+
58
+ return useQuery({ ...query, ...options, enabled })
59
+ }
@@ -0,0 +1,81 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type Config,
5
+ type ResolvedRegister,
6
+ type VerifyTypedDataErrorType,
7
+ } from '@wagmi/core'
8
+ import {
9
+ type VerifyTypedDataData,
10
+ type VerifyTypedDataOptions,
11
+ type VerifyTypedDataQueryKey,
12
+ verifyTypedDataQueryOptions,
13
+ } from '@wagmi/core/query'
14
+ import type { VerifyTypedDataQueryFnData } from '@wagmi/core/query'
15
+ import { type TypedData } from 'viem'
16
+ import type { ConfigParameter, QueryParameter } from '../types/properties.js'
17
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
18
+ import { useChainId } from './useChainId.js'
19
+ import { useConfig } from './useConfig.js'
20
+
21
+ export type UseVerifyTypedDataParameters<
22
+ typedData extends TypedData | Record<string, unknown> = TypedData,
23
+ primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,
24
+ config extends Config = Config,
25
+ selectData = VerifyTypedDataData,
26
+ > = VerifyTypedDataOptions<typedData, primaryType, config> &
27
+ ConfigParameter<config> &
28
+ QueryParameter<
29
+ VerifyTypedDataQueryFnData,
30
+ VerifyTypedDataErrorType,
31
+ selectData,
32
+ VerifyTypedDataQueryKey<typedData, primaryType, config>
33
+ >
34
+
35
+ export type UseVerifyTypedDataReturnType<selectData = VerifyTypedDataData> =
36
+ UseQueryReturnType<selectData, VerifyTypedDataErrorType>
37
+
38
+ /** https://wagmi.sh/react/api/hooks/useVerifyTypedData */
39
+ export function useVerifyTypedData<
40
+ const typedData extends TypedData | Record<string, unknown>,
41
+ primaryType extends keyof typedData | 'EIP712Domain',
42
+ config extends Config = ResolvedRegister['config'],
43
+ selectData = VerifyTypedDataData,
44
+ >(
45
+ parameters: UseVerifyTypedDataParameters<
46
+ typedData,
47
+ primaryType,
48
+ config,
49
+ selectData
50
+ > = {} as any,
51
+ ): UseVerifyTypedDataReturnType<selectData> {
52
+ const {
53
+ address,
54
+ message,
55
+ primaryType,
56
+ signature,
57
+ types,
58
+ query = {},
59
+ } = parameters
60
+
61
+ const config = useConfig(parameters)
62
+ const chainId = useChainId()
63
+
64
+ const options = verifyTypedDataQueryOptions<config, typedData, primaryType>(
65
+ config,
66
+ {
67
+ ...parameters,
68
+ chainId: parameters.chainId ?? chainId,
69
+ },
70
+ )
71
+ const enabled = Boolean(
72
+ address &&
73
+ message &&
74
+ primaryType &&
75
+ signature &&
76
+ types &&
77
+ (query.enabled ?? true),
78
+ )
79
+
80
+ return useQuery({ ...query, ...options, enabled })
81
+ }
@@ -3,7 +3,7 @@
3
3
  import type {
4
4
  Config,
5
5
  ResolvedRegister,
6
- WaitForTransactionReceiptError,
6
+ WaitForTransactionReceiptErrorType,
7
7
  } from '@wagmi/core'
8
8
  import { type Evaluate } from '@wagmi/core/internal'
9
9
  import {
@@ -14,12 +14,8 @@ import {
14
14
  waitForTransactionReceiptQueryOptions,
15
15
  } from '@wagmi/core/query'
16
16
 
17
- import type { ConfigParameter } from '../types/properties.js'
18
- import {
19
- type UseQueryParameters,
20
- type UseQueryReturnType,
21
- useQuery,
22
- } from '../utils/query.js'
17
+ import type { ConfigParameter, QueryParameter } from '../types/properties.js'
18
+ import { type UseQueryReturnType, useQuery } from '../utils/query.js'
23
19
  import { useChainId } from './useChainId.js'
24
20
  import { useConfig } from './useConfig.js'
25
21
 
@@ -29,25 +25,22 @@ export type UseWaitForTransactionReceiptParameters<
29
25
  selectData = WaitForTransactionReceiptData<config, chainId>,
30
26
  > = Evaluate<
31
27
  WaitForTransactionReceiptOptions<config, chainId> &
32
- ConfigParameter<config> & {
33
- query?:
34
- | UseQueryParameters<
35
- WaitForTransactionReceiptQueryFnData<config, chainId>,
36
- WaitForTransactionReceiptError,
37
- selectData,
38
- WaitForTransactionReceiptQueryKey<config, chainId>
39
- >
40
- | undefined
41
- }
28
+ ConfigParameter<config> &
29
+ QueryParameter<
30
+ WaitForTransactionReceiptQueryFnData<config, chainId>,
31
+ WaitForTransactionReceiptErrorType,
32
+ selectData,
33
+ WaitForTransactionReceiptQueryKey<config, chainId>
34
+ >
42
35
  >
43
36
 
44
37
  export type UseWaitForTransactionReceiptReturnType<
45
38
  config extends Config = Config,
46
39
  chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
47
40
  selectData = WaitForTransactionReceiptData<config, chainId>,
48
- > = UseQueryReturnType<selectData, WaitForTransactionReceiptError>
41
+ > = UseQueryReturnType<selectData, WaitForTransactionReceiptErrorType>
49
42
 
50
- /** https://alpha.wagmi.sh/react/api/hooks/useWaitForTransactionReceipt */
43
+ /** https://wagmi.sh/react/api/hooks/useWaitForTransactionReceipt */
51
44
  export function useWaitForTransactionReceipt<
52
45
  config extends Config = ResolvedRegister['config'],
53
46
  chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
@@ -64,11 +57,15 @@ export function useWaitForTransactionReceipt<
64
57
  const config = useConfig(parameters)
65
58
  const chainId = useChainId()
66
59
 
67
- const queryOptions = waitForTransactionReceiptQueryOptions(config, {
60
+ const options = waitForTransactionReceiptQueryOptions(config, {
68
61
  ...parameters,
69
62
  chainId: parameters.chainId ?? chainId,
70
63
  })
71
- const enabled = Boolean(!hash && (query.enabled ?? true))
64
+ const enabled = Boolean(hash && (query.enabled ?? true))
72
65
 
73
- return useQuery({ ...queryOptions, ...query, enabled })
66
+ return useQuery({
67
+ ...(query as any),
68
+ ...options,
69
+ enabled,
70
+ }) as UseWaitForTransactionReceiptReturnType<config, chainId, selectData>
74
71
  }
@@ -6,7 +6,7 @@
6
6
  import { useQueryClient } from '@tanstack/react-query'
7
7
  import type {
8
8
  Config,
9
- GetWalletClientError,
9
+ GetWalletClientErrorType,
10
10
  ResolvedRegister,
11
11
  } from '@wagmi/core'
12
12
  import { type Evaluate, type Omit } from '@wagmi/core/internal'
@@ -36,17 +36,19 @@ export type UseWalletClientParameters<
36
36
  > = Evaluate<
37
37
  GetWalletClientOptions<config, chainId> &
38
38
  ConfigParameter<config> & {
39
- query?: Evaluate<
40
- Omit<
41
- UseQueryParameters<
42
- GetWalletClientQueryFnData<config, chainId>,
43
- GetWalletClientError,
44
- selectData,
45
- GetWalletClientQueryKey<config, chainId>
46
- >,
47
- 'gcTime' | 'staleTime'
48
- >
49
- >
39
+ query?:
40
+ | Evaluate<
41
+ Omit<
42
+ UseQueryParameters<
43
+ GetWalletClientQueryFnData<config, chainId>,
44
+ GetWalletClientErrorType,
45
+ selectData,
46
+ GetWalletClientQueryKey<config, chainId>
47
+ >,
48
+ 'gcTime' | 'staleTime'
49
+ >
50
+ >
51
+ | undefined
50
52
  }
51
53
  >
52
54
 
@@ -54,9 +56,9 @@ export type UseWalletClientReturnType<
54
56
  config extends Config = Config,
55
57
  chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
56
58
  selectData = GetWalletClientData<config, chainId>,
57
- > = UseQueryReturnType<selectData, GetWalletClientError>
59
+ > = UseQueryReturnType<selectData, GetWalletClientErrorType>
58
60
 
59
- /** https://alpha.wagmi.sh/react/api/hooks/useWalletClient */
61
+ /** https://wagmi.sh/react/api/hooks/useWalletClient */
60
62
  export function useWalletClient<
61
63
  config extends Config = ResolvedRegister['config'],
62
64
  chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
@@ -71,11 +73,14 @@ export function useWalletClient<
71
73
  const { address, connector, status } = useAccount()
72
74
  const chainId = useChainId()
73
75
 
74
- const { queryKey, ...options } = getWalletClientQueryOptions(config, {
75
- ...parameters,
76
- chainId: parameters.chainId ?? chainId,
77
- connector: parameters.connector ?? connector,
78
- })
76
+ const { queryKey, ...options } = getWalletClientQueryOptions<config, chainId>(
77
+ config,
78
+ {
79
+ ...parameters,
80
+ chainId: parameters.chainId ?? chainId,
81
+ connector: parameters.connector ?? connector,
82
+ },
83
+ )
79
84
  const enabled = Boolean(status !== 'disconnected' && (query.enabled ?? true))
80
85
 
81
86
  // biome-ignore lint/nursery/useExhaustiveDependencies: `queryKey` not required
@@ -86,11 +91,10 @@ export function useWalletClient<
86
91
  }, [address, queryClient])
87
92
 
88
93
  return useQuery({
89
- ...options,
90
94
  ...query,
95
+ ...options,
91
96
  queryKey,
92
97
  enabled,
93
- gcTime: 0,
94
98
  staleTime: Infinity,
95
99
  })
96
100
  }
@@ -24,7 +24,7 @@ export type UseWatchBlockNumberParameters<
24
24
 
25
25
  export type UseWatchBlockNumberReturnType = void
26
26
 
27
- /** https://alpha.wagmi.sh/react/api/hooks/useWatchBlockNumber */
27
+ /** https://wagmi.sh/react/api/hooks/useWatchBlockNumber */
28
28
  export function useWatchBlockNumber<
29
29
  config extends Config = ResolvedRegister['config'],
30
30
  chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
@@ -0,0 +1,61 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type Config,
5
+ type ResolvedRegister,
6
+ type WatchBlocksParameters,
7
+ watchBlocks,
8
+ } from '@wagmi/core'
9
+ import { type UnionEvaluate, type UnionPartial } from '@wagmi/core/internal'
10
+ import { useEffect } from 'react'
11
+ import type { BlockTag } from 'viem'
12
+
13
+ import type { ConfigParameter, EnabledParameter } from '../types/properties.js'
14
+ import { useChainId } from './useChainId.js'
15
+ import { useConfig } from './useConfig.js'
16
+
17
+ export type UseWatchBlocksParameters<
18
+ includeTransactions extends boolean = false,
19
+ blockTag extends BlockTag = 'latest',
20
+ config extends Config = Config,
21
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
22
+ > = UnionEvaluate<
23
+ UnionPartial<
24
+ WatchBlocksParameters<includeTransactions, blockTag, config, chainId>
25
+ > &
26
+ ConfigParameter<config> &
27
+ EnabledParameter
28
+ >
29
+
30
+ export type UseWatchBlocksReturnType = void
31
+
32
+ /** https://wagmi.sh/react/hooks/useWatchBlocks */
33
+ export function useWatchBlocks<
34
+ config extends Config = ResolvedRegister['config'],
35
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
36
+ includeTransactions extends boolean = false,
37
+ blockTag extends BlockTag = 'latest',
38
+ >(
39
+ parameters: UseWatchBlocksParameters<
40
+ includeTransactions,
41
+ blockTag,
42
+ config,
43
+ chainId
44
+ > = {} as any,
45
+ ): UseWatchBlocksReturnType {
46
+ const { enabled = true, onBlock, config: _, ...rest } = parameters
47
+
48
+ const config = useConfig(parameters)
49
+ const configChainId = useChainId()
50
+ const chainId = parameters.chainId ?? configChainId
51
+
52
+ useEffect(() => {
53
+ if (!enabled) return
54
+ if (!onBlock) return
55
+ return watchBlocks(config, {
56
+ ...(rest as any),
57
+ chainId,
58
+ onBlock,
59
+ })
60
+ }, [chainId, config, enabled, onBlock, rest])
61
+ }
@@ -30,7 +30,7 @@ export type UseWatchContractEventParameters<
30
30
 
31
31
  export type UseWatchContractEventReturnType = void
32
32
 
33
- /** https://alpha.wagmi.sh/react/api/hooks/useWatchContractEvent */
33
+ /** https://wagmi.sh/react/api/hooks/useWatchContractEvent */
34
34
  export function useWatchContractEvent<
35
35
  const abi extends Abi | readonly unknown[],
36
36
  eventName extends ContractEventName<abi>,
@@ -24,7 +24,7 @@ export type UseWatchPendingTransactionsParameters<
24
24
 
25
25
  export type UseWatchPendingTransactionsReturnType = void
26
26
 
27
- /** https://alpha.wagmi.sh/react/api/hooks/useWatchPendingTransactions */
27
+ /** https://wagmi.sh/react/api/hooks/useWatchPendingTransactions */
28
28
  export function useWatchPendingTransactions<
29
29
  config extends Config = ResolvedRegister['config'],
30
30
  chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
@@ -1,7 +1,11 @@
1
1
  'use client'
2
2
 
3
3
  import { useMutation } from '@tanstack/react-query'
4
- import type { Config, ResolvedRegister, WriteContractError } from '@wagmi/core'
4
+ import type {
5
+ Config,
6
+ ResolvedRegister,
7
+ WriteContractErrorType,
8
+ } from '@wagmi/core'
5
9
  import {
6
10
  type WriteContractData,
7
11
  type WriteContractMutate,
@@ -18,14 +22,14 @@ import type {
18
22
  } from '../utils/query.js'
19
23
  import { useConfig } from './useConfig.js'
20
24
 
21
- export type UseContractWriteParameters<
25
+ export type UseWriteContractParameters<
22
26
  config extends Config = Config,
23
27
  context = unknown,
24
28
  > = ConfigParameter<config> & {
25
29
  mutation?:
26
30
  | UseMutationParameters<
27
31
  WriteContractData,
28
- WriteContractError,
32
+ WriteContractErrorType,
29
33
  WriteContractVariables<
30
34
  Abi,
31
35
  string,
@@ -38,12 +42,12 @@ export type UseContractWriteParameters<
38
42
  | undefined
39
43
  }
40
44
 
41
- export type UseContractWriteReturnType<
45
+ export type UseWriteContractReturnType<
42
46
  config extends Config = Config,
43
47
  context = unknown,
44
48
  > = UseMutationReturnType<
45
49
  WriteContractData,
46
- WriteContractError,
50
+ WriteContractErrorType,
47
51
  WriteContractVariables<
48
52
  Abi,
49
53
  string,
@@ -53,17 +57,17 @@ export type UseContractWriteReturnType<
53
57
  >,
54
58
  context
55
59
  > & {
56
- write: WriteContractMutate<config, context>
57
- writeAsync: WriteContractMutateAsync<config, context>
60
+ writeContract: WriteContractMutate<config, context>
61
+ writeContractAsync: WriteContractMutateAsync<config, context>
58
62
  }
59
63
 
60
- /** https://alpha.wagmi.sh/react/api/hooks/useContractWrite */
61
- export function useContractWrite<
64
+ /** https://wagmi.sh/react/api/hooks/useWriteContract */
65
+ export function useWriteContract<
62
66
  config extends Config = ResolvedRegister['config'],
63
67
  context = unknown,
64
68
  >(
65
- parameters: UseContractWriteParameters<config, context> = {},
66
- ): UseContractWriteReturnType<config, context> {
69
+ parameters: UseWriteContractParameters<config, context> = {},
70
+ ): UseWriteContractReturnType<config, context> {
67
71
  const { mutation } = parameters
68
72
 
69
73
  const config = useConfig(parameters)
@@ -74,10 +78,10 @@ export function useContractWrite<
74
78
  ...mutationOptions,
75
79
  })
76
80
 
77
- type Return = UseContractWriteReturnType<config, context>
81
+ type Return = UseWriteContractReturnType<config, context>
78
82
  return {
79
83
  ...result,
80
- write: mutate as Return['write'],
81
- writeAsync: mutateAsync as Return['writeAsync'],
84
+ writeContract: mutate as Return['writeContract'],
85
+ writeContractAsync: mutateAsync as Return['writeContractAsync'],
82
86
  }
83
87
  }
package/src/hydrate.ts ADDED
@@ -0,0 +1,36 @@
1
+ 'use client'
2
+
3
+ import { type ResolvedRegister, type State, hydrate } from '@wagmi/core'
4
+ import { type ReactElement, useEffect, useRef } from 'react'
5
+
6
+ export type HydrateProps = {
7
+ config: ResolvedRegister['config']
8
+ initialState?: State | undefined
9
+ reconnectOnMount?: boolean | undefined
10
+ }
11
+
12
+ export function Hydrate(parameters: React.PropsWithChildren<HydrateProps>) {
13
+ const { children, config, initialState, reconnectOnMount = true } = parameters
14
+
15
+ const { onMount } = hydrate(config, {
16
+ initialState,
17
+ reconnectOnMount,
18
+ })
19
+
20
+ // Hydrate for non-SSR
21
+ if (!config._internal.ssr) onMount()
22
+
23
+ // Hydrate for SSR
24
+ const active = useRef(true)
25
+ // biome-ignore lint/nursery/useExhaustiveDependencies:
26
+ useEffect(() => {
27
+ if (!active.current) return
28
+ if (!config._internal.ssr) return
29
+ onMount()
30
+ return () => {
31
+ active.current = false
32
+ }
33
+ }, [])
34
+
35
+ return children as ReactElement
36
+ }