From d809f3deb36869658e0fd4f3500d6522123e9782 Mon Sep 17 00:00:00 2001 From: unclebill Date: Thu, 29 Jul 2021 10:50:54 +0800 Subject: [PATCH 1/2] feat(web3-shared): add useResolveEns for resolving ens --- packages/web3-shared/src/hooks/index.ts | 1 + packages/web3-shared/src/hooks/useResolveEns.ts | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 packages/web3-shared/src/hooks/useResolveEns.ts diff --git a/packages/web3-shared/src/hooks/index.ts b/packages/web3-shared/src/hooks/index.ts index f52f039d7dd5..e6ea4224821a 100644 --- a/packages/web3-shared/src/hooks/index.ts +++ b/packages/web3-shared/src/hooks/index.ts @@ -54,3 +54,4 @@ export * from './useCollectibles' export * from './useMnemonicWordsPuzzle' export * from './useGetPastLogsParams' export * from './useChainColor' +export * from './useResolveEns' diff --git a/packages/web3-shared/src/hooks/useResolveEns.ts b/packages/web3-shared/src/hooks/useResolveEns.ts new file mode 100644 index 000000000000..00995d3afd04 --- /dev/null +++ b/packages/web3-shared/src/hooks/useResolveEns.ts @@ -0,0 +1,15 @@ +import { useEffect, useState } from 'react' +import { useWeb3 } from './useWeb3' + +export function useResolveEns(name: string) { + const web3 = useWeb3() + const [address, setAddress] = useState('') + + useEffect(() => { + web3.eth.ens.getAddress(name, (_: Error, value: string) => { + setAddress(value) + }) + }, [name]) + + return address +} From 7e4c8457330ac6311c86dae652fc91835159fa1a Mon Sep 17 00:00:00 2001 From: unclebill Date: Fri, 30 Jul 2021 10:06:02 +0800 Subject: [PATCH 2/2] fixup! feat(web3-shared): add useResolveEns for resolving ens --- packages/web3-shared/src/hooks/useResolveEns.ts | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/packages/web3-shared/src/hooks/useResolveEns.ts b/packages/web3-shared/src/hooks/useResolveEns.ts index 00995d3afd04..6847cd26822d 100644 --- a/packages/web3-shared/src/hooks/useResolveEns.ts +++ b/packages/web3-shared/src/hooks/useResolveEns.ts @@ -1,15 +1,10 @@ -import { useEffect, useState } from 'react' +import { useAsyncRetry } from 'react-use' import { useWeb3 } from './useWeb3' export function useResolveEns(name: string) { const web3 = useWeb3() - const [address, setAddress] = useState('') - useEffect(() => { - web3.eth.ens.getAddress(name, (_: Error, value: string) => { - setAddress(value) - }) + return useAsyncRetry(async () => { + return await web3.eth.ens.getAddress(name) }, [name]) - - return address }