RiskGuard

Centralized risk policy for Dual Investment entries. Validates health factor, per‑user size caps, and per‑market utilization limits; supports emergency and per‑market pauses.

Responsibilities

  • Gate borrow‑path entries (collateral‑only entries skip borrow checks).

  • Enforce minHealthFactor, user position caps (as ratio of liquidity), and market utilization ceilings.

  • Provide owner controls for emergency pause and market‑level controls.

Key Functions

  • checkPositionEntry(user, cTokenIn, positionValueUSD, useCollateral) -> (bool, reason)

    • Borrow path: checks controller borrowAllowed, liquidity, health factor, and policy limits.

  • updateUserPositionValue(user, oldValue, newValue) [onlyOwner]

  • updateMarketUtilization(market, change, isIncrease) [onlyOwner]

  • Views: getMaxPositionValueForUser(user), getUserHealthFactor(user).

  • Admin: setMinHealthFactor, setMaxPositionSizeRatio, setMarketMaxUtilization, setWhitelistedUser, setEmergencyPause, setMarketPaused.

Notes

  • Conservative guards in try/catch avoid blocking when external controller calls revert.

Last updated