ETH Price: $3,546.62 (+2.24%)

Transaction Decoder

Block:
20755130 at Sep-15-2024 09:30:47 AM +UTC
Transaction Fee:
0.00066069797444343 ETH $2.34
Gas Used:
519,442 Gas / 1.271937915 Gwei

Account State Difference:

  Address   Before After State Difference Code
0x1A9b3153...d4642AAd8
1,321.307032672166328204 Eth
Nonce: 4429
1,321.306371974191884774 Eth
Nonce: 4430
0.00066069797444343
(Titan Builder)
13.401633920619007411 Eth13.401634440061007411 Eth0.000000519442

Execution Trace

L1ChugSplashProxy.838b2520( )
  • ProxyAdmin.STATICCALL( )
  • L1StandardBridge.depositERC20To( _l1Token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _l2Token=0xb62F35B9546A908d11c5803ecBBA735AbC3E3eaE, _to=0x1A9b315367Fc746b479DBB6a143A10cd4642AAd8, _amount=5000000000, _minGasLimit=200000, _extraData=0x7375706572627269646765 )
    • FiatTokenProxy.01ffc9a7( )
      • FiatTokenV2_2.01ffc9a7( )
      • FiatTokenProxy.01ffc9a7( )
        • FiatTokenV2_2.01ffc9a7( )
        • FiatTokenProxy.23b872dd( )
          • FiatTokenV2_2.transferFrom( from=0x1A9b315367Fc746b479DBB6a143A10cd4642AAd8, to=0x2b3F201543adF73160bA42E1a5b7750024F30420, value=5000000000 ) => ( True )
          • ResolvedDelegateProxy.3dbb202b( )
            • AddressManager.getAddress( _name=OVM_L1CrossDomainMessenger ) => ( 0x958487e21ba9E073836d598E31f749726f23413f )
            • L1CrossDomainMessenger.sendMessage( _target=0x4200000000000000000000000000000000000010, _message=0x0166A07A000000000000000000000000B62F35B9546A908D11C5803ECBBA735ABC3E3EAE000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB480000000000000000000000001A9B315367FC746B479DBB6A143A10CD4642AAD80000000000000000000000001A9B315367FC746B479DBB6A143A10CD4642AAD8000000000000000000000000000000000000000000000000000000012A05F20000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000B7375706572627269646765000000000000000000000000000000000000000000, _minGasLimit=200000 )
              • Proxy.e9e05c42( )
                • OptimismPortal.depositTransaction( _to=0x4200000000000000000000000000000000000007, _value=0, _gasLimit=492334, _isCreation=False, _data=0xD764AD0B0001000000000000000000000000000000000000000000000000000000002E040000000000000000000000002B3F201543ADF73160BA42E1A5B7750024F30420000000000000000000000000420000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030D4000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000001040166A07A000000000000000000000000B62F35B9546A908D11C5803ECBBA735ABC3E3EAE000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB480000000000000000000000001A9B315367FC746B479DBB6A143A10CD4642AAD80000000000000000000000001A9B315367FC746B479DBB6A143A10CD4642AAD8000000000000000000000000000000000000000000000000000000012A05F20000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000B737570657262726964676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
                  • 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.8.15;
                    /**
                    * @title IL1ChugSplashDeployer
                    */
                    interface IL1ChugSplashDeployer {
                    function isUpgrading() external view returns (bool);
                    }
                    /**
                    * @custom:legacy
                    * @title L1ChugSplashProxy
                    * @notice 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.
                    *
                    * 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
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 2 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 3 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;
                    import { Predeploys } from "../libraries/Predeploys.sol";
                    import { StandardBridge } from "../universal/StandardBridge.sol";
                    import { Semver } from "../universal/Semver.sol";
                    /**
                    * @custom:proxied
                    * @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
                    * OptimismPortal contract.
                    * NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples
                    * of some token types that may not be properly supported by this contract include, but are
                    * not limited to: tokens with transfer fees, rebasing tokens, and tokens with blocklists.
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 4 of 11: FiatTokenProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    pragma solidity ^0.4.24;
                    // File: zos-lib/contracts/upgradeability/Proxy.sol
                    /**
                    * @title Proxy
                    * @dev Implements delegation of calls to other contracts, with proper
                    * forwarding of return values and bubbling of failures.
                    * It defines a fallback function that delegates all calls to the address
                    * returned by the abstract _implementation() internal function.
                    */
                    contract Proxy {
                    /**
                    * @dev Fallback function.
                    * Implemented entirely in `_fallback`.
                    */
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 5 of 11: FiatTokenV2_2
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    /**
                    * SPDX-License-Identifier: Apache-2.0
                    *
                    * Copyright (c) 2023, Circle Internet Financial, LLC.
                    *
                    * Licensed under the Apache License, Version 2.0 (the "License");
                    * you may not use this file except in compliance with the License.
                    * You may obtain a copy of the License at
                    *
                    * http://www.apache.org/licenses/LICENSE-2.0
                    *
                    * Unless required by applicable law or agreed to in writing, software
                    * distributed under the License is distributed on an "AS IS" BASIS,
                    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                    * See the License for the specific language governing permissions and
                    * limitations under the License.
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 6 of 11: ResolvedDelegateProxy
                    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 { AddressManager } from "./AddressManager.sol";
                    /**
                    * @custom:legacy
                    * @title ResolvedDelegateProxy
                    * @notice ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to
                    * resolve the implementation address. We're maintaining this contract for backwards
                    * compatibility so we can manage all legacy proxies where necessary.
                    */
                    contract ResolvedDelegateProxy {
                    /**
                    * @notice Mapping used to store the implementation name that corresponds to this contract. A
                    * mapping was originally used as a way to bypass the same issue normally solved by
                    * storing the implementation address in a specific storage slot that does not conflict
                    * with any other storage slot. Generally NOT a safe solution but works as long as the
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 7 of 11: AddressManager
                    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 8 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;
                    import { Predeploys } from "../libraries/Predeploys.sol";
                    import { OptimismPortal } from "./OptimismPortal.sol";
                    import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol";
                    import { Semver } from "../universal/Semver.sol";
                    /**
                    * @custom:proxied
                    * @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, Semver {
                    /**
                    * @notice Address of the OptimismPortal.
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 9 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 10 of 11: OptimismPortal
                    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 { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
                    import { SafeCall } from "../libraries/SafeCall.sol";
                    import { L2OutputOracle } from "./L2OutputOracle.sol";
                    import { SystemConfig } from "./SystemConfig.sol";
                    import { Constants } from "../libraries/Constants.sol";
                    import { Types } from "../libraries/Types.sol";
                    import { Hashing } from "../libraries/Hashing.sol";
                    import { SecureMerkleTrie } from "../libraries/trie/SecureMerkleTrie.sol";
                    import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
                    import { ResourceMetering } from "./ResourceMetering.sol";
                    import { Semver } from "../universal/Semver.sol";
                    /// @custom:proxied
                    /// @title OptimismPortal
                    /// @notice The OptimismPortal is a low-level contract responsible for passing messages between L1
                    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