Contract Overview | AcornCollectiveCrowdsale
Balance: 0 Ether
Ether Value: $0
Transactions: 3160 txns
 Latest 25 transactions from a total of 3160 transactions

TxHash Age From To Value [TxFee]
0x53ae90fb7f280281637317d1f649f781472acc6cb1df72129d995af645597d9c19 days 8 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.00352378
0xfd176dd9baefac5012063918ad1e739cbed7ae72ee3708b77414c08ef48b83b021 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0xd2da3d10fcd8badad6f3a4417d1ddc3daaf6cfc5387606cb398118cfbaf4142622 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000647
0x46ff0d6b58f35eec1bbe4a6504e9258d4fc4db269f1688a21f4663efbac5d4b422 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.00137184
0x54369f32654c0ccab6f71d892dadcd700f247303e945263c300ed3f7476ac95f22 days 5 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0x4686fb0e879c8fb729b66b465680006fd3346f08fd62beda9c9012b8393797ad22 days 5 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0x14c6337afaaa30e9dd3228d09cae14ea0df58b4ec790d4a288347510c170c06128 days 21 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0xd5612f0151cf4df1736e35f58c389c95f1d4e38bee86954c3092151d68cde23f28 days 21 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0xad263972545f1b453ebc63d564ded521c3b1022619925fabca7c30ce408709e432 days 1 hr ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0x0bbb58a5da33dfcb600ffafe49c63992d19ca27cd54d17297f0f88c2c80ec35b33 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0x0164c8333c306d54a46cd1a387dc257268cd3defc686106f262d90f311d28dc633 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.00137056
0x905b2c974eca54a31abb0515102da45ba6e2ee800b89594ea083f69ca366cd0533 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0x25b952b0de022cca101d167cf51562aa9c7cae0c6f1ba3c34e5fc8b4ae1e004d34 days 1 hr ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000347
0xda97fdf9d453459eb2bc730fb3d4525cdadc54860182cdc63aea3b0746098ef934 days 2 hrs ago0xaade4006880f13b0eaba52c76effd5485651b792  IN   AcornCollectiveCrowdsale0 Ether0.000187278
0x087b2eb7f2d4575d95d99be2fe5e0d13423c358dac6705308fa14e28399f28ce34 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.000780325
0xca44fd0bb5f695f49ce9675314600f265731e9a3cdef94e9f9c5bbbc8043eee034 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.00054978
0x71e590e33314c73311c1d0e99a3e7befe26881b49996f8a1a67cd888a1efa058159 days 3 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.0054464
0xa25c01356c4a88b579a2650805ce5d41e90b7a7a029d788bac000ff7825bb4c9160 days 2 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.00250785
0x64e9279e1b7a9d0e3629e67cf76c4bcea8f823efb385c8b5f088c5e53ee37474169 days 18 hrs ago0xfe0073a36cf99745987085a8ac8bc98bc9b26ec9  IN   AcornCollectiveCrowdsale1 Ether0.00096652
0x9a2c165d3fb41e8cb69b40f954e15ebcf585cc8651eb8a8bb219b6a67bfe1857169 days 21 hrs ago0xc660c9022c6c857dd30c6f7e18d293130b3840f6  IN   AcornCollectiveCrowdsale0.6445 Ether0.002860746
0xe84fe0a1a0f1788b9fec0ed0b3d821ef11a859019b3d9eba9b165223fb589411170 days 2 hrs ago0x21dc9e16b36ff43336f8501c960e199960c369ea  IN   AcornCollectiveCrowdsale0.13 Ether0.004022633
0xdcb67236e5752b980e4915340decba88950985968c9054a64be314daef51f3b1170 days 4 hrs ago0x55472730e9ca9e5b294582a9a16d463161238c10  IN   AcornCollectiveCrowdsale0.01 Ether0.004022633
0x43b7cab86bdeda8899b8e4eed3dc644af8e31909d1548fad7706f1b20840b220170 days 11 hrs ago0xe7fb21a9314ada9458ade4dff7f2e96d8bb85d8e  IN   AcornCollectiveCrowdsale0.007 Ether0.004022633
0x74510d65b2e29c5c08fe335e0d5f5aaf832ba431f99a0436e5dffd14606cfd6c170 days 15 hrs ago0x39c9f213d751c276c40e8a3fa5d12ebe7dfe2f95  IN   AcornCollectiveCrowdsale0.09 Ether0.004022633
0x618771a6645712a1b2ec990d6c4a2c528662df93b4996bb4a256b3da4dfce5b9170 days 18 hrs ago0x59da6991b986df226397e8f2963de995d02f9c75  IN   AcornCollectiveCrowdsale0.55 Ether0.002792633
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0xb170cc7122e2de22e66d880be8e10b304b566783e18a97d2ff363d4ab8adb8be5910287159 days 5 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5822.75615 Ether
0xb170cc7122e2de22e66d880be8e10b304b566783e18a97d2ff363d4ab8adb8be5910287159 days 5 hrs ago0x85bf2afa961e88ff54e8e8bb59d5ec905867caa80x25beb989d3ef4e6e0fef8220944bb74e2aa6ff452.75615 Ether
0x9a2c165d3fb41e8cb69b40f954e15ebcf585cc8651eb8a8bb219b6a67bfe18575848230169 days 21 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.6445 Ether
0xe84fe0a1a0f1788b9fec0ed0b3d821ef11a859019b3d9eba9b165223fb5894115847008170 days 2 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.13 Ether
0xdcb67236e5752b980e4915340decba88950985968c9054a64be314daef51f3b15846418170 days 4 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.01 Ether
0x43b7cab86bdeda8899b8e4eed3dc644af8e31909d1548fad7706f1b20840b2205844756170 days 11 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.007 Ether
0x74510d65b2e29c5c08fe335e0d5f5aaf832ba431f99a0436e5dffd14606cfd6c5843785170 days 15 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.09 Ether
0x618771a6645712a1b2ec990d6c4a2c528662df93b4996bb4a256b3da4dfce5b95843174170 days 18 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.55 Ether
0x6512dd1701e2969f5a64e45124735dd90aae64362e85f87121fbd83f5aef41dd5842962170 days 18 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5821.5 Ether
0x151055f7de269cc2001257ee4dcae051e4b4771069c5b9f8d43deae99c1643225842608170 days 20 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.002105 Ether
0xd59a2ad10ef5f6115d2790b1a32058c09a4600e2a497f746c8131d58c0e974cf5842587170 days 20 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.044005 Ether
0xdc5bd70fdd332619d43f983a6545eca7580e72afc26e0e5c4eb996477a08b4ec5842345170 days 21 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.25 Ether
0x1677af28f664f8885c6bb299721f95e86ff07a9c6140e28fa7f59bc03d0d60665841991170 days 22 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.045 Ether
0xc9d66f126ed9db2a45c7754a3512223035b72379edb27b6a854af8c48d066ae85841697170 days 23 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.11 Ether
0x56d8d8d7ef4f4f898747eb95dc686a1d3c620418f60a3301654f0995dc482a725841206171 days 1 hr ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.15 Ether
0x7fffc8a737210e60a3dace763fdb8091823aa396aa6bd830a4287bcd9d7f659f5840838171 days 3 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.080421 Ether
0x8962b33669d4b462d862f88fd8259bbd1c2517942818da8d6c31bc34a3a7e2cd5840377171 days 5 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.5 Ether
0x3ef405bdf9a77aa33c070233cc959c633da05a952363a9c9d7a0af41c4e424605839990171 days 6 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.025 Ether
0x80d9677db688f4871b89ee8412616d34e099ba14dbfd0c0bd6a934329d3faebc5839832171 days 7 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.2 Ether
0xf61a5ada570d46f2bc8894614dec70aaee536f302382c8ed5f03258c889760e35837353171 days 17 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.8007118484 Ether
0x910098f3c27dee1bd06df07e8ce7331cdb8dce5f8f7f97e5acf8717b545a9cb55835466172 days 1 hr ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.3 Ether
0xcea0ba3fb70ffc4805bd2e7eb9223a2f2fa517f1ae674ad7d9cdf1a284756f105835217172 days 2 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5822 Ether
0xe500020adae091abf64357b5ef7bc3e160cd837c886c1924d1014715e71d633d5835036172 days 3 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5825 Ether
0xdcde7d8ce8d8442cd9f2c98eee1de884d5334f32a81739e41d93e4d012ea503e5834931172 days 3 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5825 Ether
0x44715c0ca48a12e0dbdfeff0fa026cfd3610c0ab640919f95335c8d18a0cd0f55834550172 days 5 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.5 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: OAKTokenCrowdsale
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.18;

