ETH Price: $2,584.97 (+1.43%)

Transaction Decoder

Block:
16909364 at Mar-26-2023 04:56:11 AM +UTC
Transaction Fee:
0.00090000015110092 ETH $2.33
Gas Used:
64,355 Gas / 13.984929704 Gwei

Account State Difference:

  Address   Before After State Difference Code
(Lido: Execution Layer Rewards Vault)
115.420555528607068815 Eth115.420561964107068815 Eth0.0000064355
0xFBfc4E6E...4E5430D03
2.876459359825918306 Eth
Nonce: 177
2.875559359674817386 Eth
Nonce: 178
0.00090000015110092

Execution Trace

L1ChugSplashProxy.58a997f6( )
  • Proxy.STATICCALL( )
  • L1StandardBridge.depositERC20( _l1Token=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, _l2Token=0x7F5c764cBc14f9669B88837ca1490cCa17c31607, _amount=397534530, _l2Gas=200000, _data=0x )
    • FiatTokenProxy.23b872dd( )
      • FiatTokenV2_1.transferFrom( from=0xFBfc4E6ED6581382232C0b6be12Ef004E5430D03, to=0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1, value=397534530 )
        File 1 of 7: 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 7: 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 3 of 7: 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 4 of 7: 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 5 of 7: 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 6 of 7: 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 7 of 7: 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