Contract 0xd97e471695f73d8186deabc1ab5b8765e667cd96

 

TxHash Block Age From To Value [TxFee]
0x928acdb19a56e3c08d690d87e7853bd6a5790c9a6f173f527e503e3f9bc1155a(pending)46 secs ago0x23000152149e4db98259ef7b44c9e37f833fe4dc IN 0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether(Pending)
0x8a1d833716b414685a4b9b4abc4b08cff4850d53aa203a530c68d90e1d64573372568931 min ago0x58c7cc5a2bb3e41de8994400203033390e90894f IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00026134
0x7e30441b2b07b70c6bc7abd4deb4f661233dcdc9980e705b92727d4d2f4927bc72568892 mins ago0x58c7cc5a2bb3e41de8994400203033390e90894f IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00026102
0xf591f0ad4fafccd05e782c120642bdc09acf8ebd8da7444d40e803f9806ed05972568854 mins ago0xb5971094a36ad998da67d895df266e30d32a2fd5 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.001811775
0xe7ccdba882350d397447a4d216c81ea9bf422ea8714ac8e0e96d5d6f83bd2ec772568854 mins ago0x30b79aaa4e9c90eb9316e92842b912583d12a766 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.000362355
0x72674b88add7e0ea8f403e3cff2cd0be35ed843bbb5ef17c65c2f119e2c8227b72568814 mins ago0x58c7cc5a2bb3e41de8994400203033390e90894f IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00026102
0x88a9d4ecaf6fcc379ccd2690aa82fd02d8ea90a132fdac81ecbc9074c94b49b472568777 mins ago0x75bbc7bcce48a068bf021f4d724fd3c842ba89f6 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.000362355
0x7bf8f2a324b00de9104a30162786ae9126217d13ce652dbd4a9f85074c9eaec072568749 mins ago0x92c94bfd26c03b81088e673d745797cb8ccbf2a6 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00040753
0x9447c1eaae54838bcf3fb216eebf4fcc17de88edde842a6a2b3faa7a6a27a37b725686810 mins ago0x41274ecd869e040b0546295252981206e1459aa3 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00026102
0x8568310d1b02c903775caf8015f49c537f0459a6dff8823d2e3aa29380c19033725686412 mins ago0x41274ecd869e040b0546295252981206e1459aa3 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00040753
0x6ca756fa815290db7657016a84004f25c84e56bf1da24ec5e9772ae44b4ee007725686012 mins ago0x7a3a5b3ea2869d8cace4bc4c41ecd9b249f3f6af IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00026198
0xe6fd1e97d72c4176d0799ffa70a234e12ff60534835a9f288002baabd52a007f725685314 mins ago0x7a3a5b3ea2869d8cace4bc4c41ecd9b249f3f6af IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.000244518
0x5674896af3b768ee408a10fce8a09236d9a848fc95897148b9c8b137d92f265c725685314 mins ago0xf0105322f9dfabf5c793f49680e26265e6acb956 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.000112104
0xddd6b51067896b42640b8eec474341166303d396096f43ef79047afa24d419f6725684516 mins ago0x1ddaad95c45be2f1a90cda1486b160ae9d8baad4 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.000326024
0x495cdda44c2eb646e80c30ae2db845d2e14a337d948b2a1ebe6b49689cc84718725683916 mins ago0x64f6406e44c9f40555418a3f0a8ac17ede1c9e0a IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.000362355
0xc1cce93e05ddfa1c72f248d7b339149b6e69c170f88ee8b304bd9d324038d82d725683717 mins ago0x526a10e63d37d0682091265b43e1e59d93050bb1 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.000362355
0xd4b1448967111b131ab16657ee81059f7097f0657683df805c701e776e48d766725682718 mins ago0x3e41773c6af23a39d7e3ad813af2386926a84c75 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00040753
0x236caa46498317b5cff8a0b506544330f7ffdfcd2557f0e394a9461bd6f2a77c725682021 mins ago0xcdab2e7d80576bf2bb58481a347f56a20032ff77 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00018652
0x7b9870f5a173316a83ffce713ea9a983fd73c1cbbf07177b93286026826ff958725682021 mins ago0x9470ab7fd991d44f7a97beeed01842acdc0686e1 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00040753
0x41499a86ce0989a0310c9086446672a73d7f0ecc0942c5b445daa251c3c09f45725681922 mins ago0x223a13273e31052784fcf84e48d89acaebbf5f5f IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00018684
0xcd7a60365f187b15d02a9c7a269123fe1e77e3236822d3a905c1e0901697c156725681323 mins ago0x1c13e43444eee0211901e4e79e2aba793d33fa53 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00018684
0x21f3c64d57b6c49d5c477b7d3e4885c2b6ed7989cc752a9e71acaa1972814582725680227 mins ago0xc073d5ae856fd006d9bd4d0c461166ab5d133b60 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00026102
0x2b995fb2b46b28d381c31c4ff954b4a354b1c4411c40e4363eedcf0a84893146725679829 mins ago0x1c13e43444eee0211901e4e79e2aba793d33fa53 IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00020257
0x3e922278e45c23203e7e004e4efb37d2a761a5f4adc664b44ef885c3db9f9338725678931 mins ago0x178c77ca37ed3aa95bf2bf9b209feb39abd8668b IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00045655
0x2aaabfd039b635e922d46dfd9fde25af03ffb1c5648bcb213692a47f10d184d0725678732 mins ago0xc946f02ed70579aec1c0fcc52900e442981b5ecf IN  0xd97e471695f73d8186deabc1ab5b8765e667cd960 Ether0.00026134
[ Download CSV Export 

Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: EmcoToken
Compiler Version: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimizer):  200


