// Source: contracts/interfaces/IImplementation.sol pragma solidity ^0.8.0; // SPDX-License-Identifier: MIT // File contracts/interfaces/IContractIdentifier.sol // General interface for upgradable contracts interface IContractIdentifier { /** * @notice Returns the contract ID. It can be used as a check during upgrades. * @dev Meant to be overridden in derived contracts. * @return bytes32 The contract ID */ function contractId() external pure returns (bytes32); } // File contracts/interfaces/IImplementation.sol interface IImplementation is IContractIdentifier { error NotProxy(); function setup(bytes calldata data) external; }