Sponsored:   Color - Revolutionizing the Dapp Ecosystem, Bounty & Airdrop, Get 240,000 COL NOW!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 60 txns
Token Tracker: EOS.Pizza (EPS)
 Latest 25 txns from a total Of 60 transactions

TxHash Age From To Value [TxFee]
0xd6e6f9e7415847c8e0c397eab9e1b46b4a739ae01afa21970b3284c4f0d1e89641 days 7 hrs ago0x3916de1eae13f7d250419f7b247f55c08a9adaa7  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.000609
0x6de5bb8f9b377061d21122a1955e2737836d866b7d8ff54b966e6bc921a44bbb71 days 11 hrs ago0x623fc59605a29fd33afb02876c260d86a881c9f0  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.1 Ether0.000085168
0x16dfa3c4e611c9648c17a76af015ee80ea31201873c36f34828f0194bb1a183c72 days 16 mins ago0x623fc59605a29fd33afb02876c260d86a881c9f0  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.1 Ether0.000191628
0x1f9cfa9939a24bff8576213d4a55f0c77d38226525d8f329608a014d2a7d89b374 days 15 hrs ago0xc0e321e9305c21b72f5ee752a9e8d9ecd0f2e2b1  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.00018394
0x2813552a47fef5c8cf0ea0f4bd659c03e2502cc950d56fd6ea8c41d48bf6e83b74 days 15 hrs ago0xc0e321e9305c21b72f5ee752a9e8d9ecd0f2e2b1  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.00018394
0xb1581bb05d171aad151eef9c09556fd973986e2f73cd943852f7a6535341b02775 days 8 hrs ago0x3ce215b2e4dc9d2ba0e2fc5099315e4fa05d8aa2  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.001202364
0x3cf5dd7382c4372ce537a8b9e6fc86a40493012f120a9b6dd851c99b0edd446b75 days 8 hrs ago0x3ce215b2e4dc9d2ba0e2fc5099315e4fa05d8aa2  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.001202364
0x3b00a1f4397ef3e51b0e483a6f934daa2c981e66a8a45e0b726c158e0221d08d76 days 3 hrs ago0xdf96301f5e12510f45183a2ef30c0e18b8ad7e80  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.000244858
0x612e0df2c1f1d2688daa10e9184a925cb728b29c54c88dfc3dea1dab26872a2076 days 7 hrs ago0xdf96301f5e12510f45183a2ef30c0e18b8ad7e80  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.000221175506
0x2745a70bbd60656dcc32394955ed95011e7f29746549a4bd329ada36554a660384 days 6 hrs ago0xf3da9603782cd51dffbc9bdfe23ac2d907ab5789  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.000170336
0x5b45b94fc48d1a8cd76b1dcb7ae832ed87b646daef6f8ff88329e46250f44b6b87 days 7 hrs ago0xeb92486a795214ddc799d7b905e9323982ff4f37  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.001202364
0x4285333f96a86773586ca7830ae4f522cb0d89c0f9b8fa0376ca1512c9e41fce87 days 7 hrs ago0xeb92486a795214ddc799d7b905e9323982ff4f37  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.001202364
0xf7341337744e1d61c74113b6f52c7913513b7d1ae3d7a844df05d863c7c5a9ea87 days 8 hrs ago0xeb92486a795214ddc799d7b905e9323982ff4f37  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.004576608
0xaa774b3eaddd4cb8ba3c96fd78aa57865b84045895a01a786e2c64ac25e9c19191 days 19 hrs ago0x2affc146a37c6614a6670367db7e1ec20febcd2c  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.00045921
0x03fae939189c0fd44226e472c88d96377c85a22669046d53963fc499746977ec91 days 21 hrs ago0x2affc146a37c6614a6670367db7e1ec20febcd2c  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.00045921
0xf64f4d2fb8db432fac81bce2f1a602558e44aa6a967158f91b490303eecaffd692 days 14 hrs ago0x3a3fe9d6287d1ccbdfbb2a6ad4ec61fbe5a8e1c7  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.1 Ether0.000496824
0x74f41146786bae57df36e33599fda125de1543e4a129a35ab644e37a262595b593 days 19 hrs ago0xa1ddb110a71ac0201c820ba6ea5d5eef97f485f4  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.07 Ether0.001451304
0x40fe0310ad9e06a8389168c543fbc5911ba0916e08ee4097f9b7732a268d75ef93 days 20 hrs ago0xd854e39cc85fb9f4ee0f5bc0cfe1216754fd09ae  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.2 Ether0.00058817
0xf01b2bfd2f1629c7da4da7f43989310e5df113df1a822976a35bcdb90c2f79a694 days 21 hrs ago0x84f45b66ec6643bc3c1caa686c79cf1dcb69c69a  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.05 Ether0.000553419
0x3ec7c40b66b5e571305e7cfe638e1884cf7f19fe018d9995dca7e1c1cfdbc37c95 days 10 hrs ago0x9b5cb153d1ce74beb84f407c7f93e8c6ebd1d6ae  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.0001 Ether0.00020254632
0x0318be53a0ca948ecb32547e6a2c0d7694c193e950d9cbef82ce5d8d4ce1ff9395 days 15 hrs ago0xd32b08f3cb6f34a5740157ae4d2cb4e0fa284cdb  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.05 Ether0.000301675
0x7e6d42bfedad99a7ef3efdb2d5f175ed4e88a9eddcdb450a874e8de9ca8e980095 days 21 hrs ago0x2be11d4aaa624466d8e3f44de56f5799a5b1edf3  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.0001561432
0xb91ec1bfadede7315fa0c402961b4dfd1f08de4bd9cbdc084b9f9457e3e3442a95 days 22 hrs ago0x93ba6c54fc92a1c902850bae97c3a138005474b5  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0 Ether0.000395856
0xb81f56e691b1af11eefa52bbb4581a0ca8ccac03c10712688c2f561dcf3ccc8796 days 5 hrs ago0x181189c707705281254fdd3bbabc74dcfd7d8dde  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.02 Ether0.00021992
0xd0a3572e857d318711e2df1f0d84f56825ed342479e69446eaa62b823c61b76b96 days 6 hrs ago0xf523c3d62e584e095aac8183d1ffc246141bed1c  IN   0xa5dc0165b798779ac80acc84c4da4ee77b79843f0.05 Ether0.00025767
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 3 Internal Transactions

