ETH Price: $2,502.04 (-9.89%)

Transaction Decoder

Block:
22534639 at May-21-2025 11:48:23 PM +UTC
Transaction Fee:
0.000791870598879234 ETH $1.98
Gas Used:
484,086 Gas / 1.635805619 Gwei

Emitted Events:

139 InitializableAdminUpgradeabilityProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000045d11f7ebbc79f18467dd534e2865d0dba6aa435, 0x00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000006347425c06f0942e )
140 L1ChugSplashProxy.0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396( 0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396, 0x0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9, 0x00000000000000000000000076fb31fb4af56892a25e32cfc43de717950c9278, 0x00000000000000000000000045d11f7ebbc79f18467dd534e2865d0dba6aa435, 00000000000000000000000045d11f7ebbc79f18467dd534e2865d0dba6aa435, 0000000000000000000000000000000000000000000000006347425c06f0942e, 0000000000000000000000000000000000000000000000000000000000000060, 0000000000000000000000000000000000000000000000000000000000000000 )
141 L1ChugSplashProxy.0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf( 0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf, 0x0000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac33e2ddae9, 0x00000000000000000000000076fb31fb4af56892a25e32cfc43de717950c9278, 0x00000000000000000000000045d11f7ebbc79f18467dd534e2865d0dba6aa435, 00000000000000000000000045d11f7ebbc79f18467dd534e2865d0dba6aa435, 0000000000000000000000000000000000000000000000006347425c06f0942e, 0000000000000000000000000000000000000000000000000000000000000060, 0000000000000000000000000000000000000000000000000000000000000000 )
142 Proxy.0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32( 0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32, 0x00000000000000000000000036bde71c97b33cc4729cf772ae268934f7ab70b2, 0x0000000000000000000000004200000000000000000000000000000000000007, 0x0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000020, 000000000000000000000000000000000000000000000000000000000000022d, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 000000000007e37600d764ad0b00010000000000000000000000000000000000, 0000000000000000000002ad6700000000000000000000000099c9fc46f92e8a, 1c0dec1b1747d010903e884be100000000000000000000000042000000000000, 0000000000000000000000001000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000030d4000000000000000000000000000000000000000, 000000000000000000000000c000000000000000000000000000000000000000, 000000000000000000000000e40166a07a00000000000000000000000076fb31, fb4af56892a25e32cfc43de717950c92780000000000000000000000007fc665, 00c84a76ad7e9c93437bfc5ac33e2ddae900000000000000000000000045d11f, 7ebbc79f18467dd534e2865d0dba6aa43500000000000000000000000045d11f, 7ebbc79f18467dd534e2865d0dba6aa435000000000000000000000000000000, 0000000000000000006347425c06f0942e000000000000000000000000000000, 00000000000000000000000000000000c0000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
143 Lib_ResolvedDelegateProxy.0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a( 0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a, 0x0000000000000000000000004200000000000000000000000000000000000010, 00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000000000080, 000100000000000000000000000000000000000000000000000000000002ad67, 0000000000000000000000000000000000000000000000000000000000030d40, 00000000000000000000000000000000000000000000000000000000000000e4, 0166a07a00000000000000000000000076fb31fb4af56892a25e32cfc43de717, 950c92780000000000000000000000007fc66500c84a76ad7e9c93437bfc5ac3, 3e2ddae900000000000000000000000045d11f7ebbc79f18467dd534e2865d0d, ba6aa43500000000000000000000000045d11f7ebbc79f18467dd534e2865d0d, ba6aa4350000000000000000000000000000000000000000000000006347425c, 06f0942e00000000000000000000000000000000000000000000000000000000, 000000c000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
144 Lib_ResolvedDelegateProxy.0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546( 0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546, 0x00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x25ace71c...4F7ab5fA1
(Optimism: Proxy OVM L1 Cross Domain Messenger)
(quasarbuilder)
25.647849988142077901 Eth25.647903237602077901 Eth0.00005324946
0x45D11F7E...DBA6aA435
2.719688126227412246 Eth
Nonce: 44383
2.718896255628533012 Eth
Nonce: 44384
0.000791870598879234
0x7Fc66500...33E2DDaE9
0x99C9fc46...03E884bE1
(Optimism: Gateway)
0xbEb5Fc57...e41f106Ed
(Optimism: Portal)

Execution Trace

L1ChugSplashProxy.58a997f6( )
  • ProxyAdmin.STATICCALL( )
  • L1StandardBridge.depositERC20( _l1Token=0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9, _l2Token=0x76FB31fb4af56892A25e32cFC43De717950c9278, _amount=7153759496122176558, _minGasLimit=200000, _extraData=0x )
    • InitializableAdminUpgradeabilityProxy.01ffc9a7( )
      • AaveTokenV3.01ffc9a7( )
      • InitializableAdminUpgradeabilityProxy.01ffc9a7( )
        • AaveTokenV3.01ffc9a7( )
        • InitializableAdminUpgradeabilityProxy.23b872dd( )
          • AaveTokenV3.transferFrom( from=0x45D11F7EbBc79F18467dd534e2865d0DBA6aA435, to=0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1, amount=7153759496122176558 ) => ( True )
          • Lib_ResolvedDelegateProxy.3dbb202b( )
            • Lib_AddressManager.getAddress( _name=OVM_L1CrossDomainMessenger ) => ( 0x5D5a095665886119693F0B41d8DFeE78da033e8B )
            • L1CrossDomainMessenger.sendMessage( _target=0x4200000000000000000000000000000000000010, _message=0x0166A07A00000000000000000000000076FB31FB4AF56892A25E32CFC43DE717950C92780000000000000000000000007FC66500C84A76AD7E9C93437BFC5AC33E2DDAE900000000000000000000000045D11F7EBBC79F18467DD534E2865D0DBA6AA43500000000000000000000000045D11F7EBBC79F18467DD534E2865D0DBA6AA4350000000000000000000000000000000000000000000000006347425C06F0942E00000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000000000000000000000000000000000000, _minGasLimit=200000 )
              • Proxy.e9e05c42( )
                • OptimismPortal2.depositTransaction( _to=0x4200000000000000000000000000000000000007, _value=0, _gasLimit=516982, _isCreation=False, _data=0xD764AD0B000100000000000000000000000000000000000000000000000000000002AD6700000000000000000000000099C9FC46F92E8A1C0DEC1B1747D010903E884BE1000000000000000000000000420000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030D4000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000E40166A07A00000000000000000000000076FB31FB4AF56892A25E32CFC43DE717950C92780000000000000000000000007FC66500C84A76AD7E9C93437BFC5AC33E2DDAE900000000000000000000000045D11F7EBBC79F18467DD534E2865D0DBA6AA43500000000000000000000000045D11F7EBBC79F18467DD534E2865D0DBA6AA4350000000000000000000000000000000000000000000000006347425C06F0942E00000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
                  • Proxy.STATICCALL( )
                    File 1 of 11: L1ChugSplashProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity >0.5.0 <0.8.0;
                    import { iL1ChugSplashDeployer } from "./interfaces/iL1ChugSplashDeployer.sol";
                    /**
                    * @title L1ChugSplashProxy
                    * @dev Basic ChugSplash proxy contract for L1. Very close to being a normal proxy but has added
                    * functions `setCode` and `setStorage` for changing the code or storage of the contract. Nifty!
                    *
                    * Note for future developers: do NOT make anything in this contract 'public' unless you know what
                    * you're doing. Anything public can potentially have a function signature that conflicts with a
                    * signature attached to the implementation contract. Public functions SHOULD always have the
                    * 'proxyCallIfNotOwner' modifier unless there's some *really* good reason not to have that
                    * modifier. And there almost certainly is not a good reason to not have that modifier. Beware!
                    */
                    contract L1ChugSplashProxy {
                    /*************
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 2 of 11: InitializableAdminUpgradeabilityProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: agpl-3.0
                    pragma solidity 0.6.10;
                    /**
                    * @dev Interface of the ERC20 standard as defined in the EIP.
                    */
                    interface IERC20 {
                    /**
                    * @dev Returns the amount of tokens in existence.
                    */
                    function totalSupply() external view returns (uint256);
                    /**
                    * @dev Returns the amount of tokens owned by `account`.
                    */
                    function balanceOf(address account) external view returns (uint256);
                    /**
                    * @dev Moves `amount` tokens from the caller's account to `recipient`.
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 3 of 11: Proxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity 0.8.15;
                    /**
                    * @title Proxy
                    * @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or
                    * if the caller is address(0), meaning that the call originated from an off-chain
                    * simulation.
                    */
                    contract Proxy {
                    /**
                    * @notice The storage slot that holds the address of the implementation.
                    * bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
                    */
                    bytes32 internal constant IMPLEMENTATION_KEY =
                    0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
                    /**
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 4 of 11: Lib_ResolvedDelegateProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity >=0.6.0 <0.8.0;
                    import "../utils/Context.sol";
                    /**
                    * @dev Contract module which provides a basic access control mechanism, where
                    * there is an account (an owner) that can be granted exclusive access to
                    * specific functions.
                    *
                    * By default, the owner account will be the one that deploys the contract. This
                    * can later be changed with {transferOwnership}.
                    *
                    * This module is used through inheritance. It will make available the modifier
                    * `onlyOwner`, which can be applied to your functions to restrict their use to
                    * the owner.
                    */
                    abstract contract Ownable is Context {
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 5 of 11: ProxyAdmin
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity 0.8.15;
                    import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
                    /**
                    * @custom:legacy
                    * @title AddressManager
                    * @notice AddressManager is a legacy contract that was used in the old version of the Optimism
                    * system to manage a registry of string names to addresses. We now use a more standard
                    * proxy system instead, but this contract is still necessary for backwards compatibility
                    * with several older contracts.
                    */
                    contract AddressManager is Ownable {
                    /**
                    * @notice Mapping of the hashes of string names to addresses.
                    */
                    mapping(bytes32 => address) private addresses;
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 6 of 11: L1StandardBridge
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity 0.8.15;
                    // Contracts
                    import { StandardBridge } from "src/universal/StandardBridge.sol";
                    // Libraries
                    import { Predeploys } from "src/libraries/Predeploys.sol";
                    // Interfaces
                    import { ISemver } from "interfaces/universal/ISemver.sol";
                    import { ICrossDomainMessenger } from "interfaces/universal/ICrossDomainMessenger.sol";
                    import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol";
                    /// @custom:proxied true
                    /// @title L1StandardBridge
                    /// @notice The L1StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and
                    /// L2. In the case that an ERC20 token is native to L1, it will be escrowed within this
                    /// contract. If the ERC20 token is native to L2, it will be burnt. Before Bedrock, ETH was
                    /// stored within this contract. After Bedrock, ETH is instead stored inside the
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 7 of 11: AaveTokenV3
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity ^0.8.0;
                    import {BaseAaveTokenV2} from './BaseAaveTokenV2.sol';
                    import {BaseDelegation} from './BaseDelegation.sol';
                    contract AaveTokenV3 is BaseAaveTokenV2, BaseDelegation {
                    /**
                    * @dev initializes the contract upon assignment to the InitializableAdminUpgradeabilityProxy
                    */
                    function initialize() external virtual initializer {}
                    function _afterTokenTransfer(
                    address from,
                    address to,
                    uint256 fromBalanceBefore,
                    uint256 toBalanceBefore,
                    uint256 amount
                    ) internal override {
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 8 of 11: Lib_AddressManager
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity >=0.6.0 <0.8.0;
                    import "../utils/Context.sol";
                    /**
                    * @dev Contract module which provides a basic access control mechanism, where
                    * there is an account (an owner) that can be granted exclusive access to
                    * specific functions.
                    *
                    * By default, the owner account will be the one that deploys the contract. This
                    * can later be changed with {transferOwnership}.
                    *
                    * This module is used through inheritance. It will make available the modifier
                    * `onlyOwner`, which can be applied to your functions to restrict their use to
                    * the owner.
                    */
                    abstract contract Ownable is Context {
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 9 of 11: L1CrossDomainMessenger
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity 0.8.15;
                    // Contracts
                    import { CrossDomainMessenger } from "src/universal/CrossDomainMessenger.sol";
                    // Libraries
                    import { Predeploys } from "src/libraries/Predeploys.sol";
                    // Interfaces
                    import { ISemver } from "interfaces/universal/ISemver.sol";
                    import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol";
                    import { IOptimismPortal2 as IOptimismPortal } from "interfaces/L1/IOptimismPortal2.sol";
                    /// @custom:proxied true
                    /// @title L1CrossDomainMessenger
                    /// @notice The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible
                    /// for sending and receiving data on the L1 side. Users are encouraged to use this
                    /// interface instead of interacting with lower-level contracts directly.
                    contract L1CrossDomainMessenger is CrossDomainMessenger, ISemver {
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 10 of 11: OptimismPortal2
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity 0.8.15;
                    // Contracts
                    import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
                    import { ResourceMetering } from "src/L1/ResourceMetering.sol";
                    // Libraries
                    import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
                    import { EOA } from "src/libraries/EOA.sol";
                    import { SafeCall } from "src/libraries/SafeCall.sol";
                    import { Constants } from "src/libraries/Constants.sol";
                    import { Types } from "src/libraries/Types.sol";
                    import { Hashing } from "src/libraries/Hashing.sol";
                    import { SecureMerkleTrie } from "src/libraries/trie/SecureMerkleTrie.sol";
                    import { AddressAliasHelper } from "src/vendor/AddressAliasHelper.sol";
                    import {
                    BadTarget,
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 11 of 11: Proxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    pragma solidity 0.8.15;
                    /**
                    * @title Proxy
                    * @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or
                    * if the caller is address(0), meaning that the call originated from an off-chain
                    * simulation.
                    */
                    contract Proxy {
                    /**
                    * @notice The storage slot that holds the address of the implementation.
                    * bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)
                    */
                    bytes32 internal constant IMPLEMENTATION_KEY =
                    0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
                    /**
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX