add liquidity amount to events

This commit is contained in:
Noah Zinsmeister
2019-10-25 17:28:04 -04:00
parent 7fbf2244e9
commit cd41f86770
2 changed files with 12 additions and 8 deletions

View File

@ -23,12 +23,14 @@ contract UniswapV2 is IUniswapV2, ERC20("Uniswap V2", "UNI-V2", 18, 0) {
event LiquidityMinted(
address indexed sender,
address indexed recipient,
uint256 liquidity,
uint256 amountToken0,
uint256 amountToken1
);
event LiquidityBurned(
address indexed sender,
address indexed recipient,
uint256 liquidity,
uint256 amountToken0,
uint256 amountToken1
);
@ -138,19 +140,19 @@ contract UniswapV2 is IUniswapV2, ERC20("Uniswap V2", "UNI-V2", 18, 0) {
updateData(balanceToken0, balanceToken1);
emit LiquidityMinted(msg.sender, recipient, amountToken0, amountToken1);
emit LiquidityMinted(msg.sender, recipient, liquidity, amountToken0, amountToken1);
}
function burnLiquidity(
uint256 amount,
uint256 liquidity,
address recipient
) public lock returns (uint256 amountToken0, uint256 amountToken1) {
require(amount > 0, "UniswapV2: ZERO_AMOUNT");
require(liquidity > 0, "UniswapV2: ZERO_AMOUNT");
amountToken0 = amount.mul(tokenData[token0].reserve).div(totalSupply);
amountToken1 = amount.mul(tokenData[token1].reserve).div(totalSupply);
amountToken0 = liquidity.mul(tokenData[token0].reserve).div(totalSupply);
amountToken1 = liquidity.mul(tokenData[token1].reserve).div(totalSupply);
burnFrom(msg.sender, amount); // TODO gas golf?
burnFrom(msg.sender, liquidity); // TODO gas golf?
require(IERC20(token0).transfer(recipient, amountToken0), "UniswapV2: TRANSFER_FAILED");
require(IERC20(token1).transfer(recipient, amountToken1), "UniswapV2: TRANSFER_FAILED");
@ -159,7 +161,7 @@ contract UniswapV2 is IUniswapV2, ERC20("Uniswap V2", "UNI-V2", 18, 0) {
uint256 balanceToken1 = IERC20(token1).balanceOf(address(this));
updateData(balanceToken0, balanceToken1);
emit LiquidityBurned(msg.sender, recipient, amountToken0, amountToken1);
emit LiquidityBurned(msg.sender, recipient, liquidity, amountToken0, amountToken1);
}
function swap(address input, address recipient) public lock returns (uint256 amountOutput) {

View File

@ -11,12 +11,14 @@ interface IUniswapV2 {
event LiquidityMinted(
address indexed sender,
address indexed recipient,
uint256 liquidity,
uint256 amountToken0,
uint256 amountToken1
);
event LiquidityBurned(
address indexed sender,
address indexed recipient,
uint256 liquidity,
uint256 amountToken0,
uint256 amountToken1
);
@ -36,7 +38,7 @@ interface IUniswapV2 {
function mintLiquidity(address recipient) external returns (uint256 liquidity);
function burnLiquidity(
uint256 amount,
uint256 liquidity,
address recipient
) external returns (uint256 amountToken0, uint256 amountToken1);
function swap(address input, address recipient) external returns (uint256 amountOutput);