import {useCallback, useEffect, useState} from 'react'; import useUnicornFinance from './useUnicornFinance'; import config from '../config'; import ERC20 from '../unicorn-finance/ERC20'; const useStakedTokenPriceInDollars = (stakedTokenName: string, stakedToken: ERC20) => { const [stakedTokenPriceInDollars, setStakedTokenPriceInDollars] = useState('0'); const unicornFinance = useUnicornFinance(); const isUnlocked = unicornFinance?.isUnlocked; const fetchBalance = useCallback(async () => { const balance = await unicornFinance.getDepositTokenPriceInDollars(stakedTokenName, stakedToken); setStakedTokenPriceInDollars(balance); }, [stakedToken, stakedTokenName, unicornFinance]); useEffect(() => { if (isUnlocked) { fetchBalance().catch((err) => console.error(err.stack)); const refreshStakedTokenPriceInDollars = setInterval(fetchBalance, config.refreshInterval); return () => clearInterval(refreshStakedTokenPriceInDollars); } }, [isUnlocked, setStakedTokenPriceInDollars, unicornFinance, fetchBalance]); return stakedTokenPriceInDollars; }; export default useStakedTokenPriceInDollars;