PoolAddressesProvider
Registry that returns addresses of core components
🔹Constructor
constructor(string marketId, address owner)Initializes the contract by setting amarketId(text identifier for the market, e.g.,"AaveV3Ethereum") and assigning anownerwith admin rights.
🔹View (read-only) functions
getACLAdmin() → addressReturns the current ACL Admin address (the account responsible for managing access control).getACLManager() → addressReturns the current ACL Manager address (manages roles within the ACL system).getAddress(bytes32 id) → addressReturns the stored address associated with a given identifier (id). Example: fetching the pool or oracle by ID.getMarketId() → stringReturns the text identifier of the current market.getPool() → addressReturns the Pool contract address.getPoolConfigurator() → addressReturns the Pool Configurator contract address.getPoolDataProvider() → addressReturns the Data Provider contract address.getPriceOracle() → addressReturns the address of the current price oracle.getPriceOracleSentinel() → addressReturns the address of the oracle sentinel (a contract that can pause operations when oracle feeds are unreliable).getPyth() → addressReturns the address of the Pyth oracle integration (used for real-time price feeds).owner() → addressReturns 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 anidwith a new raw address. Emits AddressSet event.setAddressAsProxy(bytes32 id, address newImplementationAddress)Deploys or updates a proxy for a givenid, 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 tonewOwner. 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?