ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (2024)

ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (1)

0xfE08D40Eee53d64936D3128838867c867602665c

Source Code

Overview

ETH Balance

0 ETH

Token Holdings

  • ERC-20 Tokens (1)

  • stETH (stETH)129,170.49180422 stETH$376,086,345.41@2,911.55
  • NFT Tokens (2)

  • originethers.comoriginethers.comERC-1155
  • ERC-1155 TOKEN* [Spam] View All Holdings

More Info

Private Name Tags

Add

ContractCreator

0x62d0528B...4a6d11f28 at txn 0xaf90cb535eefa0de9b2c19699f0ad81f86ec3d44ebbf99eeca4eae0f87402f81

Multichain Info

$376,086,345.41 (Multichain Portfolio)

No addresses found

  • Transactions
  • Internal Transactions
  • Token Transfers (ERC-20)
  • NFT Transfers
  • Contract
  • Events
  • Analytics
  • Multichain Portfolio

Advanced Filter

  • Filter by Tx Type:
  • Tx
  • Internal Tx
  • ERC-20
  • NFTs

Latest 25 from a total of 3,738 transactions

  • View Completed Txns
  • View Pending Txns
  • View Failed Txns
  • View Outgoing Txns
  • View Incoming Txns
  • View Contract Creation
Transaction Hash

Method

Block

From

To

Value

0xf3220ac5ce617e23ea672868aa9182aeca0709f62cccd6fa31c3aa6f57aece39

Stake202603252 mins ago

0xdABf28Bd...427b9d757

IN

0xfE08D40E...67602665c

0 ETH0.00030644

0xcf4b17a4828cb911361bce0aabf38e8a4ad5143d2a4e613c7b919ac3a76bffae

Stake2026011544 mins ago

0xD6E514F5...82111b966

IN

0xfE08D40E...67602665c

0 ETH0.00032805

0x63e58212d5ea7cbabedc04a288bb9d83868499d3805c7277e745b97a9ba797a0

Withdraw2026009049 mins ago

0x39cb9856...FFd0C5e71

IN

0xfE08D40E...67602665c

0 ETH0.0006338

0x2a0f7cb954f3c265a48499256155ef12e202ca2a7bfd97624207201079d8dd53

Stake202598491 hr ago

0xE831C890...afDdf7697

IN

0xfE08D40E...67602665c

0 ETH0.00022053

0x276b928621c756c33d71716676f81bbb0b9df7888316d576b65aeea72b920e86

Stake202597791 hr ago

0x277D2503...C4c4BE64b

IN

0xfE08D40E...67602665c

0 ETH0.00066527

0x5cfbb57e4fc073537905eb99c91ea9c8acdfe6c3f61260dfca1ad484e6c09e4c

Withdraw202597571 hr ago

0x103972C1...Af0F9A254

IN

0xfE08D40E...67602665c

0 ETH0.00061939

0x6b81731b79d23a28ea4cf09367b8708b6512b3f6de3422db600c1823c2868f0d

Stake202596522 hrs ago

0xD6E514F5...82111b966

IN

0xfE08D40E...67602665c

0 ETH0.00035764

0xed0a5c973a90cdcc64562c2de92b52052545590548956f7021fa67b2cc01970c

Stake202593713 hrs ago

ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (16)alchemist4ever.eth

IN

0xfE08D40E...67602665c

0 ETH0.00042062

0xaa87c299261143a4035be177bef6191804431505f54042c23fed4c92ea4c66ff

Stake202593063 hrs ago

0x3FE6D750...2538E60Aa

IN

0xfE08D40E...67602665c

0 ETH0.00044613

0xcdcf62174a88cccf5b553d89ebd11725cede093d70e132bcd945bfac05ba2260

Withdraw202592253 hrs ago

0xD6E514F5...82111b966

IN

0xfE08D40E...67602665c

0 ETH0.0003225

0x0a168436ab745d534826b6697431af2c0eb837770b4fe3d2924c7849dda0b150

Stake202590994 hrs ago

0xE813f91e...C048B02ae

IN

0xfE08D40E...67602665c

0 ETH0.00062543

