Isle Finance
  • Introduction
    • What is Isle Finance?
    • What is Supply Chain Finance?
  • How Isle Finance Works
    • Glossary of Key Terms
    • Pool Admins
    • Buyers
    • Sellers
    • Liquidity Providers
    • Governance
    • Fees
  • Contract Documentation
    • Smart Contract Overview
    • Diagrams
    • Loan Accounting
    • Withdrawal Management
    • Upgradability
    • IsleGlobals
    • LoanManager
    • LoanManagerStorage
    • Pool
    • PoolAddressesProvider
    • PoolConfigurator
    • PoolConfiguratorStorage
    • Receivable
    • ReceivableStorage
    • WithdrawalManager
    • WithdrawalManagerStorage
    • abstracts
      • Governable
    • interfaces
      • IGovernable
      • IIsleGlobals
      • IIsleGlobalsEvents
      • ILoanManager
      • ILoanManagerEvents
      • ILoanManagerStorage
      • IPool
      • IPoolAddressesProvider
      • IPoolConfigurator
      • IPoolConfiguratorEvents
      • IPoolConfiguratorStorage
      • IReceivable
      • IReceivableEvent
      • IWithdrawalManager
      • IWithdrawalManagerStorage
    • libraries
      • Errors
      • PoolDeployer
      • ReentrancyGuardUpgradeable
      • types
        • PoolConfigurator
        • Loan
        • Receivable
        • WithdrawalManager
      • upgradability
        • UUPSProxy
        • VersionedInitializable
Powered by GitBook
On this page
  • Functions
  • initialize
  • getLoanInfo
  • accruedInterest
  • assetsUnderManagement
  • getLoanPaymentDetailedBreakdown
  • getLoanPaymentBreakdown
  • updateAccounting
  • fundLoan
  • impairLoan
  • removeLoanImpairment
  • triggerDefault
  • requestLoan
  • repayLoan
  • withdrawFunds
  1. Contract Documentation
  2. interfaces

ILoanManager

PreviousIIsleGlobalsEventsNextILoanManagerEvents

Last updated 5 months ago

Inherits: ,

Creates and manages loans.

Functions

initialize

Initializes the loan manager.

function initialize(address asset_) external;

Parameters

Name
Type
Description

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

Name
Type
Description

loanId_

uint16

The id of the loan.

Returns

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

loanId_

uint16

The id of the loan.

Returns

Name
Type
Description

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

Name
Type
Description

loanId_

uint16

The id of the loan.

Returns

Name
Type
Description

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

Name
Type
Description

loanId_

uint16

The id of the loan.

impairLoan

Impairs the loan.

function impairLoan(uint16 loanId_) external;

Parameters

Name
Type
Description

loanId_

uint16

The id of the loan.

removeLoanImpairment

Removes the impairment on the loan.

function removeLoanImpairment(uint16 loanId_) external;

Parameters

Name
Type
Description

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

Name
Type
Description

loanId_

uint16

The id of the loan that is triggered.

Returns

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

loanId_

uint16

Id of the loan to repay.

Returns

Name
Type
Description

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

Name
Type
Description

loanId_

uint16

Id of the loan to withdraw funds from.

destination_

address

The destination address for the funds.

Git Source
ILoanManagerEvents
ILoanManagerStorage