@@ -12,7 +12,7 @@ import {
1212} from '@material-ui/core'
1313
1414import { Link } from 'components/text/Link'
15- import React , { useEffect , useState } from 'react'
15+ import React , { useEffect , useMemo , useState } from 'react'
1616// import useSpace from "services/snapshot/hooks/useSpace"
1717import { checkIfIsController , checkIfIsOwner } from 'services/ens'
1818import { SectionProps } from 'views/AddModule/wizards/RealityModule'
@@ -25,9 +25,11 @@ import DoneIcon from '@material-ui/icons/Done'
2525import ErrorOutlineIcon from '@material-ui/icons/ErrorOutline'
2626import useSafeAppsSDKWithProvider from 'hooks/useSafeAppsSDKWithProvider'
2727import { safeAppUrl } from 'utils/url'
28+ import { NETWORK } from 'utils/networks'
2829import useEns from 'hooks/useEns'
2930import useDebouncedState from 'hooks/useDebouncedState'
3031import { getAddressRecord } from '@ensdomains/ensjs/public'
32+ import { InfuraProvider } from 'ethers'
3133
3234const useStyles = makeStyles ( ( theme ) => ( {
3335 container : {
@@ -128,6 +130,10 @@ export const ProposalSection: React.FC<SectionProps> = ({ handleNext, handleBack
128130 const [ validSnapshot , setValidSnapshot ] = useState < boolean > ( false )
129131 const [ loading , setLoading ] = useState < boolean > ( false )
130132 const [ ensIsValid , setEnsIsValid ] = useState < boolean > ( false )
133+
134+ // hack to resolve mainnet ENS
135+ const mainnetProvider = useMemo ( ( ) => new InfuraProvider ( NETWORK . MAINNET , import . meta. env . VITE_INFURA_ID ) , [ ] )
136+ const sepoliaProvider = useMemo ( ( ) => new InfuraProvider ( NETWORK . SEPOLIA , import . meta. env . VITE_INFURA_ID ) , [ ] )
131137
132138 useEffect ( ( ) => {
133139 if ( provider && setupData && setupData . proposal ) {
@@ -154,7 +160,7 @@ export const ProposalSection: React.FC<SectionProps> = ({ handleNext, handleBack
154160 }
155161 }
156162 checkEns ( )
157- } , [ debouncedEnsName , ensClient ] )
163+ } , [ debouncedEnsName , ensClient , mainnetProvider , sepoliaProvider ] )
158164
159165 const validEns = async ( ) => {
160166 if ( ! ensClient ) return
@@ -165,7 +171,7 @@ export const ProposalSection: React.FC<SectionProps> = ({ handleNext, handleBack
165171 console . log ( snapshotSpace )
166172 // const snapshotSpaceValidation = snapshot.validateSchema(snapshotSpace)
167173 const isOwner = await checkIfIsOwner ( ensClient , ensName , safe . safeAddress )
168- const isController = await checkIfIsController ( provider , ensClient , ensName , safe . safeAddress )
174+ const isController = await checkIfIsController ( mainnetProvider , sepoliaProvider , ensClient , ensName , safe . safeAddress )
169175 const plugins = snapshotSpace ?. plugins
170176 if ( plugins ) {
171177 setIsSafesnapInstalled ( plugins . safeSnap ? true : false ) // comment out for easy testing
0 commit comments