Contract Source Code
pragma solidity 0.4.24;
/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  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 a / b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
    c = a + b;
    assert(c >= a);
    return c;
  }
}


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  function totalSupply() public view returns (uint256);
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender)
    public view returns (uint256);

  function transferFrom(address from, address to, uint256 value)
    public returns (bool);

  function approve(address spender, uint256 value) public returns (bool);
  event Approval(
    address indexed owner,
    address indexed spender,
    uint256 value
  );
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

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

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

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

}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) internal 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 amount of tokens to be transferred
   */
  function transferFrom(
    address _from,
    address _to,
    uint256 _value
  )
    public
    returns (bool)
  {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

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

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    emit 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 specifying the amount of tokens still available for the spender.
   */
  function allowance(
    address _owner,
    address _spender
   )
    public
    view
    returns (uint256)
  {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(
    address _spender,
    uint _addedValue
  )
    public
    returns (bool)
  {
    allowed[msg.sender][_spender] = (
      allowed[msg.sender][_spender].add(_addedValue));
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(
    address _spender,
    uint _subtractedValue
  )
    public
    returns (bool)
  {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() 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 relinquish control of the contract.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipRenounced(owner);
    owner = address(0);
  }

  /**
   * @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 {
    _transferOwnership(_newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address _newOwner) internal {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }
}

/**
* @title Emco token
* @dev Emco token implementation
*/
contract EmcoToken is StandardToken, Ownable {

	string public constant name = "EmcoToken";
	string public constant symbol = "EMCO";
	uint8 public constant decimals = 18;

	uint public constant INITIAL_SUPPLY = 1500000 * (10 ** uint(decimals));
	uint public constant MAX_SUPPLY = 36000000 * (10 ** uint(decimals));

	mapping (address => uint) public miningBalances;
	mapping (address => uint) public lastMiningBalanceUpdateTime;

	address systemAddress;

	uint public constant DAY_MINING_DEPOSIT_LIMIT = 360000 * (10 ** uint(decimals));
	uint public constant TOTAL_MINING_DEPOSIT_LIMIT = 3600000 * (10 ** uint(decimals));
	uint currentDay;
	uint currentDayDeposited;
	uint public miningTotalDeposited;

	mapping(address => bytes32) public userReferralCodes;
	mapping(bytes32 => address) public referralCodeOwners;
	mapping(address => address) public referrals;

	event Mine(address indexed beneficiary, uint value);

	event MiningBalanceUpdated(address indexed owner, uint amount, bool isDeposit);

	constructor() public {
		balances[msg.sender] = INITIAL_SUPPLY;
		systemAddress = msg.sender;
		totalSupply_ = INITIAL_SUPPLY;
		emit Transfer(0x0, msg.sender, INITIAL_SUPPLY);
	}

	function setReferralCode(bytes32 _code) public returns (bytes32) {
		require(_code != "", "Ref code should not be empty");
		require(referralCodeOwners[_code] == address(0), "This referral code is already used");
		require(userReferralCodes[msg.sender] == "", "Referal code is already set");
		userReferralCodes[msg.sender] = _code;
		referralCodeOwners[_code] = msg.sender;
		return userReferralCodes[msg.sender];
	}

	function setReferral(bytes32 _code) public {
		require(referralCodeOwners[_code] != address(0), "Invalid referral code");
		require(referrals[msg.sender] == address(0), "You already have a referrer");
		address referrer = referralCodeOwners[_code];
		require(referrer != msg.sender, "Can not invite yourself");
		referrals[msg.sender] = referrer;
	}

	/**
	* @dev Gets the balance of specified address (amount of tokens on main balance 
	* plus amount of tokens on mining balance).
	* @param _owner The address to query the balance of.
	* @return An uint256 representing the amount owned by the passed address.
	*/
	function balanceOf(address _owner) public view returns (uint balance) {
		return balances[_owner].add(miningBalances[_owner]);
	}

	/**
	* @dev Gets the mining balance if caller.
	* @param _owner The address to query the balance of.
	* @return An uint256 representing the amount of tokens of caller's mining balance
	*/
	function miningBalanceOf(address _owner) public view returns (uint balance) {
		return miningBalances[_owner];
	}

	/**
	* @dev Moves specified amount of tokens from main balance to mining balance 
	* @param _amount An uint256 representing the amount of tokens to transfer to main balance
	*/
	function depositToMiningBalance(uint _amount) public {
		require(balances[msg.sender] >= _amount, "not enough tokens");
		require(getCurrentDayDeposited().add(_amount) <= DAY_MINING_DEPOSIT_LIMIT,
			"Day mining deposit exceeded");
		require(miningTotalDeposited.add(_amount) <= TOTAL_MINING_DEPOSIT_LIMIT,
			"Total mining deposit exceeded");

		balances[msg.sender] = balances[msg.sender].sub(_amount);
		miningBalances[msg.sender] = miningBalances[msg.sender].add(_amount);
		miningTotalDeposited = miningTotalDeposited.add(_amount);
		updateCurrentDayDeposited(_amount);
		lastMiningBalanceUpdateTime[msg.sender] = now;
		emit MiningBalanceUpdated(msg.sender, _amount, true);
	}

	/**
	* @dev Moves specified amount of tokens from mining balance to main balance
	* @param _amount An uint256 representing the amount of tokens to transfer to mining balance
	*/
	function withdrawFromMiningBalance(uint _amount) public {
		require(miningBalances[msg.sender] >= _amount, "not enough tokens on mining balance");

		miningBalances[msg.sender] = miningBalances[msg.sender].sub(_amount);
		balances[msg.sender] = balances[msg.sender].add(_amount);

		//updating mining limits
		miningTotalDeposited.sub(_amount);
		lastMiningBalanceUpdateTime[msg.sender] = now;
		emit MiningBalanceUpdated(msg.sender, _amount, false);
	}

	/**
	* @dev Mine tokens. For every 24h for each user�s token on mining balance, 
	* 1% is burnt on mining balance and Reward % is minted to the main balance. 15% fee of difference 
	* between minted coins and burnt coins goes to system address.
	*/ 
	function mine() public {
		require(totalSupply_ < MAX_SUPPLY, "mining is over");
		uint reward = getReward(totalSupply_);
		uint daysForReward = getDaysForReward();

		uint mintedAmount = miningBalances[msg.sender].mul(reward.sub(1000000000))
										.mul(daysForReward).div(100000000000);
		require(mintedAmount != 0, "mining will not produce any reward");

		uint amountToBurn = miningBalances[msg.sender].mul(daysForReward).div(100);

		//check exceeding max number of tokens
		if(totalSupply_.add(mintedAmount) > MAX_SUPPLY) {
			uint availableToMint = MAX_SUPPLY.sub(totalSupply_);
			amountToBurn = availableToMint.div(mintedAmount).mul(amountToBurn);
			mintedAmount = availableToMint;
		}

		totalSupply_ = totalSupply_.add(mintedAmount);

		miningBalances[msg.sender] = miningBalances[msg.sender].sub(amountToBurn);
		balances[msg.sender] = balances[msg.sender].add(amountToBurn);

		uint userReward;
		uint referrerReward = 0;
		address referrer = referrals[msg.sender];
		
		if(referrer == address(0)) {
			userReward = mintedAmount.mul(85).div(100);
		} else {
			userReward = mintedAmount.mul(86).div(100);
			referrerReward = mintedAmount.div(100);
			balances[referrer] = balances[referrer].add(referrerReward);
			emit Mine(referrer, referrerReward);
			emit Transfer(address(0), referrer, referrerReward);
		}
		balances[msg.sender] = balances[msg.sender].add(userReward);

		emit Mine(msg.sender, userReward);
		emit Transfer(address(0), msg.sender, userReward);

		//update limits
		miningTotalDeposited = miningTotalDeposited.sub(amountToBurn);
		emit MiningBalanceUpdated(msg.sender, amountToBurn, false);

		//set system fee
		uint systemFee = mintedAmount.sub(userReward).sub(referrerReward);
		balances[systemAddress] = balances[systemAddress].add(systemFee);

		emit Mine(systemAddress, systemFee);
		emit Transfer(address(0), systemAddress, systemFee);

		lastMiningBalanceUpdateTime[msg.sender] = now;
	}

	/**
	* @dev Set system address
	* @param _systemAddress An address to set
	*/
	function setSystemAddress(address _systemAddress) public onlyOwner {
		systemAddress = _systemAddress;
	}

	/**
	* @dev Get sum of deposits to mining accounts for current day
	*/
	function getCurrentDayDeposited() public view returns (uint) {
		if(now / 1 days == currentDay) {
			return currentDayDeposited;
		} else {
			return 0;
		}
	}

	/**
	* @dev Get number of days for reward on mining. Maximum 100 days.
	* @return An uint256 representing number of days user will get reward for.
	*/
	function getDaysForReward() public view returns (uint rewardDaysNum){
		if(lastMiningBalanceUpdateTime[msg.sender] == 0) {
			return 0;
		} else {
			uint value = (now - lastMiningBalanceUpdateTime[msg.sender]) / (1 days);
			if(value > 100) {
				return 100;
			} else {
				return value;
			}
		}
	}

	/**
	* @dev Calculate current mining reward based on total supply of tokens
	* @return An uint256 representing reward in percents multiplied by 1000000000
	*/
	function getReward(uint _totalSupply) public pure returns (uint rewardPercent){
		uint rewardFactor = 1000000 * (10 ** uint256(decimals));
		uint decreaseFactor = 41666666;

		if(_totalSupply < 23 * rewardFactor) {
			return 2000000000 - (decreaseFactor.mul(_totalSupply.div(rewardFactor)));
		}

		if(_totalSupply < MAX_SUPPLY) {
			return 1041666666;
		} else {
			return 1000000000;
		} 
	}

	function updateCurrentDayDeposited(uint _addedTokens) private {
		if(now / 1 days == currentDay) {
			currentDayDeposited = currentDayDeposited.add(_addedTokens);
		} else {
			currentDay = now / 1 days;
			currentDayDeposited = _addedTokens;
		}
	}

}

Contract ABI
[{"constant":true,"inputs":[],"name":"TOTAL_MINING_DEPOSIT_LIMIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_systemAddress","type":"address"}],"name":"setSystemAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"DAY_MINING_DEPOSIT_LIMIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_totalSupply","type":"uint256"}],"name":"getReward","outputs":[{"name":"rewardPercent","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getDaysForReward","outputs":[{"name":"rewardDaysNum","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":false,"inputs":[{"name":"_code","type":"bytes32"}],"name":"setReferralCode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_code","type":"bytes32"}],"name":"setReferral","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"withdrawFromMiningBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"miningTotalDeposited","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"referralCodeOwners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lastMiningBalanceUpdateTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"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":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mine","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"userReferralCodes","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referrals","outputs":[{"name":"","type":"address"}],"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":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"depositToMiningBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"miningBalances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"miningBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentDayDeposited","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mine","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"isDeposit","type":"bool"}],"name":"MiningBalanceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":"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
608060405234801561001057600080fd5b506003805433600160a060020a031991821681179092556000828152602081815260408083206a013da329b633647180000090819055600680549095168617909455600184905580519384525191927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3611af5806100996000396000f3006080604052600436106101ab5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630557cac081146101b057806306210197146101d757806306fdde03146101fa578063095ea7b31461028457806317d40160146102bc57806318160ddd146102d15780631c4b774b146102e65780631dcf0dd8146102fe57806323b872dd146103135780632d5aa3ad1461033d5780632ff2e9dc14610355578063313ce5671461036a57806332cb6b0c1461039557806338b3ee85146103aa5780634a207b75146103c257806355ae74d6146103da5780635d430302146103ef57806362b347bc14610423578063661884631461044457806370a0823114610468578063715018a6146104895780638da5cb5b1461049e57806395d89b41146104b357806399f4b251146104c85780639b2c76d4146104dd5780639ca423b3146104fe578063a9059cbb1461051f578063b1e5e92814610543578063c0c9b55a1461055b578063d73dd6231461057c578063dd62ed3e146105a0578063f2fde38b146105c7578063fca4bfdf146105e8578063ff3aac9914610609575b600080fd5b3480156101bc57600080fd5b506101c561061e565b60408051918252519081900360200190f35b3480156101e357600080fd5b506101f8600160a060020a036004351661062d565b005b34801561020657600080fd5b5061020f610673565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610249578181015183820152602001610231565b50505050905090810190601f1680156102765780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029057600080fd5b506102a8600160a060020a03600435166024356106aa565b604080519115158252519081900360200190f35b3480156102c857600080fd5b506101c5610711565b3480156102dd57600080fd5b506101c561071f565b3480156102f257600080fd5b506101c5600435610726565b34801561030a57600080fd5b506101c56107a6565b34801561031f57600080fd5b506102a8600160a060020a03600435811690602435166044356107fb565b34801561034957600080fd5b506101c5600435610960565b34801561036157600080fd5b506101c5610af7565b34801561037657600080fd5b5061037f610b06565b6040805160ff9092168252519081900360200190f35b3480156103a157600080fd5b506101c5610b0b565b3480156103b657600080fd5b506101f8600435610b1a565b3480156103ce57600080fd5b506101f8600435610ca4565b3480156103e657600080fd5b506101c5610df1565b3480156103fb57600080fd5b50610407600435610df7565b60408051600160a060020a039092168252519081900360200190f35b34801561042f57600080fd5b506101c5600160a060020a0360043516610e12565b34801561045057600080fd5b506102a8600160a060020a0360043516602435610e24565b34801561047457600080fd5b506101c5600160a060020a0360043516610f14565b34801561049557600080fd5b506101f8610f46565b3480156104aa57600080fd5b50610407610fb4565b3480156104bf57600080fd5b5061020f610fc3565b3480156104d457600080fd5b506101f8610ffa565b3480156104e957600080fd5b506101c5600160a060020a0360043516611540565b34801561050a57600080fd5b50610407600160a060020a0360043516611552565b34801561052b57600080fd5b506102a8600160a060020a036004351660243561156d565b34801561054f57600080fd5b506101f860043561163c565b34801561056757600080fd5b506101c5600160a060020a036004351661185f565b34801561058857600080fd5b506102a8600160a060020a0360043516602435611871565b3480156105ac57600080fd5b506101c5600160a060020a036004358116906024351661190a565b3480156105d357600080fd5b506101f8600160a060020a0360043516611935565b3480156105f457600080fd5b506101c5600160a060020a0360043516611958565b34801561061557600080fd5b506101c5611973565b6a02fa54641bae8aaa00000081565b600354600160a060020a0316331461064457600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60408051808201909152600981527f456d636f546f6b656e0000000000000000000000000000000000000000000000602082015281565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b694c3ba39c5e411100000081565b6001545b90565b600069d3c21bcecceda100000063027bc86a6a1306707f946959770000008410156107785761076b61075e858463ffffffff61199616565b829063ffffffff6119ab16565b637735940003925061079f565b6a1dc74be914d16aa400000084101561079757633e16926a925061079f565b633b9aca0092505b5050919050565b33600090815260056020526040812054819015156107c757600091506107f7565b336000908152600560205260409020546201518090420304905060648111156107f357606491506107f7565b8091505b5090565b6000600160a060020a038316151561081257600080fd5b600160a060020a03841660009081526020819052604090205482111561083757600080fd5b600160a060020a038416600090815260026020908152604080832033845290915290205482111561086757600080fd5b600160a060020a038416600090815260208190526040902054610890908363ffffffff6119d416565b600160a060020a0380861660009081526020819052604080822093909355908516815220546108c5908363ffffffff6119e616565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610907908363ffffffff6119d416565b600160a060020a0380861660008181526002602090815260408083203384528252918290209490945580518681529051928716939192600080516020611aaa833981519152929181900390910190a35060019392505050565b60008115156109b9576040805160e560020a62461bcd02815260206004820152601c60248201527f52656620636f64652073686f756c64206e6f7420626520656d70747900000000604482015290519081900360640190fd5b6000828152600b6020526040902054600160a060020a031615610a4c576040805160e560020a62461bcd02815260206004820152602260248201527f5468697320726566657272616c20636f646520697320616c726561647920757360448201527f6564000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b336000908152600a602052604090205415610ab1576040805160e560020a62461bcd02815260206004820152601b60248201527f5265666572616c20636f646520697320616c7265616479207365740000000000604482015290519081900360640190fd5b50336000818152600a60208181526040808420868155958452600b82528320805473ffffffffffffffffffffffffffffffffffffffff1916851790559290915290525490565b6a013da329b633647180000081565b601281565b6a1dc74be914d16aa400000081565b6000818152600b6020526040812054600160a060020a03161515610b88576040805160e560020a62461bcd02815260206004820152601560248201527f496e76616c696420726566657272616c20636f64650000000000000000000000604482015290519081900360640190fd5b336000908152600c6020526040902054600160a060020a031615610bf6576040805160e560020a62461bcd02815260206004820152601b60248201527f596f7520616c7265616479206861766520612072656665727265720000000000604482015290519081900360640190fd5b506000818152600b6020526040902054600160a060020a031633811415610c67576040805160e560020a62461bcd02815260206004820152601760248201527f43616e206e6f7420696e7669746520796f757273656c66000000000000000000604482015290519081900360640190fd5b336000908152600c60205260409020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905550565b33600090815260046020526040902054811115610d31576040805160e560020a62461bcd02815260206004820152602360248201527f6e6f7420656e6f75676820746f6b656e73206f6e206d696e696e672062616c6160448201527f6e63650000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600090815260046020526040902054610d51908263ffffffff6119d416565b336000908152600460209081526040808320939093558190522054610d7c908263ffffffff6119e616565b33600090815260208190526040902055600954610d9f908263ffffffff6119d416565b5033600081815260056020908152604080832042905580518581529182019290925281517f822ade8c81d527897e088fa789edb7c459003f063f4f89c9d7fe43a0b0da10f3929181900390910190a250565b60095481565b600b60205260009081526040902054600160a060020a031681565b60056020526000908152604090205481565b336000908152600260209081526040808320600160a060020a038616845290915281205480831115610e7957336000908152600260209081526040808320600160a060020a0388168452909152812055610eae565b610e89818463ffffffff6119d416565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600160a060020a0381166000908152600460209081526040808320549183905282205461070b9163ffffffff6119e616565b600354600160a060020a03163314610f5d57600080fd5b600354604051600160a060020a03909116907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a26003805473ffffffffffffffffffffffffffffffffffffffff19169055565b600354600160a060020a031681565b60408051808201909152600481527f454d434f00000000000000000000000000000000000000000000000000000000602082015281565b6000806000806000806000806000601260ff16600a0a630225510002600154101515611070576040805160e560020a62461bcd02815260206004820152600e60248201527f6d696e696e67206973206f766572000000000000000000000000000000000000604482015290519081900360640190fd5b61107b600154610726565b98506110856107a6565b97506110df64174876e8006110d38a6110c76110ab8e633b9aca0063ffffffff6119d416565b336000908152600460205260409020549063ffffffff6119ab16565b9063ffffffff6119ab16565b9063ffffffff61199616565b965086151561115e576040805160e560020a62461bcd02815260206004820152602260248201527f6d696e696e672077696c6c206e6f742070726f6475636520616e79207265776160448201527f7264000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b33600090815260046020526040902054611185906064906110d3908b63ffffffff6119ab16565b6001549096506a1dc74be914d16aa4000000906111a8908963ffffffff6119e616565b11156111e9576001546111cd906a1dc74be914d16aa40000009063ffffffff6119d416565b94506111e3866110c7878a63ffffffff61199616565b95508496505b6001546111fc908863ffffffff6119e616565b6001553360009081526004602052604090205461121f908763ffffffff6119d416565b33600090815260046020908152604080832093909355819052205461124a908763ffffffff6119e616565b3360009081526020818152604080832093909355600c905290812054909350600160a060020a031691508115156112985761129160646110d389605563ffffffff6119ab16565b935061136d565b6112ae60646110d389605663ffffffff6119ab16565b93506112c187606463ffffffff61199616565b600160a060020a0383166000908152602081905260409020549093506112ed908463ffffffff6119e616565b600160a060020a03831660008181526020818152604091829020939093558051868152905191927ff23a961744a760027f8811c59a0eaef0d29cf965578b17412bcc375b52fa39d192918290030190a2604080518481529051600160a060020a03841691600091600080516020611aaa8339815191529181900360200190a35b3360009081526020819052604090205461138d908563ffffffff6119e616565b3360008181526020818152604091829020939093558051878152905191927ff23a961744a760027f8811c59a0eaef0d29cf965578b17412bcc375b52fa39d192918290030190a26040805185815290513391600091600080516020611aaa8339815191529181900360200190a360095461140d908763ffffffff6119d416565b6009556040805187815260006020820152815133927f822ade8c81d527897e088fa789edb7c459003f063f4f89c9d7fe43a0b0da10f3928290030190a261146a8361145e898763ffffffff6119d416565b9063ffffffff6119d416565b600654600160a060020a0316600090815260208190526040902054909150611498908263ffffffff6119e616565b60068054600160a060020a0390811660009081526020818152604091829020949094559154825185815292519116927ff23a961744a760027f8811c59a0eaef0d29cf965578b17412bcc375b52fa39d1928290030190a2600654604080518381529051600160a060020a0390921691600091600080516020611aaa833981519152919081900360200190a3505033600090815260056020526040902042905550505050505050565b600a6020526000908152604090205481565b600c60205260009081526040902054600160a060020a031681565b6000600160a060020a038316151561158457600080fd5b336000908152602081905260409020548211156115a057600080fd5b336000908152602081905260409020546115c0908363ffffffff6119d416565b3360009081526020819052604080822092909255600160a060020a038516815220546115f2908363ffffffff6119e616565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611aaa8339815191529281900390910190a350600192915050565b336000908152602081905260409020548111156116a3576040805160e560020a62461bcd02815260206004820152601160248201527f6e6f7420656e6f75676820746f6b656e73000000000000000000000000000000604482015290519081900360640190fd5b694c3ba39c5e41110000006116c6826116ba611973565b9063ffffffff6119e616565b111561171c576040805160e560020a62461bcd02815260206004820152601b60248201527f446179206d696e696e67206465706f7369742065786365656465640000000000604482015290519081900360640190fd5b6009546a02fa54641bae8aaa0000009061173c908363ffffffff6119e616565b1115611792576040805160e560020a62461bcd02815260206004820152601d60248201527f546f74616c206d696e696e67206465706f736974206578636565646564000000604482015290519081900360640190fd5b336000908152602081905260409020546117b2908263ffffffff6119d416565b33600090815260208181526040808320939093556004905220546117dc908263ffffffff6119e616565b336000908152600460205260409020556009546117ff908263ffffffff6119e616565b60095561180b816119f3565b33600081815260056020908152604091829020429055815184815260019181019190915281517f822ade8c81d527897e088fa789edb7c459003f063f4f89c9d7fe43a0b0da10f3929181900390910190a250565b60046020526000908152604090205481565b336000908152600260209081526040808320600160a060020a03861684529091528120546118a5908363ffffffff6119e616565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b600354600160a060020a0316331461194c57600080fd5b61195581611a2b565b50565b600160a060020a031660009081526004602052604090205490565b600754600090620151804204141561198e5750600854610723565b506000610723565b600081838115156119a357fe5b049392505050565b60008215156119bc5750600061070b565b508181028183828115156119cc57fe5b041461070b57fe5b6000828211156119e057fe5b50900390565b8181018281101561070b57fe5b6007546201518042041415611a1d57600854611a15908263ffffffff6119e616565b600855611955565b620151804204600755600855565b600160a060020a0381161515611a4057600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c189e63afbb9179236d1708615a937d530a465bcdec5d276e9e295c080fdab860029


   Swarm Source:
bzzr://c189e63afbb9179236d1708615a937d530a465bcdec5d276e9e295c080fdab86
Block Age transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.