ParentTxHash Block Age From To Value
0xf7341337744e1d61c74113b6f52c7913513b7d1ae3d7a844df05d863c7c5a9ea566156887 days 8 hrs ago0xa5dc0165b798779ac80acc84c4da4ee77b79843f0x021dba5e12eb593c55bd3894a91634ac3895581b1.762512312 Ether
0x363895881ff1d50588c06bb553fb6e96ebd981940f66d7d2b53bc25aa2874ff25226948161 days 15 hrs ago0xa5dc0165b798779ac80acc84c4da4ee77b79843f0x021dba5e12eb593c55bd3894a91634ac3895581b0.05 Ether
0x7928559d488c876b461f969ccf00814b86e34806d1ddb0e81f68205920ee0d005226827161 days 16 hrs ago0xa5dc0165b798779ac80acc84c4da4ee77b79843f  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
Contract Name: EosPizzaSliceDonationraiser
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

/**
*
*    I  N    P  I  Z  Z  A     W  E     C  R  U  S  T
*  
*    ______ ____   _____       _____ _
*   |  ____/ __ \ / ____|     |  __ (_)
*   | |__ | |  | | (___       | |__) | __________ _
*   |  __|| |  | |\___ \      |  ___/ |_  /_  / _` |
*   | |___| |__| |____) |  _  | |   | |/ / / / (_| |
*   |______\____/|_____/  (_) |_|   |_/___/___\__,_|
*
*
*
*   CHECK HTTPS://EOS.PIZZA ON HOW TO GET YOUR SLICE
*   END: 18 MAY 2018
*
*   This is for the fun. Thank you token factory for your smart contract inspiration.
*   Jummy & crusty. Get your 🍕EPS while it's hot. 
*
*   https://eos.pizza
*
*
**/

// File: contracts\configs\EosPizzaSliceConfig.sol


/**
 * @title EosPizzaSliceConfig
 *
 * @dev The static configuration for the EOS Pizza Slice.
 */
contract EosPizzaSliceConfig {
    // The name of the token.
    string constant NAME = "EOS.Pizza";

    // The symbol of the token.
    string constant SYMBOL = "EPS";

    // The number of decimals for the token.
    uint8 constant DECIMALS = 18;  // Same as ethers.

    // Decimal factor for multiplication purposes.
    uint constant DECIMALS_FACTOR = 10 ** uint(DECIMALS);
}

// File: contracts\interfaces\ERC20TokenInterface.sol

/**
 * @dev The standard ERC20 Token interface.
 */
contract ERC20TokenInterface {
    uint public totalSupply;  /* shorthand for public function and a property */
    event Transfer(address indexed _from, address indexed _to, uint _value);
    event Approval(address indexed _owner, address indexed _spender, uint _value);
    function balanceOf(address _owner) public constant returns (uint balance);
    function transfer(address _to, uint _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint _value) public returns (bool success);
    function approve(address _spender, uint _value) public returns (bool success);
    function allowance(address _owner, address _spender) public constant returns (uint remaining);

}

// File: contracts\libraries\SafeMath.sol

/**
 * @dev Library that helps prevent integer overflows and underflows,
 * inspired by https://github.com/OpenZeppelin/zeppelin-solidity
 */
library SafeMath {
    function plus(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        assert(c >= a);

        return c;
    }

    function minus(uint a, uint b) internal pure returns (uint) {
        assert(b <= a);

        return a - b;
    }

    function mul(uint a, uint b) internal pure returns (uint) {
        uint c = a * b;
        assert(a == 0 || c / a == b);

        return c;
    }

    function div(uint a, uint b) internal pure returns (uint) {
        uint c = a / b;

        return c;
    }
}

// File: contracts\traits\ERC20Token.sol

/**
 * @title ERC20Token
 *
 * @dev Implements the operations declared in the `ERC20TokenInterface`.
 */
contract ERC20Token is ERC20TokenInterface {
    using SafeMath for uint;

    // Token account balances.
    mapping (address => uint) balances;

    // Delegated number of tokens to transfer.
    mapping (address => mapping (address => uint)) allowed;



    /**
     * @dev Checks the balance of a certain address.
     *
     * @param _account The address which's balance will be checked.
     *
     * @return Returns the balance of the `_account` address.
     */
    function balanceOf(address _account) public constant returns (uint balance) {
        return balances[_account];
    }

    /**
     * @dev Transfers tokens from one address to another.
     *
     * @param _to The target address to which the `_value` number of tokens will be sent.
     * @param _value The number of tokens to send.
     *
     * @return Whether the transfer was successful or not.
     */
    function transfer(address _to, uint _value) public returns (bool success) {
        if (balances[msg.sender] < _value || _value == 0) {

            return false;
        }

        balances[msg.sender] -= _value;
        balances[_to] = balances[_to].plus(_value);


        Transfer(msg.sender, _to, _value);

        return true;
    }

    /**
     * @dev Send `_value` tokens to `_to` from `_from` if `_from` has approved the process.
     *
     * @param _from The address of the sender.
     * @param _to The address of the recipient.
     * @param _value The number of tokens to be transferred.
     *
     * @return Whether the transfer was successful or not.
     */
    function transferFrom(address _from, address _to, uint _value) public returns (bool success) {
        if (balances[_from] < _value || allowed[_from][msg.sender] < _value || _value == 0) {
            return false;
        }

        balances[_to] = balances[_to].plus(_value);
        balances[_from] -= _value;
        allowed[_from][msg.sender] -= _value;


        Transfer(_from, _to, _value);

        return true;
    }

    /**
     * @dev Allows another contract to spend some tokens on your behalf.
     *
     * @param _spender The address of the account which will be approved for transfer of tokens.
     * @param _value The number of tokens to be approved for transfer.
     *
     * @return Whether the approval was successful or not.
     */
    function approve(address _spender, uint _value) public returns (bool success) {
        allowed[msg.sender][_spender] = _value;

        Approval(msg.sender, _spender, _value);

        return true;
    }

    /**
     * @dev Shows the number of tokens approved by `_owner` that are allowed to be transferred by `_spender`.
     *
     * @param _owner The account which allowed the transfer.
     * @param _spender The account which will spend the tokens.
     *
     * @return The number of tokens to be transferred.
     */
    function allowance(address _owner, address _spender) public constant returns (uint remaining) {
        return allowed[_owner][_spender];
    }
}

// File: contracts\traits\HasOwner.sol

/**
 * @title HasOwner
 *
 * @dev Allows for exclusive access to certain functionality.
 */
contract HasOwner {
    // Current owner.
    address public owner;

    // Conditionally the new owner.
    address public newOwner;

    /**
     * @dev The constructor.
     *
     * @param _owner The address of the owner.
     */
    function HasOwner(address _owner) internal {
        owner = _owner;
    }

    /**
     * @dev Access control modifier that allows only the current owner to call the function.
     */
    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

    /**
     * @dev The event is fired when the current owner is changed.
     *
     * @param _oldOwner The address of the previous owner.
     * @param _newOwner The address of the new owner.
     */
    event OwnershipTransfer(address indexed _oldOwner, address indexed _newOwner);

    /**
     * @dev Transfering the ownership is a two-step process, as we prepare
     * for the transfer by setting `newOwner` and requiring `newOwner` to accept
     * the transfer. This prevents accidental lock-out if something goes wrong
     * when passing the `newOwner` address.
     *
     * @param _newOwner The address of the proposed new owner.
     */
    function transferOwnership(address _newOwner) public onlyOwner {
        newOwner = _newOwner;
    }

    /**
     * @dev The `newOwner` finishes the ownership transfer process by accepting the
     * ownership.
     */
    function acceptOwnership() public {
        require(msg.sender == newOwner);

        OwnershipTransfer(owner, newOwner);

        owner = newOwner;
    }
}

// File: contracts\traits\Freezable.sol

/**
 * @title Freezable
 * @dev This trait allows to freeze the transactions in a Token
 */
contract Freezable is HasOwner {
  bool public frozen = false;

  /**
   * @dev Modifier makes methods callable only when the contract is not frozen.
   */
  modifier requireNotFrozen() {
    require(!frozen);
    _;
  }

  /**
   * @dev Allows the owner to "freeze" the contract.
   */
  function freeze() onlyOwner public {
    frozen = true;
  }

  /**
   * @dev Allows the owner to "unfreeze" the contract.
   */
  function unfreeze() onlyOwner public {
    frozen = false;
  }
}

// File: contracts\traits\FreezableERC20Token.sol

/**
 * @title FreezableERC20Token
 *
 * @dev Extends ERC20Token and adds ability to freeze all transfers of tokens.
 */
contract FreezableERC20Token is ERC20Token, Freezable {
    /**
     * @dev Overrides the original ERC20Token implementation by adding whenNotFrozen modifier.
     *
     * @param _to The target address to which the `_value` number of tokens will be sent.
     * @param _value The number of tokens to send.
     *
     * @return Whether the transfer was successful or not.
     */
    function transfer(address _to, uint _value) public requireNotFrozen returns (bool success) {
        return super.transfer(_to, _value);
    }

    /**
     * @dev Send `_value` tokens to `_to` from `_from` if `_from` has approved the process.
     *
     * @param _from The address of the sender.
     * @param _to The address of the recipient.
     * @param _value The number of tokens to be transferred.
     *
     * @return Whether the transfer was successful or not.
     */
    function transferFrom(address _from, address _to, uint _value) public requireNotFrozen returns (bool success) {
        return super.transferFrom(_from, _to, _value);
    }

    /**
     * @dev Allows another contract to spend some tokens on your behalf.
     *
     * @param _spender The address of the account which will be approved for transfer of tokens.
     * @param _value The number of tokens to be approved for transfer.
     *
     * @return Whether the approval was successful or not.
     */
    function approve(address _spender, uint _value) public requireNotFrozen returns (bool success) {
        return super.approve(_spender, _value);
    }

}

// File: contracts\EosPizzaSlice.sol

/**
 * @title EOS Pizza Slice
 *
 * @dev A standard token implementation of the ERC20 token standard with added
 *      HasOwner trait and initialized using the configuration constants.
 */
contract EosPizzaSlice is EosPizzaSliceConfig, HasOwner, FreezableERC20Token {
    // The name of the token.
    string public name;

    // The symbol for the token.
    string public symbol;

    // The decimals of the token.
    uint8 public decimals;

    /**
     * @dev The constructor. Initially sets `totalSupply` and the balance of the
     *      `owner` address according to the initialization parameter.
     */
    function EosPizzaSlice(uint _totalSupply) public
        HasOwner(msg.sender)
    {
        name = NAME;
        symbol = SYMBOL;
        decimals = DECIMALS;
        totalSupply = _totalSupply;
        balances[owner] = _totalSupply;
    }
}

// File: contracts\configs\EosPizzaSliceDonationraiserConfig.sol

/**
 * @title EosPizzaSliceDonationraiserConfig
 *
 * @dev The static configuration for the EOS Pizza Slice donationraiser.
 */
