OpenTermLoan

Functions

HUNDRED_PERCENT

The value that represents 100%, to be easily comparable with the loan rates.

    function HUNDRED_PERCENT()
        view
        returns (
            uint256
        );

Return Values:

Index
Name
Type
Internal Type
Description

0

uint256

uint256

acceptBorrower

Accept the borrower role, must be called by pendingBorrower.

    function acceptBorrower()
        nonpayable;

acceptLender

Accept the lender role, must be called by pendingLender.

acceptNewTerms

Accept the proposed terms and trigger refinance execution.

Parameters:

Index
Name
Type
Internal Type
Description

0

refinancer_

address

address

The address of the refinancer contract.

1

deadline_

uint256

uint256

The deadline for accepting the new terms.

2

calls_

bytes[]

bytes[]

The encoded arguments to be passed to refinancer.

Return Values:

Index
Name
Type
Internal Type
Description

0

refinanceCommitment_

bytes32

bytes32

The hash of the accepted refinance agreement.

borrower

The borrower of the loan, responsible for repayments.

Return Values:

Index
Name
Type
Internal Type
Description

0

address

address

calledPrincipal

The amount of principal yet to be returned to satisfy the loan call.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint256

uint256

callPrincipal

The lender called the loan, giving the borrower a notice period within which to return principal and pro-rata interest.

Parameters:

Index
Name
Type
Internal Type
Description

0

principalToReturn_

uint256

uint256

The minimum amount of principal the borrower must return.

Return Values:

Index
Name
Type
Internal Type
Description

0

paymentDueDate_

uint40

uint40

The new payment due date for returning the principal and pro-rate interest to the lender.

1

defaultDate_

uint40

uint40

The date the loan will be in default.

dateCalled

The timestamp of the date the loan was called.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint40

uint40

dateFunded

The timestamp of the date the loan was funded.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint40

uint40

dateImpaired

The timestamp of the date the loan was impaired.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint40

uint40

datePaid

The timestamp of the date the loan was last paid.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint40

uint40

defaultDate

The timestamp of the date the loan will be in default.

Return Values:

Index
Name
Type
Internal Type
Description

0

paymentDefaultDate_

uint40

uint40

delegateServiceFeeRate

The annualized delegate service fee rate.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint64

uint64

factory

The address of the proxy factory.

Return Values:

Index
Name
Type
Internal Type
Description

0

factory_

address

address

fund

Lend funds to the loan/borrower.

Return Values:

Index
Name
Type
Internal Type
Description

0

fundsLent_

uint256

uint256

The amount funded.

1

paymentDueDate_

uint40

uint40

The due date of the first payment.

2

defaultDate_

uint40

uint40

The timestamp of the date the loan will be in default.

fundsAsset

The address of the fundsAsset funding the loan.

Return Values:

Index
Name
Type
Internal Type
Description

0

address

address

getPaymentBreakdown

Get the breakdown of the total payment needed to satisfy the next payment installment.

Parameters:

Index
Name
Type
Internal Type
Description

0

timestamp_

uint256

uint256

The timestamp that corresponds to when the payment is to be made.

Return Values:

Index
Name
Type
Internal Type
Description

0

principal_

uint256

uint256

The portion of the total amount that will go towards principal.

1

interest_

uint256

uint256

The portion of the total amount that will go towards interest fees.

2

lateInterest_

uint256

uint256

The portion of the total amount that will go towards late interest fees.

3

delegateServiceFee_

uint256

uint256

The portion of the total amount that will go towards delegate service fees.

4

platformServiceFee_

uint256

uint256

The portion of the total amount that will go towards platform service fees.

globals

The Maple globals address

Return Values:

Index
Name
Type
Internal Type
Description

0

globals_

address

address

gracePeriod

The amount of time the borrower has, after a payment is due, to make a payment before being in default.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint32

uint32

impair

Fast forward the payment due date to the current time. This enables the pool delegate to force a payment (or default).

Return Values:

Index
Name
Type
Internal Type
Description

