diff --git a/src/app/(homepage)/components/ProjectFunding/PositionValue.tsx b/src/app/(homepage)/components/ProjectFunding/PositionValue.tsx index 736b633..68417a6 100644 --- a/src/app/(homepage)/components/ProjectFunding/PositionValue.tsx +++ b/src/app/(homepage)/components/ProjectFunding/PositionValue.tsx @@ -2,31 +2,38 @@ import React, { useMemo } from "react"; import clsx from "clsx"; import { formatUnits, Address, formatEther } from "viem"; +import { useAccount } from "wagmi"; -import { sDaiAddress } from "@/generated"; +import { useReadErc20BalanceOf } from "@/generated"; -import { useBalance } from "@/hooks/useBalance"; import { useMarketPrice } from "@/hooks/useMarketPrice"; import { formatValue, isUndefined } from "@/utils"; +import { projectsChosen } from "@/consts/markets"; + interface IPositionValue { upToken: Address; downToken: Address; + underlyingToken: Address; } -const PositionValue: React.FC = ({ upToken, downToken }) => { +const PositionValue: React.FC = ({ + upToken, + downToken, + underlyingToken, +}) => { + const { address } = useAccount(); const { value: upValue, balance: upBalance, price: upPrice, - } = useTokenPositionValue(upToken); + } = useTokenPositionValue(upToken, underlyingToken, address ?? "0x"); const { value: downValue, balance: downBalance, price: downPrice, - } = useTokenPositionValue(downToken); - + } = useTokenPositionValue(downToken, underlyingToken, address ?? "0x"); const totalValue = upValue + downValue; if (totalValue > 0) { @@ -87,16 +94,29 @@ const PositionValue: React.FC = ({ upToken, downToken }) => { } }; -const useTokenPositionValue = (token: Address) => { - const { data: balance } = useBalance(token); +const useTokenPositionValue = ( + token: Address, + underlyingToken: Address, + address: Address, +) => { + const { data: balance } = useReadErc20BalanceOf({ + address: token, + args: [address ?? "0x"], + query: { + staleTime: 5000, + enabled: typeof address !== "undefined", + }, + }); const { data: priceRaw } = useMarketPrice( token, - sDaiAddress, + underlyingToken, formatEther(balance ?? 0n), ); - const price = parseFloat(priceRaw ?? "0"); + const price = !isUndefined(priceRaw) + ? parseFloat(priceRaw) / projectsChosen + : 0; const normalizedBalance = useMemo( () => parseFloat(formatUnits(balance ?? 0n, 18)), diff --git a/src/app/(homepage)/components/ProjectFunding/index.tsx b/src/app/(homepage)/components/ProjectFunding/index.tsx index f94d852..7001aff 100644 --- a/src/app/(homepage)/components/ProjectFunding/index.tsx +++ b/src/app/(homepage)/components/ProjectFunding/index.tsx @@ -77,7 +77,7 @@ const ProjectFunding: React.FC = ({}) => {
- + {/* */}