import { useSendCalls } from "wagmi";
import { encodeFunctionData, parseUnits } from "viem";
import { useAbstractClient } from "@abstract-foundation/agw-react";
export function SendCalls() {
const { data: abstractClient } = useAbstractClient();
const { sendCalls } = useSendCalls();
return (
<button
onClick={() => {
if (!abstractClient) return;
sendCalls({
calls: [
// 1 - Approval
{
to: TOKEN_ADDRESS,
data: encodeFunctionData({
abi: erc20Abi,
functionName: "approve",
args: [ROUTER_ADDRESS, parseUnits("100", 18)],
}),
},
// 2 - Swap
{
to: ROUTER_ADDRESS,
data: encodeFunctionData({
abi: routerAbi,
functionName: "swapExactTokensForETH",
args: [
parseUnits("100", 18),
BigInt(0),
[TOKEN_ADDRESS, WETH_ADDRESS],
abstractClient.account.address,
BigInt(Math.floor(Date.now() / 1000) + 60 * 20),
],
}),
},
],
});
}}
>
Send Batch Calls
</button>
);
}