"use client"; import { useEffect } from "react"; import { InheritanceTooltip } from "./InheritanceTooltip"; import { displayTxResult } from "./utilsDisplay"; import { Abi, AbiFunction } from "abitype"; import { Address } from "viem"; import { useReadContract } from "wagmi"; import { ArrowPathIcon } from "@heroicons/react/24/outline"; import { useAnimationConfig } from "~~/hooks/scaffold-eth"; import { useTargetNetwork } from "~~/hooks/scaffold-eth/useTargetNetwork"; import { getParsedError, notification } from "~~/utils/scaffold-eth"; type DisplayVariableProps = { contractAddress: Address; abiFunction: AbiFunction; refreshDisplayVariables: boolean; inheritedFrom?: string; abi: Abi; }; export const DisplayVariable = ({ contractAddress, abiFunction, refreshDisplayVariables, abi, inheritedFrom, }: DisplayVariableProps) => { const { targetNetwork } = useTargetNetwork(); const { data: result, isFetching, refetch, error, } = useReadContract({ address: contractAddress, functionName: abiFunction.name, abi: abi, chainId: targetNetwork.id, query: { retry: false, }, }); const { showAnimation } = useAnimationConfig(result); useEffect(() => { refetch(); }, [refetch, refreshDisplayVariables]); useEffect(() => { if (error) { const parsedError = getParsedError(error); notification.error(parsedError); } }, [error]); return (