ETH Price: $2,988.82 (+5.96%)

Transaction Decoder

Block:
18815156 at Dec-18-2023 08:09:35 PM +UTC
Transaction Fee:
0.012877579140225344 ETH $38.49
Gas Used:
155,024 Gas / 83.068293556 Gwei

Emitted Events:

62 TransparentUpgradeableProxy.0x64a8bb55d9dc0d3344c39d9c65ff20418734996690c8ecf27785086ddf7ddebd( 0x64a8bb55d9dc0d3344c39d9c65ff20418734996690c8ecf27785086ddf7ddebd, 000000000000000000000000000000000000000000000000063eb89da4ed0000 )
63 TransparentUpgradeableProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x0000000000000000000000000000000000000000000000000000000000000000, 0x0000000000000000000000004065e79cb3dc6e730bc5e2a4e1564471c6f3b773, 000000000000000000000000000000000000000000000000063e675374e0f6a6 )
64 TransparentUpgradeableProxy.0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7( 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7, 0000000000000000000000004065e79cb3dc6e730bc5e2a4e1564471c6f3b773, 0000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000000000000000000000000000063eb89da4ed0000, 000000000000000000000000000000000000000000000000063e675374e0f6a6 )

Account State Difference:

  Address   Before After State Difference Code
(Lido: Execution Layer Rewards Vault)
119.05838717289437304 Eth119.05840267529437304 Eth0.0000155024
0x4065E79c...1C6f3b773
0.5 Eth
Nonce: 0
0.037122420859774656 Eth
Nonce: 1
0.462877579140225344
0xbf5495Ef...7e58d2110
0xf2F305D1...4795D0d60 12.242473422457779678 Eth12.692473422457779678 Eth0.45

Execution Trace

