Sponsored:   LH-CRYPTO - 200 instruments (BTC, EUR, GOLD, OIL, SHARES). Leverage up to 1:500. OPEN ACCOUNT
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 1 txn
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xfb5136361ab5fab28e602ea868909828d2ce23caat txn 0x214194b980fb8c8e240fc3668cb06e38cd97845f4b237a8b3c6727bee74d9380
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: TokenSale
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

// Ethertote - Official Token Sale Contract
// 02.09.18
//
// Any unsold tokens can be sent directly to the TokenBurn Contract
// by anyone once the Token Sale is complete - 
// this is a PUBLIC function that anyone can call!!
//
// All Eth raised during the token sale is automatically sent to the 
// EthRaised smart contract for distribution


pragma solidity ^0.4.24;

///////////////////////////////////////////////////////////////////////////////
// SafeMath Library 
///////////////////////////////////////////////////////////////////////////////
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    c = a * b;
    assert(c / a == b);
    return c;
  }

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

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

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



// ----------------------------------------------------------------------------
// Imported Token Contract functions
// ----------------------------------------------------------------------------

contract EthertoteToken {
    function thisContractAddress() public pure returns (address) {}
    function balanceOf(address) public pure returns (uint256) {}
    function transfer(address, uint) public {}
}


// ----------------------------------------------------------------------------
// Main Contract
// ----------------------------------------------------------------------------

