Contract Overview | MeasurableDataToken
Balance: 0 Ether
Ether Value: $0
Transactions: 15802 txns
Token Tracker: Measurable Data Token (MDT)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x14f5cd0d27013c6f2d035e11fc16cecf782c9c06at txn 0x6098253ad9e75f9d8e036d9adcd55b110389febd3bc97282868233f64fe18191
Token Balance:
 Latest 25 transactions from a total of 15802 transactions

TxHash Age From To Value [TxFee]
0x347e615fe9ef65efe5bc814973cad57980f9389ca284c3ea0eab3ea51056adbd1 min ago0x57b029fce7b9cab464f05e3c36bbfefaeaba8d06  IN   MeasurableDataToken0 Ether0.00018746
0x0bda8d569aa55c1e2eed704fe09982029ed2360a4b2a1aa6e0ac8f26048a10034 mins ago0x8c39b7c52d675ad119b399ceeda1d13ab3e26bf2  IN   MeasurableDataToken0 Ether0.00018746
0x9c3e7dd3af94af77ff234e7ac126f9f201eaeb1742e306fe123d9e7bf817fda06 mins ago0x7350597374e3fe41289165f574e44371cdbf304f  IN   MeasurableDataToken0 Ether0.00018746
0xeef6d39c052a57f09b6a6208eb473c5c294f858c6b83db8ee2a0e1e0c70a23597 mins ago0xc4a980255aeb6921b0fd56faeda0a7bf5098bc0b  IN   MeasurableDataToken0 Ether0.00018746
0x6e5ec0a1c7832cf250aa949ff63d0558383af3674b133bd3e0b89bfe626d75bd10 mins ago0xad2c872f6bac1dc63ffc8dbdf0e3a97e092ce6dd  IN   MeasurableDataToken0 Ether0.00018746
0xed683982d61c694c26bd7893f519c3b5233020df79a30ffeaef21bcfece472c412 mins ago0xd8258d991b465fccd94d1869334ca712f922f8ae  IN   MeasurableDataToken0 Ether0.00018746
0x47be670767d28d7dda6620202cd180c880a28da45fd0f0d27579e8b8ea5c838614 mins ago0xfae6dad1e113bf889edb80c9c247ba0b222ce307  IN   MeasurableDataToken0 Ether0.00018746
0x11fd6d94133a3c4d8fb8e461a3733aceab16e688bc7fc737b85230171a63228b16 mins ago0xd8258d991b465fccd94d1869334ca712f922f8ae  IN   MeasurableDataToken0 Ether0.00018746
0xcc01e36e4cc1a78a1ceaa4d5c43f39af537a81c07f04e8258e1bb32c459a9ba317 mins ago0xd8258d991b465fccd94d1869334ca712f922f8ae  IN   MeasurableDataToken0 Ether0.00018746
0xae91ade893b794a643d7e29786fbe3e2c58f707f354c0e4394b428629a0780dc19 mins ago0x57b029fce7b9cab464f05e3c36bbfefaeaba8d06  IN   MeasurableDataToken0 Ether0.00018746
0x7df17233bfcb5293fb4bd82a4642f7c282132bd7131c813c072502585f127bba23 mins ago0x57b029fce7b9cab464f05e3c36bbfefaeaba8d06  IN   MeasurableDataToken0 Ether0.00018746
0xb9a4b03aafe6c2f9d1c7547e41b96698c14491379572455e9c15b34b3b316b0525 mins ago0x57b029fce7b9cab464f05e3c36bbfefaeaba8d06  IN   MeasurableDataToken0 Ether0.00018746
0x0ee5c97f7564e8d72fd9fc36c432047eb983f02139b3810b5831937d09f1aa9827 mins ago0x0488ddd73965fbc93b8e24dee0d9f51ddd3d2f80  IN   MeasurableDataToken0 Ether0.00018746
0xb841c6d264f4f17de284903abb2bf8a4fccd69ff467e94a1d704c17a7b6478b129 mins ago0xa3a4b11590c47d42bfe931848850b744fab6bdb3  IN   MeasurableDataToken0 Ether0.00018746
0xe30b47b4261c52942cfea8130840704c78e44f133e3eb27929c0612fd74503ca31 mins ago0xac6fdfe4ef20b7fdde23749a6bca24bfad75bd9a  IN   MeasurableDataToken0 Ether0.00018746
0x51b04570b5c5ee85919a69a30fa039ae0959f7998d74ef9ae7c71891131427bb33 mins ago0xc4a980255aeb6921b0fd56faeda0a7bf5098bc0b  IN   MeasurableDataToken0 Ether0.00018746
0x1f65ee803db8d841bc0d9df801d5c4cea6c718e5b212fee1a09f346afbf630db35 mins ago0xfae6dad1e113bf889edb80c9c247ba0b222ce307  IN   MeasurableDataToken0 Ether0.00018746
0x0a11ca160f405acaacc7be52f6cdce0c423677db46f5ddb5e9fdec510e8aeb7f37 mins ago0x8c39b7c52d675ad119b399ceeda1d13ab3e26bf2  IN   MeasurableDataToken0 Ether0.00018746
0x4d211ac0c31991f812a29d5e89dca87502d0d66264bafcca20985d7d83c64d9739 mins ago0xfae6dad1e113bf889edb80c9c247ba0b222ce307  IN   MeasurableDataToken0 Ether0.00018746
0xfbc72120e3cd0e5e2906ccccca504b42b06442d7b0c17f8f3aca6d86ea3ffcd241 mins ago0x3ce7512451654da19c7783ff63107b7f26586fcc  IN   MeasurableDataToken0 Ether0.00018746
0x88e7483596e135d3c814b7ad632692f2716ca573f5c2d620ff97a486c6bc4c0c43 mins ago0x8ce843e3167aa8646fd8aa37d7053b5ef9f453d4  IN   MeasurableDataToken0 Ether0.00018746
0x0986592209e47fc28cdd44c164575bd719d817a151d8b6ec4cb6642938d9d8ed45 mins ago0xfae6dad1e113bf889edb80c9c247ba0b222ce307  IN   MeasurableDataToken0 Ether0.00018746
0xeef3b7a25bd371730f3c8ca993a49c82dd7ade38aceb274df630ef28bcc8c54b47 mins ago0x0488ddd73965fbc93b8e24dee0d9f51ddd3d2f80  IN   MeasurableDataToken0 Ether0.00018746
0x1041c3e6ba189f1ecde33373fd6eafe43d99a53ccc374bc4cbc2ac746272394849 mins ago0x21ec6db5addfd20787c66e2b7077ae8f76b4b9b1  IN   MeasurableDataToken0 Ether0.00018746
0x0d85debe0eb2f1d9e457617d780697ba59cae207817b646404c9434fa0621fa751 mins ago0xac6fdfe4ef20b7fdde23749a6bca24bfad75bd9a  IN   MeasurableDataToken0 Ether0.00018746
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: MDToken
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }

  function max64(uint64 a, uint64 b) internal pure returns (uint64) {
        return a >= b ? a : b;
    }

  function min64(uint64 a, uint64 b) internal pure returns (uint64) {
      return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal pure returns (uint256) {
      return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal pure returns (uint256) {
      return a < b ? a : b;
  }
}

contract Ownable {
  address public owner;

  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    owner = newOwner;
    OwnershipTransferred(owner, newOwner);
  }

}

