PoolAddressesProvider

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.

Copy

Last updated

Was this helpful?