Skip to content

Instantly share code, notes, and snippets.

@Hero-Development
Created July 8, 2022 16:38
Show Gist options
  • Save Hero-Development/1a80cc5106c7990ebe4a1308447d0d6c to your computer and use it in GitHub Desktop.
Save Hero-Development/1a80cc5106c7990ebe4a1308447d0d6c to your computer and use it in GitHub Desktop.
How to resolve ENS on-chain
interface DefaultReverseResolver{
function name(bytes32 node) external view returns (string memory);
}
interface ENS{
function resolver(bytes32 node) external view returns (address);
}
interface ReverseRegistrar{
function node(address addr) external pure returns (bytes32);
}
contract ENSLookup{
ENS public ens = ENS( 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e );
ReverseRegistrar public reverseResolver = ReverseRegistrar( 0x084b1c3c81545d370f3634392de611caabff8148 );
function lookup( address addr ) external view returns( string memory ){
bytes32 node = reverseResolver.node( addr );
address addr = ens.resolver( node );
if( addr == address(0) ){
return addr.toHexString();
}
else{
return DefaultReverseResolver( addr ).name( node );
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment