相关文章推荐
坚强的四季豆  ·  Byrne Node-USB 1 ...·  6 月前    · 
长情的沙滩裤  ·  Reload PDF without ...·  9 月前    · 
潇洒的牛排  ·  Purging Data When the ...·  1 年前    · 

Pool Configurator

The PoolConfigurator contract implements the configuration methods for the Aave Protocol. The 'write methods' below are grouped by permissioned system roles that are managed by ACLManager .

The source code is available on GitHub .

Write Methods

Only Asset Listing Or Pool Admins Methods

initReserves

function initReserves(ConfiguratorInputTypes.InitReserveInput[] calldata input) external override onlyAssetListingOrPoolAdmins

Initializes multiple reserves using the array of initialization parameters as input.

Input Parameters:

Name Type Description
input ConfiguratorInputTypes.InitReserveInput[] The array of initialization parameters

The ConfiguratorInputTypes.InitReserveInput[] struct is composed of the following fields:

Name Type Description
aTokenImpl address The address of the aToken contract implementation
variableDebtTokenImpl address The address of the variable debt token contract
useVirtualBalance bool true if reserve is utilising virtual balance accounting
interestRateStrategyAddress address The address of the interest rate strategy contract for this reserve
underlyingAsset address The address of the underlying asset
treasury address The address of the treasury
incentivesController address The address of the incentives controller for this aToken
aTokenName string The name of the aToken
aTokenSymbol string The symbol of the aToken
variableDebtTokenName string The name of the variable debt token
variableDebtTokenSymbol string The symbol of the variable debt token
params bytes A set of encoded parameters for additional initialization
interestRateData bytes Encoded interest rate strategy data

Only Emergency Admin Methods

setPoolPause

function setPoolPause(bool paused) external override onlyEmergencyOrPoolAdmin

Pauses or unpauses all the protocol reserves. In the paused state all the protocol interactions are suspended.

Input Parameters:

Name Type Description
paused bool true if the protocol needs to be paused, otherwise false

Only Emergency Or Pool Admin Methods

setReservePause

function setReservePause(address asset, bool paused) public override onlyEmergencyOrPoolAdmin

Pauses a reserve. A paused reserve does not allow any interaction (supply, borrow, repay, liquidate, atoken transfers).

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
paused bool true if pausing the reserve, false if unpausing the reserve

Only Pool Admin Methods

dropReserve

function dropReserve(address asset) external override onlyPoolAdmin

Drops a reserve entirely.

Input Parameters:

Name Type Description
asset address The address of the reserve to drop

updateAToken

function updateAToken(ConfiguratorInputTypes.UpdateATokenInput calldata input) external override onlyPoolAdmin

Updates the aToken implementation for the reserve. Takes the aToken update parameters as input.

Input Parameters:

Name Type Description
input ConfiguratorInputTypes.UpdateATokenInput The aToken update parameters

The ConfiguratorInputTypes.UpdateATokenInput struct is composed of the following fields:

Name Type Description
asset address The address of the underlying asset of the reserve
treasury address The address of the treasury
incentivesController address The address of the incentives controller for this aToken
name string The name of the aToken
symbol string The symbol of the aToken
implementation address The new aToken implementation
params bytes A set of encoded parameters for additional initialization

updateVariableDebtToken

function updateVariableDebtToken(ConfiguratorInputTypes.UpdateDebtTokenInput calldata input) external override onlyPoolAdmin

Input Parameters:

Name Type Description
input ConfiguratorInputTypes.UpdateDebtTokenInput The variableDebtToken update parameters

The ConfiguratorInputTypes.UpdateDebtTokenInput struct is composed of the following fields:

Name Type Description
asset address The address of the underlying asset of the reserve
incentivesController address The address of the incentives controller for this variableDebtToken
name string The name of the variableDebtToken
symbol string The symbol of the variableDebtToken
implementation address The new variableDebtToken implementation
params bytes A set of encoded parameters for additional initialization

setReserveActive

function setReserveActive(address asset, bool active) external override onlyPoolAdmin

Activate or deactivate a reserve.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
active bool true if the reserve needs to be active, false otherwise

updateBridgeProtocolFee

function updateBridgeProtocolFee(uint256 newBridgeProtocolFee) external override onlyPoolAdmin

Updates the bridge fee collected by the protocol reserves.

Input Parameters:

Name Type Description
newBridgeProtocolFee uint256 The part of the fee sent to the protocol treasury, expressed in bps

setReserveFlashLoaning

function setReserveFlashLoaning(address asset, bool enabled) external override onlyRiskOrPoolAdmins

Enables or disables flash loans for a reserve.

Input Parameters:

Name Type Description
asset address Address of the reserve asset
enabled bool true to enable, false to disable

updateFlashloanPremiumTotal

function updateFlashloanPremiumTotal(uint128 newFlashloanPremiumTotal) external override onlyPoolAdmin

Updates the total flash loan premium. The premium is calculated on the total amount borrowed, and is expressed in bps.

The total flash loan premium consists of two parts:

  • A part is sent to aToken holders as extra balance, and

  • A part is collected by the protocol reserves.

Input Parameters:

Name Type Description
newFlashloanPremiumTotal uint128 The total flashloan premium

updateFlashloanPremiumToProtocol

function updateFlashloanPremiumToProtocol(uint128 newFlashloanPremiumToProtocol) external




    
 override onlyPoolAdmin

Updates the flash loan premium collected by protocol reserves. The premium to protocol is calculated on the total flashloan premium, and is expressed in bps.

Input Parameters:

Name Type Description
newFlashloanPremiumToProtocol uint128 The part of the flashloan premium sent to the protocol treasury

Only Risk Or Pool Admins Methods

setReserveBorrowing

function setReserveBorrowing(address asset, bool enabled) external override onlyRiskOrPoolAdmins

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
enabled bool true if borrowing needs to be enabled, false otherwise

configureReserveAsCollateral

function configureReserveAsCollateral(    




    
address asset,    uint256 ltv,    uint256 liquidationThreshold,    uint256 liquidationBonus) external override onlyRiskOrPoolAdmins

Configures the reserve collateralization parameters. All the values are expressed in bps. A value of 10000 results in 100.00%. The liquidationBonus is always above 100%. A value of 105% means the liquidator will receive a 5% bonus.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
ltv uint256 The loan to value of the asset when used as collateral
liquidationThreshold uint256 The threshold at which loans using this asset as collateral will be considered undercollateralized
liquidationBonus uint256 The bonus liquidators receive to liquidate this asset

setReserveFreeze

function setReserveFreeze(address asset, bool freeze) external override onlyRiskOrPoolAdmins

Freeze or unfreeze a reserve. A frozen reserve doesn't allow any new supply or borrow but allows repayments, liquidations, rate rebalances and withdrawals.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
freeze bool true if the reserve needs to be frozen, false otherwise

setBorrowableInIsolation

function setBorrowableInIsolation(address asset, bool borrowable) external override onlyRiskOrPoolAdmins

Sets the borrowable in isolation flag for the reserve. When this flag is set to true, the asset will be borrowable against isolated collaterals and the borrowed amount will be accumulated in the isolated collateral's total debt exposure. Only assets of the same family (e.g. USD stablecoins) should be borrowable in isolation mode to keep consistency in the debt ceiling calculations.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
borrowable bool true if the asset should be borrowable in isolation, false otherwise

setReserveFactor

function setReserveFactor(address asset, uint256 newReserveFactor) external override onlyRiskOrPoolAdmins

Updates the reserve factor of a reserve.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
newReserveFactor uint256 The new reserve factor of the reserve

setDebtCeiling

function setDebtCeiling(address asset, uint256 newDebtCeiling) external override onlyRiskOrPoolAdmins

Sets the debt ceiling for an asset.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
newDebtCeiling uint256 The new debt ceiling

setSiloedBorrowing

function setSiloedBorrowing(address asset, bool newSiloed) external override onlyRiskOrPoolAdmins

Sets siloed borrowing for an asset

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
newSiloed bool The new siloed borrowing state - enable or disable siloed borrowing for the reserve

setBorrowCap

function setBorrowCap(address asset, uint256 newBorrowCap) external override onlyRiskOrPoolAdmins

Updates the borrow cap of a reserve. Allows RISK_ADMIN and POOL_ADMIN to add/update cap on the total borrow that can be borrowed from the reserve. Once the borrow cap is reached, no more borrow positions for the given reserve asset can be initiated.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
newBorrowCap uint256 The new borrow cap of the reserve in whole tokens. A borrow cap of 0 signifies that there is no cap

setSupplyCap

function setSupplyCap(address asset, uint256 newSupplyCap) external override onlyRiskOrPoolAdmins

Updates the supply cap of a reserve. Allows RISK_ADMIN and POOL_ADMIN to add/update liquidity supply cap on the reserve. Once the supply cap is reached, no more liquidity for the given reserve asset can be supplied to the pool.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
newSupplyCap uint256 The new supply cap of the reserve in whole tokens. A supply cap of 0 signifies that there is no cap

disableLiquidationGracePeriod

function disableLiquidationGracePeriod(address asset) external override onlyEmergencyOrPoolAdmin

Disables the liquidation grace period for a reserve.

Input Parameters

Name Type Description
asset address Address of the reserve asset

setLiquidationProtocolFee

function setLiquidationProtocolFee(address asset, uint256 newFee) external override onlyRiskOrPoolAdmins

Updates the liquidation protocol fee of reserve.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
newFee uint256 The new liquidation protocol fee of the reserve, expressed in bps

setEModeCategory

function setEModeCategory(    uint8 categoryId,    uint16 ltv,    uint16 liquidationThreshold,    uint16 liquidationBonus,    string calldata label) external override onlyRiskOrPoolAdmins

Adds a new efficiency mode (eMode) category. Allows RISK_ADMIN and POOL_ADMIN to configure existing or add new eModeCategory

If zero is provided as oracle address, the default asset oracles will be used to compute the overall debt and overcollateralization of the users using this category. The new ltv and liquidation threshold must be greater than the base ltvs and liquidation thresholds of all assets within the eMode category.

Input Parameters:

Name Type Description
categoryId uint8 The id of the category to be configured. categoryId ≠ 0. NOTE: category 0 is reserved for the default category i.e. non-eMode
ltv uint16 The loan to value for the associated eMode category. It must be less than or equal to the liquidationThreshold
liquidationThreshold uint16 The liquidation threshold associated with the category
liquidationBonus uint16 The liquidation bonus associated with the category
label string A custom label identifying the category

setAssetCollateralInEMode

function setAssetCollateralInEMode(address asset, uint8 categoryId, bool allowed) external override onlyRiskOrPoolAdmins

Assign collateral status to an asset for a particular efficiency mode (eMode) category. Allows RISK_ADMIN and POOL_ADMIN to configure eModeCategory of an asset.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
categoryId uint8 eMode category id to set asset collateral status for
allowed bool true if asset is enabled as collateral in designated categoryId

setAssetBorrowableInEMode

function setAssetBorrowableInEMode(address asset, uint8 categoryId, bool borrowable) external override onlyRiskOrPoolAdmins

Configures if an asset can be borrowed in a specific eMode category.

Input Parameters:

Name Type Description
asset address Address of the reserve asset
categoryId uint8 eMode category ID
borrowable bool true to enable, false to disable

setUnbackedMintCap

function setUnbackedMintCap(address asset, uint256 newUnbackedMintCap) external override onlyRiskOrPoolAdmins

Updates the unbacked mint cap of reserve.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
newUnbackedMintCap uint256 The new unbacked mint cap of the reserve

setReserveInterestRateData

function setReserveInterestRateData(address asset, bytes calldata rateData) external onlyRiskOrPoolAdmins

Sets custom interest rate parameters for a reserve.

Input Parameters:

Name Type Description
asset address Address of the reserve asset
rateData bytes Encodes rate strategy parameters

setReserveInterestRateStrategyAddress

function setReserveInterestRateStrategyAddress(address asset, address rateStrategyAddress, bytes calldata rateData) external override onlyRiskOrPoolAdmins

Sets the interest rate strategy of a reserve.

Input Parameters:

Name Type Description
asset address The address of the underlying asset of the reserve
rateStrategyAddress address The address of the interest strategy contract
rateData bytes Encoded interst rate strategy data

Pure Methods