This contract manages the leveraged assets of Meshswap's plus pool liquidity providers. Liquidity providers can maximize their returns with positive assets (deposited assets + utilized assets) by using positive deposits according to their deposited assets. However, a high asset utilization ratio can result in automatic returns, which can result in losses.
Events, Read-Only Functions, and State-Changing Functions
Events Read-Only Functions State-Changing Functions
Events
ChangeBorrowFactor
Copy event ChangeBorrowFactor ( uint newBorrowFactor);
Event log of borrow factor change
ChangeLiquidationFactor
Copy event ChangeLiquidationFactor ( uint newLiquidationFactor);
Event log of liquidation factor change
ChangeBorrowable
Copy event ChangeBorrowable ( address token, bool b);
Event that occurs when availability is changed
GiveReward
Copy event GiveReward ( address user, uint amount, uint lastIndex, uint rewardSum);
Event log of when mined MESH is claimed and distributed
Parameters
user
: address of the user who claimed
amount
: the amount of MESH claimed
lastIndex
: index result of the pair of the wallet after claiming
rewardSum
: The amount of MESH that has been accrued so far
GiveAirdropReward
Copy event GiveAirdropReward ( address user, address dist, uint amount, uint currentIndex, uint userAirdropSum);
Event log of when airdrop token is claimed and distributed
Parameters
user
: address of the user who claimed
dist
: Airdrop contract address
amount
: the amount of token claimed
lastIndex
: index result of the pair of the wallet after claiming
rewardSum
: The amount of token that has been accrued so far
OpenPosition
Copy event OpenPosition ( address user, uint amount0, uint amount1, uint borrow0, uint borrow1, uint amountLP, uint userLP);
Events that occur when depositing to PlusPool
If the token to deposit is MESH, msg.value
is provided.
Parameters
user
: address of the user
amount0
: The deposit amount of token0
amount1
: The deposit amount of token1
borrow0
: The utilization amount of token0
borrow1
: The utilization amount of token1
amountLP
: The amount of LP tokens minted due to additional liquidity
userLP
: the total amount of LP tokens minted due to additional liquidity
ClosePosition
Copy event ClosePosition ( address user, uint amountLP, uint amount0, uint amount1, uint userLP);
Events that occur when withdraw liquidity
Parameters
user
: address of the user
amountLP
: The amount of LP tokens burned due to liquidity removal
amount0
: The withdraw amount of token0
amount1
: The withdraw amount of token1
userLP
: the total amount of LP tokens minted due to additional liquidity
Liquidate
Copy event Liquidate ( address user, uint idx, uint debt0, uint debt1, uint lp, uint debtRatio, uint time);
Event that occur when the automatic return system activates
Parameters
user
: address of the user
idx
: Number of auto-return count
dept0
: Number of token0 returned automatically
dept1
: Number of token1 returned automatically
lp
: the total amount of LP tokens
debtRatio
: Asset utilization ratio in case of automatic return
time
: Automatic return time
Read-Only Functions
totalLP
mint/burn depending on liquidity addition/removal
lpToken
target liquidity pool address
token0
The first token address composed of the pair
token1
The second token address composed of the pair
borrowable0
Whether token0 can be borrowable
borrowable1
Whether token1 can be borrowable
liquidationFactor
It is a value between 1 and 1e18, in units of 1/1e16%
borrowFactor
Utilization cost interest rate of utilized assets
It is a value between 1 and 1e18, in units of 1/1e16%
userLP
Number of PlusPool tokens held by each address
liquidationBonusRate
Ratio of resources to be used for MESH buyback & incineration in case of automatic return
liquidationCount
Copy function liquidationCount ( address user) public view returns ( uint )
Returns the user's cumulative automatic return count
State-Changing Functions
claimReward
Copy function claimReward () public
Method that a user calls to claim the claimable MESH that has accumulated for the pair
When called, MESH is claimed from the Factory and paid to msg.sender
Even if the method is not called directly, it is automatically called when the LP token balance of the user’s wallet changes.
When liquidity is removed
openPositionETH
Copy function openPositionETH ( uint amount1 , uint borrow0 , uint borrow1 , uint minAmountLP) public payable
Method that depositing MATIC to PlusPool
After liquidity is provided, the LP token corresponding to the pool share is minted in the msg.sender
wallet.
If there is claimable MESH when called, the claim proceeds to msg.sender
.
Parameter
amount1
: The deposit amount of token1
borrow0
: The utilization amount of WMATIC
borrow1
: The utilization amount of token1
minAmountLP
: Minimum Guaranteed LP amount
openPositionToken
Copy function openPositionToken ( uint amount0 , uint amount1 , uint borrow0 , uint borrow1 , uint minAmountLP) public payable
Method that depositing to PlusPool
After liquidity is provided, the LP token corresponding to the pool share is minted in the msg.sender
wallet.
If there is claimable MESH when called, the claim proceeds to msg.sender
.
Parameter
amount0
: The deposit amount of token0
amount1
: The deposit amount of token1
borrow0
: The utilization amount of token0
borrow1
: The utilization amount of token1
minAmountLP
: Minimum Guaranteed LP amount
closePositionETH
Copy function closePositionETH ( uint amountLP , uint minAmount0 , uint minAmount1) public
Returns the amount of LP tokens, and distributes the corresponding MATIC and token1 to the msg.sender
wallet
The returned LP token amount is burned
If there is claimable MESH and Airdrop when called, the claim proceeds to msg.sender
.
Parameters
amountLP
: The amount of LP tokens burned due to liquidity removal
minAmount0
: The withdraw amount of token0
minAmount1
: The withdraw amount of token1
closePositionToken
Copy function closePositionToken ( uint amountLP , uint minAmount0 , uint minAmount1) public
Returns the amount of LP tokens, and distributes the corresponding token0 and token1 to the msg.sender
wallet
The returned LP token amount is burned
If there is claimable MESH and Airdrop when called, the claim proceeds to msg.sender
.
Parameters
amountLP
: The amount of LP tokens burned due to liquidity removal
minAmount0
: The withdraw amount of token0
minAmount1
: The withdraw amount of token1