Skip to content

Commit fa41e6c

Browse files
committed
chore: vue
1 parent 431ed24 commit fa41e6c

33 files changed

+346
-211
lines changed

packages/react/src/hooks/codegen/createUseWriteContract.ts

Lines changed: 132 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,81 @@ export type CreateUseWriteContractReturnType<
6363
wagmi_UseWriteContractReturnType<config, context>,
6464
'writeContract' | 'writeContractAsync'
6565
> & {
66+
mutate: <
67+
const abi2 extends abi,
68+
name extends functionName extends ContractFunctionName<
69+
abi,
70+
stateMutability
71+
>
72+
? functionName
73+
: ContractFunctionName<abi, stateMutability>,
74+
args extends ContractFunctionArgs<abi2, stateMutability, name>,
75+
chainId extends config['chains'][number]['id'],
76+
>(
77+
variables: Variables<
78+
abi2,
79+
functionName,
80+
name,
81+
args,
82+
config,
83+
chainId,
84+
address
85+
>,
86+
options?:
87+
| MutateOptions<
88+
WriteContractData,
89+
WriteContractErrorType,
90+
WriteContractVariables<
91+
abi2,
92+
name,
93+
args,
94+
config,
95+
chainId,
96+
// use `functionName` to make sure it's not union of all possible function names
97+
name
98+
>,
99+
context
100+
>
101+
| undefined,
102+
) => void
103+
mutateAsync: <
104+
const abi2 extends abi,
105+
name extends functionName extends ContractFunctionName<
106+
abi,
107+
stateMutability
108+
>
109+
? functionName
110+
: ContractFunctionName<abi, stateMutability>,
111+
args extends ContractFunctionArgs<abi2, stateMutability, name>,
112+
chainId extends config['chains'][number]['id'],
113+
>(
114+
variables: Variables<
115+
abi2,
116+
functionName,
117+
name,
118+
args,
119+
config,
120+
chainId,
121+
address
122+
>,
123+
options?:
124+
| MutateOptions<
125+
WriteContractData,
126+
WriteContractErrorType,
127+
WriteContractVariables<
128+
abi2,
129+
name,
130+
args,
131+
config,
132+
chainId,
133+
// use `functionName` to make sure it's not union of all possible function names
134+
name
135+
>,
136+
context
137+
>
138+
| undefined,
139+
) => Promise<WriteContractData>
140+
/** @deprecated use `mutate` instead */
66141
writeContract: <
67142
const abi2 extends abi,
68143
name extends functionName extends ContractFunctionName<
@@ -100,6 +175,7 @@ export type CreateUseWriteContractReturnType<
100175
>
101176
| undefined,
102177
) => void
178+
/** @deprecated use `mutateAsync` instead */
103179
writeContractAsync: <
104180
const abi2 extends abi,
105181
name extends functionName extends ContractFunctionName<
@@ -158,76 +234,78 @@ export function createUseWriteContract<
158234
const result = useWriteContract(parameters)
159235
const configChainId = useChainId({ config })
160236
type Args = Parameters<wagmi_UseWriteContractReturnType['writeContract']>
161-
return {
162-
...(result as any),
163-
writeContract: useCallback(
164-
(...args: Args) => {
165-
const chainId = (() => {
166-
if (args[0].chainId) return args[0].chainId
167-
return configChainId
168-
})()
169-
const variables = {
170-
...(args[0] as any),
171-
address: chainId ? props.address?.[chainId] : undefined,
172-
...(props.functionName
173-
? { functionName: props.functionName }
174-
: {}),
175-
abi: props.abi,
176-
}
177-
result.writeContract(variables, args[1] as any)
178-
},
179-
[props, configChainId, result.writeContract],
180-
),
181-
writeContractAsync: useCallback(
182-
(...args: Args) => {
183-
const chainId = (() => {
184-
if (args[0].chainId) return args[0].chainId
185-
return configChainId
186-
})()
187-
const variables = {
188-
...(args[0] as any),
189-
address: chainId ? props.address?.[chainId] : undefined,
190-
...(props.functionName
191-
? { functionName: props.functionName }
192-
: {}),
193-
abi: props.abi,
194-
}
195-
return result.writeContractAsync(variables, args[1] as any)
196-
},
197-
[props, configChainId, result.writeContractAsync],
198-
),
199-
}
200-
}
201-
202-
return (parameters) => {
203-
const result = useWriteContract(parameters)
204-
type Args = Parameters<wagmi_UseWriteContractReturnType['writeContract']>
205-
return {
206-
...(result as any),
207-
writeContract: useCallback(
237+
const mutate = useCallback(
208238
(...args: Args) => {
239+
const chainId = (() => {
240+
if (args[0].chainId) return args[0].chainId
241+
return configChainId
242+
})()
209243
const variables = {
210244
...(args[0] as any),
211-
...(props.address ? { address: props.address } : {}),
245+
address: chainId ? props.address?.[chainId] : undefined,
212246
...(props.functionName ? { functionName: props.functionName } : {}),
213247
abi: props.abi,
214248
}
215249
result.writeContract(variables, args[1] as any)
216250
},
217-
[props, result.writeContract],
218-
),
219-
writeContractAsync: useCallback(
251+
[props, configChainId, result.writeContract],
252+
)
253+
const mutateAsync = useCallback(
220254
(...args: Args) => {
255+
const chainId = (() => {
256+
if (args[0].chainId) return args[0].chainId
257+
return configChainId
258+
})()
221259
const variables = {
222260
...(args[0] as any),
223-
...(props.address ? { address: props.address } : {}),
261+
address: chainId ? props.address?.[chainId] : undefined,
224262
...(props.functionName ? { functionName: props.functionName } : {}),
225263
abi: props.abi,
226264
}
227265
return result.writeContractAsync(variables, args[1] as any)
228266
},
229-
[props, result.writeContractAsync],
230-
),
267+
[props, configChainId, result.writeContractAsync],
268+
)
269+
return {
270+
...(result as any),
271+
mutate,
272+
mutateAsync,
273+
writeContract: mutate,
274+
writeContractAsync: mutateAsync,
275+
}
276+
}
277+
278+
return (parameters) => {
279+
const result = useWriteContract(parameters)
280+
type Args = Parameters<wagmi_UseWriteContractReturnType['writeContract']>
281+
const mutate = useCallback(
282+
(...args: Args) => {
283+
const variables = {
284+
...(args[0] as any),
285+
...(props.address ? { address: props.address } : {}),
286+
...(props.functionName ? { functionName: props.functionName } : {}),
287+
abi: props.abi,
288+
}
289+
result.mutate(variables, args[1] as any)
290+
},
291+
[props, result.mutate],
292+
)
293+
const mutateAsync = useCallback(
294+
(...args: Args) => {
295+
const variables = {
296+
...(args[0] as any),
297+
...(props.address ? { address: props.address } : {}),
298+
...(props.functionName ? { functionName: props.functionName } : {}),
299+
abi: props.abi,
300+
}
301+
return result.mutateAsync(variables, args[1] as any)
302+
},
303+
[props, result.mutateAsync],
304+
)
305+
return {
306+
...(result as any),
307+
writeContract: mutate,
308+
writeContractAsync: mutateAsync,
231309
}
232310
}
233311
}

