Skip to content
Open
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