Contract Overview | FirstBlood
Balance: 0.041001 Ether
Ether Value: $3.50 (@ $85.47/ETH)
Transactions: 81045 txns
Token Tracker: FirstBlood (ST)
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x7b174763483367307a177ecebf043697eb4673c7at txn 0x9b6767e5ebece4d04676efc3f1f479a27c59e92366cc1b902f16125739fb5de3
Token Balance:
 Latest 25 transactions from a total of 81045 transactions
(+1 PendingTxn)

TxHash Age From To Value [TxFee]
0xab1763a2bc9ec1a27aab23e6aa46ff5b138f09bccf32fdc1adbf094bb052f98e(pending)0xe47e255866bef8c9344542e84d48eaa40ef069b8  IN  0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70 Ether(Pending)
0x78c51379b4b9882d1378480e78c7ede37d29be093b72b38d325d2d6bb6579ff64 hrs 47 mins agoBittrex_1  IN   FirstBlood0 Ether0.0026356
0xc989afc71347e1986529205bd30bc7ffab096b4c638369a7ab35eebff3f1a9616 hrs 30 mins agoBittrex_1  IN   FirstBlood0 Ether0.0026388
0x2fcfc5608e166f65a8deca027f6285f15bc21c72ae57652b878316ac71aa506c6 hrs 34 mins agoOkex_1  IN   FirstBlood0 Ether0.00184716
0x77973204e443de76ec1a243fceac71fadc4c650f4c5b9c1215ea5948e19f17656 hrs 57 mins ago0x0f6aa2e9dba0eb886f6ba37a8875d03ee0e502a6  IN   FirstBlood0 Ether0.00011333296
0x458104f3852fa4f8070ae0a893e5cfe22a189493203f24da5fe34283e2d039137 hrs 26 mins ago0xff9afd44633ec37467cfbc250073b4d4c4ed020e  IN   FirstBlood0 Ether0.00010840544
0x26d579a12df12a242b48c341e269407e5e71471ebf81cf6ae13347a0833fffaf7 hrs 38 mins agoBittrex_1  IN   FirstBlood0 Ether0.0026356
0xdad653f2fec0f566ef237206fbd0e769b484217f02cc356f4ea6e38ad8f797307 hrs 46 mins ago0xafa69c0bd42cd27f224e622fe8ea638f141910ab  IN   FirstBlood0 Ether0.00010840544
0x685654d096fe29766152bdfc4fdee3c3b9b15bda1fed30b024d4031e034e78927 hrs 49 mins ago0xb02cc28553e3edc812194b7bd688ec294752e00d  IN   FirstBlood0 Ether0.00010840544
0x771aab7642a6a24b6957f8b5632087cc708f471b8a1c989c00b493f8d84a5b6c12 hrs 5 mins ago0x67e782ce99ffdeaf1bf5bc4e8b1b5ed93a16a40e  IN   FirstBlood0 Ether0.000289916
0x7fab32a4897ac52c85c1e346e7406dcfdfffa6afd72aa74489b20bc5bbee176116 hrs 18 mins ago0x9e6e058c06c7ceeb6090e8438fc722f7d34188a3  IN   FirstBlood0 Ether0.001548816
0xd857e7ba42d32a9c7f4f00596aa34ec9397f9ef1226a7ddf416b91b0ac4d0f5617 hrs 5 mins ago0x6485fc77be2186fc60feea38d0ef4331d8404b60  IN   FirstBlood0 Ether0.0014619312
0xdc97e1b0ccfe85ddbc40784fd621a95ef5d44e770213fb6525cb00ec24f2444d21 hrs 14 mins ago0x9f4bf50e7c9509a1c4a3b5ba79920bc95b25ea6e  IN   FirstBlood0 Ether0.001023647
0x402bcd8747984ec33e2063e76062b7d8e7e2eab99306f1ae64a2315e1b7694c121 hrs 15 mins ago0x9f4bf50e7c9509a1c4a3b5ba79920bc95b25ea6e  IN   FirstBlood0 Ether0.001548816
0xaa6796a422f77753dc41d0660858177acf293c92b4c940c0f5a428523b2af98f21 hrs 36 mins ago0x6485fc77be2186fc60feea38d0ef4331d8404b60  IN   FirstBlood0 Ether0.0014052672
0xbea48114c17adb304633239b34db66c7e6fffe9d5d64cbff41bee2c964ef5d1b22 hrs 48 mins agoBittrex_1  IN   FirstBlood0 Ether0.0018856
0x967e0565c9954d0ed18061a6f99c6697411a12665c096afcb0c107ef0dcc7e061 day 3 hrs agoBittrex_1  IN   FirstBlood0 Ether0.0026356
0x03791a580a04e7b3b2fa2fe1dedbb3743a3982f242ced569e66973ea45cb81631 day 6 hrs ago0x7feb6d0969dc3b8e872b7438a207c44f3d556cee  IN   FirstBlood0 Ether0.00037712
0xb4a71d6d849dbd8c4c38d10f73c42c82fc7bf4b3c7eba0480da8cb3da0162fee1 day 8 hrs ago0x7b04769917a48ada4c40b90b534471f94fb0452a  IN   FirstBlood0 Ether0.000113136
0x3e735113b39d87dead8dda66f13046e33697ccdc03c57843a3996337846f867f1 day 9 hrs agoOkex_1  IN   FirstBlood0 Ether0.00184716
0x37b0d399856839ce35d0d6209909522c849337adf3938253ebfd91d8f48c8e7c1 day 9 hrs ago0x884c090b7f8e305ac8de8aca371a52f3f01f974f  IN   FirstBlood0 Ether0.000196768
0x3e91b3ccd1c208d70e1a0bdb24db447e55b18d8b436233ef6f8c5b7555060ab61 day 10 hrs ago0x4154ea3ec7bab8b738b7b06a160241a1a4197818  IN   FirstBlood0 Ether0.000140927072
0x36febd38ee8cc9a0babc0532f31ad97d77cf0e832516c3b16ef2af0f747da9221 day 11 hrs ago0x6485fc77be2186fc60feea38d0ef4331d8404b60  IN   FirstBlood0 Ether0.001548816
0x028b379125ef8dd56d3ef11ea03f48a50371dcc49ea6f9235bdd5ddd9322f7041 day 13 hrs ago0xaeedce5b297351225ebff2bd5dbecfeccd2074e0  IN   FirstBlood0 Ether0.000426617
0xe3fd66156ccbcbe940a620f4ff86a11baf8067598791e4dc4e1f1271847c2e4d1 day 13 hrs ago0x7700f1ae1d5c92e2c2d58add0ce1e8c37c9bc858  IN   FirstBlood0 Ether0.000149802
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x8a89392af27ed588ef095192143532bd6a8815f0d072110612308c9f32e0dd6e2346771808 days 15 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70.01 Ether
0x656331405c6c06606e0625cd5b30aee9b63d734775699f09d3544e8bd0b275662327898811 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.026 Ether
0xcdf3dac8e37353cea709df5776f838c7e902b9e5f1ea4b78204761f2a388e84c2327830811 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x22992b3d6f24a8049c60c11e1e2cb0935d38a51fdff098e51a1dfa2b46839fd92327823811 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x327cdbd6688c5c3f45207bf9e6c9d4f7527e36efbc989de8a3e9c78069fc0c1a2327818811 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x6acc698ca05ad2335040401075b0a05edf4ed4975e46ad55341d7f1895a997bd2327532811 days 20 hrs ago0x1ca4a86bba124426507d1ef67ad271cc5a02820a0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc72 Ether
0x860a0a6de1e64f835a9d71f5fc9193ed989e8253a92d9ba5ba96626b7d5b76dc2327512811 days 20 hrs ago0x1ca4a86bba124426507d1ef67ad271cc5a02820a0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc74.689 Ether
0x4d3a3bc82c349bf2d3840151f434234230bd8e0af6df198bad276206089874af2327381811 days 21 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc71 Ether
0x269f15635aa5d4cc6a3d34bf62b5928001ecfa8024bc8fa7c97ca3a3c2c5bf422327281811 days 21 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc71 Ether
0xc0b3fce147ca08801dbb287c29a87a55fd67ed7c35dd3ad414106e1713f2b8392327256811 days 22 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc7500 Ether
0x30bd5b485c314faad4e9b823ca86eaf0d986bc71a885a0599f9d59b6d2bc7eea2327255811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0xf40e3e9f46295e9f474faf5fea9fe91fe2ec2f93040768104db945a657fe1d942327255811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x5c1ce2f41b22950584ed6adc8557cf7e237faa737c49ef143e57596e12f9d9bd2327251811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x3039c40b3072e4769c9afd2a835b3e5705413c6ddf840a713e047416ce2686df2327251811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef710 Ether
0x1f5c567dbe93d2ec0dbd5da36f1da2159ad3def17ad196441c697c42324f8b9f2327249811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef710.9 Ether
0x11b37badbf485cfd6174c4dffdbd09830c08a6146b902b83850d5e5e304161302327249811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7230 Ether
0x0e0baadc9923ed3a043d9e9f2d2f55d57573b06ef7da445b852df071cef4c63d2327249811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x0f883bcd00b54b9d3a26133d19034901cbbf9dac00acf08414e3bda45f3588772327248811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef774.7 Ether
0x3aba3ef2c050201273412ffb70bba0325f2906ff85fcd089d0010825b9d8b8082327248811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7121 Ether
0xcdcc70bba9a873627ce9eaa4287ad41b2d9aa47a24f2fa73939c9c066c68c0352327248811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef76 Ether
0x3fd3fdcdadef3a2f31ce61a3dfc51987c8eab6db2e090b9505cad8fb0b7359962327248811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef72.5 Ether
0xced4311be65b064fccf999ca7c6e4cdcc0a586538c9a92d1c6cc4ee2f3806c252327248811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7100 Ether
0xfafc122b63f5617685df7a131f88dc5e12c9c1fa4ba75da7176dabae33bf08012327248811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7100 Ether
0x97ae861827b8fc648de773980100587e817ac2f4732ab44e690a9a79dca37f692327243811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7690 Ether
0x9780c63678ace4a6a347a0b5b0d17bc47d19c0c28f984af913dfa902be1137332327243811 days 22 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7600 Ether
[ Download CSV Export  ] 



  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 is the last bytes of the Contract Creation Code above)
000000000000000000000000a5384627f6dcd3440298e2d8b0da9d5f0fcbcef70000000000000000000000003286652eacf7abf27383dd1a9218ba9d8169d15e00000000000000000000000000000000000000000000000000000000002382ac00000000000000000000000000000000000000000000000000000000002625ac

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000a5384627f6dcd3440298e2d8b0da9d5f0fcbcef7
Arg [1] : 0000000000000000000000003286652eacf7abf27383dd1a9218ba9d8169d15e
Arg [2] : 00000000000000000000000000000000000000000000000000000000002382ac
Arg [3] : 00000000000000000000000000000000000000000000000000000000002625ac


 

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