trx fails at & debug at tenderly
pragma solidity 0.5.12;
contract WETH9_
{
mapping (address => uint) public balanceOf;
mapping (address => mapping (address => uint)) public allowance;
function() external payable ;
function deposit() external payable ;
function withdraw(uint wad) external ;
function totalSupply() external view returns (uint) ;
function approve(address guy, uint wad) external returns (bool) ;
function transfer(address dst, uint wad) external returns (bool) ;
function transferFrom(address src, address dst, uint wad) external returns (bool);
}
contract WrapUnwrap
{
WETH9_ internal WETH;
constructor (address payable WETHAddr) public {
require(WETHAddr != address(0), "WETH is the zero address");
WETH = WETH9_(WETHAddr);
}
function wrap() payable public
{
uint256 ETHAmount =msg.value;
//create WETH from ETH
if (msg.value != 0) {
WETH.deposit.value(msg.value)();
}
require(WETH.balanceOf(address(this))>=ETHAmount,"Ethereum not deposited");
}
function unwrap(uint256 Amount) public
{
address payable sender= msg.sender;
if (Amount != 0) {
WETH.withdraw(Amount);
sender.transfer(address(this).balance);
}
}
}