Skip to content

Commit

Permalink
add debt balance check and insufficient funds message if not enough f…
Browse files Browse the repository at this point in the history
…unds (#3037)
  • Loading branch information
brightiron committed Dec 8, 2023
1 parent b1f23c2 commit 57b3e47
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 = (
Expand Down Expand Up @@ -124,7 +128,7 @@ export const CreateOrRepayLoan = ({
<SwapCollection UpperSwapCard={loan ? daiCard : gOHMCard} LowerSwapCard={loan ? gOHMCard : daiCard} />
<Box display="flex" justifyContent="space-between" fontSize="12px" mt="9px" lineHeight="15px">
<Box>Max you Can {loan ? "Repay" : "Borrow"}</Box>
<Box fontWeight="500">{formatNumber(loan ? Number(loanPayable.toString()) : maxYouCanBorrow, 2)} DAI</Box>
<Box fontWeight="500">{formatNumber(maxYouCanBorrow, 2)} DAI</Box>
</Box>
<Box mt="18px" mb="21px">
<Divider />
Expand Down Expand Up @@ -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
Expand All @@ -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`
Expand Down

0 comments on commit 57b3e47

Please sign in to comment.