Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 3829 txns
 Latest 25 txns From a total of 3829 Transactions

TxHash Age From To Value [TxFee]
0xdfe6eae943b3ec832a86e87a831a66b9d89884437db07502966f4b91024db51165 days 20 hrs ago0x0738b775e2934a1947b83868f1314ca0afe24868  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390 Ether0.000064185
0x4329fcd850966297a77385ee97fcb7e08c6639b3c899380216c6525b688e28c2168 days 3 hrs ago0xd057df1029d15bc29a13d737df98c4922ed3ec04  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.5 Ether0.00017116
0x537a31eb32abde867224b041e3e13f05dabbc6dc434d56295c7ef1433ef1ff78171 days 17 hrs ago0x2036beb3e928f91b1d811be15d02876f32a36e5b  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.26 Ether0.00004279
0xa509518c60a68bbb49126b0ec226e8268f9f80cd20d6686dce80bf806cc58d40172 days 8 hrs ago0xd5c7eb4031b1b12aeb878dc109026a2fa021f49e  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.178 Ether0.0007509645
0x8549cbd68e857a9fac6aac75131b82f21d09357601d500cc73437935039f78cf173 days 17 hrs ago0xe54bfcdff478acb68167d45eabcc1d4708889b52  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.575 Ether0.00017116
0x5048524720d0eb756e8ea1fad7337ee9890821673f35f73a9e508c362f8939a3173 days 17 hrs ago0xe54bfcdff478acb68167d45eabcc1d4708889b52  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.569999999999999 Ether0.000106975
0x149dfac2cdefa91d42f105c09dc101b1333e86b038c8bdd62386820f3284f3dc173 days 17 hrs ago0xe54bfcdff478acb68167d45eabcc1d4708889b52  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.572253 Ether0.000142383725
0xe38eb9f42cfe3f9c1a8f49d3ef33e876256ca8200b3dd579427cf632efe48d09173 days 17 hrs ago0xe54bfcdff478acb68167d45eabcc1d4708889b52  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.582253 Ether0.000021395
0x2576f289b47dcd1c9ce8d2e21633462efc862895a7db8eaff9583a949d603c31173 days 18 hrs ago0x8c69ff6bff924f98b9fb31566d36e4d9762d070e  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.1 Ether0.000021395
0xb930b6dea88bcb155cb790a3751c322f4dc93b7a8b9d6876138ef1e6390d280a174 days 12 hrs ago0x57c690e6f1be2f9d46bea403cd7f726f8bae5a9f  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412392.4 Ether0.00017116
0x6d5d204224233d873ee42105483571be86bee9dda5b644656ea5325eadcccd06174 days 14 hrs ago0x0fc4ea7046379b89b7fb3e6914bb1962f8473984  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390 Ether0.003477292
0x7dce526cc5d1609a4e121e7b4edf596b57bbae04fe778b71cf296e2eb64d10bb174 days 14 hrs ago0x32c20188d903fc9e974dfd0390ef0086a392c0b4  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412391 Ether0.000320925
0xfa1a7027feaf74aa7e709a5036a09c7b5a5d4c8da6df965f525aaf1241b9f803174 days 19 hrs ago0x099ddb48277dcb302ca68499982f06618df08216  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.01 Ether0.00008558
0x294a4bc91d9f2bfdb52de7388c891997f78dd2449d4f5ab9d61966e7a5ecba0b174 days 20 hrs ago0x1d73632257a7061ba1c1b2a8a813dce4d86a2b61  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.02 Ether0.00008558
0x023aee3a169f76e0a49583223ac4ab5f975d7ef282dcb9f576cb899ef66333cd174 days 21 hrs ago0x48c06dfb7a2245c288494f08fcc5b1d5a0312c62  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.25 Ether0.00004279
0xb5bcca22c4ae07b70376ba4a66d9d4eb92f30e7a899c4dec9f01873b50d615ca175 days 11 mins ago0xcdc014099e4342d9f380697f8c1549979b10adfe  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412391.999999772132494 Ether0.002118105
0x5a6922a4854b25bf49bf04863a9fc5c51e046dd194ddfc20cc20b0806fa0fa08175 days 12 mins ago0xcdc014099e4342d9f380697f8c1549979b10adfe  IN   0xa28fc2102da86e424b37ad86c7bc7855fc44123915.189440663569285 Ether0.0034232
0x07137ce65952da2aa220c6f3c874268c6c2d87d6be6763995fbe0d168112e253175 days 12 mins ago0xcdc014099e4342d9f380697f8c1549979b10adfe  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390 Ether0.000798
0x14e60063900ef400ca19090ac1f4b7f5b89ed1be94f4402b197ed724d83cfc92175 days 1 hr ago0x0048d77cd53479c2e9594d55f058a224041c11ce  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412394 Ether0.00008558
0x1e6c8ee843f21c1e8e4ff7270b9b53b608b5fb0add0cda5c1a38a0cbb981b38d175 days 1 hr ago0x681ada67950d96dcc9f2951d32353663ed6e59c9  IN   0xa28fc2102da86e424b37ad86c7bc7855fc44123950 Ether0.000773796471
0xd53f2c2904c2929c61366f587dd5b7891eab30d842a755fa3fa6c0e615678a03175 days 2 hrs ago0x1336e83c4503344dcbc647404996aa8cc50c1fa6  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.25 Ether0.00008558
0x455c055c5d5c05d80695993306b7d7aefa0eacb08bbaf0c23dcdd6bad04a5b30175 days 3 hrs ago0x265d5dd151b1543eff333d4b929feba3b5eaf0db  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.062999633744892 Ether0.000106975
0x97b43bc62b0c548d9c4c80b9bfbf14c7dc88c60b293f3deadaccf8ff5dd234d9175 days 4 hrs ago0x3fa515df9e7a82ff12990ce279c707f95d2fcc7c  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.06299953273221 Ether0.00008558
0xda3b1e99ddfdea4236ffe2ce8737aebed5b7b73a671c5ee4fac9609101c5e5e0175 days 5 hrs ago0xaff8bcc8b1385ea4acdbf07f457317ae423f129f  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.2 Ether0.00008558
0x73597896cb52000f7e54413f13f04c3ec888d7d8420e34b1da010dab916fb064175 days 6 hrs ago0x731ea89b5d7394019911b81c9e31de0d18efcd31  IN   0xa28fc2102da86e424b37ad86c7bc7855fc4412390.834999688900314 Ether0.00021
[ 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
0x433e2542eb5c074a9bf6a43478b8c51a2ddf11886fb83e9501a7e42f73266fdb5519898175 days 8 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f757 Ether
0x41c4f7baf9c47c2e00fe54daba36333539b257f6e4d8934df7746b65d32049a45519839175 days 8 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f751 Ether
0x1ac370b275048091ded9445720dd8554375db24347bccebab71f5bdff33fe82c5519558175 days 9 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.1 Ether
0x0e6d46d1d898bc70cf3da91a737bb0fd47d7f15c3dd476f352b81779522ea7c75519512175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.15 Ether
0xaa2ed659d997a55e73b2d18ca1a2020ca014638623a380f318303e7fff582e3e5519507175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.38 Ether
0x3644f3045f4aa3bfc18d1d10462c1c10cfa1223d7585d477b1b659d7e83906265519505175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.142 Ether
0x2ddf7380dedbcb83aee95728f5204b0e2a51ff176c5084fca14b96dace68d4195519501175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.2 Ether
0xcdac0125babfe6d1a3ed3b601545d1cc8ff21f00cf4ba6e05eb87c6fb4dc6e6a5519498175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.265 Ether
0x8d253d262b263c97946741d57ae36f3ef10dfbbce2dc541da16fb746906070655519494175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.7 Ether
0xc1a5dcc104810de767965f9eff0832ff365091846f2f70a8140acd9084cc59cd5519489175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f755.189439949125735 Ether
0x34c264afc0c20fa6946d3cdb9e4f01748fadb16359678097bb795182d9437e305519486175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.5 Ether
0x34cc8ef4d4c0ec0353e123762052df0b590671f15e90fc2a9fd67ec2c2a6b6175519486175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f752 Ether
0xc7ff254ffb42a365726a878524a005cbfad34d4439e616d5de811c570bb376fd5519484175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f753 Ether
0xb497b004bc2e686b1b727d0b18ff5aa2941029048df7da3386855f7221115d465519483175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f752.5 Ether
0xda0d88a7ce9258f5d67e2f39e16a48c7bff53bb7806d333b6f843d9a7ffea48c5519479175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f751.173 Ether
0x826c7c105a7b4cb7f2ffc4a6ab8566283e76832d829bbbdf945f49c28ee012a25519479175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.1 Ether
0x017f9293eb10a791b6625fe654e51cc201eed91a1c96d1564b61d4c61cee1e6a5519478175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f756 Ether
0x6f5fb594867021ebe0afe72ca925fe59ff949404e34cc9ed775fd4080ec1ab7a5519475175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.5 Ether
0xa84bbc130409d0365dadbd63d6eb1e0edd7a2da934470a9007bd63c4a70ee8a65519473175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f758 Ether
0xd924216d5c197a5047e4a300d0a394dbffd9145714492a8fa788360f84c156105519471175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f751.8 Ether
0xdc1b5a3f66d020d9008d0d5813bc05d7e6870b6dc4b522182d6cb199f321b7ad5519471175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.211034 Ether
0xad207a0fb5cd1aa54574d260e764d640f9a22e6272ac53eac59f87c4d11744e95519471175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f7510 Ether
0x30d1d4dd3ea862806e330fe35a11a3ba4eb0b6221653a8b2b1d298625e9b723f5519470175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f756 Ether
0x468e58d3a9412320df06f3fa255a08c492f596ee9ddb00bde037b1dd5a685cf25519470175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f750.3 Ether
0xb0113b89219b232ccf7566c92e0ee2bccaf535489da93038c95541fc3a6150c85519470175 days 10 hrs ago0xa28fc2102da86e424b37ad86c7bc7855fc4412390x60b3226af1f4a745a19bb0b2ebea1d9bc7864f751 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Similar Match)
Note: Displaying Similar Match Verified Source Code At Contract 0x45d090f5786f634879d35933fdf7b025903f807a(Excluding Constructor Arguments if_any)
Contract Name: HoloSale
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}


/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    Unpause();
  }
}



/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}


// This is an ERC-20 token contract based on Open Zepplin's StandardToken
// and MintableToken plus the ability to burn tokens.
//
// We had to copy over the code instead of inheriting because of changes
// to the modifier lists of some functions:
//   * transfer(), transferFrom() and approve() are not callable during
//     the minting period, only after MintingFinished()
//   * mint() can only be called by the minter who is not the owner
//     but the HoloTokenSale contract.
//
// Token can be burned by a special 'destroyer' role that can only
// burn its tokens.
contract HoloToken is Ownable {
  string public constant name = "HoloToken";
  string public constant symbol = "HOT";
  uint8 public constant decimals = 18;

  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed owner, address indexed spender, uint256 value);
  event Mint(address indexed to, uint256 amount);
  event MintingFinished();
  event Burn(uint256 amount);

  uint256 public totalSupply;


  //==================================================================================
  // Zeppelin BasicToken (plus modifier to not allow transfers during minting period):
  //==================================================================================

  using SafeMath for uint256;

  mapping(address => uint256) public balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public whenMintingFinished returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public view returns (uint256 balance) {
    return balances[_owner];
  }


  //=====================================================================================
  // Zeppelin StandardToken (plus modifier to not allow transfers during minting period):
  //=====================================================================================
  mapping (address => mapping (address => uint256)) public allowed;


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint256 _value) public whenMintingFinished returns (bool) {
    require(_to != address(0));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public whenMintingFinished returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }


  //=====================================================================================
  // Minting:
  //=====================================================================================

  bool public mintingFinished = false;
  address public destroyer;
  address public minter;

  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  modifier whenMintingFinished() {
    require(mintingFinished);
    _;
  }

  modifier onlyMinter() {
    require(msg.sender == minter);
    _;
  }

  function setMinter(address _minter) external onlyOwner {
    minter = _minter;
  }

  function mint(address _to, uint256 _amount) external onlyMinter canMint  returns (bool) {
    require(balances[_to] + _amount > balances[_to]); // Guard against overflow
    require(totalSupply + _amount > totalSupply);     // Guard against overflow  (this should never happen)
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Mint(_to, _amount);
    return true;
  }

  function finishMinting() external onlyMinter returns (bool) {
    mintingFinished = true;
    MintingFinished();
    return true;
  }


  //=====================================================================================
  // Burning:
  //=====================================================================================


  modifier onlyDestroyer() {
     require(msg.sender == destroyer);
     _;
  }

  function setDestroyer(address _destroyer) external onlyOwner {
    destroyer = _destroyer;
  }

  function burn(uint256 _amount) external onlyDestroyer {
    require(balances[destroyer] >= _amount && _amount > 0);
    balances[destroyer] = balances[destroyer].sub(_amount);
    totalSupply = totalSupply.sub(_amount);
    Burn(_amount);
  }
}


