More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,087 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 21023288 | 67 days ago | IN | 0 ETH | 0.00069163 | ||||
Claim | 19882549 | 226 days ago | IN | 0 ETH | 0.00016293 | ||||
Claim | 18890116 | 365 days ago | IN | 0 ETH | 0.00095338 | ||||
Claim | 18749408 | 385 days ago | IN | 0 ETH | 0.00278348 | ||||
Claim | 18386557 | 436 days ago | IN | 0 ETH | 0.00048011 | ||||
Claim | 18275270 | 451 days ago | IN | 0 ETH | 0.00047597 | ||||
Claim | 17800774 | 518 days ago | IN | 0 ETH | 0.00210279 | ||||
Claim | 17586291 | 548 days ago | IN | 0 ETH | 0.00124945 | ||||
Claim | 17555023 | 552 days ago | IN | 0 ETH | 0.00059118 | ||||
Claim | 17554915 | 552 days ago | IN | 0 ETH | 0.00062558 | ||||
Claim | 17509467 | 558 days ago | IN | 0 ETH | 0.00117893 | ||||
Claim | 17472675 | 564 days ago | IN | 0 ETH | 0.00118046 | ||||
Claim | 17287973 | 590 days ago | IN | 0 ETH | 0.0053094 | ||||
Claim | 17078510 | 619 days ago | IN | 0 ETH | 0.00376307 | ||||
Claim | 17062587 | 621 days ago | IN | 0 ETH | 0.00192553 | ||||
Claim | 16990689 | 632 days ago | IN | 0 ETH | 0.00100976 | ||||
Claim | 16905953 | 644 days ago | IN | 0 ETH | 0.0020017 | ||||
Claim | 16879713 | 647 days ago | IN | 0 ETH | 0.00103178 | ||||
Claim | 16823197 | 655 days ago | IN | 0 ETH | 0.00222991 | ||||
Claim | 16739679 | 667 days ago | IN | 0 ETH | 0.00147891 | ||||
Claim | 16728548 | 669 days ago | IN | 0 ETH | 0.00357621 | ||||
Claim | 16705002 | 672 days ago | IN | 0 ETH | 0.00124389 | ||||
Claim | 16663378 | 678 days ago | IN | 0 ETH | 0.00164984 | ||||
Claim | 16625852 | 683 days ago | IN | 0 ETH | 0.00149682 | ||||
Claim | 16590698 | 688 days ago | IN | 0 ETH | 0.00168165 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
OwnedUpgradeabilityProxy
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-03 */ // SPDX-License-Identifier: (c) Armor.Fi DAO, 2021 pragma solidity 0.6.12; /** * @title Proxy * @dev Gives the possibility to delegate any call to a foreign implementation. */ abstract contract Proxy { /** * @dev Fallback function allowing to perform a delegatecall to the given implementation. * This function will return whatever the implementation call returns */ fallback() external payable { address _impl = implementation(); require(_impl != address(0)); 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 virtual returns (address); } /** * @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 */ constructor() public {} /** * @dev Tells the address of the current implementation * @return impl address of the current implementation */ function implementation() public view override returns (address impl) { bytes32 position = IMPLEMENTATION_POSITION; 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; 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); } } /** * @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 owner the address of the owner */ function proxyOwner() public view returns (address owner) { bytes32 position = PROXY_OWNER_POSITION; 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; assembly { sstore(position, _newProxyOwner) } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"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"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxyOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"upgradeTo","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506040516104563803806104568339818101604052602081101561003357600080fd5b505161003e3361004d565b61004781610071565b50610102565b7f2dbc9b6b8d09ee15269835797a45b6f772b81406ec218e6fd64b114f376266ba55565b600061007b6100dd565b9050816001600160a01b0316816001600160a01b0316141561009c57600080fd5b6100a5826100f0565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b6000805160206104368339815191525490565b60008051602061043683398151915255565b610325806101116000396000f3fe60806040526004361061003f5760003560e01c8063025313a2146100835780633659cfe6146100b45780635c60da1b146100e9578063f1739cae146100fe575b6000610049610131565b90506001600160a01b03811661005e57600080fd5b60405136600082376000803683855af43d806000843e81801561007f578184f35b8184fd5b34801561008f57600080fd5b50610098610156565b604080516001600160a01b039092168252519081900360200190f35b3480156100c057600080fd5b506100e7600480360360208110156100d757600080fd5b50356001600160a01b031661017b565b005b3480156100f557600080fd5b50610098610131565b34801561010a57600080fd5b506100e76004803603602081101561012157600080fd5b50356001600160a01b03166101ac565b7f7fb5080a7084f4c60aade0a78fc13ba4ba6555b60e554360d005f0d684cea1865490565b7f2dbc9b6b8d09ee15269835797a45b6f772b81406ec218e6fd64b114f376266ba5490565b610183610156565b6001600160a01b0316336001600160a01b0316146101a057600080fd5b6101a98161023b565b50565b6101b4610156565b6001600160a01b0316336001600160a01b0316146101d157600080fd5b6001600160a01b0381166101e457600080fd5b6101ed816102a7565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9610216610156565b604080516001600160a01b03928316815291841660208301528051918290030190a150565b6000610245610131565b9050816001600160a01b0316816001600160a01b0316141561026657600080fd5b61026f826102cb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b7f2dbc9b6b8d09ee15269835797a45b6f772b81406ec218e6fd64b114f376266ba55565b7f7fb5080a7084f4c60aade0a78fc13ba4ba6555b60e554360d005f0d684cea1865556fea264697066735822122032d05dba64b51e05e459bcb8d29b7006b520c04d01f152d295df9e4dd693e12464736f6c634300060c00337fb5080a7084f4c60aade0a78fc13ba4ba6555b60e554360d005f0d684cea1860000000000000000000000008723eb25fc67a6ea3693718019fe7294f078d2b2
Deployed Bytecode
0x60806040526004361061003f5760003560e01c8063025313a2146100835780633659cfe6146100b45780635c60da1b146100e9578063f1739cae146100fe575b6000610049610131565b90506001600160a01b03811661005e57600080fd5b60405136600082376000803683855af43d806000843e81801561007f578184f35b8184fd5b34801561008f57600080fd5b50610098610156565b604080516001600160a01b039092168252519081900360200190f35b3480156100c057600080fd5b506100e7600480360360208110156100d757600080fd5b50356001600160a01b031661017b565b005b3480156100f557600080fd5b50610098610131565b34801561010a57600080fd5b506100e76004803603602081101561012157600080fd5b50356001600160a01b03166101ac565b7f7fb5080a7084f4c60aade0a78fc13ba4ba6555b60e554360d005f0d684cea1865490565b7f2dbc9b6b8d09ee15269835797a45b6f772b81406ec218e6fd64b114f376266ba5490565b610183610156565b6001600160a01b0316336001600160a01b0316146101a057600080fd5b6101a98161023b565b50565b6101b4610156565b6001600160a01b0316336001600160a01b0316146101d157600080fd5b6001600160a01b0381166101e457600080fd5b6101ed816102a7565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9610216610156565b604080516001600160a01b03928316815291841660208301528051918290030190a150565b6000610245610131565b9050816001600160a01b0316816001600160a01b0316141561026657600080fd5b61026f826102cb565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b7f2dbc9b6b8d09ee15269835797a45b6f772b81406ec218e6fd64b114f376266ba55565b7f7fb5080a7084f4c60aade0a78fc13ba4ba6555b60e554360d005f0d684cea1865556fea264697066735822122032d05dba64b51e05e459bcb8d29b7006b520c04d01f152d295df9e4dd693e12464736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000008723eb25fc67a6ea3693718019fe7294f078d2b2
-----Decoded View---------------
Arg [0] : _implementation (address): 0x8723eb25Fc67A6ea3693718019fE7294f078D2B2
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008723eb25fc67a6ea3693718019fe7294f078d2b2
Deployed Bytecode Sourcemap
3198:2225:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;444:13;460:16;:14;:16::i;:::-;444:32;-1:-1:-1;;;;;;495:19:0;;487:28;;;;;;569:4;563:11;609:14;606:1;601:3;588:36;703:1;700;684:14;679:3;672:5;665;652:53;731:16;784:4;781:1;776:3;761:28;812:6;832:28;;;;896:4;891:3;884:17;832:28;853:4;848:3;841:17;4247:185;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;4247:185:0;;;;;;;;;;;;;;5039:112;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5039:112:0;-1:-1:-1;;;;;5039:112:0;;:::i;:::-;;2020:199;;;;;;;;;;;;;:::i;4607:235::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4607:235:0;-1:-1:-1;;;;;4607:235:0;;:::i;2020:199::-;1748:47;2186:15;;2163:49::o;4247:185::-;3659:38;4399:15;;4375:50::o;5039:112::-;4100:12;:10;:12::i;:::-;-1:-1:-1;;;;;4086:26:0;:10;-1:-1:-1;;;;;4086:26:0;;4078:35;;;;;;5116:27:::1;5127:15;5116:10;:27::i;:::-;5039:112:::0;:::o;4607:235::-;4100:12;:10;:12::i;:::-;-1:-1:-1;;;;;4086:26:0;:10;-1:-1:-1;;;;;4086:26:0;;4078:35;;;;;;-1:-1:-1;;;;;4699:23:0;::::1;4691:32;;;::::0;::::1;;4734:34;4758:9;4734:23;:34::i;:::-;4784:50;4810:12;:10;:12::i;:::-;4784:50;::::0;;-1:-1:-1;;;;;4784:50:0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;4607:235:::0;:::o;2760:280::-;2828:29;2860:16;:14;:16::i;:::-;2828:48;;2920:18;-1:-1:-1;;;;;2895:43:0;:21;-1:-1:-1;;;;;2895:43:0;;;2887:52;;;;;;2950:38;2969:18;2950;:38::i;:::-;3004:28;;-1:-1:-1;;;;;3004:28:0;;;;;;;;2760:280;;:::o;5219:201::-;3659:38;5370:32;5355:58::o;2390:203::-;1748:47;2539:36;2528:58::o
Swarm Source
ipfs://32d05dba64b51e05e459bcb8d29b7006b520c04d01f152d295df9e4dd693e124
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.000374 | 26,602,318.9665 | $9,939.16 |
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.