From 73f9014ade044856313b7010df07f432205a93be Mon Sep 17 00:00:00 2001 From: Uncle Fatso Date: Tue, 14 Apr 2026 14:25:34 +0300 Subject: [PATCH] use actual max bond discount on the dashboard Signed-off-by: Uncle Fatso --- package.json | 2 +- .../components/ProtocolDetails.jsx | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 968e895..cd78b43 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "ghost-dao-interface", "private": true, - "version": "0.7.18", + "version": "0.7.19", "type": "module", "scripts": { "dev": "vite", diff --git a/src/containers/TreasuryDashboard/components/ProtocolDetails.jsx b/src/containers/TreasuryDashboard/components/ProtocolDetails.jsx index 60eea17..474d8b6 100644 --- a/src/containers/TreasuryDashboard/components/ProtocolDetails.jsx +++ b/src/containers/TreasuryDashboard/components/ProtocolDetails.jsx @@ -4,6 +4,7 @@ import { useConfig } from "wagmi"; import { useNavigate, createSearchParams } from "react-router-dom"; import { formatNumber } from "../../../helpers"; +import { useLiveBonds } from "../../../hooks/bonds/index"; import { useEpoch, useGatekeeperApy } from "../../../hooks/staking"; import { useTokenSymbol, useBalance, useCirculatingSupply } from "../../../hooks/tokens"; import { SecondaryButton } from "../../../components/Button"; @@ -66,11 +67,21 @@ const ProtocolDetails = ({ chainId, isMobileScreen, theme, }) => { const { symbol: ftsoSymbol } = useTokenSymbol(chainId, "FTSO"); const { symbol: csprSymbol } = useTokenSymbol(chainId, "CSPR"); const { contractAddress: ftsoAddress } = useBalance(chainId, "FTSO", EMPTY_ADDRESS); + const { liveBonds } = useLiveBonds(chainId); const circulatingSupply = useCirculatingSupply(chainId, "STNK"); const gatekeepedApy = useGatekeeperApy(chainId); const { epoch } = useEpoch(chainId); + const maxBondDiscountTest = useMemo(() => { + if (liveBonds?.length === 0) return "Coming Up"; + const maxDiscountBond = liveBonds.reduce((prev, current) => + (prev.discount > current.discount) ? prev : current + ); + const maxDiscount = maxDiscountBond.discount.mul(new DecimalBigNumber(100, 0)); + return `Up to ${formatNumber(maxDiscount, 0)}% Discount`; + }, [liveBonds]); + const apyInner = useMemo(() => { let apy = Infinity; if (circulatingSupply._value > 0n) { @@ -108,7 +119,7 @@ const ProtocolDetails = ({ chainId, isMobileScreen, theme, }) => { theme={theme} url={`/${networkName.toLowerCase()}/bonds`} name="(1, 1) Bond" - sideName="Up to 40% Discount" + sideName={maxBondDiscountTest} description={`Bonding strategy grows Treasury and builds Protocol Owned Liquidity (POL) by allowing usersto acquire ${csprSymbol} at a discount. Take advantage of the next available bond.`} />