0x0c69ed68f868c03b979358dde7d6bde1dab60b26dc3e617ee2585dce080c8e64

Stake202588195 hrs ago

0xD85C3F2E...7Fd9bDd2f

IN

0xfE08D40E...67602665c

0 ETH0.00078888

0xac70c667b4e77e5cfda8afd5b37b064c1cd4a031b4a183196e9aa111249669c6

Withdraw202584856 hrs ago

0xa56cA146...5FB56410B

IN

0xfE08D40E...67602665c

0 ETH0.00175883

0x8d78442d03381c0a922f38a0bbe0bcf9d0a0cdb345b5d479d5acc9e1058bddc0

Withdraw202583916 hrs ago

ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (17)butcherwhoru.eth

IN

0xfE08D40E...67602665c

0 ETH0.00083726

0x2ae9dfa5abfefe0be3565fc6b77cf96faea39ddb69ed26a9219b038236aab388

Stake202583816 hrs ago

0xD104C38c...847824c21

IN

0xfE08D40E...67602665c

0 ETH0.00105331

0x05b403d3667ebae7166f320cc5b9f1715e523de4bbd892f33efc41edc210df80

Withdraw202583746 hrs ago

0x9Be31031...E2F5fDaEC

IN

0xfE08D40E...67602665c

0 ETH0.00068069

0x2ec9832a89f25fe40286b42ef732b1e249265140845e8aee494dea5767dc7e17

Stake202583286 hrs ago

0x10cEE637...3E0dD5c11

IN

0xfE08D40E...67602665c

0 ETH0.00118944

0x85e36a16e46a1f9866f96b4d932379c87da143f0681faa3a98fe38e71fd7c1c9

Withdraw202583206 hrs ago

0x746720F2...fad44983f

IN

0xfE08D40E...67602665c

0 ETH0.0007482

0xf3db2879687c3ef1255c3f1c20f507548e92b07266028e36c1dcdab5b90986ac

Stake202583066 hrs ago

0xDb3296a7...4cd06425C

IN

0xfE08D40E...67602665c

0 ETH0.00068465

0x65775bc1c550bf034c79f76c7b884c0d405702e3d92e65629d551339de55c493

Withdraw202582786 hrs ago

ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (18)butcherwhoru.eth

IN

0xfE08D40E...67602665c

0 ETH0.00078842

0x8152a31ddbe1f133699def1e913ff08b6e268acc848ee757db98ba2e9cc7509c

Stake202582187 hrs ago

0xB00A0773...5cCB28F33

IN

0xfE08D40E...67602665c

0 ETH0.00081128

0x78f06d65ad6f0fd6ee95350bbf7b41c0a262039233566b3ef3ea05e2e2581dea

Withdraw202579707 hrs ago

0xB3C4E270...21d66197A

IN

0xfE08D40E...67602665c

0 ETH0.00035534

0x4fa4a78ef28afdc1ae67e65e150ac17d96990273318f880fd8c639bffd66fbfe

Withdraw202578518 hrs ago

ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (19)vevivo.eth

IN

0xfE08D40E...67602665c

0 ETH0.00064357

0xee386fff4dbe13814c031e121393be1bf9a7ca7960202af06cd0b7f29e8e7598

Stake202576578 hrs ago

ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (20)f246632.eth

IN

0xfE08D40E...67602665c

0 ETH0.00062723

0x5cdf2fb64731b4bb9d4c7a5e23f053431b36327ac11fa4ff9cf13df3fd8f888c

Stake2025731010 hrs ago

0xFD52e4a3...9d3E6dD07

IN

0xfE08D40E...67602665c

0 ETH0.00049121

View all transactions

View more zero value Internal Transactions inAdvanced View mode

Advanced mode:

Loading...

Loading

  • Code
  • Read Contract
  • Write Contract
  • Read as Proxy
  • Write as Proxy

Similar Match Source Code

This contract matches the deployed Bytecode of the Source Code for Contract 0x2Efd4430...1B7E5FF84

The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:

ERC1967Proxy

Compiler Version

v0.8.20+commit.a1b79de6

Optimization Enabled:

Yes with 200 runs

