Sponsored Link:   Buy your 1st Ethereum in 5 minutes. Trusted by more than 100k buyers.
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 966 txns
  Latest 25 txns from a total Of 966 transactions View All

TxHash Age From To Value [TxFee]
0xaf91237af2c5855e8bf3a6d5dd64711830651f143088bb0cb269ca963f5a6ec24 days 8 hrs ago0x93c92881bd5a14fbd1dbe6420b7684a7a909a59b  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0 Ether0.00071078
0xc4ce6c612af504a512154c9a983ce05b0760a9e88425220348a176e36bce51175 days 20 hrs ago0xfa6e405f6754f541cdaf8c0b112c9a5e0947a0d2  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.0891 Ether0.0017124
0xcec07f4d0aed2e1e6e0f4e6d6692dc22dd31c3bd19421e305ed8d3f48452a8d26 days 12 hrs ago0xd4e314afb3d0d99d55808d7ade94c814dc032484  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a3 Ether0.0017397984
0xb2f87725bba0ae3b5c38888d42b4702ef3c7a4b6622994bf813b6a03cc74ba637 days 8 hrs ago0x6aa27143e3161bc1b2c9433f910e6d001ae68b3f  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.0387788 Ether0.0017124
0x8569dce2c094331224150cfbe5d6492cc342b0013728e77c0979ae0066634e507 days 10 hrs ago0x547062deb7a50855ad3cd012d82a7962e0123077  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.3129137 Ether0.0017124
0x1d88ec0d991341d730d442b0db5d66e521258ae3ef26c3b2e7b9f95e7999baa47 days 17 hrs ago0x6588fe601bf90b326e3974d546ee0df0735927cb  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a10 Ether0.001438416
0xaf82a7e4698b2ba3521110b3298fa0e74d9baa8ac1f29012945563fdc1e2f0918 days 10 hrs ago0x3e305da03515f0b4a997966b94c0724bd609f10e  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.38552516 Ether0.0017124
0x3c64523939d9c9e2e250074cb2a2bb4342f8b86360d49c3cb076bd3a8208f4ab8 days 10 hrs ago0x26554809c4c63ee939a78edb189d5c4508f8d4b1  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.001 Ether0.0008
0x1a17457af90065f5496f14603053b9368f9bfa33830c08ccef63d4aa3475874a9 days 17 hrs ago0x7160eb7ddf0ed36e7bc269ca08aebaab24419b28  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.07 Ether0.0017124
0xd285c5228cc2a714d56c273143a083944467381f00c018c51af41c5d8f18d03b10 days 6 hrs ago0x71f9627fcba964aff644a7670134528d8f24e675  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.25 Ether0.0017192496
0xfbcd96a6e0d90caeda2e9726f9cc8feac219c646cbb61e5d1626d4b1c22b2be811 days 20 hrs ago0x9ba6baa919bac9acd901df3bfde848fe006d3cae  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.085 Ether0.0017124
0xd79412a4732306ca608c891d74ac9f81c4baf222bb364d623342db11361b0c2711 days 21 hrs ago0x15cd65b5e1b0ebf4303c9e91acb0963906f62894  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.5 Ether0.0034248
0x068b4f6ae75b87b380e8805f321ba3d0cd6c6ee56d175bf96c18b104f5bf707712 days 15 hrs ago0xe55922779cfbe04b422d76447e866508b206984f  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.03 Ether0.0013748472
0xc3d814ff1ed58284e8bbaa690afde69496fb70f187dd77104e7161ff370b881b13 days 9 hrs ago0xc0cccde11859186549cbb089834212d649c61c59  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.1 Ether0.001438416
0xd043aab1a4bab23323be449761fb08ebd6646f82f3f6519725a52fe6a0fc8bc015 days 7 hrs ago0xda24bbb55bb4645c3bbd4a16438562bec1e26136  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.10875 Ether0.0017329488
0x95d5a415d1363fdd9c99a3aae3b0e1af066c4c9950d2af23c7716ecb183a25dc15 days 7 hrs ago0xda24bbb55bb4645c3bbd4a16438562bec1e26136  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.11 Ether0.000441
0x9ea7144a2923781dc9f3d2da67af9ddf4214009f4201455721393f446aad8b2c16 days 18 hrs ago0xd991f3ccde40af03b56b48fc505457567d65c474  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.329535 Ether0.0017124
0x7e3ff21add5e9208acce8e5ddca6e246994dfefd90c2841d8074d4ef60bfc95e16 days 20 hrs ago0x7397ee4368fb5f7a37cc566eaa33103c94dee1e1  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a10 Ether0.001123416
0x50143f363c276a43ae45f67c48e9a8680e582806a487bf354eae12d4148e481c17 days 13 hrs ago0x47d158bdd7e8269b614e82afdecb6bf6ab84165c  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.125 Ether0.001438416
0x81615c9ea8f4788a3b5ea3afc3ccc3cf175cfe00ec7ee746de876bea5f33d6f717 days 17 hrs ago0xeb5d763b15aae654f893a1861527cab11d0ca831  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a1.15795 Ether0.0017124
0x3d025dad60b4119fa207aff5cd2490320173179f14c5a6d4d4784f796b183b3f18 days 17 hrs ago0xc476371cb69edc6d06eefbce3811f2b368ac0aa1  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.5 Ether0.000588456
0xbdb3a3aa8e103cf599a2707f4fc15aad53dff51a9ea18d610b9c0229eee1aa5518 days 19 hrs ago0xc476371cb69edc6d06eefbce3811f2b368ac0aa1  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.5 Ether0.0008151024
0xc84dfec25b663d82a6ee2094161b841dfaaaa42a1729254584f72d07f154b3ae19 days 5 hrs ago0xc8aa97ae98639a479efec4e5f6e54ec53793fcec  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a1 Ether0.001438416
0x43ed748e3b8fa903b9edb98b3e89683f6013d3518b2bf9f117a4224c1c226b9019 days 11 hrs ago0xf4a146761ce89225c98c01cb2f51d0d32af94bcf  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0.035 Ether0.001438416
0x73dae2e26ddb8305f128c43a7af0a68ff4f2fdd893323b283a48e1c4c1d7985921 days 9 hrs ago0x427c26c4f54cbd9a2db157406448b7cae1fc5de1  IN   0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a1.110521584 Ether0.001438416
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
  Latest 6 Internal Transactions

ParentTxHash Block Age From To Value
0xaf91237af2c5855e8bf3a6d5dd64711830651f143088bb0cb269ca963f5a6ec245653284 days 8 hrs ago0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0x8947a66b513b40e3ad2b929b6022feeb12f81ba3662.837260364157041835 Ether
0xaf91237af2c5855e8bf3a6d5dd64711830651f143088bb0cb269ca963f5a6ec245653284 days 8 hrs ago0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0xd655f24c3134f445e0f9a5b20c10e686f0271b6620.500121454561557994 Ether
0xabeba46cfac5e4ca4be7f1a2d61bccb429bead4ce487a0af4f2eb025924707ca430767057 days 14 hrs ago0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0x8947a66b513b40e3ad2b929b6022feeb12f81ba3306.109973720996459373 Ether
0xabeba46cfac5e4ca4be7f1a2d61bccb429bead4ce487a0af4f2eb025924707ca430767057 days 14 hrs ago0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0xd655f24c3134f445e0f9a5b20c10e686f0271b669.467318774876179155 Ether
0x9b0eafa01c6e9d3d77c10c375ff9951be8f248a06ef66376aaa9836b40d7eb1a428082965 days 12 hrs ago0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0x8947a66b513b40e3ad2b929b6022feeb12f81ba3838.110416525640990324 Ether
0x9b0eafa01c6e9d3d77c10c375ff9951be8f248a06ef66376aaa9836b40d7eb1a428082965 days 12 hrs ago0xb70f92ff6bca4aa0c61973c27243978b20ecbe5a0xd655f24c3134f445e0f9a5b20c10e686f0271b6625.92094071728786568 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: EventChainCrowdsale
Compiler Version: v0.4.16+commit.d7661dd9
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.11;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
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;
    }
}


