Simplify fee calculation in WethAdapter
`WethAdapter` does some arithmetic to keep track of how much ether is being provided as a fee versus as funds that should be transferred into WETH:\\n```\\n// Some aggregators require ETH fees\\nuint256 fee = msg.value;\\n\\nif (address(tokenFrom) == Constants.ETH) {\\n    // If tokenFrom is ETH, msg.value = fee + amountFrom (total fee could be 0)\\n    require(amountFrom <= fee, "MSG\\_VAL\\_INSUFFICIENT");\\n    fee -= amountFrom;\\n    // Can't deal with ETH, convert to WETH\\n    IWETH weth = getWETH();\\n    weth.deposit{value: amountFrom}();\\n    \\_approveSpender(weth, spender, amountFrom);\\n} else {\\n    // Otherwise capture tokens from sender\\n    // tokenFrom.safeTransferFrom(recipient, address(this), amountFrom);\\n    \\_approveSpender(tokenFrom, spender, amountFrom);\\n}\\n\\n// Perform the swap\\naggregator.functionCallWithValue(abi.encodePacked(method, data), fee);\\n```\\n\\nThis code can be simplified by using `address(this).balance` instead.
Resolution\\nConsenSys/[email protected]93bf5c6.\\nConsider something like the following code instead:\\n```\\nif (address(tokenFrom) == Constants.ETH) {\\n    getWETH().deposit{value: amountFrom}(); // will revert if the contract has an insufficient balance\\n    \\_approveSpender(weth, spender, amountFrom);\\n} else {\\n    tokenFrom.safeTransferFrom(recipient, address(this), amountFrom);\\n    \\_approveSpender(tokenFrom, spender, amountFrom);\\n}\\n\\n// Send the remaining balance as the fee.\\naggregator.functionCallWithValue(abi.encodePacked(method, data), address(this).balance);\\n```\\n\\nAside from being a little simpler, this way of writing the code makes it obvious that the full balance is being properly consumed. Part is traded, and the rest is sent as a fee.
```\\n// Some aggregators require ETH fees\\nuint256 fee = msg.value;\\n\\nif (address(tokenFrom) == Constants.ETH) {\\n    // If tokenFrom is ETH, msg.value = fee + amountFrom (total fee could be 0)\\n    require(amountFrom <= fee, "MSG\\_VAL\\_INSUFFICIENT");\\n    fee -= amountFrom;\\n    // Can't deal with ETH, convert to WETH\\n    IWETH weth = getWETH();\\n    weth.deposit{value: amountFrom}();\\n    \\_approveSpender(weth, spender, amountFrom);\\n} else {\\n    // Otherwise capture tokens from sender\\n    // tokenFrom.safeTransferFrom(recipient, address(this), amountFrom);\\n    \\_approveSpender(tokenFrom, spender, amountFrom);\\n}\\n\\n// Perform the swap\\naggregator.functionCallWithValue(abi.encodePacked(method, data), fee);\\n```\\n