Skip to content

Commit

Permalink
fix(change_resolver): remove import from ethers subpaths
Browse files Browse the repository at this point in the history
  • Loading branch information
jrhender committed May 28, 2021
1 parent 4c5b6c9 commit 8397652
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 21 deletions.
16 changes: 7 additions & 9 deletions src/utils/change_resolver.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import { DomainHierarchy, PublicResolver__factory } from "@energyweb/iam-contracts";
import { Wallet } from "ethers";
import { providers } from "ethers";
import { namehash } from "ethers/utils";
import { Wallet, providers, utils } from "ethers";
import { EnsRegistryFactory } from "../../ethers/EnsRegistryFactory";
import { NODE_FIELDS_KEY } from "./constants";
import { labelhash } from "./ENS_hash";
Expand Down Expand Up @@ -41,23 +39,23 @@ export async function changeResolver(
await migrate(parentNode);
const childNodes = await domainHierarchy.getSubdomainsUsingResolver({ domain: parentNode, mode: "FIRSTLEVEL" });
for (const node of childNodes) {
const owner = await registry.functions.owner(namehash(node));
const owner = await registry.functions.owner(utils.namehash(node));
owners[node] = owner;
await registry.setSubnodeOwner(namehash(parentNode), labelhash(node.split('.')[0]), rootOwner);
await registry.setSubnodeOwner(utils.namehash(parentNode), labelhash(node.split('.')[0]), rootOwner);
await migrate(node);
await changeDomainResolver(node);
}
};

const migrate = async (node: string) => {
await registry.setResolver(namehash(node), newResolverAddr);
await newResolver.setName(namehash(node), await resolver.name(namehash(node)));
await newResolver.setText(namehash(node), NODE_FIELDS_KEY, await resolver.text(namehash(node), NODE_FIELDS_KEY));
await registry.setResolver(utils.namehash(node), newResolverAddr);
await newResolver.setName(utils.namehash(node), await resolver.name(utils.namehash(node)));
await newResolver.setText(utils.namehash(node), NODE_FIELDS_KEY, await resolver.text(utils.namehash(node), NODE_FIELDS_KEY));
};

const restoreOwners = async () => {
for (const node in owners) {
await registry.setOwner(namehash(node), owners[node]);
await registry.setOwner(utils.namehash(node), owners[node]);
}
};

Expand Down
23 changes: 11 additions & 12 deletions test/utilsTests/changeResolver.testSuite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@ import { changeResolver, ChangeResolverParams } from '../../src/utils/change_res
import { root, rootOwner, rpcUrl } from '../iam.test';
import { org1 } from '../organization.testSuite';
import { ensRegistry, ensResolver, provider } from '../setup_contracts';
import { namehash } from 'ethers/utils';
import { NODE_FIELDS_KEY } from '../../src/utils/constants';
import { Contract, Wallet } from 'ethers';
import { Contract, Wallet, utils } from 'ethers';

export const changeResolverTests = () => {
let newResolverAddr: string;
Expand Down Expand Up @@ -47,7 +46,7 @@ export const changeResolverTests = () => {
await changeResolver({ ...params, rootNode });

const domains = await domainHierarchy.getSubdomainsUsingResolver({ domain: rootNode, mode: "ALL" });
const resolvers = await Promise.all(domains.map(async (domain) => await ensRegistry.resolver(namehash(domain))));
const resolvers = await Promise.all(domains.map(async (domain) => await ensRegistry.resolver(utils.namehash(domain))));

expect(
resolvers
Expand All @@ -58,21 +57,21 @@ export const changeResolverTests = () => {
test('root resolver can be changed', async () => {
const rootNode = `${root}`;

await ensRegistry.setOwner(namehash('org1-1.org1.root'), '0xE45Ad1e7522288588dA6829A9ea6A09e92FCDe14');
await ensRegistry.setOwner(namehash('org1.root'), '0xE45Ad1e7522288588dA6829A9ea6A09e92FCDe14');
await ensRegistry.setOwner(utils.namehash('org1-1.org1.root'), '0xE45Ad1e7522288588dA6829A9ea6A09e92FCDe14');
await ensRegistry.setOwner(utils.namehash('org1.root'), '0xE45Ad1e7522288588dA6829A9ea6A09e92FCDe14');

await changeResolver({ ...params, rootNode });

const nodes = await domainHierarchy.getSubdomainsUsingResolver({ domain: rootNode, mode: "ALL" });

const nodeDefs = await Promise.all(nodes.map(async (domain) => ({
name: await ensResolver.name(namehash(domain)),
fields: await ensResolver.text(namehash(domain), NODE_FIELDS_KEY),
owner: await ensRegistry.owner(namehash(domain)),
name: await ensResolver.name(utils.namehash(domain)),
fields: await ensResolver.text(utils.namehash(domain), NODE_FIELDS_KEY),
owner: await ensRegistry.owner(utils.namehash(domain)),
})
));

const resolvers = await Promise.all(nodes.map(async (node) => await ensRegistry.resolver(namehash(node))));
const resolvers = await Promise.all(nodes.map(async (node) => await ensRegistry.resolver(utils.namehash(node))));

await changeResolver({ ...params, rootNode });

Expand All @@ -83,9 +82,9 @@ export const changeResolverTests = () => {

/** node names, definitions and owners should be migrated along with nodes */
expect(nodeDefs).toEqual(await Promise.all(nodes.map(async (domain) => ({
name: await newResolver.name(namehash(domain)),
fields: await newResolver.text(namehash(domain), NODE_FIELDS_KEY),
owner: await ensRegistry.owner(namehash(domain)),
name: await newResolver.name(utils.namehash(domain)),
fields: await newResolver.text(utils.namehash(domain), NODE_FIELDS_KEY),
owner: await ensRegistry.owner(utils.namehash(domain)),
})
)));
});
Expand Down

0 comments on commit 8397652

Please sign in to comment.