Skip to content
Lattice

ENSSubnameIssuerLib Constants

Git Source

ENS_SUBNAME_ISSUER_STORAGE_SLOT

keccak256(abi.encode(uint256(keccak256("lattice.storage.ENSSubnameIssuer")) - 1)) & ~bytes32(uint256(0xff)). Verify with: cast index-erc7201 "lattice.storage.ENSSubnameIssuer".

bytes32 constant ENS_SUBNAME_ISSUER_STORAGE_SLOT = 0xecd97908615d460a8806be2f460463395b75373d406444064e9704ed5d892e00;

ENS_SUBNAME_ISSUER_ERC165_STORAGE_LOCATION

ERC-165 storage location (same across all Lattice modules). keccak256(abi.encode(uint256(keccak256("diamond.lib.storage.ERC165")) - 1)) & ~bytes32(uint256(0xff)).

bytes32 constant ENS_SUBNAME_ISSUER_ERC165_STORAGE_LOCATION =
    0x9ca7f3e2e2bfb15fdf072b85dde92837cddacee6cf2f6b38cd06c9457c1c4200;

ERC165_MAP_IENSSUBNAMEISSUER_SLOT

0x6ead39e3 is type(IENSSubnameIssuer).interfaceId. keccak256(abi.encode(bytes4(0x6ead39e3), 0x9ca7f3e2e2bfb15fdf072b85dde92837cddacee6cf2f6b38cd06c9457c1c4200)).

bytes32 constant ERC165_MAP_IENSSUBNAMEISSUER_SLOT = 0x19f98b1c052723a0f45e31ccce192390fdd3867a76366f19df750eb883381f60;

ENS_SUBNAME_ISSUER_ROLE

Role allowed to mint subnames under the diamond's parent name(s). Distinct from ENS_MANAGER_ROLE because issuing identities is a higher-stakes, separable permission.

bytes32 constant ENS_SUBNAME_ISSUER_ROLE = keccak256("ENS_SUBNAME_ISSUER_ROLE");