contract TokenSale {
  using SafeMath for uint256;
  
  EthertoteToken public token;

  address public admin;
  address public thisContractAddress;

  // address of the TOTE token original smart contract
  address public tokenContractAddress = 0x740A61Ad4fb99AF22Fb42cA25F548640ae64911D;
  
  // address of TokenBurn contract to "burn" unsold tokens
  // for further details, review the TokenBurn contract and verify code on Etherscan
  address public tokenBurnAddress = 0xadCa18DC9489C5FE5BdDf1A8a8C2623B66029198;
  
  // address of EthRaised contract, that will be used to distribute funds 
  // raised by the token sale. Added as "wallet address"
  address public ethRaisedAddress = 0xF59b989058B7103764739c318ED7B83F3B25EE56;
  
  uint public preIcoPhaseCountdown;       // used for website tokensale
  uint public icoPhaseCountdown;          // used for website tokensale
  uint public postIcoPhaseCountdown;      // used for website tokensale
  
  // pause token sale in an emergency [true/false]
  bool public tokenSaleIsPaused;
  
  // note the pause time to allow special function to extend closingTime
  uint public tokenSalePausedTime;
  
  // note the resume time 
  uint public tokenSaleResumedTime;
  
  // The time (in seconds) that needs to be added on to the closing time 
  // in the event of an emergency pause of the token sale
  uint public tokenSalePausedDuration;
  
  // Amount of wei raised
  uint256 public weiRaised;
  
  // 1000 tokens per Eth - 4,500,000 tokens for sale
  uint public maxEthRaised = 4500;
  
  // Maximum amount of Wei that can be raised
  // e.g. 4,500,000 tokens for sale with 1000 tokens per 1 eth
  // means maximum Wei raised would be maxEthRaised * 1000000000000000000
  uint public maxWeiRaised = maxEthRaised.mul(1000000000000000000);

  // starting time and closing time of Crowdsale
  // scheduled start on Monday, November 5th 2018 at 5:00pm GMT
  uint public openingTime = 1541437200;
  uint public closingTime = openingTime.add(14 days);
  
  // used as a divider so that 1 eth will buy 1000 tokens
  // set rate to 1,000,000,000,000,000
  uint public rate = 1000000000000000;
  
  // minimum and maximum spend of eth per transaction
  uint public minSpend = 100000000000000000;    // 0.1 Eth
  uint public maxSpend = 100000000000000000000; // 100 Eth 

  
  // MODIFIERS
  modifier onlyAdmin { 
        require(msg.sender == admin
        ); 
        _; 
  }
  
  // EVENTS
  event Deployed(string, uint);
  event SalePaused(string, uint);
  event SaleResumed(string, uint);
  event TokensBurned(string, uint);
  
 // ---------------------------------------------------------------------------
 // Constructor function
 // _ethRaisedContract = Address where collected funds will be forwarded to
 // _tokenContractAddress = Address of the original token contract being sold
 // ---------------------------------------------------------------------------
 
  constructor() public {
    
    admin = msg.sender;
    thisContractAddress = address(this);

    token = EthertoteToken(tokenContractAddress);
    

    require(ethRaisedAddress != address(0));
    require(tokenContractAddress != address(0));
    require(tokenBurnAddress != address(0));

    preIcoPhaseCountdown = openingTime;
    icoPhaseCountdown = closingTime;
    
    // after 14 days the "post-tokensale" header section of the homepage 
    // on the website will be removed based on this time
    postIcoPhaseCountdown = closingTime.add(14 days);
    
    emit Deployed("Ethertote Token Sale contract deployed", now);
  }
  
  
  
  // check balance of this smart contract
  function tokenSaleTokenBalance() public view returns(uint) {
      return token.balanceOf(thisContractAddress);
  }
  
  // check the token balance of any ethereum address  
  function getAnyAddressTokenBalance(address _address) public view returns(uint) {
      return token.balanceOf(_address);
  }
  
  // confirm if The Token Sale has finished
  function tokenSaleHasFinished() public view returns (bool) {
    return now > closingTime;
  }
  
  // this function will send any unsold tokens to the null TokenBurn contract address
  // once the crowdsale is finished, anyone can publicly call this function!
  function burnUnsoldTokens() public {
      require(tokenSaleIsPaused == false);
      require(tokenSaleHasFinished() == true);
      token.transfer(tokenBurnAddress, tokenSaleTokenBalance());
      emit TokensBurned("tokens sent to TokenBurn contract", now);
  }



  // function to temporarily pause token sale if needed
  function pauseTokenSale() onlyAdmin public {
      // confirm the token sale hasn't already completed
      require(tokenSaleHasFinished() == false);
      
      // confirm the token sale isn't already paused
      require(tokenSaleIsPaused == false);
      
      // pause the sale and note the time of the pause
      tokenSaleIsPaused = true;
      tokenSalePausedTime = now;
      emit SalePaused("token sale has been paused", now);
  }
  
    // function to resume token sale
  function resumeTokenSale() onlyAdmin public {
      
      // confirm the token sale is currently paused
      require(tokenSaleIsPaused == true);
      
      tokenSaleResumedTime = now;
      
      // now calculate the difference in time between the pause time
      // and the resume time, to establish how long the sale was
      // paused for. This time now needs to be added to the closingTime.
      
      // Note: if the token sale was paused whilst the sale was live and was
      // paused before the sale ended, then the value of tokenSalePausedTime
      // will always be less than the value of tokenSaleResumedTime
      
      tokenSalePausedDuration = tokenSaleResumedTime.sub(tokenSalePausedTime);
      
      // add the total pause time to the closing time.
      
      closingTime = closingTime.add(tokenSalePausedDuration);
      
      // extend post ICO countdown for the web-site
      postIcoPhaseCountdown = closingTime.add(14 days);
      // now resume the token sale
      tokenSaleIsPaused = false;
      emit SaleResumed("token sale has now resumed", now);
  }
  

// ----------------------------------------------------------------------------
// Event for token purchase logging
// purchaser = the contract address that paid for the tokens
// beneficiary = the address who got the tokens
// value = the amount (in Wei) paid for purchase
// amount = the amount of tokens purchased
// ----------------------------------------------------------------------------
  event TokenPurchase(
    address indexed purchaser,
    address indexed beneficiary,
    uint256 value,
    uint256 amount
  );



// -----------------------------------------
// Crowdsale external interface
// -----------------------------------------


// ----------------------------------------------------------------------------
// fallback function ***DO NOT OVERRIDE***
// allows purchase of tokens directly from MEW and other wallets
// will conform to require statements set out in buyTokens() function
// ----------------------------------------------------------------------------
   
  function () external payable {
    buyTokens(msg.sender);
  }


// ----------------------------------------------------------------------------
// function for front-end token purchase on our website ***DO NOT OVERRIDE***
// buyer = Address of the wallet performing the token purchase
// ----------------------------------------------------------------------------
  function buyTokens(address buyer) public payable {
    
    // check Crowdsale is open (can disable for testing)
    require(openingTime <= block.timestamp);
    require(block.timestamp < closingTime);
    
    // minimum purchase of 100 tokens (0.1 eth)
    require(msg.value >= minSpend);
    
    // maximum purchase per transaction to allow broader
    // token distribution during tokensale
    require(msg.value <= maxSpend);
    
    // stop sales of tokens if token balance is 0
    require(tokenSaleTokenBalance() > 0);
    
    // stop sales of tokens if Token sale is paused
    require(tokenSaleIsPaused == false);
    
    // log the amount being sent
    uint256 weiAmount = msg.value;
    preValidatePurchase(buyer, weiAmount);

    // calculate token amount to be sold
    uint256 tokens = getTokenAmount(weiAmount);
    
    // check that the amount of eth being sent by the buyer 
    // does not exceed the equivalent number of tokens remaining
    require(tokens <= tokenSaleTokenBalance());

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

    processPurchase(buyer, tokens);
    emit TokenPurchase(
      msg.sender,
      buyer,
      weiAmount,
      tokens
    );

    updatePurchasingState(buyer, weiAmount);

    forwardFunds();
    postValidatePurchase(buyer, weiAmount);
  }

  // -----------------------------------------
  // Internal interface (extensible)
  // -----------------------------------------

// ----------------------------------------------------------------------------
// Validation of an incoming purchase
// ----------------------------------------------------------------------------
  function preValidatePurchase(
    address buyer,
    uint256 weiAmount
  )
    internal pure
  {
    require(buyer != address(0));
    require(weiAmount != 0);
  }

// ----------------------------------------------------------------------------
// Validation of an executed purchase
// ----------------------------------------------------------------------------
  function postValidatePurchase(
    address,
    uint256
  )
    internal pure
  {
    // optional override
  }

// ----------------------------------------------------------------------------
// Source of tokens
// ----------------------------------------------------------------------------
  function deliverTokens(
    address buyer,
    uint256 tokenAmount
  )
    internal
  {
    token.transfer(buyer, tokenAmount);
  }

// ----------------------------------------------------------------------------
// The following function is executed when a purchase has been validated 
// and is ready to be executed
// ----------------------------------------------------------------------------
  function processPurchase(
    address buyer,
    uint256 tokenAmount
  )
    internal
  {
    deliverTokens(buyer, tokenAmount);
  }

// ----------------------------------------------------------------------------
// Override for extensions that require an internal state to check for 
// validity (current user contributions, etc.)
// ----------------------------------------------------------------------------
  function updatePurchasingState(
    address,
    uint256
  )
    internal pure
  {
    // optional override
  }

// ----------------------------------------------------------------------------
// Override to extend the way in which ether is converted to tokens.
// _weiAmount Value in wei to be converted into tokens
// return Number of tokens that can be purchased with the specified _weiAmount
// ----------------------------------------------------------------------------
  function getTokenAmount(uint256 weiAmount)
    internal view returns (uint256)
  {
    return weiAmount.div(rate);
  }

// ----------------------------------------------------------------------------
// how ETH is stored/forwarded on purchases.
// Sent to the EthRaised Contract
// ----------------------------------------------------------------------------
  function forwardFunds() internal {
    ethRaisedAddress.transfer(msg.value);
  }
  

// functions for tokensale information on the website 

    function maximumRaised() public view returns(uint) {
        return maxWeiRaised;
    }
    
    function amountRaised() public view returns(uint) {
        return weiRaised;
    }
  
    function timeComplete() public view returns(uint) {
        return closingTime;
    }
    
    // special function to delay the token sale if necessary
    function delayOpeningTime(uint256 _openingTime) onlyAdmin public {  
    openingTime = _openingTime;
    closingTime = openingTime.add(14 days);
    preIcoPhaseCountdown = openingTime;
    icoPhaseCountdown = closingTime;
    postIcoPhaseCountdown = closingTime.add(14 days);
    }
    
  
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"timeComplete","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleIsPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"thisContractAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ethRaisedAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenBurnAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxWeiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSpend","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoPhaseCountdown","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minSpend","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSalePausedDuration","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"closingTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"resumeTokenSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_openingTime","type":"uint256"}],"name":"delayOpeningTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContractAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleTokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSalePausedTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"burnUnsoldTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getAnyAddressTokenBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleResumedTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"preIcoPhaseCountdown","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"openingTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"postIcoPhaseCountdown","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSaleHasFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxEthRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maximumRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"buyer","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"pauseTokenSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"string"},{"indexed":false,"name":"","type":"uint256"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"string"},{"indexed":false,"name":"","type":"uint256"}],"name":"SalePaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"string"},{"indexed":false,"name":"","type":"uint256"}],"name":"SaleResumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"","type":"string"},{"indexed":false,"name":"","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","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
608060405260038054600160a060020a031990811673740a61ad4fb99af22fb42ca25f548640ae64911d1790915560048054821673adca18dc9489c5fe5bddf1a8a8c2623b660291981790556005805490911673f59b989058b7103764739c318ed7b83f3b25ee56179055611194600e81905561009190670de0b6b3a7640000640100000000610c3e61021c82021704565b600f55635be0771060108190556100b89062127500640100000000610b3d61024b82021704565b60115566038d7ea4c6800060125567016345785d8a000060135568056bc75e2d631000006014553480156100eb57600080fd5b5060018054600160a060020a031990811633179091556002805482163017905560035460008054909216600160a060020a039182161790915560055416151561013357600080fd5b600354600160a060020a0316151561014a57600080fd5b600454600160a060020a0316151561016157600080fd5b60105460065560115460078190556101899062127500640100000000610b3d61024b82021704565b600855604080514260208201528181526026818301527f4574686572746f746520546f6b656e2053616c6520636f6e747261637420646560608201527f706c6f7965640000000000000000000000000000000000000000000000000000608082015290517fd173df356aee5cba0b1613410e6edadbdf3c82b31b6637d7bf50d535e300561f9181900360a00190a1610258565b600082151561022d57506000610245565b5081810281838281151561023d57fe5b041461024557fe5b92915050565b8181018281101561024557fe5b610c9380620002686000396000f3006080604052600436106101955763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630335e18f81146101a05780630f6b6756146101c75780631834906c146101f05780631d8a8db9146102215780632c4e722e146102365780633382ddab1461024b57806337270069146102605780633c3f4c63146102755780634042b66f1461028a578063489b16361461029f57806348dddca8146102b457806348ea97be146102c95780634b6753bc146102de57806366875554146102f35780637a38417b146103085780637b3e5e7b1461032057806382edaf94146103355780638963c04b1461034a5780638ccdcf801461035f578063940bb3441461037457806394d1e9b014610389578063a63aeed9146103aa578063b77f00b3146103bf578063b7a8807c146103d4578063befda2ff146103e9578063d4bdb879146103fe578063d773023614610413578063ec3bb11a14610428578063ec8ac4d81461043d578063f20f24ec14610451578063f851a44014610466578063fc0c546a1461047b575b61019e33610490565b005b3480156101ac57600080fd5b506101b56105a9565b60408051918252519081900360200190f35b3480156101d357600080fd5b506101dc6105af565b604080519115158252519081900360200190f35b3480156101fc57600080fd5b506102056105b8565b60408051600160a060020a039092168252519081900360200190f35b34801561022d57600080fd5b506102056105c7565b34801561024257600080fd5b506101b56105d6565b34801561025757600080fd5b506102056105dc565b34801561026c57600080fd5b506101b56105eb565b34801561028157600080fd5b506101b56105f1565b34801561029657600080fd5b506101b56105f7565b3480156102ab57600080fd5b506101b56105fd565b3480156102c057600080fd5b506101b5610603565b3480156102d557600080fd5b506101b5610609565b3480156102ea57600080fd5b506101b561060f565b3480156102ff57600080fd5b5061019e610615565b34801561031457600080fd5b5061019e6004356106fc565b34801561032c57600080fd5b506101b5610754565b34801561034157600080fd5b5061020561075a565b34801561035657600080fd5b506101b5610769565b34801561036b57600080fd5b506101b5610805565b34801561038057600080fd5b5061019e61080b565b34801561039557600080fd5b506101b5600160a060020a0360043516610963565b3480156103b657600080fd5b506101b56109fd565b3480156103cb57600080fd5b506101b5610a03565b3480156103e057600080fd5b506101b5610a09565b3480156103f557600080fd5b506101b5610a0f565b34801561040a57600080fd5b506101dc610a15565b34801561041f57600080fd5b506101b5610a1d565b34801561043457600080fd5b506101b5610a23565b61019e600160a060020a0360043516610490565b34801561045d57600080fd5b5061019e610a29565b34801561047257600080fd5b50610205610add565b34801561048757600080fd5b50610205610aec565b60008042601054111515156104a457600080fd5b60115442106104b257600080fd5b6013543410156104c157600080fd5b6014543411156104d057600080fd5b60006104da610769565b116104e457600080fd5b60095460ff16156104f457600080fd5b3491506105018383610afb565b61050a82610b20565b9050610514610769565b81111561052057600080fd5b600d54610533908363ffffffff610b3d16565b600d556105408382610b4a565b60408051838152602081018390528151600160a060020a0386169233927f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18929081900390910190a36105928383610b1c565b61059a610b54565b6105a48383610b1c565b505050565b60115490565b60095460ff1681565b600254600160a060020a031681565b600554600160a060020a031681565b60125481565b600454600160a060020a031681565b600f5481565b60145481565b600d5481565b60075481565b60135481565b600c5481565b60115481565b600154600160a060020a0316331461062c57600080fd5b60095460ff16151560011461064057600080fd5b42600b819055600a54610659919063ffffffff610b9016565b600c8190556011546106709163ffffffff610b3d16565b6011819055610688906212750063ffffffff610b3d16565b6008556009805460ff1916905560408051426020820152818152601a818301527f746f6b656e2073616c6520686173206e6f7720726573756d6564000000000000606082015290517fce524a3785f050d1c206454aa25ff2e6d2b15b6e6d741f7f7af82b0abd7f307d9181900360800190a1565b600154600160a060020a0316331461071357600080fd5b601081905561072b816212750063ffffffff610b3d16565b6011819055601054600655600781905561074e906212750063ffffffff610b3d16565b60085550565b600d5490565b600354600160a060020a031681565b60008054600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152905191909216916370a0823191602480830192602092919082900301818787803b1580156107d457600080fd5b505af11580156107e8573d6000803e3d6000fd5b505050506040513d60208110156107fe57600080fd5b5051905090565b600a5481565b60095460ff161561081b57600080fd5b610823610a15565b151560011461083157600080fd5b600054600454600160a060020a039182169163a9059cbb9116610852610769565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b1580156108bd57600080fd5b505af11580156108d1573d6000803e3d6000fd5b5050604080514260208201528181526021818301527f746f6b656e732073656e7420746f20546f6b656e4275726e20636f6e7472616360608201527f7400000000000000000000000000000000000000000000000000000000000000608082015290517fca10c3fa3174b2e5f4635e91f80c87f8aa9991a0e5fa889de679311fa6f672a493509081900360a0019150a1565b60008054604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915191909216916370a0823191602480830192602092919082900301818787803b1580156109cb57600080fd5b505af11580156109df573d6000803e3d6000fd5b505050506040513d60208110156109f557600080fd5b505192915050565b600b5481565b60065481565b60105481565b60085481565b601154421190565b600e5481565b600f5490565b600154600160a060020a03163314610a4057600080fd5b610a48610a15565b15610a5257600080fd5b60095460ff1615610a6257600080fd5b6009805460ff1916600117905542600a819055604080516020810192909252808252601a828201527f746f6b656e2073616c6520686173206265656e207061757365640000000000006060830152517f6dac952201143a41b7bf530c898eb46694647cb0643efb83dbb624736fde69419181900360800190a1565b600154600160a060020a031681565b600054600160a060020a031681565b600160a060020a0382161515610b1057600080fd5b801515610b1c57600080fd5b5050565b6000610b3760125483610ba290919063ffffffff16565b92915050565b81810182811015610b3757fe5b610b1c8282610bb7565b600554604051600160a060020a03909116903480156108fc02916000818181858888f19350505050158015610b8d573d6000803e3d6000fd5b50565b600082821115610b9c57fe5b50900390565b60008183811515610baf57fe5b049392505050565b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018690529151919092169263a9059cbb926044808201939182900301818387803b158015610c2257600080fd5b505af1158015610c36573d6000803e3d6000fd5b505050505050565b6000821515610c4f57506000610b37565b50818102818382811515610c5f57fe5b0414610b3757fe00a165627a7a72305820d34b8ad899ec002327082db043a856469316c00ef51a9c8b748a7f40dcb34ab30029

   Swarm Source:
bzzr://d34b8ad899ec002327082db043a856469316c00ef51a9c8b748a7f40dcb34ab3

 

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