ETH Price: $3,389.32 (-2.63%)
Gas: 1 Gwei

Contract

0x814e0908b12A99FeCf5BC101bB5d0b8B5cDf7d26
 
Transaction Hash
Method
Block
From
To
Value
0x2c3b0a2e0681292b51a34ee0d17affc73415490015b6e29efc1157a71b0e7767 Transfer(pending)2024-06-23 8:30:385 days ago1719131438IN
Measurable Data: MDT Token
0 ETH(Pending)(Pending)
0x7a347ef0ce210fb73821bf087d4a9b1031df97aa3318772a0735fe1aea1d96b0 Transfer(pending)2024-06-23 4:03:405 days ago1719115420IN
Measurable Data: MDT Token
0 ETH(Pending)(Pending)
0xf1ab3b57d4edea2aefac616a5c22282b1b7921960e539c3853868255ef864138 Transfer(pending)2024-06-23 1:58:465 days ago1719107926IN
Measurable Data: MDT Token
0 ETH(Pending)(Pending)
Transfer201938692024-06-29 0:49:2352 mins ago1719622163IN
Measurable Data: MDT Token
0 ETH0.00012523.53420081
Transfer201935022024-06-28 23:34:592 hrs ago1719617699IN
Measurable Data: MDT Token
0 ETH0.000194776.25
Transfer201934952024-06-28 23:33:352 hrs ago1719617615IN
Measurable Data: MDT Token
0 ETH0.000128463.57447288
Transfer201926782024-06-28 20:49:234 hrs ago1719607763IN
Measurable Data: MDT Token
0 ETH0.000148274.18525276
Transfer201916392024-06-28 17:20:478 hrs ago1719595247IN
Measurable Data: MDT Token
0 ETH0.000153265
Transfer201914832024-06-28 16:49:238 hrs ago1719593363IN
Measurable Data: MDT Token
0 ETH0.000326639.21977262
Transfer201902912024-06-28 12:49:3512 hrs ago1719578975IN
Measurable Data: MDT Token
0 ETH0.000255367.20804758
Transfer201900972024-06-28 12:10:4713 hrs ago1719576647IN
Measurable Data: MDT Token
0 ETH0.00015325
Transfer201899972024-06-28 11:50:4713 hrs ago1719575447IN
Measurable Data: MDT Token
0 ETH0.000153145
Transfer201898002024-06-28 11:10:5914 hrs ago1719573059IN
Measurable Data: MDT Token
0 ETH0.00029945.69853422
Transfer201890952024-06-28 8:49:3516 hrs ago1719564575IN
Measurable Data: MDT Token
0 ETH0.000204165.76270906
Transfer201887532024-06-28 7:40:4718 hrs ago1719560447IN
Measurable Data: MDT Token
0 ETH0.000153265
Transfer201885502024-06-28 6:59:5918 hrs ago1719557999IN
Measurable Data: MDT Token
0 ETH0.00011962.50596055
Transfer201884542024-06-28 6:40:4719 hrs ago1719556847IN
Measurable Data: MDT Token
0 ETH0.000091883
Transfer201880552024-06-28 5:20:3520 hrs ago1719552035IN
Measurable Data: MDT Token
0 ETH0.000089882.53723103
Transfer201879112024-06-28 4:51:2320 hrs ago1719550283IN
Measurable Data: MDT Token
0 ETH0.000130132.4773674
Transfer201879012024-06-28 4:49:2320 hrs ago1719550163IN
Measurable Data: MDT Token
0 ETH0.00014864.19470446
Transfer201867092024-06-28 0:49:4724 hrs ago1719535787IN
Measurable Data: MDT Token
0 ETH0.00029848.42276851
Transfer201862072024-06-27 23:08:1126 hrs ago1719529691IN
Measurable Data: MDT Token
0 ETH0.000245224.6673534
Approve201859682024-06-27 22:19:5927 hrs ago1719526799IN
Measurable Data: MDT Token
0 ETH0.000293486.23280472
Transfer201855172024-06-27 20:49:2328 hrs ago1719521363IN
Measurable Data: MDT Token
0 ETH0.000293928.29636885
Transfer201853262024-06-27 20:10:4729 hrs ago1719519047IN
Measurable Data: MDT Token
0 ETH0.000245028
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:
MDToken

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 2017-12-29
*/

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 Security Audit

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

606060405234156200001057600080fd5b60405160e080620017098339810160405280805191906020018051919060200180519190602001805191906020018051919060200180519190602001805160038054600160a060020a03191633600160a060020a0390811691909117909155909250600091508190891615156200008657600080fd5b600160a060020a03881615156200009c57600080fd5b600160a060020a0387161515620000b257600080fd5b600160a060020a0386161515620000c857600080fd5b600160a060020a0385161515620000de57600080fd5b60048054600160a060020a0319908116600160a060020a038c8116919091179092556005805482168b84161790556006805482168a841617905560078054821689841617905560088054909116918716919091179055620001736aa56fa5b99019a5c80000006200015e8686640100000000620002a08102620010c61704565b90640100000000620010c6620002a082021704565b6004549092506200019c90600160a060020a031683640100000000620011e6620002b782021704565b50600554620001ce90600160a060020a03166ac685fa11e01ec6f0000000640100000000620011e6620002b782021704565b506006546200020090600160a060020a03166a7c13bc4b2c133c56000000640100000000620011e6620002b782021704565b506007546200023290600160a060020a03166a5afd67f2dc0e1b2e000000640100000000620011e6620002b782021704565b506000546200025d906b033b2e3c9fd0803ce80000009064010000000062000fde620003d682021704565b9050600081111562000291576008546200028f90600160a060020a031682640100000000620011e6620002b782021704565b505b505050505050505050620003e9565b600082820183811015620002b057fe5b9392505050565b600082600160a060020a03811615801590620002e5575030600160a060020a031681600160a060020a031614155b1515620002f157600080fd5b6000546b033b2e3c9fd0803ce8000000906200031c9085640100000000620010c6620002a082021704565b11156200032857600080fd5b600054620003459084640100000000620010c6620002a082021704565b6000908155600160a060020a0385168152600160205260409020546200037a9084640100000000620010c6620002a082021704565b600160a060020a0385166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a35060019392505050565b600082821115620003e357fe5b50900390565b61131080620003f96000396000f3006060604052600436106101665763ffffffff60e060020a600035041663039b267d811461016b57806306fdde031461019a578063095ea7b3146102245780631448b3ca1461025a57806318160ddd1461026d57806323b872dd146102925780632970c9c6146102ba57806330b823f7146102cd578063313ce567146102e05780633b6d05c7146102f35780634000aea01461030657806342966c681461036b5780634693667a146103815780634c25deb5146103a25780634fe2f085146103b557806368c4eb74146103c857806370a08231146103e757806379cc6790146104065780637af8c4f2146104285780638da5cb5b14610447578063945796801461045a57806395d89b4114610479578063a9059cbb1461048c578063b7629dcb146104ae578063cbcabc13146104c1578063d5abeb01146104e0578063db0e16f1146104f3578063dd62ed3e14610515578063f1f732cb1461053a578063f2fde38b1461054d575b600080fd5b341561017657600080fd5b61017e61056c565b604051600160a060020a03909116815260200160405180910390f35b34156101a557600080fd5b6101ad61057b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e95780820151838201526020016101d1565b50505050905090810190601f1680156102165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022f57600080fd5b610246600160a060020a03600435166024356105b2565b604051901515815260200160405180910390f35b341561026557600080fd5b61017e6105fc565b341561027857600080fd5b61028061060b565b60405190815260200160405180910390f35b341561029d57600080fd5b610246600160a060020a0360043581169060243516604435610611565b34156102c557600080fd5b61028061065d565b34156102d857600080fd5b61017e61066c565b34156102eb57600080fd5b61028061067b565b34156102fe57600080fd5b61017e610680565b341561031157600080fd5b61024660048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068f95505050505050565b341561037657600080fd5b6102466004356106d2565b341561038c57600080fd5b6103a0600160a060020a036004351661078e565b005b34156103ad57600080fd5b610280610802565b34156103c057600080fd5b610280610811565b34156103d357600080fd5b6103a0600160a060020a0360043516610820565b34156103f257600080fd5b610280600160a060020a0360043516610894565b341561041157600080fd5b610246600160a060020a03600435166024356108af565b341561043357600080fd5b6103a0600160a060020a03600435166109c5565b341561045257600080fd5b61017e610a39565b341561046557600080fd5b6103a0600160a060020a0360043516610a48565b341561048457600080fd5b6101ad610abc565b341561049757600080fd5b610246600160a060020a0360043516602435610af3565b34156104b957600080fd5b61017e610b35565b34156104cc57600080fd5b6103a0600160a060020a0360043516610b44565b34156104eb57600080fd5b610280610bb8565b34156104fe57600080fd5b6103a0600160a060020a0360043516602435610bc8565b341561052057600080fd5b610280600160a060020a0360043581169060243516610c65565b341561054557600080fd5b610280610c90565b341561055857600080fd5b6103a0600160a060020a0360043516610c9f565b600854600160a060020a031681565b60408051908101604052601581527f4d656173757261626c65204461746120546f6b656e0000000000000000000000602082015281565b600082600160a060020a038116158015906105df575030600160a060020a031681600160a060020a031614155b15156105ea57600080fd5b6105f48484610d21565b949350505050565b600454600160a060020a031681565b60005481565b600082600160a060020a0381161580159061063e575030600160a060020a031681600160a060020a031614155b151561064957600080fd5b610654858585610dc7565b95945050505050565b6ac685fa11e01ec6f000000081565b600654600160a060020a031681565b601281565b600554600160a060020a031681565b600083600160a060020a038116158015906106bc575030600160a060020a031681600160a060020a031614155b15156106c757600080fd5b610654858585610ef0565b60035460009033600160a060020a039081169116146106f057600080fd5b600160a060020a033316600090815260016020526040902054610719908363ffffffff610fde16565b600160a060020a03331660009081526001602052604081209190915554610746908363ffffffff610fde16565b600055600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a2506001919050565b60035433600160a060020a039081169116146107a957600080fd5b80600160a060020a038116158015906107d4575030600160a060020a031681600160a060020a031614155b15156107df57600080fd5b5060088054600160a060020a031916600160a060020a0392909216919091179055565b6a7c13bc4b2c133c5600000081565b6a5afd67f2dc0e1b2e00000081565b60035433600160a060020a0390811691161461083b57600080fd5b80600160a060020a03811615801590610866575030600160a060020a031681600160a060020a031614155b151561087157600080fd5b5060078054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a031660009081526001602052604090205490565b600354600090819033600160a060020a039081169116146108cf57600080fd5b50600160a060020a03808416600081815260026020908152604080832033909516835293815283822054928252600190529190912054610915908463ffffffff610fde16565b600160a060020a03851660009081526001602052604090205561093e818463ffffffff610fde16565b600160a060020a038086166000908152600260209081526040808320339094168352929052908120919091555461097b908463ffffffff610fde16565b600055600160a060020a0384167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58460405190815260200160405180910390a25060019392505050565b60035433600160a060020a039081169116146109e057600080fd5b80600160a060020a03811615801590610a0b575030600160a060020a031681600160a060020a031614155b1515610a1657600080fd5b5060048054600160a060020a031916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60035433600160a060020a03908116911614610a6357600080fd5b80600160a060020a03811615801590610a8e575030600160a060020a031681600160a060020a031614155b1515610a9957600080fd5b5060068054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600381527f4d44540000000000000000000000000000000000000000000000000000000000602082015281565b600082600160a060020a03811615801590610b20575030600160a060020a031681600160a060020a031614155b1515610b2b57600080fd5b6105f48484610ff0565b600754600160a060020a031681565b60035433600160a060020a03908116911614610b5f57600080fd5b80600160a060020a03811615801590610b8a575030600160a060020a031681600160a060020a031614155b1515610b9557600080fd5b5060058054600160a060020a031916600160a060020a0392909216919091179055565b6b033b2e3c9fd0803ce800000081565b60035433600160a060020a03908116911614610be357600080fd5b600354600160a060020a038084169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c4657600080fd5b6102c65a03f11515610c5757600080fd5b505050604051805150505050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6aa56fa5b99019a5c800000081565b60035433600160a060020a03908116911614610cba57600080fd5b600160a060020a0381161515610ccf57600080fd5b60038054600160a060020a031916600160a060020a03838116918217928390559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000811580610d535750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b1515610d5e57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600080600160a060020a0384161515610ddf57600080fd5b50600160a060020a038085166000908152600260209081526040808320338516845282528083205493871683526001909152902054610e24908463ffffffff6110c616565b600160a060020a038086166000908152600160205260408082209390935590871681522054610e59908463ffffffff610fde16565b600160a060020a038616600090815260016020526040902055610e82818463ffffffff610fde16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000610efc8484610ff0565b1515610f0757600080fd5b83600160a060020a031633600160a060020a03167f72db2339068fd324bbc28f2944e01064da539ac76064b6ce4a97a5f81de43dd6858560405182815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610f80578082015183820152602001610f68565b50505050905090810190601f168015610fad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3610fc4846110dc565b15610fd457610fd48484846110e4565b5060019392505050565b600082821115610fea57fe5b50900390565b6000600160a060020a038316151561100757600080fd5b600160a060020a033316600090815260016020526040902054611030908363ffffffff610fde16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611065908363ffffffff6110c616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000828201838110156110d557fe5b9392505050565b6000903b1190565b82600160a060020a03811663a4c0ed363385856000604051602001526040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561116d578082015183820152602001611155565b50505050905090810190601f16801561119a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15156111ba57600080fd5b6102c65a03f115156111cb57600080fd5b5050506040518051905015156111e057600080fd5b50505050565b600082600160a060020a03811615801590611213575030600160a060020a031681600160a060020a031614155b151561121e57600080fd5b6000546b033b2e3c9fd0803ce80000009061123f908563ffffffff6110c616565b111561124a57600080fd5b60005461125d908463ffffffff6110c616565b6000908155600160a060020a038516815260016020526040902054611288908463ffffffff6110c616565b600160a060020a0385166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a350600193925050505600a165627a7a72305820314f0b913803be60883cd8c88b7907f69d8ffae07d6dcb0591246a7301eb6aa700290000000000000000000000004b9b85bfec31f8bd5b183339cb155f3d8de114f1000000000000000000000000135338c6033cba64ddff14a06e74c9a15e9f93f5000000000000000000000000446c3c34baf72d1f016e52263d16a45f13b9b128000000000000000000000000eb9821605641389c4c29da5a6b9d94d108c47941000000000000000000000000818cf9a5a26c5164800016c77c90a70c3d6ac71a0000000000000000000000000000000000000000007c13bc4b2c133c560000000000000000000000000000000000000000000000007c13bc4b2c133c56000000

Deployed Bytecode

0x6060604052600436106101665763ffffffff60e060020a600035041663039b267d811461016b57806306fdde031461019a578063095ea7b3146102245780631448b3ca1461025a57806318160ddd1461026d57806323b872dd146102925780632970c9c6146102ba57806330b823f7146102cd578063313ce567146102e05780633b6d05c7146102f35780634000aea01461030657806342966c681461036b5780634693667a146103815780634c25deb5146103a25780634fe2f085146103b557806368c4eb74146103c857806370a08231146103e757806379cc6790146104065780637af8c4f2146104285780638da5cb5b14610447578063945796801461045a57806395d89b4114610479578063a9059cbb1461048c578063b7629dcb146104ae578063cbcabc13146104c1578063d5abeb01146104e0578063db0e16f1146104f3578063dd62ed3e14610515578063f1f732cb1461053a578063f2fde38b1461054d575b600080fd5b341561017657600080fd5b61017e61056c565b604051600160a060020a03909116815260200160405180910390f35b34156101a557600080fd5b6101ad61057b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101e95780820151838201526020016101d1565b50505050905090810190601f1680156102165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022f57600080fd5b610246600160a060020a03600435166024356105b2565b604051901515815260200160405180910390f35b341561026557600080fd5b61017e6105fc565b341561027857600080fd5b61028061060b565b60405190815260200160405180910390f35b341561029d57600080fd5b610246600160a060020a0360043581169060243516604435610611565b34156102c557600080fd5b61028061065d565b34156102d857600080fd5b61017e61066c565b34156102eb57600080fd5b61028061067b565b34156102fe57600080fd5b61017e610680565b341561031157600080fd5b61024660048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061068f95505050505050565b341561037657600080fd5b6102466004356106d2565b341561038c57600080fd5b6103a0600160a060020a036004351661078e565b005b34156103ad57600080fd5b610280610802565b34156103c057600080fd5b610280610811565b34156103d357600080fd5b6103a0600160a060020a0360043516610820565b34156103f257600080fd5b610280600160a060020a0360043516610894565b341561041157600080fd5b610246600160a060020a03600435166024356108af565b341561043357600080fd5b6103a0600160a060020a03600435166109c5565b341561045257600080fd5b61017e610a39565b341561046557600080fd5b6103a0600160a060020a0360043516610a48565b341561048457600080fd5b6101ad610abc565b341561049757600080fd5b610246600160a060020a0360043516602435610af3565b34156104b957600080fd5b61017e610b35565b34156104cc57600080fd5b6103a0600160a060020a0360043516610b44565b34156104eb57600080fd5b610280610bb8565b34156104fe57600080fd5b6103a0600160a060020a0360043516602435610bc8565b341561052057600080fd5b610280600160a060020a0360043581169060243516610c65565b341561054557600080fd5b610280610c90565b341561055857600080fd5b6103a0600160a060020a0360043516610c9f565b600854600160a060020a031681565b60408051908101604052601581527f4d656173757261626c65204461746120546f6b656e0000000000000000000000602082015281565b600082600160a060020a038116158015906105df575030600160a060020a031681600160a060020a031614155b15156105ea57600080fd5b6105f48484610d21565b949350505050565b600454600160a060020a031681565b60005481565b600082600160a060020a0381161580159061063e575030600160a060020a031681600160a060020a031614155b151561064957600080fd5b610654858585610dc7565b95945050505050565b6ac685fa11e01ec6f000000081565b600654600160a060020a031681565b601281565b600554600160a060020a031681565b600083600160a060020a038116158015906106bc575030600160a060020a031681600160a060020a031614155b15156106c757600080fd5b610654858585610ef0565b60035460009033600160a060020a039081169116146106f057600080fd5b600160a060020a033316600090815260016020526040902054610719908363ffffffff610fde16565b600160a060020a03331660009081526001602052604081209190915554610746908363ffffffff610fde16565b600055600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a2506001919050565b60035433600160a060020a039081169116146107a957600080fd5b80600160a060020a038116158015906107d4575030600160a060020a031681600160a060020a031614155b15156107df57600080fd5b5060088054600160a060020a031916600160a060020a0392909216919091179055565b6a7c13bc4b2c133c5600000081565b6a5afd67f2dc0e1b2e00000081565b60035433600160a060020a0390811691161461083b57600080fd5b80600160a060020a03811615801590610866575030600160a060020a031681600160a060020a031614155b151561087157600080fd5b5060078054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a031660009081526001602052604090205490565b600354600090819033600160a060020a039081169116146108cf57600080fd5b50600160a060020a03808416600081815260026020908152604080832033909516835293815283822054928252600190529190912054610915908463ffffffff610fde16565b600160a060020a03851660009081526001602052604090205561093e818463ffffffff610fde16565b600160a060020a038086166000908152600260209081526040808320339094168352929052908120919091555461097b908463ffffffff610fde16565b600055600160a060020a0384167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58460405190815260200160405180910390a25060019392505050565b60035433600160a060020a039081169116146109e057600080fd5b80600160a060020a03811615801590610a0b575030600160a060020a031681600160a060020a031614155b1515610a1657600080fd5b5060048054600160a060020a031916600160a060020a0392909216919091179055565b600354600160a060020a031681565b60035433600160a060020a03908116911614610a6357600080fd5b80600160a060020a03811615801590610a8e575030600160a060020a031681600160a060020a031614155b1515610a9957600080fd5b5060068054600160a060020a031916600160a060020a0392909216919091179055565b60408051908101604052600381527f4d44540000000000000000000000000000000000000000000000000000000000602082015281565b600082600160a060020a03811615801590610b20575030600160a060020a031681600160a060020a031614155b1515610b2b57600080fd5b6105f48484610ff0565b600754600160a060020a031681565b60035433600160a060020a03908116911614610b5f57600080fd5b80600160a060020a03811615801590610b8a575030600160a060020a031681600160a060020a031614155b1515610b9557600080fd5b5060058054600160a060020a031916600160a060020a0392909216919091179055565b6b033b2e3c9fd0803ce800000081565b60035433600160a060020a03908116911614610be357600080fd5b600354600160a060020a038084169163a9059cbb91168360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c4657600080fd5b6102c65a03f11515610c5757600080fd5b505050604051805150505050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b6aa56fa5b99019a5c800000081565b60035433600160a060020a03908116911614610cba57600080fd5b600160a060020a0381161515610ccf57600080fd5b60038054600160a060020a031916600160a060020a03838116918217928390559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000811580610d535750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b1515610d5e57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600080600160a060020a0384161515610ddf57600080fd5b50600160a060020a038085166000908152600260209081526040808320338516845282528083205493871683526001909152902054610e24908463ffffffff6110c616565b600160a060020a038086166000908152600160205260408082209390935590871681522054610e59908463ffffffff610fde16565b600160a060020a038616600090815260016020526040902055610e82818463ffffffff610fde16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b6000610efc8484610ff0565b1515610f0757600080fd5b83600160a060020a031633600160a060020a03167f72db2339068fd324bbc28f2944e01064da539ac76064b6ce4a97a5f81de43dd6858560405182815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610f80578082015183820152602001610f68565b50505050905090810190601f168015610fad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a3610fc4846110dc565b15610fd457610fd48484846110e4565b5060019392505050565b600082821115610fea57fe5b50900390565b6000600160a060020a038316151561100757600080fd5b600160a060020a033316600090815260016020526040902054611030908363ffffffff610fde16565b600160a060020a033381166000908152600160205260408082209390935590851681522054611065908363ffffffff6110c616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000828201838110156110d557fe5b9392505050565b6000903b1190565b82600160a060020a03811663a4c0ed363385856000604051602001526040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561116d578082015183820152602001611155565b50505050905090810190601f16801561119a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15156111ba57600080fd5b6102c65a03f115156111cb57600080fd5b5050506040518051905015156111e057600080fd5b50505050565b600082600160a060020a03811615801590611213575030600160a060020a031681600160a060020a031614155b151561121e57600080fd5b6000546b033b2e3c9fd0803ce80000009061123f908563ffffffff6110c616565b111561124a57600080fd5b60005461125d908463ffffffff6110c616565b6000908155600160a060020a038516815260016020526040902054611288908463ffffffff6110c616565b600160a060020a0385166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a350600193925050505600a165627a7a72305820314f0b913803be60883cd8c88b7907f69d8ffae07d6dcb0591246a7301eb6aa70029

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

