Compare commits

3 Commits

Author SHA1 Message Date
vp
8be3fc9313 ens graph no need 2025-06-13 12:24:14 -07:00
vp
bcf8b55331 fix graph request 2025-06-13 11:27:16 -07:00
vp
380b9ea508 Update RPC and ENS graph 2025-06-13 10:28:52 -07:00
6 changed files with 20 additions and 12 deletions

View File

@@ -37,6 +37,7 @@
"node/no-callback-literal": 0,
"prettier/prettier": ["error", { "printWidth": 130 }],
"jsx-quotes": ["error", "prefer-single"],
"@typescript-eslint/no-magic-numbers": ["error", { "ignoreArrayIndexes": true }],
"@typescript-eslint/restrict-template-expressions": ["warn", { "allowNumber": true }],
"@typescript-eslint/explicit-function-return-type": 0,
"@typescript-eslint/array-type": 2,
@@ -47,7 +48,6 @@
"@typescript-eslint/no-empty-interface": 2,
"@typescript-eslint/no-explicit-any": 2,
"@typescript-eslint/no-extra-non-null-assertion": 2,
"@typescript-eslint/no-magic-numbers": 2,
"@typescript-eslint/no-require-imports": 2,
"@typescript-eslint/require-await": 2,
"@typescript-eslint/no-floating-promises": 0,

2
constants/graphs.ts Normal file
View File

@@ -0,0 +1,2 @@
export const RELAYER_GRAPH =
'https://gateway.thegraph.com/api/6a217817dd87d33db10beed79b044a91/subgraphs/id/DgKwfAbLfynpiq7fDJy59LDnVnia4Y5nYeRDBYi9qezc'

View File

@@ -7,3 +7,4 @@ export * from './relayer'
export * from './variables'
export * from './contracts'
export * from './chainInfo'
export * from './graphs'

View File

@@ -2,24 +2,26 @@ 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 || undefined
return ownerAddress
} catch (err) {
return undefined
}
}
async function getNameFromHash(ensHash: string) {
async function getRelayerEnsName(ensHash: string) {
try {
const response = await fetch('https://tornadocash-rpc.com/subgraphs/name/graphprotocol/ens', {
const response = await fetch(RELAYER_GRAPH, {
body: JSON.stringify({
query: `{
domain(id: "${ensHash}") {
name
relayers(first: 1, where: {ensHash: "${ensHash}"}){
ensName
}
}`,
}),
@@ -28,9 +30,12 @@ async function getNameFromHash(ensHash: string) {
const { data } = await response.json()
return data.domain.name
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, getNameFromHash }
export { getEnsOwner, getRelayerEnsName }

View File

@@ -1,9 +1,9 @@
import { checkSubdomains, subdomains } from './ensSubdomains'
import { getEnsOwner, getNameFromHash } from './ens'
import { getEnsOwner, getRelayerEnsName } from './ens'
export const ensService = {
subdomains,
getEnsOwner,
checkSubdomains,
getNameFromHash,
getRelayerEnsName,
}

View File

@@ -55,7 +55,7 @@ export const actions: ActionTree<RelayerState, RootState> = {
try {
const { chainId } = getters.dependencies
const ensName = await ensService.getNameFromHash(ensHash)
const ensName = await ensService.getRelayerEnsName(ensHash)
const subdomains = await ensService.checkSubdomains(ensName, chainId)
const mainnetSubdomain = subdomains.find((el) => el.chainId === ChainId.MAINNET)