Sponsored Link:   Trade.io - The Exchange You've Been Waiting For Has Arrived. Instant Verification, Fully Customizable. Pre-Register today
Contract Overview
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 113 txns
  Latest 25 txns from a total Of 113 transactions View All

TxHash Age From To Value [TxFee]
0x4f7538e7d09fdabec92fb3b5deea531db04ca6ebc3dad2d423ee54c708b5665222 days 17 hrs ago0x05f868d7718b8dcee44fb1ac6d2d46a31d604232  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.53 Ether0.005109707
0xc972efbcc7083694d4ae814dc65f02ca2fbd4cdd9aa37b235dd9a017b21c0aae40 days 21 hrs ago0x276b07215eee2e562a52c825bd9af8360d15e497  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.0018 Ether0.0001512
0x6dd9966bdf0040005cd22bcfda8508b475183f566ec46a8b793e79dfcc41a6e341 days 13 hrs ago0x00ea3430c1066f3f506784740ca4cd1bf449cbed  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0 Ether0.0002796
0x130a8b512b4dc0e2f7924153b1349997983411f6936b630d5d2242f02f50b70542 days 16 hrs ago0x6d7e39157459b6a3af1ec5c52e3759dbab71d8f7  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.145 Ether0.00373881
0xce09bf3b8c332ccf2d65a024bb5f72c3f19fe700ffc9b828afd29792d937d82244 days 20 hrs ago0x803f9c6c710283472ced4a1653d62e1df4f18006  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b2 Ether0.000623135
0xe0fc30a87e61a6ed6dd31134a7d002d5aa8f4899a0ac2df4bc3224dc89a62a0f44 days 20 hrs ago0xd2d0300ff6e5c9b61946a0efbfa77ce18c418098  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b1 Ether0.000623135
0x24c90dbcad20c3c516e293fdc74724635beadfdfce9f3109d4bec7d408d3972d51 days 15 hrs ago0x4541b00aea82c07a8a6d92515519151e7d7d1904  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.5 Ether0.000498508
0x4c499c5d8e544f5673663cf5ad432d42d52c09da05dbf495ee598374b2623ff055 days 2 hrs ago0xc4b8e1dcaab945ef75f9410b8a361a471f313e22  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.2 Ether0.005109707
0xa950a6cfee9f065e308bffd9be280625f4996fa8d18a2da8b93ceb072e20a19156 days 23 hrs ago0x8ead2dab807fefe00fea88d47fa7ffb74bece257  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.005 Ether0.002617167
0x516933081d6a5f1907569eea50d92d219c9be3393a79b9aa56ffc527a0d9e91957 days 2 hrs ago0x20f9436d0e7b6282dcb17e663bb8f04c3ea2a4bd  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.1 Ether0.005109707
0x145024348cc3be6c27df268abfbd521f2ca2f8827faf518690ac8f73030b9e3a57 days 4 hrs ago0xe6d1c790a999ea2207d95207502ce4f0d35aa0d1  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.03 Ether0.000249254
0xe74bca782936ec32cfaf8dc9de5a7c6351c0c04f523cfad1830a74173edc65b360 days 17 hrs ago0xcea4322832699d51fbd23218e76661e3e2c144dd  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.1 Ether0.000249254
0x616aec34f4556a1fb007aa4a9c8fa1db5a52ec85db16b253545a22b438de9c8062 days 6 hrs ago0xaa85d555ae2289242809ce39150968c095a88ba2  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b1 Ether0.002617167
0x4556614e510f606f0d86a3aeba170df20e9aaabf4e5297ad84813be26f422ce464 days 9 hrs ago0xc7a1648e30ef91919844dca540bb3d93aff11d5b  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.029668233 Ether0.005109707
0x501d6333cc948a5bbd5ee59cfeb606fccca1d7058a2a64d812fe57321e68ddb864 days 12 hrs ago0x678fbaff44ef02c44df765e657320dc3ca1846ad  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.057 Ether0.000498508
0x7c53acd2aceab91f02948aec1f4585115716cc5d81fba7665c8065f86f4d7cef64 days 12 hrs ago0xdbf0e8e739ad2c51a5398c48e69be2bc020c4a73  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.25 Ether0.000498508
0x399a80272dbfd823068c9496e8d587c7a6839f905a0fe6047660a75c0ea8cadf65 days 5 hrs ago0x9135cc9d739ed4f858afc90e37ee4a8fd1262331  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.01 Ether0.002617167
0xbacd918cc379a9f388b8a590e009fae662ffff128b8cc97f7d6a89f3e0804b5b65 days 19 hrs ago0xd6ab2fa3ff3b68204858adcdb67cddf4feecc88a  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.089101119 Ether0.000223236
0x7ca41f01e1d13cc4be8a8cb2d34442bf3ec3a7dc148457abedbafbd0a6f9ff6f66 days 18 hrs ago0xd6ab2fa3ff3b68204858adcdb67cddf4feecc88a  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.0139 Ether0.000373881
0xef27f839254baa8278d61765a867f4aabf966462cca4233bcdbabe041f8ec7ed69 days 13 hrs ago0x9a22378c31b926d98b55844b7ee97ee6f73ee1b1  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.21 Ether0.002617167
0xd52131fa9d205b13e80f99c1cca2118478c4d081215c49eaccee50cc2091e77471 days 4 hrs ago0x4c982ba2efa7dbed6a549eb556b74c85040d04ed  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.011 Ether0.000124627
0x4e7fc608cf84e914d6a287753fa08aec0531fb87fb26982c9c9be9891b7fc02e71 days 20 hrs ago0x21183a562384bcf3d7bd32a2c22811c6847621f2  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.12 Ether0.000249254
0xef3974ef5e8fcd9ae0bd8dfc3013152fb9d7eea8b5afd35ff1d0962e9409b87d71 days 23 hrs ago0xd3e58225ec74df29ef4d45bf1645d7c931cf14a8  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.023 Ether0.000124627
0xff856ace8a3cfee4c2467c0bf213cea8c2ad082e2d5335b0590008b74b64f09a71 days 23 hrs ago0xd3e58225ec74df29ef4d45bf1645d7c931cf14a8  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.023 Ether0.000021
0x2bf328b60bc26d883f7ec0f1696dee796d2b6bd1c5d9072ade8917766c1656d473 days 22 hrs ago0x9c02c74ffbff4b48ee02ee50bb59060861662d83  IN   0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0.1362 Ether0.005732842
[ 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
0x4f7538e7d09fdabec92fb3b5deea531db04ca6ebc3dad2d423ee54c708b56652536817722 days 17 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.53 Ether
0x130a8b512b4dc0e2f7924153b1349997983411f6936b630d5d2242f02f50b705524930242 days 16 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.145 Ether
0xce09bf3b8c332ccf2d65a024bb5f72c3f19fe700ffc9b828afd29792d937d822523654044 days 20 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202502 Ether
0xe0fc30a87e61a6ed6dd31134a7d002d5aa8f4899a0ac2df4bc3224dc89a62a0f523653844 days 20 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202501 Ether
0x24c90dbcad20c3c516e293fdc74724635beadfdfce9f3109d4bec7d408d3972d519642051 days 15 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.5 Ether
0x4c499c5d8e544f5673663cf5ad432d42d52c09da05dbf495ee598374b2623ff0517604255 days 2 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.2 Ether
0xa950a6cfee9f065e308bffd9be280625f4996fa8d18a2da8b93ceb072e20a191516484456 days 23 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.005 Ether
0x516933081d6a5f1907569eea50d92d219c9be3393a79b9aa56ffc527a0d9e919516423557 days 2 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.1 Ether
0x145024348cc3be6c27df268abfbd521f2ca2f8827faf518690ac8f73030b9e3a516372457 days 4 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.03 Ether
0xe74bca782936ec32cfaf8dc9de5a7c6351c0c04f523cfad1830a74173edc65b3514305260 days 17 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.1 Ether
0x616aec34f4556a1fb007aa4a9c8fa1db5a52ec85db16b253545a22b438de9c80513403662 days 6 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202501 Ether
0x4556614e510f606f0d86a3aeba170df20e9aaabf4e5297ad84813be26f422ce4512152364 days 9 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.029668233 Ether
0x501d6333cc948a5bbd5ee59cfeb606fccca1d7058a2a64d812fe57321e68ddb8512084364 days 12 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.057 Ether
0x7c53acd2aceab91f02948aec1f4585115716cc5d81fba7665c8065f86f4d7cef512074264 days 12 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.25 Ether
0x399a80272dbfd823068c9496e8d587c7a6839f905a0fe6047660a75c0ea8cadf511673965 days 5 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.01 Ether
0xbacd918cc379a9f388b8a590e009fae662ffff128b8cc97f7d6a89f3e0804b5b511319865 days 19 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.089101119 Ether
0x7ca41f01e1d13cc4be8a8cb2d34442bf3ec3a7dc148457abedbafbd0a6f9ff6f510751266 days 18 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.0139 Ether
0xef27f839254baa8278d61765a867f4aabf966462cca4233bcdbabe041f8ec7ed509072569 days 13 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.21 Ether
0xd52131fa9d205b13e80f99c1cca2118478c4d081215c49eaccee50cc2091e774508131571 days 4 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.011 Ether
0x4e7fc608cf84e914d6a287753fa08aec0531fb87fb26982c9c9be9891b7fc02e507722671 days 20 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.12 Ether
0xef3974ef5e8fcd9ae0bd8dfc3013152fb9d7eea8b5afd35ff1d0962e9409b87d507652371 days 23 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.023 Ether
0x2bf328b60bc26d883f7ec0f1696dee796d2b6bd1c5d9072ade8917766c1656d4506466173 days 22 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.1362 Ether
0xb156e14fb2c94964e3f5448da7b21768c37a59dffce39bf70f9a4bccfcc85823505860174 days 23 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.3 Ether
0x323de977ac2a7e8e31583e1ae0f93ee132fb12d146a928620a143b9a4c08982d504999876 days 9 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.13 Ether
0x6327724c99905f24c4474dbd3b803453c532160575d5b4d2f03ea8869c0af43c504801976 days 17 hrs ago0xa854529f651b26dd7d2dc5c10954ffc48357bb5b0x38727b0b03386c68fb41b71af96d1fd095b202500.01 Ether
[ Download CSV Export  ] 
Contract Source Code Verified (Exact match)
Contract Name: Presale
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity ^0.4.18;

// File: contracts/IPricingStrategy.sol

interface IPricingStrategy {

    function isPricingStrategy() public view returns (bool);

    /** Calculate the current price for buy in amount. */
    function calculateTokenAmount(uint weiAmount, uint tokensSold) public view returns (uint tokenAmount);

}

// File: contracts/token/ERC223.sol

contract ERC223 {
    function transfer(address _to, uint _value, bytes _data) public returns (bool);
    function transferFrom(address _from, address _to, uint256 _value, bytes _data) public returns (bool);
    
    event Transfer(address indexed from, address indexed to, uint value, bytes data);
}

// File: zeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  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;
  }

  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;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

