More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0xa4a94df0637ae3fca83276087be71244ef5bda1664106d714fb0fb3b42433aec | Claim | (pending) | 16 hrs ago | IN | 0 ETH | (Pending) | |||
Claim | 20403145 | 14 days ago | IN | 0 ETH | 0.00016118 | ||||
Claim | 20178861 | 45 days ago | IN | 0 ETH | 0.00042056 | ||||
Claim | 20151004 | 49 days ago | IN | 0 ETH | 0.00016917 | ||||
Claim | 20148290 | 50 days ago | IN | 0 ETH | 0.00036932 | ||||
Claim | 20141843 | 51 days ago | IN | 0 ETH | 0.00071969 | ||||
Claim | 20138612 | 51 days ago | IN | 0 ETH | 0.00030231 | ||||
Claim | 20137362 | 51 days ago | IN | 0 ETH | 0.00031408 | ||||
Claim | 19941013 | 79 days ago | IN | 0 ETH | 0.00113659 | ||||
Claim | 19912150 | 83 days ago | IN | 0 ETH | 0.00158369 | ||||
Claim | 19345098 | 162 days ago | IN | 0 ETH | 0.00399678 | ||||
Claim | 19007458 | 209 days ago | IN | 0 ETH | 0.00199382 | ||||
Claim | 18838301 | 233 days ago | IN | 0 ETH | 0.00291019 | ||||
Claim | 17935385 | 360 days ago | IN | 0 ETH | 0.00482028 | ||||
Claim | 17476164 | 424 days ago | IN | 0 ETH | 0.00144415 | ||||
Claim | 17416964 | 432 days ago | IN | 0 ETH | 0.00297862 | ||||
Claim | 17047884 | 484 days ago | IN | 0 ETH | 0.0031072 | ||||
Claim | 16644968 | 541 days ago | IN | 0 ETH | 0.00320681 | ||||
Claim | 16086673 | 619 days ago | IN | 0 ETH | 0.00121356 | ||||
Claim | 15811834 | 658 days ago | IN | 0 ETH | 0.00125421 | ||||
Claim | 15348221 | 726 days ago | IN | 0 ETH | 0.00234748 | ||||
Claim | 15176479 | 753 days ago | IN | 0 ETH | 0.00093685 | ||||
Claim | 15005334 | 781 days ago | IN | 0 ETH | 0.00217855 | ||||
Claim | 14844882 | 808 days ago | IN | 0 ETH | 0.00324628 | ||||
Claim | 14826801 | 811 days ago | IN | 0 ETH | 0.0026108 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
OwnedUpgradeabilityProxy
Compiler Version
v0.6.10+commit.00c0fcaf
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-07-24 */ // SPDX-License-Identifier: UNLICENSED // solhint-disable const-name-snakecase pragma solidity 0.6.10; /** * @title OwnedUpgradeabilityProxy * @dev This contract combines an upgradeability proxy with basic authorization control functionalities */ contract OwnedUpgradeabilityProxy { /** * @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 indexed previousOwner, address indexed newOwner); /** * @dev Event to show ownership transfer is pending * @param currentOwner representing the address of the current owner * @param pendingOwner representing the address of the pending owner */ event NewPendingOwner(address currentOwner, address pendingOwner); // Storage position of the owner and pendingOwner of the contract bytes32 private constant proxyOwnerPosition = 0x6279e8199720cf3557ecd8b58d667c8edc486bd1cf3ad59ea9ebdfcae0d0dfac; //keccak256("trueUSD.proxy.owner"); bytes32 private constant pendingProxyOwnerPosition = 0x8ddbac328deee8d986ec3a7b933a196f96986cb4ee030d86cc56431c728b83f4; //keccak256("trueUSD.pending.proxy.owner"); /** * @dev the constructor sets the original owner of the contract to the sender account. */ constructor() public { _setUpgradeabilityOwner(msg.sender); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyProxyOwner() { require(msg.sender == proxyOwner(), "only Proxy Owner"); _; } /** * @dev Throws if called by any account other than the pending owner. */ modifier onlyPendingProxyOwner() { require(msg.sender == pendingProxyOwner(), "only pending Proxy Owner"); _; } /** * @dev Tells the address of the owner * @return owner the address of the owner */ function proxyOwner() public view returns (address owner) { bytes32 position = proxyOwnerPosition; assembly { owner := sload(position) } } /** * @dev Tells the address of the owner * @return pendingOwner the address of the pending owner */ function pendingProxyOwner() public view returns (address pendingOwner) { bytes32 position = pendingProxyOwnerPosition; assembly { pendingOwner := sload(position) } } /** * @dev Sets the address of the owner */ function _setUpgradeabilityOwner(address newProxyOwner) internal { bytes32 position = proxyOwnerPosition; assembly { sstore(position, newProxyOwner) } } /** * @dev Sets the address of the owner */ function _setPendingUpgradeabilityOwner(address newPendingProxyOwner) internal { bytes32 position = pendingProxyOwnerPosition; assembly { sstore(position, newPendingProxyOwner) } } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. *changes the pending owner to newOwner. But doesn't actually transfer * @param newOwner The address to transfer ownership to. */ function transferProxyOwnership(address newOwner) external onlyProxyOwner { require(newOwner != address(0)); _setPendingUpgradeabilityOwner(newOwner); emit NewPendingOwner(proxyOwner(), newOwner); } /** * @dev Allows the pendingOwner to claim ownership of the proxy */ function claimProxyOwnership() external onlyPendingProxyOwner { emit ProxyOwnershipTransferred(proxyOwner(), pendingProxyOwner()); _setUpgradeabilityOwner(pendingProxyOwner()); _setPendingUpgradeabilityOwner(address(0)); } /** * @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 virtual onlyProxyOwner { address currentImplementation; bytes32 position = implementationPosition; assembly { currentImplementation := sload(position) } require(currentImplementation != implementation); assembly { sstore(position, implementation) } emit Upgraded(implementation); } /** * @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 implementationPosition = 0x6e41e0fbe643dfdb6043698bf865aada82dc46b953f754a3468eaa272a362dc7; //keccak256("trueUSD.proxy.implementation"); function implementation() public view returns (address impl) { bytes32 position = implementationPosition; assembly { impl := sload(position) } } /** * @dev Fallback functions allowing to perform a delegatecall to the given implementation. * This function will return whatever the implementation call returns */ fallback() external payable { proxyCall(); } receive() external payable { proxyCall(); } function proxyCall() internal { bytes32 position = implementationPosition; assembly { let ptr := mload(0x40) calldatacopy(ptr, returndatasize(), calldatasize()) let result := delegatecall(gas(), sload(position), ptr, calldatasize(), returndatasize(), returndatasize()) returndatacopy(ptr, 0, returndatasize()) switch result case 0 { revert(ptr, returndatasize()) } default { return(ptr, returndatasize()) } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"currentOwner","type":"address"},{"indexed":false,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"NewPendingOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"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":"claimProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"impl","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingProxyOwner","outputs":[{"internalType":"address","name":"pendingOwner","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50610023336001600160e01b0361002816565b61004c565b7f6279e8199720cf3557ecd8b58d667c8edc486bd1cf3ad59ea9ebdfcae0d0dfac55565b61062d8061005b6000396000f3fe6080604052600436106100695760003560e01c80635c60da1b116100435780635c60da1b146101135780639965b3d614610128578063f1739cae1461013d57610078565b8063025313a2146100805780630add8140146100be5780633659cfe6146100d357610078565b366100785761007661017d565b005b61007661017d565b34801561008c57600080fd5b506100956101c2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100ca57600080fd5b506100956101e7565b3480156100df57600080fd5b50610076600480360360208110156100f657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661020c565b34801561011f57600080fd5b50610095610340565b34801561013457600080fd5b50610076610365565b34801561014957600080fd5b506100766004803603602081101561016057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048a565b6040517f6e41e0fbe643dfdb6043698bf865aada82dc46b953f754a3468eaa272a362dc790363d82373d3d368385545af43d6000833e8080156101be573d83f35b3d83fd5b7f6279e8199720cf3557ecd8b58d667c8edc486bd1cf3ad59ea9ebdfcae0d0dfac5490565b7f8ddbac328deee8d986ec3a7b933a196f96986cb4ee030d86cc56431c728b83f45490565b6102146101c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b7f6e41e0fbe643dfdb6043698bf865aada82dc46b953f754a3468eaa272a362dc780549073ffffffffffffffffffffffffffffffffffffffff80831690841614156102f757600080fd5b82815560405173ffffffffffffffffffffffffffffffffffffffff8416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2505050565b7f6e41e0fbe643dfdb6043698bf865aada82dc46b953f754a3468eaa272a362dc75490565b61036d6101e7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461040657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792070656e64696e672050726f7879204f776e65720000000000000000604482015290519081900360640190fd5b61040e6101e7565b73ffffffffffffffffffffffffffffffffffffffff1661042c6101c2565b73ffffffffffffffffffffffffffffffffffffffff167f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd960405160405180910390a361047e6104796101e7565b6105af565b61048860006105d3565b565b6104926101c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461052b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661054b57600080fd5b610554816105d3565b7fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b61057d6101c2565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a150565b7f6279e8199720cf3557ecd8b58d667c8edc486bd1cf3ad59ea9ebdfcae0d0dfac55565b7f8ddbac328deee8d986ec3a7b933a196f96986cb4ee030d86cc56431c728b83f45556fea2646970667358221220e5eff75b25e3b71bbcb922cc3934d899998810633a40b92461d6b52ba63b5c9d64736f6c634300060a0033
Deployed Bytecode
0x6080604052600436106100695760003560e01c80635c60da1b116100435780635c60da1b146101135780639965b3d614610128578063f1739cae1461013d57610078565b8063025313a2146100805780630add8140146100be5780633659cfe6146100d357610078565b366100785761007661017d565b005b61007661017d565b34801561008c57600080fd5b506100956101c2565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100ca57600080fd5b506100956101e7565b3480156100df57600080fd5b50610076600480360360208110156100f657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661020c565b34801561011f57600080fd5b50610095610340565b34801561013457600080fd5b50610076610365565b34801561014957600080fd5b506100766004803603602081101561016057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661048a565b6040517f6e41e0fbe643dfdb6043698bf865aada82dc46b953f754a3468eaa272a362dc790363d82373d3d368385545af43d6000833e8080156101be573d83f35b3d83fd5b7f6279e8199720cf3557ecd8b58d667c8edc486bd1cf3ad59ea9ebdfcae0d0dfac5490565b7f8ddbac328deee8d986ec3a7b933a196f96986cb4ee030d86cc56431c728b83f45490565b6102146101c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102ad57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b7f6e41e0fbe643dfdb6043698bf865aada82dc46b953f754a3468eaa272a362dc780549073ffffffffffffffffffffffffffffffffffffffff80831690841614156102f757600080fd5b82815560405173ffffffffffffffffffffffffffffffffffffffff8416907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2505050565b7f6e41e0fbe643dfdb6043698bf865aada82dc46b953f754a3468eaa272a362dc75490565b61036d6101e7565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461040657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6f6e6c792070656e64696e672050726f7879204f776e65720000000000000000604482015290519081900360640190fd5b61040e6101e7565b73ffffffffffffffffffffffffffffffffffffffff1661042c6101c2565b73ffffffffffffffffffffffffffffffffffffffff167f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd960405160405180910390a361047e6104796101e7565b6105af565b61048860006105d3565b565b6104926101c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461052b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff811661054b57600080fd5b610554816105d3565b7fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b61057d6101c2565b6040805173ffffffffffffffffffffffffffffffffffffffff928316815291841660208301528051918290030190a150565b7f6279e8199720cf3557ecd8b58d667c8edc486bd1cf3ad59ea9ebdfcae0d0dfac55565b7f8ddbac328deee8d986ec3a7b933a196f96986cb4ee030d86cc56431c728b83f45556fea2646970667358221220e5eff75b25e3b71bbcb922cc3934d899998810633a40b92461d6b52ba63b5c9d64736f6c634300060a0033
Deployed Bytecode Sourcemap
259:5976:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5584:11;:9;:11::i;:::-;259:5976;;5519:11;:9;:11::i;2052:183::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2367:211;;;;;;;;;;;;;:::i;4169:434::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4169:434:0;;;;:::i;5094:189::-;;;;;;;;;;;;;:::i;3716:254::-;;;;;;;;;;;;;:::i;3391:230::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3391:230:0;;;;:::i;5611:621::-;5747:4;5741:11;4974:66;;5802:14;5784:16;5741:11;5766:51;5921:16;5903;5887:14;5882:3;5871:8;5865:15;5858:5;5845:93;5975:16;5972:1;5967:3;5952:40;6015:6;6039:78;;;;6178:16;6173:3;6166:29;6039:78;6081:16;6076:3;6069:29;2052:183;1029:66;2202:15;;2178:50::o;2367:211::-;1191:66;2545:15;;2514:57::o;4169:434::-;1647:12;:10;:12::i;:::-;1633:26;;:10;:26;;;1625:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4974:66:::1;4394:15:::0;;;4438:39:::1;::::0;;::::1;::::0;;::::1;;;4430:48;;;::::0;::::1;;4513:32:::0;;;4571:24:::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;1691:1;;4169:434:::0;:::o;5094:189::-;4974:66;5250:15;;5227:49::o;3716:254::-;1867:19;:17;:19::i;:::-;1853:33;;:10;:33;;;1845:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3834:19:::1;:17;:19::i;:::-;3794:60;;3820:12;:10;:12::i;:::-;3794:60;;;;;;;;;;;;3865:44;3889:19;:17;:19::i;:::-;3865:23;:44::i;:::-;3920:42;3959:1;3920:30;:42::i;:::-;3716:254::o:0;3391:230::-;1647:12;:10;:12::i;:::-;1633:26;;:10;:26;;;1625:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3484:22:::1;::::0;::::1;3476:31;;;::::0;::::1;;3518:40;3549:8;3518:30;:40::i;:::-;3574:39;3590:12;:10;:12::i;:::-;3574:39;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;;::::0;::::1;::::0;;;;;;;;;::::1;3391:230:::0;:::o;2647:197::-;1029:66;2795:31;2780:57::o;2913:225::-;1191:66;3082:38;3067:64::o
Swarm Source
ipfs://e5eff75b25e3b71bbcb922cc3934d899998810633a40b92461d6b52ba63b5c9d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $0.088136 | 31,265,391.54 | $2,755,606.55 |
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.