Contract detail
ERC1967Proxy
Live Robinhood Chain account facts for 0x5fc5360d…16f1d168 with at least 1119228 observed transactions. The history total is updating as indexing continues.
- Address type
- Smart contract
- Transactions
- 1119228+ observed
- First indexed block
- #57
- Latest indexed block
- #109804263
- History coverage
- Recent activity available; total is catching up
- Native balance
- 0 ETH
- Balance observed at
- Block #45788394
- Funding transaction
- 0x3b3099f4…ffe40e91 in block #48034124
- Indexed token transfers
- 144
- Emitted events
- 80081923
- Token tracker
- Global Dollar (USDG)
- Verification
- Verified
- Compiler
- v0.8.29+commit.ab55807c
- Verification match
- full
- Creation transaction
- 0xc51b4ac1…eba54930
- Created at block
- #57
- Language
- solidity
- EVM version
- paris
- License
- none
- Compiler optimization
- Enabled · 200 runs
- Proxy type
- eip1967
- Implementation
- 0x68184c449e1a8f34fa18d289737129fd27b66f8f
Related activity
Transactions
Verified contract
Contract source code
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.2.0) (proxy/ERC1967/ERC1967Proxy.sol)
pragma solidity ^0.8.22;
import {Proxy} from "../Proxy.sol";
import {ERC1967Utils} from "./ERC1967Utils.sol";
/**
* @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[ERC-1967], so that it doesn't conflict with the storage layout of the
* implementation behind the proxy.
*/
contract ERC1967Proxy is Proxy {
/**
* @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.
*
* If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an
* encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.
*
* Requirements:
*
* - If `data` is empty, `msg.value` must be zero.
*/
constructor(address implementation, bytes memory _data) payable {
ERC1967Utils.upgradeToAndCall(implementation, _data);
}
/**
* @dev Returns the current implementation address.
*
* TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using
* the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
* `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`
*/
function _implementation() internal view virtual override returns (address) {
return ERC1967Utils.getImplementation();
}
}