Skip to content

Commit 689a4d0

Browse files
committed
feat: update approve and create transaction hooks to wagmi v2
1 parent b0aca10 commit 689a4d0

File tree

1 file changed

+27
-28
lines changed

1 file changed

+27
-28
lines changed

web/src/pages/NewTransaction/NavigationButtons/DepositPaymentButton.tsx

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
escrowUniversalAddress,
1010
} from "hooks/contracts/generated";
1111
import { useChainId } from "wagmi";
12-
import { erc20Abi } from 'viem'
12+
import { erc20Abi } from "viem";
1313
import { useNewTransactionContext } from "context/NewTransactionContext";
1414
import {
1515
useAccount,
@@ -62,7 +62,7 @@ const DepositPaymentButton: React.FC = () => {
6262
}, [sellerAddress, ensResult.data]);
6363

6464
const { data: allowance, refetch: refetchAllowance } = useReadContract({
65-
enabled: !isNativeTransaction,
65+
query: { enabled: !isNativeTransaction },
6666
address: sendingToken?.address,
6767
abi: erc20Abi,
6868
functionName: "allowance",
@@ -75,49 +75,46 @@ const DepositPaymentButton: React.FC = () => {
7575
}
7676
}, [allowance, transactionValue]);
7777

78-
const { config: createNativeTransactionConfig } = useSimulateEscrowUniversalCreateNativeTransaction({
79-
enabled: isNativeTransaction && ethAddressPattern.test(finalRecipientAddress),
78+
const { data: createNativeTransactionConfig } = useSimulateEscrowUniversalCreateNativeTransaction({
79+
query: {
80+
enabled: isNativeTransaction && ethAddressPattern.test(finalRecipientAddress),
81+
},
8082
args: [deadlineTimestamp, transactionUri, finalRecipientAddress],
8183
value: transactionValue,
8284
});
8385

84-
const { config: createERC20TransactionConfig } = useSimulateEscrowUniversalCreateErc20Transaction({
85-
enabled:
86-
!isNativeTransaction &&
87-
!isUndefined(allowance) &&
88-
allowance >= transactionValue &&
89-
ethAddressPattern.test(finalRecipientAddress),
90-
args: [
91-
transactionValue,
92-
sendingToken?.address,
93-
deadlineTimestamp,
94-
transactionUri,
95-
finalRecipientAddress,
96-
],
86+
const { data: createERC20TransactionConfig } = useSimulateEscrowUniversalCreateErc20Transaction({
87+
query: {
88+
enabled:
89+
!isNativeTransaction &&
90+
!isUndefined(allowance) &&
91+
allowance >= transactionValue &&
92+
ethAddressPattern.test(finalRecipientAddress),
93+
},
94+
args: [transactionValue, sendingToken?.address, deadlineTimestamp, transactionUri, finalRecipientAddress],
9795
});
9896

99-
const { writeAsync: createNativeTransaction } =
97+
const { writeContractAsync: createNativeTransaction } =
10098
useWriteEscrowUniversalCreateNativeTransaction(createNativeTransactionConfig);
101-
const { writeAsync: createERC20Transaction } = useWriteEscrowUniversalCreateErc20Transaction(createERC20TransactionConfig);
10299

103-
const { config: approveConfig } = useSimulateContract({
104-
enabled: !isNativeTransaction,
100+
const { writeContractAsync: createERC20Transaction } =
101+
useWriteEscrowUniversalCreateErc20Transaction(createERC20TransactionConfig);
102+
103+
const { data: approveConfig } = useSimulateContract({
104+
query: { enabled: !isNativeTransaction },
105105
address: sendingToken?.address,
106106
abi: erc20Abi,
107107
functionName: "approve",
108108
args: [escrowUniversalAddress?.[chainId], transactionValue],
109109
});
110110

111-
const { writeAsync: approve } = useWriteContract(approveConfig);
111+
const { writeContractAsync: approve } = useWriteContract(approveConfig);
112112

113113
const handleApproveToken = async () => {
114114
if (!isUndefined(approve)) {
115115
setIsSending(true);
116116
try {
117-
const wrapResult = await wrapWithToast(
118-
async () => await approve().then((response) => response.hash),
119-
publicClient
120-
);
117+
const wrapResult = await wrapWithToast(async () => await approve(approveConfig.request), publicClient);
121118
setIsApproved(wrapResult.status);
122119
await refetchAllowance();
123120
} catch (error) {
@@ -131,11 +128,13 @@ const DepositPaymentButton: React.FC = () => {
131128

132129
const handleCreateTransaction = async () => {
133130
const createTransaction = isNativeTransaction ? createNativeTransaction : createERC20Transaction;
134-
if (!isUndefined(createTransaction)) {
131+
const transactionConfig = isNativeTransaction ? createNativeTransactionConfig : createERC20TransactionConfig;
132+
133+
if (!isUndefined(createTransaction) && !isUndefined(transactionConfig)) {
135134
setIsSending(true);
136135
try {
137136
const wrapResult = await wrapWithToast(
138-
async () => await createTransaction().then((response) => response.hash),
137+
async () => await createTransaction(transactionConfig.request),
139138
publicClient
140139
);
141140
if (wrapResult.status) {

0 commit comments

Comments
 (0)