Interactions

The pTokens contract handles core asset management operations such as supplying, borrowing, repaying, withdrawing, and liquidating. These functions form the backbone of user interaction with the lending protocol.

deposit

Supply assets to receive pTokens representing your share in the liquidity pool.

The sender supplies assets into the market, and in return, the minter receives pTokens as a representation of their deposit.

function deposit(uint256 mintAmount, address receiver)
    external
    returns (uint256);

Name

Type

Description

mintAmount

uint256

The amount of the underlying asset to supply

receiver

address

User whom the supply will be attributed to

User whom the supply will be attributed to

Returns

Name

Type

Description

none

uint256

amount of minted tokens

borrow

Borrow assets against your collateral.

Sender borrows assets from the protocol to their own address

function borrow(uint256 borrowAmount) external;

Parameters

Name

Type

Description

borrowAmount

uint256

The amount of the underlying asset to borrow

repayBorrow

Repay borrowed assets to reduce your outstanding debt.

Sender repays their own borrow

Parameters

Name

Type

Description

repayAmount

uint256

The amount to repay, or type(uint256).max for the full outstanding amount

withdraw

Sender redeems pTokens in exchange for a specified amount of underlying asset

Accrues interest whether or not the operation succeeds, unless reverted

Parameters

Name

Type

Description

redeemAmount

uint256

The amount of underlying to redeem

receiver

address

The address to receive underlying redeemed asset

owner

address

The address which account for redeem tokens

Returns

Name

Type

Description

none

uint256

amount of burnt tokens

mint

Similar to deposit, but lets you specify the amount of pTokens to mint.

The sender supplies assets into the market and receives pTokens in exchange

Parameters

Name

Type

Description

tokenAmount

uint256

The amount of token to mint for supply

receiver

address

User whom the supply will be attributed to

Returns

Name

Type

Description

<none>

uint256

amount of supplied underlying asset

redeem

The sender redeems pTokens in exchange for the underlying asset

Parameters

Name

Type

Description

redeemTokens

uint256

The number of pTokens to redeem into underlying

receiver

address

The address to receive underlying redeemed asset

owner

address

The address which account for redeem tokens

Returns

Name

Type

Description

<none>

uint256

amount of redeemed underlying asset

borrowOnBehalfOf

The sender borrows assets on behalf of some other address. This function is only available for senders, explicitly marked as delegates of the borrower using riskEngine.updateDelegate

Parameters

Name

Type

Description

onBehalfOf

address

The borrower, on behalf of whom to borrow

borrowAmount

uint256

The amount of the underlying asset to borrow

repayBorrowOnBehalfOf

Sender repays a borrow belonging to borrower

Name

Type

Description

onBehalfOf

address

the account with the debt being payed off

repayAmount

uint256

The amount to repay, or type(uint256).max for the full outstanding amount

liquidateBorrow

The sender liquidates the borrower's collateral. The collateral seized is transferred to the liquidator.

Parameters

Name

Type

Description

borrower

address

The borrower of this pToken to be liquidated

repayAmount

uint256

The amount of the underlying borrowed asset to repay

pTokenCollateral

IPToken

The market in which to seize collateral from the borrower

reduceReservesEmergency

Accrues interest and reduces reserves by transferring to emergency guardian

Parameters

Name
Type
Description

reduceAmount

uint256

Amount of reduction to total reserves

reduceReservesOwner

Accrues interest and reduces reserves by transferring to protocol owner

Parameters

Name
Type
Description

reduceAmount

uint256

Amount of reduction to owner reserves

reduceReservesConfigurator

Accrues interest and reduces reserves by transferring to governor

Parameters

Name
Type
Description

reduceAmount

uint256

Amount of reduction to configurator reserves

sweepToken

A public function to sweep accidental ERC-20 transfers to this contract. Tokens are sent to admin (timelock)

Parameters

Name
Type
Description

token

IERC20

The address of the ERC-20 token to sweep

setReserveFactor

Admin Functions

accrues interest and sets a new reserve factor for the protocol

Admin function to accrue interest and set a new reserve factor

setProtocolSeizeShare

sets a new seize share for the protocol

Admin function to set a new seize share

configureInterestRateModel

Configures the parameters for the interest rate model of the protocol.

This function sets the base rate, multipliers, and kink points for the interest rate model. All annualized rates are converted to per-second rates for internal calculations. Only callable by the configurator.

Parameters

Name
Type
Description

baseRatePerYear

uint256

The base interest rate per year (scaled by 1e18) before utilization hits the first kink.

multiplierPerYear

uint256

The multiplier per year (scaled by 1e18) that increases the interest rate as utilization increases before the first kink.

firstJumpMultiplierPerYear

uint256

The additional multiplier applied after the first kink point (scaled by 1e18).

secondJumpMultiplierPerYear

uint256

The additional multiplier applied after second kink point (scaled by 1e18).

firstKink

uint256

The utilization rate (scaled by 1e18) at which the interest rate "jumps" according to the first jump multiplier.

secondKink

uint256

The utilization rate (scaled by 1e18) at which the interest rate "jumps" according to the second jump multiplier.

Last updated