ETH Price: $3,337.93 (-1.17%)
Gas: 6.46 Gwei

Token

Epocum (EPM)
 

Overview

Max Total Supply

1,976,481 EPM

Holders

3,614

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
100 EPM

Value
$0.00
0x9cb4f96ea7e45348886ecdda29aa726c7c428f2b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SmartEPM

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-02-18
*/

pragma solidity ^0.4.18;

/*
    Owned contract interface
*/
contract IOwned {
    // this function isn't abstract since the compiler emits automatically generated getter functions as external
    function owner() public constant returns (address owner) { owner; }

    function transferOwnership(address _newOwner) public;
    function acceptOwnership() public;
}

/*
    ERC20 Standard Token interface
*/
contract IERC20Token {
    // these functions aren't abstract since the compiler emits automatically generated getter functions as external
    function name() public constant returns (string name) { name; }
    function symbol() public constant returns (string symbol) { symbol; }
    function decimals() public constant returns (uint8 decimals) { decimals; }
    function totalSupply() public constant returns (uint256 totalSupply) { totalSupply; }
    function balanceOf(address _owner) public constant returns (uint256 balance) { _owner; balance; }
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { _owner; _spender; remaining; }

    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
}

/*
    Token Holder interface
*/
contract ITokenHolder is IOwned {
    function withdrawTokens(IERC20Token _token, address _to, uint256 _amount) public;
}

/*
    Smart Token interface
*/
contract ISmartToken is ITokenHolder, IERC20Token {
    function disableTransfers(bool _disable) public;
    function issue(address _to, uint256 _amount) public;
    function destroy(address _from, uint256 _amount) public;
}

/*
    Overflow protected math functions
*/
contract SafeMath {
    /**
        constructor
    */
    function SafeMath() {
    }

    /**
        @dev returns the sum of _x and _y, asserts if the calculation overflows

        @param _x   value 1
        @param _y   value 2

        @return sum
    */
    function safeAdd(uint256 _x, uint256 _y) internal returns (uint256) {
        uint256 z = _x + _y;
        assert(z >= _x);
        return z;
    }

    /**
        @dev returns the difference of _x minus _y, asserts if the subtraction results in a negative number

        @param _x   minuend
        @param _y   subtrahend

        @return difference
    */
    function safeSub(uint256 _x, uint256 _y) internal returns (uint256) {
        assert(_x >= _y);
        return _x - _y;
    }

    /**
        @dev returns the product of multiplying _x by _y, asserts if the calculation overflows

        @param _x   factor 1
        @param _y   factor 2

        @return product
    */
    function safeMul(uint256 _x, uint256 _y) internal returns (uint256) {
        uint256 z = _x * _y;
        assert(_x == 0 || z / _x == _y);
        return z;
    }
}

