Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,979 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 21307539 | 44 days ago | IN | 0 ETH | 0.00088611 | ||||
Withdraw | 21298835 | 46 days ago | IN | 0 ETH | 0.00065956 | ||||
Withdraw | 21290448 | 47 days ago | IN | 0 ETH | 0.00059074 | ||||
Change Delegatio... | 21146871 | 67 days ago | IN | 0 ETH | 0.00103728 | ||||
Withdraw | 21145866 | 67 days ago | IN | 0 ETH | 0.00106409 | ||||
Withdraw | 20903767 | 101 days ago | IN | 0 ETH | 0.00039984 | ||||
Withdraw | 20903662 | 101 days ago | IN | 0 ETH | 0.00048752 | ||||
Withdraw | 20836860 | 110 days ago | IN | 0 ETH | 0.00602573 | ||||
Withdraw | 20629780 | 139 days ago | IN | 0 ETH | 0.00011619 | ||||
Withdraw | 20626939 | 139 days ago | IN | 0 ETH | 0.0001179 | ||||
Change Delegatio... | 20467501 | 162 days ago | IN | 0 ETH | 0.00062329 | ||||
Deposit | 20467497 | 162 days ago | IN | 0 ETH | 0.00053671 | ||||
Deposit | 20421628 | 168 days ago | IN | 0 ETH | 0.00065162 | ||||
Change Delegatio... | 20421591 | 168 days ago | IN | 0 ETH | 0.00106904 | ||||
Change Delegatio... | 20417473 | 169 days ago | IN | 0 ETH | 0.00021073 | ||||
Withdraw | 20388363 | 173 days ago | IN | 0 ETH | 0.00022973 | ||||
Withdraw | 20374329 | 175 days ago | IN | 0 ETH | 0.00025239 | ||||
Withdraw | 20371757 | 175 days ago | IN | 0 ETH | 0.00050145 | ||||
Withdraw | 20371729 | 175 days ago | IN | 0 ETH | 0.00053399 | ||||
Withdraw | 20371716 | 175 days ago | IN | 0 ETH | 0.00045836 | ||||
Withdraw | 20371688 | 175 days ago | IN | 0 ETH | 0.00043822 | ||||
Withdraw | 20371675 | 175 days ago | IN | 0 ETH | 0.00047332 | ||||
Withdraw | 20371663 | 175 days ago | IN | 0 ETH | 0.00048191 | ||||
Withdraw | 20371641 | 175 days ago | IN | 0 ETH | 0.00048405 | ||||
Withdraw | 20371601 | 175 days ago | IN | 0 ETH | 0.00052479 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
||||
---|---|---|---|---|---|---|---|
21307539 | 44 days ago | 0 ETH | |||||
21307539 | 44 days ago | 0 ETH | |||||
21298835 | 46 days ago | 0 ETH | |||||
21298835 | 46 days ago | 0 ETH | |||||
21290448 | 47 days ago | 0 ETH | |||||
21290448 | 47 days ago | 0 ETH | |||||
21146871 | 67 days ago | 0 ETH | |||||
21145866 | 67 days ago | 0 ETH | |||||
21145866 | 67 days ago | 0 ETH | |||||
21084928 | 75 days ago | 0 ETH | |||||
21084928 | 75 days ago | 0 ETH | |||||
21084925 | 75 days ago | 0 ETH | |||||
21084925 | 75 days ago | 0 ETH | |||||
21079403 | 76 days ago | 0 ETH | |||||
21079403 | 76 days ago | 0 ETH | |||||
21079399 | 76 days ago | 0 ETH | |||||
21079399 | 76 days ago | 0 ETH | |||||
21064772 | 78 days ago | 0 ETH | |||||
21064772 | 78 days ago | 0 ETH | |||||
21064766 | 78 days ago | 0 ETH | |||||
21064766 | 78 days ago | 0 ETH | |||||
21064213 | 78 days ago | 0 ETH | |||||
21064213 | 78 days ago | 0 ETH | |||||
21064210 | 78 days ago | 0 ETH | |||||
21064210 | 78 days ago | 0 ETH |
Loading...
Loading
Contract Name:
SimpleProxy
Compiler Version
v0.8.3+commit.8d00100c
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.3; contract SimpleProxy { // This contract splits the storage of a contract from its logic, it will // call an implementation contract via delegatecall. That implementation // changes what is stored in this contract, by changing the implementation // address this contract effectively has different logic. // NOTE - Functions 'upgradeProxy', 'resetProxyOwner', 'proxyImplementation' and 'proxyGovernance' // are occupied namespace and cannot be used in implementation contracts. In a very unlikely // edge case a 4 bit hash collision between function selectors could block other function names. // The implementation contains the logic for this proxy, it for security reasons // should not assume only this contract can call it. // NOTE - It's insecure in implementation proxies to use the default storage layout since // it is possible to overwrite this address. Use Storage.sol for storage. address public proxyImplementation; // The address which can upgrade this contract address public proxyGovernance; /// @notice Sets up the authorizable library for the proxy /// @param _governance An address which will be authorized to change the implementation /// it will also be set at the owner of this contract. /// @param _firstImplementation The first implementation address constructor(address _governance, address _firstImplementation) { // Set governance proxyGovernance = _governance; // Set the first implementation proxyImplementation = _firstImplementation; } /// @notice Allows authorized addresses to change the implementation /// @param _newImplementation The new implementation address function upgradeProxy(address _newImplementation) external { require(msg.sender == proxyGovernance, "unauthorized"); proxyImplementation = _newImplementation; } /// @notice Sets the address which can upgrade this proxy, only callable /// by the current address which can upgrade this proxy. /// @param _newGovernance The new governance address function resetProxyOwner(address _newGovernance) external { require(msg.sender == proxyGovernance, "unauthorized"); proxyGovernance = _newGovernance; } /// @notice The fallback is the routing function for the proxy and uses delegatecall /// to forward any calls which are made to this address to be executed by the /// logic contract. /// @dev WARNING - We don't do extcode size checks like high level solidity if the /// implementation has 0 bytecode this will succeed but do nothing. fallback() external payable { assembly { let calldataLength := calldatasize() // equivalent to receive() external payable {} if iszero(calldataLength) { return(0, 0) } // We load the free memory pointer // Note - We technically don't need to do this because the whole call is // in assembly but it's good practice to match solidity's memory management let ptr := mload(0x40) // Copy the calldata into memory calldatacopy( // The position in memory this copies to ptr, // The calldata index this copies from 0, // The number of bytes to copy calldataLength ) // Move the free memory pointer mstore(0x40, add(ptr, calldataLength)) // Load the implementation address let implementation := sload(proxyImplementation.slot) // It's very unlikely any extra data got loaded but we clean anyway implementation := and( implementation, 0x000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF ) // Now we make the delegatecall let success := delegatecall( // The gas param gas(), // The address implementation, // The memory location of the input data ptr, // The input size calldataLength, // The output memory pointer and size, we use the return data instead 0, 0 ) // Load our new free memory pointer ptr := mload(0x40) // Load the return data size let returndataLength := returndatasize() // Copy the return data returndatacopy( // Memory location of the output ptr, // Memory location of the input 0, // Length of the input returndataLength ) // If the call was not successful we revert if iszero(success) { revert(ptr, returndataLength) } // If the call was successful we return return(ptr, returndataLength) } } }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_governance","type":"address"},{"internalType":"address","name":"_firstImplementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"proxyGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newGovernance","type":"address"}],"name":"resetProxyOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImplementation","type":"address"}],"name":"upgradeProxy","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161041938038061041983398101604081905261002f9161007c565b600180546001600160a01b039384166001600160a01b031991821617909155600080549290931691161790556100ae565b80516001600160a01b038116811461007757600080fd5b919050565b6000806040838503121561008e578182fd5b61009783610060565b91506100a560208401610060565b90509250929050565b61035c806100bd6000396000f3fe60806040526004361061003f5760003560e01c80630c870f911461009157806374474d28146100e75780638c1e1df014610109578063c01cc4d114610136575b368061004757005b60405181600082378082016040526000805473ffffffffffffffffffffffffffffffffffffffff1690808484845af492505060405190503d806000833e8261008d578082fd5b8082f35b34801561009d57600080fd5b506000546100be9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f357600080fd5b506101076101023660046102eb565b610156565b005b34801561011557600080fd5b506001546100be9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561014257600080fd5b506101076101513660046102eb565b610223565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064016101d3565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000602082840312156102fc578081fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461031f578182fd5b939250505056fea264697066735822122085c8a937beb2e974e16b76a0f97938c627506f8725bfbb4cf2f5fa35963f5e1e64736f6c63430008030033000000000000000000000000422494292e7a9dda8778bb4ea05c2779a3d60f5d0000000000000000000000006f51da68446e568fe24be166917a99d4da7ee1d0
Deployed Bytecode
0x60806040526004361061003f5760003560e01c80630c870f911461009157806374474d28146100e75780638c1e1df014610109578063c01cc4d114610136575b368061004757005b60405181600082378082016040526000805473ffffffffffffffffffffffffffffffffffffffff1690808484845af492505060405190503d806000833e8261008d578082fd5b8082f35b34801561009d57600080fd5b506000546100be9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100f357600080fd5b506101076101023660046102eb565b610156565b005b34801561011557600080fd5b506001546100be9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561014257600080fd5b506101076101513660046102eb565b610223565b60015473ffffffffffffffffffffffffffffffffffffffff1633146101dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064015b60405180910390fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f756e617574686f72697a6564000000000000000000000000000000000000000060448201526064016101d3565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6000602082840312156102fc578081fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461031f578182fd5b939250505056fea264697066735822122085c8a937beb2e974e16b76a0f97938c627506f8725bfbb4cf2f5fa35963f5e1e64736f6c63430008030033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000422494292e7a9dda8778bb4ea05c2779a3d60f5d0000000000000000000000006f51da68446e568fe24be166917a99d4da7ee1d0
-----Decoded View---------------
Arg [0] : _governance (address): 0x422494292e7a9Dda8778Bb4EA05C2779a3d60f5D
Arg [1] : _firstImplementation (address): 0x6f51dA68446E568fe24bE166917a99d4dA7ee1D0
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000422494292e7a9dda8778bb4ea05c2779a3d60f5d
Arg [1] : 0000000000000000000000006f51da68446e568fe24be166917a99d4da7ee1d0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,245.47 | 0.0249 | $80.94 |
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.