More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 38,089 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Refill Ratified ... | 20280968 | 5 days ago | IN | 0 ETH | 0.00016489 | ||||
Refill Ratified ... | 20262987 | 7 days ago | IN | 0 ETH | 0.00048001 | ||||
Refill Ratified ... | 20198513 | 16 days ago | IN | 0 ETH | 0.00015033 | ||||
Refill Ratified ... | 20198505 | 16 days ago | IN | 0 ETH | 0.00019004 | ||||
Refill Ratified ... | 20198496 | 16 days ago | IN | 0 ETH | 0.00018177 | ||||
Ratify Mint | 20198490 | 16 days ago | IN | 0 ETH | 0.00037314 | ||||
Request Mint | 20198482 | 16 days ago | IN | 0 ETH | 0.0006444 | ||||
Refill Ratified ... | 20198480 | 16 days ago | IN | 0 ETH | 0.00019705 | ||||
Refill Ratified ... | 20198470 | 16 days ago | IN | 0 ETH | 0.00017832 | ||||
Refill Ratified ... | 20198463 | 16 days ago | IN | 0 ETH | 0.00019237 | ||||
Ratify Mint | 20198453 | 16 days ago | IN | 0 ETH | 0.00041711 | ||||
Refill Ratified ... | 20198444 | 16 days ago | IN | 0 ETH | 0.00016189 | ||||
Refill Ratified ... | 20198417 | 16 days ago | IN | 0 ETH | 0.00018303 | ||||
Request Mint | 20198409 | 16 days ago | IN | 0 ETH | 0.00090206 | ||||
Refill Ratified ... | 20198333 | 16 days ago | IN | 0 ETH | 0.00022032 | ||||
Refill Instant M... | 20198330 | 16 days ago | IN | 0 ETH | 0.00016842 | ||||
Ratify Mint | 20198270 | 16 days ago | IN | 0 ETH | 0.00047105 | ||||
Request Mint | 20198241 | 16 days ago | IN | 0 ETH | 0.00064426 | ||||
Set Can Burn | 20173564 | 20 days ago | IN | 0 ETH | 0.00029765 | ||||
Set Can Burn | 20024739 | 40 days ago | IN | 0 ETH | 0.00111601 | ||||
Refill Ratified ... | 19976002 | 47 days ago | IN | 0 ETH | 0.00123651 | ||||
Set Can Burn | 19975557 | 47 days ago | IN | 0 ETH | 0.00120724 | ||||
Set Can Burn | 19975435 | 47 days ago | IN | 0 ETH | 0.00215762 | ||||
Refill Ratified ... | 19974877 | 47 days ago | IN | 0 ETH | 0.0006576 | ||||
Refill Ratified ... | 19974851 | 47 days ago | IN | 0 ETH | 0.00066765 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
OwnedUpgradeabilityProxy
Compiler Version
v0.4.23+commit.124ca40d
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-06-24 */ /** *Submitted for verification at Etherscan.io on 2018-12-18 */ pragma solidity ^0.4.23; // This is the proxy contract for the TrustToken Registry // File: contracts/Proxy/Proxy.sol /** * @title Proxy * @dev Gives the possibility to delegate any call to a foreign implementation. */ contract Proxy { /** * @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); /** * @dev Fallback function allowing to perform a delegatecall to the given implementation. * This function will return whatever the implementation call returns */ function() external payable { address _impl = implementation(); require(_impl != address(0), "implementation contract not set"); 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) } } } } // File: contracts/Proxy/UpgradeabilityProxy.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 implementationPosition = keccak256("trueUSD.proxy.implementation"); /** * @dev Tells the address of the current implementation * @return address of the current implementation */ function implementation() public view returns (address impl) { bytes32 position = implementationPosition; 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 = implementationPosition; 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/Proxy/OwnedUpgradeabilityProxy.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 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 = keccak256("trueUSD.proxy.owner"); bytes32 private constant pendingProxyOwnerPosition = 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 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 the address of the 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) external onlyProxyOwner { _upgradeTo(implementation); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"proxyOwner","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingProxyOwner","outputs":[{"name":"pendingOwner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"implementation","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"impl","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimProxyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"currentOwner","type":"address"},{"indexed":false,"name":"pendingOwner","type":"address"}],"name":"NewPendingOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b5061002333640100000000610028810204565b61005d565b604080517f747275655553442e70726f78792e6f776e6572000000000000000000000000008152905190819003601301902055565b6105c78061006c6000396000f3006080604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146101085780630add8140146101395780633659cfe61461014e5780635c60da1b146101715780639965b3d614610186578063f1739cae1461019b575b60006100816101bc565b9050600160a060020a03811615156100e3576040805160e560020a62461bcd02815260206004820152601f60248201527f696d706c656d656e746174696f6e20636f6e7472616374206e6f742073657400604482015290519081900360640190fd5b60405136600082376000803683855af43d806000843e818015610104578184f35b8184fd5b34801561011457600080fd5b5061011d6101f2565b60408051600160a060020a039092168252519081900360200190f35b34801561014557600080fd5b5061011d610228565b34801561015a57600080fd5b5061016f600160a060020a036004351661025e565b005b34801561017d57600080fd5b5061011d6101bc565b34801561019257600080fd5b5061016f6102dc565b3480156101a757600080fd5b5061016f600160a060020a03600435166103b8565b604080517f747275655553442e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190205490565b604080517f747275655553442e70726f78792e6f776e657200000000000000000000000000815290519081900360130190205490565b604080517f747275655553442e70656e64696e672e70726f78792e6f776e657200000000008152905190819003601b0190205490565b6102666101f2565b600160a060020a031633600160a060020a03161415156102d0576040805160e560020a62461bcd02815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b6102d981610496565b50565b6102e4610228565b600160a060020a031633600160a060020a031614151561034e576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792070656e64696e672050726f7879204f776e65720000000000000000604482015290519081900360640190fd5b610356610228565b600160a060020a03166103676101f2565b600160a060020a03167f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd960405160405180910390a36103ac6103a7610228565b6104fc565b6103b66000610531565b565b6103c06101f2565b600160a060020a031633600160a060020a031614151561042a576040805160e560020a62461bcd02815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561043f57600080fd5b61044881610531565b7fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b6104716101f2565b60408051600160a060020a03928316815291841660208301528051918290030190a150565b60006104a06101bc565b9050600160a060020a0380821690831614156104bb57600080fd5b6104c482610566565b604051600160a060020a038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b604080517f747275655553442e70726f78792e6f776e6572000000000000000000000000008152905190819003601301902055565b604080517f747275655553442e70656e64696e672e70726f78792e6f776e657200000000008152905190819003601b01902055565b604080517f747275655553442e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c019020555600a165627a7a7230582066d4b5932adad66dd7b19bdf5b36c25e9e99e563f06c779eeef9427bb3c9c7670029
Deployed Bytecode
0x6080604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025313a281146101085780630add8140146101395780633659cfe61461014e5780635c60da1b146101715780639965b3d614610186578063f1739cae1461019b575b60006100816101bc565b9050600160a060020a03811615156100e3576040805160e560020a62461bcd02815260206004820152601f60248201527f696d706c656d656e746174696f6e20636f6e7472616374206e6f742073657400604482015290519081900360640190fd5b60405136600082376000803683855af43d806000843e818015610104578184f35b8184fd5b34801561011457600080fd5b5061011d6101f2565b60408051600160a060020a039092168252519081900360200190f35b34801561014557600080fd5b5061011d610228565b34801561015a57600080fd5b5061016f600160a060020a036004351661025e565b005b34801561017d57600080fd5b5061011d6101bc565b34801561019257600080fd5b5061016f6102dc565b3480156101a757600080fd5b5061016f600160a060020a03600435166103b8565b604080517f747275655553442e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190205490565b604080517f747275655553442e70726f78792e6f776e657200000000000000000000000000815290519081900360130190205490565b604080517f747275655553442e70656e64696e672e70726f78792e6f776e657200000000008152905190819003601b0190205490565b6102666101f2565b600160a060020a031633600160a060020a03161415156102d0576040805160e560020a62461bcd02815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b6102d981610496565b50565b6102e4610228565b600160a060020a031633600160a060020a031614151561034e576040805160e560020a62461bcd02815260206004820152601860248201527f6f6e6c792070656e64696e672050726f7879204f776e65720000000000000000604482015290519081900360640190fd5b610356610228565b600160a060020a03166103676101f2565b600160a060020a03167f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd960405160405180910390a36103ac6103a7610228565b6104fc565b6103b66000610531565b565b6103c06101f2565b600160a060020a031633600160a060020a031614151561042a576040805160e560020a62461bcd02815260206004820152601060248201527f6f6e6c792050726f7879204f776e657200000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038116151561043f57600080fd5b61044881610531565b7fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b6104716101f2565b60408051600160a060020a03928316815291841660208301528051918290030190a150565b60006104a06101bc565b9050600160a060020a0380821690831614156104bb57600080fd5b6104c482610566565b604051600160a060020a038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a25050565b604080517f747275655553442e70726f78792e6f776e6572000000000000000000000000008152905190819003601301902055565b604080517f747275655553442e70656e64696e672e70726f78792e6f776e657200000000008152905190819003601b01902055565b604080517f747275655553442e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c019020555600a165627a7a7230582066d4b5932adad66dd7b19bdf5b36c25e9e99e563f06c779eeef9427bb3c9c7670029
Deployed Bytecode Sourcemap
3332:3852:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;802:13;818:16;:14;:16::i;:::-;802:32;-1:-1:-1;;;;;;853:19:0;;;;845:63;;;;;-1:-1:-1;;;;;845:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:4;964:11;1010:12;1007:1;1002:3;989:34;1098:1;1095;1081:12;1076:3;1069:5;1064:3;1051:49;1126:14;1177:4;1174:1;1169:3;1154:28;1205:6;1225:28;;;;1289:4;1284:3;1277:17;1225:28;1246:4;1241:3;1234:17;4989:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4989:183:0;;;;;;;;-1:-1:-1;;;;;4989:183:0;;;;;;;;;;;;;;5280:211;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5280:211:0;;;;7069:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7069:112:0;-1:-1:-1;;;;;7069:112:0;;;;;;;2116:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2116:187:0;;;;6619:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6619:254:0;;;;6296:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6296:230:0;-1:-1:-1;;;;;6296:230:0;;;;;2116:187;1936:41;;;;;;;;;;;;;;;;2270:15;;2249:47::o;4989:183::-;4121:32;;;;;;;;;;;;;;;;5139:15;;5115:50::o;5280:211::-;4213:40;;;;;;;;;;;;;;;;5458:15;;5427:57::o;7069:112::-;4595:12;:10;:12::i;:::-;-1:-1:-1;;;;;4581:26:0;:10;-1:-1:-1;;;;;4581:26:0;;4573:55;;;;;;;-1:-1:-1;;;;;4573:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7147:26;7158:14;7147:10;:26::i;:::-;7069:112;:::o;6619:254::-;4813:19;:17;:19::i;:::-;-1:-1:-1;;;;;4799:33:0;:10;-1:-1:-1;;;;;4799:33:0;;4791:70;;;;;;;-1:-1:-1;;;;;4791:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6737:19;:17;:19::i;:::-;-1:-1:-1;;;;;6697:60:0;6723:12;:10;:12::i;:::-;-1:-1:-1;;;;;6697:60:0;;;;;;;;;;;6768:44;6792:19;:17;:19::i;:::-;6768:23;:44::i;:::-;6823:42;6862:1;6823:30;:42::i;:::-;6619:254::o;6296:230::-;4595:12;:10;:12::i;:::-;-1:-1:-1;;;;;4581:26:0;:10;-1:-1:-1;;;;;4581:26:0;;4573:55;;;;;;;-1:-1:-1;;;;;4573:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6389:22:0;;;;6381:31;;;;;;6423:40;6454:8;6423:30;:40::i;:::-;6479:39;6495:12;:10;:12::i;:::-;6479:39;;;-1:-1:-1;;;;;6479:39:0;;;;;;;;;;;;;;;;;;;;;6296:230;:::o;2841:276::-;2908:29;2940:16;:14;:16::i;:::-;2908:48;-1:-1:-1;;;;;;2975:42:0;;;;;;;;2967:51;;;;;;3029:37;3048:17;3029:18;:37::i;:::-;3082:27;;-1:-1:-1;;;;;3082:27:0;;;;;;;;2841:276;;:::o;5558:197::-;4121:32;;;;;;;;;;;;;;;;5706:31;5691:57::o;5822:225::-;4213:40;;;;;;;;;;;;;;;;5991:38;5976:64::o;2473:202::-;1936:41;;;;;;;;;;;;;;;;2622:35;2609:59::o
Swarm Source
bzzr://66d4b5932adad66dd7b19bdf5b36c25e9e99e563f06c779eeef9427bb3c9c767
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.