relayers-network-ui/services/ENS/ens.ts
2025-06-13 12:24:14 -07:00

42 lines
954 B
TypeScript

import { ChainId } from '@/types'
import { getProvider } from '@/services'
import { RELAYER_GRAPH } from '@/constants'
async function getEnsOwner(ensName: string, chainId: ChainId) {
try {
const { provider } = getProvider(chainId)
const ownerAddress = await provider.resolveName(ensName)
return ownerAddress
} catch (err) {
return undefined
}
}
async function getRelayerEnsName(ensHash: string) {
try {
const response = await fetch(RELAYER_GRAPH, {
body: JSON.stringify({
query: `{
relayers(first: 1, where: {ensHash: "${ensHash}"}){
ensName
}
}`,
}),
method: 'POST',
})
const { data } = await response.json()
if (!data.relayers.length) throw new Error('ens hash does not belong to relayer')
return data.relayers[0].ensName
} catch (err) {
throw new Error(err.message)
}
}
export { getEnsOwner, getRelayerEnsName }