• Mark Tyneway's avatar
    contracts-bedrock: update weth98 (#10102) · c8277f3b
    Mark Tyneway authored
    * contracts-bedrock: update weth98
    
    The custom gas token project is moving away from using
    the original weth9 code as a predeploy to using the
    weth98 code as a predeploy. As part of this, the ability
    to override the name and symbol are required for chains
    that use a custom gas token. There is no way to
    mark an inline declaration as `virtual`, it requires
    moving to a `function` syntax. Definitely less clean
    looking but necessary to support the override ability.
    
    The implementation of the new WETH predeploy is as follows:
    
    ```solidity
    contract WETH is WETH98 {
        /// @notice Returns the name of the token from the L1Block contract
        function name() external view override returns (string memory) {
            return string.concat("Wrapped ", L1Block(Predeploys.L1_BLOCK_ATTRIBUTES).gasPayingTokenName());
        }
    
        /// @notice Returns the symbol of the token from the L1Block contract
        function symbol() external view override returns (string memory) {
            return string.concat("W", L1Block(Predeploys.L1_BLOCK_ATTRIBUTES).gasPayingTokenSymbol());
        }
    }
    ```
    
    Where when not in custom gas token mode, it with return `Wrapped Ether`
    and `WETH`, so it is backwards compatible.
    
    This commit also adds a fallback function since the original weth9 has
    a fallback function but this one does not. While the receive function
    can work, adding the fallback function ensures that the same behavior
    as weth9 is achieved when making a call that includes calldata + value.
    
    * contracts-bedrock: fix compile
    
    * snapshots: update
    
    * op-bindings: regenerate
    
    * contracts-bedrock: cleanup weth98
    
    * contracts-bedrock: semver lock
    
    * contracts-bedrock: weth98 tests
    
    * lint: fix
    c8277f3b
Name
Last commit
Last update
..
ast Loading commit data...
bindgen Loading commit data...
bindings Loading commit data...
bindingspreview Loading commit data...
cmd Loading commit data...
etherscan Loading commit data...
foundry Loading commit data...
hardhat Loading commit data...
legacy-bindings Loading commit data...
predeploys Loading commit data...
solc Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
artifacts-preview.json Loading commit data...
artifacts.json Loading commit data...
doc.go Loading commit data...