Skip to content
This repository was archived by the owner on Mar 5, 2025. It is now read-only.

Commit af64729

Browse files
cgeweckeryanio
andauthored
Simplify ENS E2E test (#3427)
* Simplify ENS E2E test setup * Remove script `test:e2e:ens` * Fix deprecation notices in ens tests (owner => getOwner, resolver => getResolver) Co-authored-by: Ryan Ghods <[email protected]>
1 parent 9394a4d commit af64729

File tree

9 files changed

+125
-183
lines changed

9 files changed

+125
-183
lines changed

.travis.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@ matrix:
2323
- node_js: 12
2424
env: TEST=e2e_windows
2525
os: windows
26-
- node_js: 10
27-
env: TEST=e2e_ens
2826
- node_js: 10
2927
env: TEST=e2e_browsers
3028
addons:

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
"test:e2e:publish": "./scripts/e2e.npm.publish.sh",
4848
"test:e2e:truffle": "./scripts/e2e.truffle.sh",
4949
"test:e2e:mosaic": "./scripts/e2e.mosaic.sh",
50-
"test:e2e:ens": "./scripts/e2e.ens.sh",
5150
"test:e2e:ganache:core": "./scripts/e2e.ganache.core.sh",
5251
"ci": "./scripts/ci.sh",
5352
"coveralls": "./scripts/coveralls.sh",

scripts/ci.sh

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ elif [ "$TEST" = "unit_and_e2e_clients" ]; then
2323
npm run test:e2e:ganache
2424
npm run test:e2e:geth:insta
2525
npm run test:e2e:geth:auto
26-
npm run test:e2e:ens
2726
npm run test:unit
2827
npm run coveralls
2928

@@ -45,10 +44,6 @@ elif [ "$TEST" = "e2e_mosaic" ]; then
4544
npm run test:e2e:publish
4645
npm run test:e2e:mosaic
4746

48-
elif [ "$TEST" = "e2e_ens" ]; then
49-
50-
npm run test:e2e:ens
51-
5247
elif [ "$TEST" = "e2e_windows" ]; then
5348

5449
bash ./scripts/e2e.npm.publish.sh

scripts/e2e.ens.sh

Lines changed: 0 additions & 64 deletions
This file was deleted.

scripts/js/ens.js

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
const ENSArtifact = require("@ensdomains/ens/build/contracts/ENSRegistry");
2+
const FIFSRegistrarArtifact = require("@ensdomains/ens/build/contracts/FIFSRegistrar");
3+
const ReverseRegistrarArtifact = require("@ensdomains/ens/build/contracts/ReverseRegistrar");
4+
const PublicResolverArtifact = require("@ensdomains/resolver/build/contracts/PublicResolver");
5+
const namehash = require('eth-ens-namehash');
6+
7+
const addressZero = "0x0000000000000000000000000000000000000000";
8+
const addressOne = "0x0000000000000000000000000000000000000001";
9+
const tld = "test";
10+
11+
async function setupENS(web3) {
12+
13+
const options = {
14+
bytecode: undefined,
15+
gasPrice: '1',
16+
gas: 5500000
17+
}
18+
19+
const accounts = await web3.eth.getAccounts();
20+
const from = { from: accounts[0] };
21+
22+
// ENS
23+
options.data = ENSArtifact.bytecode;
24+
const ENS = new web3.eth.Contract(ENSArtifact.abi, options)
25+
26+
const ens = await ENS
27+
.deploy()
28+
.send(from);
29+
30+
// PublicResolver
31+
options.data = PublicResolverArtifact.bytecode;
32+
const PublicResolver = new web3.eth.Contract(PublicResolverArtifact.abi, options)
33+
34+
const resolver = await PublicResolver
35+
.deploy({ arguments: [ens.options.address] })
36+
.send(from);
37+
38+
await setupResolver(ens, resolver, accounts[0], web3);
39+
40+
// Registrar
41+
options.data = FIFSRegistrarArtifact.bytecode;
42+
const FIFSRegistrar = new web3.eth.Contract(FIFSRegistrarArtifact.abi, options)
43+
44+
const registrar = await FIFSRegistrar
45+
.deploy({ arguments: [ens.options.address, namehash.hash(tld)] })
46+
.send(from);
47+
48+
await setupRegistrar(ens, registrar.options.address, accounts[0], web3);
49+
50+
// Reverse Registrar
51+
options.data = ReverseRegistrarArtifact.bytecode;
52+
const ReverseRegistrar = new web3.eth.Contract(ReverseRegistrarArtifact.abi, options)
53+
54+
const reverse = await ReverseRegistrar
55+
.deploy({ arguments: [ens.options.address, resolver.options.address] })
56+
.send(from);
57+
58+
await setupReverseRegistrar(ens, reverse.options.address, accounts[0], web3);
59+
60+
return {
61+
registry: ens.options.address,
62+
resolver: resolver.options.address,
63+
fifsRegistrar: registrar.options.address,
64+
reverseRegistrar: reverse.options.address
65+
}
66+
};
67+
68+
async function setupResolver(ens, resolver, account, web3) {
69+
const node = namehash.hash("resolver");
70+
const label = web3.utils.sha3("resolver");
71+
72+
await ens
73+
.methods
74+
.setSubnodeOwner(addressZero, label, account)
75+
.send({from: account});
76+
77+
await ens
78+
.methods
79+
.setResolver(node, resolver.options.address)
80+
.send({from: account});
81+
82+
await resolver
83+
.methods
84+
.setAddr(node, addressOne)
85+
.send({from: account});
86+
}
87+
88+
async function setupRegistrar(ens, address, account, web3) {
89+
await ens
90+
.methods
91+
.setSubnodeOwner(addressZero, web3.utils.sha3(tld), address)
92+
.send({from: account});
93+
}
94+
95+
async function setupReverseRegistrar(ens, address, account, web3) {
96+
await ens
97+
.methods
98+
.setSubnodeOwner(addressZero, web3.utils.sha3("reverse"), account)
99+
.send({from: account});
100+
101+
await ens
102+
.methods
103+
.setSubnodeOwner(namehash.hash("reverse"), web3.utils.sha3("addr"), address)
104+
.send({from: account});
105+
}
106+
107+
module.exports = setupENS

scripts/js/ens/1_initial_migration.js

Lines changed: 0 additions & 86 deletions
This file was deleted.

scripts/js/ens/truffle-config.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

test/e2e.ens.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
1-
const addresses = require('./config/ensAddresses');
2-
const registryAddr = addresses.registry;
3-
const resolverAddr = addresses.resolver;
1+
const setupENS = require('../scripts/js/ens');
42
const utils = require('./helpers/test.utils');
53
const Web3 = utils.getWeb3();
64
const assert = require('assert');
75

86
describe('ENS [ @E2E ]', function () {
7+
this.timeout(50000);
8+
99
let web3;
1010
let account;
11+
let accounts;
12+
let addresses;
13+
let registryAddr;
14+
let resolverAddr;
15+
16+
before(async function(){
17+
web3 = new Web3('http://localhost:8545');
18+
accounts = await web3.eth.getAccounts();
19+
account = accounts[0];
1120

12-
if (!process.env.E2E_ENS) {
13-
return;
14-
}
15-
16-
beforeEach(async function () {
17-
web3 = new Web3('ws://localhost:' + utils.getWebsocketPort());
21+
addresses = await setupENS(web3);
22+
registryAddr = addresses.registry;
23+
resolverAddr = addresses.resolver;
1824
web3.eth.ens.registryAddress = registryAddr;
19-
const accounts = await web3.eth.getAccounts();
20-
account = accounts[0];
2125
});
2226

2327
it('custom registry got defined in the ENS module', function () {

test/eth.ens.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1345,7 +1345,7 @@ describe('ens', function () {
13451345
});
13461346
provider.injectResult('0x0000000000000000000000000123456701234567012345670123456701234567');
13471347

1348-
const owner = await web3.eth.ens.registry.owner('foobar.eth');
1348+
const owner = await web3.eth.ens.registry.getOwner('foobar.eth');
13491349

13501350
assert.equal(owner, '0x0123456701234567012345670123456701234567');
13511351
});
@@ -1482,7 +1482,7 @@ describe('ens', function () {
14821482
});
14831483
provider.injectResult('0x0000000000000000000000000123456701234567012345670123456701234567');
14841484

1485-
const resolver = await web3.eth.ens.resolver('foobar.eth');
1485+
const resolver = await web3.eth.ens.getResolver('foobar.eth');
14861486

14871487
assert.equal(resolver.options.address, '0x0123456701234567012345670123456701234567');
14881488
});
@@ -1500,7 +1500,7 @@ describe('ens', function () {
15001500
});
15011501
provider.injectResult('0x0000000000000000000000000123456701234567012345670123456701234567');
15021502

1503-
web3.eth.ens.resolver('foobar.eth', function (error, resolver) {
1503+
web3.eth.ens.getResolver('foobar.eth', function (error, resolver) {
15041504
assert.equal(resolver.options.address, '0x0123456701234567012345670123456701234567');
15051505
assert.equal(error.options.address, '0x0123456701234567012345670123456701234567'); // For backward compatibility
15061506

0 commit comments

Comments
 (0)