ETH Price: $2,497.18 (+0.02%)

Transaction Decoder

Block:
16909184 at Mar-26-2023 04:20:11 AM +UTC
Transaction Fee:
0.003101919804731808 ETH $7.75
Gas Used:
189,984 Gas / 16.327268637 Gwei

Emitted Events:

164 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000016f037a3ddf53da1b047a926e1833219f0a8e1fc, 0x00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000bcb4061ab )
165 CanonicalTransactionChain.TransactionEnqueued( _l1TxOrigin=0x36BDE71C...4f7AB70B2, _target=0x42000000...000000007, _gasLimit=200000, _data=0xCBD4ECE9000000000000000000000000420000000000000000000000000000000000001000000000000000000000000099C9FC46F92E8A1C0DEC1B1747D010903E884BE10000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000004F8C000000000000000000000000000000000000000000000000000000000000000E4662A633A000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB480000000000000000000000007F5C764CBC14F9669B88837CA1490CCA17C3160700000000000000000000000016F037A3DDF53DA1B047A926E1833219F0A8E1FC00000000000000000000000016F037A3DDF53DA1B047A926E1833219F0A8E1FC0000000000000000000000000000000000000000000000000000000BCB4061AB00000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, _queueIndex=325824, _timestamp=1679804411 )
166 Lib_ResolvedDelegateProxy.0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a( 0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a, 0x0000000000000000000000004200000000000000000000000000000000000010, 00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000000000080, 000000000000000000000000000000000000000000000000000000000004f8c0, 0000000000000000000000000000000000000000000000000000000000030d40, 00000000000000000000000000000000000000000000000000000000000000e4, 662a633a000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce, 3606eb480000000000000000000000007f5c764cbc14f9669b88837ca1490cca, 17c3160700000000000000000000000016f037a3ddf53da1b047a926e1833219, f0a8e1fc00000000000000000000000016f037a3ddf53da1b047a926e1833219, f0a8e1fc0000000000000000000000000000000000000000000000000000000b, cb4061ab00000000000000000000000000000000000000000000000000000000, 000000c000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
167 L1ChugSplashProxy.0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396( 0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396, 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48, 0x0000000000000000000000007f5c764cbc14f9669b88837ca1490cca17c31607, 0x00000000000000000000000016f037a3ddf53da1b047a926e1833219f0a8e1fc, 00000000000000000000000016f037a3ddf53da1b047a926e1833219f0a8e1fc, 0000000000000000000000000000000000000000000000000000000bcb4061ab, 0000000000000000000000000000000000000000000000000000000000000060, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x16f037a3...9F0a8E1FC
4.567474261156544171 Eth
Nonce: 3894
4.564372341351812363 Eth
Nonce: 3895
0.003101919804731808
0x5E4e6592...0D24E9dD2
(Optimism: Canonical Transaction Chain)
(builder0x69)
2.330125891748527275 Eth2.330144890148527275 Eth0.0000189984
0x99C9fc46...03E884bE1
(Optimism: Gateway)
0xA0b86991...E3606eB48

Execution Trace

L1ChugSplashProxy.58a997f6( )
  • Proxy.STATICCALL( )
  • L1StandardBridge.depositERC20( _l1Token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _l2Token=0x7F5c764cBc14f9669B88837ca1490cCa17c31607, _amount=50654634411, _l2Gas=200000, _data=0x )
    • FiatTokenProxy.23b872dd( )
      • FiatTokenV2_1.transferFrom( from=0x16f037a3dDf53dA1b047A926E1833219F0a8E1FC, to=0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1, value=50654634411 ) => ( True )
      • Lib_ResolvedDelegateProxy.3dbb202b( )
        • Lib_AddressManager.getAddress( _name=OVM_L1CrossDomainMessenger ) => ( 0xd9166833FF12A5F900ccfBf2c8B62a90F1Ca1FD5 )
        • L1CrossDomainMessenger.sendMessage( _target=0x4200000000000000000000000000000000000010, _message=0x662A633A000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB480000000000000000000000007F5C764CBC14F9669B88837CA1490CCA17C3160700000000000000000000000016F037A3DDF53DA1B047A926E1833219F0A8E1FC00000000000000000000000016F037A3DDF53DA1B047A926E1833219F0A8E1FC0000000000000000000000000000000000000000000000000000000BCB4061AB00000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000000000000000000000000000000000000, _gasLimit=200000 )
          • Lib_AddressManager.getAddress( _name=CanonicalTransactionChain ) => ( 0x5E4e65926BA27467555EB562121fac00D24E9dD2 )
          • CanonicalTransactionChain.STATICCALL( )
          • CanonicalTransactionChain.enqueue( _target=0x4200000000000000000000000000000000000007, _gasLimit=200000, _data=0xCBD4ECE9000000000000000000000000420000000000000000000000000000000000001000000000000000000000000099C9FC46F92E8A1C0DEC1B1747D010903E884BE10000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000004F8C000000000000000000000000000000000000000000000000000000000000000E4662A633A000000000000000000000000A0B86991C6218B36C1D19D4A2E9EB0CE3606EB480000000000000000000000007F5C764CBC14F9669B88837CA1490CCA17C3160700000000000000000000000016F037A3DDF53DA1B047A926E1833219F0A8E1FC00000000000000000000000016F037A3DDF53DA1B047A926E1833219F0A8E1FC0000000000000000000000000000000000000000000000000000000BCB4061AB00000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
            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: 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 3 of 11: 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 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: 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 6 of 11: 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 7 of 11: 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 8 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.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 9 of 11: FiatTokenV2_1
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // File: @openzeppelin/contracts/math/SafeMath.sol
            // SPDX-License-Identifier: MIT
            pragma solidity ^0.6.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.
            *
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 10 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 11 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.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