// File: zeppelin-solidity/contracts/ownership/Ownable.sol

/**
 * @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;
  }

}

// File: zeppelin-solidity/contracts/ownership/Contactable.sol

/**
 * @title Contactable token
 * @dev Basic version of a contactable contract, allowing the owner to provide a string with their
 * contact information.
 */
contract Contactable is Ownable{

    string public contactInformation;

    /**
     * @dev Allows the owner to set a string with their contact information.
     * @param info The contact information to attach to the contract.
     */
    function setContactInformation(string info) onlyOwner public {
         contactInformation = info;
     }
}

// File: zeppelin-solidity/contracts/token/ERC20Basic.sol

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public view returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

// File: zeppelin-solidity/contracts/token/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: contracts/token/MintableToken.sol

contract MintableToken is ERC20, Contactable {
    using SafeMath for uint;

    mapping (address => uint) balances;
    mapping (address => uint) public holderGroup;
    bool public mintingFinished = false;
    address public minter;

    event MinterChanged(address indexed previousMinter, address indexed newMinter);
    event Mint(address indexed to, uint amount);
    event MintFinished();

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

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

      /**
     * @dev Function to mint tokens
     * @param _to The address that will receive the minted tokens.
     * @param _amount The amount of tokens to mint.
     * @return A boolean that indicates if the operation was successful.
     */
    function mint(address _to, uint _amount, uint _holderGroup) onlyMinter canMint public returns (bool) {
        totalSupply = totalSupply.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        holderGroup[_to] = _holderGroup;
        Mint(_to, _amount);
        Transfer(address(0), _to, _amount);
        return true;
    }

    /**
     * @dev Function to stop minting new tokens.
     * @return True if the operation was successful.
     */
    function finishMinting() onlyMinter canMint public returns (bool) {
        mintingFinished = true;
        MintFinished();
        return true;
    }

    function changeMinter(address _minter) external onlyOwner {
        require(_minter != 0x0);
        MinterChanged(minter, _minter);
        minter = _minter;
    }
}