/**
    ERC20 Standard Token implementation
*/
contract ERC20Token is IERC20Token, SafeMath {
    string public standard = 'Token 0.1';
    string public name = '';
    string public symbol = '';
    uint8 public decimals = 0;
    uint256 public totalSupply = 0;
    uint256 public maxSupplyGenerable = 1000000000*10**18;
    
    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) public allowance;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    /**
        @dev constructor

        @param _name        token name
        @param _symbol      token symbol
        @param _decimals    decimal points, for display purposes
    */
    function ERC20Token(string _name, string _symbol, uint8 _decimals) {
        require(bytes(_name).length > 0 && bytes(_symbol).length > 0); // validate input

        name = _name;
        symbol = _symbol;
        decimals = _decimals;
    }

    // validates an address - currently only checks that it isn't null
    modifier validAddress(address _address) {
        require(_address != 0x0);
        _;
    }

    /**
        @dev send coins
        throws on any error rather then return a false flag to minimize user errors

        @param _to      target address
        @param _value   transfer amount

        @return true if the transfer was successful, false if it wasn't
    */
    function transfer(address _to, uint256 _value)
        public
        validAddress(_to)
        returns (bool success)
    {
        balanceOf[msg.sender] = safeSub(balanceOf[msg.sender], _value);
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
        @dev an account/contract attempts to get the coins
        throws on any error rather then return a false flag to minimize user errors

        @param _from    source address
        @param _to      target address
        @param _value   transfer amount

        @return true if the transfer was successful, false if it wasn't
    */
    function transferFrom(address _from, address _to, uint256 _value)
        public
        validAddress(_from)
        validAddress(_to)
        returns (bool success)
    {
        allowance[_from][msg.sender] = safeSub(allowance[_from][msg.sender], _value);
        balanceOf[_from] = safeSub(balanceOf[_from], _value);
        balanceOf[_to] = safeAdd(balanceOf[_to], _value);
        Transfer(_from, _to, _value);
        return true;
    }

    /**
        @dev allow another account/contract to spend some tokens on your behalf
        throws on any error rather then return a false flag to minimize user errors

        also, to minimize the risk of the approve/transferFrom attack vector
        (see https://docs.google.com/document/d/1YLPtQxZu1UAvO9cZ1O2RPXBbT0mooh4DYKjA_jp-RLM/), approve has to be called twice
        in 2 separate transactions - once to change the allowance to 0 and secondly to change it to the new allowance value

        @param _spender approved address
        @param _value   allowance amount

        @return true if the approval was successful, false if it wasn't
    */
    function approve(address _spender, uint256 _value)
        public
        validAddress(_spender)
        returns (bool success)
    {
        // if the allowance isn't 0, it can only be updated to 0 to prevent an allowance change immediately after withdrawal
        require(_value == 0 || allowance[msg.sender][_spender] == 0);

        allowance[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }
}

/*
    Provides support and utilities for contract ownership
*/
contract Owned is IOwned {
    address public owner;
    address public newOwner;

    event OwnerUpdate(address _prevOwner, address _newOwner);

    /**
        @dev constructor
    */
    function Owned() {
        owner = msg.sender;
    }

    // allows execution by the owner only
    modifier ownerOnly {
        assert(msg.sender == owner);
        _;
    }

    /**
        @dev allows transferring the contract ownership
        the new owner still need to accept the transfer
        can only be called by the contract owner

        @param _newOwner    new contract owner
    */
    function transferOwnership(address _newOwner) public ownerOnly {
        require(_newOwner != owner);
        newOwner = _newOwner;
    }

    /**
        @dev used by a new owner to accept an ownership transfer
    */
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        OwnerUpdate(owner, newOwner);
        owner = newOwner;
        newOwner = 0x0;
    }
}

/*
    We consider every contract to be a 'token holder' since it's currently not possible
    for a contract to deny receiving tokens.

    The TokenHolder's contract sole purpose is to provide a safety mechanism that allows
    the owner to send tokens that were sent to the contract by mistake back to their sender.
*/
contract TokenHolder is ITokenHolder, Owned {
    /**
        @dev constructor
    */
    function TokenHolder() {
    }

    // validates an address - currently only checks that it isn't null
    modifier validAddress(address _address) {
        require(_address != 0x0);
        _;
    }

    // verifies that the address is different than this contract address
    modifier notThis(address _address) {
        require(_address != address(this));
        _;
    }

    /**
        @dev withdraws tokens held by the contract and sends them to an account
        can only be called by the owner

        @param _token   ERC20 token contract address
        @param _to      account to receive the new amount
        @param _amount  amount to withdraw
    */
    function withdrawTokens(IERC20Token _token, address _to, uint256 _amount)
        public
        ownerOnly
        validAddress(_token)
        validAddress(_to)
        notThis(_to)
    {
        assert(_token.transfer(_to, _amount));
    }
}

