tonred team
- Unreserve domain
- Versionable
On root contract for specific TLD call:
resolve(string path) public view responsible returns (address certificate)
.
This method will return the address of the domain certificate. Check if such account exists and then call methods for obtaining DNS records from it:
query(uint32 key) public view responsible returns (optional(TvmCell))
ID | description | ABI |
---|---|---|
0 | Everscale account address (target address) | address |
1 | ADNL address | uint256 |
todo | ||
// fake code
mapping(string => address) tld;
tld["ever"] = address(0:abc..);
string toResolve = "somedomain.ever";
Root root = Root(tld.find(toResolve));
address certificateAddr = root.resolve(toResolve);
if (!isAccountActive(certificateAddr)) return;
// Certificate can be domain or subdomain or just use Certificate interface
Domain domain = Domain(certificateAddr);
// id=0 to get Everscale account address record;
optional(TvmCell) targetRecord = domain.query(0);
if(!targetRecord.hasValue()) return;
address target = targetRecord.get();
return target
- Find certificate address by full path
- Create new domain
- Renew exist domains
- Confiscate domain via DAO voting
- Reserve and unreserve domain via DAO voting
- Execute any action via DAO voting
- Activate or deactivate root contracts (only admin)
+ All TIP4 (TIP4.1, TIP4.2, TIP4.3) methods
- Resolve domain
- Query record(s)
- Change target or record
- Create subdomain
+ All TIP4 (TIP4.1, TIP4.2, TIP4.3) methods
All domain methods
+ Start auction in from new domains
+ All TIP4 (TIP4.1, TIP4.2, TIP4.3) methods
RESERVED
- reserved by daoNEW
- first N days domain is new, anybody can start auctionIN_ZERO_AUCTION
- new domain that in auction newCOMMON
- common certificate, nothing specialEXPIRING
- domain will be expired in N days, user cannot create auction for itGRACE
- N days after expiring, where user can renew it for additional feeEXPIRED
- domain is fully expired (after grace period), anybody can destroy it
Anyone can call
- Get price via
expectedRegisterAmount
in root - Build payload via
buildRegisterPayload
in root - Send tokens and payload to root's TIP3 wallet with notify
- Sender will receive
onMinted
callback if success- Get tokens back with
TransferBackReason.ALREADY_EXIST
reason if domain already exist - Get tokens back with
TransferBackReason.*
reason in case of another errors
Only domain owner can call
- Get
expectedRenewAmount
in domain - Build payload via
buildRenewPayload
in root - Send tokens and payload to root's TIP3 wallet with notify
- Sender will receive
onRenewed
callback if success- Get tokens back with
TransferBackReason.DURATION_OVERFLOW
reason if duration is too big - Get tokens back with
TransferBackReason.*
reason in case of another errors
todo...
- Call
createSubdomain
in domain/subdomain, where:name
- name of subdomainowner
- owner of new subdomainrenewable
- a flag that marks if owner of subdomain can renew it in any time
owner
received:onMinted
callback if successonCreateSubdomainError
withTransferBackReason.*
reason callback in case of error
todo image