ManagedPortfolio
represents a portfolio of BulletLoans. Lenders put funds into the portfolio, the manager uses funds to issue loans to borrowers, and borrowers repay principal and interest back into the portfolio. ManagedPortfolio
issues ERC-20 Liquidity Provider tokens to lenders in proportion to the amount they lend. These tokens represent a lender's share of the funds in the pool, including the interest accumulated from loans repaid by borrowers.ILenderVerifier
contract that is responsible for handling the permissions to join the portfolio (portfolios might be permissionless, but typically are not and only offer entrance to a defined group of lenders).deposit(uint256 depositAmount, bytes memory metadata)
withdraw(uint256 sharesAmount, bytes memory)
createBulletLoan( uint256 loanDuration, address borrower, uint256 principalAmount, uint256 repaymentAmount )
markLoanAsDefaulted(uint256 instrumentId)
markLoanAsResolved(uint256 instrumentId)
setEndDate(uint256 newEndDate)
EndDate
. Note that the portfolio’s close date can only be decreased. Close date can NOT be moved further into the future, nor can it be decreased to a date earlier than any active loan’s maturity date.setLenderVerifier(ILenderVerifier _lenderVerifier)
setManagerFee(uint256 _managerFee)
setMaxSize(uint256 _maxSize)
maxSize
, for a portfolio. Lenders can not put more funds into the portfolio if it would cause the total principal amount lent into the portfolio to exceed the maxSize
.updateLoanParameters( uint256 instrumentId, uint256 newTotalDebt, uint256 newRepaymentDate )
getStatus()
getAmountToMint(uint256 amount)
getOpenLoanIds()
illiquidValue()
liquidValue()
value()
liquidValue
+ illiquidValue
).