Core Contracts

The following contracts are the main contracts for INIT:

InfinitCore

InfinitCore is the main entry point to interact with INFINIT. Users can lend and withdraw from lending pools, create positions, collateralize and de-collateralize, and borrow and repay on their positions. InfinitCore allows liquidity hooks to call external contracts via callback function.

PosManager

PosManager stores positions created by InfinitCore. When users adjust their positions through InfinitCore, their actions update the position storages in PosManager.

LendingPool

Lending pools, like other lending protocols, serve as the liquidity market for lenders and borrowers. Borrowers pay borrow interests while lenders earn lending interests configured by the pool's interest rate model.

Lending pools only accept ERC-20 tokens as their underlying tokens. Hence, native and rebase tokens must be wrapped into ERC-20 tokens before being transferred into the pools.

Config

Config stores parameters on all INFINIT contracts including lending pools, modes, token collateral and borrow factors, etc. The parameters can only be set by access controllers which are governed by INFINIT's guardian and governor roles.

RiskManager

RiskManager oversees the risk on different modes of INFINIT. It disallows positions in a mode to borrow tokens more than the allowed debt ceiling from the lending pools.

Miscellaneous

Other contracts that build up INFINIT such as token wrappers, liquidation incentive calculator, lending pools' interest rate models, and oracles.

Last updated