ETH Price: $2,576.92 (-4.03%)
Gas: 5 Gwei

Contract

0xb70F92fF6bca4AA0c61973C27243978B20ECbE5a
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer Ownersh...70759122019-01-16 12:33:132034 days ago1547641993IN
0xb70F92fF...B20ECbE5a
0 ETH0.000058282
Transfer68274802018-12-05 0:09:022077 days ago1543968542IN
0xb70F92fF...B20ECbE5a
0.1 ETH0.0059888277
Transfer*68274772018-12-05 0:08:132077 days ago1543968493IN
0xb70F92fF...B20ECbE5a
0.1 ETH0.0059888277
End Crowdsale45653282017-11-16 19:53:202460 days ago1510862000IN
0xb70F92fF...B20ECbE5a
0 ETH0.0007107820
Transfer45560072017-11-15 7:36:402462 days ago1510731400IN
0xb70F92fF...B20ECbE5a
0.0891 ETH0.001712425
Transfer45519752017-11-14 16:01:172462 days ago1510675277IN
0xb70F92fF...B20ECbE5a
3 ETH0.0017397925.4
Transfer45469392017-11-13 20:26:312463 days ago1510604791IN
0xb70F92fF...B20ECbE5a
0.0387788 ETH0.001712425
Transfer45461702017-11-13 17:35:232463 days ago1510594523IN
0xb70F92fF...B20ECbE5a
0.3129137 ETH0.001712425
Transfer45445652017-11-13 11:14:482463 days ago1510571688IN
0xb70F92fF...B20ECbE5a
10 ETH0.0014384121
Transfer45400702017-11-12 17:57:402464 days ago1510509460IN
0xb70F92fF...B20ECbE5a
0.38552516 ETH0.001712425
Transfer45399602017-11-12 17:30:422464 days ago1510507842IN
0xb70F92fF...B20ECbE5a
0.001 ETH0.00088
Transfer45319322017-11-11 10:51:162465 days ago1510397476IN
0xb70F92fF...B20ECbE5a
0.07 ETH0.001712425
Transfer45285942017-11-10 21:57:182466 days ago1510351038IN
0xb70F92fF...B20ECbE5a
0.25 ETH0.0017192425.1
Transfer45186922017-11-09 7:53:332468 days ago1510214013IN
0xb70F92fF...B20ECbE5a
0.085 ETH0.001712425
Transfer45184392017-11-09 6:48:542468 days ago1510210134IN
0xb70F92fF...B20ECbE5a
0.5 ETH0.003424850
Transfer45139062017-11-08 13:20:532468 days ago1510147253IN
0xb70F92fF...B20ECbE5a
0.03 ETH0.0013748425.7
Transfer45091772017-11-07 19:25:562469 days ago1510082756IN
0xb70F92fF...B20ECbE5a
0.1 ETH0.0014384121
Transfer44971392017-11-05 20:46:522471 days ago1509914812IN
0xb70F92fF...B20ECbE5a
0.10875 ETH0.0017329425.3
Transfer44970892017-11-05 20:36:582471 days ago1509914218IN
0xb70F92fF...B20ECbE5a
0.11 ETH0.00044121
Transfer44881412017-11-04 10:19:162472 days ago1509790756IN
0xb70F92fF...B20ECbE5a
0.329535 ETH0.001712425
Transfer44876912017-11-04 8:30:022473 days ago1509784202IN
0xb70F92fF...B20ECbE5a
10 ETH0.0011234121
Transfer44832192017-11-03 15:19:092473 days ago1509722349IN
0xb70F92fF...B20ECbE5a
0.125 ETH0.0014384121
Transfer44822332017-11-03 11:26:562473 days ago1509708416IN
0xb70F92fF...B20ECbE5a
1.15795 ETH0.001712425
Transfer44760732017-11-02 11:28:262474 days ago1509622106IN
0xb70F92fF...B20ECbE5a
0.5 ETH0.0005884511
Transfer44754872017-11-02 9:13:402475 days ago1509614020IN
0xb70F92fF...B20ECbE5a
0.5 ETH0.000815111.9
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
45653282017-11-16 19:53:202460 days ago1510862000
0xb70F92fF...B20ECbE5a
662.83726036 ETH
45653282017-11-16 19:53:202460 days ago1510862000
0xb70F92fF...B20ECbE5a
20.50012145 ETH
43076702017-09-24 14:00:142513 days ago1506261614
0xb70F92fF...B20ECbE5a
306.10997372 ETH
43076702017-09-24 14:00:142513 days ago1506261614
0xb70F92fF...B20ECbE5a
9.46731877 ETH
42808292017-09-16 16:14:192521 days ago1505578459
0xb70F92fF...B20ECbE5a
838.11041652 ETH
42808292017-09-16 16:14:192521 days ago1505578459
0xb70F92fF...B20ECbE5a
25.92094071 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EventChainCrowdsale

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

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

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

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

