Comment on page
PlusPool
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.
Github Link: (Will be updated after official launch)
- Contract adress after production is deployed
Events
Read-Only Functions
State-Changing Functions
ChangeBorrowFactor
event ChangeBorrowFactor(uint newBorrowFactor);
- Event log of borrow factor change
ChangeLiquidationFactor
event ChangeLiquidationFactor(uint newLiquidationFactor);
- Event log of liquidation factor change
ChangeBorrowable
event ChangeBorrowable(address token, bool b);
- Event that occurs when availability is changed
GiveReward
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 claimedamount
: the amount of MESH claimedlastIndex
: index result of the pair of the wallet after claimingrewardSum
: The amount of MESH that has been accrued so far
GiveAirdropReward
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 claimeddist
: Airdrop contract addressamount
: the amount of token claimedlastIndex
: index result of the pair of the wallet after claimingrewardSum
: The amount of token that has been accrued so far
OpenPosition
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 useramount0
: The deposit amount of token0amount1
: The deposit amount of token1borrow0
: The utilization amount of token0borrow1
: The utilization amount of token1amountLP
: The amount of LP tokens minted due to additional liquidityuserLP
: the total amount of LP tokens minted due to additional liquidity
ClosePosition
event ClosePosition(address user, uint amountLP, uint amount0, uint amount1, uint userLP);
- Events that occur when withdraw liquidity
- Parameters
user
: address of the useramountLP
: The amount of LP tokens burned due to liquidity removalamount0
: The withdraw amount of token0amount1
: The withdraw amount of token1userLP
: the total amount of LP tokens minted due to additional liquidity
Liquidate
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 useridx
: Number of auto-return countdept0
: Number of token0 returned automaticallydept1
: Number of token1 returned automaticallylp
: the total amount of LP tokensdebtRatio
: Asset utilization ratio in case of automatic returntime
: Automatic return time
- mint/burn depending on liquidity addition/removal
lpToken
- target liquidity pool address
- The first token address composed of the pair
- The second token address composed of the pair
- Whether token0 can be borrowable
- Whether token1 can be borrowable
- automatic return factor
- It is a value between 1 and 1e18, in units of 1/1e16%
- Default - 0.85e18
- Utilization cost interest rate of utilized assets
- It is a value between 1 and 1e18, in units of 1/1e16%
- Default - 0.67e18
- Number of PlusPool tokens held by each address
- Ratio of resources to be used for MESH buyback & incineration in case of automatic return
function liquidationCount(address user) public view returns (uint)
- Returns the user's cumulative automatic return count
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 added
- When liquidity is removed
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 token1borrow0
: The utilization amount of WMATICborrow1
: The utilization amount of token1minAmountLP
: Minimum Guaranteed LP amount
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 token0amount1
: The deposit amount of token1borrow0
: The utilization amount of token0borrow1
: The utilization amount of token1minAmountLP
: Minimum Guaranteed LP amount
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 removalminAmount0
: The withdraw amount of token0minAmount1
: The withdraw amount of token1
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 removalminAmount0
: The withdraw amount of token0minAmount1
: The withdraw amount of token1
Last modified 10mo ago