LoanTermsConsensus Contracts

Contracts for validating consensus for loan terms

Teller utilizes nodes in order to sign borrower and lender requests before they can be accepted on-chain. The consensus contracts for Teller validate responses from the nodes in congruence with the borrower's request, this allows them to then facilitate or disburse the loan.

The main external function for both of these contracts is the processRequest() method that processes the loan request, or the request for accrued interest, to ensure it is in line with current protocol settings and response variability.

Internally, the contract calls the _getConsensus() method that checks if all the node values are within the tolerance set on the platform in order to retrieve the average of those values and set them on-chain.

The loan terms consensus contracts handle all borrower requests for loans and the related responses from the nodes handling Loan Terms

processLoanTerms()

function( TellerCommon.LoanRequest calldata request, TellerCommon.LoanResponse[] calldata responses, )

TellerCommon.LoanRequest is a request struct/object that is sent to the Teller Nodes and subsequently on-chain, with all the required entries such as:

Variable

Type

Description

borrower

address payable

The wallet address of the borrower

recipient

address

The address where funds will be sent, only applicable in over collateralized loans

consensusAddress

address

The address of the Teller loan consensus contract to which the request should be sent

requestNonce

uint256

The nonce of the borrower wallet address required for authentication

amount

uint256

The number of tokens requested by the borrower for the loan

duration

uint256

The length of time in seconds that the loan has been requested for

requestTime

uint256

The timestamp at which the loan was requested

TellerCommon.LoanResponse[] is an array of signed response structs/objects that are returned from registered Teller nodes. These signed response structs/objects need to be passed on-chain in order to register the loan terms on-chain.

Variable

Type

Description

signer

address

The wallet address of the signer validating the interest request of the lender

consensusAddress

address

The address of the Teller loan consensus contract to which the request should be sent

responseTime

uint256

The timestamp at which the response was sent

interestRate

uint256

The signed interest rate generated by the signer's Credit Risk Algorithm (CRA)

collateralRatio

uint256

The ratio of collateral to loan amount that is generated by the signer's Credit Risk Algorithm (CRA)

maxLoanAmount

uint256

The largest amount of tokens that can be taken out in the loan by the borrower

signature

Signature

The signature generated by the signer in the format of the below Signature struct

Last updated