contract ERC20Basic {
    uint256 public totalSupply;
    function balanceOf(address _owner) public constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) public returns (bool success);
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
}

contract BasicToken is ERC20Basic {
    using SafeMath for uint256;

    mapping(address => uint256) balances;

    /**
    * @dev Transfer token for a specified address.
    * @param _to address The address to transfer to.
    * @param _value uint256 The amount to be transferred.
    */
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

    /**
    * @dev Gets the balance of the specified address.
    * @param _owner address The address to query the the balance of.
    * @return An uint256 representing the amount owned by the passed address.
    */
    function balanceOf(address _owner) public constant returns (uint256 balance) {
        return balances[_owner];
    }

}

contract ERC20 is ERC20Basic {
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

contract ERC677 is ERC20 {
    function transferAndCall(address _to, uint256 _value, bytes _data) public returns (bool success);
    
    event ERC677Transfer(address indexed _from, address indexed _to, uint256 _value, bytes _data);
}

contract ERC677Receiver {
    function onTokenTransfer(address _sender, uint _value, bytes _data) public returns (bool success);
}

contract ERC677Token is ERC677 {

    /**
    * @dev Transfer token to a contract address with additional data if the recipient is a contact.
    * @param _to address The address to transfer to.
    * @param _value uint256 The amount to be transferred.
    * @param _data bytes The extra data to be passed to the receiving contract.
    */
    function transferAndCall(address _to, uint256 _value, bytes _data) public returns (bool success) {
        require(super.transfer(_to, _value));
        ERC677Transfer(msg.sender, _to, _value, _data);
        if (isContract(_to)) {
            contractFallback(_to, _value, _data);
        }
        return true;
    }

    // PRIVATE

    function contractFallback(address _to, uint256 _value, bytes _data) private {
        ERC677Receiver receiver = ERC677Receiver(_to);
        require(receiver.onTokenTransfer(msg.sender, _value, _data));
    }

    // assemble the given address bytecode. If bytecode exists then the _addr is a contract.
    function isContract(address _addr) private view returns (bool hasCode) {
        uint length;
        assembly { length := extcodesize(_addr) }
        return length > 0;
    }
}

contract StandardToken is ERC20, BasicToken {

    mapping (address => mapping (address => uint256)) allowed;

    /**
    * @dev Transfer tokens from one address to another.
    * @param _from address The address which you want to send tokens from.
    * @param _to address The address which you want to transfer to.
    * @param _value uint256 the amout of tokens to be transfered.
    */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));

        var _allowance = allowed[_from][msg.sender];

        // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
        // require (_value <= _allowance);

        balances[_to] = balances[_to].add(_value);
        balances[_from] = balances[_from].sub(_value);
        allowed[_from][msg.sender] = _allowance.sub(_value);
        Transfer(_from, _to, _value);
        return true;
    }

    /**
    * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param _spender address The address which will spend the funds.
    * @param _value uint256 The amount of tokens to be spent.
    */
    function approve(address _spender, uint256 _value) public returns (bool) {
        // To change the approve amount you first have to reduce the addresses`
        //  allowance to zero by calling `approve(_spender, 0)` if it is not
        //  already 0 to mitigate the race condition described here:
        //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
        require((_value == 0) || (allowed[msg.sender][_spender] == 0));

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

    /**
    * @dev Function to check the amount of tokens that an owner allowed to a spender.
    * @param _owner address The address which owns the funds.
    * @param _spender address The address which will spend the funds.
    * @return A uint256 specifing the amount of tokens still avaible for the spender.
    */
    function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
}