contract EosPizzaSliceDonationraiserConfig is EosPizzaSliceConfig {
    // The number of 🍕 per 1 ETH.
    uint constant CONVERSION_RATE = 100000;

    // The public sale hard cap of the donationraiser.
    uint constant TOKENS_HARD_CAP = 95 * (10**7) * DECIMALS_FACTOR;

    // The start date of the donationraiser: Friday, 9 March 2018 21:22:22 UTC.
    uint constant START_DATE = 1520630542;

    // The end date of the donationraiser:  May 18, 2018, 12:35:20 AM UTC - Bitcoin Pizza 8th year celebration moment.
    uint constant END_DATE =  1526603720;


    // Total number of tokens locked for the 🍕 core team.
    uint constant TOKENS_LOCKED_CORE_TEAM = 35 * (10**6) * DECIMALS_FACTOR;

    // Total number of tokens locked for 🍕 advisors.
    uint constant TOKENS_LOCKED_ADVISORS = 125 * (10**5) * DECIMALS_FACTOR;

    // The release date for tokens locked for the 🍕 core team.
    uint constant TOKENS_LOCKED_CORE_TEAM_RELEASE_DATE = END_DATE + 1 days;

    // The release date for tokens locked for 🍕 advisors.
    uint constant TOKENS_LOCKED_ADVISORS_RELEASE_DATE = END_DATE + 1 days;

    // Total number of tokens locked for bounty program.
    uint constant TOKENS_BOUNTY_PROGRAM = 25 * (10**5) * DECIMALS_FACTOR;

    // Maximum gas price limit
    uint constant MAX_GAS_PRICE = 90000000000 wei; // 90 gwei/shanon

    // Minimum individual contribution
    uint constant MIN_CONTRIBUTION =  0.05 ether;

    // Individual limit in ether
    uint constant INDIVIDUAL_ETHER_LIMIT =  4999 ether;
}

// File: contracts\traits\TokenSafe.sol

/**
 * @title TokenSafe
 *
 * @dev A multi-bundle token safe contract that contains locked tokens released after a date for the specific bundle type.
 */
contract TokenSafe {
    using SafeMath for uint;

    struct AccountsBundle {
        // The total number of tokens locked.
        uint lockedTokens;
        // The release date for the locked tokens
        // Note: Unix timestamp fits uint32, however block.timestamp is uint
        uint releaseDate;
        // The balances for the 🍕 locked token accounts.
        mapping (address => uint) balances;
    }

    // The account bundles of locked tokens grouped by release date
    mapping (uint8 => AccountsBundle) public bundles;

    // The `ERC20TokenInterface` contract.
    ERC20TokenInterface token;

    /**
     * @dev The constructor.
     *
     * @param _token The address of the EOS Pizza Slices (donation) contract.
     */
    function TokenSafe(address _token) public {
        token = ERC20TokenInterface(_token);
    }

    /**
     * @dev The function initializes the bundle of accounts with a release date.
     *
     * @param _type Bundle type.
     * @param _releaseDate Unix timestamp of the time after which the tokens can be released
     */
    function initBundle(uint8 _type, uint _releaseDate) internal {
        bundles[_type].releaseDate = _releaseDate;
    }

    /**
     * @dev Add new account with locked token balance to the specified bundle type.
     *
     * @param _type Bundle type.
     * @param _account The address of the account to be added.
     * @param _balance The number of tokens to be locked.
     */
    function addLockedAccount(uint8 _type, address _account, uint _balance) internal {
        var bundle = bundles[_type];
        bundle.balances[_account] = bundle.balances[_account].plus(_balance);
        bundle.lockedTokens = bundle.lockedTokens.plus(_balance);
    }

    /**
     * @dev Allows an account to be released if it meets the time constraints.
     *
     * @param _type Bundle type.
     * @param _account The address of the account to be released.
     */
    function releaseAccount(uint8 _type, address _account) internal {
        var bundle = bundles[_type];
        require(now >= bundle.releaseDate);
        uint tokens = bundle.balances[_account];
        require(tokens > 0);
        bundle.balances[_account] = 0;
        bundle.lockedTokens = bundle.lockedTokens.minus(tokens);
        if (!token.transfer(_account, tokens)) {
            revert();
        }
    }
}

// File: contracts\EosPizzaSliceSafe.sol

/**
 * @title EosPizzaSliceSafe
 *
 * @dev The EOS Pizza Slice safe containing all details about locked tokens.
 */
contract EosPizzaSliceSafe is TokenSafe, EosPizzaSliceDonationraiserConfig {
    // Bundle type constants
    uint8 constant CORE_TEAM = 0;
    uint8 constant ADVISORS = 1;

    /**
     * @dev The constructor.
     *
     * @param _token The address of the EOS Pizza (donation) contract.
     */
    function EosPizzaSliceSafe(address _token) public
        TokenSafe(_token)
    {
        token = ERC20TokenInterface(_token);

        /// Core team.
        initBundle(CORE_TEAM,
            TOKENS_LOCKED_CORE_TEAM_RELEASE_DATE
        );

        // Accounts with tokens locked for the 🍕 core team.
        addLockedAccount(CORE_TEAM, 0x3ce215b2e4dC9D2ba0e2fC5099315E4Fa05d8AA2, 35 * (10**6) * DECIMALS_FACTOR);


        // Verify that the tokens add up to the constant in the configuration.
        assert(bundles[CORE_TEAM].lockedTokens == TOKENS_LOCKED_CORE_TEAM);

        /// Advisors.
        initBundle(ADVISORS,
            TOKENS_LOCKED_ADVISORS_RELEASE_DATE
        );

        // Accounts with 🍕 tokens locked for advisors.
        addLockedAccount(ADVISORS, 0xC0e321E9305c21b72F5Ee752A9E8D9eCD0f2e2b1, 25 * (10**5) * DECIMALS_FACTOR);
        addLockedAccount(ADVISORS, 0x55798CF234FEa760b0591537517C976FDb0c53Ba, 25 * (10**5) * DECIMALS_FACTOR);
        addLockedAccount(ADVISORS, 0xbc732e73B94A5C4a8f60d0D98C4026dF21D500f5, 25 * (10**5) * DECIMALS_FACTOR);
        addLockedAccount(ADVISORS, 0x088EEEe7C4c26041FBb4e83C10CB0784C81c86f9, 25 * (10**5) * DECIMALS_FACTOR);
        addLockedAccount(ADVISORS, 0x52d640c9c417D9b7E3770d960946Dd5Bd2EB63db, 25 * (10**5) * DECIMALS_FACTOR);


        // Verify that the tokens add up to the constant in the configuration.
        assert(bundles[ADVISORS].lockedTokens == TOKENS_LOCKED_ADVISORS);
    }

    /**
     * @dev Returns the total locked tokens. This function is called by the donationraiser to determine number of tokens to create upon finalization.
     *
     * @return The current total number of locked EOS Pizza Slices.
     */
    function totalTokensLocked() public constant returns (uint) {
        return bundles[CORE_TEAM].lockedTokens.plus(bundles[ADVISORS].lockedTokens);
    }

    /**
     * @dev Allows core team account 🍕 tokens to be released.
     */
    function releaseCoreTeamAccount() public {
        releaseAccount(CORE_TEAM, msg.sender);
    }

    /**
     * @dev Allows advisors account 🍕 tokens to be released.
     */
    function releaseAdvisorsAccount() public {
        releaseAccount(ADVISORS, msg.sender);
    }
}

