ILoanManager
Inherits: ILoanManagerEvents, ILoanManagerStorage
Creates and manages loans.
Functions
initialize
Initializes the loan manager.
function initialize(address asset_) external;
Parameters
asset_
address
The address of the asset used for the pool.
getLoanInfo
Gets the loan info.
function getLoanInfo(uint16 loanId_) external view returns (Loan.Info memory loan_);
Parameters
loanId_
uint16
The id of the loan.
Returns
loan_
Loan.Info
Struct that contains the info of the loan.
accruedInterest
Gets the amount of interest up until this point in time.
function accruedInterest() external view returns (uint256 accruedInterest_);
Returns
accruedInterest_
uint256
The amount of accrued interest up until this point in time.
assetsUnderManagement
Gets the total assets under management.
function assetsUnderManagement() external view returns (uint256 assetsUnderManagement_);
Returns
assetsUnderManagement_
uint256
The total value of assets under management.
getLoanPaymentDetailedBreakdown
Gets the detailed payment breakdown of a loan up until this point in time.
function getLoanPaymentDetailedBreakdown(
uint16 loanId_
)
external
view
returns (uint256 principal_, uint256[2] memory interest_);
Parameters
loanId_
uint16
The id of the loan.
Returns
principal_
uint256
The principal due for the loan.
interest_
uint256[2]
Interest Parameter: [0]: The interest due for the loan. [1]: The late interest due for the loan.
getLoanPaymentBreakdown
Gets the payment breakdown of a loan up until this point in time.
function getLoanPaymentBreakdown(uint16 loanId_) external view returns (uint256 principal_, uint256 interest_);
Parameters
loanId_
uint16
The id of the loan.
Returns
principal_
uint256
The principal due for the loan.
interest_
uint256
The total interest due for the loan.
updateAccounting
Manually updates the accounting state of the pool.
function updateAccounting() external;
fundLoan
Used by the pool admin to fund the loan requested by the buyer.
function fundLoan(uint16 loanId_) external;
Parameters
loanId_
uint16
The id of the loan.
impairLoan
Impairs the loan.
function impairLoan(uint16 loanId_) external;
Parameters
loanId_
uint16
The id of the loan.
removeLoanImpairment
Removes the impairment on the loan.
function removeLoanImpairment(uint16 loanId_) external;
Parameters
loanId_
uint16
The id of the loan.
triggerDefault
Triggers the default of a loan.
function triggerDefault(uint16 loanId_) external returns (uint256 remainingLosses_, uint256 protocolFees_);
Parameters
loanId_
uint16
The id of the loan that is triggered.
Returns
remainingLosses_
uint256
The amount of remaining losses.
protocolFees_
uint256
The amount of protocol fees.
requestLoan
Used by buyer to request a loan from the pool with the following terms.
function requestLoan(
address receivableAsset_,
uint256 receivablesTokenId_,
uint256 gracePeriod_,
uint256 principalRequested_,
uint256[2] memory rates_
)
external
returns (uint16 loanId_);
Parameters
receivableAsset_
address
The address of the receivableAsset
receivablesTokenId_
uint256
Token ID of the receivable that would be used as collateral.
gracePeriod_
uint256
Grace period of the loan.
principalRequested_
uint256
Amount of principal requested by the buyer.
rates_
uint256[2]
Rates parameters: [0]: interestRate. [1]: lateInterestPremiumRate.
Returns
loanId_
uint16
Id of the loan that is created.
repayLoan
Repays the loan (note that the loan can be repaid early but not partially).
function repayLoan(uint16 loanId_) external returns (uint256 principal_, uint256 interest_);
Parameters
loanId_
uint16
Id of the loan to repay.
Returns
principal_
uint256
Principal amount repaid.
interest_
uint256
Interest amount repaid.
withdrawFunds
Used by sellers to withdraw funds from a loan.
function withdrawFunds(uint16 loanId_, address destination_) external;
Parameters
loanId_
uint16
Id of the loan to withdraw funds from.
destination_
address
The destination address for the funds.
Last updated