PoolRegistry.
The factory and registry for every isolated pool. One contract creates pools, deploys their Comptrollers, adds markets, and exposes them for discovery.
Every isolated pool is registered through PoolRegistry. The contract maintains a catalog of all pools and their metadata, enabling frontends, integrators, and other contracts to discover and interact with available pools. Pool creation is permissioned through governance — only vetted configurations get deployed.
When a new pool is created, PoolRegistry deploys a fresh Comptroller proxy, initializes it with the specified parameters, and records the pool in its internal registry.
addPool
Creates a new isolated liquidity pool with the specified configuration.
function addPool(
string calldata name,
address comptroller,
uint256 closeFactor,
uint256 liquidationIncentive,
uint256 minLiquidatableCollateral
) external returns (uint256 index);
addMarket
Adds a new market (RToken) to an existing isolated pool.
function addMarket(AddMarketInput memory input) external;
getAllPools
Returns metadata for all registered isolated pools.
function getAllPools() external view returns (RheoFiProtocolPool[] memory);
getPoolByComptroller
Retrieves pool metadata by its associated Comptroller address.
function getPoolByComptroller(address comptroller) external view returns (RheoFiProtocolPool memory);
getPoolsSupportedByMarket
Returns all pools that support a given underlying asset.
function getPoolsSupportedByMarket(address market) external view returns (uint256[] memory);
Pool creation and market addition are restricted to governance and authorized callers via the AccessControlManager.