Transaction Hash:
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 | ||
---|---|---|---|---|---|
0x0Fe4F44b...30a5796d6 | (EigenLayer: swETH Strategies) | ||||
0x39053D51...9df8Ef37A | (EigenLayer: Delegation Manager) | ||||
0x7186256c...4fe88ca06 |
0.267553087461203664 Eth
Nonce: 77
|
0.266988224190610944 Eth
Nonce: 78
| 0.00056486327059272 | ||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 11.377942126231160044 Eth | 11.377954759031160044 Eth | 0.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
File 2 of 7: TransparentUpgradeableProxy
File 3 of 7: DelegationManager
File 4 of 7: TransparentUpgradeableProxy
File 5 of 7: StrategyManager
File 6 of 7: TransparentUpgradeableProxy
File 7 of 7: StrategyBaseTVLLimits
12345678910111213141516// 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
File 2 of 7: TransparentUpgradeableProxy
12345678910111213141516// SPDX-License-Identifier: MITpragma 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: MITpragma solidity ^0.8.0;import "./IBeacon.sol";import "../Proxy.sol";import "../ERC1967/ERC1967Upgrade.sol";
File 3 of 7: DelegationManager
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma 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)
File 4 of 7: TransparentUpgradeableProxy
12345678910111213141516// 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
File 5 of 7: StrategyManager
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma 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:
File 6 of 7: TransparentUpgradeableProxy
12345678910111213141516// 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.
File 7 of 7: StrategyBaseTVLLimits
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma 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 deposituint256 public maxPerDeposit;/// The maximum deposits (in underlyingToken) that this strategy will holduint256 public maxTotalDeposits;/// @notice Emitted when `maxPerDeposit` value is updated from `previousValue` to `newValue`