LayerCover

ISystemRegistry

Interface reference for ISystemRegistry.

Interface

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "./IPoolRegistry.sol";
import "./IPolicyManager.sol";
import "./IPoolAllocations.sol";

/**
 * @title ISystemRegistry
 * @notice Interface for protocol-wide contract address discovery and dependency snapshots.
 */
interface ISystemRegistry {
    // Basic dependency tracking
    struct Dependencies {
        address capitalPool;
        address poolAllocations;
        address riskManager;
        address poolRegistry;
        address policyManager;
        address intentMatcher;
        address protocolConfigurator;
        address circuitBreaker;
        address rewardDistributor;
        address backstopController;
        address payoutManager;
        address salvageManager;
        address poolAllocationManager;
        address syndicateFactory;
        address yieldStrategyManager;
        address referralManager;
    }

    event SystemContractUpdated(bytes32 indexed id, address indexed oldAddr, address indexed newAddr);


    function setContract(bytes32 id, address addr) external;
    function getSystemContract(bytes32 id) external view returns (address);
    function getDependencies() external view returns (Dependencies memory);

    // Getters
    function getCapitalPool() external view returns (address);
    function getPoolAllocations() external view returns (address);
    function getRiskManager() external view returns (address);
    function getPoolRegistry() external view returns (address);
    function getPolicyManager() external view returns (address);
    function getIntentMatcher() external view returns (address);
    function getProtocolConfigurator() external view returns (address);
    function getCircuitBreaker() external view returns (address);
    function getRewardDistributor() external view returns (address);
    function getBackstopController() external view returns (address);
    function getPayoutManager() external view returns (address);
    function getSalvageManager() external view returns (address);
    function getPoolAllocationManager() external view returns (address);
    function getSyndicateFactory() external view returns (address);
    function getYieldStrategyManager() external view returns (address);
    function getReferralManager() external view returns (address);
}