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

[
  {
    "inputs": [
      { "internalType": "string", "name": "marketId", "type": "string" },
      { "internalType": "address", "name": "owner", "type": "address" }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "ACLAdminUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "ACLManagerUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "bytes32", "name": "id", "type": "bytes32" },
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "AddressSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "bytes32", "name": "id", "type": "bytes32" },
      { "indexed": true, "internalType": "address", "name": "proxyAddress", "type": "address" },
      { "indexed": false, "internalType": "address", "name": "oldImplementationAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newImplementationAddress", "type": "address" }
    ],
    "name": "AddressSetAsProxy",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "string", "name": "oldMarketId", "type": "string" },
      { "indexed": true, "internalType": "string", "name": "newMarketId", "type": "string" }
    ],
    "name": "MarketIdSet",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "PoolConfiguratorUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "PoolDataProviderUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "PoolUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "PriceOracleSentinelUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "PriceOracleUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "bytes32", "name": "id", "type": "bytes32" },
      { "indexed": true, "internalType": "address", "name": "proxyAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "implementationAddress", "type": "address" }
    ],
    "name": "ProxyCreated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      { "indexed": true, "internalType": "address", "name": "oldAddress", "type": "address" },
      { "indexed": true, "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "PythUpdated",
    "type": "event"
  },
  {
    "inputs": [],
    "name": "getACLAdmin",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getACLManager",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "bytes32", "name": "id", "type": "bytes32" }],
    "name": "getAddress",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getMarketId",
    "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPool",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPoolConfigurator",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPoolDataProvider",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPriceOracle",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPriceOracleSentinel",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPyth",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newAclAdmin", "type": "address" }],
    "name": "setACLAdmin",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newAclManager", "type": "address" }],
    "name": "setACLManager",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "bytes32", "name": "id", "type": "bytes32" },
      { "internalType": "address", "name": "newAddress", "type": "address" }
    ],
    "name": "setAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      { "internalType": "bytes32", "name": "id", "type": "bytes32" },
      { "internalType": "address", "name": "newImplementationAddress", "type": "address" }
    ],
    "name": "setAddressAsProxy",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "string", "name": "newMarketId", "type": "string" }],
    "name": "setMarketId",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newPoolConfiguratorImpl", "type": "address" }],
    "name": "setPoolConfiguratorImpl",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newDataProvider", "type": "address" }],
    "name": "setPoolDataProvider",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newPoolImpl", "type": "address" }],
    "name": "setPoolImpl",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newPriceOracle", "type": "address" }],
    "name": "setPriceOracle",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newPriceOracleSentinel", "type": "address" }],
    "name": "setPriceOracleSentinel",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newPyth", "type": "address" }],
    "name": "setPyth",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Last updated

Was this helpful?