CompoundBorrowRouter

Performs safe borrowing from cToken markets and routes borrowed underlyings to authorized destinations (e.g., VaultExecutor).

Responsibilities

  • Enforce health factor / liquidity constraints before borrowing.

  • Integrate with Peridottroller risk checks and price oracle for USD projections.

  • Route funds to a destination or pull from user if underlying was credited to them.

Key Functions

  • borrowAndRoute(cToken, borrowAmount, destination, user) [onlyAuthorizedDestination]

    • Requires no shortfall; checks health factor after borrow ≥ min threshold; borrows and routes.

  • canUserBorrow(user, cToken, borrowAmount) -> (bool, reason)

    • Dry‑run: controller borrowAllowed, liquidity, projected health factor.

  • getUserHealthFactor(user) view.

  • Admin: setAuthorizedDestination(addr, authorized), setMinHealthFactor(factor1e18), setMaxLTV(bps1e18), emergencyRepay, emergencyWithdraw.

Events

  • BorrowAndRoute(user, cToken, destination, borrowAmount, healthBefore, healthAfter)

Last updated