// File: contracts/token/TokenReciever.sol

/*
 * Contract that is working with ERC223 tokens
 */
 
 contract TokenReciever {
    function tokenFallback(address _from, uint _value, bytes _data) public pure {
    }
}

// File: contracts/token/HeroCoin.sol

contract HeroCoin is ERC223, MintableToken {
    using SafeMath for uint;

    string constant public name = "HeroCoin";
    string constant public symbol = "HRO";
    uint constant public decimals = 18;

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

    mapping (uint => uint) public activationTime;

    modifier activeForHolder(address holder) {
        uint group = holderGroup[holder];
        require(activationTime[group] <= now);
        _;
    }

    /**
    * @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, uint _value) public returns (bool) {
        bytes memory empty;
        return transfer(_to, _value, empty);
    }

    /**
    * @dev transfer token for a specified address
    * @param _to The address to transfer to.
    * @param _value The amount to be transferred.
    * @param _data Optional metadata.
    */
    function transfer(address _to, uint _value, bytes _data) public activeForHolder(msg.sender) 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);

        if (isContract(_to)) {
            TokenReciever receiver = TokenReciever(_to);
            receiver.tokenFallback(msg.sender, _value, _data);
        }

        Transfer(msg.sender, _to, _value);
        Transfer(msg.sender, _to, _value, _data);
        return true;
    }

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

    /**
     * @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 uint the amount of tokens to be transferred
     */
    function transferFrom(address _from, address _to, uint _value) activeForHolder(_from) public returns (bool) {
        bytes memory empty;
        return transferFrom(_from, _to, _value, empty);
    }

    /**
     * @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 uint the amount of tokens to be transferred
     * @param _data Optional metadata.
     */
    function transferFrom(address _from, address _to, uint _value, bytes _data) public 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);

        if (isContract(_to)) {
            TokenReciever receiver = TokenReciever(_to);
            receiver.tokenFallback(msg.sender, _value, _data);
        }

        Transfer(_from, _to, _value);
        Transfer(_from, _to, _value, _data);
        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, uint _value) public 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 uint specifying the amount of tokens still available for the spender.
     */
    function allowance(address _owner, address _spender) public view returns (uint) {
        return allowed[_owner][_spender];
    }

    /**
     * @dev Increase the amount of tokens that an owner allowed to a 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
     * @param _spender The address which will spend the funds.
     * @param _addedValue The amount of tokens to increase the allowance by.
     */
    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;
    }

    /**
     * @dev Decrease the amount of tokens that an owner allowed to a spender.
     *
     * approve should be called when allowed[_spender] == 0. To decrement
     * allowed value is better to use this function to avoid 2 calls (and wait until
     * the first transaction is mined)
     * From MonolithDAO Token.sol
     * @param _spender The address which will spend the funds.
     * @param _subtractedValue The amount of tokens to decrease the allowance by.
     */
    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;
    }

    function setActivationTime(uint _holderGroup, uint _activationTime) external onlyOwner {
        activationTime[_holderGroup] = _activationTime;
    }

    function setHolderGroup(address _holder, uint _holderGroup) external onlyOwner {
        holderGroup[_holder] = _holderGroup;
    }

    function isContract(address _addr) private view returns (bool) {
        uint length;
        assembly {
              //retrieve the size of the code on target address, this needs assembly
              length := extcodesize(_addr)
        }
        return (length>0);
    }
}