// File: contracts\traits\Whitelist.sol

contract Whitelist is HasOwner
{
    // Whitelist mapping
    mapping(address => bool) public whitelist;

    /**
     * @dev The constructor.
     */
    function Whitelist(address _owner) public
        HasOwner(_owner)
    {

    }

    /**
     * @dev Access control modifier that allows only whitelisted address to call the method.
     */
    modifier onlyWhitelisted {
        require(whitelist[msg.sender]);
        _;
    }

    /**
     * @dev Internal function that sets whitelist status in batch.
     *
     * @param _entries An array with the entries to be updated
     * @param _status The new status to apply
     */
    function setWhitelistEntries(address[] _entries, bool _status) internal {
        for (uint32 i = 0; i < _entries.length; ++i) {
            whitelist[_entries[i]] = _status;
        }
    }

    /**
     * @dev Public function that allows the owner to whitelist multiple entries
     *
     * @param _entries An array with the entries to be whitelisted
     */
    function whitelistAddresses(address[] _entries) public onlyOwner {
        setWhitelistEntries(_entries, true);
    }

    /**
     * @dev Public function that allows the owner to blacklist multiple entries
     *
     * @param _entries An array with the entries to be blacklist
     */
    function blacklistAddresses(address[] _entries) public onlyOwner {
        setWhitelistEntries(_entries, false);
    }
}

// File: contracts\EosPizzaSliceDonationraiser.sol

/**
 * @title EosPizzaSliceDonationraiser
 *
 * @dev The EOS Pizza Slice donationraiser contract.
 */
