Sponsored Link:  Up to 2% Cryptocurrency Cashback - Reserve your card - Monaco App - www.mona.co
Contract Overview | RequestNetworkTokenSale
ETH Balance: 0 Ether
ETH USD Value: $0
No Of Transactions: 19265 txns
  Latest 25 txns from a total Of 19265 transactions View All

TxHash Age From To Value [TxFee]
0x90556b9721914507784cb4340b5155f6f8594be3aa9704ea04b612450087e07a1 day 6 hrs ago0xd90288654f67d0365460e0103d44e947fa94170f  IN  RequestNetworkTokenSale0.07093899 Ether0.00176832
0x2502452b5bed6b690241c4af8266c5559bc1a1dbf9b01179b23f24143cdf9cfc6 days 23 hrs ago0xe2f3c353da78093e36bc23835423c542ddb02ef8  IN  RequestNetworkTokenSale0.6200521 Ether0.001812528
0x8a12c77b06291adabd4c5f5cd14e4ac2b4374b20b68fe68cbe3190370dfe698e7 days 20 hrs ago0x517f2d41bbcdd140e256e03732357660ece31b80  IN  RequestNetworkTokenSale0.06215557 Ether0.000928368
0x0190a73f1e7e94d1ade0bb1898c22edb8e1f8a963187f9dce439e06029083ade32 days 3 hrs ago0xdc5c2969188ef29c9930be4f9a681134954a1eea  IN  RequestNetworkTokenSale0.13 Ether0.000928368
0xdfa6eb7417d44727b454912ae8efdef95caecc7b10790b10fdf69ac6da93569f38 days 4 hrs ago0xe7cd18d826aadde48166b21065187eb4ecb94407  IN  RequestNetworkTokenSale0.003569 Ether0.000441
0xa7830574962024dbd744365513a4f2808353ef8526772bf791b53b2db8f7bfb558 days 16 hrs ago0xcd87c88a615595faf9be10b8bf043c1e879e52ea  IN  RequestNetworkTokenSale0 Ether0.000675423
0x99d53df95c72a808606933a2f03a73d0b03ca6d5b8b9347d82e1d343c02a723959 days 1 hr ago0x28b4b8fa668a7944b2a5347d67d51f9de06bf356  IN  RequestNetworkTokenSale0 Ether0.0001856965
0xc5b75e2b35e7cd95dad980d48699b696ef2777a86819564af8ca9d2a9e9fbcf259 days 21 hrs ago0x3696c4342000eeb201c133bff579f10bb8686742  IN  RequestNetworkTokenSale5 Ether0.00058416
0xac30772f85e6d8f3e8ff6f0d67063760def77ba188e2349934f68f4410377c1c62 days 13 hrs ago0x8545f95ccdc0d9976cb6f55df4d9d170be6bec2f  IN  RequestNetworkTokenSale26.852 Ether0.001431682
0xd9719c9a9833d1b2850e9eda69973d8f1de8a9cd756d932ce1b4a6905cf727fe62 days 17 hrs ago0x006e8c126eb96342ee39e14fc0274043b2ada1e8  IN  RequestNetworkTokenSale26.852 Ether0.0014287602
0xe3f4de3822e522c893d52a7ef37d890098b914a247a30aadc11c967e2cfe2c5b62 days 19 hrs ago0x5a0e4b1ec378967c8371cc6d05c1c3f2f21724a8  IN  RequestNetworkTokenSale0.1 Ether0.000441
0xed58f7e0bf3595c1e27ec31586c49da89a98565b78c7bd2279b6c073effd80e262 days 19 hrs ago0xc060bf507cbab861a148bca827aad6729fb21387  IN  RequestNetworkTokenSale0.48 Ether0.00063
0x7f304d9ece7f8b7e4e189f407b877a66cadc6b535f4724593afe4200aa0e4d7062 days 21 hrs ago0x06516359c122e34ca7cb864d11a3fa1acbe25558  IN  RequestNetworkTokenSale13.426 Ether0.0098
0x534f3e790222972b552d98c34cd5efc22a4c32d6de3c20336e44040c17eaf2ea63 days 1 hr ago0xd225fcb7d69b5203e790616c88b28fd4f2991a05  IN  RequestNetworkTokenSale0.01337 Ether0.000441
0x3786bf20e48ffba30153e6151e2e1f77eb05794c908e5455d02a773d1b32476d63 days 1 hr ago0xf381378799ccfa7d1b51d74ec8abd85bfa910ce0  IN  RequestNetworkTokenSale1 Ether0.01225
0x01a798a4d502623676c1adc72dd98e1b9144156f514d092310f341e97e888d4d63 days 1 hr ago0x867d6b56809d4545a7f53e1d4fabe9086fdeb60b  IN  RequestNetworkTokenSale0.01347563 Ether0.002012283
0xd188f54d8eb9868324e676cae1bbf37f7c947b154362d764cee972aa79892fff63 days 1 hr ago0x0035fc5208ef989c28d47e552e92b0c507d2b318  IN  RequestNetworkTokenSale0.21916601893144 Ether0.00241095
0x5d09f38d9e6b04231f1875ba1466722a5c8670796348cbbc4389cbe343a9dc4363 days 1 hr ago0x1dc68a9772597242ed8f9826df4fa8662a0d3ca2  IN  RequestNetworkTokenSale3.2 Ether0.0098
0xda24d6ca896c0585f071fd7d924c772627e905fa712feb41acaf5509ba5d9b6c63 days 1 hr ago0x867d6b56809d4545a7f53e1d4fabe9086fdeb60b  IN  RequestNetworkTokenSale0.999999 Ether0.000766584
0x9912baaca49d87934cc3427e15686baee00fd3f641cf1f1c38e3c6cbf65ac5b263 days 1 hr ago0xf673ace9c0c72a856d42c97df9e5c1a147fb8c8b  IN  RequestNetworkTokenSale0.98 Ether0.001327599
0x5d4d8ede5c97b396a5889ebfc4447d83633df59bf32e9fa3ed4f0244f8f1747963 days 1 hr ago0x03dfa016f970b7d4013cafad82c3c963fd3ea05f  IN  RequestNetworkTokenSale1 Ether0.0098
0xd3f73afadf29d3f27f7059ea9ad3f4cf5635b8602d24481bf915df5c11decf5763 days 1 hr ago0x03dfa016f970b7d4013cafad82c3c963fd3ea05f  IN  RequestNetworkTokenSale1 Ether0.0098
0x9f470f595729c3cec987f3afc5218fbc2e3152048d2ad52bcb13d37b10bfb20963 days 1 hr ago0xf381378799ccfa7d1b51d74ec8abd85bfa910ce0  IN  RequestNetworkTokenSale1 Ether0.01225
0x1a2391b74b958dc1db710b631f7f15d4ec789f69eb2770a953db95788a51782e63 days 1 hr ago0xf381378799ccfa7d1b51d74ec8abd85bfa910ce0  IN  RequestNetworkTokenSale1 Ether0.01225
0x594e9259defcb9a8de735dbf117e03d9031c33243732f26f2616a6457e504efb63 days 1 hr ago0x33d5427ba2c1dbc9bd8cf76b9fdefb93d0f5ca08  IN  RequestNetworkTokenSale1 Ether0.001029
[ 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
0xd188f54d8eb9868324e676cae1bbf37f7c947b154362d764cee972aa79892fff436931463 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.219166018931440605 Ether
0x9912baaca49d87934cc3427e15686baee00fd3f641cf1f1c38e3c6cbf65ac5b2436930063 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.98 Ether
0xbb9f9dadb877cdb53b98fb13a2b5f4cae7afa1680311ec29b348dc3e8ee65924436929563 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce73 Ether
0x32b2a8ffaa85ec318aa91cb23c79b240d14c3f30993923f0042bbe93846939be436929563 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.3 Ether
0x40c205358199cb726b54edc457d4ce963eaf2e26ab5b97482eda9bf872a4a998436929263 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.99 Ether
0x2021b3874bbb611917dd605b3888f9cace0c067bbaf65c3438417df5b503b961436929263 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.73 Ether
0x3ddf67ce95bf3d28d5f94bb7505dfbb5f9437d71ae8d9849d361997710863f19436929263 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce73 Ether
0xe5b1feeca9ac3c58acf72171a7046a9b46f3b6ef23cdb421da828fd2b18b22fc436929063 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce78.5 Ether
0xbcf12af6102b18958805695b54e9f63f2571fcee50c2ccd1872758e5f3c4ff56436929063 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.8 Ether
0x817c259dec8f014b5f219f7441f7b030403246b4b3584e40d0c743874eb574d6436928963 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce711.65 Ether
0x8f3ebfecd9beda5a447e86fe6ebb4d088816b8f764b6a42bda5b63c29c716efa436928863 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.36 Ether
0xc87913538cda9066cccb629e03f779a27f15e46c05798d176b322b28f47b0b1e436928463 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce710 Ether
0x4c72508e68ba7477eaf3daf1852702f212a79190983f195838e4570e2f3eceaf436928163 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce76.713 Ether
0x027d44a1aeb74cfc9e8dd0c5db082b20524b50d530293a12da8e43e11f09cab7436928163 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce711.65 Ether
0xd8cd2d80c82782d87528a35f1854a7c2877aa3616758aa0b187a055f48327d0b436927763 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.635 Ether
0xa30523867ce293ad37e8c492555c0d81cf30b26a0e8a349cce4a57d8a0cd46e8436927763 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce76.713 Ether
0xdeebc20153db76a16c7c5938c1444a08f50ff04894fc54d38505a1ff884c9349436927663 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce72.7 Ether
0x82c44d93a699fcdd0249f283686e79a6160d91e0db50ba65b3a9e3217ae1935e436927663 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.4 Ether
0x68ee2648192d479ec68f8fd8862ccc9dd803b2efda19500d3918c7134101d587436926863 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce75 Ether
0x16e2c7c25520aa4f7602a60586cb04906598916ba29b9587f6e13af817c3307a436926863 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce72.5 Ether
0x37112b5d3b4ab23131397e997c38afd4b8529f2e97f015c6f65997d61264bb1e436926863 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce713 Ether
0xea1aea880689e3735daa20490ab2095c0c9cadeebbed053742d6bfd12df77a8f436926863 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce70.99 Ether
0xd61ca2ddc8d21910cba86a649f4ee2e333a3979b64a48529fca272368d92b94d436926863 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce73.3 Ether
0xa6781c3c95335f746a7bfcca1edaa3fcf707401c4a97c462ef4a8dc039d3a5cd436926763 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce711.65 Ether
0x4fa433922ce0d2fede73ffd9c1403c78014ea0b2cc9f9a9d9fe6277b5c55461e436926463 days 1 hr ago0x97208bf5dc25e6fd4719cfc2a3c1d1a59a974c3b0xdd76b55ee6dafe0c7c978bff69206d476a5b9ce73.4 Ether
[ Download CSV Export  ] 
Warning: The compiled contract might be susceptible to ZeroFunctionSelector (very low-severity) Solidity compiler bugs.

Contract Source Code Verified
Contract Name: RequestTokenSale
Compiler Version: v0.4.15+commit.bbb8e64f
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts
pragma solidity 0.4.15;

/**
 * @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() {
    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) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant 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 constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

/**
 * @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 constant returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public constant 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);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) 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 returns (bool) {
    require(_to != address(0));

    // 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 constant returns (uint256 balance) {
    return balances[_owner];
  }
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) 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 amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));

    uint256 _allowance = allowed[_from][msg.sender];

    // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
    // require (_value <= _allowance);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = _allowance.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 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 constant returns (uint256 remaining) {
    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)
    returns (bool success) {
    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)
    returns (bool success) {
    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;
  }
}

/**
 * @title StandardCrowdsale 
 * @dev StandardCrowdsale is a base contract for managing a token crowdsale.
 * Crowdsales have a start and end timestamps, where investors 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.
 * @dev from Crowdsale by Zepellin with small changes. Changes are commented with "Request Modification"
 */
contract StandardCrowdsale {
    using SafeMath for uint256;

    // The token being sold
    StandardToken public token; // Request Modification : change to not mintable

    // start and end timestamps where investments are allowed (both inclusive)
    uint256 public startTime;
    uint256 public endTime;

    // address where funds are collected
    address public wallet;

    // how many token units a buyer gets per wei
    uint256 public rate;

    // amount of raised money in wei
    uint256 public weiRaised;

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

    function StandardCrowdsale(
        uint256 _startTime, 
        uint256 _endTime, 
        uint256 _rate, 
        address _wallet) 
    {
        require(_startTime >= now);
        require(_endTime >= _startTime);
        require(_rate > 0);
        require(_wallet != 0x0);

        startTime = _startTime;
        endTime = _endTime;
        rate = _rate;
        wallet = _wallet;

        token = createTokenContract(); // Request Modification : change to StandardToken + position
    }

    // creates the token to be sold.
    // Request Modification : change to StandardToken
    // override this method to have crowdsale of a specific mintable token.
    function createTokenContract() 
        internal 
        returns(StandardToken) 
    {
        return new StandardToken();
    }

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

    // low level token purchase function
    // Request Modification : change to not mint but transfer from this contract
    function buyTokens() 
       public 
       payable 
    {
        require(validPurchase());

        uint256 weiAmount = msg.value;

        // calculate token amount to be created
        uint256 tokens = weiAmount.mul(rate);

        // update state
        weiRaised = weiRaised.add(weiAmount);

        require(token.transfer(msg.sender, tokens)); // Request Modification : changed here - tranfer instead of mintable
        TokenPurchase(msg.sender, weiAmount, tokens);

        forwardFunds();
    }

    // send ether to the fund collection wallet
    // override to create custom fund forwarding mechanisms
    function forwardFunds() 
       internal 
    {
        wallet.transfer(msg.value);
    }

    // @return true if the transaction can buy tokens
    function validPurchase() 
        internal 
        returns(bool) 
    {
        bool withinPeriod = now >= startTime && now <= endTime;
        bool nonZeroPurchase = msg.value != 0;
        return withinPeriod && nonZeroPurchase;
    }

    // @return true if crowdsale event has ended
    function hasEnded() 
        public 
        constant 
        returns(bool) 
    {
        return now > endTime;
    }

    modifier onlyBeforeSale() {
        require(now < startTime);
        _;
    }

    // Request Modification : Add check 24hours before token sale
    modifier only24HBeforeSale() {
        require(now < startTime.sub(1 days));
        _;
    }
}

/**
 * @title CappedCrowdsale
 * @dev Extension of Crowdsale with a max amount of funds raised
 */
contract CappedCrowdsale is StandardCrowdsale {
  using SafeMath for uint256;

  uint256 public cap;

  function CappedCrowdsale(uint256 _cap) {
    require(_cap > 0);
    cap = _cap;
  }

  // overriding Crowdsale#validPurchase to add extra cap logic
  // @return true if investors can buy at the moment
  // Request Modification : delete constant because needed in son contract
  function validPurchase() internal returns (bool) {
    bool withinCap = weiRaised.add(msg.value) <= cap;
    return super.validPurchase() && withinCap;
  }

  // overriding Crowdsale#hasEnded to add cap logic
  // @return true if crowdsale event has ended
  function hasEnded() public constant returns (bool) {
    bool capReached = weiRaised >= cap;
    return super.hasEnded() || capReached;
  }
}

/**
 * @title ProgressiveIndividualCappedCrowdsale
 * @dev Extension of Crowdsale with a progressive individual cap
 * @dev This contract is not made for crowdsale superior to 256 * TIME_PERIOD_IN_SEC
 * @author Request.network
 */
contract ProgressiveIndividualCappedCrowdsale is StandardCrowdsale, Ownable {

    uint public constant TIME_PERIOD_IN_SEC = 1 days;
    uint public constant GAS_LIMIT_IN_WEI = 50000000000 wei; // limit gas price -50 Gwei wales stopper
    uint256 public baseEthCapPerAddress = 0 ether;

    mapping(address=>uint) public participated;

    /**
     * @dev overriding CappedCrowdsale#validPurchase to add an individual cap
     * @return true if investors can buy at the moment
     */
    function validPurchase() 
        internal 
        returns(bool)
    {
        require(tx.gasprice <= GAS_LIMIT_IN_WEI);
        uint ethCapPerAddress = getCurrentEthCapPerAddress();
        participated[msg.sender] = participated[msg.sender].add(msg.value);
        return super.validPurchase() && participated[msg.sender] <= ethCapPerAddress;
    }

    /**
     * @dev Set the individual cap for the first day. This function can not be called withing the 24h before the sale for security reasons
     * @param _baseEthCapPerAddress base cap in wei
     */
    function setBaseEthCapPerAddress(uint256 _baseEthCapPerAddress) 
        public
        onlyOwner 
        only24HBeforeSale
    {
        baseEthCapPerAddress = _baseEthCapPerAddress;
    }

    /**
     * @dev Get the current individual cap. 
     * @dev This amount increase everyday in an exponential way. Day 1: base cap, Day 2: 2 * base cap, Day 3: 4 * base cap ...
     * @return individual cap in wei
     */
    function getCurrentEthCapPerAddress() 
        public
        constant
        returns(uint)
    {
        if (block.timestamp < startTime) return 0;
        uint timeSinceStartInSec = block.timestamp.sub(startTime);
        uint currentPeriod = timeSinceStartInSec.div(TIME_PERIOD_IN_SEC).add(1);

        // for currentPeriod > 256 will always return baseEthCapPerAddress
        return (2 ** currentPeriod.sub(1)).mul(baseEthCapPerAddress);
    }
}

/**
 * @title WhitelistedCrowdsale
 * @dev This is an extension to add whitelist to a crowdsale
 * @author Request.network
 *
 */
contract WhitelistedCrowdsale is StandardCrowdsale, Ownable {
    
    mapping(address=>bool) public registered;

    event RegistrationStatusChanged(address target, bool isRegistered);

    /**
     * @dev Changes registration status of an address for participation.
     * @param target Address that will be registered/deregistered.
     * @param isRegistered New registration status of address.
     */
    function changeRegistrationStatus(address target, bool isRegistered)
        public
        onlyOwner
        only24HBeforeSale
    {
        registered[target] = isRegistered;
        RegistrationStatusChanged(target, isRegistered);
    }

    /**
     * @dev Changes registration statuses of addresses for participation.
     * @param targets Addresses that will be registered/deregistered.
     * @param isRegistered New registration status of addresses.
     */
    function changeRegistrationStatuses(address[] targets, bool isRegistered)
        public
        onlyOwner
        only24HBeforeSale
    {
        for (uint i = 0; i < targets.length; i++) {
            changeRegistrationStatus(targets[i], isRegistered);
        }
    }

    /**
     * @dev overriding Crowdsale#validPurchase to add whilelist
     * @return true if investors can buy at the moment, false otherwise
     */
    function validPurchase() internal returns (bool) {
        return super.validPurchase() && registered[msg.sender];
    }
}

/**
 * @title The RequestToken contract
 * @dev The Request Token contract
 * @dev inherite from StandardToken and Ownable by Zeppelin
 * @author Request.network
 */
contract RequestToken is StandardToken, Ownable {
    string  public  constant name = "Request Token";
    string  public  constant symbol = "REQ";
    uint8    public  constant decimals = 18;

    uint    public  transferableStartTime;

    address public  tokenSaleContract;
    address public  earlyInvestorWallet;


    modifier onlyWhenTransferEnabled() 
    {
        if ( now <= transferableStartTime ) {
            require(msg.sender == tokenSaleContract || msg.sender == earlyInvestorWallet || msg.sender == owner);
        }
        _;
    }

    modifier validDestination(address to) 
    {
        require(to != address(this));
        _;
    }

    function RequestToken(
        uint tokenTotalAmount, 
        uint _transferableStartTime, 
        address _admin, 
        address _earlyInvestorWallet) 
    {
        // Mint all tokens. Then disable minting forever.
        totalSupply = tokenTotalAmount * (10 ** uint256(decimals));

        balances[msg.sender] = totalSupply;
        Transfer(address(0x0), msg.sender, totalSupply);

        transferableStartTime = _transferableStartTime;
        tokenSaleContract = msg.sender;
        earlyInvestorWallet = _earlyInvestorWallet;

        transferOwnership(_admin); // admin could drain tokens and eth that were sent here by mistake
    }

    /**
     * @dev override transfer token for a specified address to add onlyWhenTransferEnabled and validDestination
     * @param _to The address to transfer to.
     * @param _value The amount to be transferred.
     */
    function transfer(address _to, uint _value)
        public
        validDestination(_to)
        onlyWhenTransferEnabled
        returns (bool) 
    {
        return super.transfer(_to, _value);
    }

    /**
     * @dev override transferFrom token for a specified address to add onlyWhenTransferEnabled and validDestination
     * @param _from The address to transfer from.
     * @param _to The address to transfer to.
     * @param _value The amount to be transferred.
     */
    function transferFrom(address _from, address _to, uint _value)
        public
        validDestination(_to)
        onlyWhenTransferEnabled
        returns (bool) 
    {
        return super.transferFrom(_from, _to, _value);
    }

    event Burn(address indexed _burner, uint _value);

    /**
     * @dev burn tokens
     * @param _value The amount to be burned.
     * @return always true (necessary in case of override)
     */
    function burn(uint _value) 
        public
        onlyWhenTransferEnabled
        returns (bool)
    {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply = totalSupply.sub(_value);
        Burn(msg.sender, _value);
        Transfer(msg.sender, address(0x0), _value);
        return true;
    }

    /**
     * @dev burn tokens in the behalf of someone
     * @param _from The address of the owner of the token.
     * @param _value The amount to be burned.
     * @return always true (necessary in case of override)
     */
    function burnFrom(address _from, uint256 _value) 
        public
        onlyWhenTransferEnabled
        returns(bool) 
    {
        assert(transferFrom(_from, msg.sender, _value));
        return burn(_value);
    }

    /**
     * @dev transfer to owner any tokens send by mistake on this contracts
     * @param token The address of the token to transfer.
     * @param amount The amount to be transfered.
     */
    function emergencyERC20Drain(ERC20 token, uint amount )
        public
        onlyOwner 
    {
        token.transfer(owner, amount);
    }
}

/**
 * @title RequestTokenSale
 * @dev 
 * We add new features to a base crowdsale using multiple inheritance.
 * We are using the following extensions:
 * CappedCrowdsale - sets a max boundary for raised funds
 * WhitelistedCrowdsale - add a whitelist
 * ProgressiveIndividualCappedCrowdsale - add a Progressive individual cap
 *
 * The code is based on the contracts of Open Zeppelin and we add our contracts : RequestTokenSale, WhiteListedCrowdsale, ProgressiveIndividualCappedCrowdsale and the Request Token
 *
 * @author Request.network
 */
contract RequestTokenSale is Ownable, CappedCrowdsale, WhitelistedCrowdsale, ProgressiveIndividualCappedCrowdsale {
    // hard cap of the token sale in ether
    uint private constant HARD_CAP_IN_WEI = 100000 ether;

    // Total of Request Token supply
    uint public constant TOTAL_REQUEST_TOKEN_SUPPLY = 1000000000;

    // Token sale rate from ETH to REQ
    uint private constant RATE_ETH_REQ = 5000;

    // Token initialy distributed for the team (15%)
    address public constant TEAM_VESTING_WALLET = 0xA76bC39aE4B88ef203C6Afe3fD219549d86D12f2;
    uint public constant TEAM_VESTING_AMOUNT = 150000000e18;

    // Token initialy distributed for the early investor (20%)
    address public constant EARLY_INVESTOR_WALLET = 0xa579E31b930796e3Df50A56829cF82Db98b6F4B3;
    uint public constant EARLY_INVESTOR_AMOUNT = 200000000e18;

    // Token initialy distributed for the early foundation (15%)
    // wallet use also to gather the ether of the token sale
    address private constant REQUEST_FOUNDATION_WALLET = 0xdD76B55ee6dAfe0c7c978bff69206d476a5b9Ce7;
    uint public constant REQUEST_FOUNDATION_AMOUNT = 150000000e18;

    // PERIOD WHEN TOKEN IS NOT TRANSFERABLE AFTER THE SALE
    uint public constant PERIOD_AFTERSALE_NOT_TRANSFERABLE_IN_SEC = 3 days;

    function RequestTokenSale(uint256 _startTime, uint256 _endTime)
      ProgressiveIndividualCappedCrowdsale()
      WhitelistedCrowdsale()
      CappedCrowdsale(HARD_CAP_IN_WEI)
      StandardCrowdsale(_startTime, _endTime, RATE_ETH_REQ, REQUEST_FOUNDATION_WALLET)
    {
        token.transfer(TEAM_VESTING_WALLET, TEAM_VESTING_AMOUNT);

        token.transfer(EARLY_INVESTOR_WALLET, EARLY_INVESTOR_AMOUNT);

        token.transfer(REQUEST_FOUNDATION_WALLET, REQUEST_FOUNDATION_AMOUNT);
    }

    /**
     * @dev Create the Request token (override createTokenContract of StandardCrowdsale)
     * @return the StandardToken created
     */
    function createTokenContract () 
      internal 
      returns(StandardToken) 
    {
        return new RequestToken(TOTAL_REQUEST_TOKEN_SUPPLY, endTime.add(PERIOD_AFTERSALE_NOT_TRANSFERABLE_IN_SEC), REQUEST_FOUNDATION_WALLET, EARLY_INVESTOR_WALLET);
    }

    /**
     * @dev Transfer the unsold tokens to the request Foundation multisign wallet 
     * @dev Only for owner
     * @return the StandardToken created
     */
    function drainRemainingToken () 
      public
      onlyOwner
    {
        require(hasEnded());
        token.transfer(REQUEST_FOUNDATION_WALLET, token.balanceOf(this));
    }
  
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"EARLY_INVESTOR_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"REQUEST_FOUNDATION_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TEAM_VESTING_AMOUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_baseEthCapPerAddress","type":"uint256"}],"name":"setBaseEthCapPerAddress","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getCurrentEthCapPerAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"PERIOD_AFTERSALE_NOT_TRANSFERABLE_IN_SEC","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TOTAL_REQUEST_TOKEN_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"targets","type":"address[]"},{"name":"isRegistered","type":"bool"}],"name":"changeRegistrationStatuses","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"drainRemainingToken","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"GAS_LIMIT_IN_WEI","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"registered","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"participated","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TEAM_VESTING_WALLET","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"EARLY_INVESTOR_WALLET","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"baseEthCapPerAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TIME_PERIOD_IN_SEC","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"isRegistered","type":"bool"}],"name":"changeRegistrationStatus","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"payable":false,"type":"constructor"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"isRegistered","type":"bool"}],"name":"RegistrationStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052600060095534156200001557600080fd5b6040516040806200346883398101604052808051919060200180519150505b69152d02c7e14af68000005b5b828261138873dd76b55ee6dafe0c7c978bff69206d476a5b9ce75b428410156200006a57600080fd5b838310156200007857600080fd5b600082116200008657600080fd5b600160a060020a03811615156200009c57600080fd5b60018490556002839055600482905560038054600160a060020a031916600160a060020a038316179055620000de64010000000062000362810262000e4b1704565b60008054600160a060020a031916600160a060020a03929092169190911790555b505060068054600160a060020a03191633600160a060020a031617905550505b600081116200012d57600080fd5b60078190555b5060008054600160a060020a03169063a9059cbb9073a76bc39ae4b88ef203c6afe3fd219549d86d12f2906a7c13bc4b2c133c5600000090604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620001cf57600080fd5b6102c65a03f11515620001e157600080fd5b5050506040518051505060008054600160a060020a03169063a9059cbb9073a579e31b930796e3df50a56829cf82db98b6f4b3906aa56fa5b99019a5c800000090604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156200028657600080fd5b6102c65a03f115156200029857600080fd5b5050506040518051505060008054600160a060020a03169063a9059cbb9073dd76b55ee6dafe0c7c978bff69206d476a5b9ce7906a7c13bc4b2c133c5600000090604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156200033d57600080fd5b6102c65a03f115156200034f57600080fd5b505050604051805150505b505062000432565b600254600090633b9aca00906200038b906203f48064010000000062000d146200040682021704565b73dd76b55ee6dafe0c7c978bff69206d476a5b9ce773a579e31b930796e3df50a56829cf82db98b6f4b3620003bf62000421565b9384526020840192909252600160a060020a039081166040808501919091529116606083015260809091019051809103906000f08015156200040057600080fd5b90505b90565b6000828201838110156200041657fe5b8091505b5092915050565b60405161108180620023e783390190565b611fa580620004426000396000f300606060405236156200016b5763ffffffff60e060020a60003504166308b490f0811462000179578063105fc4e814620001a157806317cdb81214620001a1578063233ab10d14620001f15780632c4e722e146200020c5780633197cbb61462000234578063355274ea146200025c5780634042b66f146200028457806349dcd75614620002ac578063521eb27314620002d4578063573d72b714620003065780635e23464e146200032e57806378e9792514620003565780637b9358a0146200037e57806389f6e82614620003d65780638da5cb5b14620003ee578063995ab62e1462000420578063b2dd5c071462000448578063b3bd870a146200047e578063b5417a5214620004b2578063d089429714620004e4578063d0febe4c146200016b578063de8a6fa21462000522578063ecb70fb7146200054a578063f1ce95951462000574578063f24d2532146200059c578063f2fde38b14620005c5578063fc0c546a14620005e9575b5b620001766200061b565b5b005b34156200018557600080fd5b6200018f62000746565b60405190815260200160405180910390f35b3415620001ad57600080fd5b6200018f62000755565b60405190815260200160405180910390f35b3415620001ad57600080fd5b6200018f62000755565b60405190815260200160405180910390f35b3415620001fd57600080fd5b6200017660043562000773565b005b34156200021857600080fd5b6200018f620007be565b60405190815260200160405180910390f35b34156200024057600080fd5b6200018f620007c4565b60405190815260200160405180910390f35b34156200026857600080fd5b6200018f620007ca565b60405190815260200160405180910390f35b34156200029057600080fd5b6200018f620007d0565b60405190815260200160405180910390f35b3415620002b857600080fd5b6200018f620007d6565b60405190815260200160405180910390f35b3415620002e057600080fd5b620002ea62000866565b604051600160a060020a03909116815260200160405180910390f35b34156200031257600080fd5b6200018f62000875565b60405190815260200160405180910390f35b34156200033a57600080fd5b6200018f6200087c565b60405190815260200160405180910390f35b34156200036257600080fd5b6200018f62000884565b60405190815260200160405180910390f35b34156200038a57600080fd5b6200017660046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496505050509135151591506200088a9050565b005b3415620003e257600080fd5b620001766200090f565b005b3415620003fa57600080fd5b620002ea62000a44565b604051600160a060020a03909116815260200160405180910390f35b34156200042c57600080fd5b6200018f62000a53565b60405190815260200160405180910390f35b34156200045457600080fd5b6200046a600160a060020a036004351662000a5c565b604051901515815260200160405180910390f35b34156200048a57600080fd5b6200018f600160a060020a036004351662000a71565b60405190815260200160405180910390f35b3415620004be57600080fd5b620002ea62000a83565b604051600160a060020a03909116815260200160405180910390f35b3415620004f057600080fd5b620002ea62000a9b565b604051600160a060020a03909116815260200160405180910390f35b620001766200061b565b005b34156200052e57600080fd5b6200018f62000ab3565b60405190815260200160405180910390f35b34156200055657600080fd5b6200046a62000ab9565b604051901515815260200160405180910390f35b34156200058057600080fd5b6200018f62000adf565b60405190815260200160405180910390f35b3415620005a857600080fd5b62000176600160a060020a0360043516602435151562000ae6565b005b3415620005d157600080fd5b62000176600160a060020a036004351662000b9a565b005b3415620005f557600080fd5b620002ea62000c35565b604051600160a060020a03909116815260200160405180910390f35b6000806200062862000c44565b15156200063457600080fd5b6004543492506200064d90839063ffffffff62000ce216565b60055490915062000665908363ffffffff62000d1416565b60055560008054600160a060020a03169063a9059cbb90339084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515620006cb57600080fd5b6102c65a03f11515620006dd57600080fd5b505050604051805190501515620006f357600080fd5b33600160a060020a03167fcd60aa75dea3072fbc07ae6d7d856b5dc5f4eee88854f5b4abf7b680ef8bc50f838360405191825260208201526040908101905180910390a26200074162000d2f565b5b5050565b6aa56fa5b99019a5c800000081565b6a7c13bc4b2c133c5600000081565b6a7c13bc4b2c133c5600000081565b60065433600160a060020a039081169116146200078f57600080fd5b600154620007a7906201518063ffffffff62000d6716565b4210620007b357600080fd5b60098190555b5b5b50565b60045481565b60025481565b60075481565b60055481565b6000806000600154421015620007f0576000925062000861565b6001546200080690429063ffffffff62000d6716565b915062000830600162000823846201518063ffffffff62000d7f16565b9063ffffffff62000d1416565b6009549091506200085e906200084e83600163ffffffff62000d6716565b60020a9063ffffffff62000ce216565b92505b505090565b600354600160a060020a031681565b6203f48081565b633b9aca0081565b60015481565b60065460009033600160a060020a03908116911614620008a957600080fd5b600154620008c1906201518063ffffffff62000d6716565b4210620008cd57600080fd5b5060005b82518110156200090757620008fd838281518110620008ec57fe5b906020019060200201518362000ae6565b5b600101620008d1565b5b5b5b505050565b60065433600160a060020a039081169116146200092b57600080fd5b6200093562000ab9565b15156200094157600080fd5b60008054600160a060020a03169063a9059cbb9073dd76b55ee6dafe0c7c978bff69206d476a5b9ce79083906370a082319030906040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515620009bb57600080fd5b6102c65a03f11515620009cd57600080fd5b5050506040518051905060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151562000a2457600080fd5b6102c65a03f1151562000a3657600080fd5b505050604051805150505b5b565b600654600160a060020a031681565b640ba43b740081565b60086020526000908152604090205460ff1681565b600a6020526000908152604090205481565b73a76bc39ae4b88ef203c6afe3fd219549d86d12f281565b73a579e31b930796e3df50a56829cf82db98b6f4b381565b60095481565b60075460055460009190101562000acf62000d9c565b8062000ad85750805b91505b5090565b6201518081565b60065433600160a060020a0390811691161462000b0257600080fd5b60015462000b1a906201518063ffffffff62000d6716565b421062000b2657600080fd5b600160a060020a03821660009081526008602052604090819020805460ff19168315151790557f61711115e3f6f3c059d7dee6db7f77e9c82b97ae30fc2aee76c053c0048030bf908390839051600160a060020a039092168252151560208201526040908101905180910390a15b5b5b5050565b60065433600160a060020a0390811691161462000bb657600080fd5b600160a060020a038116151562000bcc57600080fd5b600654600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b600054600160a060020a031681565b600080640ba43b74003a111562000c5a57600080fd5b62000c64620007d6565b600160a060020a0333166000908152600a602052604090205490915062000c92903463ffffffff62000d1416565b600160a060020a0333166000908152600a602052604090205562000cb562000da5565b801562000ad85750600160a060020a0333166000908152600a6020526040902054819011155b91505b5090565b600082820283158062000d00575082848281151562000cfd57fe5b04145b151562000d0957fe5b8091505b5092915050565b60008282018381101562000d0957fe5b8091505b5092915050565b600354600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151562000a4157600080fd5b5b565b60008282111562000d7457fe5b508082035b92915050565b600080828481151562000d8e57fe5b0490508091505b5092915050565b60025442115b90565b600062000db162000ddc565b801562000dd65750600160a060020a03331660009081526008602052604090205460ff165b90505b90565b60008060075462000df93460055462000d1490919063ffffffff16565b1115905062000e0762000e18565b801562000ad85750805b91505b5090565b6000806000600154421015801562000e3257506002544211155b9150503415158180156200085e5750805b92505b505090565b6000633b9aca0062000e6c6203f48060025462000d1490919063ffffffff16565b73dd76b55ee6dafe0c7c978bff69206d476a5b9ce773a579e31b930796e3df50a56829cf82db98b6f4b362000ea062000ee7565b9384526020840192909252600160a060020a039081166040808501919091529116606083015260809091019051809103906000f080151562000dd657600080fd5b90505b90565b6040516110818062000ef98339019056006060604052341561000f57600080fd5b604051608080611081833981016040528080519190602001805191906020018051919060200180519150505b5b60038054600160a060020a03191633600160a060020a03161790555b670de0b6b3a764000084026000818155600160a060020a0333168082526001602052604080832084905590927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a3600483905560058054600160a060020a03338116600160a060020a031992831617909255600680549284169290911691909117905561010082640100000000610bdd61010a82021704565b5b50505050610196565b60035433600160a060020a0390811691161461012557600080fd5b600160a060020a038116151561013a57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360038054600160a060020a031916600160a060020a0383161790555b5b50565b610edc806101a56000396000f300606060405236156101045763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610109578063095ea7b31461019457806318160ddd146101ca57806323b872dd146101ef578063313ce5671461022b57806342966c68146102545780635d5aa2771461027e57806366188463146102ad578063661990bc146102e357806370a082311461031257806379cc6790146103435780638da5cb5b1461037957806395d89b41146103a8578063a9059cbb14610433578063d73dd62314610469578063db0e16f11461049f578063dd62ed3e146104c3578063f2fde38b146104fa578063f6f5eb591461051b575b600080fd5b341561011457600080fd5b61011c610540565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101595780820151818401525b602001610140565b50505050905090810190601f1680156101865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561019f57600080fd5b6101b6600160a060020a0360043516602435610577565b604051901515815260200160405180910390f35b34156101d557600080fd5b6101dd6105e4565b60405190815260200160405180910390f35b34156101fa57600080fd5b6101b6600160a060020a03600435811690602435166044356105ea565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e61067f565b60405160ff909116815260200160405180910390f35b341561025f57600080fd5b6101b6600435610684565b604051901515815260200160405180910390f35b341561028957600080fd5b6102916107bf565b604051600160a060020a03909116815260200160405180910390f35b34156102b857600080fd5b6101b6600160a060020a03600435166024356107ce565b604051901515815260200160405180910390f35b34156102ee57600080fd5b6102916108ca565b604051600160a060020a03909116815260200160405180910390f35b341561031d57600080fd5b6101dd600160a060020a03600435166108d9565b60405190815260200160405180910390f35b341561034e57600080fd5b6101b6600160a060020a03600435166024356108f8565b604051901515815260200160405180910390f35b341561038457600080fd5b61029161097a565b604051600160a060020a03909116815260200160405180910390f35b34156103b357600080fd5b61011c610989565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101595780820151818401525b602001610140565b50505050905090810190601f1680156101865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043e57600080fd5b6101b6600160a060020a03600435166024356109c0565b604051901515815260200160405180910390f35b341561047457600080fd5b6101b6600160a060020a0360043516602435610a53565b604051901515815260200160405180910390f35b34156104aa57600080fd5b6104c1600160a060020a0360043516602435610af8565b005b34156104ce57600080fd5b6101dd600160a060020a0360043581169060243516610bb0565b60405190815260200160405180910390f35b341561050557600080fd5b6104c1600160a060020a0360043516610bdd565b005b341561052657600080fd5b6101dd610c76565b60405190815260200160405180910390f35b60408051908101604052600d81527f5265717565737420546f6b656e00000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b60008230600160a060020a031681600160a060020a03161415151561060e57600080fd5b60045442116106665760055433600160a060020a0390811691161480610642575060065433600160a060020a039081169116145b8061065b575060035433600160a060020a039081169116145b151561066657600080fd5b5b610672858585610c7c565b91505b5b5b509392505050565b601281565b60045460009042116106df5760055433600160a060020a03908116911614806106bb575060065433600160a060020a039081169116145b806106d4575060035433600160a060020a039081169116145b15156106df57600080fd5b5b600160a060020a033316600090815260016020526040902054610709908363ffffffff610da816565b600160a060020a03331660009081526001602052604081209190915554610736908363ffffffff610da816565b600055600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a2600033600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b5b919050565b600554600160a060020a031681565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561082b57600160a060020a033381166000908152600260209081526040808320938816835292905290812055610862565b61083b818463ffffffff610da816565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600654600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b60045460009042116109535760055433600160a060020a039081169116148061092f575060065433600160a060020a039081169116145b80610948575060035433600160a060020a039081169116145b151561095357600080fd5b5b61095f8333846105ea565b151561096757fe5b61097082610684565b90505b5b92915050565b600354600160a060020a031681565b60408051908101604052600381527f5245510000000000000000000000000000000000000000000000000000000000602082015281565b60008230600160a060020a031681600160a060020a0316141515156109e457600080fd5b6004544211610a3c5760055433600160a060020a0390811691161480610a18575060065433600160a060020a039081169116145b80610a31575060035433600160a060020a039081169116145b1515610a3c57600080fd5b5b610a478484610dbf565b91505b5b5b5092915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610a8b908363ffffffff610e9616565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a35060015b92915050565b60035433600160a060020a03908116911614610b1357600080fd5b600354600160a060020a038084169163a9059cbb9116836000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b8f57600080fd5b6102c65a03f11515610ba057600080fd5b505050604051805150505b5b5050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a03908116911614610bf857600080fd5b600160a060020a0381161515610c0d57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60045481565b600080600160a060020a0384161515610c9457600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610cda908463ffffffff610da816565b600160a060020a038087166000908152600160205260408082209390935590861681522054610d0f908463ffffffff610e9616565b600160a060020a038516600090815260016020526040902055610d38818463ffffffff610da816565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b600082821115610db457fe5b508082035b92915050565b6000600160a060020a0383161515610dd657600080fd5b600160a060020a033316600090815260016020526040902054610dff908363ffffffff610da816565b600160a060020a033381166000908152600160205260408082209390935590851681522054610e34908363ffffffff610e9616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820183811015610ea557fe5b8091505b50929150505600a165627a7a72305820a569b7054f9995c1906846443e96a492d28d975a665c2cdf93ae8ea466b8677c0029a165627a7a7230582019e0c56c5a64c16ee9645d37d554f69e62570516dde48e98482e917491ea6db500296060604052341561000f57600080fd5b604051608080611081833981016040528080519190602001805191906020018051919060200180519150505b5b60038054600160a060020a03191633600160a060020a03161790555b670de0b6b3a764000084026000818155600160a060020a0333168082526001602052604080832084905590927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915190815260200160405180910390a3600483905560058054600160a060020a03338116600160a060020a031992831617909255600680549284169290911691909117905561010082640100000000610bdd61010a82021704565b5b50505050610196565b60035433600160a060020a0390811691161461012557600080fd5b600160a060020a038116151561013a57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360038054600160a060020a031916600160a060020a0383161790555b5b50565b610edc806101a56000396000f300606060405236156101045763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610109578063095ea7b31461019457806318160ddd146101ca57806323b872dd146101ef578063313ce5671461022b57806342966c68146102545780635d5aa2771461027e57806366188463146102ad578063661990bc146102e357806370a082311461031257806379cc6790146103435780638da5cb5b1461037957806395d89b41146103a8578063a9059cbb14610433578063d73dd62314610469578063db0e16f11461049f578063dd62ed3e146104c3578063f2fde38b146104fa578063f6f5eb591461051b575b600080fd5b341561011457600080fd5b61011c610540565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101595780820151818401525b602001610140565b50505050905090810190601f1680156101865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561019f57600080fd5b6101b6600160a060020a0360043516602435610577565b604051901515815260200160405180910390f35b34156101d557600080fd5b6101dd6105e4565b60405190815260200160405180910390f35b34156101fa57600080fd5b6101b6600160a060020a03600435811690602435166044356105ea565b604051901515815260200160405180910390f35b341561023657600080fd5b61023e61067f565b60405160ff909116815260200160405180910390f35b341561025f57600080fd5b6101b6600435610684565b604051901515815260200160405180910390f35b341561028957600080fd5b6102916107bf565b604051600160a060020a03909116815260200160405180910390f35b34156102b857600080fd5b6101b6600160a060020a03600435166024356107ce565b604051901515815260200160405180910390f35b34156102ee57600080fd5b6102916108ca565b604051600160a060020a03909116815260200160405180910390f35b341561031d57600080fd5b6101dd600160a060020a03600435166108d9565b60405190815260200160405180910390f35b341561034e57600080fd5b6101b6600160a060020a03600435166024356108f8565b604051901515815260200160405180910390f35b341561038457600080fd5b61029161097a565b604051600160a060020a03909116815260200160405180910390f35b34156103b357600080fd5b61011c610989565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101595780820151818401525b602001610140565b50505050905090810190601f1680156101865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561043e57600080fd5b6101b6600160a060020a03600435166024356109c0565b604051901515815260200160405180910390f35b341561047457600080fd5b6101b6600160a060020a0360043516602435610a53565b604051901515815260200160405180910390f35b34156104aa57600080fd5b6104c1600160a060020a0360043516602435610af8565b005b34156104ce57600080fd5b6101dd600160a060020a0360043581169060243516610bb0565b60405190815260200160405180910390f35b341561050557600080fd5b6104c1600160a060020a0360043516610bdd565b005b341561052657600080fd5b6101dd610c76565b60405190815260200160405180910390f35b60408051908101604052600d81527f5265717565737420546f6b656e00000000000000000000000000000000000000602082015281565b600160a060020a03338116600081815260026020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b60008230600160a060020a031681600160a060020a03161415151561060e57600080fd5b60045442116106665760055433600160a060020a0390811691161480610642575060065433600160a060020a039081169116145b8061065b575060035433600160a060020a039081169116145b151561066657600080fd5b5b610672858585610c7c565b91505b5b5b509392505050565b601281565b60045460009042116106df5760055433600160a060020a03908116911614806106bb575060065433600160a060020a039081169116145b806106d4575060035433600160a060020a039081169116145b15156106df57600080fd5b5b600160a060020a033316600090815260016020526040902054610709908363ffffffff610da816565b600160a060020a03331660009081526001602052604081209190915554610736908363ffffffff610da816565b600055600160a060020a0333167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a2600033600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b5b919050565b600554600160a060020a031681565b600160a060020a0333811660009081526002602090815260408083209386168352929052908120548083111561082b57600160a060020a033381166000908152600260209081526040808320938816835292905290812055610862565b61083b818463ffffffff610da816565b600160a060020a033381166000908152600260209081526040808320938916835292905220555b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600654600160a060020a031681565b600160a060020a0381166000908152600160205260409020545b919050565b60045460009042116109535760055433600160a060020a039081169116148061092f575060065433600160a060020a039081169116145b80610948575060035433600160a060020a039081169116145b151561095357600080fd5b5b61095f8333846105ea565b151561096757fe5b61097082610684565b90505b5b92915050565b600354600160a060020a031681565b60408051908101604052600381527f5245510000000000000000000000000000000000000000000000000000000000602082015281565b60008230600160a060020a031681600160a060020a0316141515156109e457600080fd5b6004544211610a3c5760055433600160a060020a0390811691161480610a18575060065433600160a060020a039081169116145b80610a31575060035433600160a060020a039081169116145b1515610a3c57600080fd5b5b610a478484610dbf565b91505b5b5b5092915050565b600160a060020a033381166000908152600260209081526040808320938616835292905290812054610a8b908363ffffffff610e9616565b600160a060020a0333811660008181526002602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a35060015b92915050565b60035433600160a060020a03908116911614610b1357600080fd5b600354600160a060020a038084169163a9059cbb9116836000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610b8f57600080fd5b6102c65a03f11515610ba057600080fd5b505050604051805150505b5b5050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a03908116911614610bf857600080fd5b600160a060020a0381161515610c0d57600080fd5b600354600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60045481565b600080600160a060020a0384161515610c9457600080fd5b50600160a060020a03808516600081815260026020908152604080832033909516835293815283822054928252600190529190912054610cda908463ffffffff610da816565b600160a060020a038087166000908152600160205260408082209390935590861681522054610d0f908463ffffffff610e9616565b600160a060020a038516600090815260016020526040902055610d38818463ffffffff610da816565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b600082821115610db457fe5b508082035b92915050565b6000600160a060020a0383161515610dd657600080fd5b600160a060020a033316600090815260016020526040902054610dff908363ffffffff610da816565b600160a060020a033381166000908152600160205260408082209390935590851681522054610e34908363ffffffff610e9616565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082820183811015610ea557fe5b8091505b50929150505600a165627a7a72305820a569b7054f9995c1906846443e96a492d28d975a665c2cdf93ae8ea466b8677c00290000000000000000000000000000000000000000000000000000000059e064700000000000000000000000000000000000000000000000000000000059e5aa70

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

-----Decoded View---------------
Found 2 constructor arguments :
Arg [0] : 0000000000000000000000000000000000000000000000000000000059E06470
Arg [1] : 0000000000000000000000000000000000000000000000000000000059E5AA70


   Swarm Source:
bzzr://a569b7054f9995c1906846443e96a492d28d975a665c2cdf93ae8ea466b8677c

 

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.