ILendingPool

ILendingPool

This interface defines LendingPool events, structs, and LoanDesk function hooks.

LoanDeskSet

event LoanDeskSet(address prevAddress, address newAddress)

Setter event

TreasurySet

event TreasurySet(address prevAddress, address newAddress)

Setter event

ProtocolRevenue

event ProtocolRevenue(address treasury, uint256 amount)

Event for when the protocol revenue is issued

LoanDefaulted

event LoanDefaulted(uint256 loanId, address borrower, uint256 stakerLoss, uint256 lenderLoss)

Event for when a loan is defaulted

OfferLiquidityAllocated

event OfferLiquidityAllocated(uint256 amount)

Event for when a liquidity is allocated for a loan offer

OfferLiquidityDeallocated

event OfferLiquidityDeallocated(uint256 amount)

Event for when the liquidity is removed from a loan offer

LoanRepaymentProcessed

event LoanRepaymentProcessed(uint256 loanId, address borrower, address payer, uint256 amount, uint256 interestAmount)

Event for when a loan repayments are made

onOfferAllocate

function onOfferAllocate(uint256 amount) external

Hook for a new loan offer. Caller must be the LoanDesk.

NameTypeDescription

amount

uint256

Amount to be allocated for loan offers.

onOfferDeallocate

function onOfferDeallocate(uint256 amount) external

Hook for a loan offer amount update. Caller must be the LoanDesk.

NameTypeDescription

amount

uint256

Previously allocated amount being returned.

onRepay

function onRepay(uint256 loanId, address borrower, address payer, uint256 transferAmount, uint256 interestPayable, uint256 borrowedTime) external

_Hook for repayments. Caller must be the LoanDesk.

 Parameters besides the loanId exists simply to avoid rereading it from the caller via additional inter 
 contract call. Avoiding a recursive call reduces gas and contract bytecode size._
NameTypeDescription

loanId

uint256

ID of the loan which has just been borrowed

borrower

address

Borrower address

payer

address

Actual payer address

transferAmount

uint256

Amount chargeable

interestPayable

uint256

Amount of interest paid, this value is already included in the payment amount

borrowedTime

uint256

Block timestamp when this loan was borrowed

onDefault

function onDefault(uint256 loanId, uint256 principalLoss, uint256 yieldLoss) external returns (uint256, uint256)

Hook for defaulting a loan. Caller must be the LoanDesk. Defaulting a loan will cover the loss using the staked funds. If these funds are not sufficient, the lenders will share the loss.

NameTypeDescription

loanId

uint256

ID of the loan to default

principalLoss

uint256

Unpaid principal amount to resolve

yieldLoss

uint256

Unpaid yield amount to resolve

canOffer

function canOffer(uint256 amount) external view returns (bool)

View indicating whether or not a given loan can be offered by the staker.

Hook for checking if the lending pool can provide liquidity for the total offered loans amount.

NameTypeDescription

amount

uint256

Amount to check for new loan allocation

NameTypeDescription

[0]

bool

True if the pool has sufficient lending liquidity, false otherwise

Last updated