// File: zeppelin-solidity/contracts/lifecycle/Pausable.sol

/**
 * @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();
  }
}

// File: contracts/SaleBase.sol

contract SaleBase is Pausable, Contactable {
    using SafeMath for uint;
  
    // The token being sold
    HeroCoin public token;
  
    // start and end timestamps where purchases are allowed (both inclusive)
    uint public startTime;
    uint public endTime;
  
    // address where funds are collected
    address public wallet;
  
    // the contract, which determine how many token units a buyer gets per wei
    IPricingStrategy public pricingStrategy;
  
    // amount of raised money in wei
    uint public weiRaised;

    // amount of tokens that was sold on the crowdsale
    uint public tokensSold;

    // maximum amount of wei in total, that can be bought
    uint public weiMaximumGoal;

    // if weiMinimumGoal will not be reached till endTime, buyers will be able to refund ETH
    uint public weiMinimumGoal;

    // minimum amount of wel, that can be contributed
    uint public weiMinimumAmount;

    // How many distinct addresses have bought
    uint public buyerCount;

    // how much wei we have returned back to the contract after a failed crowdfund
    uint public loadedRefund;

    // how much wei we have given back to buyers
    uint public weiRefunded;

    // how much ETH each address has bought to this crowdsale
    mapping (address => uint) public boughtAmountOf;

    // holder group of sale buyers, must be defined in child contract
    function holderGroupNumber() pure returns (uint) {
        return 0;
    }

    /**
     * event for token purchase logging
     * @param purchaser who paid for the tokens
     * @param beneficiary who got the tokens
     * @param value weis paid for purchase
     * @param tokenAmount amount of tokens purchased
     */
    event TokenPurchase(
        address indexed purchaser,
        address indexed beneficiary,
        uint value,
        uint tokenAmount
    );

    // a refund was processed for an buyer
    event Refund(address buyer, uint weiAmount);

    function SaleBase(
        uint _startTime,
        uint _endTime,
        IPricingStrategy _pricingStrategy,
        HeroCoin _token,
        address _wallet,
        uint _weiMaximumGoal,
        uint _weiMinimumGoal,
        uint _weiMinimumAmount
    ) public
    {
        require(_pricingStrategy.isPricingStrategy());
        require(address(_token) != 0x0);
        require(_wallet != 0x0);
        require(_weiMaximumGoal > 0);

        setStartTime(_startTime);
        setEndTime(_endTime);
        pricingStrategy = _pricingStrategy;
        token = _token;
        wallet = _wallet;
        weiMaximumGoal = _weiMaximumGoal;
        weiMinimumGoal = _weiMinimumGoal;
        weiMinimumAmount = _weiMinimumAmount;
    }

    // fallback function can be used to buy tokens
    function () external payable {
        buyTokens(msg.sender);
    }

    // low level token purchase function
    function buyTokens(address beneficiary) public whenNotPaused payable returns (bool) {
        uint weiAmount = msg.value;

        require(beneficiary != 0x0);
        require(validPurchase(weiAmount));
    
        // calculate token amount to be created
        uint tokenAmount = pricingStrategy.calculateTokenAmount(weiAmount, tokensSold);
        
        mintTokenToBuyer(beneficiary, tokenAmount, weiAmount);
        
        wallet.transfer(msg.value);

        return true;
    }

    function mintTokenToBuyer(address beneficiary, uint tokenAmount, uint weiAmount) internal {
        if (boughtAmountOf[beneficiary] == 0) {
            // A new buyer
            buyerCount++;
        }

        boughtAmountOf[beneficiary] = boughtAmountOf[beneficiary].add(weiAmount);
        weiRaised = weiRaised.add(weiAmount);
        tokensSold = tokensSold.add(tokenAmount);
    
        token.mint(beneficiary, tokenAmount, holderGroupNumber());
        TokenPurchase(msg.sender, beneficiary, weiAmount, tokenAmount);
    }

    // return true if the transaction can buy tokens
    function validPurchase(uint weiAmount) internal constant returns (bool) {
        bool withinPeriod = now >= startTime && now <= endTime;
        bool withinCap = weiRaised.add(weiAmount) <= weiMaximumGoal;
        bool moreThenMinimum = weiAmount >= weiMinimumAmount;

        return withinPeriod && withinCap && moreThenMinimum;
    }

    // return true if crowdsale event has ended
    function hasEnded() external constant returns (bool) {
        bool capReached = weiRaised >= weiMaximumGoal;
        bool afterEndTime = now > endTime;
        
        return capReached || afterEndTime;
    }

    // get the amount of unsold tokens allocated to this contract;
    function getWeiLeft() external constant returns (uint) {
        return weiMaximumGoal - weiRaised;
    }

    // return true if the crowdsale has raised enough money to be a successful.
    function isMinimumGoalReached() public constant returns (bool) {
        return weiRaised >= weiMinimumGoal;
    }
    
    // allows to update tokens rate for owner
    function setPricingStrategy(IPricingStrategy _pricingStrategy) external onlyOwner returns (bool) {
        pricingStrategy = _pricingStrategy;
        return true;
    }

    /**
    * 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() external payable {
        require(msg.value > 0);
        require(!isMinimumGoalReached());
        
        loadedRefund = loadedRefund.add(msg.value);
    }

    /**
    * Buyers can claim refund.
    *
    * Note that any refunds from proxy buyers should be handled separately,
    * and not through this contract.
    */
    function refund() external {
        require(!isMinimumGoalReached() && loadedRefund > 0);
        uint256 weiValue = boughtAmountOf[msg.sender];
        require(weiValue > 0);
        
        boughtAmountOf[msg.sender] = 0;
        weiRefunded = weiRefunded.add(weiValue);
        Refund(msg.sender, weiValue);
        msg.sender.transfer(weiValue);
    }

    function setStartTime(uint _startTime) public onlyOwner {
        require(_startTime >= now);
        startTime = _startTime;
    }

    function setEndTime(uint _endTime) public onlyOwner {
        require(_endTime >= startTime);
        endTime = _endTime;
    }
}

