Repay a loan
This guide explains how to repay debt owed to an inventory pool
Prerequisites
A whitelisted borrower with current debt on an inventory pool
Process Overview
Approve the inventory pool contract to spend your tokens
Call the
repay()function directly on the inventory pool contract
Step 1: Approve Token Spending
First, get the token address from the inventory pool and approve it to spend your tokens:
// Using ethers.js
const inventoryPoolContract = new ethers.Contract(
inventoryPoolAddress,
[
"function asset() view returns (address)"
],
signer
);
// Get the token address from the inventory pool
const tokenAddress = await inventoryPoolContract.asset();
// Set up the token contract
const tokenContract = new ethers.Contract(
tokenAddress,
[
"function approve(address spender, uint256 amount) returns (bool)",
"function decimals() view returns (uint8)"
],
signer
);
const decimals = await tokenContract.decimals();
const amount = ethers.parseUnits("1000.0", decimals);
// Approve the inventory pool to spend your tokens
const tx = await tokenContract.approve(inventoryPoolAddress, amount);
await tx.wait();Step 2: Repay the Loan
After approval, call the repay() function on the inventory pool contract. Note that the borrower parameter can be any address that has an active loan - it doesn't have to be the caller of the function:
// Using ethers.js
const inventoryPoolContract = new ethers.Contract(
inventoryPoolAddress,
[
"function repay(uint256 amount, address borrower)"
],
signer
);
// Repay the loan
const tx = await inventoryPoolContract.repay(amount, borrowerAddress);
await tx.wait();Important Notes
If repayment amount exceeds debt, the inventory pool will take the exact amount owed
Last updated