More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 25 from a total of 3,821 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Exit | 13657972 | 1241 days ago | IN | 0 ETH | 0.00806193 | ||||
Exit | 13619981 | 1247 days ago | IN | 0 ETH | 0.01534374 | ||||
Exit | 12581625 | 1409 days ago | IN | 0 ETH | 0.00207801 | ||||
Exit | 12572953 | 1410 days ago | IN | 0 ETH | 0.00241558 | ||||
Exit | 12527440 | 1417 days ago | IN | 0 ETH | 0.004918 | ||||
Exit | 12514351 | 1419 days ago | IN | 0 ETH | 0.0034834 | ||||
Exit | 12489782 | 1423 days ago | IN | 0 ETH | 0.02789172 | ||||
Exit | 12468576 | 1426 days ago | IN | 0 ETH | 0.01859448 | ||||
Exit | 12445054 | 1430 days ago | IN | 0 ETH | 0.00585211 | ||||
Collect Bal Toke... | 12378947 | 1440 days ago | IN | 0 ETH | 0.00131765 | ||||
Exit | 12378061 | 1440 days ago | IN | 0 ETH | 0.00440049 | ||||
Exit | 12366673 | 1442 days ago | IN | 0 ETH | 0.00445189 | ||||
Exit | 12365931 | 1442 days ago | IN | 0 ETH | 0.00551416 | ||||
Exit | 12364798 | 1442 days ago | IN | 0 ETH | 0.00778161 | ||||
Exit | 12364490 | 1442 days ago | IN | 0 ETH | 0.00808148 | ||||
Exit | 12359665 | 1443 days ago | IN | 0 ETH | 0.0039014 | ||||
Exit | 12355092 | 1444 days ago | IN | 0 ETH | 0.003839 | ||||
Exit | 12346678 | 1445 days ago | IN | 0 ETH | 0.00305614 | ||||
Exit | 12338338 | 1446 days ago | IN | 0 ETH | 0.0056795 | ||||
Exit | 12335898 | 1447 days ago | IN | 0 ETH | 0.00823862 | ||||
Exit | 12326683 | 1448 days ago | IN | 0 ETH | 0.00547505 | ||||
Exit | 12320715 | 1449 days ago | IN | 0 ETH | 0.007377 | ||||
Exit | 12319644 | 1449 days ago | IN | 0 ETH | 0.00620343 | ||||
Exit | 12319230 | 1449 days ago | IN | 0 ETH | 0.00704602 | ||||
Exit | 12318358 | 1449 days ago | IN | 0 ETH | 0.00856478 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
UpgradableProxy
Compiler Version
v0.5.17+commit.d19bba13
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-30 */ pragma solidity 0.5.17; interface IERCProxy { function proxyType() external pure returns (uint proxyTypeId); function implementation() external view returns (address codeAddr); } contract Proxy is IERCProxy { function delegatedFwd(address _dst, bytes memory _calldata) internal { // solium-disable-next-line security/no-inline-assembly assembly { let result := delegatecall( sub(gas(), 10000), _dst, add(_calldata, 0x20), mload(_calldata), 0, 0 ) let size := returndatasize() let ptr := mload(0x40) returndatacopy(ptr, 0, size) // revert instead of invalid() bc if the underlying call failed with invalid() it already wasted gas. // if the call returned error data, forward it switch result case 0 { revert(ptr, size) } default { return(ptr, size) } } } function proxyType() external pure returns (uint proxyTypeId) { // Upgradeable proxy proxyTypeId = 2; } function implementation() public view returns (address); } contract GovernableProxy { bytes32 constant OWNER_SLOT = keccak256("proxy.owner"); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() internal { _transferOwnership(msg.sender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns(address _owner) { bytes32 position = OWNER_SLOT; assembly { _owner := sload(position) } } modifier onlyOwner() { require(isOwner(), "NOT_OWNER"); _; } function isOwner() public view returns (bool) { return owner() == msg.sender; } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "OwnableProxy: new owner is the zero address"); emit OwnershipTransferred(owner(), newOwner); bytes32 position = OWNER_SLOT; assembly { sstore(position, newOwner) } } } contract UpgradableProxy is GovernableProxy, Proxy { bytes32 constant IMPLEMENTATION_SLOT = keccak256("proxy.implementation"); event ProxyUpdated(address indexed previousImpl, address indexed newImpl); function() external payable { delegatedFwd(implementation(), msg.data); } function implementation() public view returns(address _impl) { bytes32 position = IMPLEMENTATION_SLOT; assembly { _impl := sload(position) } } // ACLed on onlyOwner via the call to updateImplementation() function updateAndCall(address _newProxyTo, bytes memory data) public { updateImplementation(_newProxyTo); // sometimes required to initialize the contract (bool success, bytes memory returnData) = address(this).call(data); require(success, string(returnData)); } function updateImplementation(address _newProxyTo) public onlyOwner { require(_newProxyTo != address(0x0), "INVALID_PROXY_ADDRESS"); require(isContract(_newProxyTo), "DESTINATION_ADDRESS_IS_NOT_A_CONTRACT"); emit ProxyUpdated(implementation(), _newProxyTo); setImplementation(_newProxyTo); } function setImplementation(address _newProxyTo) private { bytes32 position = IMPLEMENTATION_SLOT; assembly { sstore(position, _newProxyTo) } } function isContract(address _target) internal view returns (bool) { if (_target == address(0)) { return false; } uint size; assembly { size := extcodesize(_target) } return size > 0; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousImpl","type":"address"},{"indexed":true,"internalType":"address","name":"newImpl","type":"address"}],"name":"ProxyUpdated","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"_impl","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proxyType","outputs":[{"internalType":"uint256","name":"proxyTypeId","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"updateAndCall","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newProxyTo","type":"address"}],"name":"updateImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526100133361001860201b60201c565b610189565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561009e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610c09602b913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166100c361014660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600060405180807f70726f78792e6f776e6572000000000000000000000000000000000000000000815250600b019050604051809103902090508181555050565b60008060405180807f70726f78792e6f776e6572000000000000000000000000000000000000000000815250600b01905060405180910390209050805491505090565b610a71806101986000396000f3fe6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b1461019b5780638f32d59b146101f2578063d88ca2c814610221578063f2fde38b1461030957610070565b8063025b22bc146100c85780634555d5c9146101195780635c60da1b14610144575b6100c661007b61035a565b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061039d565b005b3480156100d457600080fd5b50610117600480360360208110156100eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c7565b005b34801561012557600080fd5b5061012e6105af565b6040518082815260200191505060405180910390f35b34801561015057600080fd5b5061015961035a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a757600080fd5b506101b06105b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101fe57600080fd5b506102076105fb565b604051808215151515815260200191505060405180910390f35b34801561022d57600080fd5b506103076004803603604081101561024457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561028157600080fd5b82018360208201111561029357600080fd5b803590602001918460018302840111640100000000831117156102b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610638565b005b34801561031557600080fd5b506103586004803603602081101561032c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ab565b005b60008060405180807f70726f78792e696d706c656d656e746174696f6e000000000000000000000000815250601401905060405180910390209050805491505090565b600080825160208401856127105a03f43d604051816000823e82600081146103c3578282f35b8282fd5b6103cf6105fb565b610441576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f494e56414c49445f50524f58595f41444452455353000000000000000000000081525060200191505060405180910390fd5b6104ed81610831565b610542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806109ed6025913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661056161035a565b73ffffffffffffffffffffffffffffffffffffffff167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36105ac81610883565b50565b60006002905090565b60008060405180807f70726f78792e6f776e6572000000000000000000000000000000000000000000815250600b01905060405180910390209050805491505090565b60003373ffffffffffffffffffffffffffffffffffffffff1661061c6105b8565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b610641826103c7565b600060603073ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310610690578051825260208201915060208101905060208303925061066d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146106f2576040519150601f19603f3d011682016040523d82523d6000602084013e6106f7565b606091505b50915091508181906107a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561076957808201518184015260208101905061074e565b50505050905090810190601f1680156107965780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b6107b36105fb565b610825576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61082e816108c4565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610870576000905061087e565b6000823b9050600081119150505b919050565b600060405180807f70726f78792e696d706c656d656e746174696f6e0000000000000000000000008152506014019050604051809103902090508181555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561094a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610a12602b913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109696105b8565b73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600060405180807f70726f78792e6f776e6572000000000000000000000000000000000000000000815250600b01905060405180910390209050818155505056fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e54524143544f776e61626c6550726f78793a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a7231582062ced571c8ff6aa743fbe5b59c982f65208edb867af2f2ced70ffbf736e4694064736f6c634300051100324f776e61626c6550726f78793a206e6577206f776e657220697320746865207a65726f2061646472657373
Deployed Bytecode
0x6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b1461019b5780638f32d59b146101f2578063d88ca2c814610221578063f2fde38b1461030957610070565b8063025b22bc146100c85780634555d5c9146101195780635c60da1b14610144575b6100c661007b61035a565b6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061039d565b005b3480156100d457600080fd5b50610117600480360360208110156100eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103c7565b005b34801561012557600080fd5b5061012e6105af565b6040518082815260200191505060405180910390f35b34801561015057600080fd5b5061015961035a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a757600080fd5b506101b06105b8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101fe57600080fd5b506102076105fb565b604051808215151515815260200191505060405180910390f35b34801561022d57600080fd5b506103076004803603604081101561024457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561028157600080fd5b82018360208201111561029357600080fd5b803590602001918460018302840111640100000000831117156102b557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610638565b005b34801561031557600080fd5b506103586004803603602081101561032c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107ab565b005b60008060405180807f70726f78792e696d706c656d656e746174696f6e000000000000000000000000815250601401905060405180910390209050805491505090565b600080825160208401856127105a03f43d604051816000823e82600081146103c3578282f35b8282fd5b6103cf6105fb565b610441576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156104e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f494e56414c49445f50524f58595f41444452455353000000000000000000000081525060200191505060405180910390fd5b6104ed81610831565b610542576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806109ed6025913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661056161035a565b73ffffffffffffffffffffffffffffffffffffffff167fd32d24edea94f55e932d9a008afc425a8561462d1b1f57bc6e508e9a6b9509e160405160405180910390a36105ac81610883565b50565b60006002905090565b60008060405180807f70726f78792e6f776e6572000000000000000000000000000000000000000000815250600b01905060405180910390209050805491505090565b60003373ffffffffffffffffffffffffffffffffffffffff1661061c6105b8565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b610641826103c7565b600060603073ffffffffffffffffffffffffffffffffffffffff16836040518082805190602001908083835b60208310610690578051825260208201915060208101905060208303925061066d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146106f2576040519150601f19603f3d011682016040523d82523d6000602084013e6106f7565b606091505b50915091508181906107a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561076957808201518184015260208101905061074e565b50505050905090810190601f1680156107965780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5050505050565b6107b36105fb565b610825576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f4e4f545f4f574e4552000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61082e816108c4565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610870576000905061087e565b6000823b9050600081119150505b919050565b600060405180807f70726f78792e696d706c656d656e746174696f6e0000000000000000000000008152506014019050604051809103902090508181555050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561094a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b815260200180610a12602b913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109696105b8565b73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600060405180807f70726f78792e6f776e6572000000000000000000000000000000000000000000815250600b01905060405180910390209050818155505056fe44455354494e4154494f4e5f414444524553535f49535f4e4f545f415f434f4e54524143544f776e61626c6550726f78793a206e6577206f776e657220697320746865207a65726f2061646472657373a265627a7a7231582062ced571c8ff6aa743fbe5b59c982f65208edb867af2f2ced70ffbf736e4694064736f6c63430005110032
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.