Skip to content

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.

The update type for collateral factor and liquidation threshold.

string COLLATERAL_FACTORS

The update type key for collateral factors (keccak256 hash of COLLATERAL_FACTORS)

bytes32 COLLATERAL_FACTORS_KEY

Address of the BNB Core Pool Comptroller.

contract ICorePoolComptroller CORE_POOL_COMPTROLLER

Address of the RiskStewardReceiver used to validate and dispatch incoming updates.

contract IRiskStewardReceiver RISK_STEWARD_RECEIVER

Sets the immutable CORE_POOL_COMPTROLLER and RISK_STEWARD_RECEIVER addresses and disables initializers.

constructor(address corePoolComptroller_, address riskStewardReceiver_) public
NameTypeDescription
corePoolComptroller_addressThe address of the Core Pool Comptroller
riskStewardReceiver_addressThe address of the RiskStewardReceiver
  • Throws ZeroAddressNotAllowed if any of the addresses are zero

Initializes the contract as ownable and access controlled.

function initialize(address accessControlManager_) external
NameTypeDescription
accessControlManager_addressThe address of the access control manager

Sets the safe delta bps.

function setSafeDeltaBps(uint256 safeDeltaBps_) external
NameTypeDescription
safeDeltaBps_uint256The new safe delta bps
  • Emits SafeDeltaBpsUpdated with the old and new safe delta bps
  • Controlled by AccessControlManager
  • 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

Checks if an update is safe for direct execution (no timelock required).

function isSafeForDirectExecution(struct RiskParameterUpdate update) external view returns (bool)
NameTypeDescription
updatestruct RiskParameterUpdateThe update to check.
NameTypeDescription
[0]boolTrue if update is safe for direct execution, false if timelock is required
  • Throws UnsupportedUpdateType if the update type is not supported
  • Throws RedundantValue if the new collateral factor and liquidation threshold are unchanged

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) external
NameTypeDescription
updatestruct RiskParameterUpdateRiskParameterUpdate update to apply
  • Emits CollateralFactorsUpdated with updateId
  • Only callable by the RiskStewardReceiver
  • Throws OnlyRiskStewardReceiver if the sender is not the RiskStewardReceiver
  • Throws UnsupportedUpdateType if the update type is not supported