Skip to content
Lattice

ERC6538RegistryLib Constants

Git Source

ERC6538REGISTRY_STORAGE_SLOT

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

bytes32 constant ERC6538REGISTRY_STORAGE_SLOT = 0x77e72c5973ed8cfb58126100bfd525d25949aa328155f37334e51548cdc80100;

ERC6538REGISTRY_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 ERC6538REGISTRY_ERC165_STORAGE_LOCATION =
    0x9ca7f3e2e2bfb15fdf072b85dde92837cddacee6cf2f6b38cd06c9457c1c4200;

ERC165_MAP_IERC6538REGISTRY_SLOT

0x7b1f57cb is type(IERC6538Registry).interfaceId. keccak256(abi.encode(bytes4(0x7b1f57cb), 0x9ca7f3e2e2bfb15fdf072b85dde92837cddacee6cf2f6b38cd06c9457c1c4200)).

bytes32 constant ERC165_MAP_IERC6538REGISTRY_SLOT = 0xba3bf91c60e936a8bb7a4c2729c74c6ef842a655f3dff9707765ac926778cd2e;

ERC6538REGISTRY_ENTRY_TYPE_HASH

EIP-712 typehash for an on-behalf registration entry. Byte-identical to the canonical ERC-6538 reference (Erc6538RegistryEntry) so wallets that implement ERC-6538 signing produce compatible signatures against this diamond's domain.

bytes32 constant ERC6538REGISTRY_ENTRY_TYPE_HASH =
    keccak256("Erc6538RegistryEntry(uint256 schemeId,bytes stealthMetaAddress,uint256 nonce)");