Skip to content

Commit

Permalink
SetName
Browse files Browse the repository at this point in the history
  • Loading branch information
jefflau committed Sep 30, 2020
1 parent 8ddbc95 commit b09d1c5
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 24 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"@babel/plugin-transform-spread": "^7.2.2",
"@babel/polyfill": "^7.4.4",
"@babel/preset-env": "^7.4.4",
"@ensdomains/mock": "^2.0.22",
"@ensdomains/mock": "^2.0.23",
"babel-eslint": "^9.0.0",
"babel-jest": "^23.6.0",
"babel-jest-assertions": "^0.1.0",
Expand Down
19 changes: 9 additions & 10 deletions src/__tests__/ens.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ describe('Blockchain tests', () => {
} = await deployENS({
web3,
accounts,
dnssec: true,
})

baseRegistrar = baseRegistrarAddress
Expand Down Expand Up @@ -347,15 +346,15 @@ describe('Blockchain tests', () => {
expect(name).toBe('eth')
})

// test('claimAndSetReverseRecordName claims and sets a name', async () => {
// const accounts = await getAccounts()
// const { name } = await ens.getName(accounts[0])
// expect(name).toBe('abittooawesome.eth')
// const tx = await ens.claimAndSetReverseRecordName('resolver.eth', 2000000)
// await tx.wait()
// const { name: nameAfter } = await ens.getName(accounts[0])
// expect(nameAfter).toBe('resolver.eth')
// })
test('claimAndSetReverseRecordName claims and sets a name', async () => {
const accounts = await getAccounts()
const { name } = await ens.getName(accounts[0])
expect(name).toBe('abittooawesome.eth')
const tx = await ens.setReverseRecord('resolver.eth')
await tx.wait()
const { name: nameAfter } = await ens.getName(accounts[0])
expect(nameAfter).toBe('resolver.eth')
})
})

// describe('Helper functions', () => {
Expand Down
46 changes: 33 additions & 13 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { ethers } from 'ethers'
import { formatsByName } from '@ensdomains/address-encoder'
import { abi as ensContract } from '@ensdomains/ens/build/contracts/ENS.json'
import { abi as resolverContract } from '@ensdomains/resolver/build/contracts/Resolver.json'
import { abi as reverseRegistrarContract } from '@ensdomains/ens/build/contracts/ReverseRegistrar.json'

import { emptyAddress, namehash, labelhash } from './utils'
import {
Expand Down Expand Up @@ -30,6 +31,10 @@ function getENSContract({ address, provider }) {
return new ethers.Contract(address, ensContract, provider)
}

function getReverseRegistrarContract({ address, provider }) {
return new ethers.Contract(address, reverseRegistrarContract, provider)
}

async function getAddrWithResolver({ name, key, resolverAddr, provider }) {
const nh = namehash(name)
try {
Expand Down Expand Up @@ -85,7 +90,7 @@ async function getContentWithResolver({ name, resolverAddr, provider }) {
try {
const Resolver = getResolverContract({
address: resolverAddr,
provider: this.provider,
provider,
})
const contentHashSignature = utils
.solidityKeccak256(['string'], ['contenthash(bytes32)'])
Expand Down Expand Up @@ -139,7 +144,7 @@ async function setContenthashWithResolver({
address: resolverAddr,
provider: signer,
})
return Resolver.setContenthash(this.namehash, encodedContenthash)
return Resolver.setContenthash(namehash(name), encodedContenthash)
}

async function getTextWithResolver({ name, key, resolverAddr, provider }) {
Expand Down Expand Up @@ -239,7 +244,7 @@ class Name {
}

async getAddress(coinId) {
const resolverAddr = await getResolverAddr()
const resolverAddr = await this.getResolverAddr()

if (parseInt(resolverAddr, 16) === 0) return emptyAddress
const Resolver = getResolverContract({
Expand Down Expand Up @@ -267,7 +272,7 @@ class Name {
if (!address) {
throw new Error('No address provided')
}
const resolverAddr = await getResolverAddr()
const resolverAddr = await this.getResolverAddr()
return setAddrWithResolver({
name: this.name,
key,
Expand All @@ -278,7 +283,7 @@ class Name {
}

async getContent() {
const resolverAddr = await getResolverAddr()
const resolverAddr = await this.getResolverAddr()
return getContentWithResolver({
name: this.name,
resolverAddr,
Expand All @@ -287,28 +292,35 @@ class Name {
}

async setContenthash(content) {
const resolverAddr = await getResolverAddr()
const resolverAddr = await this.getResolverAddr()
console.log(content)
return setContenthashWithResolver({
name,
name: this.name,
content,
resolverAddr,
signer: this.signer,
})
}

async getText(key) {
const resolverAddr = await getResolverAddr()
const resolverAddr = await this.getResolverAddr()
return getTextWithResolver({
name,
name: this.name,
key,
resolverAddr,
provider: this.provider,
})
}

async setText(key, recordValue) {
const resolverAddr = await getResolverAddr()
return setTextWithResolver(key, recordValue, resolverAddr)
const resolverAddr = await this.getResolverAddr()
return setTextWithResolver({
name: this.name,
key,
recordValue,
resolverAddr,
signer: this.signer,
})
}

async setSubnodeOwner(label, newOwner) {
Expand Down Expand Up @@ -396,8 +408,16 @@ export default class ENS {
console.log(`Error getting name for reverse record of ${address}`, e)
}
}
setReverseRecord(name) {
//TODO

async setReverseRecord(name, overrides) {
const reverseRegistrarAddr = await this.name('addr.reverse').getOwner(
'addr.reverse'
)
const reverseRegistrar = getReverseRegistrarContract({
address: reverseRegistrarAddr,
provider: this.signer,
})
return reverseRegistrar.setName(name)
}
}

Expand Down

0 comments on commit b09d1c5

Please sign in to comment.