// File: zeppelin-solidity/contracts/ownership/Ownable.sol

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


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


    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    function Ownable() public {
        owner = msg.sender;
    }


    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }


    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

// File: zeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

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

// File: zeppelin-solidity/contracts/token/ERC20Basic.sol

/**
 * @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) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

// File: zeppelin-solidity/contracts/token/BasicToken.sol

/**
 * @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) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[msg.sender]);

        // SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
        Transfer(msg.sender, _to, _value);
        return true;
    }

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

}

// File: zeppelin-solidity/contracts/token/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: zeppelin-solidity/contracts/token/StandardToken.sol

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

    mapping (address => mapping (address => uint256)) internal allowed;


    /**
     * @dev Transfer tokens from one address to another
     * @param _from address The address which you want to send tokens from
     * @param _to address The address which you want to transfer to
     * @param _value uint256 the amount of tokens to be transferred
     */
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);

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

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

    /**
     * @dev Function to check the amount of tokens that an owner allowed to a spender.
     * @param _owner address The address which owns the funds.
     * @param _spender address The address which will spend the funds.
     * @return A uint256 specifying the amount of tokens still available for the spender.
     */
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }

    /**
     * approve should be called when allowed[_spender] == 0. To increment
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     */
    function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

}

// File: zeppelin-solidity/contracts/token/MintableToken.sol

/**
 * @title Mintable token
 * @dev Simple ERC20 Token example, with mintable token creation
 * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
 * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
 */

contract MintableToken is StandardToken, Ownable {
    event Mint(address indexed to, uint256 amount);
    event MintFinished();

    bool public mintingFinished = false;


    modifier canMint() {
        require(!mintingFinished);
        _;
    }

    /**
     * @dev Function to mint tokens
     * @param _to The address that will receive the minted tokens.
     * @param _amount The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
        totalSupply = totalSupply.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        Mint(_to, _amount);
        Transfer(address(0), _to, _amount);
        return true;
    }

    /**
     * @dev Function to stop minting new tokens.
     * @return True if the operation was successful.
     */
    function finishMinting() onlyOwner canMint public returns (bool) {
        mintingFinished = true;
        MintFinished();
        return true;
    }
}

