✅WETH10
Idea
function execute(address receiver, uint256 amount, bytes calldata data) external nonReentrant {
uint256 prevBalance = address(this).balance;
Address.functionCallWithValue(receiver, data, amount);
require(address(this).balance >= prevBalance, "flash loan not returned");
} function withdrawAll() external nonReentrant {
Address.sendValue(payable(msg.sender), balanceOf(msg.sender));
// @audit-issue _burnAll() = _burn(msg.sender, balanceOf(msg.sender));
// @audit-issue We can transfer WETH out in `fallback()` so that `balanceOf(msg.sender) == 0`
// @audit-issue Therefore no WETH will be burnt
_burnAll();
} function _burnAll() internal {
_burn(msg.sender, balanceOf(msg.sender));
}PoC
Last updated
