Sponsored Link: Join FundYourselfNow ICO (20% bonus) – One-stop crowdfunding platform for projects seeking funding and talented helpers
Contract Overview
ETH Balance: 0.032 Ether
ETH USD Value: $10.53 (@ $328.99/ETH)
No Of Transactions: 9608 txns + 189 internalTxns
Token Tracker FirstBlood
Misc QRCODE
Address Watch Add To Watch List
Contract Creator 0x7b174763483367307a177ecebf043697eb4673c7at txn 0x9b6767e5ebece4d04676efc3f1f479a27c59e92366cc1b902f16125739fb5de3
Token Tracker
  Latest 25 txns from a total Of 9608 transactions View All

TxHash Block Age From To Value [TxFee]
0xe9b5e11b57acbfa712f6e241ade6c45030ce31c0a7a70625a390d25bfd39b3c239181859 mins ago0x7119ccb5bf890975e4ba85053cfe9543f263cdab  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00047785
0x1054bd45a53b224ae0ca6e96957c0840612a6eb5b7d54993a09d2c0634ac3c48391817112 mins ago0xdf811bc985de38659c92570efe3cc63c3162af39  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00253017
0x15f0bdefdd21187e929a07817ce00782dddb91e8a6234d37b90b0d40683c3645391811826 mins ago0x43eb788d2fff0f404fec64234e1b5ab969061795  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00110695
0xeb26207cf0bad0615f09ec4c865255eee82475cedb6069df7bf947076033830c391810729 mins ago0x91c6d36933340a820315ba6b10973e136cdaa67b  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00045552
0xcc35d56cff57c2f6f2e744df1ff7b783ac58a558246c0ab5822e1d9c4b3b4e69391803745 mins ago0x8ebf2a82ab282d45ae6248497fbb6273457faffe  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00079195
0xdfcbcd6d12b85ce1bd14e627539f18c36c15779fddb0fe3e015a86026914d254391803346 mins ago0x1d151ea535c2b9f21a88459c03afdc5e627cecea  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00075296
0x1122de8afb56d32a228993485c3010cc8efca44814c93eb0007761e16678de2f391799956 mins ago0x91c6d36933340a820315ba6b10973e136cdaa67b  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00105296
0x67a08edf30d8b7f9a8ec5e4fc0a61aa51a0fbd5fac70c0f81ec86fed6d80daee39179811 hr 3 mins ago0x5dae5c3ca2019d5f2a4d0fd4334435bf32b5e4c2  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00094794
0x4465168f8519cfb14bd229ff92ae9a207461a8d595be7d6deeef3d43f4a40f8839179591 hr 11 mins ago0x3da1cce46ac5451f82fd9a771673e1776db013e8  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00079195
0x74207e888900d7e92eb5c34b533e3802e8b4f2eef076a9fa30218e6ab56f73f839179371 hr 18 mins ago0x94ff714ea2088f93a0824090df4e1b3ca07272de  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00064638
0x3972f3f04047583bfaa77e00fac0d2bee6cb0f68ee4c524bc7a0454a73d8b1b839179251 hr 21 mins agoBittrex  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.004062
0xb36db06cbb6d9be349cd7306298d56ee17adff5a37b9727ed778bc0e2d528a4439178861 hr 32 mins ago0x5dae5c3ca2019d5f2a4d0fd4334435bf32b5e4c2  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00121149
0x7a6bed328cfc5ba94d703350fcaac870012cdcd92418198accf1e84104159cce39178161 hr 52 mins ago0xc2c1c7bf23c35de92e3dce774fa4266bc6f52618  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00093202
0x774291bfd0d96b84bccc11d0cc2e46587566130deec3b304740655db6c9a116d39178111 hr 53 mins ago0x94ff714ea2088f93a0824090df4e1b3ca07272de  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00099121
0x9448f9a1692b3bb7a74f76e09832123e6ca6d4d291ec0b9604b68528a68429b139178041 hr 54 mins agoBittrex  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00405707
0x44fca7968b27ecf05795dfd05d5eea58bc707ad70d132e1ed20fad0e9927015039177981 hr 56 mins agoBittrex  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00405707
0x8ba723d460f91d07154abcc3b063bb4f20f51d980856ad25e80230d4b349bdc939177901 hr 59 mins ago0x5e575279bf9f4acf0a130c186861454247394c06  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00284984
0x70a382599add70191cefe2af129c4f09c1e723014479e25b12f2b3b9518c67e939177602 hrs 9 mins agoyunbi.com_1  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.002708
0x2d42a0740f41948b64c90f40bc83b44c34b393b51599b33d07ce769ebb8a800f39177542 hrs 10 mins ago0x94ff714ea2088f93a0824090df4e1b3ca07272de  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00128594
0x06ccd74cabf68b5471563696dca7d28ffeb5a0f055ef5ce5ddb5aa47342b39e639177422 hrs 14 mins agoBittrex  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00405707
0x7f68d4ba0894c21bab641ea76ea4db8a8fe08e0cd761676c9e0223398029b7f839177062 hrs 25 mins agoBittrex  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.004062
0xbd5a3b8b2fec82ce67ad0de95122db21e2a65cfde25390c1fd5c382a41b8cf1e39176892 hrs 31 mins agoBittrex  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.004062
0x049637cb12987dc3938f2042d73ca1943cb204647f89467fd34edfd3a045571939176752 hrs 35 mins ago0x94ff714ea2088f93a0824090df4e1b3ca07272de  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00108771
0x6050510579d82aeb947a8da04fc71f4550e094197eda2c1a6dbada3f82029e6039176562 hrs 40 mins agoBittrex  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00390282
0x17f2769522f2dd38bf54084f498658f4c2a1cf79d0659a21d010061d500f04ee39176462 hrs 44 mins ago0x94ff714ea2088f93a0824090df4e1b3ca07272de  IN   0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether0.00078295

