ETH Price: $2,678.28 (+1.35%)

Contract

0xfACC5b21597487575667Dde047Fc6E5d58BDaE55
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer47541742017-12-18 11:42:242611 days ago1513597344IN
0xfACC5b21...d58BDaE55
0.1 ETH0.0031011721
Start47501502017-12-17 19:33:142611 days ago1513539194IN
0xfACC5b21...d58BDaE55
0 ETH0.0012485820

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block
From
To
47541742017-12-18 11:42:242611 days ago1513597344
0xfACC5b21...d58BDaE55
0.1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Crowdsale

Compiler Version
v0.4.15+commit.bbb8e64f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-18
*/

pragma solidity ^0.4.15;

contract Ownable {
  address public owner;


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

}

contract Pausable is Ownable {
  bool public stopped;

  modifier stopInEmergency {
    require(!stopped);
    _;
  }
  
  modifier onlyInEmergency {
    require(stopped);
    _;
  }

  // called by the owner on emergency, triggers stopped state
  function emergencyStop() external onlyOwner {
    stopped = true;
  }

  // called by the owner on end of emergency, returns to normal state
  function release() external onlyOwner onlyInEmergency {
    stopped = false;
  }

}

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

  function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

contract PullPayment {
  using SafeMath for uint256;

  mapping(address => uint256) public payments;
  uint256 public totalPayments;

  /**
  * @dev Called by the payer to store the sent amount as credit to be pulled.
  * @param dest The destination address of the funds.
  * @param amount The amount to transfer.
  */
  function asyncSend(address dest, uint256 amount) internal {
    payments[dest] = payments[dest].add(amount);
    totalPayments = totalPayments.add(amount);
  }

  /**
  * @dev withdraw accumulated balance, called by payee.
  */
  function withdrawPayments() {
    address payee = msg.sender;
    uint256 payment = payments[payee];

    require(payment != 0);
    require(this.balance >= payment);

    totalPayments = totalPayments.sub(payment);
    payments[payee] = 0;

    assert(payee.send(payment));
  }
}

contract Crowdsale is Pausable, PullPayment {

    using SafeMath for uint;

  	struct Backer {
		uint weiReceived; // Amount of Ether given
		uint256 coinSent;
	}


	/*
	* Constants
	*/
	/* Minimum number of DARFtoken to sell */
	uint public constant MIN_CAP = 100000 ether; // 100,000 DARFtokens

	/* Maximum number of DARFtoken to sell */
	uint public constant MAX_CAP = 8000000 ether; // 8,000,000 DARFtokens

	/* Minimum amount to BUY */
	uint public constant MIN_BUY_ETHER = 100 finney;

    /*
    If backer buy over 1 000 000 DARF (2000 Ether) he/she can clame to become an investor after signing additional agreement with KYC procedure and get 1% of project profit per every 1 000 000 DARF
    */
    struct Potential_Investor {
		uint weiReceived; // Amount of Ether given
		uint256 coinSent;
        uint  profitshare; // Amount of Ether given
    }
    uint public constant MIN_INVEST_BUY = 2000 ether;

    /* But only 49%  of profit can be distributed this way for bakers who will be first
    */

    uint  public  MAX_INVEST_SHARE = 4900; //  4900 from 10000 is 49%, becouse Soliditi stil don't support fixed

/* Crowdsale period */
	uint private constant CROWDSALE_PERIOD = 62 days;

	/* Number of DARFtokens per Ether */
	uint public constant COIN_PER_ETHER = 500; // 500 DARF per ether

	uint public constant BIGSELL = COIN_PER_ETHER * 100 ether; // when 1 buy is over 50000 DARF (or 100 ether), in means additional bonus 30%


	/*
	* Variables
	*/
	/* DARFtoken contract reference */
	DARFtoken public coin;

    /* Multisig contract that will receive the Ether */
	address public multisigEther;

	/* Number of Ether received */
	uint public etherReceived;

	/* Number of DARFtokens sent to Ether contributors */
	uint public coinSentToEther;

	/* Number of DARFtokens sent to potential investors */
	uint public invcoinSentToEther;


	/* Crowdsale start time */
	uint public startTime;

	/* Crowdsale end time */
	uint public endTime;

 	/* Is crowdsale still on going */
	bool public crowdsaleClosed;

	/* Backers Ether indexed by their Ethereum address */
	mapping(address => Backer) public backers;

    mapping(address => Potential_Investor) public Potential_Investors; // list of potential investors


	/*
	* Modifiers
	*/
	modifier minCapNotReached() {
		require(!((now < endTime) || coinSentToEther >= MIN_CAP ));
		_;
	}

	modifier respectTimeFrame() {
		require(!((now < startTime) || (now > endTime )));
		_;
	}

	/*
	 * Event
	*/
	event LogReceivedETH(address addr, uint value);
	event LogCoinsEmited(address indexed from, uint amount);
	event LogInvestshare(address indexed from, uint share);

	/*
	 * Constructor
	*/
	function Crowdsale(address _DARFtokenAddress, address _to) {
		coin = DARFtoken(_DARFtokenAddress);
		multisigEther = _to;
	}

	/*
	 * The fallback function corresponds to a donation in ETH
	 */
	function() stopInEmergency respectTimeFrame payable {
		receiveETH(msg.sender);
	}

	/*
	 * To call to start the crowdsale
	 */
	function start() onlyOwner {
		require (startTime == 0);

		startTime = now ;
		endTime =  now + CROWDSALE_PERIOD;
	}

	/*
	 *	Receives a donation in Ether
	*/
	function receiveETH(address beneficiary) internal {
		require(!(msg.value < MIN_BUY_ETHER)); // Don't accept funding under a predefined threshold
        if (multisigEther ==  beneficiary) return ; // Don't pay tokens if team refund ethers
    uint coinToSend = bonus(msg.value.mul(COIN_PER_ETHER));// Compute the number of DARFtoken to send
		require(!(coinToSend.add(coinSentToEther) > MAX_CAP));

        Backer backer = backers[beneficiary];
		coin.transfer(beneficiary, coinToSend); // Transfer DARFtokens right now

		backer.coinSent = backer.coinSent.add(coinToSend);
		backer.weiReceived = backer.weiReceived.add(msg.value); // Update the total wei collected during the crowdfunding for this backer
        multisigEther.send(msg.value);

        if (backer.weiReceived > MIN_INVEST_BUY) {

            // calculate profit share
            uint share = msg.value.mul(10000).div(MIN_INVEST_BUY); // 100 = 1% from 10000
			// compare to all profit share will LT 49%
			LogInvestshare(msg.sender,share);
			if (MAX_INVEST_SHARE > share) {

				Potential_Investor potential_investor = Potential_Investors[beneficiary];
				potential_investor.coinSent = backer.coinSent;
				potential_investor.weiReceived = backer.weiReceived; // Update the total wei collected during the crowdfunding for this potential investor
                // add share to potential_investor
				if (potential_investor.profitshare == 0 ) {
					uint startshare = potential_investor.weiReceived.mul(10000).div(MIN_INVEST_BUY);
					MAX_INVEST_SHARE = MAX_INVEST_SHARE.sub(startshare);
					potential_investor.profitshare = potential_investor.profitshare.add(startshare);
				} else {
					MAX_INVEST_SHARE = MAX_INVEST_SHARE.sub(share);
					potential_investor.profitshare = potential_investor.profitshare.add(share);
					LogInvestshare(msg.sender,potential_investor.profitshare);

				}
            }

        }

		etherReceived = etherReceived.add(msg.value); // Update the total wei collected during the crowdfunding
		coinSentToEther = coinSentToEther.add(coinToSend);

		// Send events
		LogCoinsEmited(msg.sender ,coinToSend);
		LogReceivedETH(beneficiary, etherReceived);
	}


	/*
	 *Compute the DARFtoken bonus according to the BUYment period
	 */
	function bonus(uint256 amount) internal constant returns (uint256) {
		/*
			25%in the first 15 days
			20% 16 days 18 days
			15% 19 days 21 days
			10% 22 days 24 days
			5% from 25 days to 27 days
			0% from 28 days to 42 days

			*/

		if (amount >=  BIGSELL ) {
				amount = amount.add(amount.div(10).mul(3));
		}// bonus 30% to buying  over 50000 DARF
		if (now < startTime.add(16 days)) return amount.add(amount.div(4));   // bonus 25%
		if (now < startTime.add(18 days)) return amount.add(amount.div(5));   // bonus 20%
		if (now < startTime.add(22 days)) return amount.add(amount.div(20).mul(3));   // bonus 15%
		if (now < startTime.add(25 days)) return amount.add(amount.div(10));   // bonus 10%
		if (now < startTime.add(28 days)) return amount.add(amount.div(20));   // bonus 5


		return amount;
	}

/*
 * Finalize the crowdsale, should be called after the refund period
*/
	function finalize() onlyOwner public {

		if (now < endTime) { // Cannot finalise before CROWDSALE_PERIOD or before selling all coins
			require (coinSentToEther == MAX_CAP);
		}

		require(!(coinSentToEther < MIN_CAP && now < endTime + 15 days)); // If MIN_CAP is not reached donors have 15days to get refund before we can finalise

		require(multisigEther.send(this.balance)); // Move the remaining Ether to the multisig address

		uint remains = coin.balanceOf(this);
		// No burn all of my precisiossss!
		// if (remains > 0) { // Burn the rest of DARFtokens
		//	require(coin.burn(remains)) ;
		//}
		crowdsaleClosed = true;
	}

	/*
	* Failsafe drain
	*/
	function drain() onlyOwner {
		require(owner.send(this.balance)) ;
	}

	/**
	 * Allow to change the team multisig address in the case of emergency.
	 */
	function setMultisig(address addr) onlyOwner public {
		require(addr != address(0)) ;
		multisigEther = addr;
	}

	/**
	 * Manually back DARFtoken owner address.
	 */
	function backDARFtokenOwner() onlyOwner public {
		coin.transferOwnership(owner);
	}

	/**
	 * Transfer remains to owner in case if impossible to do min BUY
	 */
	function getRemainCoins() onlyOwner public {
		var remains = MAX_CAP - coinSentToEther;
		uint minCoinsToSell = bonus(MIN_BUY_ETHER.mul(COIN_PER_ETHER) / (1 ether));

		require(!(remains > minCoinsToSell));

		Backer backer = backers[owner];
		coin.transfer(owner, remains); // Transfer DARFtokens right now

		backer.coinSent = backer.coinSent.add(remains);


        coinSentToEther = coinSentToEther.add(remains);

		// Send events
		LogCoinsEmited(this ,remains);
		LogReceivedETH(owner, etherReceived);
	}


	/*
  	 * When MIN_CAP is not reach:
  	 * 1) backer call the "approve" function of the DARFtoken token contract with the amount of all DARFtokens they got in order to be refund
  	 * 2) backer call the "refund" function of the Crowdsale contract with the same amount of DARFtokens
   	 * 3) backer call the "withdrawPayments" function of the Crowdsale contract to get a refund in ETH
   	 */
	function refund(uint _value) minCapNotReached public {

		require (_value == backers[msg.sender].coinSent) ; // compare value from backer balance

		coin.transferFrom(msg.sender, address(this), _value); // get the token back to the crowdsale contract
		// No burn all of my precisiossss!
		//require (coin.burn(_value)); // token sent for refund are burnt

		uint ETHToSend = backers[msg.sender].weiReceived;
		backers[msg.sender].weiReceived=0;

		if (ETHToSend > 0) {
			asyncSend(msg.sender, ETHToSend); // pull payment to get refund in ETH
		}
	}

}

contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant returns (uint256);
  function transfer(address to, uint256 value) returns (bool);
  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 The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) returns (bool) {
    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 The address to query the the balance of. 
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balances[_owner];
  }

}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) returns (bool);
  function approve(address spender, uint256 value) returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

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) returns (bool) {
    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 The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) 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) constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

}

contract DARFtoken is StandardToken, Ownable {
  string public constant name = "DARFtoken";
  string public constant symbol = "DAR";
  uint public constant decimals = 18;


  // Constructor
  function DARFtoken() {
      totalSupply = 84000000 ether; // to make right number  84 000 000
      balances[msg.sender] = totalSupply; // Send all tokens to owner
  }

  /**
   *  Burn away the specified amount of DARFtoken tokens
   */
  function burn(uint _value) onlyOwner returns (bool) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    totalSupply = totalSupply.sub(_value);
    Transfer(msg.sender, 0x0, _value);
    return true;
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"totalPayments","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"coin","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"BIGSELL","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"refund","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"etherReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdrawPayments","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"emergencyStop","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"stopped","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MIN_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"release","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"coinSentToEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"drain","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"COIN_PER_ETHER","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"Potential_Investors","outputs":[{"name":"weiReceived","type":"uint256"},{"name":"coinSent","type":"uint256"},{"name":"profitshare","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"backers","outputs":[{"name":"weiReceived","type":"uint256"},{"name":"coinSent","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"start","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MIN_BUY_ETHER","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleClosed","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"multisigEther","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"getRemainCoins","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"invcoinSentToEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_INVEST_SHARE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"payments","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MIN_INVEST_BUY","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setMultisig","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"backDARFtokenOwner","outputs":[],"payable":false,"type":"function"},{"inputs":[{"name":"_DARFtokenAddress","type":"address"},{"name":"_to","type":"address"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogReceivedETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogCoinsEmited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"share","type":"uint256"}],"name":"LogInvestshare","type":"event"}]

6060604052611324600355341561001557600080fd5b60405160408061153e83398101604052808051919060200180519150505b5b60008054600160a060020a03191633600160a060020a03161790555b60048054600160a060020a03808516600160a060020a03199283161790925560058054928416929091169190911790555b50505b6114ab806100936000396000f300606060405236156101795763ffffffff60e060020a6000350416625b448781146101ba57806311df9995146101df5780631273f6e71461020e578063278ecde11461023357806330adce0e1461024b5780633197cbb6146102705780634bb278f3146102955780636103d70b146102aa57806363a599a4146102bf57806375f12b21146102d457806378e97925146102fb578063801db9cc1461032057806386d1a69f146103455780638da5cb5b1461035a5780638ef26a71146103895780639890220b146103ae5780639b39caef146103c3578063a99bf4fa146103e8578063b85dfb801461042b578063be9a655514610462578063c0d13a6d14610477578063ccb07cef1461049c578063d06c91e4146104c3578063d669e1d4146104f2578063df40503c14610517578063e1f166161461052c578063e28ab33614610551578063e2982c2114610576578063e6d8a47a146105a7578063f2fde38b146105cc578063f3283fba146105ed578063fe332a0c1461060e575b5b60005460a060020a900460ff161561019157600080fd5b6009544210806101a25750600a5442115b156101ac57600080fd5b6101b533610623565b5b5b5b005b34156101c557600080fd5b6101cd6109da565b60405190815260200160405180910390f35b34156101ea57600080fd5b6101f26109e0565b604051600160a060020a03909116815260200160405180910390f35b341561021957600080fd5b6101cd6109ef565b60405190815260200160405180910390f35b341561023e57600080fd5b6101b56004356109fd565b005b341561025657600080fd5b6101cd610b0b565b60405190815260200160405180910390f35b341561027b57600080fd5b6101cd610b11565b60405190815260200160405180910390f35b34156102a057600080fd5b6101b5610b17565b005b34156102b557600080fd5b6101b5610c42565b005b34156102ca57600080fd5b6101b5610cdc565b005b34156102df57600080fd5b6102e7610d1f565b604051901515815260200160405180910390f35b341561030657600080fd5b6101cd610d2f565b60405190815260200160405180910390f35b341561032b57600080fd5b6101cd610d35565b60405190815260200160405180910390f35b341561035057600080fd5b6101b5610d43565b005b341561036557600080fd5b6101f2610d99565b604051600160a060020a03909116815260200160405180910390f35b341561039457600080fd5b6101cd610da8565b60405190815260200160405180910390f35b34156103b957600080fd5b6101b5610dae565b005b34156103ce57600080fd5b6101cd610e06565b60405190815260200160405180910390f35b34156103f357600080fd5b610407600160a060020a0360043516610e0c565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561043657600080fd5b61044a600160a060020a0360043516610e2d565b60405191825260208201526040908101905180910390f35b341561046d57600080fd5b6101b5610e46565b005b341561048257600080fd5b6101cd610e80565b60405190815260200160405180910390f35b34156104a757600080fd5b6102e7610e8c565b604051901515815260200160405180910390f35b34156104ce57600080fd5b6101f2610e95565b604051600160a060020a03909116815260200160405180910390f35b34156104fd57600080fd5b6101cd610ea4565b60405190815260200160405180910390f35b341561052257600080fd5b6101b5610eb3565b005b341561053757600080fd5b6101cd611082565b60405190815260200160405180910390f35b341561055c57600080fd5b6101cd611088565b60405190815260200160405180910390f35b341561058157600080fd5b6101cd600160a060020a036004351661108e565b60405190815260200160405180910390f35b34156105b257600080fd5b6101cd6110a0565b60405190815260200160405180910390f35b34156105d757600080fd5b6101b5600160a060020a03600435166110ad565b005b34156105f857600080fd5b6101b5600160a060020a0360043516611105565b005b341561061957600080fd5b6101b5611162565b005b60008080808067016345785d8a000034101561063e57600080fd5b600554600160a060020a0387811691161415610659576109d2565b61067361066e346101f463ffffffff6111ec16565b61121b565b94506a069e10de76676d08000000610696600754876113d590919063ffffffff16565b11156106a157600080fd5b600160a060020a038087166000908152600c60205260408082206004549097509092169163a9059cbb918991899190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561071857600080fd5b6102c65a03f1151561072957600080fd5b505050604051805150506001840154610748908663ffffffff6113d516565b6001850155835461075f903463ffffffff6113d516565b8455600554600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505050686c6b935b8bbd40000084600001541115610920576107cb686c6b935b8bbd4000006107bf3461271063ffffffff6111ec16565b9063ffffffff6113ef16565b925033600160a060020a03167f75cc21bdd2668fe85d2ff79914f784189f7a6624974390a24a48cfc3aedcbc278460405190815260200160405180910390a282600354111561092057600160a060020a0386166000908152600d602052604090206001808601549082015584548155600281015490925015156108af57815461087790686c6b935b8bbd400000906107bf9061271063ffffffff6111ec16565b9063ffffffff6113ef16565b60035490915061088d908263ffffffff61140b16565b60035560028201546108a5908263ffffffff6113d516565b6002830155610920565b6003546108c2908463ffffffff61140b16565b60035560028201546108da908463ffffffff6113d516565b60028301819055600160a060020a033316907f75cc21bdd2668fe85d2ff79914f784189f7a6624974390a24a48cfc3aedcbc279060405190815260200160405180910390a25b5b5b600654610935903463ffffffff6113d516565b60065560075461094b908663ffffffff6113d516565b600755600160a060020a0333167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c8660405190815260200160405180910390a27fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e8586600654604051600160a060020a03909216825260208201526040908101905180910390a15b505050505050565b60025481565b600454600160a060020a031681565b690a968163f0a57b40000081565b6000600a54421080610a1b575069152d02c7e14af680000060075410155b15610a2557600080fd5b600160a060020a0333166000908152600c60205260409020600101548214610a4c57600080fd5b600454600160a060020a03166323b872dd33308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610ab857600080fd5b6102c65a03f11515610ac957600080fd5b5050506040518051505050600160a060020a0333166000908152600c6020526040812080549082905590811115610b0457610b043382611422565b5b5b5b5050565b60065481565b600a5481565b6000805433600160a060020a03908116911614610b3357600080fd5b600a54421015610b56576007546a069e10de76676d0800000014610b5657600080fd5b5b69152d02c7e14af6800000600754108015610b785750600a546213c6800142105b15610b8257600080fd5b600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610bbb57600080fd5b600454600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610c1457600080fd5b6102c65a03f11515610c2557600080fd5b5050506040518051600b805460ff191660011790559150505b5b50565b33600160a060020a038116600090815260016020526040902054801515610c6857600080fd5b600160a060020a0330163181901015610c8057600080fd5b600254610c93908263ffffffff61140b16565b600255600160a060020a0382166000818152600160205260408082209190915582156108fc0290839051600060405180830381858888f193505050501515610b0457fe5b5b5050565b60005433600160a060020a03908116911614610cf757600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60005460a060020a900460ff1681565b60095481565b69152d02c7e14af680000081565b60005433600160a060020a03908116911614610d5e57600080fd5b60005460a060020a900460ff161515610d7657600080fd5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b600054600160a060020a031681565b60075481565b60005433600160a060020a03908116911614610dc957600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610d1c57600080fd5b5b5b565b6101f481565b600d6020526000908152604090208054600182015460029092015490919083565b600c602052600090815260409020805460019091015482565b60005433600160a060020a03908116911614610e6157600080fd5b60095415610e6e57600080fd5b4260098190556251bd0001600a555b5b565b67016345785d8a000081565b600b5460ff1681565b600554600160a060020a031681565b6a069e10de76676d0800000081565b600080548190819033600160a060020a03908116911614610ed357600080fd5b6007546a069e10de76676d08000000039250610f1a670de0b6b3a7640000610f0b67016345785d8a00006101f463ffffffff6111ec16565b811515610f1457fe5b0461121b565b915081831115610f2957600080fd5b5060008054600160a060020a03908116808352600c6020526040808420600454909493169263a9059cbb9291879190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610fa057600080fd5b6102c65a03f11515610fb157600080fd5b505050604051805150506001810154610fd0908463ffffffff6113d516565b6001820155600754610fe8908463ffffffff6113d516565b600755600160a060020a0330167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c8460405190815260200160405180910390a26000546006547fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e8591600160a060020a031690604051600160a060020a03909216825260208201526040908101905180910390a15b5b505050565b60085481565b60035481565b60016020526000908152604090205481565b686c6b935b8bbd40000081565b60005433600160a060020a039081169116146110c857600080fd5b600160a060020a03811615610c3e576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b60005433600160a060020a0390811691161461112057600080fd5b600160a060020a038116151561113557600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a0390811691161461117d57600080fd5b600454600054600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156111d457600080fd5b6102c65a03f1151561107c57600080fd5b5050505b5b565b6000828202831580611208575082848281151561120557fe5b04145b151561121057fe5b8091505b5092915050565b6000690a968163f0a57b400000821061126357611260611253600361124785600a63ffffffff6113ef16565b9063ffffffff6111ec16565b839063ffffffff6113d516565b91505b600954611279906215180063ffffffff6113d516565b4210156112a8576112a161125383600463ffffffff6113ef16565b839063ffffffff6113d516565b90506113d0565b6009546112be906217bb0063ffffffff6113d516565b4210156112ed576112a161125383600563ffffffff6113ef16565b839063ffffffff6113d516565b90506113d0565b60095461130390621d010063ffffffff6113d516565b421015611343576112a1611253600361124785601463ffffffff6113ef16565b9063ffffffff6111ec16565b839063ffffffff6113d516565b90506113d0565b600954611359906220f58063ffffffff6113d516565b421015611388576112a161125383600a63ffffffff6113ef16565b839063ffffffff6113d516565b90506113d0565b60095461139e906224ea0063ffffffff6113d516565b4210156113cd576112a161125383601463ffffffff6113ef16565b839063ffffffff6113d516565b90506113d0565b50805b919050565b60008282018381101561121057fe5b8091505b5092915050565b60008082848115156113fd57fe5b0490508091505b5092915050565b60008282111561141757fe5b508082035b92915050565b600160a060020a03821660009081526001602052604090205461144b908263ffffffff6113d516565b600160a060020a038316600090815260016020526040902055600254611477908263ffffffff6113d516565b6002555b50505600a165627a7a723058200c37aafdc4930b74fe3c1b16db6d532909a602e071ad9ac533c553561036ee2800290000000000000000000000000339f0a4ebd50da09aa623e1d3e341c5b66851cf000000000000000000000000139031c1b0cccc87daaf7049127391a3a76bad5a

Deployed Bytecode

0x606060405236156101795763ffffffff60e060020a6000350416625b448781146101ba57806311df9995146101df5780631273f6e71461020e578063278ecde11461023357806330adce0e1461024b5780633197cbb6146102705780634bb278f3146102955780636103d70b146102aa57806363a599a4146102bf57806375f12b21146102d457806378e97925146102fb578063801db9cc1461032057806386d1a69f146103455780638da5cb5b1461035a5780638ef26a71146103895780639890220b146103ae5780639b39caef146103c3578063a99bf4fa146103e8578063b85dfb801461042b578063be9a655514610462578063c0d13a6d14610477578063ccb07cef1461049c578063d06c91e4146104c3578063d669e1d4146104f2578063df40503c14610517578063e1f166161461052c578063e28ab33614610551578063e2982c2114610576578063e6d8a47a146105a7578063f2fde38b146105cc578063f3283fba146105ed578063fe332a0c1461060e575b5b60005460a060020a900460ff161561019157600080fd5b6009544210806101a25750600a5442115b156101ac57600080fd5b6101b533610623565b5b5b5b005b34156101c557600080fd5b6101cd6109da565b60405190815260200160405180910390f35b34156101ea57600080fd5b6101f26109e0565b604051600160a060020a03909116815260200160405180910390f35b341561021957600080fd5b6101cd6109ef565b60405190815260200160405180910390f35b341561023e57600080fd5b6101b56004356109fd565b005b341561025657600080fd5b6101cd610b0b565b60405190815260200160405180910390f35b341561027b57600080fd5b6101cd610b11565b60405190815260200160405180910390f35b34156102a057600080fd5b6101b5610b17565b005b34156102b557600080fd5b6101b5610c42565b005b34156102ca57600080fd5b6101b5610cdc565b005b34156102df57600080fd5b6102e7610d1f565b604051901515815260200160405180910390f35b341561030657600080fd5b6101cd610d2f565b60405190815260200160405180910390f35b341561032b57600080fd5b6101cd610d35565b60405190815260200160405180910390f35b341561035057600080fd5b6101b5610d43565b005b341561036557600080fd5b6101f2610d99565b604051600160a060020a03909116815260200160405180910390f35b341561039457600080fd5b6101cd610da8565b60405190815260200160405180910390f35b34156103b957600080fd5b6101b5610dae565b005b34156103ce57600080fd5b6101cd610e06565b60405190815260200160405180910390f35b34156103f357600080fd5b610407600160a060020a0360043516610e0c565b60405180848152602001838152602001828152602001935050505060405180910390f35b341561043657600080fd5b61044a600160a060020a0360043516610e2d565b60405191825260208201526040908101905180910390f35b341561046d57600080fd5b6101b5610e46565b005b341561048257600080fd5b6101cd610e80565b60405190815260200160405180910390f35b34156104a757600080fd5b6102e7610e8c565b604051901515815260200160405180910390f35b34156104ce57600080fd5b6101f2610e95565b604051600160a060020a03909116815260200160405180910390f35b34156104fd57600080fd5b6101cd610ea4565b60405190815260200160405180910390f35b341561052257600080fd5b6101b5610eb3565b005b341561053757600080fd5b6101cd611082565b60405190815260200160405180910390f35b341561055c57600080fd5b6101cd611088565b60405190815260200160405180910390f35b341561058157600080fd5b6101cd600160a060020a036004351661108e565b60405190815260200160405180910390f35b34156105b257600080fd5b6101cd6110a0565b60405190815260200160405180910390f35b34156105d757600080fd5b6101b5600160a060020a03600435166110ad565b005b34156105f857600080fd5b6101b5600160a060020a0360043516611105565b005b341561061957600080fd5b6101b5611162565b005b60008080808067016345785d8a000034101561063e57600080fd5b600554600160a060020a0387811691161415610659576109d2565b61067361066e346101f463ffffffff6111ec16565b61121b565b94506a069e10de76676d08000000610696600754876113d590919063ffffffff16565b11156106a157600080fd5b600160a060020a038087166000908152600c60205260408082206004549097509092169163a9059cbb918991899190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561071857600080fd5b6102c65a03f1151561072957600080fd5b505050604051805150506001840154610748908663ffffffff6113d516565b6001850155835461075f903463ffffffff6113d516565b8455600554600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505050686c6b935b8bbd40000084600001541115610920576107cb686c6b935b8bbd4000006107bf3461271063ffffffff6111ec16565b9063ffffffff6113ef16565b925033600160a060020a03167f75cc21bdd2668fe85d2ff79914f784189f7a6624974390a24a48cfc3aedcbc278460405190815260200160405180910390a282600354111561092057600160a060020a0386166000908152600d602052604090206001808601549082015584548155600281015490925015156108af57815461087790686c6b935b8bbd400000906107bf9061271063ffffffff6111ec16565b9063ffffffff6113ef16565b60035490915061088d908263ffffffff61140b16565b60035560028201546108a5908263ffffffff6113d516565b6002830155610920565b6003546108c2908463ffffffff61140b16565b60035560028201546108da908463ffffffff6113d516565b60028301819055600160a060020a033316907f75cc21bdd2668fe85d2ff79914f784189f7a6624974390a24a48cfc3aedcbc279060405190815260200160405180910390a25b5b5b600654610935903463ffffffff6113d516565b60065560075461094b908663ffffffff6113d516565b600755600160a060020a0333167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c8660405190815260200160405180910390a27fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e8586600654604051600160a060020a03909216825260208201526040908101905180910390a15b505050505050565b60025481565b600454600160a060020a031681565b690a968163f0a57b40000081565b6000600a54421080610a1b575069152d02c7e14af680000060075410155b15610a2557600080fd5b600160a060020a0333166000908152600c60205260409020600101548214610a4c57600080fd5b600454600160a060020a03166323b872dd33308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610ab857600080fd5b6102c65a03f11515610ac957600080fd5b5050506040518051505050600160a060020a0333166000908152600c6020526040812080549082905590811115610b0457610b043382611422565b5b5b5b5050565b60065481565b600a5481565b6000805433600160a060020a03908116911614610b3357600080fd5b600a54421015610b56576007546a069e10de76676d0800000014610b5657600080fd5b5b69152d02c7e14af6800000600754108015610b785750600a546213c6800142105b15610b8257600080fd5b600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610bbb57600080fd5b600454600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610c1457600080fd5b6102c65a03f11515610c2557600080fd5b5050506040518051600b805460ff191660011790559150505b5b50565b33600160a060020a038116600090815260016020526040902054801515610c6857600080fd5b600160a060020a0330163181901015610c8057600080fd5b600254610c93908263ffffffff61140b16565b600255600160a060020a0382166000818152600160205260408082209190915582156108fc0290839051600060405180830381858888f193505050501515610b0457fe5b5b5050565b60005433600160a060020a03908116911614610cf757600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60005460a060020a900460ff1681565b60095481565b69152d02c7e14af680000081565b60005433600160a060020a03908116911614610d5e57600080fd5b60005460a060020a900460ff161515610d7657600080fd5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b600054600160a060020a031681565b60075481565b60005433600160a060020a03908116911614610dc957600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610d1c57600080fd5b5b5b565b6101f481565b600d6020526000908152604090208054600182015460029092015490919083565b600c602052600090815260409020805460019091015482565b60005433600160a060020a03908116911614610e6157600080fd5b60095415610e6e57600080fd5b4260098190556251bd0001600a555b5b565b67016345785d8a000081565b600b5460ff1681565b600554600160a060020a031681565b6a069e10de76676d0800000081565b600080548190819033600160a060020a03908116911614610ed357600080fd5b6007546a069e10de76676d08000000039250610f1a670de0b6b3a7640000610f0b67016345785d8a00006101f463ffffffff6111ec16565b811515610f1457fe5b0461121b565b915081831115610f2957600080fd5b5060008054600160a060020a03908116808352600c6020526040808420600454909493169263a9059cbb9291879190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610fa057600080fd5b6102c65a03f11515610fb157600080fd5b505050604051805150506001810154610fd0908463ffffffff6113d516565b6001820155600754610fe8908463ffffffff6113d516565b600755600160a060020a0330167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c8460405190815260200160405180910390a26000546006547fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e8591600160a060020a031690604051600160a060020a03909216825260208201526040908101905180910390a15b5b505050565b60085481565b60035481565b60016020526000908152604090205481565b686c6b935b8bbd40000081565b60005433600160a060020a039081169116146110c857600080fd5b600160a060020a03811615610c3e576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b60005433600160a060020a0390811691161461112057600080fd5b600160a060020a038116151561113557600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60005433600160a060020a0390811691161461117d57600080fd5b600454600054600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156111d457600080fd5b6102c65a03f1151561107c57600080fd5b5050505b5b565b6000828202831580611208575082848281151561120557fe5b04145b151561121057fe5b8091505b5092915050565b6000690a968163f0a57b400000821061126357611260611253600361124785600a63ffffffff6113ef16565b9063ffffffff6111ec16565b839063ffffffff6113d516565b91505b600954611279906215180063ffffffff6113d516565b4210156112a8576112a161125383600463ffffffff6113ef16565b839063ffffffff6113d516565b90506113d0565b6009546112be906217bb0063ffffffff6113d516565b4210156112ed576112a161125383600563ffffffff6113ef16565b839063ffffffff6113d516565b90506113d0565b60095461130390621d010063ffffffff6113d516565b421015611343576112a1611253600361124785601463ffffffff6113ef16565b9063ffffffff6111ec16565b839063ffffffff6113d516565b90506113d0565b600954611359906220f58063ffffffff6113d516565b421015611388576112a161125383600a63ffffffff6113ef16565b839063ffffffff6113d516565b90506113d0565b60095461139e906224ea0063ffffffff6113d516565b4210156113cd576112a161125383601463ffffffff6113ef16565b839063ffffffff6113d516565b90506113d0565b50805b919050565b60008282018381101561121057fe5b8091505b5092915050565b60008082848115156113fd57fe5b0490508091505b5092915050565b60008282111561141757fe5b508082035b92915050565b600160a060020a03821660009081526001602052604090205461144b908263ffffffff6113d516565b600160a060020a038316600090815260016020526040902055600254611477908263ffffffff6113d516565b6002555b50505600a165627a7a723058200c37aafdc4930b74fe3c1b16db6d532909a602e071ad9ac533c553561036ee280029

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

0000000000000000000000000339f0a4ebd50da09aa623e1d3e341c5b66851cf000000000000000000000000139031c1b0cccc87daaf7049127391a3a76bad5a

-----Decoded View---------------
Arg [0] : _DARFtokenAddress (address): 0x0339F0A4eBd50Da09Aa623e1d3E341C5b66851CF
Arg [1] : _to (address): 0x139031C1b0ccCc87DaAF7049127391A3a76bAd5A

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000339f0a4ebd50da09aa623e1d3e341c5b66851cf
Arg [1] : 000000000000000000000000139031c1b0cccc87daaf7049127391a3a76bad5a


Swarm Source

bzzr://0c37aafdc4930b74fe3c1b16db6d532909a602e071ad9ac533c553561036ee28

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.