/*
    Smart Token v0.2

    'Owned' is specified here for readability reasons
*/
contract SmartToken is ISmartToken, ERC20Token, Owned, TokenHolder {
    string public version = '0.2';

    bool public transfersEnabled = true;    // true if transfer/transferFrom are enabled, false if not

    // triggered when a smart token is deployed - the _token address is defined for forward compatibility, in case we want to trigger the event from a factory
    event NewSmartToken(address _token);
    // triggered when the total supply is increased
    event Issuance(uint256 _amount);
    // triggered when the total supply is decreased
    event Destruction(uint256 _amount);

    /**
        @dev constructor

        @param _name       token name
        @param _symbol     token short symbol, 1-6 characters
        @param _decimals   for display purposes only
    */
    function SmartToken(string _name, string _symbol, uint8 _decimals)
        ERC20Token(_name, _symbol, _decimals)
    {
        require(bytes(_symbol).length <= 6); // validate input
        NewSmartToken(address(this));
    }

    // allows execution only when transfers aren't disabled
    modifier transfersAllowed {
        assert(transfersEnabled);
        _;
    }
    
    /**
        @dev disables/enables transfers
        can only be called by the contract owner

        @param _disable    true to disable transfers, false to enable them
    */
    function disableTransfers(bool _disable) public ownerOnly {
        transfersEnabled = !_disable;
    }

    /**
        @dev increases the token supply and sends the new tokens to an account
        can only be called by the contract owner

        @param _to         account to receive the new amount
        @param _amount     amount to increase the supply by
    */
    function issue(address _to, uint256 _amount)
        public
        ownerOnly
        validAddress(_to)
        notThis(_to)
    {
        totalSupply = safeAdd(totalSupply, _amount);
        //Total supply can't be over 1 Billion
        if (totalSupply > maxSupplyGenerable) revert();
        balanceOf[_to] = safeAdd(balanceOf[_to], _amount);

        Issuance(_amount);
        Transfer(this, _to, _amount);
    }

    /**
        @dev removes tokens from an account and decreases the token supply
        can only be called by the contract owner

        @param _from       account to remove the amount from
        @param _amount     amount to decrease the supply by
    */
    function destroy(address _from, uint256 _amount)
        public
        ownerOnly
    {
        balanceOf[_from] = safeSub(balanceOf[_from], _amount);
        totalSupply = safeSub(totalSupply, _amount);

        Transfer(_from, this, _amount);
        Destruction(_amount);
    }

    // ERC20 standard method overrides with some extra functionality

    /**
        @dev send coins
        throws on any error rather then return a false flag to minimize user errors
        note that when transferring to the smart token's address, the coins are actually destroyed

        @param _to      target address
        @param _value   transfer amount

        @return true if the transfer was successful, false if it wasn't
    */
    function transfer(address _to, uint256 _value) public transfersAllowed returns (bool success) {
        assert(super.transfer(_to, _value));

        // transferring to the contract address destroys tokens
        if (_to == address(this)) {
            balanceOf[_to] -= _value;
            totalSupply -= _value;
            Destruction(_value);
        }

        return true;
    }

    /**
        @dev an account/contract attempts to get the coins
        throws on any error rather then return a false flag to minimize user errors
        note that when transferring to the smart token's address, the coins are actually destroyed

        @param _from    source address
        @param _to      target address
        @param _value   transfer amount

        @return true if the transfer was successful, false if it wasn't
    */
    function transferFrom(address _from, address _to, uint256 _value) public transfersAllowed returns (bool success) {
        assert(super.transferFrom(_from, _to, _value));

        // transferring to the contract address destroys tokens
        if (_to == address(this)) {
            balanceOf[_to] -= _value;
            totalSupply -= _value;
            Destruction(_value);
        }

        return true;
    }
    
}