contract MDToken is StandardToken, ERC677Token, Ownable {
    using SafeMath for uint256;

    // Token metadata
    string public constant name = "Measurable Data Token";
    string public constant symbol = "MDT";
    uint256 public constant decimals = 18;
    uint256 public constant maxSupply = 10 * (10**8) * (10**decimals); // 1 billion MDT

    // 240 million MDT reserved for MDT team (24%)
    uint256 public constant TEAM_TOKENS_RESERVED = 240 * (10**6) * (10**decimals);

    // 150 million MDT reserved for user growth (15%)
    uint256 public constant USER_GROWTH_TOKENS_RESERVED = 150 * (10**6) * (10**decimals);

    // 110 million MDT reserved for early investors (11%)
    uint256 public constant INVESTORS_TOKENS_RESERVED = 110 * (10**6) * (10**decimals);

    // 200 million MDT reserved for bonus giveaway (20%)
    uint256 public constant BONUS_TOKENS_RESERVED = 200 * (10**6) * (10**decimals);

    // Token sale wallet address, contains tokens for private sale, early bird and bonus giveaway
    address public tokenSaleAddress;

    // MDT team wallet address
    address public mdtTeamAddress;

    // User Growth Pool wallet address
    address public userGrowthAddress;

    // Early Investors wallet address
    address public investorsAddress;

    // MDT team foundation wallet address, contains tokens which were not sold during token sale and unraised bonus
    address public mdtFoundationAddress;

    event Burn(address indexed _burner, uint256 _value);

    /// @dev Reverts if address is 0x0 or this token address
    modifier validRecipient(address _recipient) {
        require(_recipient != address(0) && _recipient != address(this));
        _;
    }

    /**
    * @dev MDToken contract constructor.
    * @param _tokenSaleAddress address The token sale address.
    * @param _mdtTeamAddress address The MDT team address.
    * @param _userGrowthAddress address The user growth address.
    * @param _investorsAddress address The investors address.
    * @param _mdtFoundationAddress address The MDT Foundation address.
    * @param _presaleAmount uint256 Amount of MDT tokens sold during presale.
    * @param _earlybirdAmount uint256 Amount of MDT tokens to sold during early bird.
    */
    function MDToken(
        address _tokenSaleAddress,
        address _mdtTeamAddress,
        address _userGrowthAddress,
        address _investorsAddress,
        address _mdtFoundationAddress,
        uint256 _presaleAmount,
        uint256 _earlybirdAmount)
        public
    {

        require(_tokenSaleAddress != address(0));
        require(_mdtTeamAddress != address(0));
        require(_userGrowthAddress != address(0));
        require(_investorsAddress != address(0));
        require(_mdtFoundationAddress != address(0));

        tokenSaleAddress = _tokenSaleAddress;
        mdtTeamAddress = _mdtTeamAddress;
        userGrowthAddress = _userGrowthAddress;
        investorsAddress = _investorsAddress;
        mdtFoundationAddress = _mdtFoundationAddress;

        // issue tokens to token sale, MDT team, etc
        uint256 saleAmount = _presaleAmount.add(_earlybirdAmount).add(BONUS_TOKENS_RESERVED);
        mint(tokenSaleAddress, saleAmount);
        mint(mdtTeamAddress, TEAM_TOKENS_RESERVED);
        mint(userGrowthAddress, USER_GROWTH_TOKENS_RESERVED);
        mint(investorsAddress, INVESTORS_TOKENS_RESERVED);

        // issue remaining tokens to MDT Foundation
        uint256 remainingTokens = maxSupply.sub(totalSupply);
        if (remainingTokens > 0) {
            mint(mdtFoundationAddress, remainingTokens);
        }
    }

    /**
    * @dev Mint MDT tokens. (internal use only)
    * @param _to address Address to send minted MDT to.
    * @param _amount uint256 Amount of MDT tokens to mint.
    */
    function mint(address _to, uint256 _amount)
        private
        validRecipient(_to)
        returns (bool)
    {
        require(totalSupply.add(_amount) <= maxSupply);
        totalSupply = totalSupply.add(_amount);
        balances[_to] = balances[_to].add(_amount);

        Transfer(0x0, _to, _amount);
        return true;
    }

    /**
    * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param _spender address The address which will spend the funds.
    * @param _value uint256 The amount of tokens to be spent.
    */
    function approve(address _spender, uint256 _value)
        public
        validRecipient(_spender)
        returns (bool)
    {
        return super.approve(_spender, _value);
    }

    /**
    * @dev Transfer token for a specified address.
    * @param _to address The address to transfer to.
    * @param _value uint256 The amount to be transferred.
    */
    function transfer(address _to, uint256 _value)
        public
        validRecipient(_to)
        returns (bool)
    {
        return super.transfer(_to, _value);
    }

    /**
    * @dev Transfer token to a contract address with additional data if the recipient is a contact.
    * @param _to address The address to transfer to.
    * @param _value uint256 The amount to be transferred.
    * @param _data bytes The extra data to be passed to the receiving contract.
    */
    function transferAndCall(address _to, uint256 _value, bytes _data)
        public
        validRecipient(_to)
        returns (bool success)
    {
        return super.transferAndCall(_to, _value, _data);
    }

    /**
    * @dev Transfer tokens from one address to another.
    * @param _from address The address which you want to send tokens from.
    * @param _to address The address which you want to transfer to.
    * @param _value uint256 the amout of tokens to be transfered.
    */
    function transferFrom(address _from, address _to, uint256 _value)
        public
        validRecipient(_to)
        returns (bool)
    {
        return super.transferFrom(_from, _to, _value);
    }

    /**
     * @dev Burn tokens. (token owner only)
     * @param _value uint256 The amount to be burned.
     * @return always true.
     */
    function burn(uint256 _value)
        public
        onlyOwner
        returns (bool)
    {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);
        Burn(msg.sender, _value);
        return true;
    }

    /**
     * @dev Burn tokens on behalf of someone. (token owner only)
     * @param _from address The address of the owner of the token.
     * @param _value uint256 The amount to be burned.
     * @return always true.
     */
    function burnFrom(address _from, uint256 _value)
        public
        onlyOwner
        returns(bool)
    {
        var _allowance = allowed[_from][msg.sender];
        balances[_from] = balances[_from].sub(_value);
        allowed[_from][msg.sender] = _allowance.sub(_value);
        totalSupply = totalSupply.sub(_value);
        Burn(_from, _value);
        return true;
    }

    /**
     * @dev Transfer to owner any tokens send by mistake to this contract. (token owner only)
     * @param token ERC20 The address of the token to transfer.
     * @param amount uint256 The amount to be transfered.
     */
    function emergencyERC20Drain(ERC20 token, uint256 amount)
        public
        onlyOwner
    {
        token.transfer(owner, amount);
    }

    /**
     * @dev Change to a new token sale address. (token owner only)
     * @param _tokenSaleAddress address The new token sale address.
     */
    function changeTokenSaleAddress(address _tokenSaleAddress)
        public
        onlyOwner
        validRecipient(_tokenSaleAddress)
    {
        tokenSaleAddress = _tokenSaleAddress;
    }

    /**
     * @dev Change to a new MDT team address. (token owner only)
     * @param _mdtTeamAddress address The new MDT team address.
     */
    function changeMdtTeamAddress(address _mdtTeamAddress)
        public
        onlyOwner
        validRecipient(_mdtTeamAddress)
    {
        mdtTeamAddress = _mdtTeamAddress;
    }

    /**
     * @dev Change to a new user growth address. (token owner only)
     * @param _userGrowthAddress address The new user growth address.
     */
    function changeUserGrowthAddress(address _userGrowthAddress)
        public
        onlyOwner
        validRecipient(_userGrowthAddress)
    {
        userGrowthAddress = _userGrowthAddress;
    }

    /**
     * @dev Change to a new investors address. (token owner only)
     * @param _investorsAddress address The new investors address.
     */
    function changeInvestorsAddress(address _investorsAddress)
        public
        onlyOwner
        validRecipient(_investorsAddress)
    {
        investorsAddress = _investorsAddress;
    }

    /**
     * @dev Change to a new MDT Foundation address. (token owner only)
     * @param _mdtFoundationAddress address The new MDT Foundation address.
     */
    function changeMdtFoundationAddress(address _mdtFoundationAddress)
        public
        onlyOwner
        validRecipient(_mdtFoundationAddress)
    {
        mdtFoundationAddress = _mdtFoundationAddress;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"mdtFoundationAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TEAM_TOKENS_RESERVED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"userGrowthAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mdtTeamAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_mdtFoundationAddress","type":"address"}],"name":"changeMdtFoundationAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"USER_GROWTH_TOKENS_RESERVED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INVESTORS_TOKENS_RESERVED","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_investorsAddress","type":"address"}],"name":"changeInvestorsAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"}],"name":"burnFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenSaleAddress","type":"address"}],"name":"changeTokenSaleAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userGrowthAddress","type":"address"}],"name":"changeUserGrowthAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"investorsAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_mdtTeamAddress","type":"address"}],"name":"changeMdtTeamAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"amount","type":"uint256"}],"name":"emergencyERC20Drain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BONUS_TOKENS_RESERVED","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":[{"name":"_tokenSaleAddress","type":"address"},{"name":"_mdtTeamAddress","type":"address"},{"name":"_userGrowthAddress","type":"address"},{"name":"_investorsAddress","type":"address"},{"name":"_mdtFoundationAddress","type":"address"},{"name":"_presaleAmount","type":"uint256"},{"name":"_earlybirdAmount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_burner","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"},{"indexed":false,"name":"_data","type":"bytes"}],"name":"ERC677Transfer","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"},{"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"}]

  Contract Creation Code Switch To Opcodes View
