Odd Licorice Lobster
Medium
withdrawETH function Converts aWETH
tokens back into ETH
and transfers it to the specified recipient.
The token transfer is done using the transferFrom
method. This works fine on most chains (Ethereum, Optimism, Polygon) which use the standard WETH9 contract that handles the case src == msg.sender:
if (src != msg.sender && allowance[src][msg.sender] != uint(- 1)) {
require(allowance[src][msg.sender] >= wad);
allowance[src][msg.sender] -= wad;
}
The problem is that the WETH implementation on Arbitrum uses a different contract and does not have this src == msg.sender
handling.
No response
No response
No response
withdrawETH
function will revert on Arbitrum
No response
use transfer
instead transferFrom