CollateralFactorsRiskSteward
CollateralFactorsRiskSteward
Section titled “CollateralFactorsRiskSteward”Contract that can update collateral factors and liquidation thresholds received from RiskStewardReceiver.
This page follows CollateralFactorsRiskSteward.sol at v2.15.0. On BNB mainnet at block 118369568, proxy 0x1414ADf007E324ec1D0A77b9F1A8759Ad33d2879 used implementation 0x92352572478965A0377F57a4A2bebb4B369c22d4, 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”COLLATERAL_FACTORS
Section titled “COLLATERAL_FACTORS”The update type for collateral factor and liquidation threshold.
string COLLATERAL_FACTORSCOLLATERAL_FACTORS_KEY
Section titled “COLLATERAL_FACTORS_KEY”The update type key for collateral factors (keccak256 hash of COLLATERAL_FACTORS)
bytes32 COLLATERAL_FACTORS_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 and dispatch 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 |
setSafeDeltaBps
Section titled “setSafeDeltaBps”Sets the safe delta bps.
function setSafeDeltaBps(uint256 safeDeltaBps_) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| safeDeltaBps_ | uint256 | The new safe delta bps |
📅 Events
Section titled “📅 Events”- Emits SafeDeltaBpsUpdated with the old and new safe delta bps
⛔️ Access Requirements
Section titled “⛔️ Access Requirements”- Controlled by AccessControlManager
❌ Errors
Section titled “❌ Errors”- Throws InvalidSafeDeltaBps if the safe delta bps is greater than MAX_BPS
- Throws RedundantValue if the new safe delta bps is equal to the current value
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 collateral factor and liquidation threshold are unchanged
applyUpdate
Section titled “applyUpdate”Applies a collateral parameter update from the RiskStewardReceiver.
Delta validation and timelock checks are already performed by RiskStewardReceiver before execution.
function applyUpdate(struct RiskParameterUpdate update) externalParameters
Section titled “Parameters”| Name | Type | Description |
|---|---|---|
| update | struct RiskParameterUpdate | RiskParameterUpdate update to apply |
📅 Events
Section titled “📅 Events”- Emits CollateralFactorsUpdated with updateId
⛔️ 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