/**
 * @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;

    /**
     * @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() {
        assert(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 {
        assert(newOwner != address(0));
        owner = newOwner;
    }
}


/*
 * @title Haltable
 * @dev Abstract contract that allows children to implement an emergency stop mechanism.
 * @dev Differs from Pausable by causing a throw when in halt mode.
 */
contract Haltable is Ownable {
    bool public halted;

    modifier stopInEmergency {
        assert(!halted);
        _;
    }

    modifier onlyInEmergency {
        assert(halted);
        _;
    }

    /**
     * @dev Called by the owner on emergency, triggers stopped state.
     */
    function halt() external onlyOwner {
        halted = true;
    }

    /**
     * @dev Called by the owner on end of emergency, returns to normal state.
     */
    function unhalt() external onlyOwner onlyInEmergency {
        halted = false;
    }
}


/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
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);
}


/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
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);
}


/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
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) onlyPayloadSize(2 * 32) 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];
    }

    /**
     * @dev Fix for the ERC20 short address attack
     * @dev see: http://vessenes.com/the-erc20-short-address-attack-explained/
     * @dev see: https://www.reddit.com/r/ethereum/comments/63s917/worrysome_bug_exploit_with_erc20_token/dfwmhc3/
     */
    modifier onlyPayloadSize(uint size) {
        assert (msg.data.length >= size + 4);
        _;
    }
}


/**
 * @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)) 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
        // assert (_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
        assert((_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 available for the spender.
     */
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
        return allowed[_owner][_spender];
    }
}


/**
 * @title MintableToken
 * @dev Token that can be minted by another contract until the defined cap is reached.
 * @dev Based on https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */
contract MintableToken is StandardToken, Ownable {
    using SafeMath for uint;

    uint256 public mintableSupply;

    /**
     * @dev List of agents that are allowed to create new tokens
     */
    mapping(address => bool) public mintAgents;

    event MintingAgentChanged(address addr, bool state);

    /**
     * @dev Mint token from pool of mintable tokens.
     * @dev Only callable by the mint-agent.
     */
    function mint(address receiver, uint256 amount) onlyPayloadSize(2 * 32) onlyMintAgent canMint public {
        mintableSupply = mintableSupply.sub(amount);
        balances[receiver] = balances[receiver].add(amount);
        // This will make the mint transaction appear in EtherScan.io
        // We can remove this after there is a standardized minting event
        Transfer(0, receiver, amount);
    }

    /**
     * @dev Owner can allow a crowdsale contract to mint new tokens.
     */
    function setMintAgent(address addr, bool state) onlyOwner canMint public {
        mintAgents[addr] = state;
        MintingAgentChanged(addr, state);
    }

    modifier onlyMintAgent() {
        // Only the mint-agent is allowed to mint new tokens
        assert (mintAgents[msg.sender]);
        _;
    }

    /**
     * @dev Make sure we are not done yet.
     */
    modifier canMint() {
        assert(mintableSupply > 0);
        _;
    }

    /**
     * @dev Fix for the ERC20 short address attack
     * @dev see: http://vessenes.com/the-erc20-short-address-attack-explained/
     * @dev see: https://www.reddit.com/r/ethereum/comments/63s917/worrysome_bug_exploit_with_erc20_token/dfwmhc3/
     */
    modifier onlyPayloadSize(uint size) {
        assert (msg.data.length >= size + 4);
        _;
    }
}


/*
 * @title ReleasableToken
 * @dev Token that may not be transfered until it was released.
 */
contract ReleasableToken is ERC20, Ownable {
    address public releaseAgent;
    bool public released = false;

    /**
     * @dev One way function to release the tokens to the wild.
     */
    function releaseToken() public onlyReleaseAgent {
        released = true;
    }

    /**
     * @dev Set the contract that may call the release function.
     */
    function setReleaseAgent(address addr) onlyOwner inReleaseState(false) public {
        releaseAgent = addr;
    }

    function transfer(address _to, uint _value) inReleaseState(true) returns (bool) {
        return super.transfer(_to, _value);
    }

    function transferFrom(address _from, address _to, uint _value) inReleaseState(true) returns (bool) {
        return super.transferFrom(_from, _to, _value);
    }

    /**
     * @dev The function can be called only before or after the tokens have been releasesd
     */
    modifier inReleaseState(bool releaseState) {
        assert(releaseState == released);
        _;
    }

    /**
     * @dev The function can be called only by a whitelisted release agent.
     */
    modifier onlyReleaseAgent() {
        assert(msg.sender == releaseAgent);
        _;
    }
}


