Smart Contracts
Contracts
Resolvers
CCIP
OffchainResolver

OffchainResolver

Git Source (opens in a new tab)

Inherits: IExtendedResolver, IERC165, Ownable

Implements an ENS resolver that directs all queries to a CCIP read gateway. Callers must implement EIP 3668 and ENSIP 10.

State Variables

url

string public url;

signers

mapping(address => bool) public signers;

Functions

constructor

constructor(string memory _url, address[] memory _signers);

makeSignatureHash

function makeSignatureHash(address target, uint64 expires, bytes memory request, bytes memory result)
    external
    pure
    returns (bytes32);

resolve

Resolves a name, as specified by ENSIP 10 (wildcard).

function resolve(bytes calldata name, bytes calldata data) external view override returns (bytes memory);

Parameters

NameTypeDescription
namebytesThe DNS-encoded name to resolve.
databytesThe ABI encoded data for the underlying resolution function (Eg, addr(bytes32), text(bytes32,string), etc).

Returns

NameTypeDescription
<none>bytesThe return data, ABI encoded identically to the underlying function.

updateSigners

function updateSigners(address[] calldata _signers, bool[] calldata _isSigner) external onlyOwner;

updateUrl

function updateUrl(string calldata _url) external onlyOwner;

resolveWithProof

Callback used by CCIP read compatible clients to verify and parse the response.

function resolveWithProof(bytes calldata response, bytes calldata extraData) external view returns (bytes memory);

supportsInterface

function supportsInterface(bytes4 interfaceID) public pure returns (bool);

Events

NewSigners

event NewSigners(address indexed signer, bool isSigner);

UpdateUrl

event UpdateUrl(string url);

Errors

OffchainLookup

error OffchainLookup(address sender, string[] urls, bytes callData, bytes4 callbackFunction, bytes extraData);