IAddressProvider

// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.16;

/**
 * @title AddressProvider contract
 * @dev Main registry of addresses part of or connected to the protocol, including permissioned roles
 * - Acting also as factory of proxies and admin of those, so with right to change its implementations
 * - Owned by the FluidNFT Governance
 * @author FluidNFT
 **/
interface IAddressProvider {
    event MarketIdSet(string newMarketId);
    event AddressSet(bytes32 id, address indexed newAddress, bool hasProxy);
    event ExecutionDelegateUpdated(address indexed newAddress);
    event ExecutionManagerUpdated(address indexed newAddress);
    event LendingUpdated(address indexed newAddress);
    event PromissoryNoteUpdated(address indexed newAddress);
    event PromissoryNoteBundleUpdated(address indexed newAddress);
    event ObligationReceiptUpdated(address indexed newAddress);
    event ObligationReceiptBundleUpdated(address indexed newAddress);
    event LendingPoolUpdated(address indexed newAddress);
    event ConfiguratorUpdated(address indexed newAddress);
    event CollateralManagerUpdated(address indexed newAddress);
    event PeerAdminUpdated(address indexed newAddress);
    event PoolAdminUpdated(address indexed newAddress);
    event EmergencyAdminUpdated(address indexed newAddress);
    event PriceConsumerUpdated(address indexed newAddress);
    event FluidTokenUpdated(address indexed newAddress);
    event PoolIncentivesControllerUpdated(address indexed newAddress);
    event PeerIncentivesControllerUpdated(address indexed newAddress);
    event ReferralManagerUpdated(address indexed newAddress);
    event TreasuryUpdated(address indexed newAddress);
    event DelegationRegistryUpdated(address indexed newAddress);
    event ProxyCreated(bytes32 id, address indexed newAddress);
    event FTokenImplUpdated(address indexed newAddress);
    event DebtTokenImplUpdated(address indexed newAddress);
    event NFTPriceOracleUpdated(address indexed newAddress);
    event LendingRateManagerUpdated(address indexed newAddress);
    event WETHUpdated(address indexed newAddress);
    event WETHGatewayUpdated(address indexed newAddress);

    function getMarketId() external view returns (string memory);

    function setMarketId(string calldata marketId) external;

    function getAddress(bytes32 id) external view returns (address);

    function setAddress(bytes32 id, address newAddress) external;

    function setAddressAsProxy(
        bytes32 id,
        address impl
    ) external;

    function getExecutionDelegate() external view returns (address);

    function setExecutionDelegate(address executionDelegate) external;

    function getExecutionManager() external view returns (address);

    function setExecutionManager(address executionManager) external;

    function getLending() external view returns (address);

    function setLending(address lending) external;

    function getPromissoryNote() external view returns (address);

    function setPromissoryNote(address promissoryNote) external;

    function getPromissoryNoteBundle() external view returns (address);

    function setPromissoryNoteBundle(address promissoryNote) external;

    function getObligationReceipt() external view returns (address);

    function setObligationReceipt(address obligationReceipt) external;

    function getObligationReceiptBundle() external view returns (address);

    function setObligationReceiptBundle(address obligationReceipt) external;

    function getLendingPool() external view returns (address);

    function setLendingPool(address pool) external;

    function getConfigurator() external view returns (address);

    function setConfigurator(address configurator) external;

    function setConfiguratorImpl(address configurator) external;

    function getCollateralManager() external view returns (address);

    function setCollateralManager(address collateralManager) external;

    function getPeerAdmin() external view returns (address);

    function setPeerAdmin(address admin) external;

    function getPoolAdmin() external view returns (address);

    function setPoolAdmin(address admin) external;

    function getEmergencyAdmin() external view returns (address);

    function setEmergencyAdmin(address admin) external;

    function getNFTPriceOracle() external view returns (address);

    function setNFTPriceOracle(address nftPriceOracle) external;

    function getLendingRateManager() external view returns (address);

    function setLendingRateManager(address lendingRateManager) external;

    function getPriceConsumerV3() external view returns (address);

    function setPriceConsumerV3(address priceConsumerV3) external;

    function getFluidToken() external view returns (address);

    function setFluidToken(address fluidToken) external;

    function getPoolIncentivesController() external view returns (address);

    function setPoolIncentivesController(address controller) external;

    function getPeerIncentivesController() external view returns (address);

    function setPeerIncentivesController(address controller) external;

    function getReferralManager() external view returns (address);

    function setReferralManager(address referralManager) external;

    function getTreasury() external view returns (address);

    function setTreasury(address treasury) external;

    function getDelegationRegistry() external view returns (address);

    function setDelegationRegistry(address delegationRegistry) external;

    function getFTokenImpl() external view returns (address);

    function setFTokenImpl(address fTokenImpl) external;

    function getDebtTokenImpl() external view returns (address);

    function setDebtTokenImpl(address debtTokenImpl) external;

    function getWETH() external view returns (address);

    function setWETH(address weth) external;

    function getWETHGateway() external view returns (address);

    function setWETHGateway(address weth) external;
}

Last updated