wagmi 1.4.1 → 2.0.0

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 (293) hide show
  1. package/dist/esm/context.js +16 -0
  2. package/dist/esm/context.js.map +1 -0
  3. package/dist/esm/errors/base.js +20 -0
  4. package/dist/esm/errors/base.js.map +1 -0
  5. package/dist/esm/errors/context.js +13 -0
  6. package/dist/esm/errors/context.js.map +1 -0
  7. package/dist/esm/exports/actions.js +4 -0
  8. package/dist/esm/exports/actions.js.map +1 -0
  9. package/dist/esm/exports/chains.js +4 -0
  10. package/dist/esm/exports/chains.js.map +1 -0
  11. package/dist/esm/exports/connectors.js +4 -0
  12. package/dist/esm/exports/connectors.js.map +1 -0
  13. package/dist/esm/exports/index.js +63 -0
  14. package/dist/esm/exports/index.js.map +1 -0
  15. package/dist/esm/exports/query.js +4 -0
  16. package/dist/esm/exports/query.js.map +1 -0
  17. package/dist/esm/hooks/useAccount.js +10 -0
  18. package/dist/esm/hooks/useAccount.js.map +1 -0
  19. package/dist/esm/hooks/useAccountEffect.js +29 -0
  20. package/dist/esm/hooks/useAccountEffect.js.map +1 -0
  21. package/dist/esm/hooks/useBalance.js +19 -0
  22. package/dist/esm/hooks/useBalance.js.map +1 -0
  23. package/dist/esm/hooks/useBlockNumber.js +37 -0
  24. package/dist/esm/hooks/useBlockNumber.js.map +1 -0
  25. package/dist/esm/hooks/useChainId.js +10 -0
  26. package/dist/esm/hooks/useChainId.js.map +1 -0
  27. package/dist/esm/hooks/useClient.js +10 -0
  28. package/dist/esm/hooks/useClient.js.map +1 -0
  29. package/dist/esm/hooks/useConfig.js +13 -0
  30. package/dist/esm/hooks/useConfig.js.map +1 -0
  31. package/dist/esm/hooks/useConnect.js +22 -0
  32. package/dist/esm/hooks/useConnect.js.map +1 -0
  33. package/dist/esm/hooks/useConnections.js +10 -0
  34. package/dist/esm/hooks/useConnections.js.map +1 -0
  35. package/dist/esm/hooks/useConnectorClient.js +40 -0
  36. package/dist/esm/hooks/useConnectorClient.js.map +1 -0
  37. package/dist/esm/hooks/useContractRead.js +26 -0
  38. package/dist/esm/hooks/useContractRead.js.map +1 -0
  39. package/dist/esm/hooks/useContractReads.js +38 -0
  40. package/dist/esm/hooks/useContractReads.js.map +1 -0
  41. package/dist/esm/hooks/useContractSimulate.js +24 -0
  42. package/dist/esm/hooks/useContractSimulate.js.map +1 -0
  43. package/dist/esm/hooks/useContractWrite.js +20 -0
  44. package/dist/esm/hooks/useContractWrite.js.map +1 -0
  45. package/dist/esm/hooks/useDisconnect.js +23 -0
  46. package/dist/esm/hooks/useDisconnect.js.map +1 -0
  47. package/dist/esm/hooks/useEnsAddress.js +19 -0
  48. package/dist/esm/hooks/useEnsAddress.js.map +1 -0
  49. package/dist/esm/hooks/useEnsAvatar.js +19 -0
  50. package/dist/esm/hooks/useEnsAvatar.js.map +1 -0
  51. package/dist/esm/hooks/useEnsName.js +19 -0
  52. package/dist/esm/hooks/useEnsName.js.map +1 -0
  53. package/dist/esm/hooks/useEnsResolver.js +19 -0
  54. package/dist/esm/hooks/useEnsResolver.js.map +1 -0
  55. package/dist/esm/hooks/useEstimateFeesPerGas.js +19 -0
  56. package/dist/esm/hooks/useEstimateFeesPerGas.js.map +1 -0
  57. package/dist/esm/hooks/useEstimateGas.js +25 -0
  58. package/dist/esm/hooks/useEstimateGas.js.map +1 -0
  59. package/dist/esm/hooks/usePublicClient.js +10 -0
  60. package/dist/esm/hooks/usePublicClient.js.map +1 -0
  61. package/dist/esm/hooks/useReconnect.js +22 -0
  62. package/dist/esm/hooks/useReconnect.js.map +1 -0
  63. package/dist/esm/hooks/useSendTransaction.js +20 -0
  64. package/dist/esm/hooks/useSendTransaction.js.map +1 -0
  65. package/dist/esm/hooks/useSignMessage.js +21 -0
  66. package/dist/esm/hooks/useSignMessage.js.map +1 -0
  67. package/dist/esm/hooks/useSignTypedData.js +20 -0
  68. package/dist/esm/hooks/useSignTypedData.js.map +1 -0
  69. package/dist/esm/hooks/useSwitchAccount.js +22 -0
  70. package/dist/esm/hooks/useSwitchAccount.js.map +1 -0
  71. package/dist/esm/hooks/useSwitchChain.js +21 -0
  72. package/dist/esm/hooks/useSwitchChain.js.map +1 -0
  73. package/dist/esm/hooks/useSyncExternalStoreWithTracked.js +40 -0
  74. package/dist/esm/hooks/useSyncExternalStoreWithTracked.js.map +1 -0
  75. package/dist/esm/hooks/useToken.js +19 -0
  76. package/dist/esm/hooks/useToken.js.map +1 -0
  77. package/dist/esm/hooks/useTransaction.js +19 -0
  78. package/dist/esm/hooks/useTransaction.js.map +1 -0
  79. package/dist/esm/hooks/useWaitForTransactionReceipt.js +19 -0
  80. package/dist/esm/hooks/useWaitForTransactionReceipt.js.map +1 -0
  81. package/dist/esm/hooks/useWalletClient.js +42 -0
  82. package/dist/esm/hooks/useWalletClient.js.map +1 -0
  83. package/dist/esm/hooks/useWatchBlockNumber.js +25 -0
  84. package/dist/esm/hooks/useWatchBlockNumber.js.map +1 -0
  85. package/dist/esm/hooks/useWatchContractEvent.js +25 -0
  86. package/dist/esm/hooks/useWatchContractEvent.js.map +1 -0
  87. package/dist/esm/hooks/useWatchPendingTransactions.js +25 -0
  88. package/dist/esm/hooks/useWatchPendingTransactions.js.map +1 -0
  89. package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
  90. package/dist/esm/types/properties.js +2 -0
  91. package/dist/esm/types/properties.js.map +1 -0
  92. package/dist/esm/utils/getVersion.js +3 -0
  93. package/dist/esm/utils/getVersion.js.map +1 -0
  94. package/dist/esm/utils/query.js +21 -0
  95. package/dist/esm/utils/query.js.map +1 -0
  96. package/dist/esm/version.js +2 -0
  97. package/dist/esm/version.js.map +1 -0
  98. package/dist/types/context.d.ts +11 -0
  99. package/dist/types/context.d.ts.map +1 -0
  100. package/dist/types/errors/base.d.ts +7 -0
  101. package/dist/types/errors/base.d.ts.map +1 -0
  102. package/dist/types/errors/context.d.ts +6 -0
  103. package/dist/types/errors/context.d.ts.map +1 -0
  104. package/dist/types/exports/actions.d.ts +2 -0
  105. package/dist/types/exports/actions.d.ts.map +1 -0
  106. package/dist/types/exports/chains.d.ts +2 -0
  107. package/dist/types/exports/chains.d.ts.map +1 -0
  108. package/dist/types/exports/connectors.d.ts +2 -0
  109. package/dist/types/exports/connectors.d.ts.map +1 -0
  110. package/dist/types/exports/index.d.ts +46 -0
  111. package/dist/types/exports/index.d.ts.map +1 -0
  112. package/dist/types/exports/query.d.ts +2 -0
  113. package/dist/types/exports/query.d.ts.map +1 -0
  114. package/dist/types/hooks/useAccount.d.ts +7 -0
  115. package/dist/types/hooks/useAccount.d.ts.map +1 -0
  116. package/dist/types/hooks/useAccountEffect.d.ts +14 -0
  117. package/dist/types/hooks/useAccountEffect.d.ts.map +1 -0
  118. package/dist/types/hooks/useBalance.d.ts +13 -0
  119. package/dist/types/hooks/useBalance.d.ts.map +1 -0
  120. package/dist/types/hooks/useBlockNumber.d.ts +14 -0
  121. package/dist/types/hooks/useBlockNumber.d.ts.map +1 -0
  122. package/dist/types/hooks/useChainId.d.ts +7 -0
  123. package/dist/types/hooks/useChainId.d.ts.map +1 -0
  124. package/dist/types/hooks/useClient.d.ts +8 -0
  125. package/dist/types/hooks/useClient.d.ts.map +1 -0
  126. package/dist/types/hooks/useConfig.d.ts +7 -0
  127. package/dist/types/hooks/useConfig.d.ts.map +1 -0
  128. package/dist/types/hooks/useConnect.d.ts +16 -0
  129. package/dist/types/hooks/useConnect.d.ts.map +1 -0
  130. package/dist/types/hooks/useConnections.d.ts +7 -0
  131. package/dist/types/hooks/useConnections.d.ts.map +1 -0
  132. package/dist/types/hooks/useConnectorClient.d.ts +12 -0
  133. package/dist/types/hooks/useConnectorClient.d.ts.map +1 -0
  134. package/dist/types/hooks/useContractRead.d.ts +13 -0
  135. package/dist/types/hooks/useContractRead.d.ts.map +1 -0
  136. package/dist/types/hooks/useContractReads.d.ts +13 -0
  137. package/dist/types/hooks/useContractReads.d.ts.map +1 -0
  138. package/dist/types/hooks/useContractSimulate.d.ts +12 -0
  139. package/dist/types/hooks/useContractSimulate.d.ts.map +1 -0
  140. package/dist/types/hooks/useContractWrite.d.ts +15 -0
  141. package/dist/types/hooks/useContractWrite.d.ts.map +1 -0
  142. package/dist/types/hooks/useDisconnect.d.ts +16 -0
  143. package/dist/types/hooks/useDisconnect.d.ts.map +1 -0
  144. package/dist/types/hooks/useEnsAddress.d.ts +12 -0
  145. package/dist/types/hooks/useEnsAddress.d.ts.map +1 -0
  146. package/dist/types/hooks/useEnsAvatar.d.ts +12 -0
  147. package/dist/types/hooks/useEnsAvatar.d.ts.map +1 -0
  148. package/dist/types/hooks/useEnsName.d.ts +12 -0
  149. package/dist/types/hooks/useEnsName.d.ts.map +1 -0
  150. package/dist/types/hooks/useEnsResolver.d.ts +12 -0
  151. package/dist/types/hooks/useEnsResolver.d.ts.map +1 -0
  152. package/dist/types/hooks/useEstimateFeesPerGas.d.ts +13 -0
  153. package/dist/types/hooks/useEstimateFeesPerGas.d.ts.map +1 -0
  154. package/dist/types/hooks/useEstimateGas.d.ts +11 -0
  155. package/dist/types/hooks/useEstimateGas.d.ts.map +1 -0
  156. package/dist/types/hooks/usePublicClient.d.ts +8 -0
  157. package/dist/types/hooks/usePublicClient.d.ts.map +1 -0
  158. package/dist/types/hooks/useReconnect.d.ts +16 -0
  159. package/dist/types/hooks/useReconnect.d.ts.map +1 -0
  160. package/dist/types/hooks/useSendTransaction.d.ts +15 -0
  161. package/dist/types/hooks/useSendTransaction.d.ts.map +1 -0
  162. package/dist/types/hooks/useSignMessage.d.ts +15 -0
  163. package/dist/types/hooks/useSignMessage.d.ts.map +1 -0
  164. package/dist/types/hooks/useSignTypedData.d.ts +15 -0
  165. package/dist/types/hooks/useSignTypedData.d.ts.map +1 -0
  166. package/dist/types/hooks/useSwitchAccount.d.ts +16 -0
  167. package/dist/types/hooks/useSwitchAccount.d.ts.map +1 -0
  168. package/dist/types/hooks/useSwitchChain.d.ts +16 -0
  169. package/dist/types/hooks/useSwitchChain.d.ts.map +1 -0
  170. package/dist/types/hooks/useSyncExternalStoreWithTracked.d.ts +2 -0
  171. package/dist/types/hooks/useSyncExternalStoreWithTracked.d.ts.map +1 -0
  172. package/dist/types/hooks/useToken.d.ts +12 -0
  173. package/dist/types/hooks/useToken.d.ts.map +1 -0
  174. package/dist/types/hooks/useTransaction.d.ts +12 -0
  175. package/dist/types/hooks/useTransaction.d.ts.map +1 -0
  176. package/dist/types/hooks/useWaitForTransactionReceipt.d.ts +12 -0
  177. package/dist/types/hooks/useWaitForTransactionReceipt.d.ts.map +1 -0
  178. package/dist/types/hooks/useWalletClient.d.ts +12 -0
  179. package/dist/types/hooks/useWalletClient.d.ts.map +1 -0
  180. package/dist/types/hooks/useWatchBlockNumber.d.ts +8 -0
  181. package/dist/types/hooks/useWatchBlockNumber.d.ts.map +1 -0
  182. package/dist/types/hooks/useWatchContractEvent.d.ts +9 -0
  183. package/dist/types/hooks/useWatchContractEvent.d.ts.map +1 -0
  184. package/dist/types/hooks/useWatchPendingTransactions.d.ts +8 -0
  185. package/dist/types/hooks/useWatchPendingTransactions.d.ts.map +1 -0
  186. package/dist/types/types/properties.d.ts +8 -0
  187. package/dist/types/types/properties.d.ts.map +1 -0
  188. package/dist/types/utils/getVersion.d.ts +2 -0
  189. package/dist/types/utils/getVersion.d.ts.map +1 -0
  190. package/dist/types/utils/query.d.ts +15 -0
  191. package/dist/types/utils/query.d.ts.map +1 -0
  192. package/dist/types/version.d.ts +2 -0
  193. package/dist/types/version.d.ts.map +1 -0
  194. package/package.json +65 -103
  195. package/src/context.ts +27 -0
  196. package/src/errors/base.ts +13 -0
  197. package/src/errors/context.ts +8 -0
  198. package/src/exports/actions.ts +4 -0
  199. package/src/exports/chains.ts +4 -0
  200. package/src/exports/connectors.ts +4 -0
  201. package/src/exports/index.ts +284 -0
  202. package/src/exports/query.ts +4 -0
  203. package/src/hooks/useAccount.ts +27 -0
  204. package/src/hooks/useAccountEffect.ts +55 -0
  205. package/src/hooks/useBalance.ts +65 -0
  206. package/src/hooks/useBlockNumber.ts +97 -0
  207. package/src/hooks/useChainId.ts +31 -0
  208. package/src/hooks/useClient.ts +43 -0
  209. package/src/hooks/useConfig.ts +22 -0
  210. package/src/hooks/useConnect.ts +80 -0
  211. package/src/hooks/useConnections.ts +27 -0
  212. package/src/hooks/useConnectorClient.ts +95 -0
  213. package/src/hooks/useContractRead.ts +107 -0
  214. package/src/hooks/useContractReads.ts +98 -0
  215. package/src/hooks/useContractSimulate.ts +117 -0
  216. package/src/hooks/useContractWrite.ts +83 -0
  217. package/src/hooks/useDisconnect.ts +68 -0
  218. package/src/hooks/useEnsAddress.ts +61 -0
  219. package/src/hooks/useEnsAvatar.ts +59 -0
  220. package/src/hooks/useEnsName.ts +61 -0
  221. package/src/hooks/useEnsResolver.ts +61 -0
  222. package/src/hooks/useEstimateFeesPerGas.ts +69 -0
  223. package/src/hooks/useEstimateGas.ts +72 -0
  224. package/src/hooks/usePublicClient.ts +45 -0
  225. package/src/hooks/useReconnect.ts +67 -0
  226. package/src/hooks/useSendTransaction.ts +79 -0
  227. package/src/hooks/useSignMessage.ts +65 -0
  228. package/src/hooks/useSignTypedData.ts +66 -0
  229. package/src/hooks/useSwitchAccount.ts +82 -0
  230. package/src/hooks/useSwitchChain.ts +77 -0
  231. package/src/hooks/useSyncExternalStoreWithTracked.ts +67 -0
  232. package/src/hooks/useToken.ts +63 -0
  233. package/src/hooks/useTransaction.ts +68 -0
  234. package/src/hooks/useWaitForTransactionReceipt.ts +74 -0
  235. package/src/hooks/useWalletClient.ts +96 -0
  236. package/src/hooks/useWatchBlockNumber.ts +49 -0
  237. package/src/hooks/useWatchContractEvent.ts +64 -0
  238. package/src/hooks/useWatchPendingTransactions.ts +52 -0
  239. package/src/types/properties.ts +9 -0
  240. package/src/utils/getVersion.ts +3 -0
  241. package/src/utils/query.ts +102 -0
  242. package/src/version.ts +1 -0
  243. package/README.md +0 -30
  244. package/actions/package.json +0 -4
  245. package/chains/package.json +0 -4
  246. package/connectors/coinbaseWallet/package.json +0 -4
  247. package/connectors/injected/package.json +0 -4
  248. package/connectors/ledger/package.json +0 -4
  249. package/connectors/metaMask/package.json +0 -4
  250. package/connectors/mock/package.json +0 -4
  251. package/connectors/package.json +0 -4
  252. package/connectors/safe/package.json +0 -4
  253. package/connectors/walletConnect/package.json +0 -4
  254. package/connectors/walletConnectLegacy/package.json +0 -4
  255. package/dist/actions.d.ts +0 -1
  256. package/dist/actions.js +0 -85
  257. package/dist/chains.d.ts +0 -2
  258. package/dist/chains.js +0 -4
  259. package/dist/connectors/coinbaseWallet.d.ts +0 -1
  260. package/dist/connectors/coinbaseWallet.js +0 -7
  261. package/dist/connectors/index.d.ts +0 -1
  262. package/dist/connectors/index.js +0 -7
  263. package/dist/connectors/injected.d.ts +0 -1
  264. package/dist/connectors/injected.js +0 -7
  265. package/dist/connectors/ledger.d.ts +0 -1
  266. package/dist/connectors/ledger.js +0 -7
  267. package/dist/connectors/metaMask.d.ts +0 -1
  268. package/dist/connectors/metaMask.js +0 -7
  269. package/dist/connectors/mock.d.ts +0 -1
  270. package/dist/connectors/mock.js +0 -7
  271. package/dist/connectors/safe.d.ts +0 -1
  272. package/dist/connectors/safe.js +0 -7
  273. package/dist/connectors/walletConnect.d.ts +0 -1
  274. package/dist/connectors/walletConnect.js +0 -7
  275. package/dist/connectors/walletConnectLegacy.d.ts +0 -1
  276. package/dist/connectors/walletConnectLegacy.js +0 -7
  277. package/dist/index.d.ts +0 -958
  278. package/dist/index.js +0 -2564
  279. package/dist/providers/alchemy.d.ts +0 -1
  280. package/dist/providers/alchemy.js +0 -7
  281. package/dist/providers/infura.d.ts +0 -1
  282. package/dist/providers/infura.js +0 -7
  283. package/dist/providers/jsonRpc.d.ts +0 -1
  284. package/dist/providers/jsonRpc.js +0 -7
  285. package/dist/providers/public.d.ts +0 -1
  286. package/dist/providers/public.js +0 -7
  287. package/dist/window.d.ts +0 -76
  288. package/dist/window.js +0 -1
  289. package/providers/alchemy/package.json +0 -4
  290. package/providers/infura/package.json +0 -4
  291. package/providers/jsonRpc/package.json +0 -4
  292. package/providers/public/package.json +0 -4
  293. package/window/package.json +0 -4
