import { encodeFunctionData } from "viem";
import { mainnet } from "viem/chains";
import { prepareDepositTxData, YieldType } from "@paxoslabs/amplify-sdk";
import { usePrivy, useWallets } from "@privy-io/react-auth";
const { sendTransaction } = usePrivy();
const { wallets } = useWallets();
const wallet = wallets[0];
if (!wallet) {
throw new Error("Connect a wallet before preparing transactions.");
}
const owner = wallet.address as `0x${string}`;
const deposit = await prepareDepositTxData({
yieldType: YieldType.CORE,
recipientAddress: owner,
depositToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
depositAmount: "1000",
chainId: mainnet.id,
});
await sendTransaction({
chainId: deposit.chainId,
to: deposit.address,
data: encodeFunctionData({
abi: deposit.abi,
functionName: deposit.functionName,
args: deposit.args,
}),
});