From b1f23c298f60433ac9198502c81afbeeed12fd4b Mon Sep 17 00:00:00 2001
From: brightiron <95196612+brightiron@users.noreply.github.com>
Date: Wed, 6 Dec 2023 09:30:54 -0600
Subject: [PATCH 1/2] Spend Approval Improvements, Redirects, Tooltips (#3033)
* spend amount check on repayment
* redirect lending to /lending/cooler
* adjust labels on range chart
---
src/App.tsx | 1 +
.../Cooler/positions/CreateOrRepayLoan.tsx | 6 ++-
src/views/Range/RangeChart.tsx | 37 ++++++++++++-------
3 files changed, 29 insertions(+), 15 deletions(-)
diff --git a/src/App.tsx b/src/App.tsx
index ece322fc78..a1ff35bee4 100755
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -247,6 +247,7 @@ function App() {
} />
} />
} />
+ } />
} />
} />
diff --git a/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx b/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx
index 8a59ddc875..14b02f08c5 100644
--- a/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx
+++ b/src/views/Lending/Cooler/positions/CreateOrRepayLoan.tsx
@@ -197,7 +197,11 @@ export const CreateOrRepayLoan = ({
approve Olympus DAO to use your {loan ? "DAI" : "gOHM"} for borrowing.
>
}
- spendAmount={new DecimalBigNumber(collateralAmount.toString(), 18)}
+ spendAmount={
+ loan
+ ? new DecimalBigNumber(paymentAmount.toString(), 18)
+ : new DecimalBigNumber(collateralAmount.toString(), 18)
+ }
>
{
diff --git a/src/views/Range/RangeChart.tsx b/src/views/Range/RangeChart.tsx
index 6d68233b39..2b563e677d 100644
--- a/src/views/Range/RangeChart.tsx
+++ b/src/views/Range/RangeChart.tsx
@@ -1,4 +1,4 @@
-import { Box, CircularProgress } from "@mui/material";
+import { Box, CircularProgress, Typography } from "@mui/material";
import { styled, useTheme } from "@mui/material/styles";
import { DataRow, Paper } from "@olympusdao/component-library";
import {
@@ -124,34 +124,43 @@ const RangeChart = (props: {
return (
-
+
+ Price
+
+
{label === "now" && (
<>
+
+ Lower Range
+
+
+ Upper Range
+
>
)}
From 57b3e47927db9eb0407cdbf44e77277cc5a5cdcd Mon Sep 17 00:00:00 2001
From: brightiron <95196612+brightiron@users.noreply.github.com>
Date: Fri, 8 Dec 2023 10:11:46 -0600
Subject: [PATCH 2/2] add debt balance check and insufficient funds message if
not enough funds (#3037)
---
.../Lending/Cooler/positions/CreateOrRepayLoan.tsx | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
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`