// This contract holds a mapping of known funders with:
// * a boolean flag for whitelist status
// * number of reserved tokens for each day
contract HoloWhitelist is Ownable {
  address public updater;

  struct KnownFunder {
    bool whitelisted;
    mapping(uint => uint256) reservedTokensPerDay;
  }

  mapping(address => KnownFunder) public knownFunders;

  event Whitelisted(address[] funders);
  event ReservedTokensSet(uint day, address[] funders, uint256[] reservedTokens);

  modifier onlyUpdater {
    require(msg.sender == updater);
    _;
  }

  function HoloWhitelist() public {
    updater = msg.sender;
  }

  function setUpdater(address new_updater) external onlyOwner {
    updater = new_updater;
  }

  // Adds funders to the whitelist in batches.
  function whitelist(address[] funders) external onlyUpdater {
    for (uint i = 0; i < funders.length; i++) {
        knownFunders[funders[i]].whitelisted = true;
    }
    Whitelisted(funders);
  }

  // Removes funders from the whitelist in batches.
  function unwhitelist(address[] funders) external onlyUpdater {
    for (uint i = 0; i < funders.length; i++) {
        knownFunders[funders[i]].whitelisted = false;
    }
  }

  // Stores reserved tokens for several funders in a batch
  // but all for the same day.
  // * day is 0-based
  function setReservedTokens(uint day, address[] funders, uint256[] reservedTokens) external onlyUpdater {
    for (uint i = 0; i < funders.length; i++) {
        knownFunders[funders[i]].reservedTokensPerDay[day] = reservedTokens[i];
    }
    ReservedTokensSet(day, funders, reservedTokens);
  }

  // Used in HoloSale to check if funder is allowed
  function isWhitelisted(address funder) external view returns (bool) {
    return knownFunders[funder].whitelisted;
  }

  // Used in HoloSale to get reserved tokens per funder
  // and per day.
  // * day is 0-based
  function reservedTokens(address funder, uint day) external view returns (uint256) {
    return knownFunders[funder].reservedTokensPerDay[day];
  }


}


