Sponsored Link:   SHIFT.cash - smart-contract based car title lending platform, 30 billion market, 35+ employees. Join NOW.
  Latest 25 txns from a total Of 63238 transactions View All

TxHash Age From To Value [TxFee]
0x99d9f420362189f81b556caef3a1870e0946089dcc1fc3c40dcc46e3f9ebc38f3 mins ago0x4423b511ae317a14f0a1bc6ebea33ff63f4db1cc  IN   FirstBlood0 Ether0.00151104
0x559bd6134a6397d1ada446745d3462610e1e74c0bd90b831d970cb89b44392683 mins agoBittrex  IN   FirstBlood0 Ether0.0018888
0xc7bc8d752648eb3fbc2db3050db07c15d066fbc29fca4d40e44d8a0a0e7fbe0713 mins ago0x4423b511ae317a14f0a1bc6ebea33ff63f4db1cc  IN   FirstBlood0 Ether0.00150848
0x2e3a2a4d5d0dd8953ff3c8e049e7d33f51a23d01bff4aa5c82bdc46660d57e9615 mins agoBittrex  IN   FirstBlood0 Ether0.001892
0x8deafad50d1b4cbfbc49d2710036e16c3e2afc7fff1b569f1601a45c8045e1fc21 mins agoBittrex  IN   FirstBlood0 Ether0.0026356
0x2d0df2d84554f8fb99da4daacb1f4f50b3dacbe2baa4afd5748d084528dc92e528 mins ago0xfe273b9f3c629d2b814679d0d0c84ceb0226f037  IN   FirstBlood0 Ether0.00105552
0x286a624c413d2256af008db0b3f4c62cfcda657e8414f68fd3cf48dac6e7cc6029 mins agoBittrex  IN   FirstBlood0 Ether0.0026356
0x3ac866155e564f798a848cddc291cac390bd17bdfc5f5129583858be33e6deca29 mins ago0x52ff147da77f871efbd1925343177e12e64cf921  IN   FirstBlood0 Ether0.001892
0x6efcafe19f86c128360e548bd68d7361af0dbad45b05512c96742416d0107be931 mins agoBittrex  IN   FirstBlood0 Ether0.0026324
0x1b60e219470a12c5ea032cf8ff62a261147c47864d88a16ec9feaedbf6acd6c531 mins agoBittrex  IN   FirstBlood0 Ether0.0026356
0x302b33a0e826b00ccb7044fc61f1f4a013ba4d8397fe2c1f365faea9cdb8f24545 mins agoBittrex  IN   FirstBlood0 Ether0.0026388
0x7e8888b1e1e806bb3b0e46ae13105fad0f2d575142d1cd52c942eaf1026f360b59 mins agoBittrex  IN   FirstBlood0 Ether0.0018888
0x5219cbceb69a1ff8b03b267b51e238a078887432dcaab182a2b3a2fd4248c3901 hr 16 mins agoBittrex  IN   FirstBlood0 Ether0.0018856
0x6964ff8ce1d9ec1c12ab0fe320ad8fa4d4c704949d5ac0b9b43387740e6f4b7e1 hr 18 mins agoBittrex  IN   FirstBlood0 Ether0.0026388
0xd6817b79730bffa502dca5644f898f81952d72dbace204cca53df15090820bf11 hr 22 mins agoBittrex  IN   FirstBlood0 Ether0.0026388
0x6540caccd867405d600c67c4f192f00fd1c8ef7f71bd2cd6c92158e34fb4ed4a1 hr 22 mins agoBittrex  IN   FirstBlood0 Ether0.0026388
0xa843a8feaf0dbf67e307efcec1dd4a3972db158835aa2af3fa8a346f8f3b66341 hr 22 mins ago0x4423b511ae317a14f0a1bc6ebea33ff63f4db1cc  IN   FirstBlood0 Ether0.00211104
0x0eceb6581ea62b097e849e935976d3731e158f606f904d0583944dddda34c5671 hr 27 mins ago0x4423b511ae317a14f0a1bc6ebea33ff63f4db1cc  IN   FirstBlood0 Ether0.00151104
0xacfbd0fb612aca5d4147c520e1efd5213a643a150ead371b88bc75e469dede391 hr 30 mins agoBittrex  IN   FirstBlood0 Ether0.0026388
0x6b1f85e8985c66e3143493f5b4e304d6a7c6625beb6d2d8e249f8ef12724c3431 hr 32 mins agoBittrex  IN   FirstBlood0 Ether0.0026356
0x5ef8a0b073c71c8b54f361dc7aa96864450e486d92f780e67b0afc916a27f2981 hr 34 mins ago0x59a5208b32e627891c389ebafc644145224006e8  IN   FirstBlood0 Ether0.000211104
0xa953dfcfe247f1192f1db7022fcfe0d505f76c0868edfb505ef38876496ca2131 hr 38 mins agoBittrex  IN   FirstBlood0 Ether0.0026388
0x2856d3b0c4101b152053a26c826f3e843c34a4bcbc2553e4344f87116219374b1 hr 41 mins ago0x4423b511ae317a14f0a1bc6ebea33ff63f4db1cc  IN   FirstBlood0 Ether0.00211104
0x3c7375bc1e349d426c5fc55cc60719a7fe9065a72eab4bb1a622b886151979651 hr 46 mins ago0x823affba99b9043feb5c3b9310efd1cbe7aa345c  IN   FirstBlood0 Ether0.00113328
0xa9a5b93e52b1aab3667141f10df0afbfb4f72e55dab2c6f7e6ddf754796b34791 hr 50 mins agoBittrex  IN   FirstBlood0 Ether0.0026388
[ 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
0x8a89392af27ed588ef095192143532bd6a8815f0d072110612308c9f32e0dd6e2346771513 days 13 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70.01 Ether
0x656331405c6c06606e0625cd5b30aee9b63d734775699f09d3544e8bd0b275662327898516 days 17 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.026 Ether
0xcdf3dac8e37353cea709df5776f838c7e902b9e5f1ea4b78204761f2a388e84c2327830516 days 17 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x22992b3d6f24a8049c60c11e1e2cb0935d38a51fdff098e51a1dfa2b46839fd92327823516 days 17 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x327cdbd6688c5c3f45207bf9e6c9d4f7527e36efbc989de8a3e9c78069fc0c1a2327818516 days 17 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef70.1 Ether
0x6acc698ca05ad2335040401075b0a05edf4ed4975e46ad55341d7f1895a997bd2327532516 days 18 hrs ago0x1ca4a86bba124426507d1ef67ad271cc5a02820a0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc72 Ether
0x860a0a6de1e64f835a9d71f5fc9193ed989e8253a92d9ba5ba96626b7d5b76dc2327512516 days 18 hrs ago0x1ca4a86bba124426507d1ef67ad271cc5a02820a0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc74.689 Ether
0x4d3a3bc82c349bf2d3840151f434234230bd8e0af6df198bad276206089874af2327381516 days 19 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc71 Ether
0x269f15635aa5d4cc6a3d34bf62b5928001ecfa8024bc8fa7c97ca3a3c2c5bf422327281516 days 19 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc71 Ether
0xc0b3fce147ca08801dbb287c29a87a55fd67ed7c35dd3ad414106e1713f2b8392327256516 days 19 hrs ago0xaa1a6e3e6ef20068f7f8d8c835d2d22fd51164440xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc7500 Ether
0x30bd5b485c314faad4e9b823ca86eaf0d986bc71a885a0599f9d59b6d2bc7eea2327255516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0xf40e3e9f46295e9f474faf5fea9fe91fe2ec2f93040768104db945a657fe1d942327255516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x5c1ce2f41b22950584ed6adc8557cf7e237faa737c49ef143e57596e12f9d9bd2327251516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x3039c40b3072e4769c9afd2a835b3e5705413c6ddf840a713e047416ce2686df2327251516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef710 Ether
0x1f5c567dbe93d2ec0dbd5da36f1da2159ad3def17ad196441c697c42324f8b9f2327249516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef710.9 Ether
0x11b37badbf485cfd6174c4dffdbd09830c08a6146b902b83850d5e5e304161302327249516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7230 Ether
0x0e0baadc9923ed3a043d9e9f2d2f55d57573b06ef7da445b852df071cef4c63d2327249516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef71 Ether
0x0f883bcd00b54b9d3a26133d19034901cbbf9dac00acf08414e3bda45f3588772327248516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef774.7 Ether
0x3aba3ef2c050201273412ffb70bba0325f2906ff85fcd089d0010825b9d8b8082327248516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7121 Ether
0xcdcc70bba9a873627ce9eaa4287ad41b2d9aa47a24f2fa73939c9c066c68c0352327248516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef76 Ether
0x3fd3fdcdadef3a2f31ce61a3dfc51987c8eab6db2e090b9505cad8fb0b7359962327248516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef72.5 Ether
0xced4311be65b064fccf999ca7c6e4cdcc0a586538c9a92d1c6cc4ee2f3806c252327248516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7100 Ether
0xfafc122b63f5617685df7a131f88dc5e12c9c1fa4ba75da7176dabae33bf08012327248516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7100 Ether
0x97ae861827b8fc648de773980100587e817ac2f4732ab44e690a9a79dca37f692327243516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7690 Ether
0x9780c63678ace4a6a347a0b5b0d17bc47d19c0c28f984af913dfa902be1137332327243516 days 19 hrs ago0xaf30d2a7e90d7dc361c8c4585e9bb7d2f6f15bc70xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7600 Ether
[ Download CSV Export  ] 
Contract Name: FirstBloodToken
Compiler Version: v0.3.6-nightly.2016.8.15+commit.868a167
Optimization Enabled: Yes
Runs (Optimiser):  200



  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

-----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
Make sure to use the "downvote" button for any spammy posts, and the "upvote" for interesting conversations.