Sponsored Link:   Alt.Estate - ERC20 for Real Estate. Live Prototype in Japan, USA, EU.Buy ALT tokens. Endorsed by partners of PWC, Knight Frank.
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 983 txns
 Latest 25 txns from a total Of 983 transactions
View All

TxHash Age From To Value [TxFee]
0x7f22255a16be3fbfa1f1191dc34dcf960641e982ce22a5192e546c06b6a62906155 days 5 hrs ago0x394d1dc507979d36cc729a3bd8cf735757300e48  IN   0x3cd4351f3c962f871024efef2922ae39896e47610.01 Ether0.01
0x6a064acdc3658e1da19c7376d32dabbb8ace4fa66d967a3e7efc84cd6a4b15b6155 days 6 hrs ago0x394d1dc507979d36cc729a3bd8cf735757300e48  IN   0x3cd4351f3c962f871024efef2922ae39896e47610.001 Ether0.001
0x6ba580de92ad5693455ead61c7083a218429fd92d3b38e7f7ce4e848fa2978b4357 days 20 hrs ago0xc774aeb7509ff34533c6dcd9c8d12e016c1f1519  IN   0x3cd4351f3c962f871024efef2922ae39896e47610.001 Ether0.00625
0xede626c3cdda542bfefb6d052bf905005aaeb40e0c263ee5157247cacdd11586378 days 4 hrs ago0x29f20f99518e14b14000e2761bdfed88682a6803  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.005
0xa29a32428b87550cc94703942b6e3fac810147ce54acedb6a21d7696ebfb58d2387 days 18 hrs ago0xcdc16884fa6ec821dea8883e441972b581c6829f  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.00296806
0x2d43b9b6287d74e50c5a1105f42f67c733b41407b6fce12db6c9960af62feb68388 days 2 hrs ago0xa002ae83909a0913ff1ee9429173403444f576e3  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.00296806
0x3e3e7d885f83ee68776b4aecfae0ad66cf6e65d7621805a3dbdf110edd13e8bb388 days 2 hrs ago0xab056397b8f2a7e8d95381465d0ada221e096d79  IN   0x3cd4351f3c962f871024efef2922ae39896e47610.20475 Ether0.003116463
0xca53b69e673df6817dc99d46efef759d56d12c44a674cd149762d2d78f16ba32388 days 2 hrs ago0xa34369c8e3265dff5b1fe5a231061828058ccbee  IN   0x3cd4351f3c962f871024efef2922ae39896e47619.8 Ether0.00196376
0x1e6d5615064461b2e7a4a9e96639680b9a27f96902f6a6417c6fe987db855c34388 days 2 hrs ago0xa34369c8e3265dff5b1fe5a231061828058ccbee  IN   0x3cd4351f3c962f871024efef2922ae39896e47611.665 Ether0.00296806
0x9e22c1c9ae637113a22180e05728024e1778221f988c54b99861243c870734e8388 days 3 hrs ago0x35538f5742ff739e3622f29db1134a166e20c5f5  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.00296806
0x2f1bdfac1ddba4728bf9c0cc242cf3ff2a10760cc4a12bec0e049d2964580935388 days 3 hrs ago0x35538f5742ff739e3622f29db1134a166e20c5f5  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.005
0x7983b74d9136fa6d558e075130a82e00354c83882db9922931ec37de97cc188e388 days 6 hrs ago0x3cab307fb25619cdbfb8365a99210ae8139b38cf  IN   0x3cd4351f3c962f871024efef2922ae39896e47611.5 Ether0.00296806
0x526258c214ba4b3e4e5fb2412fed0ab5a261de514ae622615d408a3d74bcfc72388 days 6 hrs ago0x576722ddd7cc64783b220b26ffae8fc5afde532f  IN   0x3cd4351f3c962f871024efef2922ae39896e47610.960094 Ether0.00296806
0xc806a0279ff7521d66d08d4d7cc21319aa73ef05faad750e0001e66f7c7d5434388 days 7 hrs ago0x0a226d40c1d0b04dd6b12cc10a0e6accd73e940f  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.002077642
0x004c66853fc16fc64bc84b03d1c9c74a39a2f5295b52ee8dacbf7a19ef450d9f388 days 8 hrs ago0x9b36722426e2db63830767f86355de3a0b14ec46  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.005
0xec27c83d7b093a5293e525eca8cd3b159525f58032209e9091e2bb8b185eafbd388 days 10 hrs ago0x3941600ea15ca2b53668a1a01ff9d6c4f75c2a34  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.003116463
0xf4d98ec44290a24a0477b86fa0a891412cc442cd43fe13dce99f0a23a1bd15c5388 days 10 hrs ago0x3941600ea15ca2b53668a1a01ff9d6c4f75c2a34  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.000525
0x2cbf4c2cb409ed697718a52af2cb957e2aa1c3a928dadb4373418631071ae818388 days 14 hrs ago0x024cd921773ac699abbaf0e8f8e75c13fdc43d35  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.003116463
0xdf4a2ffbcc6742a8dabc43777b9e6975d716c2def397f1a0f917c0db0d39e296388 days 16 hrs ago0x00f95a91cff1166b8c272b6c23585075962ebd93  IN   0x3cd4351f3c962f871024efef2922ae39896e47610.24475 Ether0.003116463
0x757612362ff5dccb3564ff52111b0ae4da3a65f4edd62e1c132d2816f2934ff7388 days 16 hrs ago0xd99daecc0350d8687bc0c4b888ac6ce14ba41313  IN   0x3cd4351f3c962f871024efef2922ae39896e47611 Ether0.003116463
0x5f5ddd8c527afa05bdcc70d3e756efd49177d19f7d41b7da46dd034872aa2e97388 days 16 hrs ago0xd663be6b87a992c5245f054d32c7f5e99f5acc47  IN   0x3cd4351f3c962f871024efef2922ae39896e476132 Ether0.003116463
0x9c9b20c2636585f51f3716a02276ca831cbf6ee35d80d502ff4a2b7cb602bec9388 days 17 hrs ago0x7875e33ba9d0d0a22e643eb09d3761153eeed8c3  IN   0x3cd4351f3c962f871024efef2922ae39896e47610.187184916881367 Ether0.003116463
0x51e1b26e330641ea652d995447d64f8039490fcf80d8f235b79da6ba2fba9099388 days 18 hrs ago0x508aa872cfbee17cf230de4d267bedd2454bcc0b  IN   0x3cd4351f3c962f871024efef2922ae39896e47611.026421544 Ether0.003116463
0x7c9345fe8234ce70988258b9f1539f33a12ee604daabdab040a8db37e23fc59b388 days 19 hrs ago0xad69515de0c75bbee0d13e14b157d735b4d41a18  IN   0x3cd4351f3c962f871024efef2922ae39896e47610.7 Ether0.003116463
0xdc0476584755ee4c0522fc79beb9c89b527f9fd6c5eb0f338bf3cf22681a6ee4388 days 20 hrs ago0x057d516978a9b17ef53b44bae182540d39a1fe80  IN   0x3cd4351f3c962f871024efef2922ae39896e476119 Ether0.00196376
[ 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
0xa29a32428b87550cc94703942b6e3fac810147ce54acedb6a21d7696ebfb58d23644700387 days 18 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1 Ether
0x2d43b9b6287d74e50c5a1105f42f67c733b41407b6fce12db6c9960af62feb683643026388 days 2 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1 Ether
0x3e3e7d885f83ee68776b4aecfae0ad66cf6e65d7621805a3dbdf110edd13e8bb3642931388 days 2 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b0.20475 Ether
0xca53b69e673df6817dc99d46efef759d56d12c44a674cd149762d2d78f16ba323642899388 days 2 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b9.8 Ether
0x1e6d5615064461b2e7a4a9e96639680b9a27f96902f6a6417c6fe987db855c343642876388 days 2 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1.665 Ether
0x9e22c1c9ae637113a22180e05728024e1778221f988c54b99861243c870734e83642820388 days 3 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1 Ether
0x7983b74d9136fa6d558e075130a82e00354c83882db9922931ec37de97cc188e3642184388 days 6 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1.5 Ether
0x526258c214ba4b3e4e5fb2412fed0ab5a261de514ae622615d408a3d74bcfc723641976388 days 6 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b0.960094 Ether
0xc806a0279ff7521d66d08d4d7cc21319aa73ef05faad750e0001e66f7c7d54343641753388 days 7 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1 Ether
0xec27c83d7b093a5293e525eca8cd3b159525f58032209e9091e2bb8b185eafbd3641197388 days 10 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1 Ether
0x2cbf4c2cb409ed697718a52af2cb957e2aa1c3a928dadb4373418631071ae8183640225388 days 14 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1 Ether
0xdf4a2ffbcc6742a8dabc43777b9e6975d716c2def397f1a0f917c0db0d39e2963639765388 days 16 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b0.24475 Ether
0x757612362ff5dccb3564ff52111b0ae4da3a65f4edd62e1c132d2816f2934ff73639723388 days 16 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1 Ether
0x5f5ddd8c527afa05bdcc70d3e756efd49177d19f7d41b7da46dd034872aa2e973639686388 days 16 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b32 Ether
0x9c9b20c2636585f51f3716a02276ca831cbf6ee35d80d502ff4a2b7cb602bec93639337388 days 17 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b0.187184916881367191 Ether
0x51e1b26e330641ea652d995447d64f8039490fcf80d8f235b79da6ba2fba90993639331388 days 18 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1.026421544 Ether
0x7c9345fe8234ce70988258b9f1539f33a12ee604daabdab040a8db37e23fc59b3638906388 days 19 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b0.7 Ether
0xdc0476584755ee4c0522fc79beb9c89b527f9fd6c5eb0f338bf3cf22681a6ee43638723388 days 20 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b19 Ether
0x9eafcf62ff16f7691e791901112ba8b3fd4f7ff8c6a439f2ce414605e81386c43638176388 days 22 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b0.5 Ether
0x8fac32d0e995fba3be4494fd4b597c5e796a732b23d868a270429f6329eb7c0f3638099388 days 23 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1.5 Ether
0xdc05f3a90ea44915e6e4b6162f868b15d1e9163fc1c276e8e115f5dcb2638c1d3637734389 days 55 mins ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b8.5 Ether
0x693483ff6cc5d5f1fa859aaeaf34630340f5fcbe7fb671b4636d91f40f012d7e3637716389 days 59 mins ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b1 Ether
0x33d04b77f99fd61a564d7d718d4c6707f46550a9121528d0386b2775add4700f3637405389 days 2 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b4 Ether
0xcb5a0098cb1185f8bc2be7154cb12195fe4a209f3da384f10a18487416a2b8f03636573389 days 5 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b3.924 Ether
0xbbdbfcfd98ce316ab8bace5c37e6d16c1cf3d72419df54cbfd18c0afc56676353636391389 days 6 hrs ago0x3cd4351f3c962f871024efef2922ae39896e47610xe8baf9df0ded92c5f28aab97f13936e7716a4a5b2 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity), DelegateCallReturnValue (low-severity), ECRecoverMalformedInput (medium-severity), SkipEmptyStringLiteral (low-severity), ConstantOptimizerSubtraction (low-severity) Solidity compiler bugs.