// File: contracts/presale/Presale.sol

/**
 * @title Presale
 * @dev Presale is a contract for managing a token crowdsale.
 * Presales have a start and end timestamps, where buyers can make
 * token purchases and the crowdsale will assign them tokens based
 * on a token per ETH rate. Funds collected are forwarded to a wallet
 * as they arrive.
 */
contract Presale is SaleBase {
    function Presale(
        uint _startTime,
        uint _endTime,
        IPricingStrategy _pricingStrategy,
        HeroCoin _token,
        address _wallet,
        uint _weiMaximumGoal,
        uint _weiMinimumGoal,
        uint _weiMinimumAmount
    ) public SaleBase(
        _startTime,
        _endTime,
        _pricingStrategy,
        _token,
        _wallet,
        _weiMaximumGoal,
        _weiMinimumGoal,
        _weiMinimumAmount) 
    {

    }

    function holderGroupNumber() public pure returns (uint) {
        return 1;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"getWeiLeft","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contactInformation","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiMinimumAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"}],"name":"setStartTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_pricingStrategy","type":"address"}],"name":"setPricingStrategy","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensSold","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":"weiMaximumGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRefunded","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pricingStrategy","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"loadedRefund","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isMinimumGoalReached","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiMinimumGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"loadRefund","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyerCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"boughtAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"info","type":"string"}],"name":"setContactInformation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"holderGroupNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_endTime","type":"uint256"}],"name":"setEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[{"name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"},{"name":"_pricingStrategy","type":"address"},{"name":"_token","type":"address"},{"name":"_wallet","type":"address"},{"name":"_weiMaximumGoal","type":"uint256"},{"name":"_weiMinimumGoal","type":"uint256"},{"name":"_weiMinimumAmount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"tokenAmount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"}],"name":"Refund","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
60606040526000805460a060020a60ff021916905534156200002057600080fd5b604051610100806200101183398101604052808051919060200180519190602001805191906020018051919060200180519190602001805191906020018051919060200180519060200190919050508787878787878787336000806101000a815481600160a060020a030219169083600160a060020a0316021790555085600160a060020a03166304bbc2556000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620000fd57600080fd5b6102c65a03f115156200010f57600080fd5b5050506040518051905015156200012557600080fd5b600160a060020a03851615156200013b57600080fd5b600160a060020a03841615156200015157600080fd5b600083116200015f57600080fd5b6200017888640100000000620006a4620001ef82021704565b620001918764010000000062000a0b6200021e82021704565b60068054600160a060020a0319908116600160a060020a039889161790915560028054821696881696909617909555600580549095169390951692909217909255600991909155600a55600b55506200024f98505050505050505050565b60005433600160a060020a039081169116146200020b57600080fd5b428110156200021957600080fd5b600355565b60005433600160a060020a039081169116146200023a57600080fd5b6003548110156200024a57600080fd5b600455565b610db2806200025f6000396000f3006060604052600436106101715763ffffffff60e060020a600035041663122e74f4811461017d5780633197cbb6146101a257806336f7ab5e146101b557806338310f491461023f5780633e0a322d146102525780633f4ba83a1461026a5780634042b66f1461027d57806350c6773414610290578063518ab2a8146102c3578063521eb273146102d65780635506aa6c14610305578063590e1ae3146103185780635c975abb1461032b5780635da89ac01461033e57806378b99c241461035157806378e9792514610364578063797d9437146103775780637c2e08a31461038a578063827687081461039d5780638456cb59146103b057806387612102146103c35780638da5cb5b146103cb5780639e0cea05146103de578063b6f35624146103f1578063b967a52e14610410578063c12076f114610461578063ccb98ffc14610474578063ec8ac4d81461048a578063ecb70fb71461049e578063f2fde38b146104b1578063fc0c546a146104d0575b61017a336104e3565b50005b341561018857600080fd5b6101906105ef565b60405190815260200160405180910390f35b34156101ad57600080fd5b6101906105fa565b34156101c057600080fd5b6101c8610600565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102045780820151838201526020016101ec565b50505050905090810190601f1680156102315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561024a57600080fd5b61019061069e565b341561025d57600080fd5b6102686004356106a4565b005b341561027557600080fd5b6102686106d1565b341561028857600080fd5b610190610750565b341561029b57600080fd5b6102af600160a060020a0360043516610756565b604051901515815260200160405180910390f35b34156102ce57600080fd5b6101906107a4565b34156102e157600080fd5b6102e96107aa565b604051600160a060020a03909116815260200160405180910390f35b341561031057600080fd5b6101906107b9565b341561032357600080fd5b6102686107bf565b341561033657600080fd5b6102af6108b0565b341561034957600080fd5b6101906108c0565b341561035c57600080fd5b6102e96108c6565b341561036f57600080fd5b6101906108d5565b341561038257600080fd5b6101906108db565b341561039557600080fd5b6102af6108e1565b34156103a857600080fd5b6101906108ec565b34156103bb57600080fd5b6102686108f2565b610268610976565b34156103d657600080fd5b6102e96109ad565b34156103e957600080fd5b6101906109bc565b34156103fc57600080fd5b610190600160a060020a03600435166109c2565b341561041b57600080fd5b61026860046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506109d495505050505050565b341561046c57600080fd5b610190610a06565b341561047f57600080fd5b610268600435610a0b565b6102af600160a060020a03600435166104e3565b34156104a957600080fd5b6102af610a3a565b34156104bc57600080fd5b610268600160a060020a0360043516610a5d565b34156104db57600080fd5b6102e9610af8565b600080548190819060a060020a900460ff16156104ff57600080fd5b349150600160a060020a038416151561051757600080fd5b61052082610b07565b151561052b57600080fd5b600654600854600160a060020a0390911690630355383590849060006040516020015260405160e060020a63ffffffff851602815260048101929092526024820152604401602060405180830381600087803b151561058957600080fd5b6102c65a03f1151561059a57600080fd5b5050506040518051905090506105b1848284610b63565b600554600160a060020a03163480156108fc0290604051600060405180830381858888f1935050505015156105e557600080fd5b5060019392505050565b600754600954035b90565b60045481565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106965780601f1061066b57610100808354040283529160200191610696565b820191906000526020600020905b81548152906001019060200180831161067957829003601f168201915b505050505081565b600b5481565b60005433600160a060020a039081169116146106bf57600080fd5b428110156106cc57600080fd5b600355565b60005433600160a060020a039081169116146106ec57600080fd5b60005460a060020a900460ff16151561070457600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60075481565b6000805433600160a060020a0390811691161461077257600080fd5b5060068054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff199091161790556001919050565b60085481565b600554600160a060020a031681565b60095481565b60006107c96108e1565b1580156107d857506000600d54115b15156107e357600080fd5b50600160a060020a0333166000908152600f602052604081205490811161080957600080fd5b600160a060020a0333166000908152600f6020526040812055600e54610835908263ffffffff610cd816565b600e557fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d3382604051600160a060020a03909216825260208201526040908101905180910390a1600160a060020a03331681156108fc0282604051600060405180830381858888f1935050505015156108ad57600080fd5b50565b60005460a060020a900460ff1681565b600e5481565b600654600160a060020a031681565b60035481565b600d5481565b600a54600754101590565b600a5481565b60005433600160a060020a0390811691161461090d57600080fd5b60005460a060020a900460ff161561092457600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000341161098357600080fd5b61098b6108e1565b1561099557600080fd5b600d546109a8903463ffffffff610cd816565b600d55565b600054600160a060020a031681565b600c5481565b600f6020526000908152604090205481565b60005433600160a060020a039081169116146109ef57600080fd5b6001818051610a02929160200190610cee565b5050565b600190565b60005433600160a060020a03908116911614610a2657600080fd5b600354811015610a3557600080fd5b600455565b600954600754600454600092909110159042118180610a565750805b9250505090565b60005433600160a060020a03908116911614610a7857600080fd5b600160a060020a0381161515610a8d57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600160a060020a031681565b6000806000806003544210158015610b2157506004544211155b9250600954610b3b86600754610cd890919063ffffffff16565b11159150600b548510159050828015610b515750815b8015610b5a5750805b95945050505050565b600160a060020a0383166000908152600f60205260409020541515610b8c57600c805460010190555b600160a060020a0383166000908152600f6020526040902054610bb5908263ffffffff610cd816565b600160a060020a0384166000908152600f6020526040902055600754610be1908263ffffffff610cd816565b600755600854610bf7908363ffffffff610cd816565b600855600254600160a060020a031663156e29f68484610c15610a06565b60006040516020015260405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515610c6957600080fd5b6102c65a03f11515610c7a57600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18838560405191825260208201526040908101905180910390a3505050565b600082820183811015610ce757fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d2f57805160ff1916838001178555610d5c565b82800160010185558215610d5c579182015b82811115610d5c578251825591602001919060010190610d41565b50610d68929150610d6c565b5090565b6105f791905b80821115610d685760008155600101610d725600a165627a7a723058206bb6a6157641765e052ddc16101d805f9cc05fecdbddb1c59b442de5f4ed6bad0029000000000000000000000000000000000000000000000000000000005a6f36f0000000000000000000000000000000000000000000000000000000005aabdbf0000000000000000000000000699191a2964c052f00ca33de9d80c3c4250d6d54000000000000000000000000e43f82bd5dd75fce3fd35000f5fca11a9c9ab26700000000000000000000000038727b0b03386c68fb41b71af96d1fd095b2025000000000000000000000000000000000000000000000002b5e3af16b1880000000000000000000000000000000000000000000000000001043561a882930000000000000000000000000000000000000000000000000000000038d7ea4c68000

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

-----Decoded View---------------
Found 8 constructor arguments :
Arg [0] : 000000000000000000000000000000000000000000000000000000005a6f36f0
Arg [1] : 000000000000000000000000000000000000000000000000000000005aabdbf0
Arg [2] : 000000000000000000000000699191a2964c052f00ca33de9d80c3c4250d6d54
Arg [3] : 000000000000000000000000e43f82bd5dd75fce3fd35000f5fca11a9c9ab267
Arg [4] : 00000000000000000000000038727b0b03386c68fb41b71af96d1fd095b20250
Arg [5] : 00000000000000000000000000000000000000000000002b5e3af16b18800000
Arg [6] : 00000000000000000000000000000000000000000000001043561a8829300000
Arg [7] : 00000000000000000000000000000000000000000000000000038d7ea4c68000


   Swarm Source:
bzzr://6bb6a6157641765e052ddc16101d805f9cc05fecdbddb1c59b442de5f4ed6bad

 

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.