Overview
Max Total Supply
500,000,000 EMRX
Holders
319 (0.00%)
Transfers
-
0
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
TokenProxy
Compiler Version
v0.5.8+commit.23d335f2
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2019-08-23
*/
// File: contracts/OwnableProxy.sol
pragma solidity ^0.5.0;
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be aplied to your functions to restrict their use to
* the owner.
*/
contract OwnableProxy {
address private _proxyOwner;
address private _pendingProxyOwner;
event ProxyOwnershipTransferred(address indexed previousOwner, address indexed newOwner);
event NewPendingOwner(address indexed currentOwner, address indexed pendingOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
*/
constructor () internal {
_proxyOwner = msg.sender;
emit ProxyOwnershipTransferred(address(0), _proxyOwner);
}
/**
* @dev Returns the address of the current owner.
*/
function proxyOwner() public view returns (address) {
return _proxyOwner;
}
/**
* @dev Returns the address of the current owner.
*/
function pendingProxyOwner() public view returns (address) {
return _pendingProxyOwner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyProxyOwner() {
require(isProxyOwner(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Returns true if the caller is the current owner.
*/
function isProxyOwner() public view returns (bool) {
return msg.sender == _proxyOwner;
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferProxyOwnership(address newOwner) public onlyProxyOwner {
_transferProxyOwnership(newOwner);
emit NewPendingOwner(_proxyOwner, newOwner);
}
function claimProxyOwnership() public {
_claimProxyOwnership(msg.sender);
}
function initProxyOwnership(address newOwner) public {
require(_proxyOwner == address(0), "Ownable: already owned");
require(newOwner != address(0), "Ownable: new owner is the zero address");
_transferProxyOwnership(newOwner);
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
*/
function _transferProxyOwnership(address newOwner) internal {
require(newOwner != address(0), "Ownable: new owner is the zero address");
_pendingProxyOwner = newOwner;
}
function _claimProxyOwnership(address newOwner) internal {
require(newOwner == _pendingProxyOwner, "Claimed by wrong address");
emit ProxyOwnershipTransferred(_proxyOwner, newOwner);
_proxyOwner = newOwner;
_pendingProxyOwner = address(0);
}
}
// File: contracts/TokenProxy.sol
pragma solidity ^0.5.0;
/**
* @title Proxy
* @dev Gives the possibility to delegate any call to a foreign implementation.
*/
contract TokenProxy is OwnableProxy {
event Upgraded(address indexed implementation);
address public implementation;
function upgradeTo(address _address) public onlyProxyOwner{
require(_address != implementation, "New implementation cannot be the same as old");
implementation = _address;
emit Upgraded(_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));
assembly {
let ptr := mload(0x40)
calldatacopy(ptr, returndatasize, calldatasize)
let result := delegatecall(gas, _impl, ptr, calldatasize, returndatasize, returndatasize)
let size := returndatasize
returndatacopy(ptr, 0, size)
switch result
case 0 { revert(ptr, size) }
default { return(ptr, size) }
}
}
/*
function() external payable {
address position = implementation;
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
Contract ABI
API[{"constant":true,"inputs":[],"name":"proxyOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingProxyOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"upgradeTo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"initProxyOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isProxyOwner","outputs":[{"name":"","type":"bool"}],"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"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"ProxyOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"currentOwner","type":"address"},{"indexed":true,"name":"pendingOwner","type":"address"}],"name":"NewPendingOwner","type":"event"}]Contract Creation Code
60806040819052600080546001600160a01b03191633178082556001600160a01b0316917f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd9908290a361062c806100576000396000f3fe60806040526004361061007b5760003560e01c80635e55d96f1161004e5780635e55d96f146101445780638f4a3bcd146101775780639965b3d6146101a0578063f1739cae146101b55761007b565b8063025313a2146100b45780630add8140146100e55780633659cfe6146100fa5780635c60da1b1461012f575b6002546001600160a01b03168061009157600080fd5b604051363d82373d3d3683855af43d806000843e8180156100b0578184f35b8184fd5b3480156100c057600080fd5b506100c96101e8565b604080516001600160a01b039092168252519081900360200190f35b3480156100f157600080fd5b506100c96101f7565b34801561010657600080fd5b5061012d6004803603602081101561011d57600080fd5b50356001600160a01b0316610206565b005b34801561013b57600080fd5b506100c96102fc565b34801561015057600080fd5b5061012d6004803603602081101561016757600080fd5b50356001600160a01b031661030b565b34801561018357600080fd5b5061018c6103c0565b604080519115158252519081900360200190f35b3480156101ac57600080fd5b5061012d6103d1565b3480156101c157600080fd5b5061012d600480360360208110156101d857600080fd5b50356001600160a01b03166103dc565b6000546001600160a01b031690565b6001546001600160a01b031690565b61020e6103c0565b6102625760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6002546001600160a01b03828116911614156102b257604051600160e51b62461bcd02815260040180806020018281038252602c8152602001806105d5602c913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6002546001600160a01b031681565b6000546001600160a01b03161561036c5760408051600160e51b62461bcd02815260206004820152601660248201527f4f776e61626c653a20616c7265616479206f776e656400000000000000000000604482015290519081900360640190fd5b6001600160a01b0381166103b457604051600160e51b62461bcd0281526004018080602001828103825260268152602001806105af6026913960400191505060405180910390fd5b6103bd8161047d565b50565b6000546001600160a01b0316331490565b6103da336104e7565b565b6103e46103c0565b6104385760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6104418161047d565b600080546040516001600160a01b03808516939216917fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b91a350565b6001600160a01b0381166104c557604051600160e51b62461bcd0281526004018080602001828103825260268152602001806105af6026913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0382811691161461054c5760408051600160e51b62461bcd02815260206004820152601860248201527f436c61696d65642062792077726f6e6720616464726573730000000000000000604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd991a3600080546001600160a01b039092166001600160a01b031992831617905560018054909116905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734e657720696d706c656d656e746174696f6e2063616e6e6f74206265207468652073616d65206173206f6c64a165627a7a723058206ab544a2d5bea8abff86dc08ff8f7a6bdce11680535220fcad58aa9a5dd7b4a90029
Deployed Bytecode
0x60806040526004361061007b5760003560e01c80635e55d96f1161004e5780635e55d96f146101445780638f4a3bcd146101775780639965b3d6146101a0578063f1739cae146101b55761007b565b8063025313a2146100b45780630add8140146100e55780633659cfe6146100fa5780635c60da1b1461012f575b6002546001600160a01b03168061009157600080fd5b604051363d82373d3d3683855af43d806000843e8180156100b0578184f35b8184fd5b3480156100c057600080fd5b506100c96101e8565b604080516001600160a01b039092168252519081900360200190f35b3480156100f157600080fd5b506100c96101f7565b34801561010657600080fd5b5061012d6004803603602081101561011d57600080fd5b50356001600160a01b0316610206565b005b34801561013b57600080fd5b506100c96102fc565b34801561015057600080fd5b5061012d6004803603602081101561016757600080fd5b50356001600160a01b031661030b565b34801561018357600080fd5b5061018c6103c0565b604080519115158252519081900360200190f35b3480156101ac57600080fd5b5061012d6103d1565b3480156101c157600080fd5b5061012d600480360360208110156101d857600080fd5b50356001600160a01b03166103dc565b6000546001600160a01b031690565b6001546001600160a01b031690565b61020e6103c0565b6102625760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6002546001600160a01b03828116911614156102b257604051600160e51b62461bcd02815260040180806020018281038252602c8152602001806105d5602c913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6002546001600160a01b031681565b6000546001600160a01b03161561036c5760408051600160e51b62461bcd02815260206004820152601660248201527f4f776e61626c653a20616c7265616479206f776e656400000000000000000000604482015290519081900360640190fd5b6001600160a01b0381166103b457604051600160e51b62461bcd0281526004018080602001828103825260268152602001806105af6026913960400191505060405180910390fd5b6103bd8161047d565b50565b6000546001600160a01b0316331490565b6103da336104e7565b565b6103e46103c0565b6104385760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6104418161047d565b600080546040516001600160a01b03808516939216917fb3d55174552271a4f1aaf36b72f50381e892171636b3fb5447fe00e995e7a37b91a350565b6001600160a01b0381166104c557604051600160e51b62461bcd0281526004018080602001828103825260268152602001806105af6026913960400191505060405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b0382811691161461054c5760408051600160e51b62461bcd02815260206004820152601860248201527f436c61696d65642062792077726f6e6720616464726573730000000000000000604482015290519081900360640190fd5b600080546040516001600160a01b03808516939216917f5a3e66efaa1e445ebd894728a69d6959842ea1e97bd79b892797106e270efcd991a3600080546001600160a01b039092166001600160a01b031992831617905560018054909116905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734e657720696d706c656d656e746174696f6e2063616e6e6f74206265207468652073616d65206173206f6c64a165627a7a723058206ab544a2d5bea8abff86dc08ff8f7a6bdce11680535220fcad58aa9a5dd7b4a90029
Deployed Bytecode Sourcemap
3184:1657:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3803:14;;-1:-1:-1;;;;;3803:14:0;3836:19;3828:28;;;;;;3908:4;3902:11;3961:12;3945:14;3940:3;3927:47;4062:14;4046;4032:12;4027:3;4020:5;4015:3;4002:75;4103:14;4154:4;4151:1;4146:3;4131:28;4182:6;4202:28;;;;4266:4;4261:3;4254:17;4202:28;4223:4;4218:3;4211:17;1039:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1039:89:0;;;:::i;:::-;;;;-1:-1:-1;;;;;1039:89:0;;;;;;;;;;;;;;1209:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1209:103:0;;;:::i;3318:230::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3318:230:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3318:230:0;-1:-1:-1;;;;;3318:230:0;;:::i;:::-;;3280:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3280:29:0;;;:::i;2149:260::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2149:260:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2149:260:0;-1:-1:-1;;;;;2149:260:0;;:::i;1609:102::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1609:102:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;2052:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2052:89:0;;;:::i;1866:178::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1866:178:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:178:0;-1:-1:-1;;;;;1866:178:0;;:::i;1039:89::-;1082:7;1109:11;-1:-1:-1;;;;;1109:11:0;1039:89;:::o;1209:103::-;1286:18;;-1:-1:-1;;;;;1286:18:0;1209:103;:::o;3318:230::-;1450:14;:12;:14::i;:::-;1442:59;;;;;-1:-1:-1;;;;;1442:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3407:14;;-1:-1:-1;;;;;3395:26:0;;;3407:14;;3395:26;;3387:83;;;;-1:-1:-1;;;;;3387:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3481:14;:25;;-1:-1:-1;;;;;;3481:25:0;-1:-1:-1;;;;;3481:25:0;;;;;;;;3522:18;;;;-1:-1:-1;;3522:18:0;3318:230;:::o;3280:29::-;;;-1:-1:-1;;;;;3280:29:0;;:::o;2149:260::-;2244:1;2221:11;-1:-1:-1;;;;;2221:11:0;:25;2213:60;;;;;-1:-1:-1;;;;;2213:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2292:22:0;;2284:73;;;;-1:-1:-1;;;;;2284:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2368:33;2392:8;2368:23;:33::i;:::-;2149:260;:::o;1609:102::-;1654:4;1692:11;-1:-1:-1;;;;;1692:11:0;1678:10;:25;;1609:102::o;2052:89::-;2101:32;2122:10;2101:20;:32::i;:::-;2052:89::o;1866:178::-;1450:14;:12;:14::i;:::-;1442:59;;;;;-1:-1:-1;;;;;1442:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1949:33;1973:8;1949:23;:33::i;:::-;2014:11;;;1998:38;;-1:-1:-1;;;;;1998:38:0;;;;2014:11;;;1998:38;;;1866:178;:::o;2517:192::-;-1:-1:-1;;;;;2596:22:0;;2588:73;;;;-1:-1:-1;;;;;2588:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2672:18;:29;;-1:-1:-1;;;;;;2672:29:0;-1:-1:-1;;;;;2672:29:0;;;;;;;;;;2517:192::o;2717:282::-;2805:18;;-1:-1:-1;;;;;2793:30:0;;;2805:18;;2793:30;2785:67;;;;;-1:-1:-1;;;;;2785:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;2894:11;;;2868:48;;-1:-1:-1;;;;;2868:48:0;;;;2894:11;;;2868:48;;;2927:11;:22;;-1:-1:-1;;;;;2927:22:0;;;-1:-1:-1;;;;;;2927:22:0;;;;;;;2960:31;;;;;;;2717:282::o
Swarm Source
bzzr://6ab544a2d5bea8abff86dc08ff8f7a6bdce11680535220fcad58aa9a5dd7b4a9
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)