[] = [
+ {
+ field: "symbol",
+ headerName: "Lend",
+ renderCell: params => {
+ const symbols =
+ params.row.symbol !== "OHMFRAXBP-F"
+ ? params.row.symbol.split("-").filter(s => s !== "")
+ : ["OHM", "FRAX", "CRV"];
+ return (
+
+
+
+
+ {params.row.symbol}
+
+
+ );
+ },
+ minWidth: 120,
+ },
+ {
+ field: "mintAsset",
+ headerName: "Borrow",
+ valueGetter: params => {
+ return params.row.lendAndBorrow.mintedCoin || "OHM";
+ },
+ renderCell: params => {
+ const symbol = normalizeSymbol([params.row.lendAndBorrow.mintedCoin || "OHM"]) as OHMTokenStackProps["tokens"];
+ return (
+
+ {params.row.lendAndBorrow.mintedCoin === "DOLA" ? (
+
+
+
+ ) : (
+
+ )}
+
+
+ {params.row.lendAndBorrow.mintedCoin || "OHM"}
+
+
+ );
+ },
+ minWidth: 110,
+ },
+ {
+ field: "tvlUsd",
+ headerName: "TVL",
+ valueFormatter: (params: GridValueFormatterParams) => formatCurrency(params.value, 0),
+ minWidth: 110,
+ },
+ {
+ field: "apy",
+ headerName: "Supply APY",
+ renderCell: params => (
+ <>
+ {params.row.apyBase || params.row.apyReward ? (
+
+ Base APY: {formatNumber(params.row.apyBase || 0, 2)}%
+ Reward APY: {formatNumber(params.row.apyReward || 0, 2)}%
+ >
+ }
+ >
+ {formatNumber(params.row.apy || 0, 2)}%
+
+ ) : (
+ <>{formatNumber(params.row.apy || 0, 2)}%>
+ )}
+ >
+ ),
+ minWidth: 110,
+ },
+ {
+ field: "borrowApy",
+ headerName: "Borrow APY",
+ valueGetter: params => {
+ return params.row.lendAndBorrow.apyBaseBorrow - params.row.lendAndBorrow.apyRewardBorrow;
+ },
+ renderCell: params => (
+ <>
+ {params.row.lendAndBorrow.apyBaseBorrow || params.row.lendAndBorrow.apyRewardBorrow ? (
+
+ Base APY: {formatNumber(params.row.lendAndBorrow.apyBaseBorrow || 0, 2)}%
+ Reward APY: {formatNumber(params.row.lendAndBorrow.apyRewardBorrow || 0, 2)}%
+ >
+ }
+ >
+ {formatNumber(params.row.lendAndBorrow.apyBaseBorrow - params.row.lendAndBorrow.apyRewardBorrow || 0, 2)}%
+
+ ) : (
+ <>{formatNumber(params.row.lendAndBorrow.apyBaseBorrow || 0, 2)}%>
+ )}
+ >
+ ),
+ },
+ {
+ field: "ltv",
+ headerName: "LTV",
+ valueGetter: params => {
+ return params.row.lendAndBorrow.ltv;
+ },
+ renderCell: params => <>{formatNumber(params.row.lendAndBorrow.ltv * 100)}%>,
+ minWidth: 30,
+ },
+ {
+ field: "available",
+ headerName: "Available to Borrow",
+ valueGetter: params => {
+ return (
+ (params.row.lendAndBorrow.debtCeilingUsd || params.row.lendAndBorrow.totalSupplyUsd) -
+ params.row.lendAndBorrow.totalBorrowUsd
+ );
+ },
+ renderCell: params => (
+ <>
+ {formatCurrency(
+ (params.row.lendAndBorrow.debtCeilingUsd || params.row.lendAndBorrow.totalSupplyUsd) -
+ params.row.lendAndBorrow.totalBorrowUsd,
+ )}
+ >
+ ),
+ minWidth: 150,
+ },
+ {
+ field: "projectName",
+ headerName: "",
+ renderCell: (params: GridRenderCellParams) => (
+
+ {params.row.projectName}
+
+ ),
+ minWidth: 100,
+ flex: 1,
+ },
+ ];
+
+ return (
+
+
+
+
+ Lend & Borrow Markets
+
+
+
+ }
+ >
+
+
+ Borrow & Lend against OHM or gOHM with our trusted partners
+
+
+
+
+
+
+
+
+ Filter by Network
+
+
+
+
+
+
+ );
+};
diff --git a/src/views/Lending/index.tsx b/src/views/Lending/index.tsx
new file mode 100644
index 0000000000..7666a54c67
--- /dev/null
+++ b/src/views/Lending/index.tsx
@@ -0,0 +1,79 @@
+import { ArrowForward } from "@mui/icons-material";
+import { Box, Link, Skeleton, Typography, useMediaQuery, useTheme } from "@mui/material";
+import { Chip, Metric, PrimaryButton } from "@olympusdao/component-library";
+import { Link as RouterLink } from "react-router-dom";
+import PageTitle from "src/components/PageTitle";
+import { formatCurrency } from "src/helpers";
+import { useOhmPrice } from "src/hooks/usePrices";
+import { LiquidityCTA } from "src/views/Liquidity/LiquidityCTA";
+
+export const Lending = () => {
+ const theme = useTheme();
+ const { data: ohmPrice } = useOhmPrice();
+ const isMobileScreen = useMediaQuery("(max-width: 513px)");
+
+ return (
+
+
+
+
+ } />
+
+
+
+
+ Coming Soon} />
+
+
+
+ Cooler Loans
+
+
+ Borrow DAI against your gOHM at a fixed rate
+
+
+
+
+ Coming Soon
+
+
+
+
+
+
+
+ New} />
+
+
+
+ Lending Markets
+
+
+ Borrow OHM or leverage OHM holdings
+
+
+
+
+
+ View Lending Markets
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};