import { useEffect, useState, useCallback } from 'react'; import { useContract, useProvider } from 'wagmi'; import contracts from '@/contracts/hardhat_contracts.json'; import { NETWORK_ID } from '@/config'; export const GetGreeter = () => { const chainId = Number(NETWORK_ID); const [currentGreeter, setCurrentGreeter] = useState(''); const [loading, setLoading] = useState(true); const [error, setError] = useState(''); const provider = useProvider(); const allContracts = contracts as any; const greeterAddress = allContracts[chainId][0].contracts.Greeter.address; const greeterABI = allContracts[chainId][0].contracts.Greeter.abi; const greeterContract = useContract({ address: greeterAddress, abi: greeterABI, signerOrProvider: provider, }); const fetchData = useCallback(async () => { try { const greeter = await greeterContract?.greet(); setCurrentGreeter(greeter); setError(''); } catch (error) { setError("Contract couldn't be fetched. Please check your network."); } setLoading(false); }, [greeterContract]); useEffect(() => { if (provider) { fetchData(); } }, [provider, greeterContract, fetchData]); if (loading) { return