import { useCallback, useEffect, useState } from 'react'; import { BigNumber } from 'ethers'; import useUnicornFinance from './useUnicornFinance'; import { ContractName } from '../unicorn-finance'; import config from '../config'; const useNodePrice = (poolName: ContractName, poolId: Number, sectionInUI: Number) => { const [amount, setAmount] = useState(BigNumber.from(0)); const unicornFinance = useUnicornFinance(); const fetchAmount = useCallback(async () => { const balance = sectionInUI === 3 ? await unicornFinance.getNodePrice(poolName, poolId) : BigNumber.from(0); setAmount(balance); }, [poolName, poolId, sectionInUI, unicornFinance]); useEffect(() => { if (sectionInUI === 3) { fetchAmount().catch((err) => console.error(err.stack)); const refreshBalance = setInterval(fetchAmount, config.refreshInterval); return () => clearInterval(refreshBalance); } }, [poolName, setAmount, unicornFinance, fetchAmount]); return amount; }; export default useNodePrice;