contract EosPizzaSliceDonationraiser is EosPizzaSlice, EosPizzaSliceDonationraiserConfig, Whitelist {
    // Indicates whether the donationraiser has ended or not.
    bool public finalized = false;

    // The address of the account which will receive the funds gathered by the donationraiser.
    address public beneficiary;

    // The number of 🍕 participants will receive per 1 ETH.
    uint public conversionRate;

    // Donationraiser start date.
    uint public startDate;

    // Donationraiser end date.
    uint public endDate;

    // Donationraiser tokens hard cap.
    uint public hardCap;

    // The `EosPizzaSliceSafe` contract.
    EosPizzaSliceSafe public eosPizzaSliceSafe;

    // The minimum amount of ether allowed in the public sale
    uint internal minimumContribution;

    // The maximum amount of ether allowed per address
    uint internal individualLimit;

    // Number of tokens sold during the donationraiser.
    uint private tokensSold;



    /**
     * @dev The event fires every time a new buyer enters the donationraiser.
     *
     * @param _address The address of the buyer.
     * @param _ethers The number of ethers sent.
     * @param _tokens The number of tokens received by the buyer.
     * @param _newTotalSupply The updated total number of tokens currently in circulation.
     * @param _conversionRate The conversion rate at which the tokens were bought.
     */
    event FundsReceived(address indexed _address, uint _ethers, uint _tokens, uint _newTotalSupply, uint _conversionRate);

    /**
     * @dev The event fires when the beneficiary of the donationraiser is changed.
     *
     * @param _beneficiary The address of the new beneficiary.
     */
    event BeneficiaryChange(address _beneficiary);

    /**
     * @dev The event fires when the number of 🍕EPS per 1 ETH is changed.
     *
     * @param _conversionRate The new number of 🍕EPS per 1 ETH.
     */
    event ConversionRateChange(uint _conversionRate);

    /**
     * @dev The event fires when the donationraiser is successfully finalized.
     *
     * @param _beneficiary The address of the beneficiary.
     * @param _ethers The number of ethers transfered to the beneficiary.
     * @param _totalSupply The total number of tokens in circulation.
     */
    event Finalized(address _beneficiary, uint _ethers, uint _totalSupply);

    /**
     * @dev The constructor.
     *
     * @param _beneficiary The address which will receive the funds gathered by the donationraiser.
     */
    function EosPizzaSliceDonationraiser(address _beneficiary) public
        EosPizzaSlice(0)
        Whitelist(msg.sender)
    {
        require(_beneficiary != 0);

        beneficiary = _beneficiary;
        conversionRate = CONVERSION_RATE;
        startDate = START_DATE;
        endDate = END_DATE;
        hardCap = TOKENS_HARD_CAP;
        tokensSold = 0;
        minimumContribution = MIN_CONTRIBUTION;
        individualLimit = INDIVIDUAL_ETHER_LIMIT * CONVERSION_RATE;

        eosPizzaSliceSafe = new EosPizzaSliceSafe(this);

        // Freeze the transfers for the duration of the donationraiser. Removed this, you can immediately transfer your 🍕EPS to any ether address you like!
        // freeze();
    }

    /**
     * @dev Changes the beneficiary of the donationraiser.
     *
     * @param _beneficiary The address of the new beneficiary.
     */
    function setBeneficiary(address _beneficiary) public onlyOwner {
        require(_beneficiary != 0);

        beneficiary = _beneficiary;

        BeneficiaryChange(_beneficiary);
    }

    /**
     * @dev Sets converstion rate of 1 ETH to 🍕EPS. Can only be changed before the donationraiser starts.
     *
     * @param _conversionRate The new number of EOS Pizza Slices per 1 ETH.
     */
    function setConversionRate(uint _conversionRate) public onlyOwner {
        require(now < startDate);
        require(_conversionRate > 0);

        conversionRate = _conversionRate;
        individualLimit = INDIVIDUAL_ETHER_LIMIT * _conversionRate;

        ConversionRateChange(_conversionRate);
    }



    /**
     * @dev The default function which will fire every time someone sends ethers to this contract's address.
     */
    function() public payable {
        buyTokens();
    }

    /**
     * @dev Creates new tokens based on the number of ethers sent and the conversion rate.
     */
    //function buyTokens() public payable onlyWhitelisted {
    function buyTokens() public payable {
        require(!finalized);
        require(now >= startDate);
        require(now <= endDate);
        require(tx.gasprice <= MAX_GAS_PRICE);  // gas price limit
        require(msg.value >= minimumContribution);  // required minimum contribution
        require(tokensSold <= hardCap);

        // Calculate the number of tokens the buyer will receive.
        uint tokens = msg.value.mul(conversionRate);
        balances[msg.sender] = balances[msg.sender].plus(tokens);

        // Ensure that the individual contribution limit has not been reached
        require(balances[msg.sender] <= individualLimit);



        tokensSold = tokensSold.plus(tokens);
        totalSupply = totalSupply.plus(tokens);

        Transfer(0x0, msg.sender, tokens);

        FundsReceived(
            msg.sender,
            msg.value,
            tokens,
            totalSupply,
            conversionRate
        );
    }



    /**
     * @dev Finalize the donationraiser if `endDate` has passed or if `hardCap` is reached.
     */
    function finalize() public onlyOwner {
        require((totalSupply >= hardCap) || (now >= endDate));
        require(!finalized);

        address contractAddress = this;
        Finalized(beneficiary, contractAddress.balance, totalSupply);

        /// Send the total number of ETH gathered to the beneficiary.
        beneficiary.transfer(contractAddress.balance);

        /// Allocate locked tokens to the `EosPizzaSliceSafe` contract.
        uint totalTokensLocked = eosPizzaSliceSafe.totalTokensLocked();
        balances[address(eosPizzaSliceSafe)] = balances[address(eosPizzaSliceSafe)].plus(totalTokensLocked);
        totalSupply = totalSupply.plus(totalTokensLocked);

        // Transfer the funds for the bounty program.
        balances[owner] = balances[owner].plus(TOKENS_BOUNTY_PROGRAM);
        totalSupply = totalSupply.plus(TOKENS_BOUNTY_PROGRAM);

        /// Finalize the donationraiser. Keep in mind that this cannot be undone.
        finalized = true;

        // Unfreeze transfers
        unfreeze();
    }

    /**
     * @dev allow owner to collect balance of contract during donation period
     */

    function collect() public onlyOwner {

        address contractAddress = this;
        /// Send the total number of ETH gathered to the beneficiary.
        beneficiary.transfer(contractAddress.balance);

    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"frozen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"setBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_entries","type":"address[]"}],"name":"whitelistAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"eosPizzaSliceSafe","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unfreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_entries","type":"address[]"}],"name":"blacklistAddresses","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"conversionRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_conversionRate","type":"uint256"}],"name":"setConversionRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"collect","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hardCap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_beneficiary","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_address","type":"address"},{"indexed":false,"name":"_ethers","type":"uint256"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_newTotalSupply","type":"uint256"},{"indexed":false,"name":"_conversionRate","type":"uint256"}],"name":"FundsReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"}],"name":"BeneficiaryChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_conversionRate","type":"uint256"}],"name":"ConversionRateChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_beneficiary","type":"address"},{"indexed":false,"name":"_ethers","type":"uint256"},{"indexed":false,"name":"_totalSupply","type":"uint256"}],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_oldOwner","type":"address"},{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnershipTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526004805460a060020a60ff02191690556009805460ff1916905534156200002a57600080fd5b60405160208062001b698339810160405280805160038054600160a060020a03191633600160a060020a038116919091179091559092509050600060408051908101604052600981527f454f532e50697a7a61000000000000000000000000000000000000000000000060208201526005908051620000ae929160200190620001f9565b5060408051908101604052600381527f455053000000000000000000000000000000000000000000000000000000000060208201526006908051620000f8929160200190620001f9565b506007805460ff191660121790556000818155600354600160a060020a03908116825260016020526040909120919091558216151590506200013957600080fd5b6009805461010060a860020a031916610100600160a060020a03841602179055620186a0600a55635aa2fb0e600b55635afe1fc8600c556b0311d253316c79d376000000600d55600060115566b1a2bc2ec50000600f556b019d81f14d205ed37d80000060105530620001ab6200027e565b600160a060020a039091168152602001604051809103906000f0801515620001d257600080fd5b600e8054600160a060020a031916600160a060020a039290921691909117905550620002af565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023c57805160ff19168380011785556200026c565b828001600101855582156200026c579182015b828111156200026c5782518255916020019190600101906200024f565b506200027a9291506200028f565b5090565b60405161067f80620014ea83390190565b620002ac91905b808211156200027a576000815560010162000296565b90565b61122b80620002bf6000396000f30060606040526004361061018a5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663054f7d9c811461019457806306fdde03146101bb578063095ea7b3146102455780630b97bc861461026757806318160ddd1461028c5780631c31f7101461029f57806323b872dd146102be5780632bf04304146102e6578063313ce5671461033557806338af3eed1461035e5780634bb278f31461038d5780635ae5b24f146103a057806362a5af3b146103b35780636a28f000146103c657806370a08231146103d957806377a54eb8146103f857806379ba5097146104475780637ffdf53e1461045a5780638da5cb5b1461046d57806395d89b41146104805780639b19251a14610493578063a9059cbb146104b2578063b3f05b97146104d4578063c24a0f8b146104e7578063d0febe4c1461018a578063d2e80494146104fa578063d4ee1d9014610510578063dd62ed3e14610523578063e522538114610548578063f2fde38b1461055b578063fb86a4041461057a575b61019261058d565b005b341561019f57600080fd5b6101a7610726565b604051901515815260200160405180910390f35b34156101c657600080fd5b6101ce610736565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561020a5780820151838201526020016101f2565b50505050905090810190601f1680156102375780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025057600080fd5b6101a7600160a060020a03600435166024356107d4565b341561027257600080fd5b61027a610801565b60405190815260200160405180910390f35b341561029757600080fd5b61027a610807565b34156102aa57600080fd5b610192600160a060020a036004351661080d565b34156102c957600080fd5b6101a7600160a060020a03600435811690602435166044356108aa565b34156102f157600080fd5b61019260046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506108d995505050505050565b341561034057600080fd5b610348610902565b60405160ff909116815260200160405180910390f35b341561036957600080fd5b61037161090b565b604051600160a060020a03909116815260200160405180910390f35b341561039857600080fd5b61019261091f565b34156103ab57600080fd5b610371610b90565b34156103be57600080fd5b610192610b9f565b34156103d157600080fd5b610192610be0565b34156103e457600080fd5b61027a600160a060020a0360043516610c1b565b341561040357600080fd5b6101926004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650610c3695505050505050565b341561045257600080fd5b610192610c5c565b341561046557600080fd5b61027a610ce7565b341561047857600080fd5b610371610ced565b341561048b57600080fd5b6101ce610cfc565b341561049e57600080fd5b6101a7600160a060020a0360043516610d67565b34156104bd57600080fd5b6101a7600160a060020a0360043516602435610d7c565b34156104df57600080fd5b6101a7610da0565b34156104f257600080fd5b61027a610da9565b341561050557600080fd5b610192600435610daf565b341561051b57600080fd5b610371610e30565b341561052e57600080fd5b61027a600160a060020a0360043581169060243516610e3f565b341561055357600080fd5b610192610e6a565b341561056657600080fd5b610192600160a060020a0360043516610ec9565b341561058557600080fd5b61027a610f13565b60095460009060ff16156105a057600080fd5b600b544210156105af57600080fd5b600c544211156105be57600080fd5b6414f46b04003a11156105d057600080fd5b600f543410156105df57600080fd5b600d5460115411156105f057600080fd5b600a5461060490349063ffffffff610f1916565b600160a060020a033316600090815260016020526040902054909150610630908263ffffffff610f3d16565b600160a060020a033316600090815260016020526040902081905560105490111561065a57600080fd5b60115461066d908263ffffffff610f3d16565b601155600054610683908263ffffffff610f3d16565b6000908155600160a060020a033316907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405190815260200160405180910390a333600160a060020a03167f17e507914c1ab4cd822dacbda95ac688e622145eaaf4547021782e4a347837453483600054600a546040518085815260200184815260200183815260200182815260200194505050505060405180910390a250565b60045460a060020a900460ff1681565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cc5780601f106107a1576101008083540402835291602001916107cc565b820191906000526020600020905b8154815290600101906020018083116107af57829003601f168201915b505050505081565b60045460009060a060020a900460ff16156107ee57600080fd5b6107f88383610f4c565b90505b92915050565b600b5481565b60005481565b60035433600160a060020a0390811691161461082857600080fd5b600160a060020a038116151561083d57600080fd5b6009805474ffffffffffffffffffffffffffffffffffffffff001916610100600160a060020a038416021790557fde18bec64db6456a4810135a56f83d06f0ab5786ebdb21e3bef0893f63dab7fd81604051600160a060020a03909116815260200160405180910390a150565b60045460009060a060020a900460ff16156108c457600080fd5b6108cf848484610fb8565b90505b9392505050565b60035433600160a060020a039081169116146108f457600080fd5b6108ff8160016110cc565b50565b60075460ff1681565b6009546101009004600160a060020a031681565b600354600090819033600160a060020a0390811691161461093f57600080fd5b600d546000541015806109545750600c544210155b151561095f57600080fd5b60095460ff161561096f57600080fd5b3091507f616c9469db50815ae0f1d0a020d9fc9060da7c57f03559afb0d4ebdaa0a3a05e600960019054906101000a9004600160a060020a031683600160a060020a0316316000546040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a1600954600160a060020a0361010090910481169083163180156108fc0290604051600060405180830381858888f193505050501515610a2a57600080fd5b600e54600160a060020a031663dc5bf9616000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610a8b57600080fd5b6102c65a03f11515610a9c57600080fd5b5050506040518051600e54600160a060020a0316600090815260016020526040902054909250610ad391508263ffffffff610f3d16565b600e54600160a060020a031660009081526001602052604081209190915554610b02908263ffffffff610f3d16565b6000908155600354600160a060020a0316815260016020526040902054610b3a906a021165458500521280000063ffffffff610f3d16565b600354600160a060020a031660009081526001602052604081209190915554610b74906a021165458500521280000063ffffffff610f3d16565b6000556009805460ff19166001179055610b8c610be0565b5050565b600e54600160a060020a031681565b60035433600160a060020a03908116911614610bba57600080fd5b6004805474ff0000000000000000000000000000000000000000191660a060020a179055565b60035433600160a060020a03908116911614610bfb57600080fd5b6004805474ff000000000000000000000000000000000000000019169055565b600160a060020a031660009081526001602052604090205490565b60035433600160a060020a03908116911614610c5157600080fd5b6108ff8160006110cc565b60045433600160a060020a03908116911614610c7757600080fd5b600454600354600160a060020a0391821691167f22500af037c600dd7b720644ab6e358635085601d9ac508ad83eb2d6b2d729ca60405160405180910390a36004546003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600a5481565b600354600160a060020a031681565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cc5780601f106107a1576101008083540402835291602001916107cc565b60086020526000908152604090205460ff1681565b60045460009060a060020a900460ff1615610d9657600080fd5b6107f88383611134565b60095460ff1681565b600c5481565b60035433600160a060020a03908116911614610dca57600080fd5b600b544210610dd857600080fd5b60008111610de557600080fd5b600a81905569010eff0fae29b1bc000081026010557fed4f114d5309d23a6f29a047b8e4014ccd43ac8c42087d845ef4d0f1fbf2d8848160405190815260200160405180910390a150565b600454600160a060020a031681565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035460009033600160a060020a03908116911614610e8857600080fd5b506009543090600160a060020a0361010090910481169082163180156108fc0290604051600060405180830381858888f1935050505015156108ff57600080fd5b60035433600160a060020a03908116911614610ee457600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600d5481565b6000828202831580610f355750828482811515610f3257fe5b04145b15156108d257fe5b6000828201838110156108d257fe5b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b600160a060020a038316600090815260016020526040812054829010806110055750600160a060020a03808516600090815260026020908152604080832033909416835292905220548290105b8061100e575081155b1561101b575060006108d2565b600160a060020a038316600090815260016020526040902054611044908363ffffffff610f3d16565b600160a060020a03808516600081815260016020908152604080832095909555888416808352858320805489900390556002825285832033909516835293905283902080548690039055917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60005b82518163ffffffff16101561112f578160086000858463ffffffff16815181106110f557fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff19169115159190911790556001016110cf565b505050565b600160a060020a03331660009081526001602052604081205482901080611159575081155b15611166575060006107fb565b600160a060020a03338116600090815260016020526040808220805486900390559185168152205461119e908363ffffffff610f3d16565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a3506001929150505600a165627a7a72305820393bd741cf2d4092be21b94579d8ff668c9bc83dc881ea832212fe59a617b42b00296060604052341561000f57600080fd5b60405160208061067f8339810160405280805160018054600160a060020a038316600160a060020a03199182168117909116179055915061006490506000635aff71486401000000006102c061025282021704565b61009c6000733ce215b2e4dc9d2ba0e2fc5099315e4fa05d8aa26a1cf389cd46047d030000006401000000006102d961026b82021704565b60008080526020527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5546a1cf389cd46047d03000000146100d957fe5b6100f56001635aff71486401000000006102c061025282021704565b61012d600173c0e321e9305c21b72f5ee752a9e8d9ecd0f2e2b16a02116545850052128000006401000000006102d961026b82021704565b61016560017355798cf234fea760b0591537517c976fdb0c53ba6a02116545850052128000006401000000006102d961026b82021704565b61019d600173bc732e73b94a5c4a8f60d0d98c4026df21d500f56a02116545850052128000006401000000006102d961026b82021704565b6101d5600173088eeee7c4c26041fbb4e83c10cb0784c81c86f96a02116545850052128000006401000000006102d961026b82021704565b61020d60017352d640c9c417d9b7e3770d960946dd5bd2eb63db6a02116545850052128000006401000000006102d961026b82021704565b600160009081526020527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d546a0a56fa5b99019a5c8000001461024c57fe5b506102fd565b60ff909116600090815260208190526040902060010155565b60ff8316600090815260208181526040808320600160a060020a038616845260028101909252909120546102ac90836401000000006102986102e782021704565b600160a060020a038416600090815260028301602052604090205580546102e090836401000000006102986102e782021704565b9055505050565b6000828201838110156102f657fe5b9392505050565b6103738061030c6000396000f3006060604052600436106100615763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166317e95fbc811461006657806347b3aff81461007b578063c1873e26146100ac578063dc5bf961146100bf575b600080fd5b341561007157600080fd5b6100796100e4565b005b341561008657600080fd5b61009460ff600435166100f1565b60405191825260208201526040908101905180910390f35b34156100b757600080fd5b61007961010a565b34156100ca57600080fd5b6100d2610115565b60405190815260200160405180910390f35b6100ef600133610177565b565b6000602081905290815260409020805460019091015482565b6100ef600033610177565b600060208190527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d548180527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5546101729163ffffffff61029816565b905090565b60ff82166000908152602081905260408120600181015490919042101561019d57600080fd5b50600160a060020a03821660009081526002820160205260408120549081116101c557600080fd5b600160a060020a038316600090815260028301602052604081205581546101f2908263ffffffff6102ae16565b8255600154600160a060020a031663a9059cbb84836000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561026c57600080fd5b6102c65a03f1151561027d57600080fd5b50505060405180519050151561029257600080fd5b50505050565b6000828201838110156102a757fe5b9392505050565b6000828211156102ba57fe5b50900390565b60ff909116600090815260208190526040902060010155565b60ff8316600090815260208181526040808320600160a060020a03861684526002810190925290912054610313908363ffffffff61029816565b600160a060020a03841660009081526002830160205260409020558054610340908363ffffffff61029816565b90555050505600a165627a7a723058201ec5fbf198085e3ef4939f7f51d67702b24d537d1ae1b5f79321b572535d197a0029000000000000000000000000021dba5e12eb593c55bd3894a91634ac3895581b

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

-----Decoded View---------------
Found 1 constructor arguments :
Arg [0] : 000000000000000000000000021dba5e12eb593c55bd3894a91634ac3895581b


   Swarm Source:
bzzr://1ec5fbf198085e3ef4939f7f51d67702b24d537d1ae1b5f79321b572535d197a

 

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