Registry that returns addresses of core components
🔹Constructor
constructor(string marketId, address owner) Initializes the contract by setting a marketId (text identifier for the market, e.g., "AaveV3Ethereum") and assigning an owner with admin rights.
🔹View (read-only) functions
getACLAdmin() → address Returns the current ACL Admin address (the account responsible for managing access control).
getACLManager() → address Returns the current ACL Manager address (manages roles within the ACL system).
getAddress(bytes32 id) → address Returns the stored address associated with a given identifier (id). Example: fetching the pool or oracle by ID.
getMarketId() → string Returns the text identifier of the current market.
getPool() → address Returns the Pool contract address.
getPoolConfigurator() → address Returns the Pool Configurator contract address.
getPoolDataProvider() → address Returns the Data Provider contract address.
getPriceOracle() → address Returns the address of the current price oracle.
getPriceOracleSentinel() → address Returns the address of the oracle sentinel (a contract that can pause operations when oracle feeds are unreliable).
getPyth() → address Returns the address of the Pyth oracle integration (used for real-time price feeds).
owner() → address Returns the current owner (administrator of the contract).
🔹State-changing (admin) functions
setACLAdmin(address newAclAdmin) Updates the ACL Admin to a new address. Emits ACLAdminUpdated event.
setACLManager(address newAclManager) Updates the ACL Manager to a new address. Emits ACLManagerUpdated event.
setAddress(bytes32 id, address newAddress) Associates an id with a new raw address. Emits AddressSet event.
setAddressAsProxy(bytes32 id, address newImplementationAddress) Deploys or updates a proxy for a given id, pointing to a new implementation. Emits AddressSetAsProxy event.
setMarketId(string newMarketId) Updates the market identifier string. Emits MarketIdSet event.
setPoolConfiguratorImpl(address newPoolConfiguratorImpl) Updates the Pool Configurator implementation. Emits PoolConfiguratorUpdated event.
setPoolDataProvider(address newDataProvider) Updates the Pool Data Provider contract. Emits PoolDataProviderUpdated event.
setPoolImpl(address newPoolImpl) Updates the Pool implementation. Emits PoolUpdated event.
setPriceOracle(address newPriceOracle) Updates the price oracle contract. Emits PriceOracleUpdated event.
setPriceOracleSentinel(address newPriceOracleSentinel) Updates the oracle sentinel contract. Emits PriceOracleSentinelUpdated event.
setPyth(address newPyth) Updates the Pyth oracle contract. Emits PythUpdated event.
transferOwnership(address newOwner) Transfers contract ownership to newOwner. Emits OwnershipTransferred event.
renounceOwnership() Permanently removes the owner, leaving the contract without centralized admin control.
🔹Events (for tracking changes)
ACLAdminUpdated / ACLManagerUpdated → fired when ACL roles change.
AddressSet / AddressSetAsProxy → fired when addresses or proxies are updated.
MarketIdSet → fired when the market ID changes.
OwnershipTransferred → fired when contract ownership changes.
PoolConfiguratorUpdated / PoolDataProviderUpdated / PoolUpdated → fired when pool-related components are updated.
PriceOracleUpdated / PriceOracleSentinelUpdated → fired when oracle components are updated.
ProxyCreated → fired when a new proxy contract is deployed.
PythUpdated → fired when the Pyth oracle address changes.