"use client"; // @refresh reset import { useReducer } from "react"; import { ContractReadMethods } from "./ContractReadMethods"; import { ContractVariables } from "./ContractVariables"; import { ContractWriteMethods } from "./ContractWriteMethods"; import { Address, Balance } from "~~/components/scaffold-eth"; import { useDeployedContractInfo, useNetworkColor } from "~~/hooks/scaffold-eth"; import { useTargetNetwork } from "~~/hooks/scaffold-eth/useTargetNetwork"; import { ContractName } from "~~/utils/scaffold-eth/contract"; type ContractUIProps = { contractName: ContractName; className?: string; }; /** * UI component to interface with deployed contracts. **/ export const ContractUI = ({ contractName, className = "" }: ContractUIProps) => { const [refreshDisplayVariables, triggerRefreshDisplayVariables] = useReducer(value => !value, false); const { targetNetwork } = useTargetNetwork(); const { data: deployedContractData, isLoading: deployedContractLoading } = useDeployedContractInfo({ contractName }); const networkColor = useNetworkColor(); if (deployedContractLoading) { return (
{`No contract found by the name of "${contractName}" on chain "${targetNetwork.name}"!`}
); } return (Network:{" "} {targetNetwork.name}
)}Read
Write