$500,000 WETH Lost - Don't directly send ERC20 tokens to contracts!
Half a million dollars in WETH were just lost. Cause: WETH (ERC20) tokens were sent directly to the WETH contract instead of calling withdraw() from the WETH contract. Contracts cannot detect direct ERC20 token transfers. Do not directly send ERC20 tokens to contracts. Use WETH's withdraw() function or use an AMM DEXs like Uniswap to swap WETH to ETH. Note that some ERC777 - IERC777Recipient contracts can detect direct ERC777 token transfers with tokensReceived() for very specific logic [but cannot detect MSG.SENDER].
Reddit post: https://www.reddit.com/r/ethereum/comments/sfz4kw/did_i_just_lose_half_a_million_dollars_by_sending/
$500,000 WETH Transaction: https://etherscan.io/tx/0x96a7155b44b77c173e7c534ae1ceca536ba2ce534012ff844cf8c1737bc54921
WETH Functions on Etherscan: https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2#writeContract