Commit 5b7a80d1 authored by yj's avatar yj Committed by GitHub

fix: Add ENSName and address check to Web3Status (#3040)

* Add ENSName and address check to Web3Status

Issue #2838

* Update useENSName.ts

Do the forward ENSAddress check in useENSName

* Update index.tsx

Revert ENSAddress check, which has been moved into ENSName hook

* Update useENSName.ts

Correcting the equality check (was testing that things work, and made a wrong commit)

* add comment, change var names
Co-authored-by: default avatarTina Zheng <tina.s.zheng+github@gmail.com>
parent db8dab45
......@@ -6,6 +6,7 @@ import { isAddress } from '../utils'
import isZero from '../utils/isZero'
import { useENSRegistrarContract, useENSResolverContract } from './useContract'
import useDebounce from './useDebounce'
import useENSAddress from './useENSAddress'
/**
* Does a reverse lookup for an address to find its ENS name.
......@@ -24,14 +25,22 @@ export default function useENSName(address?: string): { ENSName: string | null;
resolverAddressResult && !isZero(resolverAddressResult) ? resolverAddressResult : undefined,
false
)
const name = useSingleCallResult(resolverContract, 'name', ensNodeArgument)
const nameCallRes = useSingleCallResult(resolverContract, 'name', ensNodeArgument)
const name = nameCallRes.result?.[0]
/* ENS does not enforce that an address owns a .eth domain before setting it as a reverse proxy
and recommends that you perform a match on the forward resolution
see: https://docs.ens.domains/dapp-developer-guide/resolving-names#reverse-resolution
*/
const fwdAddr = useENSAddress(name)
const checkedName = address === fwdAddr?.address ? name : null
const changed = debouncedAddress !== address
return useMemo(
() => ({
ENSName: changed ? null : name.result?.[0] ?? null,
loading: changed || resolverAddress.loading || name.loading,
ENSName: changed ? null : checkedName,
loading: changed || resolverAddress.loading || nameCallRes.loading,
}),
[changed, name.loading, name.result, resolverAddress.loading]
[changed, nameCallRes.loading, checkedName, resolverAddress.loading]
)
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment