From 76a5472ad56d0e529632e9557977a8eefd07015e Mon Sep 17 00:00:00 2001 From: Jacob Homanics Date: Fri, 6 Dec 2024 21:53:20 -0600 Subject: [PATCH] changed call to hook --- .../nextjs/hooks/scaffold-eth/useAllowedChain.ts | 8 ++++++++ .../hooks/scaffold-eth/useDeployedContractInfo.ts | 3 ++- .../hooks/scaffold-eth/useScaffoldContract.ts | 3 ++- .../hooks/scaffold-eth/useScaffoldEventHistory.ts | 3 ++- .../hooks/scaffold-eth/useScaffoldReadContract.ts | 3 ++- .../scaffold-eth/useScaffoldWatchContractEvent.ts | 3 ++- .../hooks/scaffold-eth/useScaffoldWriteContract.ts | 13 +++++-------- packages/nextjs/utils/scaffold-eth/networks.ts | 6 ------ 8 files changed, 23 insertions(+), 19 deletions(-) create mode 100644 packages/nextjs/hooks/scaffold-eth/useAllowedChain.ts diff --git a/packages/nextjs/hooks/scaffold-eth/useAllowedChain.ts b/packages/nextjs/hooks/scaffold-eth/useAllowedChain.ts new file mode 100644 index 000000000..161a4f6e0 --- /dev/null +++ b/packages/nextjs/hooks/scaffold-eth/useAllowedChain.ts @@ -0,0 +1,8 @@ +import scaffoldConfig from "~~/scaffold.config"; +import { useGlobalState } from "~~/services/store/store"; +import { AllowedChainIds } from "~~/utils/scaffold-eth"; + +export function useAllowedChain(chainId: AllowedChainIds) { + const targetNetwork = useGlobalState(({ targetNetwork }) => targetNetwork); + return scaffoldConfig.targetNetworks.find(targetNetwork => targetNetwork.id === chainId) ?? targetNetwork; +} diff --git a/packages/nextjs/hooks/scaffold-eth/useDeployedContractInfo.ts b/packages/nextjs/hooks/scaffold-eth/useDeployedContractInfo.ts index bd8d002f5..4a8de3b1d 100644 --- a/packages/nextjs/hooks/scaffold-eth/useDeployedContractInfo.ts +++ b/packages/nextjs/hooks/scaffold-eth/useDeployedContractInfo.ts @@ -1,7 +1,8 @@ import { useEffect, useState } from "react"; +import { useAllowedChain } from "./useAllowedChain"; import { useIsMounted } from "usehooks-ts"; import { usePublicClient } from "wagmi"; -import { AllowedChainIds, useAllowedChain } from "~~/utils/scaffold-eth"; +import { AllowedChainIds } from "~~/utils/scaffold-eth"; import { Contract, ContractCodeStatus, diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldContract.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldContract.ts index d73e1675f..38f797970 100644 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldContract.ts +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldContract.ts @@ -1,8 +1,9 @@ +import { useAllowedChain } from "./useAllowedChain"; import { Account, Address, Chain, Client, Transport, getContract } from "viem"; import { usePublicClient } from "wagmi"; import { GetWalletClientReturnType } from "wagmi/actions"; import { useDeployedContractInfo } from "~~/hooks/scaffold-eth"; -import { AllowedChainIds, useAllowedChain } from "~~/utils/scaffold-eth"; +import { AllowedChainIds } from "~~/utils/scaffold-eth"; import { Contract, ContractName } from "~~/utils/scaffold-eth/contract"; /** diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldEventHistory.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldEventHistory.ts index 0c83e7063..d3bfa05b3 100644 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldEventHistory.ts +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldEventHistory.ts @@ -1,10 +1,11 @@ import { useEffect, useState } from "react"; +import { useAllowedChain } from "./useAllowedChain"; import { useInfiniteQuery } from "@tanstack/react-query"; import { Abi, AbiEvent, ExtractAbiEventNames } from "abitype"; import { BlockNumber, GetLogsParameters } from "viem"; import { Config, UsePublicClientReturnType, useBlockNumber, usePublicClient } from "wagmi"; import { useDeployedContractInfo } from "~~/hooks/scaffold-eth"; -import { AllowedChainIds, useAllowedChain } from "~~/utils/scaffold-eth"; +import { AllowedChainIds } from "~~/utils/scaffold-eth"; import { replacer } from "~~/utils/scaffold-eth/common"; import { ContractAbi, diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldReadContract.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldReadContract.ts index 09bdd0684..6dde95e67 100644 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldReadContract.ts +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldReadContract.ts @@ -1,10 +1,11 @@ import { useEffect } from "react"; +import { useAllowedChain } from "./useAllowedChain"; import { QueryObserverResult, RefetchOptions, useQueryClient } from "@tanstack/react-query"; import type { ExtractAbiFunctionNames } from "abitype"; import { ReadContractErrorType } from "viem"; import { useBlockNumber, useReadContract } from "wagmi"; import { useDeployedContractInfo } from "~~/hooks/scaffold-eth"; -import { AllowedChainIds, useAllowedChain } from "~~/utils/scaffold-eth"; +import { AllowedChainIds } from "~~/utils/scaffold-eth"; import { AbiFunctionReturnType, ContractAbi, diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldWatchContractEvent.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldWatchContractEvent.ts index 4d4e04bb7..1219b473d 100644 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldWatchContractEvent.ts +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldWatchContractEvent.ts @@ -1,8 +1,9 @@ +import { useAllowedChain } from "./useAllowedChain"; import { Abi, ExtractAbiEventNames } from "abitype"; import { Log } from "viem"; import { useWatchContractEvent } from "wagmi"; import { addIndexedArgsToEvent, useDeployedContractInfo } from "~~/hooks/scaffold-eth"; -import { AllowedChainIds, useAllowedChain } from "~~/utils/scaffold-eth"; +import { AllowedChainIds } from "~~/utils/scaffold-eth"; import { ContractAbi, ContractName, UseScaffoldEventConfig } from "~~/utils/scaffold-eth/contract"; /** diff --git a/packages/nextjs/hooks/scaffold-eth/useScaffoldWriteContract.ts b/packages/nextjs/hooks/scaffold-eth/useScaffoldWriteContract.ts index 743d62c5d..083bb0414 100644 --- a/packages/nextjs/hooks/scaffold-eth/useScaffoldWriteContract.ts +++ b/packages/nextjs/hooks/scaffold-eth/useScaffoldWriteContract.ts @@ -1,12 +1,11 @@ import { useState } from "react"; -import { useTargetNetwork } from "./useTargetNetwork"; +import { useAllowedChain } from "./useAllowedChain"; import { MutateOptions } from "@tanstack/react-query"; import { Abi, ExtractAbiFunctionNames } from "abitype"; import { Config, useAccount, useWriteContract } from "wagmi"; import { WriteContractErrorType, WriteContractReturnType } from "wagmi/actions"; import { WriteContractVariables } from "wagmi/query"; import { useDeployedContractInfo, useTransactor } from "~~/hooks/scaffold-eth"; -import scaffoldConfig from "~~/scaffold.config"; import { AllowedChainIds, notification } from "~~/utils/scaffold-eth"; import { ContractAbi, @@ -30,16 +29,14 @@ export const useScaffoldWriteContract = ({ const { chain: accountChain } = useAccount(); const writeTx = useTransactor(); const [isMining, setIsMining] = useState(false); - const { targetNetwork } = useTargetNetwork(); const wagmiContractWrite = useWriteContract(writeContractParams); - const selectedNetwork = - scaffoldConfig.targetNetworks.find(targetNetwork => targetNetwork.id === chainId) ?? targetNetwork; + const selectedChain = useAllowedChain(chainId as AllowedChainIds); const { data: deployedContractData } = useDeployedContractInfo({ contractName, - chainId: selectedNetwork.id as AllowedChainIds, + chainId: selectedChain.id as AllowedChainIds, }); const sendContractWriteAsyncTx = async < @@ -58,7 +55,7 @@ export const useScaffoldWriteContract = ({ return; } - if (accountChain?.id !== selectedNetwork.id) { + if (accountChain?.id !== selectedChain.id) { notification.error("Your wallet is connected to the wrong network"); return; } @@ -108,7 +105,7 @@ export const useScaffoldWriteContract = ({ return; } - if (accountChain?.id !== selectedNetwork.id) { + if (accountChain?.id !== selectedChain.id) { notification.error("Your wallet is connected to the wrong network"); return; } diff --git a/packages/nextjs/utils/scaffold-eth/networks.ts b/packages/nextjs/utils/scaffold-eth/networks.ts index aca88a2f4..649ed367a 100644 --- a/packages/nextjs/utils/scaffold-eth/networks.ts +++ b/packages/nextjs/utils/scaffold-eth/networks.ts @@ -1,6 +1,5 @@ import * as chains from "viem/chains"; import scaffoldConfig from "~~/scaffold.config"; -import { useGlobalState } from "~~/services/store/store"; type ChainAttributes = { // color | [lightThemeColor, darkThemeColor] @@ -139,8 +138,3 @@ export function getTargetNetworks(): ChainWithAttributes[] { ...NETWORKS_EXTRA_DATA[targetNetwork.id], })); } - -export function useAllowedChain(chainId: AllowedChainIds) { - const targetNetwork = useGlobalState(({ targetNetwork }) => targetNetwork); - return scaffoldConfig.targetNetworks.find(targetNetwork => targetNetwork.id === chainId) ?? targetNetwork; -}