// File: contracts/OAKToken.sol

contract OAKToken is MintableToken {
    string public name = "Acorn Collective Token";
    string public symbol = "OAK";
    uint256 public decimals = 18;

    mapping(address => bool) public kycRequired;

    // overriding MintableToken#mint to add kyc logic
    function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
        kycRequired[_to] = true;
        return super.mint(_to, _amount);
    }

    // overriding MintableToken#transfer to add kyc logic
    function transfer(address _to, uint _value) public returns (bool) {
        require(!kycRequired[msg.sender]);

        return super.transfer(_to, _value);
    }

    // overriding MintableToken#transferFrom to add kyc logic
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(!kycRequired[_from]);

        return super.transferFrom(_from, _to, _value);
    }

    function kycVerify(address participant) onlyOwner public {
        kycRequired[participant] = false;
        KycVerified(participant);
    }
    event KycVerified(address indexed participant);
}

// File: contracts/Crowdsale.sol

/**
 * @title Crowdsale
 * @dev Crowdsale is a base contract for managing a token crowdsale.
 * Crowdsales have a start and end timestamps, where investors can make
 * token purchases and the crowdsale will assign them tokens based
 * on a token per ETH rate. Funds collected are forwarded to a wallet
 * as they arrive.
 */
contract Crowdsale {
    using SafeMath for uint256;

    // The token being sold
    OAKToken public token;

    // start and end timestamps where investments are allowed (both inclusive)
    uint256 public startTime;
    uint256 public endTime;

    // address where funds are collected
    address public wallet;

    // how many token units a buyer gets per wei
    uint256 public rate;

    // amount of raised money in wei
    uint256 public weiRaised;

    /**
     * event for token purchase logging
     * @param purchaser who paid for the tokens
     * @param beneficiary who got the tokens
     * @param value weis paid for purchase
     * @param amount amount of tokens purchased
     */
    event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);


    function Crowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet) public {
        require(_startTime >= now);
        require(_endTime >= _startTime);
        require(_rate > 0);
        require(_wallet != address(0));

        token = createTokenContract();
        startTime = _startTime;
        endTime = _endTime;
        rate = _rate;
        wallet = _wallet;
    }

    // creates the token to be sold.
    // override this method to have crowdsale of a specific mintable token.
    event CrowdSaleTokenContractCreation();
    // creates the token to be sold.
    function createTokenContract() internal returns (OAKToken) {
        OAKToken newToken = new OAKToken();
        CrowdSaleTokenContractCreation();
        return newToken;
    }


    // fallback function can be used to buy tokens
    function () external payable {
        buyTokens(msg.sender);
    }

    // low level token purchase function
    function buyTokens(address beneficiary) public payable {
        require(beneficiary != address(0));
        require(validPurchase());

        uint256 weiAmount = msg.value;

        // calculate token amount to be created
        uint256 tokens = weiAmount.mul(rate);

        // update state
        weiRaised = weiRaised.add(weiAmount);

        token.mint(beneficiary, tokens);
        TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);

        forwardFunds();
    }

    // send ether to the fund collection wallet
    // override to create custom fund forwarding mechanisms
    function forwardFunds() internal {
        wallet.transfer(msg.value);
    }

    // @return true if the transaction can buy tokens
    function validPurchase() internal view returns (bool) {
        bool withinPeriod = now >= startTime && now <= endTime;
        bool nonZeroPurchase = msg.value != 0;
        return withinPeriod && nonZeroPurchase;
    }

    // @return true if crowdsale event has ended
    function hasEnded() public view returns (bool) {
        return now > endTime;
    }


}

// File: contracts/FinalizableCrowdsale.sol

/**
 * @title FinalizableCrowdsale
 * @dev Extension of Crowdsale where an owner can do extra work
 * after finishing.
 */
contract FinalizableCrowdsale is Crowdsale, Ownable {
    using SafeMath for uint256;

    bool public isFinalized = false;

    event Finalized();

    /**
     * @dev Must be called after crowdsale ends, to do some extra finalization
     * work. Calls the contract's finalization function.
     */
    function finalize() onlyOwner public {
        require(!isFinalized);
        require(hasEnded());

        finalization();
        Finalized();

        isFinalized = true;
    }

    /**
     * @dev Can be overridden to add finalization logic. The overriding function
     * should call super.finalization() to ensure the chain of finalization is
     * executed entirely.
     */
    function finalization() internal {
    }
}

// File: zeppelin-solidity/contracts/lifecycle/Pausable.sol

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;


    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() onlyOwner whenPaused public {
        paused = false;
        Unpause();
    }
}

// File: contracts/OAKTokenCrowdsale.sol