[Download: CSV Export ]    
 Internal Transactions as a result of Contract Execution
  Latest 25 Internal Txns from a total of 189 View All
ParentTxHash Block Age From To Value
0x8a89392af27ed588ef095192143532bd6a8815f0d072110612308c9f32e0dd6e2346771267 days 7 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70.01 Ether
0x656331405c6c06606e0625cd5b30aee9b63d734775699f09d3544e8bd0b275662327898270 days 11 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.026 Ether
0xcdf3dac8e37353cea709df5776f838c7e902b9e5f1ea4b78204761f2a388e84c2327830270 days 11 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x22992b3d6f24a8049c60c11e1e2cb0935d38a51fdff098e51a1dfa2b46839fd92327823270 days 11 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x327cdbd6688c5c3f45207bf9e6c9d4f7527e36efbc989de8a3e9c78069fc0c1a2327818270 days 11 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x6acc698ca05ad2335040401075b0a05edf4ed4975e46ad55341d7f1895a997bd2327532270 days 12 hrs ago0x1ca4a86bba124426507d1ef67ad271cc5a02820a0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc72 Ether
0x860a0a6de1e64f835a9d71f5fc9193ed989e8253a92d9ba5ba96626b7d5b76dc2327512270 days 12 hrs ago0x1ca4a86bba124426507d1ef67ad271cc5a02820a0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc74.689 Ether
0x4d3a3bc82c349bf2d3840151f434234230bd8e0af6df198bad276206089874af2327381270 days 13 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc71 Ether
0x269f15635aa5d4cc6a3d34bf62b5928001ecfa8024bc8fa7c97ca3a3c2c5bf422327281270 days 13 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc71 Ether
0xc0b3fce147ca08801dbb287c29a87a55fd67ed7c35dd3ad414106e1713f2b8392327256270 days 13 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc7500 Ether
0x30bd5b485c314faad4e9b823ca86eaf0d986bc71a885a0599f9d59b6d2bc7eea2327255270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0xf40e3e9f46295e9f474faf5fea9fe91fe2ec2f93040768104db945a657fe1d942327255270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x5c1ce2f41b22950584ed6adc8557cf7e237faa737c49ef143e57596e12f9d9bd2327251270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x3039c40b3072e4769c9afd2a835b3e5705413c6ddf840a713e047416ce2686df2327251270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef710 Ether
0x1f5c567dbe93d2ec0dbd5da36f1da2159ad3def17ad196441c697c42324f8b9f2327249270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef710.9 Ether
0x11b37badbf485cfd6174c4dffdbd09830c08a6146b902b83850d5e5e304161302327249270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7230 Ether
0x0e0baadc9923ed3a043d9e9f2d2f55d57573b06ef7da445b852df071cef4c63d2327249270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x0f883bcd00b54b9d3a26133d19034901cbbf9dac00acf08414e3bda45f3588772327248270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef774.7 Ether
0x3aba3ef2c050201273412ffb70bba0325f2906ff85fcd089d0010825b9d8b8082327248270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7121 Ether
0xcdcc70bba9a873627ce9eaa4287ad41b2d9aa47a24f2fa73939c9c066c68c0352327248270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef76 Ether
0x3fd3fdcdadef3a2f31ce61a3dfc51987c8eab6db2e090b9505cad8fb0b7359962327248270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef72.5 Ether
0xced4311be65b064fccf999ca7c6e4cdcc0a586538c9a92d1c6cc4ee2f3806c252327248270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7100 Ether
0xfafc122b63f5617685df7a131f88dc5e12c9c1fa4ba75da7176dabae33bf08012327248270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7100 Ether
0x97ae861827b8fc648de773980100587e817ac2f4732ab44e690a9a79dca37f692327243270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7690 Ether
0x9780c63678ace4a6a347a0b5b0d17bc47d19c0c28f984af913dfa902be1137332327243270 days 13 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7600 Ether

