Transaction Hash:
Block:
17480672 at Jun-14-2023 08:52:35 PM +UTC
Transaction Fee:
0.021541489254360648 ETH
$83.52
Gas Used:
351,366 Gas / 61.307836428 Gwei
Emitted Events:
331 |
BeaconProxy.BeaconUpgraded( beacon=UpgradeableBeacon )
|
332 |
BeaconProxy.0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498( 0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498, 0000000000000000000000000000000000000000000000000000000000000001 )
|
333 |
TransparentUpgradeableProxy.0x21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a( 0x21c99d0db02213c32fff5b05cf0a718ab5f858802b91498f80d82270289d856a, 0x0000000000000000000000007b6fcdbf1d9d0211dcc52b954f9453d4ff35583d, 0x000000000000000000000000dfb56a3f1b910522c3366c04db1d629f631ffaa0 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x7B6fcDbF...4ff35583D |
0 Eth
Nonce: 0
|
0 Eth
Nonce: 1
| |||
0x91E677b0...4a0d3A338 | (EigenLayer: Eigen Pod Manager) | ||||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 6.201639394714300074 Eth | 6.201672423118300074 Eth | 0.000033028404 | |
0xdFb56a3F...f631FFAA0 |
0.199044916299004 Eth
Nonce: 469
|
0.177503427044643352 Eth
Nonce: 470
| 0.021541489254360648 |
Execution Trace
TransparentUpgradeableProxy.CALL( )
EigenPodManager.DELEGATECALL( )
BeaconProxy.60806040( )
-
UpgradeableBeacon.STATICCALL( )
-
BeaconProxy.c4d66de8( )
-
UpgradeableBeacon.STATICCALL( )
-
EigenPod.initialize( _podOwner=0xdFb56a3F1B910522C3366c04Db1D629f631FFAA0 )
-
File 1 of 5: TransparentUpgradeableProxy
File 2 of 5: BeaconProxy
File 3 of 5: EigenPodManager
File 4 of 5: UpgradeableBeacon
File 5 of 5: EigenPod
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 5: BeaconProxy
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.5.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
File 3 of 5: EigenPodManager
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma solidity =0.8.12;import "@openzeppelin/contracts/utils/Create2.sol";import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol";import "@openzeppelin/contracts/proxy/beacon/IBeacon.sol";import "@openzeppelin-upgrades/contracts/proxy/utils/Initializable.sol";import "@openzeppelin-upgrades/contracts/access/OwnableUpgradeable.sol";import "../interfaces/IStrategyManager.sol";import "../interfaces/IDelegationManager.sol";import "../interfaces/IEigenPodManager.sol";import "../interfaces/IETHPOSDeposit.sol";import "../interfaces/IEigenPod.sol";import "../interfaces/IBeaconChainOracle.sol";import "../permissions/Pausable.sol";import "./EigenPodPausingConstants.sol";/**
File 4 of 5: UpgradeableBeacon
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts v4.4.1 (proxy/beacon/UpgradeableBeacon.sol)pragma solidity ^0.8.0;import "./IBeacon.sol";import "../../access/Ownable.sol";import "../../utils/Address.sol";/*** @dev This contract is used in conjunction with one or more instances of {BeaconProxy} to determine their* implementation contract, which is where they will delegate all function calls.** An owner is able to change the implementation the beacon points to, thus upgrading the proxies that use this beacon.*/contract UpgradeableBeacon is IBeacon, Ownable {address private _implementation;/*** @dev Emitted when the implementation returned by the beacon is changed.
File 5 of 5: EigenPod
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-upgrades/contracts/utils/AddressUpgradeable.sol";import "../libraries/BeaconChainProofs.sol";import "../libraries/BytesLib.sol";import "../libraries/Endian.sol";import "../interfaces/IETHPOSDeposit.sol";import "../interfaces/IEigenPodManager.sol";import "../interfaces/IEigenPod.sol";import "../interfaces/IDelayedWithdrawalRouter.sol";import "../interfaces/IPausable.sol";import "./EigenPodPausingConstants.sol";/**