Contract Integration
Getting V3 Contract ABIs
import ManagerV3ABI from "yieldfi-sdk/abis/v3/Manager.json";
import VaultABI from "yieldfi-sdk/abis/v3/Vault.json";import ManagerV3ABI from "./abis/v3/Manager.json";
import VaultABI from "./abis/v3/Vault.json";Deposit to Vault
import {
connectManagerV3,
connectVault,
getContractAddresses,
Chain,
} from "yieldfi-sdk";
import { ethers } from "ethers";
import ManagerV3ABI from "yieldfi-sdk/abis/v3/Manager.json";
// Request Redemption (V3)
//Request redemption from a v3 vault. Shares are locked in a queue until processed.
//### Using Wagmi
import { connectManagerV3, getContractAddresses, Chain } from "yieldfi-sdk";
import { ethers } from "ethers";
import { useAccount, useWalletClient } from "wagmi";
import ManagerV3ABI from "yieldfi-sdk/abis/v3/Manager.json";
function RedemptionButton() {
const { address } = useAccount();
const { data: walletClient } = useWalletClient();
const requestRedemption = async (
vaultAddress: string,
shares: bigint,
receiver?: string
) => {
if (!walletClient || !address) {
throw new Error("Wallet not connected");
}
const provider = new ethers.BrowserProvider(walletClient);
const signer = await provider.getSigner();
const contracts = getContractAddresses(Chain.ETHEREUM);
const managerV3 = connectManagerV3(contracts.manager, ManagerV3ABI, signer);
// Request redemption (shares are locked, not burned)
const redeemTx = await managerV3.requestRedemption(
vaultAddress,
shares,
address, // Owner
receiver || address // Receiver (defaults to owner)
);
const receipt = await redeemTx.wait();
console.log(`Redemption requested: ${receipt.hash}`);
return receipt;
};
return (
<button
onClick={() =>
requestRedemption(
"0x5bE91d34FeFbB7554497a74e25dC6df96bFef5DB",
ethers.parseUnits("100", 18)
)
}
>
Request Redemption
</button>
);
}Using Browser Provider
Check Vault Balance (V3)
Using Wagmi
Using Browser Provider
Check Redemption Queue (V3)
Using Wagmi
Using Browser Provider
Cancel Redemption (V3)
Using Wagmi
Using Browser Provider
Process Redemption (V3) - Admin/Operator Only
Using Wagmi
Using Browser Provider
Complete V3 Integration Example
Using Browser Provider Directly
V3 Contract Features
Manager V3 Contract
Vault Contract (ERC-4626)
Getting Contract Addresses
Type Safety
Wallet Integration Best Practices
Always Check Wallet Connection
Handle User Rejection
Request Account Access
Last updated