Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8be3fc9313 | ||
|
|
bcf8b55331 | ||
|
|
380b9ea508 |
@@ -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
2
constants/graphs.ts
Normal file
@@ -0,0 +1,2 @@
|
||||
export const RELAYER_GRAPH =
|
||||
'https://gateway.thegraph.com/api/6a217817dd87d33db10beed79b044a91/subgraphs/id/DgKwfAbLfynpiq7fDJy59LDnVnia4Y5nYeRDBYi9qezc'
|
||||
@@ -7,3 +7,4 @@ export * from './relayer'
|
||||
export * from './variables'
|
||||
export * from './contracts'
|
||||
export * from './chainInfo'
|
||||
export * from './graphs'
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user