Enable Contracts

Enable Contracts Architecture Planning

Get Started. It's Free
or sign up with your email address
Enable Contracts by Mind Map: Enable Contracts

1. Inherits

1.1. Ownable

1.1.1. TODO

2. Crowd Loan

2.1. CrowdLoanFactory

2.2. CrowdLoan

2.2.1. types

2.2.1.1. enums

2.2.1.1.1. TimeUnitType

2.2.1.1.2. LoanStatus

2.2.1.2. struct

2.2.1.2.1. Borrower

2.2.1.2.2. CrowdFundParams

2.2.1.2.3. LoanParams

2.2.2. storage

2.2.2.1. Borrower

2.2.2.2. loanParams

2.2.2.3. crowdfundParams

2.2.2.4. debtToken

2.2.3. functions

2.2.3.1. _getDebtTokenValueForAmount

2.2.3.1.1. TODO (I don't quite understand this yet)

2.2.3.2. _isBelowMaxSupply

3. Debt Token

3.1. DebtTokenFactory

3.1.1. Functions

3.1.1.1. createDebtToken

3.2. DebtToken

3.2.1. Inherits

3.2.1.1. ERC721Metadata

3.2.1.1.1. inherits

3.2.1.1.2. storage

3.2.1.1.3. functions

3.2.1.2. ERC721Mintable

3.2.1.2.1. functions

3.2.1.2.2. inherits

3.2.1.3. ERC721Enumerable

3.2.1.3.1. Inherits

3.2.1.3.2. Storage

3.2.1.3.3. _mint

3.2.1.3.4. Functions

3.2.1.4. DebtManager

3.2.2. functions

3.2.2.1. mint (onlyMinter)

3.2.2.2. addDebt

3.2.2.2.1. calls _addDebtValue?

3.2.2.3. removeDebt

3.2.2.3.1. calls _removeDebtValue

4. Debt Contracts

4.1. DebtManager

4.1.1. storage

4.1.1.1. _totalDebt (uint256)

4.1.1.2. _tokenDebtValue (mapping uint256 => uint256)

4.1.2. functions

4.1.2.1. _addDebtValue

4.1.2.2. _removeDebtValue

4.1.2.3. totalDebt()

4.1.2.4. debtValue()

4.1.2.4.1. Returns the debt value of a particular token

4.2. RepaymentRouter

4.2.1. storage

4.2.1.1. _totalRepaid

4.2.1.2. _withdrawnByTokenId (uint256 => uint256)

4.2.2. functions

4.2.2.1. _transferERC20(to)

4.2.2.2. _transferERC20(to, from)

4.2.2.3. _repay

4.2.2.4. _withdraw

4.2.2.5. getWithdrawalAllowance

4.2.2.6. totalRepaid()

4.2.2.7. totalWithdrawn()

4.3. TermsContract

4.3.1. functions

4.3.1.1. getExpectedRepaymentValue (timestamp)

4.3.1.2. getValueRepaidToDate

4.3.1.3. getTermStartTimestamp

4.3.1.4. getTermEndTimestamp