import {useCallback, useEffect, useState} from 'react'; import {BigNumber} from 'ethers'; import useUnicornFinance from './useUnicornFinance'; import {ContractName} from '../unicorn-finance'; import config from '../config'; const useStakedBalance = (poolName: ContractName, poolId: Number) => { const [balance, setBalance] = useState(BigNumber.from(0)); const unicornFinance = useUnicornFinance(); const isUnlocked = unicornFinance?.isUnlocked; const fetchBalance = useCallback(async () => { const balance = await unicornFinance.stakedBalanceOnBank(poolName, poolId, unicornFinance.myAccount); setBalance(balance); }, [poolName, poolId, unicornFinance]); useEffect(() => { if (isUnlocked) { fetchBalance().catch((err) => console.error(err.stack)); const refreshBalance = setInterval(fetchBalance, config.refreshInterval); return () => clearInterval(refreshBalance); } }, [isUnlocked, poolName, setBalance, unicornFinance, fetchBalance]); return balance; }; export default useStakedBalance;