BaseJumpRateModelV2

Logic for Compound's JumpRateModel Contract V2.

An interest rate model with a steep increase after a certain utilization threshold called kink is reached. This rate model uses the following formula for the borrow rate:

  • $borrow\_rate(u)=a_1 \cdot u + b$, when $u < kink$

  • $borrow\_rate(u)=a_1 \cdot kink + a_2 \cdot (u-kink) + b$, otherwise

The parameters of this interest rate model can be adjusted by the owner. Version 2 modifies Version 1 by enabling updateable parameters.

Solidity API

accessControlManager

The address of the AccessControlManager contract

contract IAccessControlManagerV8 accessControlManager

multiplierPerBlock

The multiplier of utilization rate that gives the slope of the interest rate

uint256 multiplierPerBlock

baseRatePerBlock

The base interest rate which is the y-intercept when utilization rate is 0

uint256 baseRatePerBlock

jumpMultiplierPerBlock

The multiplier per block after hitting a specified utilization point

uint256 jumpMultiplierPerBlock

kink

The utilization point at which the jump multiplier is applied

uint256 kink

updateJumpRateModel

Update the parameters of the interest rate model

function updateJumpRateModel(uint256 baseRatePerYear, uint256 multiplierPerYear, uint256 jumpMultiplierPerYear, uint256 kink_) external virtual

Parameters

⛔️ Access Requirements

  • Controlled by AccessControlManager

❌ Errors

  • Unauthorized if the sender is not allowed to call this function


getSupplyRate

Calculates the current supply rate per block

function getSupplyRate(uint256 cash, uint256 borrows, uint256 reserves, uint256 reserveFactorMantissa, uint256 badDebt) public view virtual returns (uint256)

Parameters

Return Values


utilizationRate

Calculates the utilization rate of the market: (borrows + badDebt) / (cash + borrows + badDebt - reserves)

function utilizationRate(uint256 cash, uint256 borrows, uint256 reserves, uint256 badDebt) public pure returns (uint256)

Parameters

Return Values


Last updated