ETH Price: $2,740.80 (+7.06%)

Transaction Decoder

Block:
16910061 at Mar-26-2023 07:16:59 AM +UTC
Transaction Fee:
0.002015003167871386 ETH $5.52
Gas Used:
150,829 Gas / 13.359520834 Gwei

Emitted Events:

357 CanonicalTransactionChain.TransactionEnqueued( _l1TxOrigin=0x36BDE71C...4f7AB70B2, _target=0x42000000...000000007, _gasLimit=200000, _data=0xCBD4ECE9000000000000000000000000420000000000000000000000000000000000001000000000000000000000000099C9FC46F92E8A1C0DEC1B1747D010903E884BE10000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000004F90900000000000000000000000000000000000000000000000000000000000000E4662A633A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DEADDEADDEADDEADDEADDEADDEADDEADDEAD00000000000000000000000000005B191F5A2B4A867C4ED71858DACCC51FC59C69C00000000000000000000000005B191F5A2B4A867C4ED71858DACCC51FC59C69C000000000000000000000000000000000000000000000000000B1A2BC2EC5000000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, _queueIndex=325897, _timestamp=1679815019 )
358 Lib_ResolvedDelegateProxy.0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a( 0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a, 0x0000000000000000000000004200000000000000000000000000000000000010, 00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000000000080, 000000000000000000000000000000000000000000000000000000000004f909, 0000000000000000000000000000000000000000000000000000000000030d40, 00000000000000000000000000000000000000000000000000000000000000e4, 662a633a00000000000000000000000000000000000000000000000000000000, 00000000000000000000000000000000deaddeaddeaddeaddeaddeaddeaddead, dead00000000000000000000000000005b191f5a2b4a867c4ed71858daccc51f, c59c69c00000000000000000000000005b191f5a2b4a867c4ed71858daccc51f, c59c69c000000000000000000000000000000000000000000000000000b1a2bc, 2ec5000000000000000000000000000000000000000000000000000000000000, 000000c000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
359 L1ChugSplashProxy.0x35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f23( 0x35d79ab81f2b2017e19afb5c5571778877782d7a8786f5907f93b0f4702f4f23, 0x0000000000000000000000005b191f5a2b4a867c4ed71858daccc51fc59c69c0, 0x0000000000000000000000005b191f5a2b4a867c4ed71858daccc51fc59c69c0, 00000000000000000000000000000000000000000000000000b1a2bc2ec50000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x5B191F5A...FC59c69c0
0.439376891511226476 Eth
Nonce: 1856
0.38736188834335509 Eth
Nonce: 1857
0.052015003167871386
0x5E4e6592...0D24E9dD2
(Optimism: Canonical Transaction Chain)
0x99C9fc46...03E884bE1
(Optimism: Gateway)
289,359.393696740382243493 Eth289,359.443696740382243493 Eth0.05
(Flashbots: Builder)
1.180656253698653517 Eth1.180671336598653517 Eth0.0000150829

Execution Trace

ETH 0.05 L1ChugSplashProxy.b1a1a882( )
  • Proxy.STATICCALL( )
  • ETH 0.05 L1StandardBridge.depositETH( _l2Gas=200000, _data=0x )
    • Lib_ResolvedDelegateProxy.3dbb202b( )
      • Lib_AddressManager.getAddress( _name=OVM_L1CrossDomainMessenger ) => ( 0xd9166833FF12A5F900ccfBf2c8B62a90F1Ca1FD5 )
      • L1CrossDomainMessenger.sendMessage( _target=0x4200000000000000000000000000000000000010, _message=0x662A633A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DEADDEADDEADDEADDEADDEADDEADDEADDEAD00000000000000000000000000005B191F5A2B4A867C4ED71858DACCC51FC59C69C00000000000000000000000005B191F5A2B4A867C4ED71858DACCC51FC59C69C000000000000000000000000000000000000000000000000000B1A2BC2EC5000000000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000000000000000000000000000000000000, _gasLimit=200000 )
        • Lib_AddressManager.getAddress( _name=CanonicalTransactionChain ) => ( 0x5E4e65926BA27467555EB562121fac00D24E9dD2 )
        • CanonicalTransactionChain.STATICCALL( )
        • CanonicalTransactionChain.enqueue( _target=0x4200000000000000000000000000000000000007, _gasLimit=200000, _data=0xCBD4ECE9000000000000000000000000420000000000000000000000000000000000001000000000000000000000000099C9FC46F92E8A1C0DEC1B1747D010903E884BE10000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000004F90900000000000000000000000000000000000000000000000000000000000000E4662A633A0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000DEADDEADDEADDEADDEADDEADDEADDEADDEAD00000000000000000000000000005B191F5A2B4A867C4ED71858DACCC51FC59C69C00000000000000000000000005B191F5A2B4A867C4ED71858DACCC51FC59C69C000000000000000000000000000000000000000000000000000B1A2BC2EC5000000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
          File 1 of 9: 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 9: CanonicalTransactionChain
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          // SPDX-License-Identifier: MIT
          pragma solidity ^0.8.9;
          /* Library Imports */
          import { AddressAliasHelper } from "../../standards/AddressAliasHelper.sol";
          import { Lib_OVMCodec } from "../../libraries/codec/Lib_OVMCodec.sol";
          import { Lib_AddressResolver } from "../../libraries/resolver/Lib_AddressResolver.sol";
          /* Interface Imports */
          import { ICanonicalTransactionChain } from "./ICanonicalTransactionChain.sol";
          import { IChainStorageContainer } from "./IChainStorageContainer.sol";
          /**
          * @title CanonicalTransactionChain
          * @dev The Canonical Transaction Chain (CTC) contract is an append-only log of transactions
          * which must be applied to the rollup state. It defines the ordering of rollup transactions by
          * writing them to the 'CTC:batches' instance of the Chain Storage Container.
          * The CTC also allows any account to 'enqueue' an L2 transaction, which will require that the
          * Sequencer will eventually append it to the rollup state.
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

          File 3 of 9: 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 4 of 9: Proxy
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          pragma solidity ^0.5.3;
          /// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.
          /// @author Stefan George - <stefan@gnosis.io>
          /// @author Richard Meissner - <richard@gnosis.io>
          contract Proxy {
          // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.
          // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`
          address internal masterCopy;
          /// @dev Constructor function sets address of master copy contract.
          /// @param _masterCopy Master copy address.
          constructor(address _masterCopy)
          public
          {
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

          File 5 of 9: GnosisSafe
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          pragma solidity >=0.5.0 <0.7.0;
          /// @title SelfAuthorized - authorizes current contract to perform actions
          /// @author Richard Meissner - <richard@gnosis.pm>
          contract SelfAuthorized {
          modifier authorized() {
          require(msg.sender == address(this), "Method can only be called from this contract");
          _;
          }
          }
          /// @title MasterCopy - Base for master copy contracts (should always be first super contract)
          /// This contract is tightly coupled to our proxy contract (see `proxies/Proxy.sol`)
          /// @author Richard Meissner - <richard@gnosis.io>
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

          File 6 of 9: DefaultCallbackHandler
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          14
          15
          16
          pragma solidity >=0.5.0 <0.7.0;
          interface ERC777TokensRecipient {
          function tokensReceived(
          address operator,
          address from,
          address to,
          uint256 amount,
          bytes calldata data,
          bytes calldata operatorData
          ) external;
          }
          /**
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

          File 7 of 9: 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.9;
          /* Interface Imports */
          import { IL1StandardBridge } from "./IL1StandardBridge.sol";
          import { IL1ERC20Bridge } from "./IL1ERC20Bridge.sol";
          import { IL2ERC20Bridge } from "../../L2/messaging/IL2ERC20Bridge.sol";
          import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
          /* Library Imports */
          import { CrossDomainEnabled } from "../../libraries/bridge/CrossDomainEnabled.sol";
          import { Lib_PredeployAddresses } from "../../libraries/constants/Lib_PredeployAddresses.sol";
          import { Address } from "@openzeppelin/contracts/utils/Address.sol";
          import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
          /**
          * @title L1StandardBridge
          * @dev The L1 ETH and ERC20 Bridge is a contract which stores deposited L1 funds and standard
          * tokens that are in use on L2. It synchronizes a corresponding L2 Bridge, informing it of deposits
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

          File 8 of 9: 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 9: 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.0;
          import "../utils/ContextUpgradeable.sol";
          import "../proxy/utils/Initializable.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.
          */
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX