diff --git a/package.json b/package.json index 1d1a9eed..cee23ddd 100644 --- a/package.json +++ b/package.json @@ -36,8 +36,7 @@ "react-hotjar": "^4.0.0", "react-redux": "^7.2.6", "redux": "^4.1.2", - "redux-persist": "^6.0.0", - "urlcat": "^2.0.4" + "redux-persist": "^6.0.0" }, "devDependencies": { "@types/lodash": "^4.14.178", diff --git a/src/components/AddressBook.tsx b/src/components/AddressBook.tsx index ca607bc1..735c4a61 100644 --- a/src/components/AddressBook.tsx +++ b/src/components/AddressBook.tsx @@ -63,9 +63,9 @@ export const AddressBookButton: FC<{ address={ address} open={isDialogOpen} handleClose={() => setIsDialogOpen(false)} + description={ensAddress.data?.name} /> - - {console.log(ensAddress.data?.name)} + {avatarUrl.data ? : ''} ); }; @@ -74,8 +74,9 @@ export const AddressBookDialog: FC<{ network: Network; address: string; open: boolean; + description: string; handleClose: () => void; -}> = ({ network, address, open, handleClose }) => { +}> = ({ network, address, open, handleClose, description }) => { const dispatch = useAppDispatch(); const existingEntry = useAppSelector((state) => addressBookSelectors.selectById(state, createEntryId(network, address)) @@ -112,8 +113,7 @@ export const AddressBookDialog: FC<{ addressBookSlice.actions.entryUpserted({ chainId: network.chainId, address: ethers.utils.getAddress(address), - nameTag: nameTagTrimmed, - ensName: ensQuery.data?.name ?? "" + nameTag: nameTagTrimmed }) ); } diff --git a/src/hooks/useSearchSubgraphByTokenSymbol.ts b/src/hooks/useSearchSubgraphByTokenSymbol.ts index 30eed833..6a81aa48 100644 --- a/src/hooks/useSearchSubgraphByTokenSymbol.ts +++ b/src/hooks/useSearchSubgraphByTokenSymbol.ts @@ -38,7 +38,7 @@ export const useSearchSubgraphByTokenSymbol = (searchTerm: string) => { searchTerm ) - const isEnsAddress = ensQuery !== null ? true : false + const isEnsAddress = !!ensQuery.data?.address return networks.map((network) => sfSubgraph.useCustomQuery( diff --git a/src/pages/[_network]/accounts/[_id].tsx b/src/pages/[_network]/accounts/[_id].tsx index a95046fd..0dca608b 100644 --- a/src/pages/[_network]/accounts/[_id].tsx +++ b/src/pages/[_network]/accounts/[_id].tsx @@ -65,8 +65,9 @@ import { ensApi } from '../../../redux/slices/ensResolver.slice'; const AccountPage: NextPage = () => { const network = useContext(NetworkContext); const address = useContext(IdContext); - const [ensName, setEnsName] = useState() + const ensAddressQuery = ensApi.useLookupAddressQuery(address); + const ensName = ensAddressQuery.data?.name const accountQuery = sfSubgraph.useAccountQuery({ chainId: network.chainId, @@ -114,11 +115,6 @@ const AccountPage: NextPage = () => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [tabValue]); - const addresEns = ensApi.useLookupAddressQuery(address) - useEffect(() => { - setEnsName(addresEns.data?.name); - }, [addresEns, address, ensName]); - const addressBookEntry = useAppSelector((state) => network ? addressBookSelectors.selectById(state, createEntryId(network, address)) @@ -140,6 +136,7 @@ const AccountPage: NextPage = () => { + return ( @@ -161,6 +158,7 @@ const AccountPage: NextPage = () => { { description="Copy address to clipboard" /> - - { - if (address !== null) { - const ensQuery = ensApi.useResolveNameQuery( - address - ) - return ensQuery.name - } -} - -export const createEntryId = (network: Network, address: string) => (`${network.chainId}_${address.toLowerCase()}_${createEnsName(address)}`); +export const createEntryId = (network: Network, address: string) => (`${network.chainId}_${address.toLowerCase()}`); export const getEntryId = (addressBookEntry: AddressBookEntry) => { - return `${addressBookEntry.chainId}_${addressBookEntry.address.toLowerCase()}_${addressBookEntry.ensName}`; + return `${addressBookEntry.chainId}_${addressBookEntry.address.toLowerCase()}`; } export const addressBookAdapter = createEntityAdapter({ diff --git a/src/redux/slices/ensResolver.slice.ts b/src/redux/slices/ensResolver.slice.ts index da559b8b..e848d556 100644 --- a/src/redux/slices/ensResolver.slice.ts +++ b/src/redux/slices/ensResolver.slice.ts @@ -2,45 +2,6 @@ import urlcat from 'urlcat' import { ethers } from "ethers"; import { createApi, fakeBaseQuery } from "@reduxjs/toolkit/query/react"; -export interface NameInfo { - rnsName: string - ensName: string | null - address: string -} - -export interface ProfileInfo { - avatar: string[] - bio: string - name: string -} - -interface RSS3Info { - profile: ProfileInfo -} - - -export const getNameById = async (id: string ) => { - if (!id) return '' - const url = urlcat('https://rss3.domains/address/:id', { id }) - const rsp = (await (await fetch(url)).json()) as NameInfo - return rsp.ensName -} - -export const getAddressByName = async (id: string) => { - if (!id) return '' - const url = urlcat('https://rss3.domains/name/:id', { id }) - const rsp = (await (await fetch(url)).json()) as NameInfo - return rsp.address -} - - -export const getUserAvatar = async (address: string) => { - if (!address) return '' - const url = urlcat('https://hub.pass3.me/:address', { address }) - const rsp = (await (await fetch(url)).json()) as RSS3Info - return rsp.profile - -} export const ensApi = createApi({ @@ -67,7 +28,7 @@ export const ensApi = createApi({ return { data: null }; } - const address = await getAddressByName(name) || await mainnetProvider.resolveName(name) + const address = await mainnetProvider.resolveName(name) return { data: address ? { @@ -84,7 +45,7 @@ export const ensApi = createApi({ string >({ queryFn: async (address) => { - const name = await mainnetProvider.lookupAddress(address) ?? await getNameById(address) + const name = await mainnetProvider.lookupAddress(address) return { data: name ? { @@ -99,11 +60,11 @@ export const ensApi = createApi({ { address: string; avatar: string } | null, string>({ queryFn: async (address) => { - const dataAvatar = await getUserAvatar(address) + const avatar = await mainnetProvider.getAvatar(address) return { - data: dataAvatar ? { + data: avatar ? { address, - avatar: dataAvatar?.avatar[0] + avatar: avatar } : null, } diff --git a/src/redux/store.ts b/src/redux/store.ts index 406f6923..66a670f5 100644 --- a/src/redux/store.ts +++ b/src/redux/store.ts @@ -57,18 +57,13 @@ export const makeStore = wrapMakeStore(() => { addressBookSlice.reducer ); - const ensReducer = persistReducer( - { key: "ens-lockup", version: 1, storage: storageLocal }, - ensApi.reducer - ) - const store = configureStore({ reducer: { [rpcApi.reducerPath]: rpcApi.reducer, [sfSubgraph.reducerPath]: sfSubgraph.reducer, [themePreferenceSlice.name]: themePreferenceSlice.reducer, [addressBookSlice.name]: addressBookReducer, - [ensApi.reducerPath]: ensReducer, + [ensApi.reducerPath]: ensApi.reducer, }, middleware: (getDefaultMiddleware) => getDefaultMiddleware({ diff --git a/yarn.lock b/yarn.lock index 5bc19f4a..d4cc751a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7977,11 +7977,6 @@ url@~0.11.0: punycode "1.3.2" querystring "0.2.0" -urlcat@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/urlcat/-/urlcat-2.0.4.tgz#c119b4e3b31df4d140e77e177ea5d95dbe6b2fe2" - integrity sha512-12c4Vi40DHVdZ/8mOLjZjp0asCzM6hi8Gj116fpImRP1FN4gBMCtMi9XhLNOmre/FEQYNqHbZmX8iyYAtIcy8Q== - use-subscription@1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.5.1.tgz#73501107f02fad84c6dd57965beb0b75c68c42d1"