Abstract Global Wallet
agw-react
useWriteContractSponsored
Hook for interacting with smart contracts using paymasters to cover gas fees.
Use the useWriteContractSponsored
hook to initiate transactions on smart contracts with the transaction gas fees sponsored by a
paymaster.
It uses the useWriteContract hook from wagmi under the hood.
Import
import { useWriteContractSponsored } from "@abstract-foundation/agw-react";
Usage
import { useWriteContractSponsored } from "@abstract-foundation/agw-react";
import { getGeneralPaymasterInput } from "viem/zksync";
import type { Abi } from "viem";
const contractAbi: Abi = [
/* Your contract ABI here */
];
export default function App() {
const { writeContractSponsored, data, error, isSuccess, isPending } =
useWriteContractSponsored();
const handleWriteContract = () => {
writeContractSponsored({
abi: contractAbi,
address: "0xC4822AbB9F05646A9Ce44EFa6dDcda0Bf45595AA",
functionName: "mint",
args: ["0x273B3527BF5b607dE86F504fED49e1582dD2a1C6", BigInt(1)],
paymaster: "0x5407B5040dec3D339A9247f3654E59EEccbb6391",
paymasterInput: getGeneralPaymasterInput({
innerInput: "0x",
}),
});
};
return (
<div>
<button onClick={handleWriteContract} disabled={isPending}>
{isPending ? "Processing..." : "Execute Sponsored Transaction"}
</button>
{isSuccess && <div>Transaction Hash: {data}</div>}
{error && <div>Error: {error.message}</div>}
</div>
);
}
Returns
Returns a UseWriteContractSponsoredReturnType<Config, unknown>
.
Synchronous function to submit a transaction to a smart contract with gas fees sponsored by a paymaster.
Asynchronous function to submit a transaction to a smart contract with gas fees sponsored by a paymaster.
The transaction hash of the sponsored transaction.
The error if the transaction failed.
Indicates if the transaction was successful.
Indicates if the transaction is currently pending.
Additional context information about the transaction.
The number of times the transaction has failed.
The reason for the transaction failure, if any.
Indicates if the transaction resulted in an error.
Indicates if the hook is in an idle state (no transaction has been initiated).
Indicates if the transaction processing is paused.
A function to clean the mutation internal state (i.e., it resets the mutation to its initial state).
The current status of the transaction.
'idle'
initial status prior to the mutation function executing.'pending'
if the mutation is currently executing.'error'
if the last mutation attempt resulted in an error.'success'
if the last mutation attempt was successful.
The timestamp when the transaction was submitted.
The submitted transaction details.
The variables used for the contract write operation.
Was this page helpful?