I am trying to fetch campaign data from the contract deployed here so that I can display a list of available campaigns to users.
I have tried several things, including getting an instance of the contract using the getContract method, but it's not working. When I log the output, I get The contract data is: [object Object]. The code looks something like this;
const contract = getContract({
    address: saveAKidAddr,
    abi: contractAbi,
  });
  const getCampaigns = async () => {
    const campaigns = await contract.read.getCampaigns();
    const parsedCampaigns = campaigns.map((campaign, i) => ({
      owner: campaign.owner,
      title: campaign.title,
      description: campaign.description,
      target: formatEther(campaign.target.toString()),
      deadline: campaign.deadline,
      amountCollected: formatEther(campaign.amountCollected.toString()),
      image: campaign.image,
      pId: i,
    }));
    console.log(`The contract data is: ${campaigns}`);
    return parsedCampaigns;
  };
I have also tried using other methods such as useContractRead but I'm also having problems fetching the campaign data and showing it in my frontend.
const { data: readData, isLoading: readLoading } = useContractRead({
      address: saveAKidAddr,
      abi: contractAbi,
      functionName: "getCampaigns",
    });
I struggled with this for a couple of days and now I really need help. I'm a beginner dev so if anything looks trivial please understand.
To understand my code more this is my repo