# New WETH Spec Repo: https://github.com/ERC4626-Alliance/WETHPlus ## WETH+ Is [ERC-20](https://ercs.ethereum.org/ERCS/erc-20), [ERC-2612](https://eips.ethereum.org/EIPS/eip-2612), [ERC-4626](https://eips.ethereum.org/EIPS/eip-4626), [ERC-7535: Native ETH ERC-4626](https://ethereum-magicians.org/t/eip-7535-eth-native-asset-tokenized-vault/16068), [ERC-7550: Transient ERC-20 Approvals](https://github.com/ethereum/ERCs/pull/81), and backward compatible with weth9 It will also have a convenience method `withdrawAll(address receiver, address owner)` and a payable receive function which wraps `deposit()`. ## WETH Upgrade Router The WETH upgrade router allows for conversion from native ETH or WETH9 to WETH+ along with the following patterns: * max approve of permit2 atomically upon upgrade * support of existing permit2 WETH9 approvals * question, should the router allowance transfer and/or signedTransfer ## Out of Scope and Rationale - implementation in huff or assembly: gas savings on this level are not worth the tradeoffs of code legibility and security - flash loanable: maybe, but probably unnecessary as higher layer protocols can add flash loans - EIP-3009: Stagnant and functionally replaced by Permit2 - Built in max approval of permit2: Antipattern to auto max approve a specific contract, transient approve makes this relatively unnecessary. The WETH Upgrade Router will also allow for an atomic depositAndApprove of Permit2 - built-in migration from weth9: antipattern due to differences across multiple chains. Will be added at router layer as well - There is no fallback function and calls to the fallback function will revert to protect against [phantom method vulnerabilities](https://medium.com/zengo/without-permit-multichains-exploit-explained-8417e8c1639b). ## Future Work - Permit2 Enhancement with message signing for transient erc-20 approval and 4626 flows (deposit, withdraw, mint, redeem, requestDeposit, requestRedeem) - Message signing for ERC-4626