@@ -0,0 +1,74 @@
1
+ 'use client'
2
+
3
+ import type {
4
+ Config,
5
+ ResolvedRegister,
6
+ WaitForTransactionReceiptError,
7
+ } from '@wagmi/core'
8
+ import { type Evaluate } from '@wagmi/core/internal'
9
+ import {
10
+ type WaitForTransactionReceiptData,
11
+ type WaitForTransactionReceiptOptions,
12
+ type WaitForTransactionReceiptQueryFnData,
13
+ type WaitForTransactionReceiptQueryKey,
14
+ waitForTransactionReceiptQueryOptions,
15
+ } from '@wagmi/core/query'
16
+
17
+ import type { ConfigParameter } from '../types/properties.js'
18
+ import {
19
+ type UseQueryParameters,
20
+ type UseQueryReturnType,
21
+ useQuery,
22
+ } from '../utils/query.js'
23
+ import { useChainId } from './useChainId.js'
24
+ import { useConfig } from './useConfig.js'
25
+
26
+ export type UseWaitForTransactionReceiptParameters<
27
+ config extends Config = Config,
28
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
29
+ selectData = WaitForTransactionReceiptData<config, chainId>,
30
+ > = Evaluate<
31
+ 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
+ }
42
+ >
43
+
44
+ export type UseWaitForTransactionReceiptReturnType<
45
+ config extends Config = Config,
46
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
47
+ selectData = WaitForTransactionReceiptData<config, chainId>,
48
+ > = UseQueryReturnType<selectData, WaitForTransactionReceiptError>
49
+
50
+ /** https://alpha.wagmi.sh/react/api/hooks/useWaitForTransactionReceipt */
51
+ export function useWaitForTransactionReceipt<
52
+ config extends Config = ResolvedRegister['config'],
53
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
54
+ selectData = WaitForTransactionReceiptData<config, chainId>,
55
+ >(
56
+ parameters: UseWaitForTransactionReceiptParameters<
57
+ config,
58
+ chainId,
59
+ selectData
60
+ > = {},
61
+ ): UseWaitForTransactionReceiptReturnType<config, chainId, selectData> {
62
+ const { hash, query = {} } = parameters
63
+
64
+ const config = useConfig(parameters)
65
+ const chainId = useChainId()
66
+
67
+ const queryOptions = waitForTransactionReceiptQueryOptions(config, {
68
+ ...parameters,
69
+ chainId: parameters.chainId ?? chainId,
70
+ })
71
+ const enabled = Boolean(!hash && (query.enabled ?? true))
72
+
73
+ return useQuery({ ...queryOptions, ...query, enabled })
74
+ }
@@ -0,0 +1,96 @@
1
+ 'use client'
2
+
3
+ // Almost identical implementation to `useConnectorClient` (except for return type)
4
+ // Should update both in tandem
5
+
6
+ import { useQueryClient } from '@tanstack/react-query'
7
+ import type {
8
+ Config,
9
+ GetWalletClientError,
10
+ ResolvedRegister,
11
+ } from '@wagmi/core'
12
+ import { type Evaluate, type Omit } from '@wagmi/core/internal'
13
+ import {
14
+ type GetWalletClientData,
15
+ type GetWalletClientOptions,
16
+ type GetWalletClientQueryFnData,
17
+ type GetWalletClientQueryKey,
18
+ getWalletClientQueryOptions,
19
+ } from '@wagmi/core/query'
20
+ import { useEffect } from 'react'
21
+
22
+ import type { ConfigParameter } from '../types/properties.js'
23
+ import {
24
+ type UseQueryParameters,
25
+ type UseQueryReturnType,
26
+ useQuery,
27
+ } from '../utils/query.js'
28
+ import { useAccount } from './useAccount.js'
29
+ import { useChainId } from './useChainId.js'
30
+ import { useConfig } from './useConfig.js'
31
+
32
+ export type UseWalletClientParameters<
33
+ config extends Config = Config,
34
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
35
+ selectData = GetWalletClientData<config, chainId>,
36
+ > = Evaluate<
37
+ GetWalletClientOptions<config, chainId> &
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
+ >
50
+ }
51
+ >
52
+
53
+ export type UseWalletClientReturnType<
54
+ config extends Config = Config,
55
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
56
+ selectData = GetWalletClientData<config, chainId>,
57
+ > = UseQueryReturnType<selectData, GetWalletClientError>
58
+
59
+ /** https://alpha.wagmi.sh/react/api/hooks/useWalletClient */
60
+ export function useWalletClient<
61
+ config extends Config = ResolvedRegister['config'],
62
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
63
+ selectData = GetWalletClientData<config, chainId>,
64
+ >(
65
+ parameters: UseWalletClientParameters<config, chainId, selectData> = {},
66
+ ): UseWalletClientReturnType<config, chainId, selectData> {
67
+ const { query = {}, ...rest } = parameters
68
+
69
+ const config = useConfig(rest)
70
+ const queryClient = useQueryClient()
71
+ const { address, connector, status } = useAccount()
72
+ const chainId = useChainId()
73
+
74
+ const { queryKey, ...options } = getWalletClientQueryOptions(config, {
75
+ ...parameters,
76
+ chainId: parameters.chainId ?? chainId,
77
+ connector: parameters.connector ?? connector,
78
+ })
79
+ const enabled = Boolean(status !== 'disconnected' && (query.enabled ?? true))
80
+
81
+ // biome-ignore lint/nursery/useExhaustiveDependencies: `queryKey` not required
82
+ useEffect(() => {
83
+ // invalidate when address changes
84
+ if (address) queryClient.invalidateQueries({ queryKey })
85
+ else queryClient.removeQueries({ queryKey }) // remove when account is disconnected
86
+ }, [address, queryClient])
87
+
88
+ return useQuery({
89
+ ...options,
90
+ ...query,
91
+ queryKey,
92
+ enabled,
93
+ gcTime: 0,
94
+ staleTime: Infinity,
95
+ })
96
+ }
@@ -0,0 +1,49 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type Config,
5
+ type ResolvedRegister,
6
+ type WatchBlockNumberParameters,
7
+ watchBlockNumber,
8
+ } from '@wagmi/core'
9
+ import { type UnionEvaluate, type UnionPartial } from '@wagmi/core/internal'
10
+ import { useEffect } from 'react'
11
+
12
+ import type { ConfigParameter, EnabledParameter } from '../types/properties.js'
13
+ import { useChainId } from './useChainId.js'
14
+ import { useConfig } from './useConfig.js'
15
+
16
+ export type UseWatchBlockNumberParameters<
17
+ config extends Config = Config,
18
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
19
+ > = UnionEvaluate<
20
+ UnionPartial<WatchBlockNumberParameters<config, chainId>> &
21
+ ConfigParameter<config> &
22
+ EnabledParameter
23
+ >
24
+
25
+ export type UseWatchBlockNumberReturnType = void
26
+
27
+ /** https://alpha.wagmi.sh/react/api/hooks/useWatchBlockNumber */
28
+ export function useWatchBlockNumber<
29
+ config extends Config = ResolvedRegister['config'],
30
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
31
+ >(
32
+ parameters: UseWatchBlockNumberParameters<config, chainId> = {} as any,
33
+ ): UseWatchBlockNumberReturnType {
34
+ const { enabled = true, onBlockNumber, config: _, ...rest } = parameters
35
+
36
+ const config = useConfig(parameters)
37
+ const configChainId = useChainId()
38
+ const chainId = parameters.chainId ?? configChainId
39
+
40
+ useEffect(() => {
41
+ if (!enabled) return
42
+ if (!onBlockNumber) return
43
+ return watchBlockNumber(config, {
44
+ ...(rest as any),
45
+ chainId,
46
+ onBlockNumber,
47
+ })
48
+ }, [chainId, config, enabled, onBlockNumber, rest])
49
+ }
@@ -0,0 +1,64 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type Config,
5
+ type ResolvedRegister,
6
+ type WatchContractEventParameters,
7
+ watchContractEvent,
8
+ } from '@wagmi/core'
9
+ import { type UnionEvaluate, type UnionPartial } from '@wagmi/core/internal'
10
+ import { useEffect } from 'react'
11
+
12
+ import type { Abi, ContractEventName } from 'viem'
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 UseWatchContractEventParameters<
18
+ abi extends Abi | readonly unknown[] = Abi,
19
+ eventName extends ContractEventName<abi> = ContractEventName<abi>,
20
+ strict extends boolean | undefined = undefined,
21
+ config extends Config = Config,
22
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
23
+ > = UnionEvaluate<
24
+ UnionPartial<
25
+ WatchContractEventParameters<abi, eventName, strict, config, chainId>
26
+ > &
27
+ ConfigParameter<config> &
28
+ EnabledParameter
29
+ >
30
+
31
+ export type UseWatchContractEventReturnType = void
32
+
33
+ /** https://alpha.wagmi.sh/react/api/hooks/useWatchContractEvent */
34
+ export function useWatchContractEvent<
35
+ const abi extends Abi | readonly unknown[],
36
+ eventName extends ContractEventName<abi>,
37
+ strict extends boolean | undefined = undefined,
38
+ config extends Config = ResolvedRegister['config'],
39
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
40
+ >(
41
+ parameters: UseWatchContractEventParameters<
42
+ abi,
43
+ eventName,
44
+ strict,
45
+ config,
46
+ chainId
47
+ > = {} as any,
48
+ ): UseWatchContractEventReturnType {
49
+ const { enabled = true, onLogs, config: _, ...rest } = parameters
50
+
51
+ const config = useConfig(parameters)
52
+ const configChainId = useChainId()
53
+ const chainId = parameters.chainId ?? configChainId
54
+
55
+ useEffect(() => {
56
+ if (!enabled) return
57
+ if (!onLogs) return
58
+ return watchContractEvent(config, {
59
+ ...(rest as any),
60
+ chainId,
61
+ onLogs,
62
+ })
63
+ }, [chainId, config, enabled, rest, onLogs])
64
+ }
@@ -0,0 +1,52 @@
1
+ 'use client'
2
+
3
+ import {
4
+ type Config,
5
+ type ResolvedRegister,
6
+ type WatchPendingTransactionsParameters,
7
+ watchPendingTransactions,
8
+ } from '@wagmi/core'
9
+ import { type UnionEvaluate, type UnionPartial } from '@wagmi/core/internal'
10
+ import { useEffect } from 'react'
11
+
12
+ import type { ConfigParameter, EnabledParameter } from '../types/properties.js'
13
+ import { useChainId } from './useChainId.js'
14
+ import { useConfig } from './useConfig.js'
15
+
16
+ export type UseWatchPendingTransactionsParameters<
17
+ config extends Config = Config,
18
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
19
+ > = UnionEvaluate<
20
+ UnionPartial<WatchPendingTransactionsParameters<config, chainId>> &
21
+ ConfigParameter<config> &
22
+ EnabledParameter
23
+ >
24
+
25
+ export type UseWatchPendingTransactionsReturnType = void
26
+
27
+ /** https://alpha.wagmi.sh/react/api/hooks/useWatchPendingTransactions */
28
+ export function useWatchPendingTransactions<
29
+ config extends Config = ResolvedRegister['config'],
30
+ chainId extends config['chains'][number]['id'] = config['chains'][number]['id'],
31
+ >(
32
+ parameters: UseWatchPendingTransactionsParameters<
33
+ config,
34
+ chainId
35
+ > = {} as any,
36
+ ): UseWatchPendingTransactionsReturnType {
37
+ const { enabled = true, onTransactions, config: _, ...rest } = parameters
38
+
39
+ const config = useConfig(parameters)
40
+ const configChainId = useChainId()
41
+ const chainId = parameters.chainId ?? configChainId
42
+
43
+ useEffect(() => {
44
+ if (!enabled) return
45
+ if (!onTransactions) return
46
+ return watchPendingTransactions(config, {
47
+ ...(rest as any),
48
+ chainId,
49
+ onTransactions,
50
+ })
51
+ }, [chainId, config, enabled, onTransactions, rest])
52
+ }
@@ -0,0 +1,9 @@
1
+ import type { Config } from '@wagmi/core'
2
+
3
+ export type EnabledParameter = {
4
+ enabled?: boolean | undefined
5
+ }
6
+
7
+ export type ConfigParameter<config extends Config = Config> = {
8
+ config?: Config | config | undefined
9
+ }
@@ -0,0 +1,3 @@
1
+ import { version } from '../version.js'
2
+
3
+ export const getVersion = () => `wagmi@${version}`
@@ -0,0 +1,102 @@
1
+ import {
2
+ type DefaultError,
3
+ type QueryKey,
4
+ type UseMutationOptions,
5
+ type UseMutationResult,
6
+ type UseQueryOptions,
7
+ type UseQueryResult,
8
+ replaceEqualDeep,
9
+ useQuery as tanstack_useQuery,
10
+ } from '@tanstack/react-query'
11
+ import {
12
+ type Evaluate,
13
+ type ExactPartial,
14
+ type Omit,
15
+ deepEqual,
16
+ } from '@wagmi/core/internal'
17
+ import { hashFn } from '@wagmi/core/query'
18
+
19
+ export type UseMutationParameters<
20
+ data = unknown,
21
+ error = Error,
22
+ variables = void,
23
+ context = unknown,
24
+ > = Evaluate<
25
+ Omit<
26
+ UseMutationOptions<data, error, Evaluate<variables>, context>,
27
+ 'mutationFn' | 'mutationKey' | 'throwOnError'
28
+ >
29
+ >
30
+
31
+ export type UseMutationReturnType<
32
+ data = unknown,
33
+ error = Error,
34
+ variables = void,
35
+ context = unknown,
36
+ > = Evaluate<
37
+ Omit<
38
+ UseMutationResult<data, error, variables, context>,
39
+ 'mutate' | 'mutateAsync'
40
+ >
41
+ >
42
+
43
+ ////////////////////////////////////////////////////////////////////////////////
44
+
45
+ export type UseQueryParameters<
46
+ queryFnData = unknown,
47
+ error = DefaultError,
48
+ data = queryFnData,
49
+ queryKey extends QueryKey = QueryKey,
50
+ > = Evaluate<
51
+ ExactPartial<
52
+ Omit<
53
+ UseQueryOptions<queryFnData, error, data, queryKey>,
54
+ | 'initialData'
55
+ | 'queryFn'
56
+ | 'queryHash'
57
+ | 'queryKey'
58
+ | 'queryKeyHashFn'
59
+ | 'throwOnError'
60
+ >
61
+ > & {
62
+ // Fix `initialData` type
63
+ initialData?: UseQueryOptions<
64
+ queryFnData,
65
+ error,
66
+ data,
67
+ queryKey
68
+ >['initialData']
69
+ }
70
+ >
71
+
72
+ export type UseQueryReturnType<data = unknown, error = DefaultError> = Evaluate<
73
+ UseQueryResult<data, error> & {
74
+ queryKey: QueryKey
75
+ }
76
+ >
77
+
78
+ // Adding some basic customization.
79
+ // Ideally we don't have this function, but `import('@tanstack/react-query').useQuery` currently has some quirks where it is super hard to
80
+ // pass down the inferred `initialData` type because of it's discriminated overload in the on `useQuery`.
81
+ export function useQuery<queryFnData, error, data, queryKey extends QueryKey>(
82
+ parameters: UseQueryParameters<queryFnData, error, data, queryKey> & {
83
+ queryKey: QueryKey
84
+ },
85
+ ): UseQueryReturnType<data, error> {
86
+ const result = tanstack_useQuery({
87
+ ...(parameters as any),
88
+ queryKeyHashFn: hashFn, // for bigint support
89
+ }) as UseQueryReturnType<data, error>
90
+ result.queryKey = parameters.queryKey
91
+ return result
92
+ }
93
+
94
+ ////////////////////////////////////////////////////////////////////////////////
95
+
96
+ export function structuralSharing<data>(
97
+ oldData: data | undefined,
98
+ newData: data,
99
+ ): data {
100
+ if (deepEqual(oldData, newData)) return oldData as data
101
+ return replaceEqualDeep(oldData, newData)
102
+ }
package/src/version.ts ADDED
@@ -0,0 +1 @@
1
+ export const version = '2.0.0'
package/README.md DELETED
@@ -1,30 +0,0 @@
1
- # wagmi
2
-
3
- ## Documentation
4
-
5
- For full documentation and examples, visit [wagmi.sh](https://wagmi.sh).
6
-
7
- ## Installation
8
-
9
- Install wagmi and its [viem](https://viem.sh) peer dependency.
10
-
11
- ```bash
12
- npm install wagmi viem
13
- ```
14
-
15
- ## Community
16
-
17
- Check out the following places for more wagmi-related content:
18
-
19
- - Join the [discussions on GitHub](https://github.com/wagmi-dev/wagmi/discussions)
20
- - Follow [@wagmi_sh](https://twitter.com/wagmi_sh) on Twitter for project updates
21
- - Share [your project/organization](https://github.com/wagmi-dev/wagmi/discussions/201) using wagmi
22
- - Browse the [awesome-wagmi](https://github.com/wagmi-dev/awesome-wagmi) list of awesome projects and resources
23
-
24
- ## Support
25
-
26
- If you find wagmi useful, please consider supporting development. Thank you 🙏
27
-
28
- - [GitHub Sponsors](https://github.com/sponsors/wagmi-dev?metadata_campaign=readme_wagmi)
29
- - [Gitcoin Grant](https://wagmi.sh/gitcoin)
30
- - [wagmi-dev.eth](https://etherscan.io/enslookup-search?search=wagmi-dev.eth)
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../dist/actions.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../dist/chains.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../../dist/connectors/coinbaseWallet.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../../dist/connectors/injected.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../../dist/connectors/ledger.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../../dist/connectors/metaMask.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../../dist/connectors/mock.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../dist/connectors/index.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../../dist/connectors/safe.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../../dist/connectors/walletConnect.js"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "main": "../../dist/connectors/walletConnectLegacy.js"
4
- }
package/dist/actions.d.ts DELETED
@@ -1 +0,0 @@
1
- export { ConnectArgs, ConnectResult, FetchBalanceArgs, FetchBalanceResult, FetchBlockNumberArgs, FetchBlockNumberResult, FetchEnsAddressArgs, FetchEnsAddressResult, FetchEnsAvatarArgs, FetchEnsAvatarResult, FetchEnsNameArgs, FetchEnsNameResult, FetchEnsResolverArgs, FetchEnsResolverResult, FetchFeeDataArgs, FetchFeeDataResult, FetchTokenArgs, FetchTokenResult, FetchTransactionArgs, FetchTransactionResult, GetAccountResult, GetContractArgs, GetContractResult, GetNetworkResult, GetPublicClientArgs, GetPublicClientResult, GetWalletClientArgs, GetWalletClientResult, GetWebSocketPublicClientArgs, GetWebSocketPublicClientResult, MulticallConfig, MulticallResult, PrepareWriteContractConfig, PrepareWriteContractResult, ReadContractConfig, ReadContractResult, ReadContractsConfig, ReadContractsResult, SendTransactionArgs, SendTransactionResult, SignMessageArgs, SignMessageResult, SignTypedDataArgs, SignTypedDataResult, SwitchNetworkArgs, SwitchNetworkResult, WaitForTransactionArgs, WaitForTransactionResult, WatchAccountCallback, WatchBlockNumberArgs, WatchBlockNumberCallback, WatchContractEventCallback, WatchContractEventConfig, WatchMulticallCallback, WatchMulticallConfig, WatchNetworkCallback, WatchPendingTransactionsArgs, WatchPendingTransactionsCallback, WatchPendingTransactionsResult, WatchPublicClientCallback, WatchReadContractCallback, WatchReadContractConfig, WatchReadContractsCallback, WatchReadContractsConfig, WatchWalletClientArgs, WatchWalletClientCallback, WatchWebSocketPublicClientCallback, WriteContractArgs, WriteContractMode, WriteContractPreparedArgs, WriteContractResult, WriteContractUnpreparedArgs, connect, disconnect, fetchBalance, fetchBlockNumber, fetchEnsAddress, fetchEnsAvatar, fetchEnsName, fetchEnsResolver, fetchFeeData, fetchToken, fetchTransaction, getAccount, getContract, getNetwork, getPublicClient, getWalletClient, getWebSocketPublicClient, multicall, prepareSendTransaction, prepareWriteContract, readContract, readContracts, sendTransaction, signMessage, signTypedData, switchNetwork, waitForTransaction, watchAccount, watchBlockNumber, watchContractEvent, watchMulticall, watchNetwork, watchPendingTransactions, watchPublicClient, watchReadContract, watchReadContracts, watchWalletClient, watchWebSocketPublicClient, writeContract } from '@wagmi/core';
package/dist/actions.js DELETED
@@ -1,85 +0,0 @@
1
- "use client";
2
-
3
- // src/actions.ts
4
- import {
5
- connect,
6
- disconnect,
7
- fetchBalance,
8
- fetchBlockNumber,
9
- fetchEnsAddress,
10
- fetchEnsAvatar,
11
- fetchEnsName,
12
- fetchEnsResolver,
13
- fetchFeeData,
14
- fetchToken,
15
- fetchTransaction,
16
- getAccount,
17
- getContract,
18
- getNetwork,
19
- getPublicClient,
20
- getWalletClient,
21
- getWebSocketPublicClient,
22
- multicall,
23
- prepareSendTransaction,
24
- prepareWriteContract,
25
- readContract,
26
- readContracts,
27
- sendTransaction,
28
- signMessage,
29
- signTypedData,
30
- switchNetwork,
31
- waitForTransaction,
32
- watchAccount,
33
- watchBlockNumber,
34
- watchContractEvent,
35
- watchMulticall,
36
- watchNetwork,
37
- watchPendingTransactions,
38
- watchPublicClient,
39
- watchReadContract,
40
- watchReadContracts,
41
- watchWalletClient,
42
- watchWebSocketPublicClient,
43
- writeContract
44
- } from "@wagmi/core";
45
- export {
46
- connect,
47
- disconnect,
48
- fetchBalance,
49
- fetchBlockNumber,
50
- fetchEnsAddress,
51
- fetchEnsAvatar,
52
- fetchEnsName,
53
- fetchEnsResolver,
54
- fetchFeeData,
55
- fetchToken,
56
- fetchTransaction,
57
- getAccount,
58
- getContract,
59
- getNetwork,
60
- getPublicClient,
61
- getWalletClient,
62
- getWebSocketPublicClient,
63
- multicall,
64
- prepareSendTransaction,
65
- prepareWriteContract,
66
- readContract,
67
- readContracts,
68
- sendTransaction,
69
- signMessage,
70
- signTypedData,
71
- switchNetwork,
72
- waitForTransaction,
73
- watchAccount,
74
- watchBlockNumber,
75
- watchContractEvent,
76
- watchMulticall,
77
- watchNetwork,
78
- watchPendingTransactions,
79
- watchPublicClient,
80
- watchReadContract,
81
- watchReadContracts,
82
- watchWalletClient,
83
- watchWebSocketPublicClient,
84
- writeContract
85
- };
package/dist/chains.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from 'viem/chains';
2
- export { Chain } from 'viem/chains';
package/dist/chains.js DELETED
@@ -1,4 +0,0 @@
1
- "use client";
2
-
3
- // src/chains.ts
4
- export * from "viem/chains";
@@ -1 +0,0 @@
1
- export { CoinbaseWalletConnector } from '@wagmi/core/connectors/coinbaseWallet';
@@ -1,7 +0,0 @@
1
- "use client";
2
-
3
- // src/connectors/coinbaseWallet.ts
4
- import { CoinbaseWalletConnector } from "@wagmi/core/connectors/coinbaseWallet";
5
- export {
6
- CoinbaseWalletConnector
7
- };
@@ -1 +0,0 @@
1
- export { Connector, ConnectorData, ConnectorEvents } from '@wagmi/core/connectors';