/// @title $Epm Smart Token
contract SmartEPM is SmartToken {
    function SmartEPM() SmartToken('Epocum', 'EPM', 18) {
        disableTransfers(false);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_disable","type":"bool"}],"name":"disableTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSupplyGenerable","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_amount","type":"uint256"}],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"transfersEnabled","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_token","type":"address"}],"name":"NewSmartToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Issuance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_amount","type":"uint256"}],"name":"Destruction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

606060405260408051908101604052600981527f546f6b656e20302e310000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620002a4565b50602060405190810160405260008152600190805162000072929160200190620002a4565b50602060405190810160405260008152600290805162000097929160200190620002a4565b506003805460ff1916905560006004556b033b2e3c9fd0803ce800000060055560408051908101604052600381527f302e3200000000000000000000000000000000000000000000000000000000006020820152600a90805162000100929160200190620002a4565b50600b805460ff1916600117905534156200011a57600080fd5b604080519081016040908152600682527f45706f63756d000000000000000000000000000000000000000000000000000060208301528051908101604052600381527f45504d000000000000000000000000000000000000000000000000000000000060208201526012828282600083511180156200019a575060008251115b1515620001a657600080fd5b6001838051620001bb929160200190620002a4565b506002828051620001d1929160200190620002a4565b506003805460ff191660ff92909216919091179055505060088054600160a060020a03191633600160a060020a03161790556006825111156200021357600080fd5b7ff4cd1f8571e8d9c97ffcb81558807ab73f9803d54de5da6a0420593c82a4a9f030604051600160a060020a03909116815260200160405180910390a1505050620002736000620002796401000000000262000571176401000000009004565b62000349565b60085433600160a060020a039081169116146200029257fe5b600b805460ff19169115919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002e757805160ff191683800117855562000317565b8280016001018555821562000317579182015b8281111562000317578251825591602001919060010190620002fa565b506200032592915062000329565b5090565b6200034691905b8082111562000325576000815560010162000330565b90565b610ed880620003596000396000f30060606040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610121578063095ea7b3146101ab5780631608f18f146101e157806318160ddd146101fb57806323b872dd14610220578063313ce5671461024857806334e4c06d1461027157806354fd4d50146102845780635a3b7e42146102975780635e35359e146102aa57806370a08231146102d257806379ba5097146102f1578063867904b4146103045780638da5cb5b1461032657806395d89b4114610355578063a24835d114610368578063a9059cbb1461038a578063bef97c87146103ac578063d4ee1d90146103bf578063dd62ed3e146103d2578063f2fde38b146103f7575b600080fd5b341561012c57600080fd5b610134610416565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610170578082015183820152602001610158565b50505050905090810190601f16801561019d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101b657600080fd5b6101cd600160a060020a03600435166024356104b4565b604051901515815260200160405180910390f35b34156101ec57600080fd5b6101f96004351515610571565b005b341561020657600080fd5b61020e61059b565b60405190815260200160405180910390f35b341561022b57600080fd5b6101cd600160a060020a03600435811690602435166044356105a1565b341561025357600080fd5b61025b610647565b60405160ff909116815260200160405180910390f35b341561027c57600080fd5b61020e610650565b341561028f57600080fd5b610134610656565b34156102a257600080fd5b6101346106c1565b34156102b557600080fd5b6101f9600160a060020a036004358116906024351660443561072c565b34156102dd57600080fd5b61020e600160a060020a0360043516610833565b34156102fc57600080fd5b6101f9610845565b341561030f57600080fd5b6101f9600160a060020a03600435166024356108ec565b341561033157600080fd5b610339610a0b565b604051600160a060020a03909116815260200160405180910390f35b341561036057600080fd5b610134610a1a565b341561037357600080fd5b6101f9600160a060020a0360043516602435610a85565b341561039557600080fd5b6101cd600160a060020a0360043516602435610b4f565b34156103b757600080fd5b6101cd610bf3565b34156103ca57600080fd5b610339610bfc565b34156103dd57600080fd5b61020e600160a060020a0360043581169060243516610c0b565b341561040257600080fd5b6101f9600160a060020a0360043516610c28565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104ac5780601f10610481576101008083540402835291602001916104ac565b820191906000526020600020905b81548152906001019060200180831161048f57829003601f168201915b505050505081565b600082600160a060020a03811615156104cc57600080fd5b8215806104fc5750600160a060020a03338116600090815260076020908152604080832093881683529290522054155b151561050757600080fd5b600160a060020a03338116600081815260076020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35060019392505050565b60085433600160a060020a0390811691161461058957fe5b600b805460ff19169115919091179055565b60045481565b600b5460009060ff1615156105b257fe5b6105bd848484610c8a565b15156105c557fe5b30600160a060020a031683600160a060020a0316141561063d57600160a060020a03831660009081526006602052604090819020805484900390556004805484900390557f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539083905190815260200160405180910390a15b5060019392505050565b60035460ff1681565b60055481565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104ac5780601f10610481576101008083540402835291602001916104ac565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104ac5780601f10610481576101008083540402835291602001916104ac565b60085433600160a060020a0390811691161461074457fe5b82600160a060020a038116151561075a57600080fd5b82600160a060020a038116151561077057600080fd5b8330600160a060020a031681600160a060020a03161415151561079257600080fd5b85600160a060020a031663a9059cbb86866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080857600080fd5b6102c65a03f1151561081957600080fd5b50505060405180519050151561082b57fe5b505050505050565b60066020526000908152604090205481565b60095433600160a060020a0390811691161461086057600080fd5b6008546009547f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a1600980546008805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60085433600160a060020a0390811691161461090457fe5b81600160a060020a038116151561091a57600080fd5b8230600160a060020a031681600160a060020a03161415151561093c57600080fd5b61094860045484610daa565b600481905560055490111561095c57600080fd5b600160a060020a03841660009081526006602052604090205461097f9084610daa565b600160a060020a03851660009081526006602052604090819020919091557f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc39084905190815260200160405180910390a183600160a060020a031630600160a060020a0316600080516020610e8d8339815191528560405190815260200160405180910390a350505050565b600854600160a060020a031681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104ac5780601f10610481576101008083540402835291602001916104ac565b60085433600160a060020a03908116911614610a9d57fe5b600160a060020a038216600090815260066020526040902054610ac09082610dc0565b600160a060020a038316600090815260066020526040902055600454610ae69082610dc0565b600455600160a060020a03308116908316600080516020610e8d8339815191528360405190815260200160405180910390a37f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34538160405190815260200160405180910390a15050565b600b5460009060ff161515610b6057fe5b610b6a8383610dd2565b1515610b7257fe5b30600160a060020a031683600160a060020a03161415610bea57600160a060020a03831660009081526006602052604090819020805484900390556004805484900390557f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539083905190815260200160405180910390a15b50600192915050565b600b5460ff1681565b600954600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b60085433600160a060020a03908116911614610c4057fe5b600854600160a060020a0382811691161415610c5b57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600083600160a060020a0381161515610ca257600080fd5b83600160a060020a0381161515610cb857600080fd5b600160a060020a0380871660009081526007602090815260408083203390941683529290522054610ce99085610dc0565b600160a060020a038088166000818152600760209081526040808320339095168352938152838220949094559081526006909252902054610d2a9085610dc0565b600160a060020a038088166000908152600660205260408082209390935590871681522054610d599085610daa565b600160a060020a0380871660008181526006602052604090819020939093559190881690600080516020610e8d8339815191529087905190815260200160405180910390a350600195945050505050565b600082820183811015610db957fe5b9392505050565b600081831015610dcc57fe5b50900390565b600082600160a060020a0381161515610dea57600080fd5b600160a060020a033316600090815260066020526040902054610e0d9084610dc0565b600160a060020a033381166000908152600660205260408082209390935590861681522054610e3c9084610daa565b600160a060020a038086166000818152600660205260409081902093909355913390911690600080516020610e8d8339815191529086905190815260200160405180910390a350600193925050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c792107881d45b2a81b6a8c97fdaedfa055b27b4dcd7f5d0dd994cbd8bbb9a730029

Deployed Bytecode

0x60606040526004361061011c5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610121578063095ea7b3146101ab5780631608f18f146101e157806318160ddd146101fb57806323b872dd14610220578063313ce5671461024857806334e4c06d1461027157806354fd4d50146102845780635a3b7e42146102975780635e35359e146102aa57806370a08231146102d257806379ba5097146102f1578063867904b4146103045780638da5cb5b1461032657806395d89b4114610355578063a24835d114610368578063a9059cbb1461038a578063bef97c87146103ac578063d4ee1d90146103bf578063dd62ed3e146103d2578063f2fde38b146103f7575b600080fd5b341561012c57600080fd5b610134610416565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610170578082015183820152602001610158565b50505050905090810190601f16801561019d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101b657600080fd5b6101cd600160a060020a03600435166024356104b4565b604051901515815260200160405180910390f35b34156101ec57600080fd5b6101f96004351515610571565b005b341561020657600080fd5b61020e61059b565b60405190815260200160405180910390f35b341561022b57600080fd5b6101cd600160a060020a03600435811690602435166044356105a1565b341561025357600080fd5b61025b610647565b60405160ff909116815260200160405180910390f35b341561027c57600080fd5b61020e610650565b341561028f57600080fd5b610134610656565b34156102a257600080fd5b6101346106c1565b34156102b557600080fd5b6101f9600160a060020a036004358116906024351660443561072c565b34156102dd57600080fd5b61020e600160a060020a0360043516610833565b34156102fc57600080fd5b6101f9610845565b341561030f57600080fd5b6101f9600160a060020a03600435166024356108ec565b341561033157600080fd5b610339610a0b565b604051600160a060020a03909116815260200160405180910390f35b341561036057600080fd5b610134610a1a565b341561037357600080fd5b6101f9600160a060020a0360043516602435610a85565b341561039557600080fd5b6101cd600160a060020a0360043516602435610b4f565b34156103b757600080fd5b6101cd610bf3565b34156103ca57600080fd5b610339610bfc565b34156103dd57600080fd5b61020e600160a060020a0360043581169060243516610c0b565b341561040257600080fd5b6101f9600160a060020a0360043516610c28565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104ac5780601f10610481576101008083540402835291602001916104ac565b820191906000526020600020905b81548152906001019060200180831161048f57829003601f168201915b505050505081565b600082600160a060020a03811615156104cc57600080fd5b8215806104fc5750600160a060020a03338116600090815260076020908152604080832093881683529290522054155b151561050757600080fd5b600160a060020a03338116600081815260076020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35060019392505050565b60085433600160a060020a0390811691161461058957fe5b600b805460ff19169115919091179055565b60045481565b600b5460009060ff1615156105b257fe5b6105bd848484610c8a565b15156105c557fe5b30600160a060020a031683600160a060020a0316141561063d57600160a060020a03831660009081526006602052604090819020805484900390556004805484900390557f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539083905190815260200160405180910390a15b5060019392505050565b60035460ff1681565b60055481565b600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104ac5780601f10610481576101008083540402835291602001916104ac565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104ac5780601f10610481576101008083540402835291602001916104ac565b60085433600160a060020a0390811691161461074457fe5b82600160a060020a038116151561075a57600080fd5b82600160a060020a038116151561077057600080fd5b8330600160a060020a031681600160a060020a03161415151561079257600080fd5b85600160a060020a031663a9059cbb86866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561080857600080fd5b6102c65a03f1151561081957600080fd5b50505060405180519050151561082b57fe5b505050505050565b60066020526000908152604090205481565b60095433600160a060020a0390811691161461086057600080fd5b6008546009547f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a1600980546008805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b60085433600160a060020a0390811691161461090457fe5b81600160a060020a038116151561091a57600080fd5b8230600160a060020a031681600160a060020a03161415151561093c57600080fd5b61094860045484610daa565b600481905560055490111561095c57600080fd5b600160a060020a03841660009081526006602052604090205461097f9084610daa565b600160a060020a03851660009081526006602052604090819020919091557f9386c90217c323f58030f9dadcbc938f807a940f4ff41cd4cead9562f5da7dc39084905190815260200160405180910390a183600160a060020a031630600160a060020a0316600080516020610e8d8339815191528560405190815260200160405180910390a350505050565b600854600160a060020a031681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104ac5780601f10610481576101008083540402835291602001916104ac565b60085433600160a060020a03908116911614610a9d57fe5b600160a060020a038216600090815260066020526040902054610ac09082610dc0565b600160a060020a038316600090815260066020526040902055600454610ae69082610dc0565b600455600160a060020a03308116908316600080516020610e8d8339815191528360405190815260200160405180910390a37f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34538160405190815260200160405180910390a15050565b600b5460009060ff161515610b6057fe5b610b6a8383610dd2565b1515610b7257fe5b30600160a060020a031683600160a060020a03161415610bea57600160a060020a03831660009081526006602052604090819020805484900390556004805484900390557f9a1b418bc061a5d80270261562e6986a35d995f8051145f277be16103abd34539083905190815260200160405180910390a15b50600192915050565b600b5460ff1681565b600954600160a060020a031681565b600760209081526000928352604080842090915290825290205481565b60085433600160a060020a03908116911614610c4057fe5b600854600160a060020a0382811691161415610c5b57600080fd5b6009805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600083600160a060020a0381161515610ca257600080fd5b83600160a060020a0381161515610cb857600080fd5b600160a060020a0380871660009081526007602090815260408083203390941683529290522054610ce99085610dc0565b600160a060020a038088166000818152600760209081526040808320339095168352938152838220949094559081526006909252902054610d2a9085610dc0565b600160a060020a038088166000908152600660205260408082209390935590871681522054610d599085610daa565b600160a060020a0380871660008181526006602052604090819020939093559190881690600080516020610e8d8339815191529087905190815260200160405180910390a350600195945050505050565b600082820183811015610db957fe5b9392505050565b600081831015610dcc57fe5b50900390565b600082600160a060020a0381161515610dea57600080fd5b600160a060020a033316600090815260066020526040902054610e0d9084610dc0565b600160a060020a033381166000908152600660205260408082209390935590861681522054610e3c9084610daa565b600160a060020a038086166000818152600660205260409081902093909355913390911690600080516020610e8d8339815191529086905190815260200160405180910390a350600193925050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c792107881d45b2a81b6a8c97fdaedfa055b27b4dcd7f5d0dd994cbd8bbb9a730029

Swarm Source

bzzr://c792107881d45b2a81b6a8c97fdaedfa055b27b4dcd7f5d0dd994cbd8bbb9a73
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.