tempo.ts 0.8.0 → 0.8.1

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.
@@ -90,6 +90,38 @@ export declare namespace useGetTotalPerSecond {
90
90
  type Parameters<config extends Config = ResolvedRegister['config'], selectData = Actions.getTotalPerSecond.ReturnValue> = ConfigParameter<config> & QueryParameter<Actions.getTotalPerSecond.ReturnValue, DefaultError, selectData, Actions.getTotalPerSecond.QueryKey<config>> & ExactPartial<Omit<Actions.getTotalPerSecond.queryOptions.Parameters<config, selectData>, 'query'>>;
91
91
  type ReturnValue<selectData = Actions.getTotalPerSecond.ReturnValue> = UseQueryReturnType<selectData, Error>;
92
92
  }
93
+ /**
94
+ * Hook for getting the reward information for a specific account.
95
+ *
96
+ * @example
97
+ * ```tsx
98
+ * import { Hooks } from 'tempo.ts/wagmi'
99
+ *
100
+ * function App() {
101
+ * const { data, isLoading } = Hooks.reward.useUserRewardInfo({
102
+ * token: '0x20c0000000000000000000000000000000000001',
103
+ * account: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
104
+ * })
105
+ *
106
+ * if (isLoading) return <div>Loading...</div>
107
+ * return (
108
+ * <div>
109
+ * <div>Recipient: {data?.rewardRecipient}</div>
110
+ * <div>Reward per token: {data?.rewardPerToken.toString()}</div>
111
+ * <div>Reward balance: {data?.rewardBalance.toString()}</div>
112
+ * </div>
113
+ * )
114
+ * }
115
+ * ```
116
+ *
117
+ * @param parameters - Parameters.
118
+ * @returns Query result with reward information (recipient, rewardPerToken, rewardBalance).
119
+ */
120
+ export declare function useUserRewardInfo<config extends Config = ResolvedRegister['config'], selectData = Actions.getUserRewardInfo.ReturnValue>(parameters?: useUserRewardInfo.Parameters<config, selectData>): UseQueryReturnType<selectData, Error>;
121
+ export declare namespace useUserRewardInfo {
122
+ type Parameters<config extends Config = ResolvedRegister['config'], selectData = Actions.getUserRewardInfo.ReturnValue> = ConfigParameter<config> & QueryParameter<Actions.getUserRewardInfo.ReturnValue, DefaultError, selectData, Actions.getUserRewardInfo.QueryKey<config>> & ExactPartial<Omit<Actions.getUserRewardInfo.queryOptions.Parameters<config, selectData>, 'query'>>;
123
+ type ReturnValue<selectData = Actions.getUserRewardInfo.ReturnValue> = UseQueryReturnType<selectData, Error>;
124
+ }
93
125
  /**
94
126
  * Hook for setting the reward recipient for a token holder.
95
127
  *
@@ -1 +1 @@
1
- {"version":3,"file":"reward.d.ts","sourceRoot":"","sources":["../../../src/wagmi/Hooks/reward.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reward.d.ts","sourceRoot":"","sources":["../../../src/wagmi/Hooks/reward.ts"],"names":[],"mappings":"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"}
@@ -101,6 +101,45 @@ export function useGetTotalPerSecond(parameters = {}) {
101
101
  const enabled = Boolean(token && (query.enabled ?? true));
102
102
  return useQuery({ ...query, ...options, enabled });
103
103
  }
104
+ /**
105
+ * Hook for getting the reward information for a specific account.
106
+ *
107
+ * @example
108
+ * ```tsx
109
+ * import { Hooks } from 'tempo.ts/wagmi'
110
+ *
111
+ * function App() {
112
+ * const { data, isLoading } = Hooks.reward.useUserRewardInfo({
113
+ * token: '0x20c0000000000000000000000000000000000001',
114
+ * account: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
115
+ * })
116
+ *
117
+ * if (isLoading) return <div>Loading...</div>
118
+ * return (
119
+ * <div>
120
+ * <div>Recipient: {data?.rewardRecipient}</div>
121
+ * <div>Reward per token: {data?.rewardPerToken.toString()}</div>
122
+ * <div>Reward balance: {data?.rewardBalance.toString()}</div>
123
+ * </div>
124
+ * )
125
+ * }
126
+ * ```
127
+ *
128
+ * @param parameters - Parameters.
129
+ * @returns Query result with reward information (recipient, rewardPerToken, rewardBalance).
130
+ */
131
+ export function useUserRewardInfo(parameters = {}) {
132
+ const { account, query = {}, token } = parameters;
133
+ const config = useConfig(parameters);
134
+ const chainId = useChainId({ config });
135
+ const options = Actions.getUserRewardInfo.queryOptions(config, {
136
+ ...parameters,
137
+ chainId: parameters.chainId ?? chainId,
138
+ query: undefined,
139
+ });
140
+ const enabled = Boolean(token && account && (query.enabled ?? true));
141
+ return useQuery({ ...query, ...options, enabled });
142
+ }
104
143
  /**
105
144
  * Hook for setting the reward recipient for a token holder.
106
145
  *
@@ -1 +1 @@
1
- {"version":3,"file":"reward.js","sourceRoot":"","sources":["../../../src/wagmi/Hooks/reward.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reward.js","sourceRoot":"","sources":["../../../src/wagmi/Hooks/reward.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tempo.ts",
3
3
  "type": "module",
4
- "version": "0.8.0",
4
+ "version": "0.8.1",
5
5
  "dependencies": {
6
6
  "@remix-run/fetch-router": "~0.12.0",
7
7
  "idb-keyval": "^6.2.2",
@@ -123,6 +123,90 @@ describe('getTotalPerSecond', () => {
123
123
  })
124
124
  })
125
125
 
126
+ describe('getUserRewardInfo', () => {
127
+ test('default', async () => {
128
+ const { token } = await setupToken(clientWithAccount)
129
+
130
+ const info = await actions.reward.getUserRewardInfo(clientWithAccount, {
131
+ token,
132
+ account: account.address,
133
+ })
134
+
135
+ expect(info.rewardRecipient).toBeDefined()
136
+ expect(info.rewardPerToken).toBeDefined()
137
+ expect(info.rewardBalance).toBeDefined()
138
+ expect(info.rewardRecipient).toBe(
139
+ '0x0000000000000000000000000000000000000000',
140
+ )
141
+ expect(info.rewardPerToken).toBe(0n)
142
+ expect(info.rewardBalance).toBe(0n)
143
+ })
144
+
145
+ test('behavior: after opting in', async () => {
146
+ const { token } = await setupToken(clientWithAccount)
147
+
148
+ // Opt in to rewards
149
+ await actions.reward.setRecipientSync(clientWithAccount, {
150
+ recipient: account.address,
151
+ token,
152
+ })
153
+
154
+ const info = await actions.reward.getUserRewardInfo(clientWithAccount, {
155
+ token,
156
+ account: account.address,
157
+ })
158
+
159
+ expect(info.rewardRecipient).toBe(account.address)
160
+ expect(info.rewardPerToken).toBe(0n)
161
+ expect(info.rewardBalance).toBe(0n)
162
+ })
163
+
164
+ test('behavior: with active rewards after distribution', async () => {
165
+ const { token } = await setupToken(clientWithAccount)
166
+
167
+ // Opt in to rewards
168
+ await actions.reward.setRecipientSync(clientWithAccount, {
169
+ recipient: account.address,
170
+ token,
171
+ })
172
+
173
+ // Mint reward tokens
174
+ const rewardAmount = parseUnits('100', 6)
175
+ await actions.token.mintSync(clientWithAccount, {
176
+ amount: rewardAmount,
177
+ to: account.address,
178
+ token,
179
+ })
180
+
181
+ // Start immediate reward to distribute rewards
182
+ await actions.reward.startSync(clientWithAccount, {
183
+ amount: rewardAmount,
184
+ token,
185
+ })
186
+
187
+ // Trigger reward accrual by transferring
188
+ await actions.token.transferSync(clientWithAccount, {
189
+ amount: 1n,
190
+ to: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
191
+ token,
192
+ })
193
+
194
+ // Check reward info shows accumulated rewards
195
+ const info = await actions.reward.getUserRewardInfo(clientWithAccount, {
196
+ token,
197
+ account: account.address,
198
+ })
199
+
200
+ expect(info.rewardRecipient).toBe(account.address)
201
+ expect(info.rewardPerToken).toBeGreaterThan(0n)
202
+ expect(info.rewardBalance).toBeGreaterThan(0n)
203
+ // Should have approximately the full reward amount (minus the 1 token transferred)
204
+ expect(info.rewardBalance).toBeGreaterThanOrEqual(
205
+ rewardAmount - parseUnits('1', 6),
206
+ )
207
+ })
208
+ })
209
+
126
210
  describe('setRecipientSync', () => {
127
211
  test('default', async () => {
128
212
  const { token } = await setupToken(clientWithAccount)
@@ -276,6 +276,79 @@ export namespace getTotalPerSecond {
276
276
  }
277
277
  }
278
278
 
279
+ /**
280
+ * Gets the reward information for a specific account.
281
+ *
282
+ * Returns the reward recipient address, reward per token value, and accumulated reward balance for the specified account.
283
+ * This information includes:
284
+ * - `rewardRecipient`: The address designated to receive rewards (zero address if opted out)
285
+ * - `rewardPerToken`: The reward per token value for this account
286
+ * - `rewardBalance`: The accumulated reward balance waiting to be claimed
287
+ *
288
+ * @example
289
+ * ```ts
290
+ * import { createClient, http } from 'viem'
291
+ * import { tempo } from 'tempo.ts/chains'
292
+ * import { Actions } from 'tempo.ts/viem'
293
+ *
294
+ * const client = createClient({
295
+ * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
296
+ * transport: http(),
297
+ * })
298
+ *
299
+ * const info = await Actions.reward.getUserRewardInfo(client, {
300
+ * token: '0x20c0000000000000000000000000000000000001',
301
+ * account: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
302
+ * })
303
+ * ```
304
+ *
305
+ * @param client - Client.
306
+ * @param parameters - Parameters.
307
+ * @returns The user's reward information (recipient, rewardPerToken, rewardBalance).
308
+ */
309
+ export async function getUserRewardInfo<chain extends Chain | undefined>(
310
+ client: Client<Transport, chain>,
311
+ parameters: getUserRewardInfo.Parameters,
312
+ ): Promise<getUserRewardInfo.ReturnValue> {
313
+ return readContract(client, {
314
+ ...parameters,
315
+ ...getUserRewardInfo.call(parameters),
316
+ })
317
+ }
318
+
319
+ export namespace getUserRewardInfo {
320
+ export type Parameters = ReadParameters & Args
321
+
322
+ export type Args = {
323
+ /** The account address to query reward info for */
324
+ account: Address
325
+ /** The TIP20 token address */
326
+ token: Address
327
+ }
328
+
329
+ export type ReturnValue = ReadContractReturnType<
330
+ typeof Abis.tip20,
331
+ 'userRewardInfo',
332
+ never
333
+ >
334
+
335
+ /**
336
+ * Defines a call to the `userRewardInfo` function.
337
+ *
338
+ * @param args - Arguments.
339
+ * @returns The call.
340
+ */
341
+ export function call(args: Args) {
342
+ const { account, token } = args
343
+ return defineCall({
344
+ address: token,
345
+ abi: Abis.tip20,
346
+ args: [account],
347
+ functionName: 'userRewardInfo',
348
+ })
349
+ }
350
+ }
351
+
279
352
  /**
280
353
  * Sets or changes the reward recipient for a token holder.
281
354
  *
@@ -1591,6 +1591,60 @@ export type Decorator<
1591
1591
  ) => () => void
1592
1592
  }
1593
1593
  reward: {
1594
+ /**
1595
+ * Claims accumulated rewards for a recipient.
1596
+ *
1597
+ * @example
1598
+ * ```ts
1599
+ * import { createClient, http } from 'viem'
1600
+ * import { privateKeyToAccount } from 'viem/accounts'
1601
+ * import { tempo } from 'tempo.ts/chains'
1602
+ * import { tempoActions } from 'tempo.ts/viem'
1603
+ *
1604
+ * const client = createClient({
1605
+ * account: privateKeyToAccount('0x...'),
1606
+ * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1607
+ * transport: http(),
1608
+ * }).extend(tempoActions())
1609
+ *
1610
+ * const hash = await client.reward.claim({
1611
+ * token: '0x20c0000000000000000000000000000000000001',
1612
+ * })
1613
+ * ```
1614
+ *
1615
+ * @param parameters - Parameters.
1616
+ * @returns The transaction hash.
1617
+ */
1618
+ claim: (
1619
+ parameters: rewardActions.claim.Parameters<chain, account>,
1620
+ ) => Promise<rewardActions.claim.ReturnValue>
1621
+ /**
1622
+ * Claims accumulated rewards for a recipient and waits for confirmation.
1623
+ *
1624
+ * @example
1625
+ * ```ts
1626
+ * import { createClient, http } from 'viem'
1627
+ * import { privateKeyToAccount } from 'viem/accounts'
1628
+ * import { tempo } from 'tempo.ts/chains'
1629
+ * import { tempoActions } from 'tempo.ts/viem'
1630
+ *
1631
+ * const client = createClient({
1632
+ * account: privateKeyToAccount('0x...'),
1633
+ * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1634
+ * transport: http(),
1635
+ * }).extend(tempoActions())
1636
+ *
1637
+ * const result = await client.reward.claimSync({
1638
+ * token: '0x20c0000000000000000000000000000000000001',
1639
+ * })
1640
+ * ```
1641
+ *
1642
+ * @param parameters - Parameters.
1643
+ * @returns The amount claimed and transaction receipt.
1644
+ */
1645
+ claimSync: (
1646
+ parameters: rewardActions.claimSync.Parameters<chain, account>,
1647
+ ) => Promise<rewardActions.claimSync.ReturnValue>
1594
1648
  /**
1595
1649
  * Gets the total reward per second rate for all active streams.
1596
1650
  *
@@ -1616,6 +1670,32 @@ export type Decorator<
1616
1670
  getTotalPerSecond: (
1617
1671
  parameters: rewardActions.getTotalPerSecond.Parameters,
1618
1672
  ) => Promise<rewardActions.getTotalPerSecond.ReturnValue>
1673
+ /**
1674
+ * Gets the reward information for a specific account.
1675
+ *
1676
+ * @example
1677
+ * ```ts
1678
+ * import { createClient, http } from 'viem'
1679
+ * import { tempo } from 'tempo.ts/chains'
1680
+ * import { tempoActions } from 'tempo.ts/viem'
1681
+ *
1682
+ * const client = createClient({
1683
+ * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })
1684
+ * transport: http(),
1685
+ * }).extend(tempoActions())
1686
+ *
1687
+ * const info = await client.reward.getUserRewardInfo({
1688
+ * token: '0x20c0000000000000000000000000000000000001',
1689
+ * account: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
1690
+ * })
1691
+ * ```
1692
+ *
1693
+ * @param parameters - Parameters.
1694
+ * @returns The user's reward information (recipient, rewardPerToken, rewardBalance).
1695
+ */
1696
+ getUserRewardInfo: (
1697
+ parameters: rewardActions.getUserRewardInfo.Parameters,
1698
+ ) => Promise<rewardActions.getUserRewardInfo.ReturnValue>
1619
1699
  /**
1620
1700
  * Sets or changes the reward recipient for a token holder.
1621
1701
  *
@@ -2986,8 +3066,12 @@ export function decorator() {
2986
3066
  policyActions.watchBlacklistUpdated(client, parameters),
2987
3067
  },
2988
3068
  reward: {
3069
+ claim: (parameters) => rewardActions.claim(client, parameters),
3070
+ claimSync: (parameters) => rewardActions.claimSync(client, parameters),
2989
3071
  getTotalPerSecond: (parameters) =>
2990
3072
  rewardActions.getTotalPerSecond(client, parameters),
3073
+ getUserRewardInfo: (parameters) =>
3074
+ rewardActions.getUserRewardInfo(client, parameters),
2991
3075
  setRecipient: (parameters) =>
2992
3076
  rewardActions.setRecipient(client, parameters),
2993
3077
  setRecipientSync: (parameters) =>
@@ -89,6 +89,42 @@ describe('getTotalPerSecond', () => {
89
89
  })
90
90
  })
91
91
 
92
+ describe('getUserRewardInfo', () => {
93
+ test('default', async () => {
94
+ const { token } = await setupToken()
95
+
96
+ const account = getAccount(config)
97
+
98
+ const info = await actions.getUserRewardInfo(config, {
99
+ token,
100
+ account: account.address!,
101
+ })
102
+
103
+ expect(info.rewardRecipient).toBeDefined()
104
+ expect(info.rewardPerToken).toBeDefined()
105
+ expect(info.rewardBalance).toBeDefined()
106
+ })
107
+
108
+ describe('queryOptions', () => {
109
+ test('default', async () => {
110
+ const { token } = await setupToken()
111
+
112
+ const account = getAccount(config)
113
+
114
+ const options = actions.getUserRewardInfo.queryOptions(config, {
115
+ token,
116
+ account: account.address!,
117
+ })
118
+
119
+ const info = await queryClient.fetchQuery(options)
120
+
121
+ expect(info.rewardRecipient).toBeDefined()
122
+ expect(info.rewardPerToken).toBeDefined()
123
+ expect(info.rewardBalance).toBeDefined()
124
+ })
125
+ })
126
+ })
127
+
92
128
  describe('setRecipientSync', () => {
93
129
  test('default', async () => {
94
130
  const { token } = await setupToken()
@@ -205,6 +205,97 @@ export namespace getTotalPerSecond {
205
205
  }
206
206
  }
207
207
 
208
+ /**
209
+ * Gets the reward information for a specific account.
210
+ *
211
+ * @example
212
+ * ```ts
213
+ * import { createConfig, http } from '@wagmi/core'
214
+ * import { tempo } from 'tempo.ts/chains'
215
+ * import { Actions } from 'tempo.ts/wagmi'
216
+ *
217
+ * const config = createConfig({
218
+ * chains: [tempo({ feeToken: '0x20c0000000000000000000000000000000000001' })],
219
+ * transports: {
220
+ * [tempo.id]: http(),
221
+ * },
222
+ * })
223
+ *
224
+ * const info = await Actions.reward.getUserRewardInfo(config, {
225
+ * token: '0x20c0000000000000000000000000000000000001',
226
+ * account: '0xa5cc3c03994DB5b0d9A5eEdD10CabaB0813678AC',
227
+ * })
228
+ * ```
229
+ *
230
+ * @param config - Config.
231
+ * @param parameters - Parameters.
232
+ * @returns The user's reward information (recipient, rewardPerToken, rewardBalance).
233
+ */
234
+ export function getUserRewardInfo<config extends Config>(
235
+ config: config,
236
+ parameters: getUserRewardInfo.Parameters<config>,
237
+ ) {
238
+ const { chainId, ...rest } = parameters
239
+ const client = config.getClient({ chainId })
240
+ return viem_Actions.getUserRewardInfo(client, rest)
241
+ }
242
+
243
+ export namespace getUserRewardInfo {
244
+ export type Parameters<config extends Config> = ChainIdParameter<config> &
245
+ viem_Actions.getUserRewardInfo.Parameters
246
+
247
+ export type ReturnValue = viem_Actions.getUserRewardInfo.ReturnValue
248
+
249
+ export function queryKey<config extends Config>(
250
+ parameters: Parameters<config>,
251
+ ) {
252
+ return ['getUserRewardInfo', parameters] as const
253
+ }
254
+
255
+ export type QueryKey<config extends Config> = ReturnType<
256
+ typeof queryKey<config>
257
+ >
258
+
259
+ export function queryOptions<config extends Config, selectData = ReturnValue>(
260
+ config: Config,
261
+ parameters: queryOptions.Parameters<config, selectData>,
262
+ ): queryOptions.ReturnValue<config, selectData> {
263
+ const { query, ...rest } = parameters
264
+ return {
265
+ ...query,
266
+ queryKey: queryKey(rest),
267
+ async queryFn({ queryKey }) {
268
+ const [, parameters] = queryKey
269
+ return await getUserRewardInfo(config, parameters)
270
+ },
271
+ }
272
+ }
273
+
274
+ export declare namespace queryOptions {
275
+ export type Parameters<
276
+ config extends Config,
277
+ selectData = getUserRewardInfo.ReturnValue,
278
+ > = getUserRewardInfo.Parameters<config> & {
279
+ query?:
280
+ | Omit<ReturnValue<config, selectData>, 'queryKey' | 'queryFn'>
281
+ | undefined
282
+ }
283
+
284
+ export type ReturnValue<
285
+ config extends Config,
286
+ selectData = getUserRewardInfo.ReturnValue,
287
+ > = RequiredBy<
288
+ Query.QueryOptions<
289
+ getUserRewardInfo.ReturnValue,
290
+ Query.DefaultError,
291
+ selectData,
292
+ getUserRewardInfo.QueryKey<config>
293
+ >,
294
+ 'queryKey' | 'queryFn'
295
+ >
296
+ }
297
+ }
298
+
208
299
  /**
209
300
  * Sets or changes the reward recipient for a token holder.
210
301
  *
@@ -1,3 +1,4 @@
1
+ import { getAccount } from '@wagmi/core'
1
2
  import type { Address } from 'viem'
2
3
  import { describe, expect, test, vi } from 'vitest'
3
4
  import { useConnect } from 'wagmi'
@@ -53,6 +54,77 @@ describe('useGetTotalPerSecond', () => {
53
54
  })
54
55
  })
55
56
 
57
+ describe('useUserRewardInfo', () => {
58
+ test('default', async () => {
59
+ const { token } = await setupToken()
60
+
61
+ const account = getAccount(config).address
62
+
63
+ const { result } = await renderHook(() =>
64
+ hooks.useUserRewardInfo({
65
+ token,
66
+ account,
67
+ }),
68
+ )
69
+
70
+ await vi.waitFor(() => expect(result.current.isSuccess).toBeTruthy())
71
+
72
+ expect(result.current.data?.rewardRecipient).toBeDefined()
73
+ expect(result.current.data?.rewardPerToken).toBeDefined()
74
+ expect(result.current.data?.rewardBalance).toBeDefined()
75
+ })
76
+
77
+ test('reactivity: account and token parameters', async () => {
78
+ const { result, rerender } = await renderHook(
79
+ (props) =>
80
+ hooks.useUserRewardInfo({
81
+ token: props?.token,
82
+ account: props?.account,
83
+ }),
84
+ {
85
+ initialProps: {
86
+ token: undefined as Address | undefined,
87
+ account: undefined as Address | undefined,
88
+ },
89
+ },
90
+ )
91
+
92
+ await vi.waitFor(() => result.current.fetchStatus === 'idle')
93
+
94
+ // Should be disabled when both token and account are undefined
95
+ expect(result.current.data).toBeUndefined()
96
+ expect(result.current.isPending).toBe(true)
97
+ expect(result.current.isEnabled).toBe(false)
98
+
99
+ // Setup token (this also connects the account)
100
+ const { token } = await setupToken()
101
+
102
+ // Set token only (account still undefined)
103
+ rerender({ token, account: undefined })
104
+
105
+ await vi.waitFor(() => result.current.fetchStatus === 'idle')
106
+
107
+ // Should still be disabled when account is undefined
108
+ expect(result.current.data).toBeUndefined()
109
+ expect(result.current.isPending).toBe(true)
110
+ expect(result.current.isEnabled).toBe(false)
111
+
112
+ // Get account from config (already connected by setupToken)
113
+ const account = getAccount(config).address
114
+
115
+ // Set both token and account
116
+ rerender({ token, account })
117
+
118
+ await vi.waitFor(() => expect(result.current.isSuccess).toBeTruthy())
119
+
120
+ // Should now be enabled and have data
121
+ expect(result.current.isEnabled).toBe(true)
122
+ expect(result.current.data?.rewardRecipient).toBeDefined()
123
+ expect(result.current.data?.rewardPerToken).toBeDefined()
124
+ expect(result.current.data?.rewardBalance).toBeDefined()
125
+ })
126
+ })
127
+
56
128
  describe('useSetRecipientSync', () => {
57
129
  test('default', async () => {
58
130
  const { result } = await renderHook(() => ({