Vyper version of the Standard ERC20 Smart Contract.
LERC20 Token
Vyper version of the LToken Smart Contract, which is an ERC20 Token.
ERC20 Pool Token
Vyper version of the Pool Token Smart Contract, which is an ERC20 Token.
Multi-Fungible Token (MFT)
This is an extension of the ERC1155 Token, and has been modified to suit the concept of a multi-fungible token. The MFT contracts in v2 are DAO-authorized, aka, only Lendroid’s DAOs can mint MFTs to another account.
Each SUFI Token is an MFT.
Internal contracts
In charge of minting, burning, and authorized transfer of LTokens and SUFI Tokens. Each DAO contract is authorized to
perform MFT-related functions on behalf of other DAOs.
DAO
Description
Protocol DAO
Deploys and manages the CurrencyDAO, InterestPoolDAO, UnderwriterPoolDAO, MarketDAO, and PayoutDAO.
Propagates system-wide changes to the concerned DAOs.
Initiates escape hatches.
Currency DAO
Deploys and manages Token Pools per token supported by the system.
Handles deposit and withdrawal of original tokens (eg, DAI, USDC) to and from the corresponding token pool.
Mints and burns LTokens.
Can wrap an original token to an equivalent LToken.
Can unwrap a LToken to an equivalent original token.
InterestPool DAO
Handles registration of Interest Pools into the system.
Reflects currency markets, aka, ITokens and FTokens supported by registered Interest Pools.
Can split Ltokens into ITokens and FTokens.
Can fuse ITokens and FTokens into LTokens.
UnderwriterPool DAO
Handles registration of Underwriter Pools into the system.
Reflects shield markets, aka, STokens, UTokens, and ITokens supported by registered Underwriter Pools.
Can split Ltokens into STokens and UTokens and ITokens.
Can fuse ITokens and STokens and UTokens into LTokens.
Market DAO
Reflects the loan markets and shield markets created in the system and their current states.
Communicates with Auction DAO and Currency DAO for token transfers during the collateral auction.
ShieldPayout DAO
Reflects shield markets from the Market DAO.
Communicates with Market DAO and Currency DAO for token transfers during a shield payout / underwriter payout.
External contracts
Handle most of the requests originating from outside the system. Versioned, which makes it easier to deploy improved
templates into the system.
Template
Description
Pool Name Registry
Handles registration of unique names per Pool.
Manages staked LST when registering / registering a pool name.
Allows communication from the InterestPool DAO and Underwriter Pool DAO when they support a market (loan market and shield market respectively).
Position Registry
Maintains a history of all positions in the system.
Keeps a record of open and liquidated positions per Borrower.
Communicates with the Market DAO when a position is opened / closed / liquidated.
Currency Pool
Manages the original tokens sent into the system.
Communicates only with the Currency DAO.
Interest Pool
Conveys intention to support a currency market.
Maintains balances of ITokens and FTokens issued by the system.
Accepts contribution of LTokens in exchange for Poolshare Tokens.
Allows purchase of ITokens.
Allows redemption of Poolshare Tokens for ITokens and FTokens and LTokens.
Conveys intention to not support a currency market.
Communicates only with the Interest Pool DAO.
Underwriter Pool
Conveys intention to support a shield market.
Maintains balances of ITokens, STokens, and UTokens issued by the system.
Accepts contribution of LTokens in exchange for Poolshare Tokens.
Allows purchase of ITokens.
Allows purchase of STokens.
Allows redemption of Poolshare Tokens for ITokens and STokens and UTokens and LTokens.
Conveys intention to not support a shield market.
Communicates only with the Underwriter Pool DAO.
Auction Curve
Maintains a balance of the underlying to be sold, and currency to be raised during the auction.
Has a sliding exchange rate of underlying per currency determined by the time elapsed since auction began.
Allows purchase of underlying according to the exchange rate.
Price Oracle
An interface to help engineers build their own price oracles for a given currency-underlying pair.
Updates the current price of the underlying per currency based on a Price Feed.