import Metric from "../../../components/Metric/Metric"; import { formatCurrency, formatNumber } from "../../../helpers"; import { useCurrentIndex } from "../../../hooks/staking"; import { useCirculatingSupply } from "../../../hooks/tokens"; import { useFtsoPrice } from "../../../hooks/prices"; import { DecimalBigNumber } from "../../../helpers/DecimalBigNumber"; export const CurrentIndex = props => { const { currentIndex } = useCurrentIndex(props.chainId); const _props = { ...props, label: `Current Index`, tooltip: `The current index indicates the amount of ${props.ftsoSymbol} a holder would possess if they had staked and maintained 1 ${props.ftsoSymbol} since its launch.`, }; if (currentIndex) _props.metric = `${formatNumber(currentIndex, 2)}`; else _props.isLoading = true; return ; }; export const Apy = props => { const circulatingSupply = useCirculatingSupply(props.chainId, "STNK"); let apy = Infinity; if (circulatingSupply._value > 0n) { const value = props.distribute.div(circulatingSupply); apy = 100 * (Math.pow(1 + parseFloat(value.toString()), 1095) - 1); if (apy === 0) apy = Infinity; } const _props = { ...props, label: "APY", tooltip: `The annualized rate of return, accounting for compounding from ${props.stnkSymbol}’s exponential rebasing.`, }; if (apy) _props.metric = `${formatNumber(apy, 2)}${apy === Infinity ? "" : "%"}`; else _props.isLoading = true; return ; }; export const TotalDeposit = props => { const circulatingSupply = useCirculatingSupply(props.chainId, "STNK"); const ftsoPrice = useFtsoPrice(props.chainId); const deposit = circulatingSupply.mul(ftsoPrice); const _props = { ...props, label: "Total Deposit", tooltip: `The total stablecoin reserves in the ghostDAO treasury backing the entire circulating supply of ${props.stnkSymbol}.`, }; if (deposit) _props.metric = `${formatCurrency(deposit, 2)}`; else _props.isLoading = true; return ; };