0

paymentDueDate_

uint40

uint40

The new payment due date to result in the removal of the loan's impairment status.

1

defaultDate_

uint40

uint40

The timestamp of the date the loan will be in default.

implementation

The address of the implementation contract being proxied.

Return Values:

Index
Name
Type
Internal Type
Description

0

implementation_

address

address

interestRate

The annualized interest rate (APR), in units of 1e18, (i.e. 1% is 0.01e18).

Return Values:

Index
Name
Type
Internal Type
Description

0

uint64

uint64

isCalled

Whether the loan is called.

Return Values:

Index
Name
Type
Internal Type
Description

0

isCalled_

bool

bool

isImpaired

Whether the loan is impaired.

Return Values:

Index
Name
Type
Internal Type
Description

0

isImpaired_

bool

bool

isInDefault

Whether the loan is in default.

Return Values:

Index
Name
Type
Internal Type
Description

0

isInDefault_

bool

bool

lateFeeRate

The rate charged at late payments.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint64

uint64

lateInterestPremiumRate

The premium over the regular interest rate applied when paying late.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint64

uint64

lender

The lender of the Loan.

Return Values:

Index
Name
Type
Internal Type
Description

0

address

address

makePayment

Make a payment to the loan.

Parameters:

Index
Name
Type
Internal Type
Description

0

principalToReturn_

uint256

uint256

The amount of principal to return, to the lender to reduce future interest payments.

Return Values:

Index
Name
Type
Internal Type
Description

0

interest_

uint256

uint256

The portion of the amount paying interest.

1

lateInterest_

uint256

uint256

The portion of the amount paying late interest.

2

delegateServiceFee_

uint256

uint256

The portion of the amount paying delegate service fees.

3

platformServiceFee_

uint256

uint256

The portion of the amount paying platform service fees.

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.

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.

noticePeriod

The amount of time the borrower has, after the loan is called, to make a payment, paying back the called principal.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint32

uint32

paymentDueDate

The timestamp of the due date of the next payment.

Return Values:

Index
Name
Type
Internal Type
Description

0

paymentDueDate_

uint40

uint40

paymentInterval

The specified time between loan payments.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint32

uint32

pendingBorrower

The address of the pending borrower.

Return Values:

Index
Name
Type
Internal Type
Description

0

address

address

pendingLender

The address of the pending lender.

Return Values:

Index
Name
Type
Internal Type
Description

0

address

address

platformServiceFeeRate

The annualized platform service fee rate.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint64

uint64

principal

The amount of principal owed (initially, the requested amount), which needs to be paid back.

Return Values:

Index
Name
Type
Internal Type
Description

0

uint256

uint256

proposeNewTerms

Propose new terms for refinance.

Parameters:

Index
Name
Type
Internal Type
Description

0

refinancer_

address

address

The address of the refinancer contract.

1

deadline_

uint256

uint256

The deadline for accepting the new terms.

2

calls_

bytes[]

bytes[]

The encoded arguments to be passed to refinancer.

Return Values:

Index
Name
Type
Internal Type
Description

0

refinanceCommitment_

bytes32

bytes32

The hash of the proposed refinance agreement.

refinanceCommitment

The hash of the proposed refinance agreement.

Return Values:

Index
Name
Type
Internal Type
Description

0

bytes32

bytes32

rejectNewTerms

Nullify the current proposed terms.

Parameters:

Index
Name
Type
Internal Type
Description

0

refinancer_

address

address

The address of the refinancer contract.

1

deadline_

uint256

uint256

The deadline for accepting the new terms.

2

calls_

bytes[]

bytes[]

The encoded arguments to be passed to refinancer.

Return Values:

Index
Name
Type
Internal Type
Description

0

refinanceCommitment_

bytes32

bytes32

The hash of the rejected refinance agreement.

removeCall

Remove the loan's called status.

Return Values:

Index
Name
Type
Internal Type
Description

0

paymentDueDate_

uint40

uint40