0000000000000000000000004b9b85bfec31f8bd5b183339cb155f3d8de114f1000000000000000000000000135338c6033cba64ddff14a06e74c9a15e9f93f5000000000000000000000000446c3c34baf72d1f016e52263d16a45f13b9b128000000000000000000000000eb9821605641389c4c29da5a6b9d94d108c47941000000000000000000000000818cf9a5a26c5164800016c77c90a70c3d6ac71a0000000000000000000000000000000000000000007c13bc4b2c133c560000000000000000000000000000000000000000000000007c13bc4b2c133c56000000

-----Decoded View---------------
Arg [0] : _tokenSaleAddress (address): 0x4b9B85bfEC31F8bD5b183339Cb155f3D8DE114F1
Arg [1] : _mdtTeamAddress (address): 0x135338C6033cba64DdFf14a06E74C9A15E9F93F5
Arg [2] : _userGrowthAddress (address): 0x446c3c34baF72D1F016e52263d16A45f13B9B128
Arg [3] : _investorsAddress (address): 0xeb9821605641389c4C29da5A6b9D94D108C47941
Arg [4] : _mdtFoundationAddress (address): 0x818Cf9A5a26C5164800016c77C90a70C3D6Ac71A
Arg [5] : _presaleAmount (uint256): 150000000000000000000000000
Arg [6] : _earlybirdAmount (uint256): 150000000000000000000000000

-----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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Measurable Data Token (MDT) is a decentralized data exchange ecosystem connecting users, data providers, and data buyers and denominates the value of data.

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.