[Download: CSV Export ]    
Contract Name: FirstBloodToken
Compiler Version: v0.3.6-nightly.2016.8.15+commit.868a167
Optimization Enabled: Yes
Online Solidity Editor:  -NA-



  Contract Source Code   Find Similiar Contracts
/**
 * Overflow aware uint math functions.
 *
 * Inspired by https://github.com/MakerDAO/maker-otc/blob/master/contracts/simple_market.sol
 */
contract SafeMath {
  //internals

  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeSub(uint a, uint b) internal returns (uint) {
    assert(b <= a);
    return a - b;
  }

  function safeAdd(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c>=a && c>=b);
    return c;
  }

  function assert(bool assertion) internal {
    if (!assertion) throw;
  }
}

/**
 * ERC 20 token
 *
 * https://github.com/ethereum/EIPs/issues/20
 */
contract Token {

    /// @return total amount of tokens
    function totalSupply() constant returns (uint256 supply) {}

    /// @param _owner The address from which the balance will be retrieved
    /// @return The balance
    function balanceOf(address _owner) constant returns (uint256 balance) {}

    /// @notice send `_value` token to `_to` from `msg.sender`
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transfer(address _to, uint256 _value) returns (bool success) {}

    /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`
    /// @param _from The address of the sender
    /// @param _to The address of the recipient
    /// @param _value The amount of token to be transferred
    /// @return Whether the transfer was successful or not
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {}

    /// @notice `msg.sender` approves `_addr` to spend `_value` tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @param _value The amount of wei to be approved for transfer
    /// @return Whether the approval was successful or not
    function approve(address _spender, uint256 _value) returns (bool success) {}

    /// @param _owner The address of the account owning tokens
    /// @param _spender The address of the account able to transfer the tokens
    /// @return Amount of remaining tokens allowed to spent
    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {}

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

}

/**
 * ERC 20 token
 *
 * https://github.com/ethereum/EIPs/issues/20
 */
contract StandardToken is Token {

    /**
     * Reviewed:
     * - Interger overflow = OK, checked
     */
    function transfer(address _to, uint256 _value) returns (bool success) {
        //Default assumes totalSupply can't be over max (2^256 - 1).
        //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.
        //Replace the if with this one instead.
        if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
        //if (balances[msg.sender] >= _value && _value > 0) {
            balances[msg.sender] -= _value;
            balances[_to] += _value;
            Transfer(msg.sender, _to, _value);
            return true;
        } else { return false; }
    }

    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        //same as above. Replace this line with the following if you want to protect against wrapping uints.
        if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {
        //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
            balances[_to] += _value;
            balances[_from] -= _value;
            allowed[_from][msg.sender] -= _value;
            Transfer(_from, _to, _value);
            return true;
        } else { return false; }
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value) returns (bool success) {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
      return allowed[_owner][_spender];
    }

    mapping(address => uint256) balances;

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

    uint256 public totalSupply;

}


/**
 * First blood crowdsale crowdsale contract.
 *
 * Security criteria evaluated against http://ethereum.stackexchange.com/questions/8551/methodological-security-review-of-a-smart-contract
 *
 *
 */
contract FirstBloodToken is StandardToken, SafeMath {

    string public name = "FirstBlood Token";
    string public symbol = "1ST";
    uint public decimals = 18;
    uint public startBlock; //crowdsale start block (set in constructor)
    uint public endBlock; //crowdsale end block (set in constructor)

    // Initial founder address (set in constructor)
    // All deposited ETH will be instantly forwarded to this address.
    // Address is a multisig wallet.
    address public founder = 0x0;

    // signer address (for clickwrap agreement)
    // see function() {} for comments
    address public signer = 0x0;

    uint public etherCap = 465313 * 10**18; //max amount raised during crowdsale (5.5M USD worth of ether will be measured with a moving average market price at beginning of the crowdsale)
    uint public transferLockup = 370285; //transfers are locked for this many blocks after endBlock (assuming 14 second blocks, this is 2 months)
    uint public founderLockup = 2252571; //founder allocation cannot be created until this many blocks after endBlock (assuming 14 second blocks, this is 1 year)
    uint public bountyAllocation = 2500000 * 10**18; //2.5M tokens allocated post-crowdsale for the bounty fund
    uint public ecosystemAllocation = 5 * 10**16; //5% of token supply allocated post-crowdsale for the ecosystem fund
    uint public founderAllocation = 10 * 10**16; //10% of token supply allocated post-crowdsale for the founder allocation
    bool public bountyAllocated = false; //this will change to true when the bounty fund is allocated
    bool public ecosystemAllocated = false; //this will change to true when the ecosystem fund is allocated
    bool public founderAllocated = false; //this will change to true when the founder fund is allocated
    uint public presaleTokenSupply = 0; //this will keep track of the token supply created during the crowdsale
    uint public presaleEtherRaised = 0; //this will keep track of the Ether raised during the crowdsale
    bool public halted = false; //the founder address can set this to true to halt the crowdsale due to emergency
    event Buy(address indexed sender, uint eth, uint fbt);
    event Withdraw(address indexed sender, address to, uint eth);
    event AllocateFounderTokens(address indexed sender);
    event AllocateBountyAndEcosystemTokens(address indexed sender);

    function FirstBloodToken(address founderInput, address signerInput, uint startBlockInput, uint endBlockInput) {
        founder = founderInput;
        signer = signerInput;
        startBlock = startBlockInput;
        endBlock = endBlockInput;
    }

    /**
     * Security review
     *
     * - Integer overflow: does not apply, blocknumber can't grow that high
     * - Division is the last operation and constant, should not cause issues
     * - Price function plotted https://github.com/Firstbloodio/token/issues/2
     */
    function price() constant returns(uint) {
        if (block.number>=startBlock && block.number<startBlock+250) return 170; //power hour
        if (block.number<startBlock || block.number>endBlock) return 100; //default price
        return 100 + 4*(endBlock - block.number)/(endBlock - startBlock + 1)*67/4; //crowdsale price
    }

    // price() exposed for unit tests
    function testPrice(uint blockNumber) constant returns(uint) {
        if (blockNumber>=startBlock && blockNumber<startBlock+250) return 170; //power hour
        if (blockNumber<startBlock || blockNumber>endBlock) return 100; //default price
        return 100 + 4*(endBlock - blockNumber)/(endBlock - startBlock + 1)*67/4; //crowdsale price
    }

    // Buy entry point
    function buy(uint8 v, bytes32 r, bytes32 s) {
        buyRecipient(msg.sender, v, r, s);
    }

    /**
     * Main token buy function.
     *
     * Security review
     *
     * - Integer math: ok - using SafeMath
     *
     * - halt flag added - ok
     *
     * Applicable tests:
     *
     * - Test halting, buying, and failing
     * - Test buying on behalf of a recipient
     * - Test buy
     * - Test unhalting, buying, and succeeding
     * - Test buying after the sale ends
     *
     */
    function buyRecipient(address recipient, uint8 v, bytes32 r, bytes32 s) {
        bytes32 hash = sha256(msg.sender);
        if (ecrecover(hash,v,r,s) != signer) throw;
        if (block.number<startBlock || block.number>endBlock || safeAdd(presaleEtherRaised,msg.value)>etherCap || halted) throw;
        uint tokens = safeMul(msg.value, price());
        balances[recipient] = safeAdd(balances[recipient], tokens);
        totalSupply = safeAdd(totalSupply, tokens);
        presaleEtherRaised = safeAdd(presaleEtherRaised, msg.value);

        if (!founder.call.value(msg.value)()) throw; //immediately send Ether to founder address

        Buy(recipient, msg.value, tokens);
    }

    /**
     * Set up founder address token balance.
     *
     * allocateBountyAndEcosystemTokens() must be calld first.
     *
     * Security review
     *
     * - Integer math: ok - only called once with fixed parameters
     *
     * Applicable tests:
     *
     * - Test bounty and ecosystem allocation
     * - Test bounty and ecosystem allocation twice
     *
     */
    function allocateFounderTokens() {
        if (msg.sender!=founder) throw;
        if (block.number <= endBlock + founderLockup) throw;
        if (founderAllocated) throw;
        if (!bountyAllocated || !ecosystemAllocated) throw;
        balances[founder] = safeAdd(balances[founder], presaleTokenSupply * founderAllocation / (1 ether));
        totalSupply = safeAdd(totalSupply, presaleTokenSupply * founderAllocation / (1 ether));
        founderAllocated = true;
        AllocateFounderTokens(msg.sender);
    }

    /**
     * Set up founder address token balance.
     *
     * Set up bounty pool.
     *
     * Security review
     *
     * - Integer math: ok - only called once with fixed parameters
     *
     * Applicable tests:
     *
     * - Test founder token allocation too early
     * - Test founder token allocation on time
     * - Test founder token allocation twice
     *
     */
    function allocateBountyAndEcosystemTokens() {
        if (msg.sender!=founder) throw;
        if (block.number <= endBlock) throw;
        if (bountyAllocated || ecosystemAllocated) throw;
        presaleTokenSupply = totalSupply;
        balances[founder] = safeAdd(balances[founder], presaleTokenSupply * ecosystemAllocation / (1 ether));
        totalSupply = safeAdd(totalSupply, presaleTokenSupply * ecosystemAllocation / (1 ether));
        balances[founder] = safeAdd(balances[founder], bountyAllocation);
        totalSupply = safeAdd(totalSupply, bountyAllocation);
        bountyAllocated = true;
        ecosystemAllocated = true;
        AllocateBountyAndEcosystemTokens(msg.sender);
    }

    /**
     * Emergency Stop crowdsale.
     *
     *  Applicable tests:
     *
     * - Test unhalting, buying, and succeeding
     */
    function halt() {
        if (msg.sender!=founder) throw;
        halted = true;
    }

    function unhalt() {
        if (msg.sender!=founder) throw;
        halted = false;
    }

    /**
     * Change founder address (where crowdsale ETH is being forwarded).
     *
     * Applicable tests:
     *
     * - Test founder change by hacker
     * - Test founder change
     * - Test founder token allocation twice
     *
     */

    function changeFounder(address newFounder) {
        if (msg.sender!=founder) throw;
        founder = newFounder;
    }

    /**
     * ERC 20 Standard Token interface transfer function
     *
     * Prevent transfers until freeze period is over.
     *
     * Applicable tests:
     *
     * - Test restricted early transfer
     * - Test transfer after restricted period
     */
    function transfer(address _to, uint256 _value) returns (bool success) {
        if (block.number <= endBlock + transferLockup && msg.sender!=founder) throw;
        return super.transfer(_to, _value);
    }
    /**
     * ERC 20 Standard Token interface transfer function
     *
     * Prevent transfers until freeze period is over.
     */
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success) {
        if (block.number <= endBlock + transferLockup && msg.sender!=founder) throw;
        return super.transferFrom(_from, _to, _value);
    }

    /**
     * Do not allow direct deposits.
     *
     * All crowdsale depositors must have read the legal agreement.
     * This is confirmed by having them signing the terms of service on the website.
     * They give their crowdsale Ethereum source address on the website.
     * Website signs this address using crowdsale private key (different from founders key).
     * buy() takes this signature as input and rejects all deposits that do not have
     * signature you receive after reading terms of service.
     *
     */
    function() {
        throw;
    }

}

  Contract ABI  
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"bountyAllocated","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"signer","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[{"name":"blockNumber","type":"uint256"}],"name":"testPrice","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"presaleEtherRaised","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"allocateBountyAndEcosystemTokens","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"founder","outputs":[{"name":"","type":"address"}],"type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"etherCap","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"ecosystemAllocated","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"founderAllocation","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"founderLockup","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"newFounder","type":"address"}],"name":"changeFounder","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"type":"function"},{"constant":true,"inputs":[],"name":"founderAllocated","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"type":"function"},{"constant":false,"inputs":[],"name":"allocateFounderTokens","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"ecosystemAllocation","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"transferLockup","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":true,"inputs":[],"name":"presaleTokenSupply","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"buyRecipient","outputs":[],"type":"function"},{"constant":false,"inputs":[{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"buy","outputs":[],"type":"function"},{"constant":true,"inputs":[],"name":"bountyAllocation","outputs":[{"name":"","type":"uint256"}],"type":"function"},{"inputs":[{"name":"founderInput","type":"address"},{"name":"signerInput","type":"address"},{"name":"startBlockInput","type":"uint256"},{"name":"endBlockInput","type":"uint256"}],"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"eth","type":"uint256"},{"indexed":false,"name":"fbt","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"eth","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"}],"name":"AllocateFounderTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"}],"name":"AllocateBountyAndEcosystemTokens","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
60a060405260106060527f4669727374426c6f6f6420546f6b656e000000000000000000000000000000006080526003805460008290527f4669727374426c6f6f6420546f6b656e0000000000000000000000000000002082556100b5907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b602060026001841615610100026000190190931692909204601f01919091048101905b8082111561014857600081556001016100a1565b505060408051808201909152600381527f31535400000000000000000000000000000000000000000000000000000000006020918201908152600480546000829052915160ff191660061781559161014c9160026001821615610100026000190190911604601f01047f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908101906100a1565b5090565b50506012600581905560088054600160a060020a0319908116909155600980549091169055696288ab14061109e40000600a556205a66d600b5562225f1b600c556a0211654585005212800000600d5566b1a2bc2ec50000600e5567016345785d8a0000600f556010805462ffffff191690556000601181905590556013805460ff19169055604051608080610faf8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190505060088054600160a060020a0319908116861790915560098054909116841790556006829055600781905550505050610d6a806102456000396000f36060604052361561018a5760e060020a600035046306fdde038114610192578063083c6323146101f0578063095ea7b3146101f957806318160ddd1461026d5780631bc59aa614610276578063238ac9331461028257806323b872dd146102945780632af7ceff146102d4578063313ce5671461030057806344b499581461030957806348cd4cb1146103125780634a8b53891461031b5780634d853ee51461033b5780635ed7ca5b1461034d57806370a082311461036d5780637228b9db14610392578063771d9d051461039b578063824338bd146103ac57806383e811a6146103b557806393c32e06146103be57806395d89b41146103e157806399d22e481461043f578063a035b1fe14610451578063a9059cbb1461047b578063b9b8af0b146104b8578063bcfcb03e146104c4578063c0f496ac146104e4578063c24fe21b146104ed578063c4fc3a3b146104f6578063cb3e64fd146104ff578063dd62ed3e1461051f578063dda44b1014610553578063e5fe4f3114610610578063f6b9d05d14610628575b610631610002565b6040805160038054602060026001831615610100026000190190921691909104601f8101829004820284018201909452838352610633939083018282801561070f5780601f106106e45761010080835404028352916020019161070f565b6106a160075481565b6106b3600435602435600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6106a160025481565b6106b360105460ff1681565b6106c7600954600160a060020a031681565b6106b3600435602435604435600754600b546000910143118015906102ca5750600854600160a060020a03908116339190911614155b1561072157610002565b6106a160043560065460009082108015906102f3575060065460fa0182105b15610820575060aa61038d565b6106a160055481565b6106a160125481565b6106a160065481565b610631600854600160a060020a0390811633919091161461086357610002565b6106c7600854600160a060020a031681565b610631600854600160a060020a039081163391909116146109cd57610002565b6106a1600435600160a060020a0381166000908152602081905260409020545b919050565b6106a1600a5481565b6106b3601054610100900460ff1681565b6106a1600f5481565b6106a1600c5481565b610631600435600854600160a060020a039081163391909116146109dc57610002565b6040805160048054602060026001831615610100026000190190921691909104601f8101829004820284018201909452838352610633939083018282801561070f5780601f106106e45761010080835404028352916020019161070f565b6106b360105462010000900460ff1681565b6106a15b600654600090431080159061046e575060065460fa0143105b15610a2a575060aa610a27565b6106b3600435602435600754600b546000910143118015906104ae5750600854600160a060020a03908116339190911614155b15610a4857610002565b6106b360135460ff1681565b610631600854600160a060020a03908116339190911614610b0057610002565b6106a1600e5481565b6106a1600b5481565b6106a160115481565b610631600854600160a060020a03908116339190911614610c0757610002565b6106a1600435602435600160a060020a03828116600090815260016020908152604080832093851683529290522054610267565b6106316004356024356044356064355b600060006002336040518082600160a060020a03166c010000000000000000000000000281526014019150506020604051808303816000866161da5a03f11561000257505060408051805160095460ff8916602084810191909152838501899052606084018890529351919550600160a060020a0316926001926080818101939182900301816000866161da5a03f11561000257505060405151600160a060020a031614610c1357610002565b610631600435602435604435610d5533848484610563565b6106a1600d5481565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156106935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b604080519115158252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b820191906000526020600020905b8154815290600101906020018083116106f257829003601f168201915b505050505081565b90505b9392505050565b610717848484600160a060020a03831660009081526020819052604081205482901080159061076e5750600160209081526040808320600160a060020a0333168452909152812054829010155b80156107935750600160a060020a038316600090815260208190526040902054808301115b15610d5a57600160a060020a038381166000818152602081815260408083208054880190558885168084528184208054899003905560018352818420339690961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600161071a565b600654821080610831575060075482115b1561083e5750606461038d565b506007546006546004908203600101918390038102919091046043020460640161038d565b600754431161087157610002565b60105460ff16806108895750601054610100900460ff165b1561089357610002565b6002546011819055600854600160a060020a0316600090815260208190526040902054600e546108ee92670de0b6b3a76400009102045b600082820161071a8482108015906108e25750838210155b8015156109fc57610002565b600854600160a060020a0316600090815260208190526040902055600254601154600e546109289291670de0b6b3a76400009102046108ca565b600255600854600160a060020a0316600090815260208190526040902054600d5461095391906108ca565b600854600160a060020a0316600090815260208190526040902055600254600d5461097e91906108ca565b6002556010805460ff191660011761ff001916610100179055604051600160a060020a033316907fad156d34337c07db4f9b140cea03fb74d167641e252f85c85ccf3b47f36c9c4990600090a2565b6013805460ff19166001179055565b6008805473ffffffffffffffffffffffffffffffffffffffff1916821790555b50565b6004600660005054600760005054036001014360076000505403600402046043020460640190505b90565b600654431080610a3b575060075443115b156109ff57506064610a27565b610af98383600160a060020a033316600090815260208190526040812054829010801590610a875750600160a060020a03831681526040812054808301115b15610d6257600160a060020a0333811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610267565b9050610267565b600c54600754014311610b1257610002565b60105462010000900460ff1615610b2857610002565b60105460ff161580610b425750601054610100900460ff16155b15610b4c57610002565b600854600160a060020a0316600090815260208190526040902054600f54601154610b839291670de0b6b3a76400009102046108ca565b600854600160a060020a0316600090815260208190526040902055600254600f54601154610bbd9291670de0b6b3a76400009102046108ca565b6002556010805462ff0000191662010000179055604051600160a060020a033316907f1c8a3821e439862f28669f7fbc210e74e947ebf0e947b591cc5a02e41003026590600090a2565b6013805460ff19169055565b600654431080610c24575060075443115b80610c3c5750600a54601254610c3a90346108ca565b115b80610c49575060135460ff165b15610c5357610002565b610c5f34610c85610455565b600160a060020a038716600090815260208190526040902054909150610ca090826108ca565b600082820261071a848314806108e2575083858304146108e2565b600160a060020a038716600090815260208190526040902055600254610cc690826108ca565b600255601254610cd690346108ca565b601255600854604051600160a060020a0391909116903490600081818185876185025a03f1925050501515610d0a57610002565b60408051348152602081018390528151600160a060020a038916927f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed928290030190a2505050505050565b505050565b50600061071a565b50600061026756

    Constructor Arguments (ABI-encoded and appended to the ByteCode above)
000000000000000000000000a5384627f6dcd3440298e2d8b0da9d5f0fcbcef70000000000000000000000003286652eacf7abf27383dd1a9218ba9d8169d15e00000000000000000000000000000000000000000000000000000000002382ac00000000000000000000000000000000000000000000000000000000002625ac

-----Decoded View---------------
Found 4 constructor arguments :
Arg [0] : 000000000000000000000000a5384627f6dcd3440298e2d8b0da9d5f0fcbcef7
Arg [1] : 0000000000000000000000003286652eacf7abf27383dd1a9218ba9d8169d15e
Arg [2] : 00000000000000000000000000000000000000000000000000000000002382ac
Arg [3] : 00000000000000000000000000000000000000000000000000000000002625ac

View All
Block Age txn Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward