From 5c20544e6297c694390f5a02dc783fd77e06030a Mon Sep 17 00:00:00 2001 From: hide-on-bush-x Date: Wed, 11 Jan 2023 10:38:23 -0300 Subject: [PATCH] Adding missing provider value --- src/common/helpers/provider/masa-context.tsx | 5 +++ src/common/helpers/provider/use-metamask.ts | 33 +++++++++++++------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/common/helpers/provider/masa-context.tsx b/src/common/helpers/provider/masa-context.tsx index e05b82be..2f2231f3 100644 --- a/src/common/helpers/provider/masa-context.tsx +++ b/src/common/helpers/provider/masa-context.tsx @@ -51,6 +51,8 @@ export interface MasaShape { wallet: string; endDate: string; } | null; + missingProvider?: boolean; + setMissingProvider?: (value: boolean) => void; } export const MasaContextProvider = ({ @@ -62,6 +64,7 @@ export const MasaContextProvider = ({ }: MasaContextProviderProps) => { const [masaInstance, setMasaInstance] = useState(null); const [provider, setProvider] = useState(null); + const [missingProvider, setMissingProvider] = useState(); const [isModalOpen, setModalOpen] = useState(false); @@ -300,6 +303,8 @@ export const MasaContextProvider = ({ logginLoading, allowedForAllowlist, allowlistInfo, + missingProvider, + setMissingProvider, }; return ( diff --git a/src/common/helpers/provider/use-metamask.ts b/src/common/helpers/provider/use-metamask.ts index 487305f1..77de929f 100644 --- a/src/common/helpers/provider/use-metamask.ts +++ b/src/common/helpers/provider/use-metamask.ts @@ -2,22 +2,33 @@ import { ethers } from 'ethers'; import { useCallback, useEffect, useMemo } from 'react'; import { useMasa } from './use-masa'; -const DEFAULT_RPC = 'https://rpc.ankr.com/eth_goerli'; - export const useMetamask = ({ disable }: { disable?: boolean }) => { - const { setProvider, masa } = useMasa(); + const { setProvider, setMissingProvider, masa } = useMasa(); - //@ts-ignore const provider = useMemo(() => { - return typeof window !== 'undefined' - ? //@ts-ignore - window?.ethereum - ? //@ts-ignore - new ethers.providers.Web3Provider(window?.ethereum) - : new ethers.providers.JsonRpcProvider(DEFAULT_RPC) - : null; + if (typeof window !== 'undefined') { + //@ts-ignore + if (typeof window?.ethereum !== 'undefined') { + //@ts-ignore + return new ethers.providers.Web3Provider(window?.ethereum); + } else { + return null; + } + } else { + return null; + } }, []); + useEffect(() => { + if (setMissingProvider) { + if (provider) { + setMissingProvider(false); + } else { + setMissingProvider(true); + } + } + }, [provider, setMissingProvider]); + const accountChangedHandler = useCallback( async (newAccount) => { if (setProvider) setProvider(newAccount);