IRMRiskSteward
IRMRiskSteward
Section titled “IRMRiskSteward”Contract that can update interest rate models updates received from RiskStewardReceiver.
This page follows IRMRiskSteward.sol at v2.15.0. On BNB mainnet at block 118369568, proxy 0x8acaBc42Bb98E2e2b091902a7E23f60CcB730aaa used implementation 0x0548A031574221e432f21a96bd7D24C0463c9eA5, matching the tagged artifact. Destination-mainnet deployment must be verified separately; the stable tag contains destination instances on testnets.
Solidity API
Section titled “Solidity API”INTEREST_RATE_MODEL
Section titled “INTEREST_RATE_MODEL”The update type for interest rate model
string INTEREST_RATE_MODELINTEREST_RATE_MODEL_KEY
Section titled “INTEREST_RATE_MODEL_KEY”The update type key for interest rate model (keccak256 hash of INTEREST_RATE_MODEL)
bytes32 INTEREST_RATE_MODEL_KEYCORE_POOL_COMPTROLLER
Section titled “CORE_POOL_COMPTROLLER”Address of the BNB Core Pool Comptroller.
contract ICorePoolComptroller CORE_POOL_COMPTROLLERRISK_STEWARD_RECEIVER
Section titled “RISK_STEWARD_RECEIVER”Address of the RiskStewardReceiver used to validate incoming updates
contract IRiskStewardReceiver RISK_STEWARD_RECEIVERconstructor
Section titled “constructor”Sets the immutable CORE_POOL_COMPTROLLER and RISK_STEWARD_RECEIVER addresses and disables initializers
constructor(address corePoolComptroller_, address riskStewardReceiver_) publicParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| corePoolComptroller_ | address | The address of the Core Pool Comptroller |
| riskStewardReceiver_ | address | The address of the RiskStewardReceiver |
❌ Errors
Section titled “❌ Errors”- Throws ZeroAddressNotAllowed if any of the addresses are zero
initialize
Section titled “initialize”Initializes the contract as ownable and access controlled.
function initialize(address accessControlManager_) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| accessControlManager_ | address | The address of the access control manager |
applyUpdate
Section titled “applyUpdate”Applies an interest rate model update from the RiskStewardReceiver. Directly updates the market interest rate model on the vToken.
function applyUpdate(struct RiskParameterUpdate update) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| update | struct RiskParameterUpdate | RiskParameterUpdate update to apply |
📅 Events
Section titled “📅 Events”- Emits InterestRateModelUpdated with the updateId, market and new IRM address
⛔️ Access Requirements
Section titled “⛔️ Access Requirements”- Only callable by the RiskStewardReceiver
❌ Errors
Section titled “❌ Errors”- Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiver
- Throws UnsupportedUpdateType if the update type is not supported
isSafeForDirectExecution
Section titled “isSafeForDirectExecution”Checks if an update is safe for direct execution (no timelock required)
function isSafeForDirectExecution(struct RiskParameterUpdate update) external view returns (bool)Parameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| update | struct RiskParameterUpdate | The update to check |
Return Values
Section titled “Return Values”| Name | Type | Description |
|---|---|---|
| [0] | bool | True if update is safe for direct execution, false if timelock is required |
❌ Errors
Section titled “❌ Errors”- Throws UnsupportedUpdateType if the update type is not supported
- Throws RedundantValue if the new IRM address is equal to the current IRM address