606060405234156200001057600080fd5b60405160e080620017098339810160405280805191906020018051919060200180519190602001805191906020018051919060200180519190602001805160038054600160a060020a03191633600160a060020a0390811691909117909155909250600091508190891615156200008657600080fd5b600160a060020a03881615156200009c57600080fd5b600160a060020a0387161515620000b257600080fd5b600160a060020a0386161515620000c857600080fd5b600160a060020a0385161515620000de57600080fd5b60048054600160a060020a0319908116600160a060020a038c8116919091179092556005805482168b84161790556006805482168a841617905560078054821689841617905560088054909116918716919091179055620001736aa56fa5b99019a5c80000006200015e8686640100000000620002a08102620010c61704565b90640100000000620010c6620002a082021704565b6004549092506200019c90600160a060020a031683640100000000620011e6620002b782021704565b50600554620001ce90600160a060020a03166ac685fa11e01ec6f0000000640100000000620011e6620002b782021704565b506006546200020090600160a060020a03166a7c13bc4b2c133c56000000640100000000620011e6620002b782021704565b506007546200023290600160a060020a03166a5afd67f2dc0e1b2e000000640100000000620011e6620002b782021704565b506000546200025d906b033b2e3c9fd0803ce80000009064010000000062000fde620003d682021704565b9050600081111562000291576008546200028f90600160a060020a031682640100000000620011e6620002b782021704565b505b505050505050505050620003e9565b600082820183811015620002b057fe5b9392505050565b600082600160a060020a03811615801590620002e5575030600160a060020a031681600160a060020a031614155b1515620002f157600080fd5b6000546b033b2e3c9fd0803ce8000000906200031c9085640100000000620010c6620002a082021704565b11156200032857600080fd5b600054620003459084640100000000620010c6620002a082021704565b6000908155600160a060020a0385168152600160205260409020546200037a9084640100000000620010c6620002a082021704565b600160a060020a0385166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35060019392505050565b600082821115620003e357fe5b50900390565b61131080620003f96000396000f3006060604052600436106101665763ffffffff60e060020a600035041663039b267d811461016b57806306fdde031461019a578063095ea7b3146102245780631448b3ca1461025a57806318160ddd1461026d57806323b872dd146102925780632970c9c6146102ba57806330b823f7146102cd578063313ce567146102e05780633b6d05c7146102f35780634000aea01461030657806342966c681461036b5780634693667a146103815780634c25deb5146103a25780634fe2f085146103b557806368c4eb74146103c857806370a08231146103e757806379cc6790146104065780637af8c4f2146104285780638da5cb5b14610447578063945796801461045a57806395d89b4114610479578063a9059cbb1461048c578063b7629dcb146104ae578063cbcabc13146104c1578063d5abeb01146104e0578063db0e16f1146104f3578063dd62ed3e14610515578063f1f732cb1461053a578063f2fde38b1461054d575b600080fd5b341561017657600080fd5b61017e61056c565b604051600160a060020a03909116815260200160405180910390f35b34156101a557600080fd5b6101ad61057b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e95780820151838201526020016101d1565b50505050905090810190601f1680156102165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022f57600080fd5b610246600160a060020a03600435166024356105b2565b604051901515815260200160405180910390f35b341561026557600080fd5b61017e6105fc565b341561027857600080fd5b61028061060b565b60405190815260200160405180910390f35b341561029d57600080fd5b610246600160a060020a0360043581169060243516604435610611565b34156102c557600080fd5b61028061065d565b34156102d857600080fd5b61017e61066c565b34156102eb57600080fd5b61028061067b565b34156102fe57600080fd5b61017e610680565b341561031157600080fd5b61024660048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068f95505050505050565b341561037657600080fd5b6102466004356106d2565b341561038c57600080fd5b6103a0600160a060020a036004351661078e565b005b34156103ad57600080fd5b610280610802565b34156103c057600080fd5b610280610811565b34156103d357600080fd5b6103a0600160a060020a0360043516610820565b34156103f257600080fd5b610280600160a060020a0360043516610894565b341561041157600080fd5b610246600160a060020a03600435166024356108af565b341561043357600080fd5b6103a0600160a060020a03600435166109c5565b341561045257600080fd5b61017e610a39565b341561046557600080fd5b6103a0600160a060020a0360043516610a48565b341561048457600080fd5b6101ad610abc565b341561049757600080fd5b610246600160a060020a0360043516602435610af3565b34156104b957600080fd5b61017e610b35565b34156104cc57600080fd5b6103a0600160a060020a0360043516610b44565b34156104eb57600080fd5b610280610bb8565b34156104fe57600080fd5b6103a0600160a060020a0360043516602435610bc8565b341561052057600080fd5b610280600160a060020a0360043581169060243516610c65565b341561054557600080fd5b610280610c90565b341561055857600080fd5b6103a0600160a060020a0360043516610c9f565b600854600160a060020a031681565b60408051908101604052601581527f4d656173757261626c65204461746120546f6b656e0000000000000000000000602082015281565b600082600160a060020a038116158015906105df575030600160a060020a031681600160a060020a031614155b15156105ea57600080fd5b6105f48484610d21565b949350505050565b600454600160a060020a031681565b60005481565b600082600160a060020a0381161580159061063e575030600160a060020a031681600160a060020a031614155b151561064957600080fd5b610654858585610dc7565b95945050505050565b6ac685fa11e01ec6f000000081565b600654600160a060020a031681565b601281565b600554600160a060020a031681565b600083600160a060020a038116158015906106bc575030600160a060020a031681600160a060020a031614155b15156106c757600080fd5b610654858585610ef0565b60035460009033600160a060020a039081169116146106f057600080fd5b600160a060020a033316600090815260016020526040902054610719908363ffffffff610fde16565b600160a060020a03331660009081526001602052604081209190915554610746908363ffffffff610fde16565b600055600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a2506001919050565b60035433600160a060020a039081169116146107a957600080fd5b80600160a060020a038116158015906107d4575030600160a060020a031681600160a060020a031614155b15156107df57600080fd5b5060088054600160a060020a031916600160a060020a0392909216919091179055565b6a7c13bc4b2c133c5600000081565b6a5afd67f2dc0e1b2e00000081565b60035433600160a060020a0390811691161461083b57600080fd5b80600160a060020a03811615801590610866575030600160a060020a031681600160a060020a031614155b151561087157600080fd5b5060078054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a031660009081526001602052604090205490565b600354600090819033600160a060020a039081169116146108cf57600080fd5b50600160a060020a03808416600081815260026020908152604080832033909516835293815283822054928252600190529190912054610915908463ffffffff610fde16565b600160a060020a03851660009081526001602052604090205561093e818463ffffffff610fde16565b600160a060020a038086166000908152600260209081526040808320339094168352929052908120919091555461097b908463ffffffff610fde16565b600055600160a060020a0384167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58460405190815260200160405180910390a25060019392505050565b60035433600160a060020a039081169116146109e057600080fd5b80600160a060020a03811615801590610a0b575030600160a060020a031681600160a060020a031614155b1515610a1657600080fd5b5060048054600160a060020a031916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60035433600160a060020a03908116911614610a6357600080fd5b80600160a060020a03811615801590610a8e575030600160a060020a031681600160a060020a031614155b1515610a9957600080fd5b5060068054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600381527f4d44540000000000000000000000000000000000000000000000000000000000602082015281565b600082600160a060020a03811615801590610b20575030600160a060020a031681600160a060020a031614155b1515610b2b57600080fd5b6105f48484610ff0565b600754600160a060020a031681565b60035433600160a060020a03908116911614610b5f57600080fd5b80600160a060020a03811615801590610b8a575030600160a060020a031681600160a060020a031614155b1515610b9557600080fd5b5060058054600160a060020a031916600160a060020a0392909216919091179055565b6b033b2e3c9fd0803ce800000081565b60035433600160a060020a03908116911614610be357600080fd5b600354600160a060020a038084169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c4657600080fd5b6102c65a03f11515610c5757600080fd5b505050604051805150505050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6aa56fa5b99019a5c800000081565b60035433600160a060020a03908116911614610cba57600080fd5b600160a060020a0381161515610ccf57600080fd5b60038054600160a060020a031916600160a060020a03838116918217928390559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000811580610d535750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b1515610d5e57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600080600160a060020a0384161515610ddf57600080fd5b50600160a060020a038085166000908152600260209081526040808320338516845282528083205493871683526001909152902054610e24908463ffffffff6110c616565b600160a060020a038086166000908152600160205260408082209390935590871681522054610e59908463ffffffff610fde16565b600160a060020a038616600090815260016020526040902055610e82818463ffffffff610fde16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000610efc8484610ff0565b1515610f0757600080fd5b83600160a060020a031633600160a060020a03167f72db2339068fd324bbc28f2944e01064da539ac76064b6ce4a97a5f81de43dd6858560405182815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610f80578082015183820152602001610f68565b50505050905090810190601f168015610fad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3610fc4846110dc565b15610fd457610fd48484846110e4565b5060019392505050565b600082821115610fea57fe5b50900390565b6000600160a060020a038316151561100757600080fd5b600160a060020a033316600090815260016020526040902054611030908363ffffffff610fde16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611065908363ffffffff6110c616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000828201838110156110d557fe5b9392505050565b6000903b1190565b82600160a060020a03811663a4c0ed363385856000604051602001526040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561116d578082015183820152602001611155565b50505050905090810190601f16801561119a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15156111ba57600080fd5b6102c65a03f115156111cb57600080fd5b5050506040518051905015156111e057600080fd5b50505050565b600082600160a060020a03811615801590611213575030600160a060020a031681600160a060020a031614155b151561121e57600080fd5b6000546b033b2e3c9fd0803ce80000009061123f908563ffffffff6110c616565b111561124a57600080fd5b60005461125d908463ffffffff6110c616565b6000908155600160a060020a038516815260016020526040902054611288908463ffffffff6110c616565b600160a060020a0385166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a350600193925050505600a165627a7a72305820314f0b913803be60883cd8c88b7907f69d8ffae07d6dcb0591246a7301eb6aa700290000000000000000000000004b9b85bfec31f8bd5b183339cb155f3d8de114f1000000000000000000000000135338c6033cba64ddff14a06e74c9a15e9f93f5000000000000000000000000446c3c34baf72d1f016e52263d16a45f13b9b128000000000000000000000000eb9821605641389c4c29da5a6b9d94d108c47941000000000000000000000000818cf9a5a26c5164800016c77c90a70c3d6ac71a0000000000000000000000000000000000000000007c13bc4b2c133c560000000000000000000000000000000000000000000000007c13bc4b2c133c56000000

    Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004b9b85bfec31f8bd5b183339cb155f3d8de114f1000000000000000000000000135338c6033cba64ddff14a06e74c9a15e9f93f5000000000000000000000000446c3c34baf72d1f016e52263d16a45f13b9b128000000000000000000000000eb9821605641389c4c29da5a6b9d94d108c47941000000000000000000000000818cf9a5a26c5164800016c77c90a70c3d6ac71a0000000000000000000000000000000000000000007c13bc4b2c133c560000000000000000000000000000000000000000000000007c13bc4b2c133c56000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000004b9b85bfec31f8bd5b183339cb155f3d8de114f1
Arg [1] : 000000000000000000000000135338c6033cba64ddff14a06e74c9a15e9f93f5
Arg [2] : 000000000000000000000000446c3c34baf72d1f016e52263d16a45f13b9b128
Arg [3] : 000000000000000000000000eb9821605641389c4c29da5a6b9d94d108c47941
Arg [4] : 000000000000000000000000818cf9a5a26c5164800016c77c90a70c3d6ac71a
Arg [5] : 0000000000000000000000000000000000000000007c13bc4b2c133c56000000
Arg [6] : 0000000000000000000000000000000000000000007c13bc4b2c133c56000000


   Swarm Source:
bzzr://314f0b913803be60883cd8c88b7907f69d8ffae07d6dcb0591246a7301eb6aa7

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.