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.
- package/CHANGELOG.md +6 -0
- package/dist/viem/Actions/reward.d.ts +80 -0
- package/dist/viem/Actions/reward.d.ts.map +1 -1
- package/dist/viem/Actions/reward.js +54 -0
- package/dist/viem/Actions/reward.js.map +1 -1
- package/dist/viem/Decorator.d.ts +74 -0
- package/dist/viem/Decorator.d.ts.map +1 -1
- package/dist/viem/Decorator.js +3 -0
- package/dist/viem/Decorator.js.map +1 -1
- package/dist/wagmi/Actions/reward.d.ts +44 -0
- package/dist/wagmi/Actions/reward.d.ts.map +1 -1
- package/dist/wagmi/Actions/reward.js +49 -0
- package/dist/wagmi/Actions/reward.js.map +1 -1
- package/dist/wagmi/Hooks/reward.d.ts +32 -0
- package/dist/wagmi/Hooks/reward.d.ts.map +1 -1
- package/dist/wagmi/Hooks/reward.js +39 -0
- package/dist/wagmi/Hooks/reward.js.map +1 -1
- package/package.json +1 -1
- package/src/viem/Actions/reward.test.ts +84 -0
- package/src/viem/Actions/reward.ts +73 -0
- package/src/viem/Decorator.ts +84 -0
- package/src/wagmi/Actions/reward.test.ts +36 -0
- package/src/wagmi/Actions/reward.ts +91 -0
- package/src/wagmi/Hooks/reward.test.ts +72 -0
- package/src/wagmi/Hooks/reward.ts +68 -0
|
@@ -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
|
@@ -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
|
*
|
package/src/viem/Decorator.ts
CHANGED
|
@@ -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(() => ({
|