/**
 * @title EventChain
 * @dev Contract for the EventChain token.
 */
contract EventChain is ReleasableToken, MintableToken {
    string public name = "EventChain";
    string public symbol = "EVC";
    uint8 public decimals = 18;
    
    function EventChain() {
        // total supply is 84 million tokens
        totalSupply = 84000000 ether;
        mintableSupply = totalSupply;
        // allow deployer to unlock token transfer and mint tokens
        setReleaseAgent(msg.sender);
        setMintAgent(msg.sender, true);
    }
}


/*
 * @title Crowdsale
 * @dev Contract to manage the EVC crowdsale
 * @dev Using assert over assert within the contract in order to generate error opscodes (0xfe), that will properly show up in etherscan
 * @dev The assert error opscode (0xfd) will show up in etherscan after the metropolis release
 * @dev see: https://ethereum.stackexchange.com/a/24185
 */
contract EventChainCrowdsale is Haltable {
    using SafeMath for uint256;

    enum State{Ready, Phase1, Phase2, Phase3, CrowdsaleEnded}

    uint256 constant public PHASE2_SUPPLY = 21000000 ether;
    uint256 constant public PHASE3_SUPPLY = 22600000 ether;

    uint256 constant public PHASE1_RATE = 1140;
    uint256 constant public PHASE2_RATE = 920;
    uint256 constant public PHASE3_RATE = 800;

    uint256 constant public MIN_INVEST = 10 finney;
    uint256 constant public BTWO_CLAIM_PERCENT = 3;

    EventChain public evc;
    address public beneficiary;
    address public beneficiaryTwo;
    uint256 public totalRaised;

    State public currentState;
    uint256 public currentRate; 
    uint256 public currentSupply;
    uint256 public currentTotalSupply;

    event StateChanged(State from, State to);
    event FundsClaimed(address receiver, uint256 claim, string crowdsalePhase);
    event InvestmentMade(
        address investor,
        uint256 weiAmount,
        uint256 tokenAmount,
        string crowdsalePhase,
        bytes calldata
    );

    function EventChainCrowdsale(EventChain _evc, address _beneficiary, address _beneficiaryTwo) {
        assert(address(_evc) != 0x0);
        assert(address(_beneficiary) != 0x0);
        assert(address(_beneficiaryTwo) != 0x0);

        beneficiary = _beneficiary;
        beneficiaryTwo = _beneficiaryTwo;
        evc = _evc;
    }

    function() payable onlyWhenCrowdsaleIsOpen stopInEmergency external {
        assert(msg.data.length <= 68); // 64 bytes data limit plus 4 for the prefix
        assert(msg.value >= MIN_INVEST);

        uint256 tokens = msg.value.mul(currentRate);
        currentSupply = currentSupply.sub(tokens);
        evc.mint(msg.sender, tokens);
        totalRaised = totalRaised.add(msg.value);

        InvestmentMade(
            msg.sender,
            msg.value,
            tokens,
            currentStateToString(),
            msg.data
        );
    }

    function startPhase1() onlyOwner inState(State.Ready) stopInEmergency external {
        currentTotalSupply = evc.mintableSupply().sub(PHASE2_SUPPLY).sub(PHASE3_SUPPLY);
        currentSupply = currentTotalSupply;
        currentRate = PHASE1_RATE;
        currentState = State.Phase1;

        StateChanged(State.Ready, currentState);
    }

    function startPhase2() onlyOwner inState(State.Phase1) stopInEmergency external {
        phaseClaim();

        currentTotalSupply = currentSupply.add(PHASE2_SUPPLY);
        currentSupply = currentTotalSupply;
        currentRate = PHASE2_RATE;
        currentState = State.Phase2;

        StateChanged(State.Phase1, currentState);
    }

    function startPhase3() onlyOwner inState(State.Phase2) stopInEmergency external {
        phaseClaim();

        currentTotalSupply = currentSupply.add(PHASE3_SUPPLY);
        currentSupply = currentTotalSupply;
        currentRate = PHASE3_RATE;
        currentState = State.Phase3;

        StateChanged(State.Phase2, currentState);
    }

    function endCrowdsale() onlyOwner inState(State.Phase3) stopInEmergency external {
        phaseClaim();

        currentTotalSupply = 0;
        currentSupply = 0;
        currentRate = 0;
        currentState = State.CrowdsaleEnded;

        StateChanged(State.Phase3, currentState);
    }

    function currentStateToString() constant returns (string) {
        if (currentState == State.Ready) {
            return "Ready";
        } else if (currentState == State.Phase1) {
            return "Phase 1";
        } else if (currentState == State.Phase2) {
            return "Phase 2";
        } else if (currentState == State.Phase3) {
            return "Phase 3";
        } else {
            return "Crowdsale ended";
        }
    }

    function phaseClaim() internal {
        uint256 beneficiaryTwoClaim = this.balance.div(100).mul(BTWO_CLAIM_PERCENT);
        beneficiaryTwo.transfer(beneficiaryTwoClaim);
        FundsClaimed(beneficiaryTwo, beneficiaryTwoClaim, currentStateToString());

        uint256 beneficiaryClaim = this.balance;
        beneficiary.transfer(this.balance);
        FundsClaimed(beneficiary, beneficiaryClaim, currentStateToString());
    }

    modifier inState(State _state) {
        assert(currentState == _state);
        _;
    }

    modifier onlyWhenCrowdsaleIsOpen() {
        assert(currentState == State.Phase1 || currentState == State.Phase2 || currentState == State.Phase3);
        _;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"currentState","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"evc","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_INVEST","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiaryTwo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"endCrowdsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentStateToString","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PHASE3_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PHASE3_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentTotalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startPhase3","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BTWO_CLAIM_PERCENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PHASE2_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startPhase1","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PHASE1_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PHASE2_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startPhase2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_evc","type":"address"},{"name":"_beneficiary","type":"address"},{"name":"_beneficiaryTwo","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"uint8"},{"indexed":false,"name":"to","type":"uint8"}],"name":"StateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"claim","type":"uint256"},{"indexed":false,"name":"crowdsalePhase","type":"string"}],"name":"FundsClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"crowdsalePhase","type":"string"},{"indexed":false,"name":"calldata","type":"bytes"}],"name":"InvestmentMade","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000f57600080fd5b60405160608061123f8339810160405280805191906020018051919060200180519150505b5b60008054600160a060020a03191633600160a060020a03161790555b600160a060020a038316151561006357fe5b600160a060020a038216151561007557fe5b600160a060020a038116151561008757fe5b60028054600160a060020a03808516600160a060020a0319928316179092556003805484841690831617905560018054928616929091169190911790555b5050505b611167806100d86000396000f3006060604052361561012d5763ffffffff60e060020a6000350416630c3f6acf81146103535780630fb411e81461038a5780631b85aa49146103b95780631bff4bfa146103de5780632095f2d41461040d5780632e66ee1b146104225780632fe6ecb2146104ad578063311277c1146104d257806338af3eed146104f7578063410b1da8146105265780635ed7ca5b1461054b5780635f2b9ac014610560578063771282f6146105755780638c12c35c1461059a5780638da5cb5b146105bf57806395c43d84146105ee578063a44081d114610613578063b20c0e4314610628578063b8782d491461064d578063b9b8af0b14610672578063c5c4744c14610699578063cb3e64fd146106be578063f2fde38b146106d3578063f9f8bdb7146106f4578063fcb5bc2914610719575b5b600060015b60055460ff16600481111561014457fe5b1480610161575060025b60055460ff16600481111561015f57fe5b145b8061017d575060035b60055460ff16600481111561017b57fe5b145b151561018557fe5b60005460a060020a900460ff161561019957fe5b60443611156101a457fe5b662386f26fc100003410156101b557fe5b6006546101c990349063ffffffff61072e16565b6007549091506101df908263ffffffff61075d16565b600755600154600160a060020a03166340c10f19338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561023857600080fd5b6102c65a03f1151561024957600080fd5b505060045461025f91503463ffffffff61077416565b6004557f56430201b2365e1ecdceb0be78905cbc9a625c9f627c33e035ee6f00afd7be0f33348361028e61078e565b6000366040518087600160a060020a0316600160a060020a031681526020018681526020018581526020018060200180602001838103835286818151815260200191508051906020019080838360005b838110156102f75780820151818401525b6020016102de565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b50838103825284815260200185858082843782019150509850505050505050505060405180910390a15b5b5b50005b341561035e57600080fd5b610366610928565b6040518082600481111561037657fe5b60ff16815260200191505060405180910390f35b341561039557600080fd5b61039d610931565b604051600160a060020a03909116815260200160405180910390f35b34156103c457600080fd5b6103cc610940565b60405190815260200160405180910390f35b34156103e957600080fd5b61039d61094b565b604051600160a060020a03909116815260200160405180910390f35b341561041857600080fd5b61042061095a565b005b341561042d57600080fd5b61043561078e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156104725780820151818401525b602001610459565b50505050905090810190601f16801561049f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b857600080fd5b6103cc610a26565b60405190815260200160405180910390f35b34156104dd57600080fd5b6103cc610a35565b60405190815260200160405180910390f35b341561050257600080fd5b61039d610a3b565b604051600160a060020a03909116815260200160405180910390f35b341561053157600080fd5b6103cc610a4a565b60405190815260200160405180910390f35b341561055657600080fd5b610420610a50565b005b341561056b57600080fd5b610420610a90565b005b341561058057600080fd5b6103cc610b79565b60405190815260200160405180910390f35b34156105a557600080fd5b6103cc610b7f565b60405190815260200160405180910390f35b34156105ca57600080fd5b61039d610b84565b604051600160a060020a03909116815260200160405180910390f35b34156105f957600080fd5b6103cc610b93565b60405190815260200160405180910390f35b341561061e57600080fd5b610420610ba2565b005b341561063357600080fd5b6103cc610d01565b60405190815260200160405180910390f35b341561065857600080fd5b6103cc610d07565b60405190815260200160405180910390f35b341561067d57600080fd5b610685610d0d565b604051901515815260200160405180910390f35b34156106a457600080fd5b6103cc610d1d565b60405190815260200160405180910390f35b34156106c957600080fd5b610420610d23565b005b34156106de57600080fd5b610420600160a060020a0360043516610d73565b005b34156106ff57600080fd5b6103cc610dca565b60405190815260200160405180910390f35b341561072457600080fd5b610420610dd0565b005b600082820283158061074a575082848281151561074757fe5b04145b151561075257fe5b8091505b5092915050565b60008282111561076957fe5b508082035b92915050565b60008282018381101561075257fe5b8091505b5092915050565b610796611109565b60005b60055460ff1660048111156107aa57fe5b14156107eb5760408051908101604052600581527f526561647900000000000000000000000000000000000000000000000000000060208201529050610921565b60015b60055460ff1660048111156107ff57fe5b14156108405760408051908101604052600781527f506861736520310000000000000000000000000000000000000000000000000060208201529050610921565b60025b60055460ff16600481111561085457fe5b14156108955760408051908101604052600781527f506861736520320000000000000000000000000000000000000000000000000060208201529050610921565b60035b60055460ff1660048111156108a957fe5b14156108ea5760408051908101604052600781527f506861736520330000000000000000000000000000000000000000000000000060208201529050610921565b60408051908101604052600f81527f43726f776473616c6520656e6465640000000000000000000000000000000000602082015290505b5b5b5b5b90565b60055460ff1681565b600154600160a060020a031681565b662386f26fc1000081565b600354600160a060020a031681565b60005433600160a060020a0390811691161461097257fe5b6003805b60055460ff16600481111561098757fe5b1461098e57fe5b60005460a060020a900460ff16156109a257fe5b6109aa610eb9565b600060088190556007819055600655600580546004919060ff19166001835b021790555060055460008051602061111c8339815191529060039060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b6a12b1bc7474e42d9d00000081565b61032081565b600254600160a060020a031681565b60085481565b60005433600160a060020a03908116911614610a6857fe5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60005433600160a060020a03908116911614610aa857fe5b6002805b60055460ff166004811115610abd57fe5b14610ac457fe5b60005460a060020a900460ff1615610ad857fe5b610ae0610eb9565b600754610afe906a12b1bc7474e42d9d00000063ffffffff61077416565b6008819055600755610320600655600580546003919060ff19166001835b021790555060055460008051602061111c8339815191529060029060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b60075481565b600381565b600054600160a060020a031681565b6a115eec47f6cf7e3500000081565b60005433600160a060020a03908116911614610bba57fe5b6000805b60055460ff166004811115610bcf57fe5b14610bd657fe5b60005460a060020a900460ff1615610bea57fe5b600154610c87906a12b1bc7474e42d9d00000090610c7b906a115eec47f6cf7e3500000090600160a060020a031663cc5c095c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610c5457600080fd5b6102c65a03f11515610c6557600080fd5b505050604051805191905063ffffffff61075d16565b9063ffffffff61075d16565b6008819055600755610474600655600580546001919060ff191682805b021790555060055460008051602061111c8339815191529060009060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b61047481565b61039881565b60005460a060020a900460ff1681565b60045481565b60005433600160a060020a03908116911614610d3b57fe5b60005460a060020a900460ff161515610d5057fe5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b60005433600160a060020a03908116911614610d8b57fe5b600160a060020a0381161515610d9d57fe5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60065481565b60005433600160a060020a03908116911614610de857fe5b6001805b60055460ff166004811115610dfd57fe5b14610e0457fe5b60005460a060020a900460ff1615610e1857fe5b610e20610eb9565b600754610e3e906a115eec47f6cf7e3500000063ffffffff61077416565b6008819055600755610398600655600580546002919060ff19166001835b021790555060055460008051602061111c8339815191529060019060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b600080610ee86003610edc600160a060020a03301631606463ffffffff6110ed16565b9063ffffffff61072e16565b600354909250600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515610f1e57600080fd5b6003547f9c9fe2a4ffc2d534291d4944e37f0ff0a182aa17531e0c9c44227d18e7da67f890600160a060020a031683610f5561078e565b604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b83811015610fa85780820151818401525b602001610f8f565b50505050905090810190601f168015610fd55780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150600254600160a060020a03308116803192909116903180156108fc0290604051600060405180830381858888f19350505050151561102257600080fd5b6002547f9c9fe2a4ffc2d534291d4944e37f0ff0a182aa17531e0c9c44227d18e7da67f890600160a060020a03168261105961078e565b604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156110ac5780820151818401525b602001611093565b50505050905090810190601f1680156110d95780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15b5050565b60008082848115156110fb57fe5b0490508091505b5092915050565b602060405190810160405260008152905600e8a97ea87e4388fa22d496b95a8ed5ced6717f49790318de2b928aaf37a021d8a165627a7a72305820fb7c7e3dc58f60dbf88aa5d6f0730384947685fc561ca405c24839c345e73f990029000000000000000000000000b62d18dea74045e822352ce4b3ee77319dc5ff2f0000000000000000000000008947a66b513b40e3ad2b929b6022feeb12f81ba3000000000000000000000000d655f24c3134f445e0f9a5b20c10e686f0271b66

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

-----Decoded View---------------
Found 3 constructor arguments :
Arg [0] : 000000000000000000000000b62d18dea74045e822352ce4b3ee77319dc5ff2f
Arg [1] : 0000000000000000000000008947a66b513b40e3ad2b929b6022feeb12f81ba3
Arg [2] : 000000000000000000000000d655f24c3134f445e0f9a5b20c10e686f0271b66


   Swarm Source:
bzzr://fb7c7e3dc58f60dbf88aa5d6f0730384947685fc561ca405c24839c345e73f99
View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.