The restored payment due date.

1

defaultDate_

uint40

uint40

The date the loan will be in default.

removeImpairment

Remove the loan impairment by restoring the original payment due date.

Return Values:

Index
Name
Type
Internal Type
Description

0

paymentDueDate_

uint40

uint40

The restored payment due date.

1

defaultDate_

uint40

uint40

The timestamp of the date the loan will be in default.

repossess

Repossess collateral, and any funds, for a loan in default.

Parameters:

Index
Name
Type
Internal Type
Description

0

destination_

address

address

The address where the collateral and funds asset is to be sent, if any.

Return Values:

Index
Name
Type
Internal Type
Description

0

fundsRepossessed_

uint256

uint256

The amount of funds asset repossessed.

setImplementation

Modifies the proxy's implementation address.

Parameters:

Index
Name
Type
Internal Type
Description

0

newImplementation_

address

address

The address of an implementation contract.

setPendingBorrower

Set the `pendingBorrower` to a new account.

Parameters:

Index
Name
Type
Internal Type
Description

0

pendingBorrower_

address

address

The address of the new pendingBorrower.

setPendingLender

Set the `pendingLender` to a new account.

Parameters:

Index
Name
Type
Internal Type
Description

0

pendingLender_

address

address

The address of the new pendingLender.

skim

Remove all available balance of a specified token. NOTE: Open Term Loans are not designed to hold custody of tokens, so this is designed as a safety feature.

Parameters:

Index
Name
Type
Internal Type
Description

0

token_

address

address

The address of the token contract.

1

destination_

address

address

The recipient of the token.

Return Values:

Index
Name
Type
Internal Type
Description

0

skimmed_

uint256

uint256

The amount of token removed from the loan.

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.

Parameters:

Index
Name
Type
Internal Type
Description

0

toVersion_

uint256

uint256

The version to upgrade to.

1

arguments_

bytes

bytes

Some encoded arguments to use for the upgrade.

Events

BorrowerAccepted

Borrower was accepted, and set to a new account.

Parameters:

Index
Name
Type
Internal Type
Description

0

borrower_

address

address

The address of the new borrower.

CallRemoved

The lender reverted the action of the loan being called and the payment due date was restored to it's original value.

Parameters:

Index
Name
Type
Internal Type
Description

0

paymentDueDate_

uint40

uint40

The restored payment due date.

1

defaultDate_

uint40

uint40

The date the loan will be in default.

Funded

The loan was funded.

Parameters:

Index
Name
Type
Internal Type
Description

0

amount_

uint256

uint256

The amount funded.

1

paymentDueDate_

uint40

uint40

The due date of the first payment.

2

defaultDate_

uint40

uint40

The date the loan will be in default.

Impaired

The payment due date was fast forwarded to the current time, activating the grace period. This is emitted when the pool delegate wants to force a payment (or default).

Parameters:

Index
Name
Type
Internal Type
Description

0

paymentDueDate_

uint40

uint40

The new payment due date.

1

defaultDate_

uint40

uint40

The date the loan will be in default.

ImpairmentRemoved

The payment due date was restored to it's original value, reverting the action of loan impairment.

Parameters:

Index
Name
Type
Internal Type
Description

0

paymentDueDate_

uint40

uint40

The restored payment due date.

1

defaultDate_

uint40

uint40

The date the loan will be in default.

Initialized

Loan was initialized.

Parameters:

Index
Name
Type
Internal Type
Description

0

borrower_

address

address

The address of the borrower.

1

lender_

address

address

The address of the lender.

2

fundsAsset_

address

address

The address of the lent asset.

3

principalRequested_

uint256

uint256

The amount of principal requested.

4

termDetails_

uint32[3]

uint32[3]

Array of loan parameters: [0]: gracePeriod, [1]: noticePeriod, [2]: paymentInterval

5

rates_

uint64[4]

uint64[4]

Array of rate parameters: [0]: delegateServiceFeeRate, [1]: interestRate, [2]: lateFeeRate, [3]: lateInterestPremiumRate