// This contract is a crowdsale based on Zeppelin's Crowdsale.sol but with
// several changes:
//   * the token contract as well as the supply contract get injected
//     with setTokenContract() and setSupplyContract()
//   * we have a dynamic token supply per day which we hold in the statsByDay
//   * once per day, the *updater* role runs the update function to make the
//     contract read the new supply and switch to the next day
//   * we have a minimum amount in ETH per transaction
//   * we have a maximum amount per transaction relative to the daily supply
//
//
contract HoloSale is Ownable, Pausable{
  using SafeMath for uint256;

  // Start and end block where purchases are allowed (both inclusive)
  uint256 public startBlock;
  uint256 public endBlock;
  // Factor between wei and full Holo tokens.
  // (i.e. a rate of 10^18 means one Holo per Ether)
  uint256 public rate;
  // Ratio of the current supply a transaction is allowed to by
  uint256 public maximumPercentageOfDaysSupply;
  // Minimum amount of wei a transaction has to send
  uint256 public minimumAmountWei;
  // address where funds are being send to on successful buy
  address public wallet;

  // The token being minted on sale
  HoloToken private tokenContract;
  // The contract to check beneficiaries' address against
  // and to hold number of reserved tokens per day
  HoloWhitelist private whitelistContract;

  // The account that is allowed to call update()
  // which will happen once per day during the sale period
  address private updater;

  // Will be set to true by finalize()
  bool private finalized = false;

  uint256 public totalSupply;

  // For every day of the sale we store one instance of this struct
  struct Day {
    // The supply available to sell on this day
    uint256 supply;
    // The number of unreserved tokens sold on this day
    uint256 soldFromUnreserved;
    // Number of tokens reserved today
    uint256 reserved;
    // Number of reserved tokens sold today
    uint256 soldFromReserved;
    // We are storing how much fuel each user has bought per day
    // to be able to apply our relative cap per user per day
    // (i.e. nobody is allowed to buy more than 10% of each day's supply)
    mapping(address => uint256) fuelBoughtByAddress;
  }

  // Growing list of days
  Day[] public statsByDay;

  event CreditsCreated(address beneficiary, uint256 amountWei, uint256 amountHolos);
  event Update(uint256 newTotalSupply, uint256 reservedTokensNextDay);

  modifier onlyUpdater {
    require(msg.sender == updater);
    _;
  }

  // Converts wei to smallest fraction of Holo tokens.
  // 'rate' is meant to give the factor between weis and full Holo tokens,
  // hence the division by 10^18.
  function holosForWei(uint256 amountWei) internal view returns (uint256) {
    return amountWei * rate / 1000000000000000000;
  }

  // Contstructor takes start and end block of the sale period,
  // the rate that defines how many full Holo token are being minted per wei
  // (since the Holo token has 18 decimals, 1000000000000000000 would mean that
  // one full Holo is minted per Ether),
  // minimum and maximum limits for incoming ETH transfers
  // and the wallet to which the Ethers are being transfered on updated()
  function HoloSale(
    uint256 _startBlock, uint256 _endBlock,
    uint256 _rate,
    uint256 _minimumAmountWei, uint256 _maximumPercentageOfDaysSupply,
    address _wallet) public
  {
    require(_startBlock >= block.number);
    require(_endBlock >= _startBlock);
    require(_rate > 0);
    require(_wallet != 0x0);

    updater = msg.sender;
    startBlock = _startBlock;
    endBlock = _endBlock;
    rate = _rate;
    maximumPercentageOfDaysSupply = _maximumPercentageOfDaysSupply;
    minimumAmountWei = _minimumAmountWei;
    wallet = _wallet;
  }

  //---------------------------------------------------------------------------
  // Setters and Getters:
  //---------------------------------------------------------------------------

  function setUpdater(address _updater) external onlyOwner {
    updater = _updater;
  }

  function setTokenContract(HoloToken _tokenContract) external onlyOwner {
    tokenContract = _tokenContract;
  }

  function setWhitelistContract(HoloWhitelist _whitelistContract) external onlyOwner {
    whitelistContract = _whitelistContract;
  }

  function currentDay() public view returns (uint) {
    return statsByDay.length;
  }

  function todaysSupply() external view returns (uint) {
    return statsByDay[currentDay()-1].supply;
  }

  function todaySold() external view returns (uint) {
    return statsByDay[currentDay()-1].soldFromUnreserved + statsByDay[currentDay()-1].soldFromReserved;
  }

  function todayReserved() external view returns (uint) {
    return statsByDay[currentDay()-1].reserved;
  }

  function boughtToday(address beneficiary) external view returns (uint) {
    return statsByDay[currentDay()-1].fuelBoughtByAddress[beneficiary];
  }

  //---------------------------------------------------------------------------
  // Sending money / adding asks
  //---------------------------------------------------------------------------

  // Fallback function can be used to buy fuel
  function () public payable {
    buyFuel(msg.sender);
  }

  // Main function that checks all conditions and then mints fuel tokens
  // and transfers the ETH to our wallet
  function buyFuel(address beneficiary) public payable whenNotPaused{
    require(currentDay() > 0);
    require(whitelistContract.isWhitelisted(beneficiary));
    require(beneficiary != 0x0);
    require(withinPeriod());

    // Calculate how many Holos this transaction would buy
    uint256 amountOfHolosAsked = holosForWei(msg.value);

    // Get current day
    uint dayIndex = statsByDay.length-1;
    Day storage today = statsByDay[dayIndex];

    // Funders who took part in the crowdfund could have reserved tokens
    uint256 reservedHolos = whitelistContract.reservedTokens(beneficiary, dayIndex);
    // If they do, make sure to subtract what they bought already today
    uint256 alreadyBought = today.fuelBoughtByAddress[beneficiary];
    if(alreadyBought >= reservedHolos) {
      reservedHolos = 0;
    } else {
      reservedHolos = reservedHolos.sub(alreadyBought);
    }

    // Calculate if they asked more than they have reserved
    uint256 askedMoreThanReserved;
    uint256 useFromReserved;
    if(amountOfHolosAsked > reservedHolos) {
      askedMoreThanReserved = amountOfHolosAsked.sub(reservedHolos);
      useFromReserved = reservedHolos;
    } else {
      askedMoreThanReserved = 0;
      useFromReserved = amountOfHolosAsked;
    }

    if(reservedHolos == 0) {
      // If this transaction is not claiming reserved tokens
      // it has to be over the minimum.
      // (Reserved tokens must be claimable even if it would be just few)
      require(msg.value >= minimumAmountWei);
    }

    // The non-reserved tokens asked must not exceed the max-ratio
    // nor the available supply.
    require(lessThanMaxRatio(beneficiary, askedMoreThanReserved, today));
    require(lessThanSupply(askedMoreThanReserved, today));

    // Everything fine if we're here
    // Send ETH to our wallet
    wallet.transfer(msg.value);
    // Mint receipts
    tokenContract.mint(beneficiary, amountOfHolosAsked);
    // Log this sale
    today.soldFromUnreserved = today.soldFromUnreserved.add(askedMoreThanReserved);
    today.soldFromReserved = today.soldFromReserved.add(useFromReserved);
    today.fuelBoughtByAddress[beneficiary] = today.fuelBoughtByAddress[beneficiary].add(amountOfHolosAsked);
    CreditsCreated(beneficiary, msg.value, amountOfHolosAsked);
  }

  // Returns true if we are in the live period of the sale
  function withinPeriod() internal constant returns (bool) {
    uint256 current = block.number;
    return current >= startBlock && current <= endBlock;
  }

  // Returns true if amount + plus fuel bought today already is not above
  // the maximum share one could buy today
  function lessThanMaxRatio(address beneficiary, uint256 amount, Day storage today) internal view returns (bool) {
    uint256 boughtTodayBefore = today.fuelBoughtByAddress[beneficiary];
    return boughtTodayBefore.add(amount).mul(100).div(maximumPercentageOfDaysSupply) <= today.supply;
  }

  // Returns false if amount would buy more fuel than we can sell today
  function lessThanSupply(uint256 amount, Day today) internal pure returns (bool) {
    return today.soldFromUnreserved.add(amount) <= today.supply.sub(today.reserved);
  }

  //---------------------------------------------------------------------------
  // Update
  //---------------------------------------------------------------------------


  function update(uint256 newTotalSupply, uint256 reservedTokensNextDay) external onlyUpdater {
    totalSupply = newTotalSupply;
    // daysSupply is the amount of tokens (*10^18) that we can sell today
    uint256 daysSupply = newTotalSupply.sub(tokenContract.totalSupply());
    statsByDay.push(Day(daysSupply, 0, reservedTokensNextDay, 0));
    Update(newTotalSupply, reservedTokensNextDay);
  }

  //---------------------------------------------------------------------------
  // Finalize
  //---------------------------------------------------------------------------

  // Returns true if crowdsale event has ended
  function hasEnded() public constant returns (bool) {
    return block.number > endBlock;
  }

  // Mints a third of all tokens minted so far for the team.
  // => Team ends up with 25% of all tokens.
  // Also calls finishMinting() on the token contract which makes it
  // impossible to mint more.
  function finalize() external onlyOwner {
    require(!finalized);
    require(hasEnded());
    uint256 receiptsMinted = tokenContract.totalSupply();
    uint256 shareForTheTeam = receiptsMinted.div(3);
    tokenContract.mint(wallet, shareForTheTeam);
    tokenContract.finishMinting();
    finalized = true;
  }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"endBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_whitelistContract","type":"address"}],"name":"setWhitelistContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newTotalSupply","type":"uint256"},{"name":"reservedTokensNextDay","type":"uint256"}],"name":"update","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"todaySold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"beneficiary","type":"address"}],"name":"boughtToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"todaysSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentDay","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimumAmountWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"statsByDay","outputs":[{"name":"supply","type":"uint256"},{"name":"soldFromUnreserved","type":"uint256"},{"name":"reserved","type":"uint256"},{"name":"soldFromReserved","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_updater","type":"address"}],"name":"setUpdater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"setTokenContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maximumPercentageOfDaysSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyFuel","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"todayReserved","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_startBlock","type":"uint256"},{"name":"_endBlock","type":"uint256"},{"name":"_rate","type":"uint256"},{"name":"_minimumAmountWei","type":"uint256"},{"name":"_maximumPercentageOfDaysSupply","type":"uint256"},{"name":"_wallet","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amountWei","type":"uint256"},{"indexed":false,"name":"amountHolos","type":"uint256"}],"name":"CreditsCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newTotalSupply","type":"uint256"},{"indexed":false,"name":"reservedTokensNextDay","type":"uint256"}],"name":"Update","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405260008060146101000a81548160ff0219169083151502179055506000600960146101000a81548160ff021916908315150217905550341561004457600080fd5b60405160c080611c0b83398101604052808051906020019091908051906020019091908051906020019091908051906020019091908051906020019091908051906020019091905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504386101515156100dc57600080fd5b8585101515156100eb57600080fd5b6000841115156100fa57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561012057600080fd5b33600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550856001819055508460028190555083600381905550816004819055508260058190555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050611a31806101da6000396000f300606060405260043610610149576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063083c63231461015457806312f261401461017d57806318160ddd146101b65780632c4e722e146101df5780632fb565e8146102085780633f4ba83a1461023457806348cd4cb1146102495780634bb278f3146102725780634bc4549c1461028757806351d10161146102b0578063521eb273146102fd578063536cfceb146103525780635c9302c91461037b5780635c975abb146103a45780637f3cb47b146103d15780638456cb59146103fa5780638da5cb5b1461040f57806399fc381b146104645780639d54f419146104b0578063bbcd5bbe146104e9578063daa1d7d414610522578063e52eb2881461054b578063ecb70fb714610579578063f2c402b6146105a6578063f2fde38b146105cf575b61015233610608565b005b341561015f57600080fd5b610167610c39565b6040518082815260200191505060405180910390f35b341561018857600080fd5b6101b4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c3f565b005b34156101c157600080fd5b6101c9610cde565b6040518082815260200191505060405180910390f35b34156101ea57600080fd5b6101f2610ce4565b6040518082815260200191505060405180910390f35b341561021357600080fd5b6102326004808035906020019091908035906020019091905050610cea565b005b341561023f57600080fd5b610247610ec8565b005b341561025457600080fd5b61025c610f86565b6040518082815260200191505060405180910390f35b341561027d57600080fd5b610285610f8c565b005b341561029257600080fd5b61029a6112ae565b6040518082815260200191505060405180910390f35b34156102bb57600080fd5b6102e7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061130c565b6040518082815260200191505060405180910390f35b341561030857600080fd5b61031061137d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561035d57600080fd5b6103656113a3565b6040518082815260200191505060405180910390f35b341561038657600080fd5b61038e6113d5565b6040518082815260200191505060405180910390f35b34156103af57600080fd5b6103b76113e2565b604051808215151515815260200191505060405180910390f35b34156103dc57600080fd5b6103e46113f5565b6040518082815260200191505060405180910390f35b341561040557600080fd5b61040d6113fb565b005b341561041a57600080fd5b6104226114bb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561046f57600080fd5b61048560048080359060200190919050506114e0565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34156104bb57600080fd5b6104e7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061151f565b005b34156104f457600080fd5b610520600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506115be565b005b341561052d57600080fd5b61053561165d565b6040518082815260200191505060405180910390f35b610577600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610608565b005b341561058457600080fd5b61058c611663565b604051808215151515815260200191505060405180910390f35b34156105b157600080fd5b6105b961166f565b6040518082815260200191505060405180910390f35b34156105da57600080fd5b610606600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506116a1565b005b60008060008060008060008060149054906101000a900460ff1615151561062e57600080fd5b60006106386113d5565b11151561064457600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633af32abf896000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561070957600080fd5b6102c65a03f1151561071a57600080fd5b50505060405180519050151561072f57600080fd5b60008873ffffffffffffffffffffffffffffffffffffffff161415151561075557600080fd5b61075d6117f6565b151561076857600080fd5b61077134611816565b96506001600b80549050039550600b8681548110151561078d57fe5b90600052602060002090600502019450600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e74a48be89886000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561086a57600080fd5b6102c65a03f1151561087b57600080fd5b5050506040518051905093508460040160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054925083831015156108dd57600093506108f3565b6108f0838561183790919063ffffffff16565b93505b838711156109185761090e848861183790919063ffffffff16565b9150839050610920565b600091508690505b600084141561093b57600554341015151561093a57600080fd5b5b610946888387611850565b151561095157600080fd5b61098f8286608060405190810160405290816000820154815260200160018201548152602001600282015481526020016003820154815250506118e2565b151561099a57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156109fc57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1989896000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515610ac957600080fd5b6102c65a03f11515610ada57600080fd5b5050506040518051905050610afc82866001015461192090919063ffffffff16565b8560010181905550610b1b81866003015461192090919063ffffffff16565b8560030181905550610b77878660040160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192090919063ffffffff16565b8560040160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f3f47b3be2da0491a20f4f13ae3cc3a095cbbec3c88dd8b6bfdaae7e65d9f4b59883489604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a15050505050505050565b60025481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9a57600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b60035481565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d4857600080fd5b82600a81905550610e0a600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610de057600080fd5b6102c65a03f11515610df157600080fd5b505050604051805190508461183790919063ffffffff16565b9050600b8054806001018281610e209190611994565b916000526020600020906005020160006080604051908101604052808581526020016000815260200186815260200160008152509091909150600082015181600001556020820151816001015560408201518160020155606082015181600301555050507f8ecf343d22d1934aea3fb34b7332371552b19286c5bc696adae16c7690a90d548383604051808381526020018281526020019250505060405180910390a1505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f2357600080fd5b600060149054906101000a900460ff161515610f3e57600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60015481565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fea57600080fd5b600960149054906101000a900460ff1615151561100657600080fd5b61100e611663565b151561101957600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15156110a757600080fd5b6102c65a03f115156110b857600080fd5b5050506040518051905091506110d860038361193e90919063ffffffff16565b9050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f19600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15156111c957600080fd5b6102c65a03f115156111da57600080fd5b5050506040518051905050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637d64bcb46000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b151561127357600080fd5b6102c65a03f1151561128457600080fd5b50505060405180519050506001600960146101000a81548160ff0219169083151502179055505050565b6000600b60016112bc6113d5565b038154811015156112c957fe5b906000526020600020906005020160030154600b60016112e76113d5565b038154811015156112f457fe5b90600052602060002090600502016001015401905090565b6000600b600161131a6113d5565b0381548110151561132757fe5b906000526020600020906005020160040160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60016113b16113d5565b038154811015156113be57fe5b906000526020600020906005020160000154905090565b6000600b80549050905090565b600060149054906101000a900460ff1681565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561145657600080fd5b600060149054906101000a900460ff1615151561147257600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b818154811015156114ef57fe5b90600052602060002090600502016000915090508060000154908060010154908060020154908060030154905084565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157a57600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561161957600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60045481565b60006002544311905090565b6000600b600161167d6113d5565b0381548110151561168a57fe5b906000526020600020906005020160020154905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116fc57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561173857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080439050600154811015801561181057506002548111155b91505090565b6000670de0b6b3a7640000600354830281151561182f57fe5b049050919050565b600082821115151561184557fe5b818303905092915050565b6000808260040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600001546118d66004546118c860646118ba898761192090919063ffffffff16565b61195990919063ffffffff16565b61193e90919063ffffffff16565b11159150509392505050565b60006118ff8260400151836000015161183790919063ffffffff16565b61191684846020015161192090919063ffffffff16565b1115905092915050565b600080828401905083811015151561193457fe5b8091505092915050565b600080828481151561194c57fe5b0490508091505092915050565b600080600084141561196e576000915061198d565b828402905082848281151561197f57fe5b0414151561198957fe5b8091505b5092915050565b8154818355818115116119c1576005028160050283600052602060002091820191016119c091906119c6565b5b505050565b611a0291905b808211156119fe57600080820160009055600182016000905560028201600090556003820160009055506005016119cc565b5090565b905600a165627a7a7230582007130e7540ed2bb62e03a8937f85b88cd2047ad457f0d0bda4754753bcd08ff2002900000000000000000000000000000000000000000000000000000000005185240000000000000000000000000000000000000000000000000000000000544b4c00000000000000000000000000000000000000000003a60317502b839a7c7600000000000000000000000000000000000000000000000000016345785d8a0000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000007912afd603e09a3d379658fd01777b117265e3b8

   Swarm Source:
bzzr://07130e7540ed2bb62e03a8937f85b88cd2047ad457f0d0bda4754753bcd08ff2

 

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