// Source: contracts/interfaces/IFinalProxy.sol pragma solidity ^0.8.0; // SPDX-License-Identifier: MIT // File contracts/interfaces/IProxy.sol // General interface for upgradable contracts interface IProxy { error InvalidOwner(); error InvalidImplementation(); error SetupFailed(); error NotOwner(); error AlreadyInitialized(); function implementation() external view returns (address); function setup(bytes calldata setupParams) external; } // File contracts/interfaces/IFinalProxy.sol // General interface for upgradable contracts interface IFinalProxy is IProxy { function isFinal() external view returns (bool); function finalUpgrade(bytes memory bytecode, bytes calldata setupParams) external returns (address); }