Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Change Dependent... | 12608546 | 1144 days ago | IN | 0 ETH | 0.00119374 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14991709 | 770 days ago | 0.11104722 ETH | ||||
14991709 | 770 days ago | 0.11104722 ETH | ||||
14047480 | 920 days ago | 0.00311868 ETH | ||||
14047480 | 920 days ago | 0.00311868 ETH | ||||
14047472 | 920 days ago | 0.00311868 ETH | ||||
14047472 | 920 days ago | 0.00311868 ETH | ||||
14035364 | 922 days ago | 0.04456894 ETH | ||||
14035364 | 922 days ago | 0.04456894 ETH | ||||
14030178 | 922 days ago | 0.00213552 ETH | ||||
14030178 | 922 days ago | 0.00213552 ETH | ||||
14027720 | 923 days ago | 0.00311868 ETH | ||||
14027720 | 923 days ago | 0.00311868 ETH | ||||
14027687 | 923 days ago | 0.03537867 ETH | ||||
14027687 | 923 days ago | 0.03537867 ETH | ||||
13980281 | 930 days ago | 0.38439425 ETH | ||||
13980281 | 930 days ago | 0.38439425 ETH | ||||
13747958 | 966 days ago | 0.0277618 ETH | ||||
13747958 | 966 days ago | 0.0277618 ETH | ||||
13602361 | 989 days ago | 0.05125256 ETH | ||||
13602361 | 989 days ago | 0.05125256 ETH | ||||
13588016 | 992 days ago | 0.00854209 ETH | ||||
13588016 | 992 days ago | 0.00854209 ETH | ||||
13577434 | 993 days ago | 0.04057494 ETH | ||||
13577434 | 993 days ago | 0.04057494 ETH | ||||
13518728 | 1002 days ago | 0.00640657 ETH |
Loading...
Loading
Contract Name:
OwnedUpgradeabilityProxy
Compiler Version
v0.5.17+commit.d19bba13
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
pragma solidity ^0.5.0; import "./UpgradeabilityProxy.sol"; /** * @title OwnedUpgradeabilityProxy * @dev This contract combines an upgradeability proxy with basic authorization control functionalities */ contract OwnedUpgradeabilityProxy is UpgradeabilityProxy { /** * @dev Event to show ownership has been transferred * @param previousOwner representing the address of the previous owner * @param newOwner representing the address of the new owner */ event ProxyOwnershipTransferred(address previousOwner, address newOwner); // Storage position of the owner of the contract bytes32 private constant PROXY_OWNER_POSITION = keccak256("org.govblocks.proxy.owner"); /** * @dev the constructor sets the original owner of the contract to the sender account. */ constructor(address _implementation) public { _setUpgradeabilityOwner(msg.sender); _upgradeTo(_implementation); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyProxyOwner() { require(msg.sender == proxyOwner()); _; } /** * @dev Tells the address of the owner * @return the address of the owner */ function proxyOwner() public view returns (address owner) { bytes32 position = PROXY_OWNER_POSITION; // solhint-disable-next-line no-inline-assembly assembly { owner := sload(position) } } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferProxyOwnership(address _newOwner) public onlyProxyOwner { require(_newOwner != address(0)); _setUpgradeabilityOwner(_newOwner); emit ProxyOwnershipTransferred(proxyOwner(), _newOwner); } /** * @dev Allows the proxy owner to upgrade the current version of the proxy. * @param _implementation representing the address of the new implementation to be set. */ function upgradeTo(address _implementation) public onlyProxyOwner { _upgradeTo(_implementation); } /** * @dev Sets the address of the owner */ function _setUpgradeabilityOwner(address _newProxyOwner) internal { bytes32 position = PROXY_OWNER_POSITION; // solhint-disable-next-line no-inline-assembly assembly { sstore(position, _newProxyOwner) } } }
pragma solidity ^0.5.0; import "./Proxy.sol"; /** * @title UpgradeabilityProxy * @dev This contract represents a proxy where the implementation address to which it will delegate can be upgraded */ contract UpgradeabilityProxy is Proxy { /** * @dev This event will be emitted every time the implementation gets upgraded * @param implementation representing the address of the upgraded implementation */ event Upgraded(address indexed implementation); // Storage position of the address of the current implementation bytes32 private constant IMPLEMENTATION_POSITION = keccak256("org.govblocks.proxy.implementation"); /** * @dev Constructor function */ // solhint-disable-next-line no-empty-blocks constructor() public {} /** * @dev Tells the address of the current implementation * @return address of the current implementation */ function implementation() public view returns (address impl) { bytes32 position = IMPLEMENTATION_POSITION; // solhint-disable-next-line no-inline-assembly assembly { impl := sload(position) } } /** * @dev Sets the address of the current implementation * @param _newImplementation address representing the new implementation to be set */ function _setImplementation(address _newImplementation) internal { bytes32 position = IMPLEMENTATION_POSITION; // solhint-disable-next-line no-inline-assembly assembly { sstore(position, _newImplementation) } } /** * @dev Upgrades the implementation address * @param _newImplementation representing the address of the new implementation to be set */ function _upgradeTo(address _newImplementation) internal { address currentImplementation = implementation(); require(currentImplementation != _newImplementation); _setImplementation(_newImplementation); emit Upgraded(_newImplementation); } }
pragma solidity ^0.5.0; /** * @title Proxy * @dev Gives the possibility to delegate any call to a foreign implementation. */ contract Proxy { /** * @dev Fallback function allowing to perform a delegatecall to the given implementation. * This function will return whatever the implementation call returns */ // solhint-disable-next-line no-complex-fallback function() external payable { address _impl = implementation(); require(_impl != address(0)); // solhint-disable-next-line no-inline-assembly assembly { let ptr := mload(0x40) calldatacopy(ptr, 0, calldatasize) let result := delegatecall(gas, _impl, ptr, calldatasize, 0, 0) let size := returndatasize returndatacopy(ptr, 0, size) switch result case 0 {revert(ptr, size)} default {return (ptr, size)} } } /** * @dev Tells the address of the implementation where every call will be delegated. * @return address of the implementation to which it will be delegated */ function implementation() public view returns (address); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","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":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516104e43803806104e48339818101604052602081101561003357600080fd5b5051610047336001600160e01b0361005f16565b610059816001600160e01b0361009416565b50610157565b604080517f6f72672e676f76626c6f636b732e70726f78792e6f776e6572000000000000008152905190819003601901902055565b60006100a76001600160e01b0361011216565b9050816001600160a01b0316816001600160a01b031614156100c857600080fd5b6100da826001600160e01b0361013516565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b60008060405180806104c260229139604051908190036022019020549392505050565b600060405180806104c260229139604051908190036022019020929092555050565b61035c806101666000396000f3fe60806040526004361061003f5760003560e01c8063025313a2146100835780633659cfe6146100b45780635c60da1b146100e9578063f1739cae146100fe575b6000610049610131565b90506001600160a01b03811661005e57600080fd5b60405136600082376000803683855af43d806000843e81801561007f578184f35b8184fd5b34801561008f57600080fd5b50610098610154565b604080516001600160a01b039092168252519081900360200190f35b3480156100c057600080fd5b506100e7600480360360208110156100d757600080fd5b50356001600160a01b0316610186565b005b3480156100f557600080fd5b50610098610131565b34801561010a57600080fd5b506100e76004803603602081101561012157600080fd5b50356001600160a01b03166101b7565b600080604051808061030660229139604051908190036022019020549392505050565b604080517837b9339733b7bb313637b1b5b997383937bc3c9737bbb732b960391b815290519081900360190190205490565b61018e610154565b6001600160a01b0316336001600160a01b0316146101ab57600080fd5b6101b481610246565b50565b6101bf610154565b6001600160a01b0316336001600160a01b0316146101dc57600080fd5b6001600160a01b0381166101ef57600080fd5b6101f8816102b2565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9610221610154565b604080516001600160a01b03928316815291841660208301528051918290030190a150565b6000610250610131565b9050816001600160a01b0316816001600160a01b0316141561027157600080fd5b61027a826102e3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b604080517837b9339733b7bb313637b1b5b997383937bc3c9737bbb732b960391b8152905190819003601901902055565b600060405180806103066022913960405190819003602201902092909255505056fe6f72672e676f76626c6f636b732e70726f78792e696d706c656d656e746174696f6ea265627a7a7231582057d40569a8ad0e1dc3154aee5ce66e10fe8620df460596f38828178b7a8c0b5264736f6c634300051100326f72672e676f76626c6f636b732e70726f78792e696d706c656d656e746174696f6e000000000000000000000000cafea9d0264d36defa4bb10bc68e182c4c5a8a46
Deployed Bytecode
0x60806040526004361061003f5760003560e01c8063025313a2146100835780633659cfe6146100b45780635c60da1b146100e9578063f1739cae146100fe575b6000610049610131565b90506001600160a01b03811661005e57600080fd5b60405136600082376000803683855af43d806000843e81801561007f578184f35b8184fd5b34801561008f57600080fd5b50610098610154565b604080516001600160a01b039092168252519081900360200190f35b3480156100c057600080fd5b506100e7600480360360208110156100d757600080fd5b50356001600160a01b0316610186565b005b3480156100f557600080fd5b50610098610131565b34801561010a57600080fd5b506100e76004803603602081101561012157600080fd5b50356001600160a01b03166101b7565b600080604051808061030660229139604051908190036022019020549392505050565b604080517837b9339733b7bb313637b1b5b997383937bc3c9737bbb732b960391b815290519081900360190190205490565b61018e610154565b6001600160a01b0316336001600160a01b0316146101ab57600080fd5b6101b481610246565b50565b6101bf610154565b6001600160a01b0316336001600160a01b0316146101dc57600080fd5b6001600160a01b0381166101ef57600080fd5b6101f8816102b2565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9610221610154565b604080516001600160a01b03928316815291841660208301528051918290030190a150565b6000610250610131565b9050816001600160a01b0316816001600160a01b0316141561027157600080fd5b61027a826102e3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b604080517837b9339733b7bb313637b1b5b997383937bc3c9737bbb732b960391b8152905190819003601901902055565b600060405180806103066022913960405190819003602201902092909255505056fe6f72672e676f76626c6f636b732e70726f78792e696d706c656d656e746174696f6ea265627a7a7231582057d40569a8ad0e1dc3154aee5ce66e10fe8620df460596f38828178b7a8c0b5264736f6c63430005110032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cafea9d0264d36defa4bb10bc68e182c4c5a8a46
-----Decoded View---------------
Arg [0] : _implementation (address): 0xcafea9D0264D36Defa4BB10bC68E182C4c5A8A46
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cafea9d0264d36defa4bb10bc68e182c4c5a8a46
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ 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.