// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; import "@openzeppelin/contracts/utils/introspection/ERC165.sol"; import "@openzeppelin/contracts/utils/Address.sol"; import "./IContractEntity.sol"; import "../metahub/core/IMetahub.sol"; abstract contract ContractEntity is IContractEntity, ERC165 { /** * @dev Metahub contract. * Contract (e.g. ACL, AssetClassRegistry etc), the Metahub depends on * still can be Contract Entities (with key), but * do not have the `_metahub` reference set. */ IMetahub internal _metahub; /** * @inheritdoc IERC165 */ function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) { return interfaceId == type(IContractEntity).interfaceId || super.supportsInterface(interfaceId); } }