ETH 0.45 TransparentUpgradeableProxy.CALL( )
  • ETH 0.45 RestakeManager.DELEGATECALL( )
    • TransparentUpgradeableProxy.STATICCALL( )
      • OperatorDelegator.DELEGATECALL( )
      • ETH 0.45 TransparentUpgradeableProxy.CALL( )
        • ETH 0.45 DepositQueue.DELEGATECALL( )
        • TransparentUpgradeableProxy.STATICCALL( )
          • EzEthToken.DELEGATECALL( )
          • TransparentUpgradeableProxy.8f686e6a( )
            • RenzoOracle.calculateMintAmount( _currentValueInProtocol=876264948220457779678, _newValueAdded=450000000000000000, _existingEzETHSupply=876090904329376001731 ) => ( 449910620924475046 )
            • TransparentUpgradeableProxy.40c10f19( )
              • EzEthToken.mint( to=0x4065E79cb3Dc6e730bC5E2A4e1564471C6f3b773, amount=449910620924475046 )
                • TransparentUpgradeableProxy.b58f66d4( )
                  • RoleManager.isEzETHMinterBurner( potentialAddress=0x74a09653A083691711cF8215a6ab074BB4e99ef5 ) => ( True )
                    File 1 of 12: TransparentUpgradeableProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)
                    pragma solidity ^0.8.0;
                    /**
                    * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
                    * proxy whose upgrades are fully controlled by the current implementation.
                    */
                    interface IERC1822Proxiable {
                    /**
                    * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
                    * address.
                    *
                    * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
                    * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
                    * function revert if invoked through a proxy.
                    */
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 2 of 12: TransparentUpgradeableProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)
                    pragma solidity ^0.8.0;
                    /**
                    * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
                    * proxy whose upgrades are fully controlled by the current implementation.
                    */
                    interface IERC1822Proxiable {
                    /**
                    * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
                    * address.
                    *
                    * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
                    * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
                    * function revert if invoked through a proxy.
                    */
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 3 of 12: TransparentUpgradeableProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)
                    pragma solidity ^0.8.0;
                    /**
                    * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
                    * proxy whose upgrades are fully controlled by the current implementation.
                    */
                    interface IERC1822Proxiable {
                    /**
                    * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
                    * address.
                    *
                    * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
                    * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
                    * function revert if invoked through a proxy.
                    */
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 4 of 12: RestakeManager
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)
                    pragma solidity ^0.8.2;
                    import "../../utils/AddressUpgradeable.sol";
                    /**
                    * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
                    * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an
                    * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
                    * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
                    *
                    * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
                    * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
                    * case an upgrade adds a module that needs to be initialized.
                    *
                    * For example:
                    *
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 5 of 12: TransparentUpgradeableProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)
                    pragma solidity ^0.8.0;
                    /**
                    * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
                    * proxy whose upgrades are fully controlled by the current implementation.
                    */
                    interface IERC1822Proxiable {
                    /**
                    * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
                    * address.
                    *
                    * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
                    * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
                    * function revert if invoked through a proxy.
                    */
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 6 of 12: OperatorDelegator
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)
                    pragma solidity ^0.8.2;
                    import "../../utils/AddressUpgradeable.sol";
                    /**
                    * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
                    * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an
                    * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
                    * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
                    *
                    * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
                    * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
                    * case an upgrade adds a module that needs to be initialized.
                    *
                    * For example:
                    *
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 7 of 12: DepositQueue
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)
                    pragma solidity ^0.8.2;
                    import "../../utils/AddressUpgradeable.sol";
                    /**
                    * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
                    * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an
                    * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
                    * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
                    *
                    * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
                    * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
                    * case an upgrade adds a module that needs to be initialized.
                    *
                    * For example:
                    *
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 8 of 12: EzEthToken
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)
                    pragma solidity ^0.8.2;
                    import "../../utils/AddressUpgradeable.sol";
                    /**
                    * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
                    * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an
                    * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
                    * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
                    *
                    * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
                    * reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
                    * case an upgrade adds a module that needs to be initialized.
                    *
                    * For example:
                    *
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 9 of 12: TransparentUpgradeableProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)
                    pragma solidity ^0.8.0;
                    /**
                    * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
                    * proxy whose upgrades are fully controlled by the current implementation.
                    */
                    interface IERC1822Proxiable {
                    /**
                    * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
                    * address.
                    *
                    * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
                    * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
                    * function revert if invoked through a proxy.
                    */
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 10 of 12: RenzoOracle
                    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;
                    interface AggregatorV3Interface {
                    function decimals() external view returns (uint8);
                    function description() external view returns (string memory);
                    function version() external view returns (uint256);
                    function getRoundData(
                    uint80 _roundId
                    ) external view returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
                    function latestRoundData()
                    external
                    view
                    returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
                    }
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 11 of 12: TransparentUpgradeableProxy
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.5.0-rc.0) (interfaces/draft-IERC1822.sol)
                    pragma solidity ^0.8.0;
                    /**
                    * @dev ERC1822: Universal Upgradeable Proxy Standard (UUPS) documents a method for upgradeability through a simplified
                    * proxy whose upgrades are fully controlled by the current implementation.
                    */
                    interface IERC1822Proxiable {
                    /**
                    * @dev Returns the storage slot that the proxiable contract assumes is being used to store the implementation
                    * address.
                    *
                    * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks
                    * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this
                    * function revert if invoked through a proxy.
                    */
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                    File 12 of 12: RoleManager
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                    11
                    12
                    13
                    14
                    15
                    16
                    // SPDX-License-Identifier: MIT
                    // OpenZeppelin Contracts (last updated v4.9.0) (access/AccessControl.sol)
                    pragma solidity ^0.8.0;
                    import "./IAccessControlUpgradeable.sol";
                    import "../utils/ContextUpgradeable.sol";
                    import "../utils/StringsUpgradeable.sol";
                    import "../utils/introspection/ERC165Upgradeable.sol";
                    import "../proxy/utils/Initializable.sol";
                    /**
                    * @dev Contract module that allows children to implement role-based access
                    * control mechanisms. This is a lightweight version that doesn't allow enumerating role
                    * members except through off-chain means by accessing the contract event logs. Some
                    * applications may benefit from on-chain enumerability, for those cases see
                    * {AccessControlEnumerable}.
                    *
                    * Roles are referred to by their `bytes32` identifier. These should be exposed
                    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX