M1Pool

M1Pool

The M1Pool.sol contract is the main user facing contract of the protocol. It exposes the liquidity management methods that can be invoked using either Solidity or Web3 libraries.


Write Methods

borrowM1

function borrowM1( address collateralAddress, uint256 collateralAmount, address asset, uint256 amount, uint256 interestRateMode, uint16 referralCode, address onBehalfOf ) external

User can borrow the amount of asset by collateral the collateralAddress asset to M1Pool

When borrowM1, the M1Pool contract must have** allowance() to spend funds on behalf of msg.sender ** for at-least** amount ** for the** asset **being supplied. This can be done via the standard ERC20/ERC721 approve() method on the underlying token contract.

Referral program is currently inactive, you can pass 0 as referralCode . This program may be activated in the future through an Aave governance proposal.

Call Params

NameTypeDescription

collateralAddress

address

Contract address of collateral assets

collateralAmount

uint256

The number of collateral, send in the tokenId when it is uniswapV3, and send in the number of collateral to be deposit for the others

asset

address

address of the underlying asset

amount

uint256

amount to be borrowed, expressed in wei units

interestRateMode

uint256

the type of borrow debt. Stable: 1, Variable: 2

referralCode

uint16

referral code for our referral program. Use 0 for no referral code.

onBehalfOf

address

address of user who will incur the asset. Use msg.sender when not calling on behalf of a different user.

addCollateral

function addCollateral(uint256 userRecordId, uint256 collateralAmount) external

Call Params

NameTypeDescription

userRecordId

uint256

Record ID generated after collateralizing assets

collateralAmount

uint256

Increase in the amount of collateral assets

reduceCollateral

function reduceCollateral(uint256 userRecordId, uint256 collateralAmount) external

Call Params

NameTypeDescription

userRecordId

uint256

Record ID generated after collateralizing assets

collateralAmount

uint256

Reducing the amount of collateral assets

extraBorrowM1

function extraBorrowM1(uint256 userRecordId, uint256 amount,address onBehalfOf) external

Call Params

NameTypeDescription

userRecordId

uint256

Record ID generated after collateralizing assets

amount

uint256

The amount of new borrow needs

onBehalfOf

address

address of user who will incur the asset.

repayM1

function repayM1( address collateralAddress, uint256 userRecordId, address asset, uint256 amount, address onBehalfOf ) external

Call Params

NameTypeDescription

collateralAddress

address

contract address of the collateral asset

userRecordId

uint256

Record ID generated after collateralizing assets

asset

address

The contract address of the borrowing asset

amount

uint256

the amount of reapy

onBehalfOf

address

the receiver of the collateral, when fully repaid

liquidationCallM1

function liquidationCallM1( uint256 recordId ) external

Liquidation operation based on the record ID generated by the collateral, anyone can call this interface when the collateral record triggers the liquidation.

Call Params

NameTypeDescription

recordId

uint256

Record ID generated after collateralizing assets


View Methods

checkCanLiquidation

function checkCanLiquidation(uint256 recordId) external view returns ( uint256 currentCollateralValueInBaseCurrency, uint256 collateralDebt, uint256 collateralDebtInBaseCurrency, uint256 liquidationThreshold, uint256 collateralCurrentRatio)

Check if the collateral record has been liquidated against the record ID

Return Values

NameTypeDescription

currentCollateralValueInBaseCurrency

uint256

Current value of the collateral

collateralDebt

uint256

current debt of the collateral

collateralDebtInBaseCurrency

uint256

current debt value of the collateral

liquidationThreshold

uint256

Liquidation threshold

collateralCurrentRatio

uint256

Current Loan risk, when its bigger than Liquidation threshold, the liquidation method can be call.

getUserRecordIds

function getUserRecordIds(address user) external view returns (uint256[] memory)

Get information about how many collateral records the user has based on the user's address

Call Params

NameTypeDescription

user

address

user address

Return Values

TypeDescription

uint256[]

current collateral record of user

getRecordDetails

function getRecordDetails(uint256 recordId) external view returns (DataTypes.M1LoadAssetDetails memory)

Get the collateral details based on the collateral record ID.

getM1UserTotalLoadAssetInfo

function getM1UserTotalLoadAssetInfo(address user, address asset) external view returns (DataTypes.M1UserLoadAssetInfo memory)

Get the total number of debts for which the user borrowed a certain asset

Last updated