// SPDX-License-Identifier: MIT pragma solidity >=0.8.4; interface IDNSRecordResolver { // DNSRecordChanged is emitted whenever a given node/name/resource's RRSET is updated. event DNSRecordChanged( bytes32 indexed node, bytes name, uint16 resource, bytes record ); // DNSRecordDeleted is emitted whenever a given node/name/resource's RRSET is deleted. event DNSRecordDeleted(bytes32 indexed node, bytes name, uint16 resource); /// Obtain a DNS record. /// @param node the namehash of the node for which to fetch the record /// @param name the keccak-256 hash of the fully-qualified name for which to fetch the record /// @param resource the ID of the resource as per https://en.wikipedia.org/wiki/List_of_DNS_record_types /// @return the DNS record in wire format if present, otherwise empty function dnsRecord( bytes32 node, bytes32 name, uint16 resource ) external view returns (bytes memory); }