Transaction Hash:
Block:
20222346 at Jul-03-2024 12:16:47 AM +UTC
Transaction Fee:
0.00006854070426929 ETH
$0.24
Gas Used:
28,159 Gas / 2.43406031 Gwei
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x1f9090aa...8e676c326
Miner
|
3.632388811747999641 Eth
Nonce: 657902
|
3.554353725022141127 Eth
Nonce: 657903
| 0.078035086725858514 | ||
0xD6E4aA93...da06F9cEf | (Mantle: Execution Layer Receiver) | 3.856888212490750913 Eth | 3.934854758512340137 Eth | 0.077966546021589224 |
Execution Trace
ETH 0.077966546021589224
TransparentUpgradeableProxy.CALL( )
- ETH 0.077966546021589224
ReturnsReceiver.DELEGATECALL( )
File 1 of 2: TransparentUpgradeableProxy
File 2 of 2: ReturnsReceiver
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.3) (proxy/transparent/TransparentUpgradeableProxy.sol)pragma solidity ^0.8.0;import "../ERC1967/ERC1967Proxy.sol";/*** @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}* does not implement this interface directly, and some of its functions are implemented by an internal dispatch* mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not* include them in the ABI so this interface must be used to interact with it.*/interface ITransparentUpgradeableProxy is IERC1967 {function admin() external view returns (address);function implementation() external view returns (address);function changeAdmin(address) external;function upgradeTo(address) external;function upgradeToAndCall(address, bytes memory) external payable;
File 2 of 2: ReturnsReceiver
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.20;import {Initializable} from "openzeppelin-upgradeable/proxy/utils/Initializable.sol";import {AccessControlEnumerableUpgradeable} from"openzeppelin-upgradeable/access/AccessControlEnumerableUpgradeable.sol";import {Address} from "openzeppelin/utils/Address.sol";import {IERC20} from "openzeppelin/interfaces/IERC20.sol";import {SafeERC20} from "openzeppelin/token/ERC20/utils/SafeERC20.sol";/// @title ReturnsReceiver/// @notice Receives protocol level returns and manages who can withdraw the returns. Deployed as the/// consensus layer withdrawal wallet and execution layer rewards wallet in the protocol.contract ReturnsReceiver is Initializable, AccessControlEnumerableUpgradeable {/// @notice The manager role is responsible for managing the WITHDRAWER_ROLE.bytes32 public constant RECEIVER_MANAGER_ROLE = keccak256("RECEIVER_MANAGER_ROLE");/// @notice The withdrawer role can withdraw ETH and ERC20 tokens from this contract.bytes32 public constant WITHDRAWER_ROLE = keccak256("WITHDRAWER_ROLE");