ETH Price: $3,248.70 (-2.41%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Emirex Token (EMRX) (@$0.2349)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer183979472023-10-21 9:59:47459 days ago1697882387IN
Emirex Token
0 ETH0.000349358.42393655
Transfer178108982023-07-31 5:27:47541 days ago1690781267IN
Emirex Token
0 ETH0.0004048912.85536589
Transfer173845152023-06-01 7:35:35601 days ago1685604935IN
Emirex Token
0 ETH0.0014256330.81793349
Transfer173775692023-05-31 8:07:59602 days ago1685520479IN
Emirex Token
0 ETH0.0019381530.57799638
Transfer173703822023-05-30 7:51:11603 days ago1685433071IN
Emirex Token
0 ETH0.0023476256.62392907
Transfer160399892022-11-24 12:58:47790 days ago1669294727IN
Emirex Token
0 ETH0.0006916910.91486269
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0003160110.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004157910.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004157910.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004157910.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004159110.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004157910.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004157910.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004157910.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0003157710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
Transfer160399682022-11-24 12:54:35790 days ago1669294475IN
Emirex Token
0 ETH0.0004156710.02600801
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TokenProxy

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *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

Contract ABI

[{"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"}]

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.