LP.sol
ERC20 token
DAO can deploy LP token with special contract (Shop). Shop can mint LP. Anyone can burn owned LP and get all the share from DAO.
function burn(
uint256 _amount,
address[] memory _tokens,
address[] memory _adapters,
address[] memory _pools
) external nonReentrant returns (bool) {
require(burnable, "LP: burning is disabled");
require(msg.sender != dao, "LP: DAO can't burn LP");
require(_amount <= balanceOf(msg.sender), "LP: insufficient balance");
require(totalSupply() > 0, "LP: Zero share");
uint256 _share = (1e18 * _amount) / (totalSupply());
_burn(msg.sender, _amount);
bool b = IDao(dao).burnLp(
msg.sender,
_share,
_tokens,
_adapters,
_pools
);
require(b, "LP: burning error");
return true;
}
Last updated