IPoolAdapter.sol defines interface each PoolAdapter contract has to implement. Pool adapters allows usage of funds locked in a pool such as Aave.
2. Important links
3. Implementation
// SPDX-License-Identifier: GPL-3.0-onlypragmasolidity 0.8.16;/** * @title IPoolAdapter * @notice Interface for pool adapters used to withdraw and supply assets to the pool. */interface IPoolAdapter {/** * @notice Withdraw an asset from the pool on behalf of the owner. * @dev Withdrawn asset remains in the owner. Caller must have the ACTIVE_LOAN tag in the hub. * @param pool The address of the pool from which the asset is withdrawn. * @param owner The address of the owner from whom the asset is withdrawn. * @param asset The address of the asset to withdraw. * @param amount The amount of the asset to withdraw. */functionwithdraw(address pool,address owner,address asset,uint256 amount) external;/** * @notice Supply an asset to the pool on behalf of the owner. * @dev Need to transfer the asset to the adapter before calling this function. * @param pool The address of the pool to which the asset is supplied. * @param owner The address of the owner on whose behalf the asset is supplied. * @param asset The address of the asset to supply. * @param amount The amount of the asset to supply. */functionsupply(address pool,address owner,address asset,uint256 amount) external;}