Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added missing reverse registrar contract - last updated index + data mismatch issues #77

Open
wants to merge 12 commits into
base: rahul-main-changes-release
Choose a base branch
from
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,5 @@ dist

/generated
/generated/
/build
/build
/ens/modules/airstack/*
91 changes: 59 additions & 32 deletions airstack-modules/modules/airstack/domain-name/domain-name.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,10 @@ export namespace domain {
if (domain.parent == null) {
parentDomain.subdomainCount = parentDomain.subdomainCount.plus(BIGINT_ONE);
}
domain.name = name;
domain.labelName = labelName;
if (domain.name == null || domain.name!.includes("]") || domain.name!.includes("[")) {
domain.name = name;
domain.labelName = labelName;
}
let ownerAccount = getOrCreateAirAccount(chainId, newOwner, airBlock);
ownerAccount.save();
domain.owner = ownerAccount.id;
Expand Down Expand Up @@ -167,14 +169,26 @@ export namespace domain {
let domain = getOrCreateAirDomain(new Domain(domainId, chainId, airBlock, tokenAddress));
// get previous resolver
let previousResolverId = domain.resolver;
// create new resolver
let resolverEntity = getOrCreateAirResolver(domain, chainId, airBlock, resolver);
resolverEntity.save();
// update domain resolver
domain.resolver = resolverEntity.id;
// update domain resolved address
if (resolverEntity.resolvedAddress) {
domain.resolvedAddress = resolverEntity.resolvedAddress;
// check if resolver is zero address
let resolverEntity = getAirResolver(resolver, domain);
if (resolver == ZERO_ADDRESS) {
// if yes, set domain.resolver = null
domain.resolvedAddress = null;
// do recursive subdomain count decrement
saveDomainEntity(domain, airBlock);
recurseSubdomainCountDecrement(domain, chainId, airBlock, tokenAddress);
return;
} else {
if (resolverEntity == null) {
// marking domain.resolvedAddress as null as the resolver entity will be created newly
domain.resolvedAddress = null;
// create new resolver entity
resolverEntity = getOrCreateAirResolver(domain, chainId, airBlock, resolver);
resolverEntity.save();
} else {
domain.resolvedAddress = resolverEntity.resolvedAddress;
}
domain.resolver = resolverEntity.id;
}
// do recursive subdomain count decrement
saveDomainEntity(domain, airBlock);
Expand Down Expand Up @@ -394,12 +408,27 @@ export namespace domain {
airBlock,
tokenAddress,
));
// tracking registration cost in domain entity - renewal cost is not being tracked yet
domain.expiryTimestamp = expiryTimestamp; // tracking expiry timestamp in domain entity from renewal and registered events
domain.registrationCost = cost; // tracking registration cost in domain entity - renewal cost is not being tracked yet
let airToken = getOrCreateAirToken(chainId, paymentToken);
airToken.save();
domain.paymentToken = airToken.id;
if (domain.labelName !== labelName) {
if (!checkValidLabel(labelName, transactionHash) && domain.labelHash) {
const labelHash = domain.labelHash!;
labelName = '[' + labelHash.slice(2) + ']';
}
domain.labelName = labelName
domain.name = labelName + '.eth'
// creating reverse registrar to get domainId when setting primary domain
if (domain.name) {
let reverseRegistrar = createReverseRegistrar(domain.name!, domain.id, airBlock);
reverseRegistrar.save();
}
}
saveDomainEntity(domain, airBlock);
if (fromRegistrationEvent) {
domain.registrationCost = cost;
let airToken = getOrCreateAirToken(chainId, paymentToken);
airToken.save();
domain.paymentToken = airToken.id;
// name registration event
let txn = getOrCreateAirNameRegisteredTransaction(
chainId,
airBlock,
Expand All @@ -413,8 +442,6 @@ export namespace domain {
txn.save();
} else {
// name renewal event
// updating renewal cost in name renewed transaction entity
domain.expiryTimestamp = expiryTimestamp;
let txn = getOrCreateAirNameRenewedTransaction(
transactionHash,
chainId,
Expand All @@ -427,21 +454,6 @@ export namespace domain {
);
txn.save();
}
if (domain.labelName !== labelName) {
if (!checkValidLabel(labelName, transactionHash) && domain.labelHash) {
const labelHash = domain.labelHash!;
labelName = '[' + labelHash.slice(2) + ']';
}
domain.labelName = labelName
domain.name = labelName + '.eth'
// creating reverse registrar to get domainId when setting primary domain
if (domain.name) {
let reverseRegistrar = createReverseRegistrar(domain.name!, domain.id, airBlock);
reverseRegistrar.save();
}
}
saveDomainEntity(domain, airBlock);
//new name registered event
}

/**
Expand Down Expand Up @@ -976,6 +988,21 @@ export namespace domain {
return AirDomain.load(domainId);
}

/**
* @dev this function gets a air resolver entity
* @param resolver resolver address
* @param domain air domain entity
* @returns AirResolver entity or null
*/
export function getAirResolver(
resolver: string,
domain: AirDomain,
): AirResolver | null {
let id = createResolverEntityId(resolver, domain.id);
let entity = AirResolver.load(id);
return entity;
}

/**
* @dev this function does not save the returned entity
* @dev this function gets or creates a new air domain owner changed transaction entity
Expand Down
172 changes: 0 additions & 172 deletions ens/modules/airstack/common/index.ts

This file was deleted.

Loading