Skip to content

Latest commit

 

History

History
1210 lines (834 loc) · 32.2 KB

fixed-term-loan-manager.md

File metadata and controls

1210 lines (834 loc) · 32.2 KB

FixedTermLoanManager

\

Functions

HUNDRED_PERCENT

Returns the value considered as the hundred percent.

    function HUNDRED_PERCENT()
        view
        returns (
            uint256
        );

Return Values:

Index Name Type Internal Type Description
0 uint256 uint256

\

PRECISION

Returns the precision used for the contract.

    function PRECISION()
        view
        returns (
            uint256
        );

Return Values:

Index Name Type Internal Type Description
0 uint256 uint256

\

acceptNewTerms

Accepts new loan terms triggering a loan refinance.

    function acceptNewTerms(
        address loan_,
        address refinancer_,
        uint256 deadline_,
        bytes[] calls_,
        uint256 principalIncrease_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 loan_ address address Loan to be refinanced.
1 refinancer_ address address The address of the refinancer.
2 deadline_ uint256 uint256 The new deadline to execute the refinance.
3 calls_ bytes[] bytes[] The encoded calls to set new loan terms.
4 principalIncrease_ uint256 uint256 The increase in principal.

\

accountedInterest

Gets the amount of accounted interest.

    function accountedInterest()
        view
        returns (
            uint112
        );

Return Values:

Index Name Type Internal Type Description
0 uint112 uint112

\

accruedInterest

Gets the amount of accrued interest up until this point in time.

    function accruedInterest()
        view
        returns (
            uint256 accruedInterest_
        );

Return Values:

Index Name Type Internal Type Description
0 accruedInterest_ uint256 uint256 The amount of accrued interest up until this point in time.

\

allowedSlippageFor

Gets allowed slippage for a give collateral asset.

    function allowedSlippageFor(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Index Name Type Internal Type Description
0 `` address address

Return Values:

Index Name Type Internal Type Description
0 uint256 uint256

\

assetsUnderManagement

Gets the amount of assets under the management of the contract.

    function assetsUnderManagement()
        view
        returns (
            uint256 assetsUnderManagement_
        );

Return Values:

Index Name Type Internal Type Description
0 assetsUnderManagement_ uint256 uint256 The amount of assets under the management of the contract.

\

claim

Called by loans when payments are made, updating the accounting.

    function claim(
        uint256 principal_,
        uint256 interest_,
        uint256 previousPaymentDueDate_,
        uint256 nextPaymentDueDate_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 principal_ uint256 uint256 The amount of principal paid.
1 interest_ uint256 uint256 The amount of interest paid.
2 previousPaymentDueDate_ uint256 uint256 The previous payment due date.
3 nextPaymentDueDate_ uint256 uint256 The new payment due date.

\

domainEnd

Gets the timestamp of the domain end.

    function domainEnd()
        view
        returns (
            uint48
        );

Return Values:

Index Name Type Internal Type Description
0 uint48 uint48

\

domainStart

Gets the timestamp of the domain start.

    function domainStart()
        view
        returns (
            uint48
        );

Return Values:

Index Name Type Internal Type Description
0 uint48 uint48

\

factory

The address of the proxy factory.

    function factory()
        view
        returns (
            address factory_
        );

Return Values:

Index Name Type Internal Type Description
0 factory_ address address

\

finishCollateralLiquidation

Finishes the collateral liquidation.

    function finishCollateralLiquidation(
        address loan_
    )
        nonpayable
        returns (
            uint256 remainingLosses_,
            uint256 platformFees_
        );

Parameters:

Index Name Type Internal Type Description
0 loan_ address address Loan that had its collateral liquidated.

Return Values:

Index Name Type Internal Type Description
0 remainingLosses_ uint256 uint256 The amount of remaining losses.
1 platformFees_ uint256 uint256 The amount of platform fees.

\

fund

Funds a new loan.

    function fund(
        address loan_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 loan_ address address Loan to be funded.

\

fundsAsset

Gets the address of the funds asset.

    function fundsAsset()
        view
        returns (
            address
        );

Return Values:

Index Name Type Internal Type Description
0 address address

\

getExpectedAmount

Gets the expected amount of an asset given the input amount.

    function getExpectedAmount(
        address collateralAsset_,
        uint256 swapAmount_
    )
        view
        returns (
            uint256 returnAmount_
        );

Parameters:

Index Name Type Internal Type Description
0 collateralAsset_ address address The collateral asset that is being liquidated.
1 swapAmount_ uint256 uint256 The swap amount of collateral asset.

Return Values:

Index Name Type Internal Type Description
0 returnAmount_ uint256 uint256 The desired return amount of funds asset.

\

governor

    function governor()
        view
        returns (
            address governor_
        );

Return Values:

Index Name Type Internal Type Description
0 governor_ address address

\

impairLoan

Triggers the loan impairment for a loan.

    function impairLoan(
        address loan_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 loan_ address address Loan to trigger the loan impairment.

\

implementation

The address of the implementation contract being proxied.

    function implementation()
        view
        returns (
            address implementation_
        );

Return Values:

Index Name Type Internal Type Description
0 implementation_ address address

\

isLiquidationActive

Returns whether or not a liquidation is in progress.

    function isLiquidationActive(
        address loan_
    )
        view
        returns (
            bool isActive_
        );

Parameters:

Index Name Type Internal Type Description
0 loan_ address address The address of the loan contract.

Return Values:

Index Name Type Internal Type Description
0 isActive_ bool bool True if a liquidation is in progress.

\

issuanceRate

Gets the current issuance rate.

    function issuanceRate()
        view
        returns (
            uint256
        );

Return Values:

Index Name Type Internal Type Description
0 uint256 uint256

\

liquidationInfo

Gets the information for a liquidation.

    function liquidationInfo(
        address
    )
        view
        returns (
            bool triggeredByGovernor,
            uint128 principal,
            uint120 interest,
            uint256 lateInterest,
            uint96 platformFees,
            address liquidator
        );

Parameters:

Index Name Type Internal Type Description
0 `` address address

Return Values:

Index Name Type Internal Type Description
0 triggeredByGovernor bool bool True if the liquidation was triggered by the governor.
1 principal uint128 uint128 The amount of principal to be recovered.
2 interest uint120 uint120 The amount of interest to be recovered.
3 lateInterest uint256 uint256 The amount of late interest to be recovered.
4 platformFees uint96 uint96 The amount of platform fees owed.
5 liquidator address address The address of the liquidator.

\

migrate

Modifies the proxy's storage by delegate-calling a migrator contract with some arguments. Access control logic critical since caller can force a selfdestruct via a malicious `migrator_` which is delegatecalled.

    function migrate(
        address migrator_,
        bytes arguments_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 migrator_ address address The address of a migrator contract.
1 arguments_ bytes bytes Some encoded arguments to use for the migration.

\

minRatioFor

Gets the minimum ratio for a collateral asset.

    function minRatioFor(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Index Name Type Internal Type Description
0 `` address address

Return Values:

Index Name Type Internal Type Description
0 uint256 uint256

\

paymentCounter

Gets the payment counter.

    function paymentCounter()
        view
        returns (
            uint24
        );

Return Values:

Index Name Type Internal Type Description
0 uint24 uint24

\

paymentIdOf

Gets the payment if for the given loan.

    function paymentIdOf(
        address
    )
        view
        returns (
            uint24
        );

Parameters:

Index Name Type Internal Type Description
0 `` address address

Return Values:

Index Name Type Internal Type Description
0 uint24 uint24

\

payments

Gets the information for a payment.

    function payments(
        uint256
    )
        view
        returns (
            uint24 platformManagementFeeRate,
            uint24 delegateManagementFeeRate,
            uint48 startDate,
            uint48 paymentDueDate,
            uint128 incomingNetInterest,
            uint128 refinanceInterest,
            uint256 issuanceRate
        );

Parameters:

Index Name Type Internal Type Description
0 `` uint256 uint256

Return Values:

Index Name Type Internal Type Description
0 platformManagementFeeRate uint24 uint24 The value for the platform management fee rate.
1 delegateManagementFeeRate uint24 uint24 The value for the delegate management fee rate.
2 startDate uint48 uint48 The start date of the payment.
3 paymentDueDate uint48 uint48 The timestamp of the payment due date.
4 incomingNetInterest uint128 uint128 The amount of incoming net interest.
5 refinanceInterest uint128 uint128 The amount of refinance interest.
6 issuanceRate uint256 uint256 The issuance rate for the loan.

\

paymentWithEarliestDueDate

Gets the payment id with the earliest due date.

    function paymentWithEarliestDueDate()
        view
        returns (
            uint24
        );

Return Values:

Index Name Type Internal Type Description
0 uint24 uint24

\

poolDelegate

    function poolDelegate()
        view
        returns (
            address poolDelegate_
        );

Return Values:

Index Name Type Internal Type Description
0 poolDelegate_ address address

\

poolManager

Gets the address of the pool manager.

    function poolManager()
        view
        returns (
            address
        );

Return Values:

Index Name Type Internal Type Description
0 address address

\

principalOut

Gets the amount of principal out.

    function principalOut()
        view
        returns (
            uint128
        );

Return Values:

Index Name Type Internal Type Description
0 uint128 uint128

\

rejectNewTerms

Reject/cancel proposed new terms for a loan.

    function rejectNewTerms(
        address loan_,
        address refinancer_,
        uint256 deadline_,
        bytes[] calls_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 loan_ address address The loan with the proposed new changes.
1 refinancer_ address address The refinancer to use in the refinance.
2 deadline_ uint256 uint256 The deadline by which the lender must accept the new terms.
3 calls_ bytes[] bytes[] The array of calls to be made to the refinancer.

\

removeLoanImpairment

Removes the loan impairment for a loan.

    function removeLoanImpairment(
        address loan_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 loan_ address address Loan to remove the loan impairment.

\

setAllowedSlippage

Sets the allowed slippage for a collateral asset liquidation.

    function setAllowedSlippage(
        address collateralAsset_,
        uint256 allowedSlippage_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 collateralAsset_ address address Address of a collateral asset.
1 allowedSlippage_ uint256 uint256 New value for `allowedSlippage`.

\

setImplementation

Modifies the proxy's implementation address.

    function setImplementation(
        address implementation_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 implementation_ address address

\

setMinRatio

Sets the minimum ratio for a collateral asset liquidation. This ratio is expressed as a decimal representation of units of fundsAsset per unit collateralAsset in fundsAsset decimal precision.

    function setMinRatio(
        address collateralAsset_,
        uint256 minRatio_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 collateralAsset_ address address Address of a collateral asset.
1 minRatio_ uint256 uint256 New value for `minRatio`.

\

sortedPayments

Gets the information of the sorted list.

    function sortedPayments(
        uint256
    )
        view
        returns (
            uint24 previous,
            uint24 next,
            uint48 paymentDueDate
        );

Parameters:

Index Name Type Internal Type Description
0 `` uint256 uint256

Return Values:

Index Name Type Internal Type Description
0 previous uint24 uint24
1 next uint24 uint24
2 paymentDueDate uint48 uint48

\

triggerDefault

Triggers the default of a loan.

    function triggerDefault(
        address loan_,
        address liquidatorFactory_
    )
        nonpayable
        returns (
            bool liquidationComplete_,
            uint256 remainingLosses_,
            uint256 platformFees_
        );

Parameters:

Index Name Type Internal Type Description
0 loan_ address address Loan to trigger the default.
1 liquidatorFactory_ address address Factory that will be used to deploy the liquidator.

Return Values:

Index Name Type Internal Type Description
0 liquidationComplete_ bool bool True if the liquidation is completed in the same transaction (uncollateralized).
1 remainingLosses_ uint256 uint256 The amount of remaining losses.
2 platformFees_ uint256 uint256 The amount of platform fees.

\

unrealizedLosses

Returns the amount unrealized losses.

    function unrealizedLosses()
        view
        returns (
            uint128
        );

Return Values:

Index Name Type Internal Type Description
0 uint128 uint128

\

updateAccounting

Updates the issuance parameters of the LoanManager, callable by the Governor and the PoolDelegate. Useful to call when `block.timestamp` is greater than `domainEnd` and the LoanManager is not accruing interest.

    function updateAccounting()
        nonpayable;

\

upgrade

Upgrades a contract implementation to a specific version. Access control logic critical since caller can force a selfdestruct via a malicious `migrator_` which is delegatecalled.

    function upgrade(
        uint256 version_,
        bytes arguments_
    )
        nonpayable;

Parameters:

Index Name Type Internal Type Description
0 version_ uint256 uint256
1 arguments_ bytes bytes Some encoded arguments to use for the upgrade.

\

Events

AllowedSlippageSet

Emitted when `setAllowedSlippage` is called.

    event AllowedSlippageSet(
        address collateralAsset_,
        uint256 newSlippage_
    );

Parameters:

Index Name Type Internal Type Description
0 collateralAsset_ address address Address of a collateral asset.
1 newSlippage_ uint256 uint256 New value for `allowedSlippage`.

\

FundsDistributed

Funds have been claimed and distributed into the Pool.

    event FundsDistributed(
        address loan_,
        uint256 principal_,
        uint256 netInterest_
    );

Parameters:

Index Name Type Internal Type Description
0 loan_ address address The address of the loan contract.
1 principal_ uint256 uint256 The amount of principal paid.
2 netInterest_ uint256 uint256 The amount of net interest paid.

\

IssuanceParamsUpdated

Emitted when the issuance parameters are changed.

    event IssuanceParamsUpdated(
        uint48 domainEnd_,
        uint256 issuanceRate_,
        uint112 accountedInterest_
    );

Parameters:

Index Name Type Internal Type Description
0 domainEnd_ uint48 uint48 The timestamp of the domain end.
1 issuanceRate_ uint256 uint256 New value for the issuance rate.
2 accountedInterest_ uint112 uint112 The amount of accounted interest.

\

LoanTransferAdminSet

Emitted when the loanTransferAdmin is set by the PoolDelegate.

    event LoanTransferAdminSet(
        address loanTransferAdmin_
    );

Parameters:

Index Name Type Internal Type Description
0 loanTransferAdmin_ address address The address of the admin that can transfer loans.

\

ManagementFeesPaid

A fee payment was made.

    event ManagementFeesPaid(
        address loan_,
        uint256 delegateManagementFee_,
        uint256 platformManagementFee_
    );

Parameters:

Index Name Type Internal Type Description
0 loan_ address address The address of the loan contract.
1 delegateManagementFee_ uint256 uint256 The amount of delegate management fee paid.
2 platformManagementFee_ uint256 uint256 The amount of platform management fee paid.

\

MinRatioSet

Emitted when `setMinRatio` is called.

    event MinRatioSet(
        address collateralAsset_,
        uint256 newMinRatio_
    );

Parameters:

Index Name Type Internal Type Description
0 collateralAsset_ address address Address of a collateral asset.
1 newMinRatio_ uint256 uint256 New value for `minRatio`.

\

PaymentAdded

Emitted when a payment is removed from the LoanManager payments array.

    event PaymentAdded(
        address loan_,
        uint256 paymentId_,
        uint256 platformManagementFeeRate_,
        uint256 delegateManagementFeeRate_,
        uint256 startDate_,
        uint256 nextPaymentDueDate_,
        uint256 netRefinanceInterest_,
        uint256 newRate_
    );

Parameters:

Index Name Type Internal Type Description
0 loan_ address address The address of the loan.
1 paymentId_ uint256 uint256 The payment ID of the payment that was removed.
2 platformManagementFeeRate_ uint256 uint256
3 delegateManagementFeeRate_ uint256 uint256
4 startDate_ uint256 uint256
5 nextPaymentDueDate_ uint256 uint256
6 netRefinanceInterest_ uint256 uint256
7 newRate_ uint256 uint256

\

PaymentRemoved

Emitted when a payment is removed from the LoanManager payments array.

    event PaymentRemoved(
        address loan_,
        uint256 paymentId_
    );

Parameters:

Index Name Type Internal Type Description
0 loan_ address address The address of the loan.
1 paymentId_ uint256 uint256 The payment ID of the payment that was removed.

\

PrincipalOutUpdated

Emitted when principal out is updated

    event PrincipalOutUpdated(
        uint128 principalOut_
    );

Parameters:

Index Name Type Internal Type Description
0 principalOut_ uint128 uint128 The new value for principal out.

\

UnrealizedLossesUpdated

Emitted when unrealized losses is updated.

    event UnrealizedLossesUpdated(
        uint256 unrealizedLosses_
    );

Parameters:

Index Name Type Internal Type Description
0 unrealizedLosses_ uint256 uint256 The new value for unrealized losses.

\

Upgraded

The instance was upgraded.

    event Upgraded(
        uint256 toVersion_,
        bytes arguments_
    );

Parameters:

Index Name Type Internal Type Description
0 toVersion_ uint256 uint256 The new version of the loan.
1 arguments_ bytes bytes The upgrade arguments, if any.

\