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.
Last updated
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).
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
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.
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
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