From cd41f867703b9d6cdeb2eb83d128eb4b5bda44dc Mon Sep 17 00:00:00 2001 From: Noah Zinsmeister Date: Fri, 25 Oct 2019 17:28:04 -0400 Subject: [PATCH] add liquidity amount to events --- contracts/UniswapV2.sol | 16 +++++++++------- contracts/interfaces/IUniswapV2.sol | 4 +++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/contracts/UniswapV2.sol b/contracts/UniswapV2.sol index fd5b54f..902a736 100644 --- a/contracts/UniswapV2.sol +++ b/contracts/UniswapV2.sol @@ -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) { diff --git a/contracts/interfaces/IUniswapV2.sol b/contracts/interfaces/IUniswapV2.sol index 7726caf..ba2fd97 100644 --- a/contracts/interfaces/IUniswapV2.sol +++ b/contracts/interfaces/IUniswapV2.sol @@ -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);