useWriteContract
Description
Returns
Example
import { useWriteContract } from "@cometh/connect-react-hooks";
import { useState } from "react";
import { parseEther, Address } from "viem";
import { abi } from './contractABI';
export const ContractWriter = () => {
const { writeContract, isLoading, isError, error, isSuccess, data } = useWriteContract();
const [recipient, setRecipient] = useState<Address>();
const [amount, setAmount] = useState<string>("0");
const handleWriteContract = async () => {
if (recipient) {
try {
const hash = await writeContract({
abi,
address: '0xYourContractAddress',
functionName: 'transfer',
args: [recipient, parseEther(amount)],
});
console.log("Contract write successful! Hash:", hash);
} catch (error) {
console.error("Error writing to contract:", error);
}
}
};
return (
<div>
<input
placeholder="Recipient address"
onChange={(e) => setRecipient(e.target.value as Address)}
/>
<input
type="number"
placeholder="Amount in ETH"
onChange={(e) => setAmount(e.target.value)}
/>
<button onClick={handleWriteContract} disabled={isLoading}>
Write to Contract
</button>
{isError && <p>Error: {error.message}</p>}
{isSuccess && <p>Contract write successful! Hash: {data}</p>}
</div>
);
};
Last updated