Contract 0xAf30D2a7E90d7DC361c8C4585e9BB7D2F6f15bc7 5

 
Txn Hash Method
Block
From
To
Value
0x5d79104755f97669c86ae49d65683a8ad9712daa38b0d9f46127705078d22cc8Transfer(pending)2021-09-19 16:03:524 days 20 hrs ago0x9c045d42a99c0d73f7d1c2a04f7113dbc0e7f116 IN FirstBlood0 Ether(Pending)(Pending)
0xf131804f78d2bb1cfd9b67713d6850c7838e8cd2b79a01408abe7e207da383feTransfer132788772021-09-23 0:49:011 day 11 hrs ago0x5a1bbbc5fc5dfec16f31509c50c15393ca4923e4 IN  FirstBlood0 Ether0.016051332311
0x2713b60d211411e79b9e94f1aa42b877f645861e0c254d7a5f5ae733e6fdca62Transfer132639912021-09-20 17:31:323 days 18 hrs ago0x4cfba0984b92f8fe79f58d77bc8696497053dee4 IN  FirstBlood0 Ether0.007137293146 126.520831493
0x1dd54da939c85cd4478ba89ebf90f06e89b326a3af4abe7c7ae5c942ec0eba09Approve132507902021-09-18 16:34:275 days 19 hrs ago0x6205129f5dace4a9ed16ce057126f8e0a41ff713 IN  FirstBlood0 Ether0.002917370156 62.910964491
0xee615456c9a2513f49fe6135ea9c84b00f5cbaf808262017912486b34357f006Transfer132475532021-09-18 4:33:176 days 7 hrs ago0x791854ec7bad37f93fa20b2632aa70ecd1cd73dc IN  FirstBlood0 Ether0.003209012036 62.175696273
0x768a4ab21508869c946f89160ddae40c5873a4763ee3bad1589a105c6c0967f8Transfer132459412021-09-17 22:29:406 days 13 hrs agoHitBTC 2 IN  FirstBlood0 Ether0.00263224417146.661068062
0x133c384ba4951b05b0578c2d5b383237dda492a594799ba07c265e12e8fcf4d2Transfer132459402021-09-17 22:29:376 days 13 hrs agoHitBTC 3 IN  FirstBlood0 Ether0.00215013164954.710728993
0xfa7e6d41793a703400c45e7d0c3448703d13ef6d52028464ea70d371b02f973dTransfer132403752021-09-17 1:45:417 days 10 hrs ago0xb60c53f41300974aae4c8657532fa6c8cf2c3ebd IN  FirstBlood0 Ether0.003147959344 60.992779666
0x38237808a656e7c5fb632a9adb53618a638d5c4fbc7211654bf9c80e00e72a03Approve132230502021-09-14 9:36:4910 days 2 hrs ago0x2fa00c86a4dec3f8cb410e7361c8084de5a04053 IN  FirstBlood0 Ether0.002088727216 45.041882478
0xa44127afdeef188cbc481376bdd5480845ac9addbd01552644179af2117e9fdaTransfer131952322021-09-10 2:09:2614 days 10 hrs ago0x918b22b46f2e9af11ecc83f3ebd1adb1b45e1a04 IN  FirstBlood0 Ether0.008422785809163.194330962
0x8c94cd47528092307a41fb7d979456b8fe1247534e537bfdecec194a14f30f96Approve131910402021-09-09 10:38:4915 days 1 hr ago0x296d0ab358e384038d9a7d5f0baacdd1880628ee IN  FirstBlood0 Ether0.004473607479 96.470089907
0x55dfb14770b8a5293c906abb24cd0abbe520f8e8b15573210c8905eb1eb40234Transfer131908102021-09-09 9:47:4115 days 2 hrs ago0x70b75417cad467009c524ba6e241e8ac22435a4a IN  FirstBlood0 Ether0.006018965278116.64661393
0xf72117f3eb90ecd4a7eb3423a4d1b4b7f5e4ee31b0031895815ca0b6dce76bdfTransfer131823622021-09-08 2:22:4516 days 10 hrs ago0xebe7d583f5b6efcd83b29acf4eddb548aab221bd IN  FirstBlood0 Ether0.013133156635254.459362855
0x9354c751b6405ec4f9562bbc04ca150f4200c7c7aa5989f519c724cf3362e53eTransfer131808052021-09-07 20:26:1116 days 15 hrs ago0x09e33f0a27c1e843d8927d4c31f2aae6552a2c79 IN  FirstBlood0 Ether0.004549293121143.402254503
0x25999a60344391caace3afba977a401aa76edddd61e90067ba5055a210fd2f25Transfer131743972021-09-06 20:43:5817 days 15 hrs ago0x8b8712f6df57497fe895d6ebd91609a89892e5d1 IN  FirstBlood0 Ether0.005625456163
0xd2ebaa82937b5a5c2dcf691be2a0b647656d3d70a9e0a331b8193a2117454111Transfer131743912021-09-06 20:42:2817 days 15 hrs ago0x8b8712f6df57497fe895d6ebd91609a89892e5d1 IN  FirstBlood0 Ether0.006394164163
0x707102936d826c006abeb2c2d5e759c2bc37620eba7f9987c77a75b6a9a66638Transfer131743222021-09-06 20:27:5517 days 15 hrs ago0x8b8712f6df57497fe895d6ebd91609a89892e5d1 IN  FirstBlood0 Ether0.009588170
0x8295fa7463b36a98bfa5a8ea59b0746cb59b480ddc43660a4493a3dbcd5b2e26Transfer131658582021-09-05 12:56:2918 days 23 hrs ago0x37b4ff460bb5b94501e835d0bae734b26a935451 IN  FirstBlood0 Ether0.00462219233589.577370843
0x997a636a0f5f69373248d21a61483e2a539233ba4fe2df87f79d86b5cc7628b1Transfer131574862021-09-04 6:03:5720 days 6 hrs ago0x95a90b21e02ed4379734132228d56aa734b88566 IN  FirstBlood0 Ether0.006877647547133.287743162
0xbf1fa3dcdd919b729a23acf681856d6494c7d54ce0cf11e13ad494ada9e5564aTransfer131477632021-09-02 17:56:4021 days 18 hrs ago0x78d9c6e761aa73b4375b023661135311ce150bbd IN  FirstBlood0 Ether0.004354395691110.798872552
0xccd9c973de0ee1e5d4d3ef9f58fbdf685df94690ca152e8660d9117519659d87Transfer131340182021-08-31 15:10:0623 days 21 hrs ago0x06318f48f72c8b6abf0ca79a6b20752ad45eb64d IN  FirstBlood0 Ether0.011973984232
0xd60be6bf3584b3c6899f3c0185ed84fd6e0bb3b742fbe226019d58e692a78ccbTransfer131158542021-08-28 19:37:3826 days 16 hrs ago0xaa5159abf42d69f6f74d544d02209c97ae9d4911 IN  FirstBlood0 Ether0.00508238190590.132331442
0x43cef6b02372b7759bf2e8c648d8ad1996393a99c8058c02426d2e0d2108fd65Transfer131098322021-08-27 21:20:5927 days 15 hrs ago0x71bc89fb1c7e940a2f477a757b1eca3820136765 IN  FirstBlood0 Ether0.008215025832159.168910967
0x6c0da06195991e9dd54344dee0fae257b8606367db86c7054bdd7f013aa92290Transfer131068222021-08-27 9:56:2028 days 2 hrs ago0xe9fdc7cf82c3c81cce894e29d3c8336d0247531d IN  FirstBlood0 Ether0.00315259353261.082568629
0xfc94f2907e41a6423848ceba274b21cab465844c3e9e7f59662d0ef9adfa9298Approve130974002021-08-25 23:12:5829 days 13 hrs agoENS Name mbz2000.eth IN  FirstBlood0 Ether0.0041519790
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8a89392af27ed588ef095192143532bd6a8815f0d072110612308c9f32e0dd6e23467712016-09-29 6:07:041821 days 6 hrs ago ReplaySafeSplit FirstBlood0.01 Ether
0x656331405c6c06606e0625cd5b30aee9b63d734775699f09d3544e8bd0b2756623278982016-09-26 2:38:301824 days 9 hrs ago FirstBlood FirstBlood: MultiSig0.026 Ether
0xcdf3dac8e37353cea709df5776f838c7e902b9e5f1ea4b78204761f2a388e84c23278302016-09-26 2:23:241824 days 10 hrs ago FirstBlood FirstBlood: MultiSig0.1 Ether
0x22992b3d6f24a8049c60c11e1e2cb0935d38a51fdff098e51a1dfa2b46839fd923278232016-09-26 2:21:571824 days 10 hrs ago FirstBlood FirstBlood: MultiSig0.1 Ether
0x327cdbd6688c5c3f45207bf9e6c9d4f7527e36efbc989de8a3e9c78069fc0c1a23278182016-09-26 2:21:071824 days 10 hrs ago FirstBlood FirstBlood: MultiSig0.1 Ether
0x6acc698ca05ad2335040401075b0a05edf4ed4975e46ad55341d7f1895a997bd23275322016-09-26 1:13:461824 days 11 hrs ago 0x1ca4a86bba124426507d1ef67ad271cc5a02820a FirstBlood2 Ether
0x860a0a6de1e64f835a9d71f5fc9193ed989e8253a92d9ba5ba96626b7d5b76dc23275122016-09-26 1:08:491824 days 11 hrs ago 0x1ca4a86bba124426507d1ef67ad271cc5a02820a FirstBlood4.689 Ether
0x4d3a3bc82c349bf2d3840151f434234230bd8e0af6df198bad276206089874af23273812016-09-26 0:35:351824 days 11 hrs ago ReplaySafeSplit FirstBlood1 Ether
0x269f15635aa5d4cc6a3d34bf62b5928001ecfa8024bc8fa7c97ca3a3c2c5bf4223272812016-09-26 0:10:461824 days 12 hrs ago ReplaySafeSplit FirstBlood1 Ether
0xc0b3fce147ca08801dbb287c29a87a55fd67ed7c35dd3ad414106e1713f2b83923272562016-09-26 0:04:481824 days 12 hrs ago ReplaySafeSplit FirstBlood500 Ether
0x30bd5b485c314faad4e9b823ca86eaf0d986bc71a885a0599f9d59b6d2bc7eea23272552016-09-26 0:04:211824 days 12 hrs ago FirstBlood FirstBlood: MultiSig1 Ether
0xf40e3e9f46295e9f474faf5fea9fe91fe2ec2f93040768104db945a657fe1d9423272552016-09-26 0:04:211824 days 12 hrs ago FirstBlood FirstBlood: MultiSig1 Ether
0x5c1ce2f41b22950584ed6adc8557cf7e237faa737c49ef143e57596e12f9d9bd23272512016-09-26 0:03:291824 days 12 hrs ago FirstBlood FirstBlood: MultiSig1 Ether
0x3039c40b3072e4769c9afd2a835b3e5705413c6ddf840a713e047416ce2686df23272512016-09-26 0:03:291824 days 12 hrs ago FirstBlood FirstBlood: MultiSig10 Ether
0x1f5c567dbe93d2ec0dbd5da36f1da2159ad3def17ad196441c697c42324f8b9f23272492016-09-26 0:02:381824 days 12 hrs ago FirstBlood FirstBlood: MultiSig10.9 Ether
0x11b37badbf485cfd6174c4dffdbd09830c08a6146b902b83850d5e5e3041613023272492016-09-26 0:02:381824 days 12 hrs ago FirstBlood FirstBlood: MultiSig230 Ether
0x0e0baadc9923ed3a043d9e9f2d2f55d57573b06ef7da445b852df071cef4c63d23272492016-09-26 0:02:381824 days 12 hrs ago FirstBlood FirstBlood: MultiSig1 Ether
0x0f883bcd00b54b9d3a26133d19034901cbbf9dac00acf08414e3bda45f35887723272482016-09-26 0:02:361824 days 12 hrs ago FirstBlood FirstBlood: MultiSig74.7 Ether
0x3aba3ef2c050201273412ffb70bba0325f2906ff85fcd089d0010825b9d8b80823272482016-09-26 0:02:361824 days 12 hrs ago FirstBlood FirstBlood: MultiSig121 Ether
0xcdcc70bba9a873627ce9eaa4287ad41b2d9aa47a24f2fa73939c9c066c68c03523272482016-09-26 0:02:361824 days 12 hrs ago FirstBlood FirstBlood: MultiSig6 Ether
0x3fd3fdcdadef3a2f31ce61a3dfc51987c8eab6db2e090b9505cad8fb0b73599623272482016-09-26 0:02:361824 days 12 hrs ago FirstBlood FirstBlood: MultiSig2.5 Ether
0xced4311be65b064fccf999ca7c6e4cdcc0a586538c9a92d1c6cc4ee2f3806c2523272482016-09-26 0:02:361824 days 12 hrs ago FirstBlood FirstBlood: MultiSig100 Ether
0xfafc122b63f5617685df7a131f88dc5e12c9c1fa4ba75da7176dabae33bf080123272482016-09-26 0:02:361824 days 12 hrs ago FirstBlood FirstBlood: MultiSig100 Ether
0x97ae861827b8fc648de773980100587e817ac2f4732ab44e690a9a79dca37f6923272432016-09-26 0:01:091824 days 12 hrs ago FirstBlood FirstBlood: MultiSig690 Ether
0x9780c63678ace4a6a347a0b5b0d17bc47d19c0c28f984af913dfa902be11373323272432016-09-26 0:01:091824 days 12 hrs ago FirstBlood FirstBlood: MultiSig600 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FirstBloodToken

Compiler Version
v0.3.6-nightly.2016.8.15+commit.868a167

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2016-09-24
*/

/**
 * 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 Security Audit

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"}]

60a060405260106060527f4669727374426c6f6f6420546f6b656e000000000000000000000000000000006080526003805460008290527f4669727374426c6f6f6420546f6b656e0000000000000000000000000000002082556100b5907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b602060026001841615610100026000190190931692909204601f01919091048101905b8082111561014857600081556001016100a1565b505060408051808201909152600381527f31535400000000000000000000000000000000000000000000000000000000006020918201908152600480546000829052915160ff191660061781559161014c9160026001821615610100026000190190911604601f01047f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908101906100a1565b5090565b50506012600581905560088054600160a060020a0319908116909155600980549091169055696288ab14061109e40000600a556205a66d600b5562225f1b600c556a0211654585005212800000600d5566b1a2bc2ec50000600e5567016345785d8a0000600f556010805462ffffff191690556000601181905590556013805460ff19169055604051608080610faf8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190505060088054600160a060020a0319908116861790915560098054909116841790556006829055600781905550505050610d6a806102456000396000f36060604052361561018a5760e060020a600035046306fdde038114610192578063083c6323146101f0578063095ea7b3146101f957806318160ddd1461026d5780631bc59aa614610276578063238ac9331461028257806323b872dd146102945780632af7ceff146102d4578063313ce5671461030057806344b499581461030957806348cd4cb1146103125780634a8b53891461031b5780634d853ee51461033b5780635ed7ca5b1461034d57806370a082311461036d5780637228b9db14610392578063771d9d051461039b578063824338bd146103ac57806383e811a6146103b557806393c32e06146103be57806395d89b41146103e157806399d22e481461043f578063a035b1fe14610451578063a9059cbb1461047b578063b9b8af0b146104b8578063bcfcb03e146104c4578063c0f496ac146104e4578063c24fe21b146104ed578063c4fc3a3b146104f6578063cb3e64fd146104ff578063dd62ed3e1461051f578063dda44b1014610553578063e5fe4f3114610610578063f6b9d05d14610628575b610631610002565b6040805160038054602060026001831615610100026000190190921691909104601f8101829004820284018201909452838352610633939083018282801561070f5780601f106106e45761010080835404028352916020019161070f565b6106a160075481565b6106b3600435602435600160a060020a03338116600081815260016020908152604080832094871680845294825280832086905580518681529051929493927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060015b92915050565b6106a160025481565b6106b360105460ff1681565b6106c7600954600160a060020a031681565b6106b3600435602435604435600754600b546000910143118015906102ca5750600854600160a060020a03908116339190911614155b1561072157610002565b6106a160043560065460009082108015906102f3575060065460fa0182105b15610820575060aa61038d565b6106a160055481565b6106a160125481565b6106a160065481565b610631600854600160a060020a0390811633919091161461086357610002565b6106c7600854600160a060020a031681565b610631600854600160a060020a039081163391909116146109cd57610002565b6106a1600435600160a060020a0381166000908152602081905260409020545b919050565b6106a1600a5481565b6106b3601054610100900460ff1681565b6106a1600f5481565b6106a1600c5481565b610631600435600854600160a060020a039081163391909116146109dc57610002565b6040805160048054602060026001831615610100026000190190921691909104601f8101829004820284018201909452838352610633939083018282801561070f5780601f106106e45761010080835404028352916020019161070f565b6106b360105462010000900460ff1681565b6106a15b600654600090431080159061046e575060065460fa0143105b15610a2a575060aa610a27565b6106b3600435602435600754600b546000910143118015906104ae5750600854600160a060020a03908116339190911614155b15610a4857610002565b6106b360135460ff1681565b610631600854600160a060020a03908116339190911614610b0057610002565b6106a1600e5481565b6106a1600b5481565b6106a160115481565b610631600854600160a060020a03908116339190911614610c0757610002565b6106a1600435602435600160a060020a03828116600090815260016020908152604080832093851683529290522054610267565b6106316004356024356044356064355b600060006002336040518082600160a060020a03166c010000000000000000000000000281526014019150506020604051808303816000866161da5a03f11561000257505060408051805160095460ff8916602084810191909152838501899052606084018890529351919550600160a060020a0316926001926080818101939182900301816000866161da5a03f11561000257505060405151600160a060020a031614610c1357610002565b610631600435602435604435610d5533848484610563565b6106a1600d5481565b005b60405180806020018281038252838181518152602001915080519060200190808383829060006004602084601f0104600302600f01f150905090810190601f1680156106935780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60408051918252519081900360200190f35b604080519115158252519081900360200190f35b60408051600160a060020a03929092168252519081900360200190f35b820191906000526020600020905b8154815290600101906020018083116106f257829003601f168201915b505050505081565b90505b9392505050565b610717848484600160a060020a03831660009081526020819052604081205482901080159061076e5750600160209081526040808320600160a060020a0333168452909152812054829010155b80156107935750600160a060020a038316600090815260208190526040902054808301115b15610d5a57600160a060020a038381166000818152602081815260408083208054880190558885168084528184208054899003905560018352818420339690961684529482529182902080548790039055815186815291519293927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600161071a565b600654821080610831575060075482115b1561083e5750606461038d565b506007546006546004908203600101918390038102919091046043020460640161038d565b600754431161087157610002565b60105460ff16806108895750601054610100900460ff165b1561089357610002565b6002546011819055600854600160a060020a0316600090815260208190526040902054600e546108ee92670de0b6b3a76400009102045b600082820161071a8482108015906108e25750838210155b8015156109fc57610002565b600854600160a060020a0316600090815260208190526040902055600254601154600e546109289291670de0b6b3a76400009102046108ca565b600255600854600160a060020a0316600090815260208190526040902054600d5461095391906108ca565b600854600160a060020a0316600090815260208190526040902055600254600d5461097e91906108ca565b6002556010805460ff191660011761ff001916610100179055604051600160a060020a033316907fad156d34337c07db4f9b140cea03fb74d167641e252f85c85ccf3b47f36c9c4990600090a2565b6013805460ff19166001179055565b6008805473ffffffffffffffffffffffffffffffffffffffff1916821790555b50565b6004600660005054600760005054036001014360076000505403600402046043020460640190505b90565b600654431080610a3b575060075443115b156109ff57506064610a27565b610af98383600160a060020a033316600090815260208190526040812054829010801590610a875750600160a060020a03831681526040812054808301115b15610d6257600160a060020a0333811660008181526020818152604080832080548890039055938716808352918490208054870190558351868152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3506001610267565b9050610267565b600c54600754014311610b1257610002565b60105462010000900460ff1615610b2857610002565b60105460ff161580610b425750601054610100900460ff16155b15610b4c57610002565b600854600160a060020a0316600090815260208190526040902054600f54601154610b839291670de0b6b3a76400009102046108ca565b600854600160a060020a0316600090815260208190526040902055600254600f54601154610bbd9291670de0b6b3a76400009102046108ca565b6002556010805462ff0000191662010000179055604051600160a060020a033316907f1c8a3821e439862f28669f7fbc210e74e947ebf0e947b591cc5a02e41003026590600090a2565b6013805460ff19169055565b600654431080610c24575060075443115b80610c3c5750600a54601254610c3a90346108ca565b115b80610c49575060135460ff165b15610c5357610002565b610c5f34610c85610455565b600160a060020a038716600090815260208190526040902054909150610ca090826108ca565b600082820261071a848314806108e2575083858304146108e2565b600160a060020a038716600090815260208190526040902055600254610cc690826108ca565b600255601254610cd690346108ca565b601255600854604051600160a060020a0391909116903490600081818185876185025a03f1925050501515610d0a57610002565b60408051348152602081018390528151600160a060020a038916927f1cbc5ab135991bd2b6a4b034a04aa2aa086dac1371cb9b16b8b5e2ed6b036bed928290030190a2505050505050565b505050565b50600061071a565b50600061026756

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

000000000000000000000000a5384627f6dcd3440298e2d8b0da9d5f0fcbcef70000000000000000000000003286652eacf7abf27383dd1a9218ba9d8169d15e00000000000000000000000000000000000000000000000000000000002382ac00000000000000000000000000000000000000000000000000000000002625ac

-----Decoded View---------------
Arg [0] : founderInput (address): 0xa5384627f6dcd3440298e2d8b0da9d5f0fcbcef7
Arg [1] : signerInput (address): 0x3286652eacf7abf27383dd1a9218ba9d8169d15e
Arg [2] : startBlockInput (uint256): 2327212
Arg [3] : endBlockInput (uint256): 2500012

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


Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.