packages/react/src/hooks/useCallsStatus.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ test('default', async () => {
1414

1515
const { result } = await renderHook(() => useSendCalls())
1616

17-
result.current.sendCalls({
17+
result.current.mutate({
1818
calls: [
1919
{
2020
data: '0xdeadbeef',

packages/react/src/hooks/useConnectionEffect.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,25 @@ test('behavior: connect and disconnect called once', async () => {
2929
useDisconnect: useDisconnect(),
3030
}))
3131

32-
result.current.useConnect.connect({
32+
result.current.useConnect.mutate({
3333
connector: result.current.useConnectors[0]!,
3434
})
3535
await vi.waitFor(() =>
3636
expect(result.current.useConnect.isSuccess).toBeTruthy(),
3737
)
3838

39-
result.current.useConnect.connect({
39+
result.current.useConnect.mutate({
4040
connector: result.current.useConnectors[0]!,
4141
})
4242
await vi.waitFor(() =>
4343
expect(result.current.useConnect.isSuccess).toBeTruthy(),
4444
)
4545

46-
result.current.useDisconnect.disconnect()
46+
result.current.useDisconnect.mutate()
4747
await vi.waitFor(() =>
4848
expect(result.current.useDisconnect.isSuccess).toBeTruthy(),
4949
)
50-
result.current.useDisconnect.disconnect()
50+
result.current.useDisconnect.mutate()
5151
await vi.waitFor(() =>
5252
expect(result.current.useDisconnect.isSuccess).toBeTruthy(),
5353
)

packages/react/src/hooks/useShowCallsStatus.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ test('default', async () => {
3030

3131
const { result } = await renderHook(() => useShowCallsStatus())
3232

33-
result.current.showCallsStatus({ id })
33+
result.current.mutate({ id })
3434
await vi.waitUntil(() => result.current.isSuccess, { timeout: 5_000 })
3535

3636
await disconnect(config, { connector })

packages/react/src/hooks/useWaitForCallsStatus.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ test('default', async () => {
1717
useWaitForCallsStatus({ id: useSendCalls_render.result.current.data?.id }),
1818
)
1919

20-
useSendCalls_render.result.current.sendCalls({
20+
useSendCalls_render.result.current.mutate({
2121
calls: [
2222
{
2323
data: '0xdeadbeef',

packages/register-tests/react/src/createUseWriteContract.test-d.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@ const useWriteErc20 = createUseWriteContract({
99
})
1010

1111
test('chain formatters', () => {
12-
const { writeContract } = useWriteErc20()
12+
const { mutate } = useWriteErc20()
1313
const shared = {
1414
address: '0x',
1515
functionName: 'transferFrom',
1616
args: ['0x', '0x', 123n],
1717
} as const
1818

19-
writeContract({
19+
mutate({
2020
...shared,
2121
feeCurrency: '0x',
2222
})
2323

2424
type Result = Parameters<
25-
typeof writeContract<
25+
typeof mutate<
2626
typeof abi.erc20,
2727
'transferFrom',
2828
[Address, Address, bigint],
@@ -32,20 +32,20 @@ test('chain formatters', () => {
3232
expectTypeOf<Result['feeCurrency']>().toEqualTypeOf<
3333
`0x${string}` | undefined
3434
>()
35-
writeContract({
35+
mutate({
3636
...shared,
3737
chainId: celo.id,
3838
feeCurrency: '0x',
3939
})
4040

41-
writeContract({
41+
mutate({
4242
...shared,
4343
chainId: mainnet.id,
4444
// @ts-expect-error
4545
feeCurrency: '0x',
4646
})
4747

48-
writeContract({
48+
mutate({
4949
...shared,
5050
chainId: optimism.id,
5151
// @ts-expect-error
@@ -54,9 +54,9 @@ test('chain formatters', () => {
5454
})
5555

5656
test('parameters: config', async () => {
57-
const { writeContract } = useWriteErc20({ config })
57+
const { mutate } = useWriteErc20({ config })
5858

59-
writeContract({
59+
mutate({
6060
address: '0x',
6161
functionName: 'transferFrom',
6262
args: ['0x', '0x', 123n],

packages/register-tests/react/src/useSendTransaction.test-d.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import { celo, mainnet, optimism } from 'wagmi/chains'
55
import type { ChainId } from './config.js'
66

77
test('chain formatters', () => {
8-
const { sendTransaction } = useSendTransaction()
8+
const { mutate } = useSendTransaction()
99

10-
sendTransaction(
10+
mutate(
1111
{
1212
to: '0x',
1313
feeCurrency: '0x',
@@ -19,24 +19,24 @@ test('chain formatters', () => {
1919
},
2020
)
2121

22-
type Result = Parameters<typeof sendTransaction<typeof celo.id>>[0]
22+
type Result = Parameters<typeof mutate<typeof celo.id>>[0]
2323
expectTypeOf<Result['feeCurrency']>().toEqualTypeOf<
2424
`0x${string}` | undefined
2525
>()
26-
sendTransaction({
26+
mutate({
2727
chainId: celo.id,
2828
to: '0x',
2929
feeCurrency: '0x',
3030
})
3131

32-
sendTransaction({
32+
mutate({
3333
chainId: mainnet.id,
3434
to: '0x',
3535
// @ts-expect-error
3636
feeCurrency: '0x',
3737
})
3838

39-
sendTransaction({
39+
mutate({
4040
chainId: optimism.id,
4141
to: '0x',
4242
// @ts-expect-error
@@ -45,9 +45,9 @@ test('chain formatters', () => {
4545
})
4646

4747
test('parameters: config', async () => {
48-
const { sendTransaction } = useSendTransaction({ config })
48+
const { mutate } = useSendTransaction({ config })
4949

50-
sendTransaction({
50+
mutate({
5151
to: '0x',
5252
// @ts-expect-error
5353
feeCurrency: '0x',

0 commit comments

Comments
 (0)