feat(lists): allow selecting and adding token lists (#1023)
* more list stuff
Use the selected list instead of the default list, but also use the default list
start list selection code
* move token warning to a modal, fix the install issue
* add/remove/enter key
* handle enter on currency select for ETHER
* change slippage tolerance to be a slider
* make ui closer to the mocks
* commit slider changes
* back to tabs
* copy changes
* bump list version
* some styling for the list select
* bump uniswap default list version
* use contract calls to get ens names and addresses
* show list logo
* fix failing integration test
* .eth.link
* list introduction screen
* remove showSendWithSwap
* fix integration and unit tests
* resolve ENS names
* logos from ens
* fix the lint errors
* some refactoring to better support using a the library provider from the user for resolving ENS names
* load list info from the list url for the introduction page
* make it slightly harder to remove a list
* minor clean up, some help text and links
* remove icon from list update popup
* show added/removed tokens
* add GA everywhere, don't debounce contenthash lookups
* show tags
* fix tag key
* tag display, list rendering, needs optimization
* fix list fetching in firefox, style issue in safari
* sort the lists, clean up styling
* use client provider when possible
* show token warning for url loaded tokens
* improve the warning modal
* some refactoring to fix the list fetching on networks other than mainnet
* fix tests
* some minor improvements
* increase timeout to maybe fix integration tests which pass locally
* build for tests using the dev network url
* reset the lists if we deleted the other two copies
* improve how we handle updating the default list of lists
* fix integration test
* Update token list selection styles
* fix external links, reuse the on click outside code, show add errors
* show the list origin instead of the full url
* fix update list link
* show host instead of hostname
do not automatically dismiss major version upgrades for lists
* fix link to tokenlists.org
* add uma
* clean up styling in list rows
* bump token list version
* bump token list version again
* hover symbol to see currency name
* bump version
* add cmc lists, dharma list
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
2020-08-26 16:46:21 +03:00
|
|
|
import { namehash } from 'ethers/lib/utils'
|
|
|
|
import { useMemo } from 'react'
|
|
|
|
import { useSingleCallResult } from '../state/multicall/hooks'
|
|
|
|
import isZero from '../utils/isZero'
|
|
|
|
import { useENSRegistrarContract, useENSResolverContract } from './useContract'
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Does a lookup for an ENS name to find its contenthash.
|
|
|
|
*/
|
|
|
|
export default function useENSContentHash(ensName?: string | null): { loading: boolean; contenthash: string | null } {
|
|
|
|
const ensNodeArgument = useMemo(() => {
|
|
|
|
if (!ensName) return [undefined]
|
|
|
|
try {
|
|
|
|
return ensName ? [namehash(ensName)] : [undefined]
|
|
|
|
} catch (error) {
|
|
|
|
return [undefined]
|
|
|
|
}
|
|
|
|
}, [ensName])
|
|
|
|
const registrarContract = useENSRegistrarContract(false)
|
|
|
|
const resolverAddressResult = useSingleCallResult(registrarContract, 'resolver', ensNodeArgument)
|
|
|
|
const resolverAddress = resolverAddressResult.result?.[0]
|
|
|
|
const resolverContract = useENSResolverContract(
|
|
|
|
resolverAddress && isZero(resolverAddress) ? undefined : resolverAddress,
|
|
|
|
false
|
|
|
|
)
|
|
|
|
const contenthash = useSingleCallResult(resolverContract, 'contenthash', ensNodeArgument)
|
|
|
|
|
|
|
|
return {
|
|
|
|
contenthash: contenthash.result?.[0] ?? null,
|
2021-02-16 11:26:53 +03:00
|
|
|
loading: resolverAddressResult.loading || contenthash.loading
|
feat(lists): allow selecting and adding token lists (#1023)
* more list stuff
Use the selected list instead of the default list, but also use the default list
start list selection code
* move token warning to a modal, fix the install issue
* add/remove/enter key
* handle enter on currency select for ETHER
* change slippage tolerance to be a slider
* make ui closer to the mocks
* commit slider changes
* back to tabs
* copy changes
* bump list version
* some styling for the list select
* bump uniswap default list version
* use contract calls to get ens names and addresses
* show list logo
* fix failing integration test
* .eth.link
* list introduction screen
* remove showSendWithSwap
* fix integration and unit tests
* resolve ENS names
* logos from ens
* fix the lint errors
* some refactoring to better support using a the library provider from the user for resolving ENS names
* load list info from the list url for the introduction page
* make it slightly harder to remove a list
* minor clean up, some help text and links
* remove icon from list update popup
* show added/removed tokens
* add GA everywhere, don't debounce contenthash lookups
* show tags
* fix tag key
* tag display, list rendering, needs optimization
* fix list fetching in firefox, style issue in safari
* sort the lists, clean up styling
* use client provider when possible
* show token warning for url loaded tokens
* improve the warning modal
* some refactoring to fix the list fetching on networks other than mainnet
* fix tests
* some minor improvements
* increase timeout to maybe fix integration tests which pass locally
* build for tests using the dev network url
* reset the lists if we deleted the other two copies
* improve how we handle updating the default list of lists
* fix integration test
* Update token list selection styles
* fix external links, reuse the on click outside code, show add errors
* show the list origin instead of the full url
* fix update list link
* show host instead of hostname
do not automatically dismiss major version upgrades for lists
* fix link to tokenlists.org
* add uma
* clean up styling in list rows
* bump token list version
* bump token list version again
* hover symbol to see currency name
* bump version
* add cmc lists, dharma list
Co-authored-by: Callil Capuozzo <callil.capuozzo@gmail.com>
2020-08-26 16:46:21 +03:00
|
|
|
}
|
|
|
|
}
|