LenderAccepted

Lender was accepted, and set to a new account.

Parameters:

Index
Name
Type
Internal Type
Description

0

lender_

address

address

The address of the new lender.

NewTermsAccepted

The terms of the refinance proposal were accepted.

Parameters:

Index
Name
Type
Internal Type
Description

0

refinanceCommitment_

bytes32

bytes32

The hash of the refinancer, deadline, and calls proposed.

1

refinancer_

address

address

The address that will execute the refinance.

2

deadline_

uint256

uint256

The deadline for accepting the new terms.

3

calls_

bytes[]

bytes[]

The individual calls for the refinancer contract.

NewTermsProposed

A refinance was proposed.

Parameters:

Index
Name
Type
Internal Type
Description

0

refinanceCommitment_

bytes32

bytes32

The hash of the refinancer, deadline, and calls proposed.

1

refinancer_

address

address

The address that will execute the refinance.

2

deadline_

uint256

uint256

The deadline for accepting the new terms.

3

calls_

bytes[]

bytes[]

The individual calls for the refinancer contract.

NewTermsRejected

The terms of the refinance proposal were rejected.

Parameters:

Index
Name
Type
Internal Type
Description

0

refinanceCommitment_

bytes32

bytes32

The hash of the refinancer, deadline, and calls proposed.

1

refinancer_

address

address

The address that will execute the refinance.

2

deadline_

uint256

uint256

The deadline for accepting the new terms.

3

calls_

bytes[]

bytes[]

The individual calls for the refinancer contract.

PaymentMade

Payments were made.

Parameters:

Index
Name
Type
Internal Type
Description

0

lender_

address

address

The address of the lender the payment was made to.

1

principalPaid_

uint256

uint256

The portion of the total amount that went towards paying down principal.

2

interestPaid_

uint256

uint256

The portion of the total amount that went towards interest.

3

lateInterestPaid_

uint256

uint256

The portion of the total amount that went towards late interest.

4

delegateServiceFee_

uint256

uint256

The portion of the total amount that went towards delegate service fees.

5

platformServiceFee_

uint256

uint256

The portion of the total amount that went towards platform service fee.

6

paymentDueDate_

uint40

uint40

The new payment due date.

7

defaultDate_

uint40

uint40

The date the loan will be in default.

PendingBorrowerSet

Pending borrower was set.

Parameters:

Index
Name
Type
Internal Type
Description

0

pendingBorrower_

address

address

Address that can accept the borrower role.

PendingLenderSet

Pending lender was set.

Parameters:

Index
Name
Type
Internal Type
Description

0

pendingLender_

address

address

The address that can accept the lender role.

PrincipalCalled

The lender called the loan, giving the borrower a notice period within which to return principal and pro-rata interest.

Parameters:

Index
Name
Type
Internal Type
Description

0

principalToReturn_

uint256

uint256

The minimum amount of principal the borrower must return.

1

paymentDueDate_

uint40

uint40

The new payment due date.

2

defaultDate_

uint40

uint40

The date the loan will be in default.

PrincipalReturned

Principal was returned to lender, to close the loan or return future interest payments.

Parameters:

Index
Name
Type
Internal Type
Description

0

principalReturned_

uint256

uint256

The amount of principal returned.

1

principalRemaining_

uint256

uint256

The amount of principal remaining on the loan.

Repossessed

The loan was in default and funds and collateral was repossessed by the lender.

Parameters:

Index
Name
Type
Internal Type
Description

0

fundsRepossessed_

uint256

uint256

The amount of funds asset repossessed.

1

destination_

address

address

The address of the recipient of the funds, if any.

Skimmed

Some token was removed from the loan.

Parameters:

Index
Name
Type
Internal Type
Description

0

token_

address

address

The address of the token contract.

1

amount_

uint256

uint256

The amount of token remove from the loan.

2

destination_

address

address

The recipient of the token.

Upgraded

The instance was upgraded.

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.

Last updated