Sponsored:   HOLD IT | CRED IT | PROF IT - #INLOCK we trust. Join here.
Contract Overview | AcornCollectiveCrowdsale
Balance: 0 Ether
Ether Value: $0
Transactions: 3144 txns
 Latest 25 txns From a total of 3144 Transactions

TxHash Age From To Value [TxFee]
0x71e590e33314c73311c1d0e99a3e7befe26881b49996f8a1a67cd888a1efa05875 days 2 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.0054464
0xa25c01356c4a88b579a2650805ce5d41e90b7a7a029d788bac000ff7825bb4c976 days 2 hrs ago0x4b988a2a92581e14d5bee425600e8b7b3b9cee2d  IN   AcornCollectiveCrowdsale0 Ether0.00250785
0x64e9279e1b7a9d0e3629e67cf76c4bcea8f823efb385c8b5f088c5e53ee3747485 days 17 hrs ago0xfe0073a36cf99745987085a8ac8bc98bc9b26ec9  IN   AcornCollectiveCrowdsale1 Ether0.00096652
0x9a2c165d3fb41e8cb69b40f954e15ebcf585cc8651eb8a8bb219b6a67bfe185785 days 20 hrs ago0xc660c9022c6c857dd30c6f7e18d293130b3840f6  IN   AcornCollectiveCrowdsale0.6445 Ether0.002860746
0xe84fe0a1a0f1788b9fec0ed0b3d821ef11a859019b3d9eba9b165223fb58941186 days 1 hr ago0x21dc9e16b36ff43336f8501c960e199960c369ea  IN   AcornCollectiveCrowdsale0.13 Ether0.004022633
0xdcb67236e5752b980e4915340decba88950985968c9054a64be314daef51f3b186 days 4 hrs ago0x55472730e9ca9e5b294582a9a16d463161238c10  IN   AcornCollectiveCrowdsale0.01 Ether0.004022633
0x43b7cab86bdeda8899b8e4eed3dc644af8e31909d1548fad7706f1b20840b22086 days 10 hrs ago0xe7fb21a9314ada9458ade4dff7f2e96d8bb85d8e  IN   AcornCollectiveCrowdsale0.007 Ether0.004022633
0x74510d65b2e29c5c08fe335e0d5f5aaf832ba431f99a0436e5dffd14606cfd6c86 days 14 hrs ago0x39c9f213d751c276c40e8a3fa5d12ebe7dfe2f95  IN   AcornCollectiveCrowdsale0.09 Ether0.004022633
0x618771a6645712a1b2ec990d6c4a2c528662df93b4996bb4a256b3da4dfce5b986 days 17 hrs ago0x59da6991b986df226397e8f2963de995d02f9c75  IN   AcornCollectiveCrowdsale0.55 Ether0.002792633
0x6512dd1701e2969f5a64e45124735dd90aae64362e85f87121fbd83f5aef41dd86 days 18 hrs ago0xde7bc0471ec787cd1d49768693f9ca34f1d9cc3c  IN   AcornCollectiveCrowdsale1.5 Ether0.002060373
0x151055f7de269cc2001257ee4dcae051e4b4771069c5b9f8d43deae99c16432286 days 19 hrs ago0x518295d71f6104fe4b109e1f7104a78180da3996  IN   AcornCollectiveCrowdsale0.002105 Ether0.00035185
0xd59a2ad10ef5f6115d2790b1a32058c09a4600e2a497f746c8131d58c0e974cf86 days 19 hrs ago0x518295d71f6104fe4b109e1f7104a78180da3996  IN   AcornCollectiveCrowdsale0.044005 Ether0.0021111
0xdc5bd70fdd332619d43f983a6545eca7580e72afc26e0e5c4eb996477a08b4ec86 days 20 hrs ago0xa39f932c194722e26dc17786b531c4c42c08d216  IN   AcornCollectiveCrowdsale0.25 Ether0.002792633
0x1677af28f664f8885c6bb299721f95e86ff07a9c6140e28fa7f59bc03d0d606686 days 22 hrs ago0xfcc3f83c4bdb1a647549b28d6e596652566d551a  IN   AcornCollectiveCrowdsale0.045 Ether0.004022633
0xc9d66f126ed9db2a45c7754a3512223035b72379edb27b6a854af8c48d066ae886 days 23 hrs ago0xf0ad108db91b372563d6226a6eb1a9895d3b0f17  IN   AcornCollectiveCrowdsale0.11 Ether0.004022633
0x56d8d8d7ef4f4f898747eb95dc686a1d3c620418f60a3301654f0995dc482a7287 days 1 hr ago0x8a0f770625f4bf4529bf6bc679854d738c3fb24b  IN   AcornCollectiveCrowdsale0.15 Ether0.00098113
0x7fffc8a737210e60a3dace763fdb8091823aa396aa6bd830a4287bcd9d7f659f87 days 2 hrs ago0x518295d71f6104fe4b109e1f7104a78180da3996  IN   AcornCollectiveCrowdsale0.080421 Ether0.0030111
0x8962b33669d4b462d862f88fd8259bbd1c2517942818da8d6c31bc34a3a7e2cd87 days 4 hrs ago0x7b827111ec944669a66bb089891badffdc9b5bb7  IN   AcornCollectiveCrowdsale0.5 Ether0.00098113
0x3ef405bdf9a77aa33c070233cc959c633da05a952363a9c9d7a0af41c4e4246087 days 6 hrs ago0xe6b37e38ae87bb47b4aa7584b3e86aa57e709647  IN   AcornCollectiveCrowdsale0.025 Ether0.004022633
0x80d9677db688f4871b89ee8412616d34e099ba14dbfd0c0bd6a934329d3faebc87 days 6 hrs ago0xc0b3099b7620ac2c2af83f75eb66cce337381540  IN   AcornCollectiveCrowdsale0.2 Ether0.004022633
0xf61a5ada570d46f2bc8894614dec70aaee536f302382c8ed5f03258c889760e387 days 16 hrs ago0x67e3ab9705171bd2b546bba30d76826fc28136da  IN   AcornCollectiveCrowdsale0.8007118484 Ether0.000294339
0x910098f3c27dee1bd06df07e8ce7331cdb8dce5f8f7f97e5acf8717b545a9cb588 days 41 mins ago0x140f2de054ab1d4c927790211f0b161d583cdff7  IN   AcornCollectiveCrowdsale0.3 Ether0.004022633
0x9e512a3a2c00bb15e0ed12525141e6888c3e66d16fc4a472a11bc83568d56a0888 days 47 mins ago0x140f2de054ab1d4c927790211f0b161d583cdff7  IN   AcornCollectiveCrowdsale0.28 Ether0.000861
0x46dc9802829fd269a66f454a3d5ea60e2de9a8c42ffa3927cacc855673385cf088 days 58 mins ago0x8eb0624b3da013c0a8f88da0aef030f9a77ba537  IN   AcornCollectiveCrowdsale0.000738579 Ether0.000861
0xcea0ba3fb70ffc4805bd2e7eb9223a2f2fa517f1ae674ad7d9cdf1a284756f1088 days 1 hr ago0x4db79adf017a6ac3091cf0100a3312b38fdbb34c  IN   AcornCollectiveCrowdsale2 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
0xb170cc7122e2de22e66d880be8e10b304b566783e18a97d2ff363d4ab8adb8be591028775 days 4 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5822.75615 Ether
0xb170cc7122e2de22e66d880be8e10b304b566783e18a97d2ff363d4ab8adb8be591028775 days 4 hrs ago0x85bf2afa961e88ff54e8e8bb59d5ec905867caa80x25beb989d3ef4e6e0fef8220944bb74e2aa6ff452.75615 Ether
0x9a2c165d3fb41e8cb69b40f954e15ebcf585cc8651eb8a8bb219b6a67bfe1857584823085 days 20 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.6445 Ether
0xe84fe0a1a0f1788b9fec0ed0b3d821ef11a859019b3d9eba9b165223fb589411584700886 days 1 hr ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.13 Ether
0xdcb67236e5752b980e4915340decba88950985968c9054a64be314daef51f3b1584641886 days 4 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.01 Ether
0x43b7cab86bdeda8899b8e4eed3dc644af8e31909d1548fad7706f1b20840b220584475686 days 10 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.007 Ether
0x74510d65b2e29c5c08fe335e0d5f5aaf832ba431f99a0436e5dffd14606cfd6c584378586 days 14 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.09 Ether
0x618771a6645712a1b2ec990d6c4a2c528662df93b4996bb4a256b3da4dfce5b9584317486 days 17 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.55 Ether
0x6512dd1701e2969f5a64e45124735dd90aae64362e85f87121fbd83f5aef41dd584296286 days 18 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5821.5 Ether
0x151055f7de269cc2001257ee4dcae051e4b4771069c5b9f8d43deae99c164322584260886 days 19 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.002105 Ether
0xd59a2ad10ef5f6115d2790b1a32058c09a4600e2a497f746c8131d58c0e974cf584258786 days 19 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.044005 Ether
0xdc5bd70fdd332619d43f983a6545eca7580e72afc26e0e5c4eb996477a08b4ec584234586 days 20 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.25 Ether
0x1677af28f664f8885c6bb299721f95e86ff07a9c6140e28fa7f59bc03d0d6066584199186 days 22 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.045 Ether
0xc9d66f126ed9db2a45c7754a3512223035b72379edb27b6a854af8c48d066ae8584169786 days 23 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.11 Ether
0x56d8d8d7ef4f4f898747eb95dc686a1d3c620418f60a3301654f0995dc482a72584120687 days 1 hr ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.15 Ether
0x7fffc8a737210e60a3dace763fdb8091823aa396aa6bd830a4287bcd9d7f659f584083887 days 2 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.080421 Ether
0x8962b33669d4b462d862f88fd8259bbd1c2517942818da8d6c31bc34a3a7e2cd584037787 days 4 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.5 Ether
0x3ef405bdf9a77aa33c070233cc959c633da05a952363a9c9d7a0af41c4e42460583999087 days 6 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.025 Ether
0x80d9677db688f4871b89ee8412616d34e099ba14dbfd0c0bd6a934329d3faebc583983287 days 6 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.2 Ether
0xf61a5ada570d46f2bc8894614dec70aaee536f302382c8ed5f03258c889760e3583735387 days 16 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.8007118484 Ether
0x910098f3c27dee1bd06df07e8ce7331cdb8dce5f8f7f97e5acf8717b545a9cb5583546688 days 41 mins ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5820.3 Ether
0xcea0ba3fb70ffc4805bd2e7eb9223a2f2fa517f1ae674ad7d9cdf1a284756f10583521788 days 1 hr ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5822 Ether
0xe500020adae091abf64357b5ef7bc3e160cd837c886c1924d1014715e71d633d583503688 days 2 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5825 Ether
0xdcde7d8ce8d8442cd9f2c98eee1de884d5334f32a81739e41d93e4d012ea503e583493188 days 2 hrs ago0x25beb989d3ef4e6e0fef8220944bb74e2aa6ff450x6e332616bcb4cef730b38223e652599f8d1de5825 Ether
0x44715c0ca48a12e0dbdfeff0fa026cfd3610c0ab640919f95335c8d18a0cd0f5583455088 days 4 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 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.