contract OAKTokenCrowdsale is FinalizableCrowdsale, Pausable {

    uint256 public restrictedPercent;
    address public restricted;
    uint256 public soldTokens;
    uint256 public hardCap;
    uint256 public vipRate;

    uint256 public totalTokenSupply;

    mapping(address => bool) public vip;

    //TokenTimelock logic
    uint256 public Y1_lockedTokenReleaseTime;
    uint256 public Y1_lockedTokenAmount;

    uint256 public Y2_lockedTokenReleaseTime;
    uint256 public Y2_lockedTokenAmount;


    // constructor
    function OAKTokenCrowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet) public
    Crowdsale(_startTime, _endTime, _rate, _wallet) {

        // total token supply for sales
        totalTokenSupply = 75000000 * 10 ** 18;

        // hardCap for pre-sale
        hardCap = 7000000 * 10 ** 18;

        vipRate = _rate;
        soldTokens = 0;

        restrictedPercent = 20;
        restricted = msg.sender;
    }

    // update hardCap for sale
    function setHardCap(uint256 _hardCap) public onlyOwner {
        require(!isFinalized);
        require(_hardCap >= 0 && _hardCap <= totalTokenSupply);

        hardCap = _hardCap;
    }

    // update address where funds are collected
    function setWalletAddress(address _wallet) public onlyOwner {
        require(!isFinalized);

        wallet = _wallet;
    }

    // update token units a buyer gets per wei
    function setRate(uint256 _rate) public onlyOwner {
        require(!isFinalized);
        require(_rate > 0);

        rate = _rate;
    }

    // update token units a vip buyer gets per wei
    function setVipRate(uint256 _vipRate) public onlyOwner {
        require(!isFinalized);
        require(_vipRate > 0);

        vipRate = _vipRate;
    }

    // add VIP buyer address
    function setVipAddress(address _address) public onlyOwner {
        vip[_address] = true;
    }

    // remove VIP buyer address
    function unsetVipAddress(address _address) public onlyOwner {
        vip[_address] = false;
    }

    // update startTime, endTime for post-sales
    function setSalePeriod(uint256 _startTime, uint256 _endTime) public onlyOwner {
        require(!isFinalized);
        require(_startTime > 0);
        require(_endTime > _startTime);

        startTime = _startTime;
        endTime = _endTime;
    }

    // fallback function can be used to buy tokens
    function () external payable {
        buyTokens(msg.sender);
    }

    // overriding Crowdsale#buyTokens to add pausable sales and vip logic
    function buyTokens(address beneficiary) public whenNotPaused payable {
        require(beneficiary != address(0));
        require(!isFinalized);

        uint256 weiAmount = msg.value;
        uint tokens;

        if(vip[msg.sender] == true){
            tokens = weiAmount.mul(vipRate);
        }else{
            tokens = weiAmount.mul(rate);
        }
        require(validPurchase(tokens));
        soldTokens = soldTokens.add(tokens);

        // update state
        weiRaised = weiRaised.add(weiAmount);

        token.mint(beneficiary, tokens);
        TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);

        forwardFunds();
    }

    // overriding Crowdsale#validPurchase to add capped sale logic
    // @return true if the transaction can buy tokens
    function validPurchase(uint256 tokens) internal view returns (bool) {
        bool withinPeriod = now >= startTime && now <= endTime;
        bool withinCap = soldTokens.add(tokens) <= hardCap;
        bool withinTotalSupply = soldTokens.add(tokens) <= totalTokenSupply;
        bool nonZeroPurchase = msg.value != 0;
        return withinPeriod && nonZeroPurchase && withinCap && withinTotalSupply;
    }

    // overriding FinalizableCrowdsale#finalization to add 20% of sold token for owner
    function finalization() internal {
        // mint locked token to Crowdsale contract
        uint256 restrictedTokens = soldTokens.div(100).mul(restrictedPercent);
        token.mint(this, restrictedTokens);
        token.kycVerify(this);

        Y1_lockedTokenReleaseTime = now + 1 years;
        Y1_lockedTokenAmount = restrictedTokens.div(2);

        Y2_lockedTokenReleaseTime = now + 2 years;
        Y2_lockedTokenAmount = restrictedTokens.div(2);

        // stop minting new tokens
        token.finishMinting();

        // transfer the contract ownership to OAKTokenCrowdsale.owner
        token.transferOwnership(owner);

    }

    // release the 1st year locked token
    function Y1_release() onlyOwner public {
        require(Y1_lockedTokenAmount > 0);
        require(now > Y1_lockedTokenReleaseTime);

        // transfer the locked token to restricted
        token.transfer(restricted, Y1_lockedTokenAmount);

        Y1_lockedTokenAmount = 0;
    }

    // release the 2nd year locked token
    function Y2_release() onlyOwner public {
        require(Y1_lockedTokenAmount == 0);
        require(Y2_lockedTokenAmount > 0);
        require(now > Y2_lockedTokenReleaseTime);

        uint256 amount = token.balanceOf(this);
        require(amount > 0);

        // transfer the locked token to restricted
        token.transfer(restricted, amount);

        Y2_lockedTokenAmount = 0;
    }

    function kycVerify(address participant) onlyOwner public {
        token.kycVerify(participant);
    }

    function addPrecommitment(address participant, uint balance) onlyOwner public {
        require(!isFinalized);
        require(balance > 0);
        // Check if the total token supply will be exceeded
        require(soldTokens.add(balance) <= totalTokenSupply);

        soldTokens = soldTokens.add(balance);
        token.mint(participant, balance);
    }

}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"participant","type":"address"}],"name":"kycVerify","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalTokenSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Y1_release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setVipAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"restrictedPercent","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"participant","type":"address"},{"name":"balance","type":"uint256"}],"name":"addPrecommitment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"restricted","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_vipRate","type":"uint256"}],"name":"setVipRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Y1_lockedTokenAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Y1_lockedTokenReleaseTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"setWalletAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"setSalePeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"vipRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"Y2_release","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_hardCap","type":"uint256"}],"name":"setHardCap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"vip","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"Y2_lockedTokenReleaseTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"unsetVipAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"Y2_lockedTokenAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[],"name":"CrowdSaleTokenContractCreation","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526006805460a060020a61ffff021916905534156200002157600080fd5b604051608080620033e2833981016040528080519190602001805191906020018051919060200180519150849050838383428410156200006057600080fd5b838310156200006e57600080fd5b600082116200007c57600080fd5b600160a060020a03811615156200009257600080fd5b620000aa640100000000620013a96200013b82021704565b60008054600160a060020a0319908116600160a060020a039384161782556001969096556002949094556004929092556003805485169183169190911790556006805484163390921691821790556a3e09de2596099e2b000000600c556a05ca4ec2a79a7f67000000600a55600b9490945560095560146007556008805490911690921790915550620001a3915050565b6000806200014862000192565b604051809103906000f08015156200015f57600080fd5b90507fd876c754397ecafd758705e64dc192d268a20619dac8a0257e27407ded8f2dc460405160405180910390a1919050565b604051610ef980620024e983390190565b61233680620001b36000396000f300606060405260043610620001d95763ffffffff60e060020a6000350416631881b0f08114620001e65780631ca8b6cb14620002085780632908fb5a14620002305780632c03de3714620002465780632c4e722e14620002685780633197cbb6146200027e57806334fcf43714620002945780633733950614620002ad5780633818d90714620002c35780633f4ba83a14620002e85780634042b66f14620002fe5780634bb278f31462000314578063521eb273146200032a5780635c975abb146200035c5780635ed9ebfc14620003865780637072c6b1146200039c57806378e9792514620003b25780638456cb5914620003c85780638d4e408314620003de5780638da5cb5b14620003f45780638fd4f899146200040a57806392be675f1462000423578063a000812c1462000439578063ac1a386a146200044f578063ba1c3b921462000471578063be83ff83146200048d578063cc8a86a014620004a3578063d18d944b14620004b9578063ddd2729d14620004d2578063de5c995e14620004f4578063e6547f9b146200050a578063ec8ac4d8146200052c578063ecb70fb71462000542578063f2fde38b1462000558578063faede6a1146200057a578063fb86a4041462000590578063fc0c546a14620005a6575b620001e433620005bc565b005b3415620001f257600080fd5b620001e4600160a060020a03600435166200078c565b34156200021457600080fd5b6200021e62000811565b60405190815260200160405180910390f35b34156200023c57600080fd5b620001e462000817565b34156200025257600080fd5b620001e4600160a060020a0360043516620008e1565b34156200027457600080fd5b6200021e62000921565b34156200028a57600080fd5b6200021e62000927565b3415620002a057600080fd5b620001e46004356200092d565b3415620002b957600080fd5b6200021e62000974565b3415620002cf57600080fd5b620001e4600160a060020a03600435166024356200097a565b3415620002f457600080fd5b620001e462000a7b565b34156200030a57600080fd5b6200021e62000afd565b34156200032057600080fd5b620001e462000b03565b34156200033657600080fd5b6200034062000ba9565b604051600160a060020a03909116815260200160405180910390f35b34156200036857600080fd5b6200037262000bb8565b604051901515815260200160405180910390f35b34156200039257600080fd5b6200021e62000bc8565b3415620003a857600080fd5b6200034062000bce565b3415620003be57600080fd5b6200021e62000bdd565b3415620003d457600080fd5b620001e462000be3565b3415620003ea57600080fd5b6200037262000c6a565b34156200040057600080fd5b6200034062000c7a565b34156200041657600080fd5b620001e460043562000c89565b34156200042f57600080fd5b6200021e62000cd0565b34156200044557600080fd5b6200021e62000cd6565b34156200045b57600080fd5b620001e4600160a060020a036004351662000cdc565b34156200047d57600080fd5b620001e460043560243562000d3f565b34156200049957600080fd5b6200021e62000d99565b3415620004af57600080fd5b620001e462000d9f565b3415620004c557600080fd5b620001e460043562000f01565b3415620004de57600080fd5b62000372600160a060020a036004351662000f5a565b34156200050057600080fd5b6200021e62000f6f565b34156200051657600080fd5b620001e4600160a060020a036004351662000f75565b620001e4600160a060020a0360043516620005bc565b34156200054e57600080fd5b6200037262000fb2565b34156200056457600080fd5b620001e4600160a060020a036004351662000fba565b34156200058657600080fd5b6200021e62001057565b34156200059c57600080fd5b6200021e6200105d565b3415620005b257600080fd5b6200034062001063565b600654600090819060a860020a900460ff1615620005d957600080fd5b600160a060020a0383161515620005ef57600080fd5b60065460a060020a900460ff16156200060757600080fd5b600160a060020a0333166000908152600d602052604090205434925060ff161515600114156200064f57600b546200064790839063ffffffff6200107216565b905062000668565b6004546200066590839063ffffffff6200107216565b90505b6200067381620010ac565b15156200067f57600080fd5b60095462000694908263ffffffff6200113416565b600955600554620006ac908363ffffffff6200113416565b60055560008054600160a060020a0316906340c10f1990859084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156200071257600080fd5b6102c65a03f115156200072457600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a36200078762001144565b505050565b60065433600160a060020a03908116911614620007a857600080fd5b600054600160a060020a0316631881b0f08260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620007f957600080fd5b6102c65a03f115156200080b57600080fd5b50505050565b600c5481565b60065433600160a060020a039081169116146200083357600080fd5b600f54600090116200084457600080fd5b600e5442116200085357600080fd5b60008054600854600f54600160a060020a039283169363a9059cbb93909216916040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620008be57600080fd5b6102c65a03f11515620008d057600080fd5b505050604051805150506000600f55565b60065433600160a060020a03908116911614620008fd57600080fd5b600160a060020a03166000908152600d60205260409020805460ff19166001179055565b60045481565b60025481565b60065433600160a060020a039081169116146200094957600080fd5b60065460a060020a900460ff16156200096157600080fd5b600081116200096f57600080fd5b600455565b60075481565b60065433600160a060020a039081169116146200099657600080fd5b60065460a060020a900460ff1615620009ae57600080fd5b60008111620009bc57600080fd5b600c54600954620009d4908363ffffffff6200113416565b1115620009e057600080fd5b600954620009f5908263ffffffff6200113416565b60095560008054600160a060020a0316906340c10f1990849084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151562000a5b57600080fd5b6102c65a03f1151562000a6d57600080fd5b505050604051805150505050565b60065433600160a060020a0390811691161462000a9757600080fd5b60065460a860020a900460ff16151562000ab057600080fd5b6006805475ff000000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60055481565b60065433600160a060020a0390811691161462000b1f57600080fd5b60065460a060020a900460ff161562000b3757600080fd5b62000b4162000fb2565b151562000b4d57600080fd5b62000b576200117b565b7f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768160405160405180910390a16006805474ff0000000000000000000000000000000000000000191660a060020a179055565b600354600160a060020a031681565b60065460a860020a900460ff1681565b60095481565b600854600160a060020a031681565b60015481565b60065433600160a060020a0390811691161462000bff57600080fd5b60065460a860020a900460ff161562000c1757600080fd5b6006805475ff000000000000000000000000000000000000000000191660a860020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b60065460a060020a900460ff1681565b600654600160a060020a031681565b60065433600160a060020a0390811691161462000ca557600080fd5b60065460a060020a900460ff161562000cbd57600080fd5b6000811162000ccb57600080fd5b600b55565b600f5481565b600e5481565b60065433600160a060020a0390811691161462000cf857600080fd5b60065460a060020a900460ff161562000d1057600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60065433600160a060020a0390811691161462000d5b57600080fd5b60065460a060020a900460ff161562000d7357600080fd5b6000821162000d8157600080fd5b81811162000d8e57600080fd5b600191909155600255565b600b5481565b60065460009033600160a060020a0390811691161462000dbe57600080fd5b600f541562000dcc57600080fd5b6011546000901162000ddd57600080fd5b601054421162000dec57600080fd5b60008054600160a060020a0316906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151562000e4857600080fd5b6102c65a03f1151562000e5a57600080fd5b50505060405180519150506000811162000e7357600080fd5b60008054600854600160a060020a039182169263a9059cbb929091169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151562000edd57600080fd5b6102c65a03f1151562000eef57600080fd5b50505060405180515050600060115550565b60065433600160a060020a0390811691161462000f1d57600080fd5b60065460a060020a900460ff161562000f3557600080fd5b6000811015801562000f495750600c548111155b151562000f5557600080fd5b600a55565b600d6020526000908152604090205460ff1681565b60105481565b60065433600160a060020a0390811691161462000f9157600080fd5b600160a060020a03166000908152600d60205260409020805460ff19169055565b600254421190565b60065433600160a060020a0390811691161462000fd657600080fd5b600160a060020a038116151562000fec57600080fd5b600654600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60115481565b600a5481565b600054600160a060020a031681565b600080831515620010875760009150620010a5565b508282028284828115156200109857fe5b0414620010a157fe5b8091505b5092915050565b60008060008060006001544210158015620010c957506002544211155b9350600a54620010e5876009546200113490919063ffffffff16565b11159250600c5462001103876009546200113490919063ffffffff16565b1115915050341515838015620011165750805b8015620011205750825b80156200112a5750815b9695505050505050565b600082820183811015620010a157fe5b600354600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156200117957600080fd5b565b6000620011a96007546200119c60646009546200139190919063ffffffff16565b9063ffffffff6200107216565b60008054919250600160a060020a03909116906340c10f1990309084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156200121157600080fd5b6102c65a03f115156200122357600080fd5b50505060405180515050600054600160a060020a0316631881b0f03060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156200127e57600080fd5b6102c65a03f115156200129057600080fd5b5050506301e133804201600e55620012b081600263ffffffff6200139116565b600f556303c267004201601055620012d081600263ffffffff6200139116565b60115560008054600160a060020a031690637d64bcb490604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156200131d57600080fd5b6102c65a03f115156200132f57600080fd5b50505060405180515050600054600654600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515620007f957600080fd5b6000808284811515620013a057fe5b04949350505050565b600080620013b662001400565b604051809103906000f0801515620013cd57600080fd5b90507fd876c754397ecafd758705e64dc192d268a20619dac8a0257e27407ded8f2dc460405160405180910390a1919050565b604051610ef98062001412833901905600606060409081526003805460a060020a60ff02191690558051908101604052601681527f41636f726e20436f6c6c65637469766520546f6b656e000000000000000000006020820152600490805161005b9291602001906100c9565b5060408051908101604052600381527f4f414b0000000000000000000000000000000000000000000000000000000000602082015260059080516100a39291602001906100c9565b50601260065560038054600160a060020a03191633600160a060020a0316179055610164565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010a57805160ff1916838001178555610137565b82800160010185558215610137579182015b8281111561013757825182559160200191906001019061011c565b50610143929150610147565b5090565b61016191905b80821115610143576000815560010161014d565b90565b610d86806101736000396000f3006060604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461010057806306fdde0314610127578063095ea7b3146101b157806318160ddd146101d35780631881b0f0146101f857806323b872dd14610219578063313ce5671461024157806340c10f1914610254578063661884631461027657806370a08231146102985780637d64bcb4146102b75780638da5cb5b146102ca57806395d89b41146102f9578063a9059cbb1461030c578063b7121da41461032e578063d73dd6231461034d578063dd62ed3e1461036f578063f2fde38b14610394575b600080fd5b341561010b57600080fd5b6101136103b3565b604051901515815260200160405180910390f35b341561013257600080fd5b61013a6103c3565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017657808201518382015260200161015e565b50505050905090810190601f1680156101a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101bc57600080fd5b610113600160a060020a0360043516602435610461565b34156101de57600080fd5b6101e66104cd565b60405190815260200160405180910390f35b341561020357600080fd5b610217600160a060020a03600435166104d3565b005b341561022457600080fd5b610113600160a060020a036004358116906024351660443561053e565b341561024c57600080fd5b6101e6610577565b341561025f57600080fd5b610113600160a060020a036004351660243561057d565b341561028157600080fd5b610113600160a060020a03600435166024356105e6565b34156102a357600080fd5b6101e6600160a060020a03600435166106e0565b34156102c257600080fd5b6101136106fb565b34156102d557600080fd5b6102dd610786565b604051600160a060020a03909116815260200160405180910390f35b341561030457600080fd5b61013a610795565b341561031757600080fd5b610113600160a060020a0360043516602435610800565b341561033957600080fd5b610113600160a060020a0360043516610830565b341561035857600080fd5b610113600160a060020a0360043516602435610845565b341561037a57600080fd5b6101e6600160a060020a03600435811690602435166108e9565b341561039f57600080fd5b610217600160a060020a0360043516610914565b60035460a060020a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104595780601f1061042e57610100808354040283529160200191610459565b820191906000526020600020905b81548152906001019060200180831161043c57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b60035433600160a060020a039081169116146104ee57600080fd5b600160a060020a03811660008181526007602052604090819020805460ff191690557fb3e6054663369578ee4831fc6c8ee9486db04e6f78b939250094785f6b6a430b905160405180910390a250565b600160a060020a03831660009081526007602052604081205460ff161561056457600080fd5b61056f8484846109af565b949350505050565b60065481565b60035460009033600160a060020a0390811691161461059b57600080fd5b60035460a060020a900460ff16156105b257600080fd5b600160a060020a0383166000908152600760205260409020805460ff191660011790556105df8383610b31565b9392505050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561064357600160a060020a03338116600090815260026020908152604080832093881683529290529081205561067a565b610653818463ffffffff610c3e16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461071957600080fd5b60035460a060020a900460ff161561073057600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104595780601f1061042e57610100808354040283529160200191610459565b600160a060020a03331660009081526007602052604081205460ff161561082657600080fd5b6105df8383610c50565b60076020526000908152604090205460ff1681565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205461087d908363ffffffff610d4b16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461092f57600080fd5b600160a060020a038116151561094457600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a03831615156109c657600080fd5b600160a060020a0384166000908152600160205260409020548211156109eb57600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610a1e57600080fd5b600160a060020a038416600090815260016020526040902054610a47908363ffffffff610c3e16565b600160a060020a038086166000908152600160205260408082209390935590851681522054610a7c908363ffffffff610d4b16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610ac4908363ffffffff610c3e16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035460009033600160a060020a03908116911614610b4f57600080fd5b60035460a060020a900460ff1615610b6657600080fd5b600054610b79908363ffffffff610d4b16565b6000908155600160a060020a038416815260016020526040902054610ba4908363ffffffff610d4b16565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600082821115610c4a57fe5b50900390565b6000600160a060020a0383161515610c6757600080fd5b600160a060020a033316600090815260016020526040902054821115610c8c57600080fd5b600160a060020a033316600090815260016020526040902054610cb5908363ffffffff610c3e16565b600160a060020a033381166000908152600160205260408082209390935590851681522054610cea908363ffffffff610d4b16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000828201838110156105df57fe00a165627a7a72305820aaa7e612ecd9fd4488cc5a2ca9129daa46f3b3cd3e8b5e5df2271ef1d0d042a10029a165627a7a72305820e28e2148b706855d8f2713ce0a94abdf17468e1bbcfe3e213711a4a5879bdb3a0029606060409081526003805460a060020a60ff02191690558051908101604052601681527f41636f726e20436f6c6c65637469766520546f6b656e000000000000000000006020820152600490805161005b9291602001906100c9565b5060408051908101604052600381527f4f414b0000000000000000000000000000000000000000000000000000000000602082015260059080516100a39291602001906100c9565b50601260065560038054600160a060020a03191633600160a060020a0316179055610164565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010a57805160ff1916838001178555610137565b82800160010185558215610137579182015b8281111561013757825182559160200191906001019061011c565b50610143929150610147565b5090565b61016191905b80821115610143576000815560010161014d565b90565b610d86806101736000396000f3006060604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b811461010057806306fdde0314610127578063095ea7b3146101b157806318160ddd146101d35780631881b0f0146101f857806323b872dd14610219578063313ce5671461024157806340c10f1914610254578063661884631461027657806370a08231146102985780637d64bcb4146102b75780638da5cb5b146102ca57806395d89b41146102f9578063a9059cbb1461030c578063b7121da41461032e578063d73dd6231461034d578063dd62ed3e1461036f578063f2fde38b14610394575b600080fd5b341561010b57600080fd5b6101136103b3565b604051901515815260200160405180910390f35b341561013257600080fd5b61013a6103c3565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561017657808201518382015260200161015e565b50505050905090810190601f1680156101a35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101bc57600080fd5b610113600160a060020a0360043516602435610461565b34156101de57600080fd5b6101e66104cd565b60405190815260200160405180910390f35b341561020357600080fd5b610217600160a060020a03600435166104d3565b005b341561022457600080fd5b610113600160a060020a036004358116906024351660443561053e565b341561024c57600080fd5b6101e6610577565b341561025f57600080fd5b610113600160a060020a036004351660243561057d565b341561028157600080fd5b610113600160a060020a03600435166024356105e6565b34156102a357600080fd5b6101e6600160a060020a03600435166106e0565b34156102c257600080fd5b6101136106fb565b34156102d557600080fd5b6102dd610786565b604051600160a060020a03909116815260200160405180910390f35b341561030457600080fd5b61013a610795565b341561031757600080fd5b610113600160a060020a0360043516602435610800565b341561033957600080fd5b610113600160a060020a0360043516610830565b341561035857600080fd5b610113600160a060020a0360043516602435610845565b341561037a57600080fd5b6101e6600160a060020a03600435811690602435166108e9565b341561039f57600080fd5b610217600160a060020a0360043516610914565b60035460a060020a900460ff1681565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104595780601f1061042e57610100808354040283529160200191610459565b820191906000526020600020905b81548152906001019060200180831161043c57829003601f168201915b505050505081565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60005481565b60035433600160a060020a039081169116146104ee57600080fd5b600160a060020a03811660008181526007602052604090819020805460ff191690557fb3e6054663369578ee4831fc6c8ee9486db04e6f78b939250094785f6b6a430b905160405180910390a250565b600160a060020a03831660009081526007602052604081205460ff161561056457600080fd5b61056f8484846109af565b949350505050565b60065481565b60035460009033600160a060020a0390811691161461059b57600080fd5b60035460a060020a900460ff16156105b257600080fd5b600160a060020a0383166000908152600760205260409020805460ff191660011790556105df8383610b31565b9392505050565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561064357600160a060020a03338116600090815260026020908152604080832093881683529290529081205561067a565b610653818463ffffffff610c3e16565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b600160a060020a031660009081526001602052604090205490565b60035460009033600160a060020a0390811691161461071957600080fd5b60035460a060020a900460ff161561073057600080fd5b6003805474ff0000000000000000000000000000000000000000191660a060020a1790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a150600190565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156104595780601f1061042e57610100808354040283529160200191610459565b600160a060020a03331660009081526007602052604081205460ff161561082657600080fd5b6105df8383610c50565b60076020526000908152604090205460ff1681565b600160a060020a03338116600090815260026020908152604080832093861683529290529081205461087d908363ffffffff610d4b16565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461092f57600080fd5b600160a060020a038116151561094457600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a03831615156109c657600080fd5b600160a060020a0384166000908152600160205260409020548211156109eb57600080fd5b600160a060020a0380851660009081526002602090815260408083203390941683529290522054821115610a1e57600080fd5b600160a060020a038416600090815260016020526040902054610a47908363ffffffff610c3e16565b600160a060020a038086166000908152600160205260408082209390935590851681522054610a7c908363ffffffff610d4b16565b600160a060020a03808516600090815260016020908152604080832094909455878316825260028152838220339093168252919091522054610ac4908363ffffffff610c3e16565b600160a060020a03808616600081815260026020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60035460009033600160a060020a03908116911614610b4f57600080fd5b60035460a060020a900460ff1615610b6657600080fd5b600054610b79908363ffffffff610d4b16565b6000908155600160a060020a038416815260016020526040902054610ba4908363ffffffff610d4b16565b600160a060020a0384166000818152600160205260409081902092909255907f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d41213968859084905190815260200160405180910390a2600160a060020a03831660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600192915050565b600082821115610c4a57fe5b50900390565b6000600160a060020a0383161515610c6757600080fd5b600160a060020a033316600090815260016020526040902054821115610c8c57600080fd5b600160a060020a033316600090815260016020526040902054610cb5908363ffffffff610c3e16565b600160a060020a033381166000908152600160205260408082209390935590851681522054610cea908363ffffffff610d4b16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b6000828201838110156105df57fe00a165627a7a72305820aaa7e612ecd9fd4488cc5a2ca9129daa46f3b3cd3e8b5e5df2271ef1d0d042a10029000000000000000000000000000000000000000000000000000000005a6f0cc0000000000000000000000000000000000000000000000000000000005a8abc4000000000000000000000000000000000000000000000000000000000000005780000000000000000000000004b988a2a92581e14d5bee425600e8b7b3b9cee2d

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

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a6f0cc0
Arg [1] : 000000000000000000000000000000000000000000000000000000005a8abc40
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000578
Arg [3] : 0000000000000000000000004b988a2a92581e14d5bee425600e8b7b3b9cee2d


   Swarm Source:
bzzr://aaa7e612ecd9fd4488cc5a2ca9129daa46f3b3cd3e8b5e5df2271ef1d0d042a1

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.