ETH Price: $2,521.29 (+0.87%)

Transaction Decoder

Block:
22540936 at May-22-2025 08:55:11 PM +UTC
Transaction Fee:
0.00091788949378258 ETH $2.31
Gas Used:
295,180 Gas / 3.109592431 Gwei

Emitted Events:

313 RocketTokenRETH.Transfer( from=[Sender] 0x402904e954aebee2e78b7b09595393cf05571333, to=[Receiver] L1ChugSplashProxy, value=17446571702377923537 )
314 RocketTokenRETH.Approval( owner=[Sender] 0x402904e954aebee2e78b7b09595393cf05571333, spender=[Receiver] L1ChugSplashProxy, value=0 )
315 L1ChugSplashProxy.0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396( 0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396, 0x000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393, 0x0000000000000000000000009bcef72be871e61ed4fbbc7630889bee758eb81d, 0x000000000000000000000000402904e954aebee2e78b7b09595393cf05571333, 000000000000000000000000402904e954aebee2e78b7b09595393cf05571333, 000000000000000000000000000000000000000000000000f21eac87049e43d1, 0000000000000000000000000000000000000000000000000000000000000060, 000000000000000000000000000000000000000000000000000000000000000b, 7375706572627269646765000000000000000000000000000000000000000000 )
316 L1ChugSplashProxy.0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf( 0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf, 0x000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393, 0x0000000000000000000000009bcef72be871e61ed4fbbc7630889bee758eb81d, 0x000000000000000000000000402904e954aebee2e78b7b09595393cf05571333, 000000000000000000000000402904e954aebee2e78b7b09595393cf05571333, 000000000000000000000000000000000000000000000000f21eac87049e43d1, 0000000000000000000000000000000000000000000000000000000000000060, 000000000000000000000000000000000000000000000000000000000000000b, 7375706572627269646765000000000000000000000000000000000000000000 )
317 Proxy.0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32( 0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32, 0x00000000000000000000000036bde71c97b33cc4729cf772ae268934f7ab70b2, 0x0000000000000000000000004200000000000000000000000000000000000007, 0x0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000020, 000000000000000000000000000000000000000000000000000000000000024d, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 000000000007e57600d764ad0b00010000000000000000000000000000000000, 0000000000000000000002ae0100000000000000000000000099c9fc46f92e8a, 1c0dec1b1747d010903e884be100000000000000000000000042000000000000, 0000000000000000000000001000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000030d4000000000000000000000000000000000000000, 000000000000000000000000c000000000000000000000000000000000000000, 000000000000000000000001040166a07a0000000000000000000000009bcef7, 2be871e61ed4fbbc7630889bee758eb81d000000000000000000000000ae7873, 6cd615f374d3085123a210448e74fc6393000000000000000000000000402904, e954aebee2e78b7b09595393cf05571333000000000000000000000000402904, e954aebee2e78b7b09595393cf05571333000000000000000000000000000000, 000000000000000000f21eac87049e43d1000000000000000000000000000000, 00000000000000000000000000000000c0000000000000000000000000000000, 000000000000000000000000000000000b737570657262726964676500000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
318 Lib_ResolvedDelegateProxy.0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a( 0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a, 0x0000000000000000000000004200000000000000000000000000000000000010, 00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000000000080, 000100000000000000000000000000000000000000000000000000000002ae01, 0000000000000000000000000000000000000000000000000000000000030d40, 0000000000000000000000000000000000000000000000000000000000000104, 0166a07a0000000000000000000000009bcef72be871e61ed4fbbc7630889bee, 758eb81d000000000000000000000000ae78736cd615f374d3085123a210448e, 74fc6393000000000000000000000000402904e954aebee2e78b7b09595393cf, 05571333000000000000000000000000402904e954aebee2e78b7b09595393cf, 05571333000000000000000000000000000000000000000000000000f21eac87, 049e43d100000000000000000000000000000000000000000000000000000000, 000000c000000000000000000000000000000000000000000000000000000000, 0000000b73757065726272696467650000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
319 Lib_ResolvedDelegateProxy.0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546( 0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546, 0x00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x25ace71c...4F7ab5fA1
(Optimism: Proxy OVM L1 Cross Domain Messenger)
0x402904E9...f05571333
0.322680017349013616 Eth
Nonce: 3301
0.321762127855231036 Eth
Nonce: 3302
0.00091788949378258
(Titan Builder)
12.365724640804635528 Eth12.365739399804635528 Eth0.000014759
0x99C9fc46...03E884bE1
(Optimism: Gateway)
0xae78736C...E74Fc6393
0xbEb5Fc57...e41f106Ed
(Optimism: Portal)

Execution Trace

L1ChugSplashProxy.838b2520( )
  • ProxyAdmin.STATICCALL( )
  • L1StandardBridge.depositERC20To( _l1Token=0xae78736Cd615f374D3085123A210448E74Fc6393, _l2Token=0x9Bcef72be871e61ED4fBbc7630889beE758eb81D, _to=0x402904E954aebEE2E78b7B09595393cf05571333, _amount=17446571702377923537, _minGasLimit=200000, _extraData=0x7375706572627269646765 )
    • RocketTokenRETH.01ffc9a7( )
    • RocketTokenRETH.01ffc9a7( )
    • RocketTokenRETH.transferFrom( sender=0x402904E954aebEE2E78b7B09595393cf05571333, recipient=0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1, amount=17446571702377923537 ) => ( True )
      • RocketStorage.getUint( _key=0668A99067BCEC1CE1D18F3E1FAE96655F4645031B738CB627FD5B475BE682B9 ) => ( r=0 )
      • Lib_ResolvedDelegateProxy.3dbb202b( )
        • Lib_AddressManager.getAddress( _name=OVM_L1CrossDomainMessenger ) => ( 0x5D5a095665886119693F0B41d8DFeE78da033e8B )
        • L1CrossDomainMessenger.sendMessage( _target=0x4200000000000000000000000000000000000010, _message=0x0166A07A0000000000000000000000009BCEF72BE871E61ED4FBBC7630889BEE758EB81D000000000000000000000000AE78736CD615F374D3085123A210448E74FC6393000000000000000000000000402904E954AEBEE2E78B7B09595393CF05571333000000000000000000000000402904E954AEBEE2E78B7B09595393CF05571333000000000000000000000000000000000000000000000000F21EAC87049E43D100000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000B7375706572627269646765000000000000000000000000000000000000000000, _minGasLimit=200000 )
          • Proxy.e9e05c42( )
            • OptimismPortal2.depositTransaction( _to=0x4200000000000000000000000000000000000007, _value=0, _gasLimit=517494, _isCreation=False, _data=0xD764AD0B000100000000000000000000000000000000000000000000000000000002AE0100000000000000000000000099C9FC46F92E8A1C0DEC1B1747D010903E884BE1000000000000000000000000420000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030D4000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000001040166A07A0000000000000000000000009BCEF72BE871E61ED4FBBC7630889BEE758EB81D000000000000000000000000AE78736CD615F374D3085123A210448E74FC6393000000000000000000000000402904E954AEBEE2E78B7B09595393CF05571333000000000000000000000000402904E954AEBEE2E78B7B09595393CF05571333000000000000000000000000000000000000000000000000F21EAC87049E43D100000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000B737570657262726964676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
              • 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: RocketTokenRETH
                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;
                /**
                * @dev Wrappers over Solidity's arithmetic operations with added overflow
                * checks.
                *
                * Arithmetic operations in Solidity wrap on overflow. This can easily result
                * in bugs, because programmers usually assume that an overflow raises an
                * error, which is the standard behavior in high level programming languages.
                * `SafeMath` restores this intuition by reverting the transaction when an
                * operation overflows.
                *
                * Using this library instead of the unchecked operations eliminates an entire
                * class of bugs, so it's recommended to use it always.
                */
                library SafeMath {
                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: RocketStorage
                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;
                /**
                * @dev Wrappers over Solidity's arithmetic operations with added overflow
                * checks.
                *
                * Arithmetic operations in Solidity wrap on overflow. This can easily result
                * in bugs, because programmers usually assume that an overflow raises an
                * error, which is the standard behavior in high level programming languages.
                * `SafeMath` restores this intuition by reverting the transaction when an
                * operation overflows.
                *
                * Using this library instead of the unchecked operations eliminates an entire
                * class of bugs, so it's recommended to use it always.
                */
                library SafeMath {
                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