6060604052341561000f57600080fd5b60405160608061123f8339810160405280805191906020018051919060200180519150505b5b60008054600160a060020a03191633600160a060020a03161790555b600160a060020a038316151561006357fe5b600160a060020a038216151561007557fe5b600160a060020a038116151561008757fe5b60028054600160a060020a03808516600160a060020a0319928316179092556003805484841690831617905560018054928616929091169190911790555b5050505b611167806100d86000396000f3006060604052361561012d5763ffffffff60e060020a6000350416630c3f6acf81146103535780630fb411e81461038a5780631b85aa49146103b95780631bff4bfa146103de5780632095f2d41461040d5780632e66ee1b146104225780632fe6ecb2146104ad578063311277c1146104d257806338af3eed146104f7578063410b1da8146105265780635ed7ca5b1461054b5780635f2b9ac014610560578063771282f6146105755780638c12c35c1461059a5780638da5cb5b146105bf57806395c43d84146105ee578063a44081d114610613578063b20c0e4314610628578063b8782d491461064d578063b9b8af0b14610672578063c5c4744c14610699578063cb3e64fd146106be578063f2fde38b146106d3578063f9f8bdb7146106f4578063fcb5bc2914610719575b5b600060015b60055460ff16600481111561014457fe5b1480610161575060025b60055460ff16600481111561015f57fe5b145b8061017d575060035b60055460ff16600481111561017b57fe5b145b151561018557fe5b60005460a060020a900460ff161561019957fe5b60443611156101a457fe5b662386f26fc100003410156101b557fe5b6006546101c990349063ffffffff61072e16565b6007549091506101df908263ffffffff61075d16565b600755600154600160a060020a03166340c10f19338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561023857600080fd5b6102c65a03f1151561024957600080fd5b505060045461025f91503463ffffffff61077416565b6004557f56430201b2365e1ecdceb0be78905cbc9a625c9f627c33e035ee6f00afd7be0f33348361028e61078e565b6000366040518087600160a060020a0316600160a060020a031681526020018681526020018581526020018060200180602001838103835286818151815260200191508051906020019080838360005b838110156102f75780820151818401525b6020016102de565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b50838103825284815260200185858082843782019150509850505050505050505060405180910390a15b5b5b50005b341561035e57600080fd5b610366610928565b6040518082600481111561037657fe5b60ff16815260200191505060405180910390f35b341561039557600080fd5b61039d610931565b604051600160a060020a03909116815260200160405180910390f35b34156103c457600080fd5b6103cc610940565b60405190815260200160405180910390f35b34156103e957600080fd5b61039d61094b565b604051600160a060020a03909116815260200160405180910390f35b341561041857600080fd5b61042061095a565b005b341561042d57600080fd5b61043561078e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156104725780820151818401525b602001610459565b50505050905090810190601f16801561049f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b857600080fd5b6103cc610a26565b60405190815260200160405180910390f35b34156104dd57600080fd5b6103cc610a35565b60405190815260200160405180910390f35b341561050257600080fd5b61039d610a3b565b604051600160a060020a03909116815260200160405180910390f35b341561053157600080fd5b6103cc610a4a565b60405190815260200160405180910390f35b341561055657600080fd5b610420610a50565b005b341561056b57600080fd5b610420610a90565b005b341561058057600080fd5b6103cc610b79565b60405190815260200160405180910390f35b34156105a557600080fd5b6103cc610b7f565b60405190815260200160405180910390f35b34156105ca57600080fd5b61039d610b84565b604051600160a060020a03909116815260200160405180910390f35b34156105f957600080fd5b6103cc610b93565b60405190815260200160405180910390f35b341561061e57600080fd5b610420610ba2565b005b341561063357600080fd5b6103cc610d01565b60405190815260200160405180910390f35b341561065857600080fd5b6103cc610d07565b60405190815260200160405180910390f35b341561067d57600080fd5b610685610d0d565b604051901515815260200160405180910390f35b34156106a457600080fd5b6103cc610d1d565b60405190815260200160405180910390f35b34156106c957600080fd5b610420610d23565b005b34156106de57600080fd5b610420600160a060020a0360043516610d73565b005b34156106ff57600080fd5b6103cc610dca565b60405190815260200160405180910390f35b341561072457600080fd5b610420610dd0565b005b600082820283158061074a575082848281151561074757fe5b04145b151561075257fe5b8091505b5092915050565b60008282111561076957fe5b508082035b92915050565b60008282018381101561075257fe5b8091505b5092915050565b610796611109565b60005b60055460ff1660048111156107aa57fe5b14156107eb5760408051908101604052600581527f526561647900000000000000000000000000000000000000000000000000000060208201529050610921565b60015b60055460ff1660048111156107ff57fe5b14156108405760408051908101604052600781527f506861736520310000000000000000000000000000000000000000000000000060208201529050610921565b60025b60055460ff16600481111561085457fe5b14156108955760408051908101604052600781527f506861736520320000000000000000000000000000000000000000000000000060208201529050610921565b60035b60055460ff1660048111156108a957fe5b14156108ea5760408051908101604052600781527f506861736520330000000000000000000000000000000000000000000000000060208201529050610921565b60408051908101604052600f81527f43726f776473616c6520656e6465640000000000000000000000000000000000602082015290505b5b5b5b5b90565b60055460ff1681565b600154600160a060020a031681565b662386f26fc1000081565b600354600160a060020a031681565b60005433600160a060020a0390811691161461097257fe5b6003805b60055460ff16600481111561098757fe5b1461098e57fe5b60005460a060020a900460ff16156109a257fe5b6109aa610eb9565b600060088190556007819055600655600580546004919060ff19166001835b021790555060055460008051602061111c8339815191529060039060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b6a12b1bc7474e42d9d00000081565b61032081565b600254600160a060020a031681565b60085481565b60005433600160a060020a03908116911614610a6857fe5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60005433600160a060020a03908116911614610aa857fe5b6002805b60055460ff166004811115610abd57fe5b14610ac457fe5b60005460a060020a900460ff1615610ad857fe5b610ae0610eb9565b600754610afe906a12b1bc7474e42d9d00000063ffffffff61077416565b6008819055600755610320600655600580546003919060ff19166001835b021790555060055460008051602061111c8339815191529060029060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b60075481565b600381565b600054600160a060020a031681565b6a115eec47f6cf7e3500000081565b60005433600160a060020a03908116911614610bba57fe5b6000805b60055460ff166004811115610bcf57fe5b14610bd657fe5b60005460a060020a900460ff1615610bea57fe5b600154610c87906a12b1bc7474e42d9d00000090610c7b906a115eec47f6cf7e3500000090600160a060020a031663cc5c095c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610c5457600080fd5b6102c65a03f11515610c6557600080fd5b505050604051805191905063ffffffff61075d16565b9063ffffffff61075d16565b6008819055600755610474600655600580546001919060ff191682805b021790555060055460008051602061111c8339815191529060009060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b61047481565b61039881565b60005460a060020a900460ff1681565b60045481565b60005433600160a060020a03908116911614610d3b57fe5b60005460a060020a900460ff161515610d5057fe5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b60005433600160a060020a03908116911614610d8b57fe5b600160a060020a0381161515610d9d57fe5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60065481565b60005433600160a060020a03908116911614610de857fe5b6001805b60055460ff166004811115610dfd57fe5b14610e0457fe5b60005460a060020a900460ff1615610e1857fe5b610e20610eb9565b600754610e3e906a115eec47f6cf7e3500000063ffffffff61077416565b6008819055600755610398600655600580546002919060ff19166001835b021790555060055460008051602061111c8339815191529060019060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b600080610ee86003610edc600160a060020a03301631606463ffffffff6110ed16565b9063ffffffff61072e16565b600354909250600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515610f1e57600080fd5b6003547f9c9fe2a4ffc2d534291d4944e37f0ff0a182aa17531e0c9c44227d18e7da67f890600160a060020a031683610f5561078e565b604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b83811015610fa85780820151818401525b602001610f8f565b50505050905090810190601f168015610fd55780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150600254600160a060020a03308116803192909116903180156108fc0290604051600060405180830381858888f19350505050151561102257600080fd5b6002547f9c9fe2a4ffc2d534291d4944e37f0ff0a182aa17531e0c9c44227d18e7da67f890600160a060020a03168261105961078e565b604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156110ac5780820151818401525b602001611093565b50505050905090810190601f1680156110d95780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15b5050565b60008082848115156110fb57fe5b0490508091505b5092915050565b602060405190810160405260008152905600e8a97ea87e4388fa22d496b95a8ed5ced6717f49790318de2b928aaf37a021d8a165627a7a72305820fb7c7e3dc58f60dbf88aa5d6f0730384947685fc561ca405c24839c345e73f990029000000000000000000000000b62d18dea74045e822352ce4b3ee77319dc5ff2f0000000000000000000000008947a66b513b40e3ad2b929b6022feeb12f81ba3000000000000000000000000d655f24c3134f445e0f9a5b20c10e686f0271b66

Deployed Bytecode

0x6060604052361561012d5763ffffffff60e060020a6000350416630c3f6acf81146103535780630fb411e81461038a5780631b85aa49146103b95780631bff4bfa146103de5780632095f2d41461040d5780632e66ee1b146104225780632fe6ecb2146104ad578063311277c1146104d257806338af3eed146104f7578063410b1da8146105265780635ed7ca5b1461054b5780635f2b9ac014610560578063771282f6146105755780638c12c35c1461059a5780638da5cb5b146105bf57806395c43d84146105ee578063a44081d114610613578063b20c0e4314610628578063b8782d491461064d578063b9b8af0b14610672578063c5c4744c14610699578063cb3e64fd146106be578063f2fde38b146106d3578063f9f8bdb7146106f4578063fcb5bc2914610719575b5b600060015b60055460ff16600481111561014457fe5b1480610161575060025b60055460ff16600481111561015f57fe5b145b8061017d575060035b60055460ff16600481111561017b57fe5b145b151561018557fe5b60005460a060020a900460ff161561019957fe5b60443611156101a457fe5b662386f26fc100003410156101b557fe5b6006546101c990349063ffffffff61072e16565b6007549091506101df908263ffffffff61075d16565b600755600154600160a060020a03166340c10f19338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561023857600080fd5b6102c65a03f1151561024957600080fd5b505060045461025f91503463ffffffff61077416565b6004557f56430201b2365e1ecdceb0be78905cbc9a625c9f627c33e035ee6f00afd7be0f33348361028e61078e565b6000366040518087600160a060020a0316600160a060020a031681526020018681526020018581526020018060200180602001838103835286818151815260200191508051906020019080838360005b838110156102f75780820151818401525b6020016102de565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b50838103825284815260200185858082843782019150509850505050505050505060405180910390a15b5b5b50005b341561035e57600080fd5b610366610928565b6040518082600481111561037657fe5b60ff16815260200191505060405180910390f35b341561039557600080fd5b61039d610931565b604051600160a060020a03909116815260200160405180910390f35b34156103c457600080fd5b6103cc610940565b60405190815260200160405180910390f35b34156103e957600080fd5b61039d61094b565b604051600160a060020a03909116815260200160405180910390f35b341561041857600080fd5b61042061095a565b005b341561042d57600080fd5b61043561078e565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156104725780820151818401525b602001610459565b50505050905090810190601f16801561049f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156104b857600080fd5b6103cc610a26565b60405190815260200160405180910390f35b34156104dd57600080fd5b6103cc610a35565b60405190815260200160405180910390f35b341561050257600080fd5b61039d610a3b565b604051600160a060020a03909116815260200160405180910390f35b341561053157600080fd5b6103cc610a4a565b60405190815260200160405180910390f35b341561055657600080fd5b610420610a50565b005b341561056b57600080fd5b610420610a90565b005b341561058057600080fd5b6103cc610b79565b60405190815260200160405180910390f35b34156105a557600080fd5b6103cc610b7f565b60405190815260200160405180910390f35b34156105ca57600080fd5b61039d610b84565b604051600160a060020a03909116815260200160405180910390f35b34156105f957600080fd5b6103cc610b93565b60405190815260200160405180910390f35b341561061e57600080fd5b610420610ba2565b005b341561063357600080fd5b6103cc610d01565b60405190815260200160405180910390f35b341561065857600080fd5b6103cc610d07565b60405190815260200160405180910390f35b341561067d57600080fd5b610685610d0d565b604051901515815260200160405180910390f35b34156106a457600080fd5b6103cc610d1d565b60405190815260200160405180910390f35b34156106c957600080fd5b610420610d23565b005b34156106de57600080fd5b610420600160a060020a0360043516610d73565b005b34156106ff57600080fd5b6103cc610dca565b60405190815260200160405180910390f35b341561072457600080fd5b610420610dd0565b005b600082820283158061074a575082848281151561074757fe5b04145b151561075257fe5b8091505b5092915050565b60008282111561076957fe5b508082035b92915050565b60008282018381101561075257fe5b8091505b5092915050565b610796611109565b60005b60055460ff1660048111156107aa57fe5b14156107eb5760408051908101604052600581527f526561647900000000000000000000000000000000000000000000000000000060208201529050610921565b60015b60055460ff1660048111156107ff57fe5b14156108405760408051908101604052600781527f506861736520310000000000000000000000000000000000000000000000000060208201529050610921565b60025b60055460ff16600481111561085457fe5b14156108955760408051908101604052600781527f506861736520320000000000000000000000000000000000000000000000000060208201529050610921565b60035b60055460ff1660048111156108a957fe5b14156108ea5760408051908101604052600781527f506861736520330000000000000000000000000000000000000000000000000060208201529050610921565b60408051908101604052600f81527f43726f776473616c6520656e6465640000000000000000000000000000000000602082015290505b5b5b5b5b90565b60055460ff1681565b600154600160a060020a031681565b662386f26fc1000081565b600354600160a060020a031681565b60005433600160a060020a0390811691161461097257fe5b6003805b60055460ff16600481111561098757fe5b1461098e57fe5b60005460a060020a900460ff16156109a257fe5b6109aa610eb9565b600060088190556007819055600655600580546004919060ff19166001835b021790555060055460008051602061111c8339815191529060039060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b6a12b1bc7474e42d9d00000081565b61032081565b600254600160a060020a031681565b60085481565b60005433600160a060020a03908116911614610a6857fe5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60005433600160a060020a03908116911614610aa857fe5b6002805b60055460ff166004811115610abd57fe5b14610ac457fe5b60005460a060020a900460ff1615610ad857fe5b610ae0610eb9565b600754610afe906a12b1bc7474e42d9d00000063ffffffff61077416565b6008819055600755610320600655600580546003919060ff19166001835b021790555060055460008051602061111c8339815191529060029060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b60075481565b600381565b600054600160a060020a031681565b6a115eec47f6cf7e3500000081565b60005433600160a060020a03908116911614610bba57fe5b6000805b60055460ff166004811115610bcf57fe5b14610bd657fe5b60005460a060020a900460ff1615610bea57fe5b600154610c87906a12b1bc7474e42d9d00000090610c7b906a115eec47f6cf7e3500000090600160a060020a031663cc5c095c6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610c5457600080fd5b6102c65a03f11515610c6557600080fd5b505050604051805191905063ffffffff61075d16565b9063ffffffff61075d16565b6008819055600755610474600655600580546001919060ff191682805b021790555060055460008051602061111c8339815191529060009060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b61047481565b61039881565b60005460a060020a900460ff1681565b60045481565b60005433600160a060020a03908116911614610d3b57fe5b60005460a060020a900460ff161515610d5057fe5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b60005433600160a060020a03908116911614610d8b57fe5b600160a060020a0381161515610d9d57fe5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60065481565b60005433600160a060020a03908116911614610de857fe5b6001805b60055460ff166004811115610dfd57fe5b14610e0457fe5b60005460a060020a900460ff1615610e1857fe5b610e20610eb9565b600754610e3e906a115eec47f6cf7e3500000063ffffffff61077416565b6008819055600755610398600655600580546002919060ff19166001835b021790555060055460008051602061111c8339815191529060019060ff16604051808360048111156109f757fe5b60ff168152602001826004811115610a0b57fe5b60ff1681526020019250505060405180910390a15b5b5b505b565b600080610ee86003610edc600160a060020a03301631606463ffffffff6110ed16565b9063ffffffff61072e16565b600354909250600160a060020a031682156108fc0283604051600060405180830381858888f193505050501515610f1e57600080fd5b6003547f9c9fe2a4ffc2d534291d4944e37f0ff0a182aa17531e0c9c44227d18e7da67f890600160a060020a031683610f5561078e565b604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b83811015610fa85780820151818401525b602001610f8f565b50505050905090810190601f168015610fd55780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150600254600160a060020a03308116803192909116903180156108fc0290604051600060405180830381858888f19350505050151561102257600080fd5b6002547f9c9fe2a4ffc2d534291d4944e37f0ff0a182aa17531e0c9c44227d18e7da67f890600160a060020a03168261105961078e565b604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b838110156110ac5780820151818401525b602001611093565b50505050905090810190601f1680156110d95780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15b5050565b60008082848115156110fb57fe5b0490508091505b5092915050565b602060405190810160405260008152905600e8a97ea87e4388fa22d496b95a8ed5ced6717f49790318de2b928aaf37a021d8a165627a7a72305820fb7c7e3dc58f60dbf88aa5d6f0730384947685fc561ca405c24839c345e73f990029

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

000000000000000000000000b62d18dea74045e822352ce4b3ee77319dc5ff2f0000000000000000000000008947a66b513b40e3ad2b929b6022feeb12f81ba3000000000000000000000000d655f24c3134f445e0f9a5b20c10e686f0271b66

-----Decoded View---------------
Arg [0] : _evc (address): 0xb62d18DeA74045E822352CE4B3EE77319DC5ff2F
Arg [1] : _beneficiary (address): 0x8947A66b513b40E3Ad2B929b6022fEEB12F81Ba3
Arg [2] : _beneficiaryTwo (address): 0xD655f24c3134F445E0f9A5B20C10e686F0271b66

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000b62d18dea74045e822352ce4b3ee77319dc5ff2f
Arg [1] : 0000000000000000000000008947a66b513b40e3ad2b929b6022feeb12f81ba3
Arg [2] : 000000000000000000000000d655f24c3134f445e0f9a5b20c10e686f0271b66


Swarm Source

bzzr://fb7c7e3dc58f60dbf88aa5d6f0730384947685fc561ca405c24839c345e73f99

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.