ETH Price: $3,884.89 (+1.73%)

Transaction Decoder

Block:
19995835 at Jun-01-2024 08:40:11 AM +UTC
Transaction Fee:
0.00056486327059272 ETH $2.19
Gas Used:
126,328 Gas / 4.47140199 Gwei

Emitted Events:

431 TransparentUpgradeableProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x0000000000000000000000000fe4f44bee93503346a3ac9ee5a26b130a5796d6, 0x0000000000000000000000007186256cdfa758271128ef50ff8732b4fe88ca06, 00000000000000000000000000000000000000000000000001417e2e987e32ba )
432 TransparentUpgradeableProxy.0xc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d( 0xc97098c2f658800b4df29001527f7324bcdffcf6e8751a699ab920a1eced5b1d, 45dd6d1947491f77e1efd7628bccbb10a92d05be71d637175d6b01f2beb14f90 )

Account State Difference:

  Address   Before After State Difference Code
0x0Fe4F44b...30a5796d6
(EigenLayer: swETH Strategies)
0x39053D51...9df8Ef37A
(EigenLayer: Delegation Manager)
0x7186256c...4fe88ca06
0.267553087461203664 Eth
Nonce: 77
0.266988224190610944 Eth
Nonce: 78
0.00056486327059272
(beaverbuild)
11.377942126231160044 Eth11.377954759031160044 Eth0.0000126328
0xf951E335...EaC7DEd78

Execution Trace

TransparentUpgradeableProxy.33404396( )
  • DelegationManager.completeQueuedWithdrawals( withdrawals=, tokens=[[0xf951E335afb289353dc249e82926178EaC7DEd78]], middlewareTimesIndexes=[0], receiveAsTokens=[true] )
    • TransparentUpgradeableProxy.c608c7f3( )
      • StrategyManager.withdrawSharesAsTokens( recipient=0x7186256cDfa758271128Ef50fF8732B4fe88ca06, strategy=0x0Fe4F44beE93503346A3Ac9EE5A26b130a5796d6, shares=90492206116123322, token=0xf951E335afb289353dc249e82926178EaC7DEd78 )
        • TransparentUpgradeableProxy.d9caed12( )
          • StrategyBaseTVLLimits.withdraw( depositor=0x7186256cDfa758271128Ef50fF8732B4fe88ca06, token=0xf951E335afb289353dc249e82926178EaC7DEd78, amountShares=90492206116123322 )
            • TransparentUpgradeableProxy.70a08231( )
            • TransparentUpgradeableProxy.a9059cbb( )
              File 1 of 7: 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.7.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
              pragma solidity ^0.8.0;
              import "../ERC1967/ERC1967Proxy.sol";
              /**
              * @dev This contract implements a proxy that is upgradeable by an admin.
              *
              * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
              * clashing], which can potentially be used in an attack, this contract uses the
              * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
              * things that go hand in hand:
              *
              * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
              * that call matches one of the admin functions exposed by the proxy itself.
              * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
              * implementation. If the admin tries to call a function on the implementation it will fail with an error that says
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 2 of 7: TransparentUpgradeableProxy
              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 "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";
              import "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol";
              import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
              import "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
              import "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
              // Kept for backwards compatibility with older versions of Hardhat and Truffle plugins.
              contract AdminUpgradeabilityProxy is TransparentUpgradeableProxy {
              constructor(address logic, address admin, bytes memory data) payable TransparentUpgradeableProxy(logic, admin, data) {}
              }
              // SPDX-License-Identifier: MIT
              pragma solidity ^0.8.0;
              import "./IBeacon.sol";
              import "../Proxy.sol";
              import "../ERC1967/ERC1967Upgrade.sol";
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 3 of 7: DelegationManager
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: BUSL-1.1
              pragma solidity =0.8.12;
              import "@openzeppelin-upgrades/contracts/proxy/utils/Initializable.sol";
              import "@openzeppelin-upgrades/contracts/access/OwnableUpgradeable.sol";
              import "@openzeppelin-upgrades/contracts/security/ReentrancyGuardUpgradeable.sol";
              import "../permissions/Pausable.sol";
              import "../libraries/EIP1271SignatureUtils.sol";
              import "./DelegationManagerStorage.sol";
              /**
              * @title DelegationManager
              * @author Layr Labs, Inc.
              * @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
              * @notice This is the contract for delegation in EigenLayer. The main functionalities of this contract are
              * - enabling anyone to register as an operator in EigenLayer
              * - allowing operators to specify parameters related to stakers who delegate to them
              * - enabling any staker to delegate its stake to the operator of its choice (a given staker can only delegate to a single operator at a time)
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 4 of 7: 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.7.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
              pragma solidity ^0.8.0;
              import "../ERC1967/ERC1967Proxy.sol";
              /**
              * @dev This contract implements a proxy that is upgradeable by an admin.
              *
              * To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
              * clashing], which can potentially be used in an attack, this contract uses the
              * https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
              * things that go hand in hand:
              *
              * 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
              * that call matches one of the admin functions exposed by the proxy itself.
              * 2. If the admin calls the proxy, it can access the admin functions, but its calls will never be forwarded to the
              * implementation. If the admin tries to call a function on the implementation it will fail with an error that says
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 5 of 7: StrategyManager
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: BUSL-1.1
              pragma solidity =0.8.12;
              import "@openzeppelin-upgrades/contracts/proxy/utils/Initializable.sol";
              import "@openzeppelin-upgrades/contracts/access/OwnableUpgradeable.sol";
              import "@openzeppelin-upgrades/contracts/security/ReentrancyGuardUpgradeable.sol";
              import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
              import "../interfaces/IEigenPodManager.sol";
              import "../permissions/Pausable.sol";
              import "./StrategyManagerStorage.sol";
              import "../libraries/EIP1271SignatureUtils.sol";
              /**
              * @title The primary entry- and exit-point for funds into and out of EigenLayer.
              * @author Layr Labs, Inc.
              * @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
              * @notice This contract is for managing deposits in different strategies. The main
              * functionalities are:
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 6 of 7: 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.7.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
              pragma solidity ^0.8.0;
              // OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)
              // OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)
              /**
              * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
              * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
              * be specified by overriding the virtual {_implementation} function.
              *
              * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
              * different contract through the {_delegate} function.
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 7 of 7: StrategyBaseTVLLimits
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: BUSL-1.1
              pragma solidity =0.8.12;
              import "./StrategyBase.sol";
              /**
              * @title A Strategy implementation inheriting from `StrategyBase` that limits the total amount of deposits it will accept.
              * @dev Note that this implementation still converts between any amount of shares or underlying tokens in its view functions;
              * these functions purposefully do not take the TVL limit into account.
              * @author Layr Labs, Inc.
              * @notice Terms of Service: https://docs.eigenlayer.xyz/overview/terms-of-service
              */
              contract StrategyBaseTVLLimits is StrategyBase {
              /// The maximum deposit (in underlyingToken) that this strategy will accept per deposit
              uint256 public maxPerDeposit;
              /// The maximum deposits (in underlyingToken) that this strategy will hold
              uint256 public maxTotalDeposits;
              /// @notice Emitted when `maxPerDeposit` value is updated from `previousValue` to `newValue`
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX