2020-05-29 16:45:37 +00:00
|
|
|
// SPDX-License-Identifier: agpl-3.0
|
2020-11-20 10:45:20 +00:00
|
|
|
pragma solidity 0.6.12;
|
2020-05-29 16:45:37 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
@title IReserveInterestRateStrategyInterface interface
|
|
|
|
@notice Interface for the calculation of the interest rates.
|
|
|
|
*/
|
|
|
|
|
|
|
|
interface IReserveInterestRateStrategy {
|
2020-07-13 08:54:08 +00:00
|
|
|
/**
|
|
|
|
* @dev returns the base variable borrow rate, in rays
|
|
|
|
*/
|
2020-08-24 12:35:59 +00:00
|
|
|
function baseVariableBorrowRate() external view returns (uint256);
|
2020-05-29 16:45:37 +00:00
|
|
|
|
2020-09-21 17:52:22 +00:00
|
|
|
/**
|
|
|
|
* @dev returns the maximum variable borrow rate
|
|
|
|
*/
|
|
|
|
function getMaxVariableBorrowRate() external view returns (uint256);
|
|
|
|
|
2020-07-13 08:54:08 +00:00
|
|
|
/**
|
|
|
|
* @dev calculates the liquidity, stable, and variable rates depending on the current utilization rate
|
|
|
|
* and the base parameters
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
function calculateInterestRates(
|
2020-08-21 13:38:47 +00:00
|
|
|
address reserve,
|
|
|
|
uint256 utilizationRate,
|
2020-09-14 13:13:30 +00:00
|
|
|
uint256 totalStableDebt,
|
|
|
|
uint256 totalVariableDebt,
|
2020-09-10 10:51:52 +00:00
|
|
|
uint256 averageStableBorrowRate,
|
|
|
|
uint256 reserveFactor
|
2020-07-13 08:54:08 +00:00
|
|
|
)
|
2020-05-29 16:45:37 +00:00
|
|
|
external
|
|
|
|
view
|
2020-07-13 08:54:08 +00:00
|
|
|
returns (
|
|
|
|
uint256 liquidityRate,
|
|
|
|
uint256 stableBorrowRate,
|
|
|
|
uint256 variableBorrowRate
|
|
|
|
);
|
2020-05-29 16:45:37 +00:00
|
|
|
}
|