diff --git a/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx b/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx
index 14b02f08c5..5b870534d3 100644
--- a/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx
+++ b/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx
@@ -62,14 +62,18 @@ export const CreateOrRepayLoan = ({
const [paymentAmount, setPaymentAmount] = useState(new DecimalBigNumber("0"));
const [collateralAmount, setCollateralAmount] = useState(new DecimalBigNumber("0"));
const { data: collateralBalance } = useBalance({ [networks.MAINNET]: collateralAddress || "" })[networks.MAINNET];
+ const { data: debtBalance } = useBalance({ [networks.MAINNET]: debtAddress || "" })[networks.MAINNET];
const collateralValue = Number(loanToCollateral) * Number(collateralBalance || 0);
- const maxYouCanBorrow = Math.min(Number(capacity), collateralValue);
const loanPayable = new DecimalBigNumber(
loan?.principal.add(loan?.interestDue || BigNumber.from("0")) || BigNumber.from("0"),
18,
);
+
+ const maxYouCanBorrow = loan
+ ? Math.min(Number(loanPayable), Number(debtBalance))
+ : Math.min(Number(capacity), collateralValue);
const interestRepaid = loan?.collateral.isZero() || false;
//if collateral minus principal is greater than interest... then calculate on collateral amount.
const daiCard = (
@@ -124,7 +128,7 @@ export const CreateOrRepayLoan = ({
Max you Can {loan ? "Repay" : "Borrow"}
- {formatNumber(loan ? Number(loanPayable.toString()) : maxYouCanBorrow, 2)} DAI
+ {formatNumber(maxYouCanBorrow, 2)} DAI
@@ -237,9 +241,7 @@ export const CreateOrRepayLoan = ({
);
}}
disabled={
- (loan
- ? Number(paymentAmount) > Number(loanPayable)
- : Number(paymentAmount.toString()) > maxYouCanBorrow) ||
+ Number(paymentAmount.toString()) > maxYouCanBorrow ||
Number(paymentAmount.toString()) === 0 ||
createLoan.isLoading ||
repayLoan.isLoading
@@ -250,6 +252,8 @@ export const CreateOrRepayLoan = ({
{loan
? Number(paymentAmount) > Number(loanPayable)
? `Payback Amount exceeds Loan`
+ : Number(paymentAmount.toString()) > Number(maxYouCanBorrow)
+ ? `Insufficient Funds for Repayment`
: `Repay Loan`
: Number(paymentAmount.toString()) > maxYouCanBorrow
? `Amount requested exceeds capacity`