import {useCallback} from 'react'; import useUnicornFinance from './useUnicornFinance'; import useHandleTransactionReceipt from './useHandleTransactionReceipt'; import {Bank} from '../unicorn-finance'; import useEarningsAll from './useEarningsAll'; const useHarvestAll = (banks: Bank[]) => { const unicornFinance = useUnicornFinance(); const earnings = useEarningsAll(banks); const handleTransactionReceipt = useHandleTransactionReceipt(); const handleReward = useCallback(async () => { Promise.all( banks .filter((bank: Bank) => !earnings.get(`${bank.contract}-${bank.poolId}`).eq(0)) .map((bank: Bank) => { console.log('claiming '+ bank.contract) handleTransactionReceipt( unicornFinance.harvest(bank.contract, bank.poolId, bank.sectionInUI), `Claim ${bank.earnTokenName} from ${bank.contract}`, ); }), ); }, [banks, earnings, unicornFinance, handleTransactionReceipt]); return handleReward; }; export default useHarvestAll;