Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 18 from a total of 18 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 13052468 | 1257 days ago | IN | 0 ETH | 0.00128135 | ||||
Transfer Proxy O... | 13052446 | 1257 days ago | IN | 0 ETH | 0.00075742 | ||||
Change Beneficia... | 13052358 | 1257 days ago | IN | 0 ETH | 0.00107736 | ||||
Update Shields | 13000629 | 1265 days ago | IN | 0 ETH | 0.01446974 | ||||
Upgrade To | 13000597 | 1265 days ago | IN | 0 ETH | 0.00175519 | ||||
Change Ref Fee | 13000230 | 1265 days ago | IN | 0 ETH | 0.00436518 | ||||
Upgrade To | 13000191 | 1265 days ago | IN | 0 ETH | 0.0027841 | ||||
Create Shield | 12841879 | 1290 days ago | IN | 0 ETH | 0.06418268 | ||||
Delete Shield | 12841724 | 1290 days ago | IN | 0 ETH | 0.00076957 | ||||
Create Shield | 12832897 | 1291 days ago | IN | 0 ETH | 0.12034635 | ||||
Create Shield | 12832895 | 1291 days ago | IN | 0 ETH | 0.12034252 | ||||
Create Shield | 12832894 | 1291 days ago | IN | 0 ETH | 0.12034432 | ||||
Create Shield | 12832809 | 1291 days ago | IN | 0 ETH | 0.12034252 | ||||
Create Shield | 12829301 | 1292 days ago | IN | 0 ETH | 0.06086714 | ||||
Create Shield | 12829223 | 1292 days ago | IN | 0 ETH | 0.0750439 | ||||
Create Shield | 12829208 | 1292 days ago | IN | 0 ETH | 0.0750439 | ||||
Initialize | 12829188 | 1292 days ago | IN | 0 ETH | 0.00507245 | ||||
Transfer Proxy O... | 12828555 | 1292 days ago | IN | 0 ETH | 0.00116554 |
Latest 16 internal transactions
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
12841879 | 1290 days ago | Contract Creation | 0 ETH | |||
12841879 | 1290 days ago | Contract Creation | 0 ETH | |||
12832897 | 1291 days ago | Contract Creation | 0 ETH | |||
12832897 | 1291 days ago | Contract Creation | 0 ETH | |||
12832895 | 1291 days ago | Contract Creation | 0 ETH | |||
12832895 | 1291 days ago | Contract Creation | 0 ETH | |||
12832894 | 1291 days ago | Contract Creation | 0 ETH | |||
12832894 | 1291 days ago | Contract Creation | 0 ETH | |||
12832809 | 1291 days ago | Contract Creation | 0 ETH | |||
12832809 | 1291 days ago | Contract Creation | 0 ETH | |||
12829301 | 1292 days ago | Contract Creation | 0 ETH | |||
12829301 | 1292 days ago | Contract Creation | 0 ETH | |||
12829223 | 1292 days ago | Contract Creation | 0 ETH | |||
12829223 | 1292 days ago | Contract Creation | 0 ETH | |||
12829208 | 1292 days ago | Contract Creation | 0 ETH | |||
12829208 | 1292 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
OwnedUpgradeabilityProxy
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-07-15 */ // Sources flattened with hardhat v2.3.3 https://hardhat.org // File contracts/proxies/Proxy.sol pragma solidity 0.8.4; /** * @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); } // File contracts/proxies/UpgradeabilityProxy.sol pragma solidity 0.8.4; /** * @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.armor.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); } } // File contracts/proxies/OwnedUpgradeabilityProxy.sol // SPDX-License-Identifier: MIT pragma solidity 0.8.4; /** * @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.armor.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
608060405234801561001057600080fd5b5060405161048f38038061048f83398101604081905261002f916100ed565b610057337f81835725828b38adc3ec444c57e4739a3dbb8f6c811b0e30ed0fd7af300fd2a855565b61006081610066565b5061011b565b600061007e60008051602061046f8339815191525490565b9050816001600160a01b0316816001600160a01b0316141561009f57600080fd5b6100b58260008051602061046f83398151915255565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b6000602082840312156100fe578081fd5b81516001600160a01b0381168114610114578182fd5b9392505050565b6103458061012a6000396000f3fe60806040526004361061003f5760003560e01c8063025313a2146100915780633659cfe6146100cb5780635c60da1b146100ed578063f1739cae1461010f575b60006100576000805160206102f08339815191525490565b90506001600160a01b03811661006c57600080fd5b60405136600082376000803683855af43d806000843e81801561008d578184f35b8184fd5b34801561009d57600080fd5b506000805160206102d0833981519152545b6040516001600160a01b03909116815260200160405180910390f35b3480156100d757600080fd5b506100eb6100e63660046102a1565b61012f565b005b3480156100f957600080fd5b506000805160206102f0833981519152546100af565b34801561011b57600080fd5b506100eb61012a3660046102a1565b610168565b6000805160206102d0833981519152546001600160a01b0316336001600160a01b03161461015c57600080fd5b6101658161021a565b50565b6000805160206102d0833981519152546001600160a01b0316336001600160a01b03161461019557600080fd5b6001600160a01b0381166101a857600080fd5b6101be816000805160206102d083398151915255565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96101f56000805160206102d08339815191525490565b604080516001600160a01b03928316815291841660208301520160405180910390a150565b60006102326000805160206102f08339815191525490565b9050816001600160a01b0316816001600160a01b0316141561025357600080fd5b610269826000805160206102f083398151915255565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b6000602082840312156102b2578081fd5b81356001600160a01b03811681146102c8578182fd5b939250505056fe81835725828b38adc3ec444c57e4739a3dbb8f6c811b0e30ed0fd7af300fd2a8d9b55276818c04b253761a44ce8fdb05c84792b93f45b730ef7f7adcb2d9a410a2646970667358221220274a5501ae1c0c5ebbd93ed9cb2af2163d49f5e5c8c32ee51b83f89f8545606c64736f6c63430008040033d9b55276818c04b253761a44ce8fdb05c84792b93f45b730ef7f7adcb2d9a41000000000000000000000000066a5ac95a0d05945dbd3409a712c575909637711
Deployed Bytecode
0x60806040526004361061003f5760003560e01c8063025313a2146100915780633659cfe6146100cb5780635c60da1b146100ed578063f1739cae1461010f575b60006100576000805160206102f08339815191525490565b90506001600160a01b03811661006c57600080fd5b60405136600082376000803683855af43d806000843e81801561008d578184f35b8184fd5b34801561009d57600080fd5b506000805160206102d0833981519152545b6040516001600160a01b03909116815260200160405180910390f35b3480156100d757600080fd5b506100eb6100e63660046102a1565b61012f565b005b3480156100f957600080fd5b506000805160206102f0833981519152546100af565b34801561011b57600080fd5b506100eb61012a3660046102a1565b610168565b6000805160206102d0833981519152546001600160a01b0316336001600160a01b03161461015c57600080fd5b6101658161021a565b50565b6000805160206102d0833981519152546001600160a01b0316336001600160a01b03161461019557600080fd5b6001600160a01b0381166101a857600080fd5b6101be816000805160206102d083398151915255565b7f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd96101f56000805160206102d08339815191525490565b604080516001600160a01b03928316815291841660208301520160405180910390a150565b60006102326000805160206102f08339815191525490565b9050816001600160a01b0316816001600160a01b0316141561025357600080fd5b610269826000805160206102f083398151915255565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b6000602082840312156102b2578081fd5b81356001600160a01b03811681146102c8578182fd5b939250505056fe81835725828b38adc3ec444c57e4739a3dbb8f6c811b0e30ed0fd7af300fd2a8d9b55276818c04b253761a44ce8fdb05c84792b93f45b730ef7f7adcb2d9a410a2646970667358221220274a5501ae1c0c5ebbd93ed9cb2af2163d49f5e5c8c32ee51b83f89f8545606c64736f6c63430008040033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000066a5ac95a0d05945dbd3409a712c575909637711
-----Decoded View---------------
Arg [0] : _implementation (address): 0x66A5ac95A0D05945dbD3409a712c575909637711
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000066a5ac95a0d05945dbd3409a712c575909637711
Deployed Bytecode Sourcemap
3444:2221:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;492:13;508:16;-1:-1:-1;;;;;;;;;;;2311:15:0;;2288:49;508:16;492:32;-1:-1:-1;;;;;;543:19:0;;535:28;;;;;;617:4;611:11;657:14;654:1;649:3;636:36;751:1;748;732:14;727:3;720:5;713;700:53;779:16;832:4;829:1;824:3;809:28;860:6;880:28;;;;944:4;939:3;932:17;880:28;901:4;896:3;889:17;4489:185;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;4641:15:0;4489:185;;;-1:-1:-1;;;;;489:32:1;;;471:51;;459:2;444:18;4489:185:0;;;;;;;5281:112;;;;;;;;;;-1:-1:-1;5281:112:0;;;;;:::i;:::-;;:::i;:::-;;2145:199;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;2311:15:0;2145:199;2288:49;4849:235;;;;;;;;;;-1:-1:-1;4849:235:0;;;;;:::i;:::-;;:::i;5281:112::-;-1:-1:-1;;;;;;;;;;;4641:15:0;-1:-1:-1;;;;;4328:26:0;:10;-1:-1:-1;;;;;4328:26:0;;4320:35;;;;;;5358:27:::1;5369:15;5358:10;:27::i;:::-;5281:112:::0;:::o;4849:235::-;-1:-1:-1;;;;;;;;;;;4641:15:0;-1:-1:-1;;;;;4328:26:0;:10;-1:-1:-1;;;;;4328:26:0;;4320:35;;;;;;-1:-1:-1;;;;;4941:23:0;::::1;4933:32;;;::::0;::::1;;4976:34;5000:9;-1:-1:-1::0;;;;;;;;;;;5612:32:0;5597:58;4976:34:::1;5026:50;5052:12;-1:-1:-1::0;;;;;;;;;;;4641:15:0;;4617:50;5052:12:::1;5026:50;::::0;;-1:-1:-1;;;;;763:15:1;;;745:34;;815:15;;;810:2;795:18;;788:43;680:18;5026:50:0::1;;;;;;;4849:235:::0;:::o;2885:280::-;2953:29;2985:16;-1:-1:-1;;;;;;;;;;;2311:15:0;;2288:49;2985:16;2953:48;;3045:18;-1:-1:-1;;;;;3020:43:0;:21;-1:-1:-1;;;;;3020:43:0;;;3012:52;;;;;;3075:38;3094:18;-1:-1:-1;;;;;;;;;;;2664:36:0;2653:58;3075:38;3129:28;;-1:-1:-1;;;;;3129:28:0;;;;;;;;2885:280;;:::o;14:306:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;178:23;;-1:-1:-1;;;;;230:31:1;;220:42;;210:2;;281:6;273;266:22;210:2;309:5;84:236;-1:-1:-1;;;84:236:1:o
Swarm Source
ipfs://274a5501ae1c0c5ebbd93ed9cb2af2163d49f5e5c8c32ee51b83f89f8545606c
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.