Contract Source Code Verified (Exact match)
Contract Name: MintedTokenCappedCrowdsale
Compiler Version: v0.4.8+commit.60cc1668
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

/*
 * ERC20 interface
 * see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 {
  uint public totalSupply;
  function balanceOf(address who) constant returns (uint);
  function allowance(address owner, address spender) constant returns (uint);

  function transfer(address to, uint value) returns (bool ok);
  function transferFrom(address from, address to, uint value) returns (bool ok);
  function approve(address spender, uint value) returns (bool ok);
  event Transfer(address indexed from, address indexed to, uint value);
  event Approval(address indexed owner, address indexed spender, uint value);
}


/**
 * Safe unsigned safe math.
 *
 * https://blog.aragon.one/library-driven-development-in-solidity-2bebcaf88736#.750gwtwli
 *
 * Originally from https://raw.githubusercontent.com/AragonOne/zeppelin-solidity/master/contracts/SafeMathLib.sol
 *
 * Maintained here until merged to mainline zeppelin-solidity.
 *
 */
library SafeMathLib {

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

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

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

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




/*
 * Ownable
 *
 * Base contract with an owner.
 * Provides onlyOwner modifier, which prevents function from running if it is called by anyone other than the owner.
 */
contract Ownable {
  address public owner;

  function Ownable() {
    owner = msg.sender;
  }

  modifier onlyOwner() {
    if (msg.sender != owner) {
      throw;
    }
    _;
  }

  function transferOwnership(address newOwner) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}


/*
 * Haltable
 *
 * Abstract contract that allows children to implement an
 * emergency stop mechanism. Differs from Pausable by causing a throw when in halt mode.
 *
 *
 * Originally envisioned in FirstBlood ICO contract.
 */
contract Haltable is Ownable {
  bool public halted;

  modifier stopInEmergency {
    if (halted) throw;
    _;
  }

  modifier onlyInEmergency {
    if (!halted) throw;
    _;
  }

  // called by the owner on emergency, triggers stopped state
  function halt() external onlyOwner {
    halted = true;
  }

  // called by the owner on end of emergency, returns to normal state
  function unhalt() external onlyOwner onlyInEmergency {
    halted = false;
  }

}


/**
 * Interface for defining crowdsale pricing.
 */
contract PricingStrategy {

  /**
   * When somebody tries to buy tokens for X eth, calculate how many tokens they get.
   */
  function calculatePrice(uint value, uint tokensSold, uint weiRaised, address msgSender) public constant returns (uint tokenAmount);
}


/**
 * Finalize agent defines what happens at the end of succeseful crowdsale.
 *
 * - Allocate tokens for founders, bounties and community
 * - Make tokens transferable
 * - etc.
 */
contract FinalizeAgent {

  function isFinalizeAgent() public constant returns(bool) {
    return true;
  }

  /** Return true if we can run finalizeCrowdsale() properly.
   *
   * This is a safety check function that doesn't allow crowdsale to begin
   * unless the finalizer has been set up properly.
   */
  function isSane() public constant returns (bool);

  /** Called once by crowdsale finalize() if the sale was success. */
  function finalizeCrowdsale();

}



/**
 * Abstract base contract for token sales.
 *
 * Handle
 * - start and end dates
 * - accepting investments
 * - minimum funding goal and refund
 * - various statistics during the crowdfund
 * - different pricing strategies
 *
 */
contract Crowdsale is Haltable {

  using SafeMathLib for uint;

  /* The token we are selling */
  ERC20 public token;

  /* How we are going to price our offering */
  PricingStrategy public pricingStrategy;

  /* Post-success callback */
  FinalizeAgent public finalizeAgent;

  /* tokens will be transfered from this address */
  address public multisigWallet;

  /* if the funding goal is not reached, investors may withdraw their funds */
  uint public minimumFundingGoal;

  /* the UNIX timestamp start date of the crowdsale */
  uint public startsAt;

  /* the UNIX timestamp end date of the crowdsale */
  uint public endsAt;

  /* the number of tokens already sold through this contract*/
  uint public tokensSold = 0;

  /* How many wei of funding we have raised */
  uint public weiRaised = 0;

  /* How many distinct addresses have invested */
  uint public investorCount = 0;

  /* How much wei we have returned back to the contract after a failed crowdfund. */
  uint public loadedRefund = 0;

  /* How much wei we have given back to investors.*/
  uint public weiRefunded = 0;

  /* Has this crowdsale been finalized */
  bool public finalized;

  /** How much ETH each address has invested to this crowdsale */
  mapping (address => uint256) public investedAmountOf;

  /** How much tokens this crowdsale has credited for each investor address */
  mapping (address => uint256) public tokenAmountOf;

  /** This is for manul testing for the interaction from owner wallet. You can set it to any value and inspect this in blockchain explorer to see that crowdsale interaction works. */
  uint public ownerTestValue;

  /** State machine
   *
   * - Preparing: All contract initialization calls and variables have not been set yet
   * - Prefunding: We have not passed start time yet
   * - Funding: Active crowdsale
   * - Success: Minimum funding goal reached
   * - Failure: Minimum funding goal not reached before ending time
   * - Finalized: The finalized has been called and succesfully executed
   * - Refunding: Refunds are loaded on the contract for reclaim.
   */
  enum State{Unknown, Preparing, PreFunding, Funding, Success, Failure, Finalized, Refunding}

  event Invested(address investor, uint weiAmount, uint tokenAmount);
  event Refund(address investor, uint weiAmount);

  function Crowdsale(address _token, address _pricingStrategy, address _multisigWallet, uint _start, uint _end, uint _minimumFundingGoal) {

    owner = msg.sender;

    token = ERC20(_token);

    pricingStrategy = PricingStrategy(_pricingStrategy);

    multisigWallet = _multisigWallet;
    if(multisigWallet == 0) {
        throw;
    }

    if(_start == 0) {
        throw;
    }

    startsAt = _start;

    if(_end == 0) {
        throw;
    }

    endsAt = _end;

    // Don't mess the dates
    if(startsAt >= endsAt) {
        throw;
    }

    // Minimum funding goal can be zero
    minimumFundingGoal = _minimumFundingGoal;
  }

  /**
   * Don't expect to just send in money and get tokens.
   */
  function() payable {
    throw;
  }

  /**
   * Make an investment.
   *
   * Crowdsale must be running for one to invest.
   * We must have not pressed the emergency brake.
   *
   *
   */
  function invest(address receiver) inState(State.Funding) stopInEmergency payable public {

    uint weiAmount = msg.value;
    uint tokenAmount = pricingStrategy.calculatePrice(weiAmount, weiRaised, tokensSold, msg.sender);

    if(tokenAmount == 0) {
      // Dust transaction
      throw;
    }

    if(investedAmountOf[receiver] == 0) {
       // A new investor
       investorCount++;
    }

    // Update investor
    investedAmountOf[receiver] = investedAmountOf[receiver].plus(weiAmount);
    tokenAmountOf[receiver] = tokenAmountOf[receiver].plus(tokenAmount);

    // Update totals
    weiRaised = weiRaised.plus(weiAmount);
    tokensSold = tokensSold.plus(tokenAmount);

    // Check that we did not bust the cap
    if(isBreakingCap(tokenAmount, weiAmount, weiRaised, tokensSold)) {
      throw;
    }

    assignTokens(receiver, tokenAmount);

    // Pocket the money
    if(!multisigWallet.send(weiAmount)) throw;

    // Tell us invest was success
    Invested(receiver, weiAmount, tokenAmount);
  }

  /**
   * The basic entry point to participate the crowdsale process.
   *
   * Pay for funding, get invested tokens back in the sender address.
   */
  function buy() public payable {
    invest(msg.sender);
  }

  /**
   * Finalize a succcesful crowdsale.
   *
   * Anybody can call to trigger the end of the crowdsale.
   *
   * Call the contract that provides post-crowdsale actions, like releasing the tokens.
   */
  function finalize() public inState(State.Success) stopInEmergency {

    // Already finalized
    if(finalized) {
      throw;
    }

    // Finalizing is optional. We only call it if we are given a finalizing agent.
    if(address(finalizeAgent) != 0) {
      finalizeAgent.finalizeCrowdsale();
    }

    finalized = true;
  }

  function setFinalizeAgent(FinalizeAgent addr) onlyOwner inState(State.Preparing) {
    finalizeAgent = addr;

    // Don't allow setting bad agent
    if(!finalizeAgent.isFinalizeAgent()) {
      throw;
    }
  }

  /**
   * Allow load refunds back on the contract for the refunding.
   *
   * The team can transfer the funds back on the smart contract in the case the minimum goal was not reached..
   */
  function loadRefund() public payable inState(State.Failure) {
    if(msg.value == 0) throw;
    loadedRefund = loadedRefund.plus(msg.value);
  }

  /**
   * Investors can claim refund.
   */
  function refund() public inState(State.Refunding) {
    uint256 weiValue = investedAmountOf[msg.sender];
    if (weiValue == 0) throw;
    investedAmountOf[msg.sender] = 0;
    weiRefunded = weiRefunded.plus(weiValue);
    Refund(msg.sender, weiValue);
    if (!msg.sender.send(weiValue)) throw;
  }

  /**
   * @return true if the crowdsale has raised enough money to be a succes
   */
  function isMinimumGoalReached() public constant returns (bool reached) {
    return weiRaised >= minimumFundingGoal;
  }

  /**
   * Crowdfund state machine management.
   *
   * We make it a function and do not assign the result to a variable, so there is no chance of the variable being stale.
   */
  function getState() public constant returns (State) {
    if(finalized) return State.Finalized;
    else if (address(finalizeAgent) == 0) return State.Preparing;
    else if (!finalizeAgent.isSane()) return State.Preparing;
    else if (block.timestamp < startsAt) return State.PreFunding;
    else if (block.timestamp <= endsAt && !isCrowdsaleFull()) return State.Funding;
    else if (isMinimumGoalReached()) return State.Success;
    else if (!isMinimumGoalReached() && weiRaised > 0 && loadedRefund >= weiRaised) return State.Refunding;
    else return State.Failure;
  }

  /** This is for manual testing of multisig wallet interaction */
  function setOwnerTestValue(uint val) onlyOwner {
    ownerTestValue = val;
  }

  //
  // Modifiers
  //

  /** Modified allowing execution only if the crowdsale is currently running.  */
  modifier inState(State state) {
    if(getState() != state) throw;
    _;
  }


  //
  // Abstract functions
  //

  /**
   * Check if the current invested breaks our cap rules.
   *
   *
   * The child contract must define their own cap setting rules.
   * We allow a lot of flexibility through different capping strategies (ETH, token count)
   * Called from invest().
   *
   * @param weiAmount The amount of wei the investor tries to invest in the current transaction
   * @param tokenAmount The amount of tokens we try to give to the investor in the current transaction
   * @param weiRaisedTotal What would be our total raised balance after this transaction
   * @param tokensSoldTotal What would be our total sold tokens count after this transaction
   *
   * @return true if taking this investment would break our cap rules
   */
  function isBreakingCap(uint weiAmount, uint tokenAmount, uint weiRaisedTotal, uint tokensSoldTotal) constant returns (bool limitBroken);

  /**
   * Check if the current crowdsale is full and we can no longer sell any tokens.
   */
  function isCrowdsaleFull() public constant returns (bool);

  /**
   * Create new tokens or transfer issued tokens to the investor depending on the cap model.
   */
  function assignTokens(address receiver, uint tokenAmount) private;
}








/**
 * Math operations with safety checks
 */
contract SafeMath {
  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeDiv(uint a, uint b) internal returns (uint) {
    assert(b > 0);
    uint c = a / b;
    assert(a == b * 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 max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

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



/**
 * Standard ERC20 token
 *
 * https://github.com/ethereum/EIPs/issues/20
 * Based on code by FirstBlood:
 * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, SafeMath {

  mapping(address => uint) balances;
  mapping (address => mapping (address => uint)) allowed;

  function transfer(address _to, uint _value) returns (bool success) {
    balances[msg.sender] = safeSub(balances[msg.sender], _value);
    balances[_to] = safeAdd(balances[_to], _value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  function transferFrom(address _from, address _to, uint _value) returns (bool success) {
    var _allowance = allowed[_from][msg.sender];

    // Check is not needed because safeSub(_allowance, _value) will already throw if this condition is not met
    // if (_value > _allowance) throw;

    balances[_to] = safeAdd(balances[_to], _value);
    balances[_from] = safeSub(balances[_from], _value);
    allowed[_from][msg.sender] = safeSub(_allowance, _value);
    Transfer(_from, _to, _value);
    return true;
  }

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

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

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

}




/**
 * A token that can increase its supply by another contract.
 *
 * This allows uncapped crowdsale by dynamically increasing the supply when money pours in.
 * Only mint agents, contracts whitelisted by owner, can mint new tokens.
 *
 */
contract MintableToken is StandardToken, Ownable {

  using SafeMathLib for uint;

  bool public mintingFinished = false;

  /** List of agents that are allowed to create new tokens */
  mapping (address => bool) public mintAgents;

  /**
   * Create new tokens and allocate them to an address..
   *
   * Only callably by a crowdsale contract (mint agent).
   */
  function mint(address receiver, uint amount) onlyMintAgent canMint public {
    totalSupply = totalSupply.plus(amount);
    balances[receiver] = balances[receiver].plus(amount);
    Transfer(0, receiver, amount);
  }

  /**
   * Owner can allow a crowdsale contract to mint new tokens.
   */
  function setMintAgent(address addr, bool state) onlyOwner canMint public {
    mintAgents[addr] = state;
  }

  modifier onlyMintAgent() {
    // Only crowdsale contracts are allowed to mint new tokens
    if(!mintAgents[msg.sender]) {
        throw;
    }
    _;
  }

  /** Make sure we are not done yet. */
  modifier canMint() {
    if(mintingFinished) throw;
    _;
  }
}


/**
 * ICO crowdsale contract that is capped by amout of tokens.
 *
 * - Tokens are dynamically created during the crowdsale
 *
 *
 */
contract MintedTokenCappedCrowdsale is Crowdsale {

  /* Maximum amount of tokens this crowdsale can sell. */
  uint public maximumSellableTokens;

  function MintedTokenCappedCrowdsale(address _token, address _pricingStrategy, address _multisigWallet, uint _start, uint _end, uint _minimumFundingGoal, uint _maximumSellableTokens) Crowdsale(_token, _pricingStrategy, _multisigWallet, _start, _end, _minimumFundingGoal) {
    maximumSellableTokens = _maximumSellableTokens;
  }

  /**
   * Called from invest() to confirm if the curret investment does not break our cap rule.
   */
  function isBreakingCap(uint weiAmount, uint tokenAmount, uint weiRaisedTotal, uint tokensSoldTotal) constant returns (bool limitBroken) {
    return tokensSoldTotal > maximumSellableTokens;
  }

  function isCrowdsaleFull() public constant returns (bool) {
    return tokensSold >= maximumSellableTokens;
  }

  /**
   * Dynamically create tokens and assign them to the investor.
   */
  function assignTokens(address receiver, uint tokenAmount) private {
    MintableToken mintableToken = MintableToken(token);
    mintableToken.mint(receiver, tokenAmount);
  }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"ownerTestValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"receiver","type":"address"}],"name":"invest","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"endsAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minimumFundingGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getState","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"}],"name":"setFinalizeAgent","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investedAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"finalizeAgent","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maximumSellableTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRefunded","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"pricingStrategy","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"loadedRefund","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isMinimumGoalReached","outputs":[{"name":"reached","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"loadRefund","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"val","type":"uint256"}],"name":"setOwnerTestValue","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"multisigWallet","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"weiAmount","type":"uint256"},{"name":"tokenAmount","type":"uint256"},{"name":"weiRaisedTotal","type":"uint256"},{"name":"tokensSoldTotal","type":"uint256"}],"name":"isBreakingCap","outputs":[{"name":"limitBroken","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"startsAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isCrowdsaleFull","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"investorCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_token","type":"address"},{"name":"_pricingStrategy","type":"address"},{"name":"_multisigWallet","type":"address"},{"name":"_start","type":"uint256"},{"name":"_end","type":"uint256"},{"name":"_minimumFundingGoal","type":"uint256"},{"name":"_maximumSellableTokens","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"Invested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"}],"name":"Refund","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052600060085560006009556000600a556000600b556000600c55346100005760405160e08061120483398101604090815281516020830151918301516060840151608085015160a086015160c09096015193959293919290915b8686868686865b5b60008054600160a060020a03191633600160a060020a03161790555b60008054600160a060020a03338116600160a060020a031992831617909255600180548984169083161790556002805488841690831617905560048054878416921691909117908190551615156100d757610000565b8215156100e357610000565b60068390558115156100f457610000565b600782905560065482901061010857610000565b60058190555b50505060118490555050505b505050505050505b6110d3806101316000396000f300606060405236156101855763ffffffff60e060020a6000350416630226401d811461019257806303f9c793146101b15780630a09284a146101c757806313f4e977146101e65780631865c57d1461020557806319b667da146102335780631aae34601461024e57806321d5c0f6146102795780633ad075ea146102a25780634042b66f146102c15780634bb278f3146102e0578063518ab2a8146102ef578063590e1ae31461030e5780635da89ac01461031d5780635ed7ca5b1461033c57806378b99c241461034b578063797d9437146103745780637c2e08a31461039357806387612102146103b45780638d51faec146103be5780638da5cb5b146103d05780639075becf146103f957806397b150ca146104225780639d3c663f1461044d578063a6f2ae3a1461047a578063af46868214610484578063b3f05b97146104a3578063b9b8af0b146104c4578063cb3e64fd146104e5578063d5d09021146104f4578063d7e64c0014610515578063f2fde38b14610534578063fc0c546a1461054f575b6101905b610000565b565b005b346100005761019f610578565b60408051918252519081900360200190f35b610190600160a060020a036004351661057e565b005b346100005761019f61094c565b60408051918252519081900360200190f35b346100005761019f610952565b60408051918252519081900360200190f35b3461000057610212610958565b6040518082600781116100005760ff16815260200191505060405180910390f35b3461000057610190600160a060020a0360043516610a96565b005b346100005761019f600160a060020a0360043516610b75565b60408051918252519081900360200190f35b3461000057610286610b87565b60408051600160a060020a039092168252519081900360200190f35b346100005761019f610b96565b60408051918252519081900360200190f35b346100005761019f610b9c565b60408051918252519081900360200190f35b3461000057610190610ba2565b005b346100005761019f610c70565b60408051918252519081900360200190f35b3461000057610190610c76565b005b346100005761019f610dc1565b60408051918252519081900360200190f35b3461000057610190610dc7565b005b3461000057610286610e0a565b60408051600160a060020a039092168252519081900360200190f35b346100005761019f610e19565b60408051918252519081900360200190f35b34610000576103a0610e1f565b604080519115158252519081900360200190f35b610190610e2b565b005b3461000057610190600435610ecd565b005b3461000057610286610ef2565b60408051600160a060020a039092168252519081900360200190f35b3461000057610286610f01565b60408051600160a060020a039092168252519081900360200190f35b346100005761019f600160a060020a0360043516610f10565b60408051918252519081900360200190f35b34610000576103a0600435602435604435606435610f22565b604080519115158252519081900360200190f35b610190610f30565b005b346100005761019f610f3c565b60408051918252519081900360200190f35b34610000576103a0610f42565b604080519115158252519081900360200190f35b34610000576103a0610f4b565b604080519115158252519081900360200190f35b3461000057610190610f5b565b005b34610000576103a0610fb1565b604080519115158252519081900360200190f35b346100005761019f610fbd565b60408051918252519081900360200190f35b3461000057610190600160a060020a0360043516610fc3565b005b346100005761028661101b565b60408051600160a060020a039092168252519081900360200190f35b60105481565b60008060038061058c610958565b60078111610000571461059e57610000565b60005460a060020a900460ff16156105b557610000565b349250600260009054906101000a9004600160a060020a0316600160a060020a031663c545c09d84600954600854336000604051602001526040518563ffffffff1660e060020a0281526004018085815260200184815260200183815260200182600160a060020a0316600160a060020a03168152602001945050505050602060405180830381600087803b156100005760325a03f1156100005750506040515192505081151561066557610000565b600160a060020a0384166000908152600e6020526040902054151561068e57600a805460010190555b600160a060020a0384166000908152600e60209081526040808320548151830193909352805160e060020a6366098d4f028152600481019390935260248301869052517387e3d3e8b6f444ddfc8fa7241c412b5c878ce18e926366098d4f926044808301939192829003018186803b156100005760325a03f415610000575050604080518051600160a060020a0388166000908152600e602090815284822092909255600f82528381205492820152825160e060020a6366098d4f02815260048101929092526024820186905291517387e3d3e8b6f444ddfc8fa7241c412b5c878ce18e93506366098d4f92604480840193919291829003018186803b156100005760325a03f415610000575050604080518051600160a060020a0388166000908152600f60209081528482209290925560095492820152825160e060020a6366098d4f02815260048101929092526024820187905291517387e3d3e8b6f444ddfc8fa7241c412b5c878ce18e93506366098d4f92604480840193919291829003018186803b156100005760325a03f4156100005750506040805180516009556008546000602092830152825160e060020a6366098d4f02815260048101919091526024810186905291517387e3d3e8b6f444ddfc8fa7241c412b5c878ce18e93506366098d4f926044808201939291829003018186803b156100005760325a03f4156100005750506040515160088190556009546108b292508491869190610f22565b156108bc57610000565b6108c6848361102a565b600454604051600160a060020a039091169084156108fc029085906000818181858888f1935050505015156108fa57610000565b60408051600160a060020a03861681526020810185905280820184905290517f9e9d071824fd57d062ca63fd8b786d8da48a6807eebbcb2d83f9e8d21398e28c9181900360600190a15b5b5b50505050565b60075481565b60055481565b600d5460009060ff161561096e57506006610a8c565b600354600160a060020a0316151561098857506001610a8c565b600354604080516000602091820181905282517f82771c8e0000000000000000000000000000000000000000000000000000000081529251600160a060020a03909416936382771c8e9360048082019493918390030190829087803b156100005760325a03f1156100005750506040515115159050610a0957506001610a8c565b600654421015610a1b57506002610a8c565b6007544211158015610a325750610a30610fb1565b155b15610a3f57506003610a8c565b610a47610e1f565b15610a5457506004610a8c565b610a5c610e1f565b158015610a6b57506000600954115b8015610a7b5750600954600b5410155b15610a8857506007610a8c565b5060055b5b5b5b5b5b5b5b90565b60005433600160a060020a03908116911614610ab157610000565b600180610abc610958565b600781116100005714610ace57610000565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055604080516000602091820181905282517f614cb9040000000000000000000000000000000000000000000000000000000081529251949093169363614cb904936004808501948390030190829087803b156100005760325a03f1156100005750506040515115159050610b6e57610000565b5b5b505b50565b600e6020526000908152604090205481565b600354600160a060020a031681565b60115481565b60095481565b600480610bad610958565b600781116100005714610bbf57610000565b60005460a060020a900460ff1615610bd657610000565b600d5460ff1615610be657610000565b600354600160a060020a031615610c5d57600354604080517f0bf318a30000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691630bf318a39160048082019260009290919082900301818387803b156100005760325a03f115610000575050505b600d805460ff191660011790555b5b5b50565b60085481565b6000600780610c83610958565b600781116100005714610c9557610000565b600160a060020a0333166000908152600e60205260409020549150811515610cbc57610000565b600160a060020a0333166000908152600e60209081526040808320839055600c548151830193909352805160e060020a6366098d4f028152600481019390935260248301859052517387e3d3e8b6f444ddfc8fa7241c412b5c878ce18e926366098d4f926044808301939192829003018186803b156100005760325a03f415610000575050604080518051600c55600160a060020a03331681526020810185905281517fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d93509081900390910190a1604051600160a060020a0333169083156108fc029084906000818181858888f193505050501515610b6e57610000565b5b5b5050565b600c5481565b60005433600160a060020a03908116911614610de257610000565b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b600254600160a060020a031681565b600b5481565b60055460095410155b90565b600580610e36610958565b600781116100005714610e4857610000565b341515610e5457610000565b600b547387e3d3e8b6f444ddfc8fa7241c412b5c878ce18e6366098d4f9091346000604051602001526040518363ffffffff1660e060020a028152600401808381526020018281526020019250505060206040518083038186803b156100005760325a03f41561000057505060405151600b55505b5b50565b60005433600160a060020a03908116911614610ee857610000565b60108190555b5b50565b600054600160a060020a031681565b600454600160a060020a031681565b600f6020526000908152604090205481565b60115481115b949350505050565b61018e3361057e565b5b565b60065481565b600d5460ff1681565b60005460a060020a900460ff1681565b60005433600160a060020a03908116911614610f7657610000565b60005460a060020a900460ff161515610f8e57610000565b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b60115460085410155b90565b600a5481565b60005433600160a060020a03908116911614610fde57610000565b600160a060020a03811615610b72576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600154600160a060020a031681565b600154604080517f40c10f19000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152602482018590529151919092169182916340c10f199160448082019260009290919082900301818387803b156100005760325a03f115610000575050505b5050505600a165627a7a72305820657d770ad673a8451b36731b596609f175b7c7e71153db766b235acf0e5e9d2e0029000000000000000000000000c2921ea1c150405ef952f73952f37fa2746168d80000000000000000000000003a632c65edc75b03045ed883d2f22f0488fd6a32000000000000000000000000e8baf9df0ded92c5f28aab97f13936e7716a4a5b0000000000000000000000000000000000000000000000000000000058f251900000000000000000000000000000000000000000000000000000000059173b900000000000000000000000000000000000000000000001969368974c05b0000000000000000000000000000000000000000000000000000000000000003d0900

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

-----Decoded View---------------
Found 7 constructor arguments :
Arg [0] : 000000000000000000000000c2921ea1c150405ef952f73952f37fa2746168d8
Arg [1] : 0000000000000000000000003a632c65edc75b03045ed883d2f22f0488fd6a32
Arg [2] : 000000000000000000000000e8baf9df0ded92c5f28aab97f13936e7716a4a5b
Arg [3] : 0000000000000000000000000000000000000000000000000000000058f25190
Arg [4] : 0000000000000000000000000000000000000000000000000000000059173b90
Arg [5] : 0000000000000000000000000000000000000000000001969368974c05b00000
Arg [6] : 00000000000000000000000000000000000000000000000000000000003d0900


   Library Used
SafeMathLib : 0x87e3d3e8b6f444ddfc8fa7241c412b5c878ce18e

   Swarm Source:
bzzr://657d770ad673a8451b36731b596609f175b7c7e71153db766b235acf0e5e9d2e

 

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.