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