Variable Rate Lending

Supply collateral and borrow USDC at a variable rate directly from the lending market, or lend USDC via the SisuVault for variable yield.

Key references: src/LendingMarket.sol (supplyCollateral, borrow, getUserPosition).

Details

  • Goal: Supply collateral and borrow variable-rate assets (e.g., USDC) directly from the lending market.

  • Preconditions:

    • Market created with loanToken = USDC, appropriate oracle, ltv/lltv enabled.

    • Approvals for collateralToken to LendingMarket.

  • Notes:

    • FW deposits may be rehypothecated into this market on the supply side, while borrowers take variable-rate loans.

Views and events

Views

  • Lending: getUserPosition(marketParamsUSDC, user)supplyAssets, supplyShares, borrowAssets, borrowShares, collateralAssets.

  • Lending: position(id, user), market(id).

  • Oracle: price() (via marketParams' oracle) for health checks.

Events

  • Lending: EventsLib.SupplyCollateral, EventsLib.Borrow, EventsLib.AccrueInterest.

Reward share (variable-rate borrow)

  • Formula: userBorrowAssets / totalBorrowAssets over the epoch (TWAP).

  • Functions to call:

    • LendingMarket.getUserPosition(marketParamsUSDC, user)borrowAssets

    • LendingMarket.position(idUSDC, user), LendingMarket.market(idUSDC) (optional)

    • Index events: EventsLib.Borrow, EventsLib.AccrueInterest

Reward share (variable-rate lend)

  • Formula: userVaultAssets / totalVaultAssets over the epoch (TWAP).

  • Functions to call:

    • ISisuVault.balanceOf(user); ISisuVault.convertToAssets(shares)userVaultAssets

    • ISisuVault.totalAssets() (denominator); ISisuVault.totalSupply() (optional)

    • Index events (optional): vault Deposit/Withdraw if exposed

Last updated