Other Settings:

paris EvmVersion, MIT license

Contract Source Code (Solidity)

ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (21)ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (22)IDE

  • library StorageSlot
  • - function getAddressSlot(bytes32 slot)
  • - function getBooleanSlot(bytes32 slot)
  • - function getBytes32Slot(bytes32 slot)
  • - function getUint256Slot(bytes32 slot)
  • - function getStringSlot(bytes32 slot)
  • - function getStringSlot(string storage ...
  • - function getBytesSlot(bytes32 slot)
  • - function getBytesSlot(bytes storage s ...
  • library Address
  • - function isContract(address account)
  • - function sendValue(address payable re ...
  • - function functionCall(address target, ...
  • - function functionCall(
  • - function functionCallWithValue(addres ...
  • - function functionCallWithValue(
  • - function functionStaticCall(address t ...
  • - function functionStaticCall(
  • - function functionDelegateCall(address ...
  • - function functionDelegateCall(
  • - function verifyCallResultFromTarget(
  • - function verifyCallResult(
  • - function _revert(bytes memory returnd ...
  • interface IERC1822Proxiable
  • - function proxiableUUID()
  • interface IERC1967
  • interface IBeacon
  • - function implementation()
  • - function _getImplementation()
  • - function _setImplementation(address n ...
  • - function _upgradeTo(address newImplem ...
  • - function _upgradeToAndCall(address ne ...
  • - function _upgradeToAndCallUUPS(addres ...
  • - function _getAdmin()
  • - function _setAdmin(address newAdmin)
  • - function _changeAdmin(address newAdmi ...
  • - function _getBeacon()
  • - function _setBeacon(address newBeacon ...
  • - function _upgradeBeaconToAndCall(addr ...
  • - function _delegate(address implementa ...
  • - function _implementation()
  • - function _fallback()
  • - function _beforeFallback()
  • contract ERC1967Proxy is Proxy, ER ... *
  • - function _implementation()
  • Is this a proxy?
  • Similar
  • Sol2Uml
  • Submit Audit
  • Compare
/** *Submitted for verification at Etherscan.io on 2024-02-07*/// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/utils/StorageSlot.sol// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.pragma solidity ^0.8.0;/** * @dev Library for reading and writing primitive types to specific storage slots. * * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. * This library helps with reading and writing to such slots without the need for inline assembly. * * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. * * Example usage to set ERC1967 implementation slot: * ```solidity * contract ERC1967 { * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; * * function _getImplementation() internal view returns (address) { * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; * } * * function _setImplementation(address newImplementation) internal { * require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; * } * } * ``` * * _Available since v4.1 for `address`, `bool`, `bytes32`, `uint256`._ * _Available since v4.9 for `string`, `bytes`._ */library StorageSlot { struct AddressSlot { address value; } struct BooleanSlot { bool value; } struct Bytes32Slot { bytes32 value; } struct Uint256Slot { uint256 value; } struct StringSlot { string value; } struct BytesSlot { bytes value; } /** * @dev Returns an `AddressSlot` with member `value` located at `slot`. */ function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `BooleanSlot` with member `value` located at `slot`. */ function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. */ function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `Uint256Slot` with member `value` located at `slot`. */ function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `StringSlot` with member `value` located at `slot`. */ function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `StringSlot` representation of the string storage pointer `store`. */ function getStringSlot(string storage store) internal pure returns (StringSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := store.slot } } /** * @dev Returns an `BytesSlot` with member `value` located at `slot`. */ function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`. */ function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := store.slot } }}// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/utils/Address.sol// OpenZeppelin Contracts (last updated v4.9.0) (utils/Address.sol)pragma solidity ^0.8.1;/** * @dev Collection of functions related to the address type */library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * * Furthermore, `isContract` will also return true if the target contract within * the same transaction is already scheduled for destruction by `SELFDESTRUCT`, * which only has an effect at the end of a transaction. * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.8.0/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. * * _Available since v4.8._ */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } /** * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason or using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert(bytes memory returndata, string memory errorMessage) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } }}// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/interfaces/draft-IERC1822.sol// 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 * function revert if invoked through a proxy. */ function proxiableUUID() external view returns (bytes32);}// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/interfaces/IERC1967.sol// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC1967.sol)pragma solidity ^0.8.0;/** * @dev ERC-1967: Proxy Storage Slots. This interface contains the events defined in the ERC. * * _Available since v4.8.3._ */interface IERC1967 { /** * @dev Emitted when the implementation is upgraded. */ event Upgraded(address indexed implementation); /** * @dev Emitted when the admin account has changed. */ event AdminChanged(address previousAdmin, address newAdmin); /** * @dev Emitted when the beacon is changed. */ event BeaconUpgraded(address indexed beacon);}// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/proxy/beacon/IBeacon.sol// OpenZeppelin Contracts v4.4.1 (proxy/beacon/IBeacon.sol)pragma solidity ^0.8.0;/** * @dev This is the interface that {BeaconProxy} expects of its beacon. */interface IBeacon { /** * @dev Must return an address that can be used as a delegate call target. * * {BeaconProxy} will check that this address is a contract. */ function implementation() external view returns (address);}// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/proxy/ERC1967/ERC1967Upgrade.sol// OpenZeppelin Contracts (last updated v4.9.0) (proxy/ERC1967/ERC1967Upgrade.sol)pragma solidity ^0.8.2;/** * @dev This abstract contract provides getters and event emitting update functions for * https://eips.ethereum.org/EIPS/eip-1967[EIP1967] slots. * * _Available since v4.1._ */abstract contract ERC1967Upgrade is IERC1967 { // This is the keccak-256 hash of "eip1967.proxy.rollback" subtracted by 1 bytes32 private constant _ROLLBACK_SLOT = 0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; /** * @dev Storage slot with the address of the current implementation. * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /** * @dev Returns the current implementation address. */ function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } /** * @dev Stores a new address in the EIP1967 implementation slot. */ function _setImplementation(address newImplementation) private { require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } /** * @dev Perform implementation upgrade * * Emits an {Upgraded} event. */ function _upgradeTo(address newImplementation) internal { _setImplementation(newImplementation); emit Upgraded(newImplementation); } /** * @dev Perform implementation upgrade with additional setup call. * * Emits an {Upgraded} event. */ function _upgradeToAndCall(address newImplementation, bytes memory data, bool forceCall) internal { _upgradeTo(newImplementation); if (data.length > 0 || forceCall) { Address.functionDelegateCall(newImplementation, data); } } /** * @dev Perform implementation upgrade with security checks for UUPS proxies, and additional setup call. * * Emits an {Upgraded} event. */ function _upgradeToAndCallUUPS(address newImplementation, bytes memory data, bool forceCall) internal { // Upgrades from old implementations will perform a rollback test. This test requires the new // implementation to upgrade back to the old, non-ERC1822 compliant, implementation. Removing // this special case will break upgrade paths from old UUPS implementation to new ones. if (StorageSlot.getBooleanSlot(_ROLLBACK_SLOT).value) { _setImplementation(newImplementation); } else { try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) { require(slot == _IMPLEMENTATION_SLOT, "ERC1967Upgrade: unsupported proxiableUUID"); } catch { revert("ERC1967Upgrade: new implementation is not UUPS"); } _upgradeToAndCall(newImplementation, data, forceCall); } } /** * @dev Storage slot with the admin of the contract. * This is the keccak-256 hash of "eip1967.proxy.admin" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant _ADMIN_SLOT = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103; /** * @dev Returns the current admin. */ function _getAdmin() internal view returns (address) { return StorageSlot.getAddressSlot(_ADMIN_SLOT).value; } /** * @dev Stores a new address in the EIP1967 admin slot. */ function _setAdmin(address newAdmin) private { require(newAdmin != address(0), "ERC1967: new admin is the zero address"); StorageSlot.getAddressSlot(_ADMIN_SLOT).value = newAdmin; } /** * @dev Changes the admin of the proxy. * * Emits an {AdminChanged} event. */ function _changeAdmin(address newAdmin) internal { emit AdminChanged(_getAdmin(), newAdmin); _setAdmin(newAdmin); } /** * @dev The storage slot of the UpgradeableBeacon contract which defines the implementation for this proxy. * This is bytes32(uint256(keccak256('eip1967.proxy.beacon')) - 1)) and is validated in the constructor. */ bytes32 internal constant _BEACON_SLOT = 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50; /** * @dev Returns the current beacon. */ function _getBeacon() internal view returns (address) { return StorageSlot.getAddressSlot(_BEACON_SLOT).value; } /** * @dev Stores a new beacon in the EIP1967 beacon slot. */ function _setBeacon(address newBeacon) private { require(Address.isContract(newBeacon), "ERC1967: new beacon is not a contract"); require( Address.isContract(IBeacon(newBeacon).implementation()), "ERC1967: beacon implementation is not a contract" ); StorageSlot.getAddressSlot(_BEACON_SLOT).value = newBeacon; } /** * @dev Perform beacon upgrade with additional setup call. Note: This upgrades the address of the beacon, it does * not upgrade the implementation contained in the beacon (see {UpgradeableBeacon-_setImplementation} for that). * * Emits a {BeaconUpgraded} event. */ function _upgradeBeaconToAndCall(address newBeacon, bytes memory data, bool forceCall) internal { _setBeacon(newBeacon); emit BeaconUpgraded(newBeacon); if (data.length > 0 || forceCall) { Address.functionDelegateCall(IBeacon(newBeacon).implementation(), data); } }}// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/proxy/Proxy.sol// OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol)pragma solidity ^0.8.0;/** * @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. * * The success and return data of the delegated call will be returned back to the caller of the proxy. */abstract contract Proxy { /** * @dev Delegates the current call to `implementation`. * * This function does not return to its internal call site, it will return directly to the external caller. */ function _delegate(address implementation) internal virtual { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize()) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize()) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function * and {_fallback} should delegate. */ function _implementation() internal view virtual returns (address); /** * @dev Delegates the current call to the address returned by `_implementation()`. * * This function does not return to its internal call site, it will return directly to the external caller. */ function _fallback() internal virtual { _beforeFallback(); _delegate(_implementation()); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other * function in the contract matches the call data. */ fallback() external payable virtual { _fallback(); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data * is empty. */ receive() external payable virtual { _fallback(); } /** * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * * If overridden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual {}}// File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.2/contracts/proxy/ERC1967/ERC1967Proxy.sol// OpenZeppelin Contracts (last updated v4.7.0) (proxy/ERC1967/ERC1967Proxy.sol)pragma solidity ^0.8.0;/** * @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an * implementation address that can be changed. This address is stored in storage in the location specified by * https://eips.ethereum.org/EIPS/eip-1967[EIP1967], so that it doesn't conflict with the storage layout of the * implementation behind the proxy. */contract ERC1967Proxy is Proxy, ERC1967Upgrade { /** * @dev Initializes the upgradeable proxy with an initial implementation specified by `_logic`. * * If `_data` is nonempty, it's used as data in a delegate call to `_logic`. This will typically be an encoded * function call, and allows initializing the storage of the proxy like a Solidity constructor. */ constructor(address _logic, bytes memory _data) payable { _upgradeToAndCall(_logic, _data, false); } /** * @dev Returns the current implementation address. */ function _implementation() internal view virtual override returns (address impl) { return ERC1967Upgrade._getImplementation(); }}

Contract Security Audit

  • No Contract Security Audit Submitted- Submit Audit Here

Contract ABI

  • JSON Format
  • RAW/Text Format
[{"inputs":[{"internalType":"address","name":"_logic","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"beacon","type":"address"}],"name":"BeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]

Deployed Bytecode

Decompile Bytecode

0x608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea264697066735822122004eafc12009ddd1bac09a0fbcdbbc0e38fdd09caf7f585983e4d324fd8f99a7364736f6c63430008140033

Deployed Bytecode Sourcemap

26461:740:0:-:0;;;;;;25483:11;:9;:11::i;:::-;26461:740;;25252:11;24889:113;24966:28;24976:17;:15;:17::i;:::-;24966:9;:28::i;:::-;24889:113::o;27056:142::-;27123:12;27155:35;17289:66;17519:54;-1:-1:-1;;;;;17519:54:0;;17439:142;27155:35;27148:42;;27056:142;:::o;23479:918::-;23822:14;23819:1;23816;23803:34;24040:1;24037;24021:14;24018:1;24002:14;23995:5;23982:60;24119:16;24116:1;24113;24098:38;24159:6;24228:68;;;;24347:16;24344:1;24337:27;24228:68;24264:16;24261:1;24254:27

Swarm Source

ipfs://04eafc12009ddd1bac09a0fbcdbbc0e38fdd09caf7f585983e4d324fd8f99a73
BlockTransactionDifficultyGas UsedReward

View All Blocks Produced

BlockUncle NumberDifficultyGas UsedReward

View All Uncles

Loading...

Loading

Loading...

Loading

    Validator IndexBlockAmount

    View All Withdrawals

    Transaction HashBlockValueEth2 PubKeyValid

    View All Deposits

    Multichain Portfolio | 26 Chains

    Display all chains

    Last updated: less than 1 sec ago

    Ethereum (1)$376,086,345 (100%)
    BNB Chain (0)0 (0%)
    Polygon (0)0 (0%)
    Arbitrum One (0)0 (0%)
    Optimism (0)0 (0%)
    Base (0)0 (0%)
    BTTC (0)0 (0%)
    Celo (0)0 (0%)
    Fantom (0)0 (0%)
    Gnosis (0)0 (0%)
    Polygon zkEVM (0)0 (0%)
    Kroma (0)0 (0%)
    Linea (0)0 (0%)
    Moonbeam (0)0 (0%)
    Moonriver (0)0 (0%)
    Arbitrum Nova (0)0 (0%)
    Scroll (0)0 (0%)
    Wemix (0)0 (0%)
    Avax C-Chain (0)0 (0%)
    zkSync Era (0)0 (0%)
    opBNB (0)0 (0%)
    Fraxtal (0)0 (0%)
    Blast (0)0 (0%)
    Cronos (0)0 (0%)
    Mantle (0)0 (0%)
    Taiko (0)0 (0%)

    Show 25 more chains Hide 25 chains

    ChainTokenPortfolio %PriceAmountValue
    ETH

    ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (26)

    stETH (STETH)

    100.00%$2,911.55129,170.4918$376,086,345.41

    Loading...

    Loading

    [Download: CSV Export ]

    A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

    Address QR Code
    My Address - Private Name Tag or Note

    My Name Tag:

    Private Name Tags (up to 35 characters) can be used for easy identification of addresses

    Private Note:

    A private note (up to 500 characters) can be attached to this address.
    Please DO NOT store any passwords or private keys here.

    View all Private Name Tags

    Compiler specific version warnings:

    The compiled contract might be susceptible to VerbatimInvalidDeduplication (low-severity), FullInlinerNonExpressionSplitArgumentEvaluationOrder (low-severity), MissingSideEffectsOnSelectorAccess (low-severity) Solidity Compiler Bugs.

    Connect a Wallet
    Connect a Wallet
    Connect a Wallet
    Before You Copy

    `; } let ensZeroWidthWarningHtml = ""; if ($("#hdnIsEnsContainZeroWidthChars").val() == "true") { ensZeroWidthWarningHtml = `

    ${zeroWidthWarningMessage} Check the actual text at ENS.

    `; } const contentHtml = `

    Additional Info
    Full Name:

    ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (27)

    Note:
    • Name tag is displayed due to forward and reverse resolution. Find out more.
    • A Domain Name is not necessarily held by a person popularly associated with the name.

    ${ensUnicodeWarningHtml} ${ensZeroWidthWarningHtml}

    `; $('#ensName').popover({ html: true, content: contentHtml, trigger: 'manual' }); $('#ensName').click(function (event) { $("#ensName").popover('toggle'); event.stopPropagation(); }); $('#ensName').on('shown.bs.popover', async () => { //disable tooltip when hovering over ens name in the main page $("[rel='tooltipEns']").each(function () { $(this).tooltip('hide'); $(this).tooltip('disable'); }); //call ajax here to get result if (!otherENSNamesHtml) { const resolvedAddressesModel = await getEnsResolvedAddress($("#hdnAddress").val(), $("#hdnEnsText").val()); otherENSNamesHtml = generateEnsPopoverGrid(resolvedAddressesModel.d); if (!otherENSNamesHtml) { otherENSNamesHtml = "There are no other names resolving to this address." } } $(".popOverEnsOwnedAddressTable").html(otherENSNamesHtml); $("#divENSDisplayName").html(ensDisplayName); $("[data-bs-toggle='tooltip']").tooltip(); }); $('#ensName').on('hidden.bs.popover', () => { $("[rel='tooltipEns']").each(function () { $(this).tooltip('enable'); }); }); $('#ensName').on('hide.bs.popover', () => { $("[data-bs-toggle='tooltip']").tooltip('hide'); }); $(document).click(function () { $("#ensName").popover('hide'); }) } async function getEnsResolvedAddress(address, currentEnsText) { try { const requestModel = { "lookupAddress": address, "primaryDomainName": currentEnsText, "provider": "ENS" }; const response = await $.ajax({ url: "/name-lookup-search.aspx/GetOtherDomainNameForAddress", type: "POST", contentType: "application/json", dataType: "json", data: JSON.stringify({ requestModel: requestModel }) }) return response; } catch { return ""; } } function generateEnsPopoverGrid(model) { if (!model || model.DomainNames.length == 0) { return ""; } let listOtherENSNames = ""; model.DomainNames.forEach(x => listOtherENSNames += x.Name); let moreOtherENSNames = ""; if (model.Total > 5) { moreOtherENSNames = `More ` } const result = `

    Other names resolving to this address:

    ${listOtherENSNames} ${moreOtherENSNames}

    `; return result; } // ===== end ENS name tag var adjustPosition = 0; $(document).ready(function () { onDocumentReady(); $("[rel='tooltip']").tooltip(); $("[data-bs-toggle-second='tooltip']").tooltip({ trigger: 'hover' }); $("[rel='tooltipEns']").each(function () { $(this).tooltip({ title: $(this).attr("tooltip-title") }); }); //if (hash != '') { // activaTab(hash); //}; onAddressDocReady(); //// Note: this is causing "Copied" tooltip not showing when copy button is clicked in V3, and seems like not applicable to v3, comment out first in case there is issue //$('[data-bs-toggle="tooltip"]').click(function () { // $('[data-bs-toggle="tooltip"]').tooltip("hide"); //}); document.getElementById("copyaddressbutton").classList.remove("disabled"); if ($("#txtSearchContract").length) { initialiseKeyupOnDocReady(); } if (!!$('#ensName')[0]) { initEnsNamePopOver(); } handleToggle(); if (window.matchMedia("(max-width: 767px)").matches) { // Mobile adjustPosition = 90; } else { // Others adjustPosition = 50; } }); function displayAudit() { $('html, body').animate({ scrollTop: $("#auditReportId").offset().top - adjustPosition }); } function handleToggle() { var className = document.getElementsByClassName('editor'); var classNameCount = className.length; for (var j = 0; j < classNameCount; j++) { var editorSearch = ace.edit(className[j].id); if (getCookie('displaymode') === 'light' || themeMode === 'light') { editorSearch.setTheme('ace/theme/dawn'); } else if (getCookie('displaymode') === 'dim' || themeMode === 'dim') { editorSearch.setTheme('ace/theme/tomorrow_night_blue'); } else if (getCookie('displaymode') === 'dark' || themeMode === 'dark') { editorSearch.setTheme('ace/theme/tomorrow_night'); } if (editorSearch.session.getLength() < parseInt(MaxLines)) { var x = className[j].id.replace("editor", ""); if (x.trim() !== "") { $("#panel-sourcecode_" + x).hide(); } } } if ($('#panel-sourcecode').length) { var editorSetting = ace.edit("editor"); if (editorSetting.session.getLength() < parseInt(MaxLines)) { $("#panel-sourcecode").hide(); } } } // Bootstrap Dropdown in Table Responsive $('.table-responsive').on('shown.bs.dropdown', function (e) { var t = $(this), m = $(e.target).find('.dropdown-menu'), tb = t.offset().top + t.height(), mb = m.offset().top + m.outerHeight(true), d = 20; // Space for shadow + scrollbar. if (t[0].scrollWidth > t.innerWidth()) { if (mb + d > tb) { t.css('padding-bottom', ((mb + d) - tb)); } } else { t.css('overflow', 'visible'); } }).on('hidden.bs.dropdown', function () { $(this).css({ 'padding-bottom': '', 'overflow': '' }); }); var btn_ERC20_sort = { count: 0, reminder_count: 2, list: [], default_list: [], ERC20_sort_start: function (count) { if (document.getElementsByClassName('list-custom-divider-ERC20')[0]) { var self = this if (count != undefined) { self.count = count } var before_el = document.getElementsByClassName('list-custom-divider-ERC20')[0] var parent_el = before_el.parentNode var element_selector = parent_el.querySelectorAll(".list-custom-ERC20"); if (self.list.length == 0) { element_selector.forEach(function (e) { self.list.push(e); self.default_list.push(e); }); } $(".list-custom-ERC20").remove() var type = self.count % self.reminder_count self.sortList(type, parent_el, before_el); self.count++ } }, sortList: function (type, parent_el, before_el) { var self = this var sorted_list = [] var icon_el = $(before_el).find('button').find('i') switch (type) { case 1: icon_el.attr("class", "fad fa-sort-up") sorted_list = self.sortUsdAsc() break; default: icon_el.attr("class", "fad fa-sort-down") sorted_list = self.sortUsdDesc() } for (var i = sorted_list.length - 1; i >= 0; i--) { before_el.insertAdjacentElement('afterend', sorted_list[i]) } }, sortUsdAsc: function () { var self = this var sort_list = self.list sort_list.sort(function (a, b) { var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1); var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1); if (target_a_value == -1 || target_b_value == -1) { return 1; } if (target_a_value < target_b_value) { return -1; } if (target_a_value > target_b_value) { return 1; } return 0 }); return sort_list }, sortUsdDesc: function () { var self = this var sort_list = self.list sort_list.sort(function (a, b) { var target_a_value = self.formatCurrencyToNumber(a.querySelector('.list-usd-value').textContent.trim() || -1); var target_b_value = self.formatCurrencyToNumber(b.querySelector('.list-usd-value').textContent.trim() || -1); if (target_a_value < target_b_value) { return 1; } if (target_a_value > target_b_value) { return -1; } return 0 }); return sort_list }, formatCurrencyToNumber: function (strCurrency) { if (typeof strCurrency == "number") return strCurrency else return Number(strCurrency.replace(/[^0-9.-]+/g, "")); }, } $("#btn_ERC20_sort").on("click", function (event) { event.preventDefault(); setTimeout(function () { btn_ERC20_sort.ERC20_sort_start() }, 10) }) function hrefTokenHolding() { var location = "/tokenholdings?a=0xfE08D40Eee53d64936D3128838867c867602665c" var queryString = $("input.form-control.form-control-xs.search.mb-3")[0].value if (queryString) { location += "&q=" + queryString } window.location.href = location }

    ERC1967Proxy | Address 0xfE08D40Eee53d64936D3128838867c867602665c | Etherscan (2024)
    Top Articles
    Latest Posts
    Article information

    Author: Horacio Brakus JD

    Last Updated:

    Views: 5512

    Rating: 4 / 5 (71 voted)

    Reviews: 86% of readers found this page helpful

    Author information

    Name: Horacio Brakus JD

    Birthday: 1999-08-21

    Address: Apt. 524 43384 Minnie Prairie, South Edda, MA 62804

    Phone: +5931039998219

    Job: Sales Strategist

    Hobby: Sculling, Kitesurfing, Orienteering, Painting, Computer programming, Creative writing, Scuba diving

    Introduction: My name is Horacio Brakus JD, I am a lively, splendid, jolly, vivacious, vast, cheerful, agreeable person who loves writing and wants to share my knowledge and understanding with you.