IInterestRateStrategy

// SPDX-License-Identifier: AGPL-3.0
pragma solidity 0.8.16;

/**
 * @title IInterestRateStrategy interface
 * @dev Interface for the calculation of the interest rates
 * @author FluidNFT
 */
interface IInterestRateStrategy {
    function variableRateSlope1() external view returns (uint256);

    function variableRateSlope2() external view returns (uint256);
    
    function stableRateSlope1() external view returns (uint256);

    function stableRateSlope2() external view returns (uint256);
    
    function baseVariableBorrowRate() external view returns (uint256);

    function maxVariableBorrowRate() external view returns (uint256);

    function calculateInterestRate(
        uint256 reserveId,
        uint256 availableLiquidity,
        uint256 totalStableDebt,
        uint256 totalVariableDebt,
        uint256 averageStableBorrowRate,
        uint256 reserveFactor
    ) external view returns (uint256, uint256, uint256);

    function calculateInterestRates(
        uint256 reserveId,
        address asset,
        address fToken,
        uint256 liquidityAdded,
        uint256 liquidityTaken,
        uint256 totalStableDebt,
        uint256 totalVariableDebt,
        uint256 averageStableBorrowRate,
        uint256 reserveFactor
    ) external view returns (
        uint256 liquidityRate, 
        uint256 stableBorrowRate,
        uint256 variableBorrowRate
    );
}

Last updated