ETH Price: $3,612.80 (-2.15%)

Contract

0x58aF4C5A2A0c9B414891DA7C3Ab73c922ACD5fd4
 
Transaction Hash
Method
Block
From
To
Finalize58506722018-06-25 7:48:492352 days ago1529912929IN
0x58aF4C5A...22ACD5fd4
0 ETH0.0005967615
Set Multisig Mai...58506422018-06-25 7:41:452352 days ago1529912505IN
0x58aF4C5A...22ACD5fd4
0 ETH0.0004352115
Set Multisig Mai...58504602018-06-25 6:50:592352 days ago1529909459IN
0x58aF4C5A...22ACD5fd4
0 ETH0.0006592515
Set TTC Address57025312018-05-30 12:13:282378 days ago1527682408IN
0x58aF4C5A...22ACD5fd4
0 ETH0.0011913741
Transfer56365662018-05-18 19:42:202390 days ago1526672540IN
0x58aF4C5A...22ACD5fd4
0.1 ETH0.0002150610
Transfer56364832018-05-18 19:26:112390 days ago1526671571IN
0x58aF4C5A...22ACD5fd4
9.8 ETH0.0002150610
Transfer56348722018-05-18 12:25:102390 days ago1526646310IN
0x58aF4C5A...22ACD5fd4
1.26719591 ETH0.0050664141
Transfer56348322018-05-18 12:14:232390 days ago1526645663IN
0x58aF4C5A...22ACD5fd4
2 ETH0.001092750
Transfer56348162018-05-18 12:11:052390 days ago1526645465IN
0x58aF4C5A...22ACD5fd4
2 ETH0.0024714220
Transfer56348112018-05-18 12:09:432390 days ago1526645383IN
0x58aF4C5A...22ACD5fd4
0.1 ETH0.0002622412
Add White List56347892018-05-18 12:02:362390 days ago1526644956IN
0x58aF4C5A...22ACD5fd4
0 ETH0.0016431337
Transfer56347862018-05-18 12:01:472390 days ago1526644907IN
0x58aF4C5A...22ACD5fd4
2.95 ETH0.0007857110
Transfer56347822018-05-18 12:00:502390 days ago1526644850IN
0x58aF4C5A...22ACD5fd4
49.8 ETH0.0050664141
Transfer56347762018-05-18 11:59:222390 days ago1526644762IN
0x58aF4C5A...22ACD5fd4
2 ETH0.0013112460
Transfer56347682018-05-18 11:56:542390 days ago1526644614IN
0x58aF4C5A...22ACD5fd4
14.2 ETH0.0031428440
Transfer56347682018-05-18 11:56:542390 days ago1526644614IN
0x58aF4C5A...22ACD5fd4
2 ETH0.0032214141
Transfer56347602018-05-18 11:55:062390 days ago1526644506IN
0x58aF4C5A...22ACD5fd4
0.62 ETH0.0015714220
Transfer56347602018-05-18 11:55:062390 days ago1526644506IN
0x58aF4C5A...22ACD5fd4
0.6 ETH0.0050664141
Transfer56347602018-05-18 11:55:062390 days ago1526644506IN
0x58aF4C5A...22ACD5fd4
1.95 ETH0.0061785550
Transfer56347592018-05-18 11:54:312390 days ago1526644471IN
0x58aF4C5A...22ACD5fd4
23.74065919 ETH0.0024714220
Transfer56347582018-05-18 11:54:012390 days ago1526644441IN
0x58aF4C5A...22ACD5fd4
1.95 ETH0.002222
Transfer56347582018-05-18 11:54:012390 days ago1526644441IN
0x58aF4C5A...22ACD5fd4
2.41 ETH0.0042014134
Add White List56347572018-05-18 11:53:042390 days ago1526644384IN
0x58aF4C5A...22ACD5fd4
0 ETH0.0016431337
Transfer56347552018-05-18 11:52:312390 days ago1526644351IN
0x58aF4C5A...22ACD5fd4
1.95 ETH0.00052525
Transfer56347532018-05-18 11:52:102390 days ago1526644330IN
0x58aF4C5A...22ACD5fd4
2 ETH0.0050664141
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
58506722018-06-25 7:48:492352 days ago1529912929
0x58aF4C5A...22ACD5fd4
20,489.03561536 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CrowdsaleMain

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-05-18
*/

pragma solidity ^0.4.16;


library SafeMath {
  function mul(uint a, uint b) internal pure  returns (uint) {
    uint c = a * b;
    require(a == 0 || c / a == b);
    return c;
  }
  function div(uint a, uint b) internal pure returns (uint) {
    require(b > 0);
    uint c = a / b;
    require(a == b * c + a % b);
    return c;
  }
  function sub(uint a, uint b) internal pure returns (uint) {
    require(b <= a);
    return a - b;
  }
  function add(uint a, uint b) internal pure returns (uint) {
    uint c = a + b;
    require(c >= a);
    return c;
  }
  function max64(uint64 a, uint64 b) internal  pure returns (uint64) {
    return a >= b ? a : b;
  }
  function min64(uint64 a, uint64 b) internal  pure returns (uint64) {
    return a < b ? a : b;
  }
  function max256(uint256 a, uint256 b) internal  pure returns (uint256) {
    return a >= b ? a : b;
  }
  function min256(uint256 a, uint256 b) internal  pure returns (uint256) {
    return a < b ? a : b;
  }
}

contract ERC20Basic {
  uint public totalSupply;
  function balanceOf(address who) public constant returns (uint);
  function transfer(address to, uint value) public;
  event Transfer(address indexed from, address indexed to, uint value);
}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public constant returns (uint);
  function transferFrom(address from, address to, uint value) public;
  function approve(address spender, uint value) public;
  event Approval(address indexed owner, address indexed spender, uint value);
}

contract BasicToken is ERC20Basic {
  
  using SafeMath for uint;
  
  mapping(address => uint) balances;

  function transfer(address _to, uint _value) public{
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
  }

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


contract StandardToken is BasicToken, ERC20 {
  mapping (address => mapping (address => uint)) allowed;

  function transferFrom(address _from, address _to, uint _value) public {
    balances[_to] = balances[_to].add(_value);
    balances[_from] = balances[_from].sub(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Transfer(_from, _to, _value);
  }

  function approve(address _spender, uint _value) public{
    require((_value == 0) || (allowed[msg.sender][_spender] == 0)) ;
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
  }

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


contract Ownable {
    address public owner;

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

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }
    function transferOwnership(address newOwner) onlyOwner public{
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }
}


contract TTC is StandardToken, Ownable {
  string public constant name = "TTC";
  string public constant symbol = "TTC";
  uint public constant decimals = 18;


  function TTC() public {
      totalSupply = 1000000000000000000000000000;
      balances[msg.sender] = totalSupply; // Send all tokens to owner
  }


  function burn(uint _value) onlyOwner public returns (bool) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    totalSupply = totalSupply.sub(_value);
    Transfer(msg.sender, 0x0, _value);
    return true;
  }

}


contract CrowdsaleMain is Ownable{
    
    using SafeMath for uint;

    struct Backer {
    uint weiReceived; 
    uint coinSent;
    uint coinReadyToSend;
  }

  /*
  * Constants
  */

  /**
    * ICO Phases.
    *
    * - PreStart:   tokens are not yet sold/issued
    * - MainIco     new tokens sold/issued at the regular price
    * - AfterIco:   tokens are not sold/issued
    */
    enum Phases {PreStart,  MainIco, AfterIco}

  /* Maximum number of TTC to main ico sell */
  uint public constant MAIN_MAX_CAP = 100000000000000000000000000; // 100,000,000 TTC

  /* Minimum amount to invest */
  uint public constant MIN_INVEST_ETHER = 100 finney;

  /* Number of TTC per Ether */
  uint public constant MAIN_COIN_PER_ETHER_ICO = 4000000000000000000000; // 4,000 TTC

  /*
  * Variables
  */

  /* Crowdsale period */
  uint private mainStartTime = 1524052800;  // 2018-04-18 20:00 AM (UTC + 08:00)
  uint private mainEndTime = 1526644800;    // 2018-05-18 20:00 AM (UTC + 08:00)

  /* TTC contract reference */
  TTC public coin;

  /*Maximum Ether for one address during pre ico or main ico */
  uint public maximumCoinsPerAddress = 50 ether;
    
  /* Multisig contract that will receive the Ether during main ico*/
  address public mainMultisigEther;
  /* Number of Ether received during main ico */
  uint public mainEtherReceived;
  /* Number of TTC sent to Ether contributors during main ico */
  uint public mainCoinSentToEther;

  /* Backers Ether indexed by their Ethereum address */
  mapping(address => Backer) public mainBackers;
  address[] internal mainReadyToSendAddress;

  /* White List */
  mapping(address => bool) public whiteList;
  address private whiteListOwner;

    /* Current Phase */
    Phases public phase = Phases.PreStart;

  /*
  * Modifiers
  */

  modifier respectTimeFrame() {
    require((now >= mainStartTime) && (now < mainEndTime ));
    _;
  }

  /*
   * Event
  */
  event LogReceivedETH(address addr, uint value);
  event LogCoinsEmited(address indexed from, uint amount);

  /*
   * Constructor
  */
  function CrowdsaleMain() public{
    whiteListOwner = msg.sender;
  }

  /**
  * Allow to set TTC address
  */
  function setTTCAddress(address _addr) onlyOwner public {
    require(_addr != address(0));
    coin = TTC(_addr);
  }

  /**
  * Allow owner to set whiteListOwner
  */
  function setWhiteListOwner(address _addr) onlyOwner public {
    whiteListOwner = _addr;

  }

  /**
  * Check addressExistInWhiteList
  */ 
  function isExistInWhiteList(address _addr) public view returns (bool) {
    return whiteList[_addr];
  }

  /**
  * change main start time by owner
  */
  function changeMainStartTime(uint _timestamp) onlyOwner public {

    mainStartTime = _timestamp;
  }

  /**
  * change main stop time by owner
  */
  function changeMainEndTime(uint _timestamp) onlyOwner public {
    mainEndTime = _timestamp;

  }

  /**
   * Allow to change the team multisig address in the case of emergency.
   */
  function setMultisigMain(address _addr) onlyOwner public {
    require(_addr != address(0));
    mainMultisigEther = _addr;
  }

  /**
  * Allow to change the maximum Coin one address can buy during the ico
  */
  function setMaximumCoinsPerAddress(uint _cnt) onlyOwner public{
    maximumCoinsPerAddress = _cnt;
  }

  /* 
   * The fallback function corresponds to a donation in ETH
   */
  function() respectTimeFrame  payable public{
    require(whiteList[msg.sender]);
    receiveETH(msg.sender);
  }

  /*
   *  Receives a donation in Ether
  */
  function receiveETH(address _beneficiary) internal {
    require(msg.value >= MIN_INVEST_ETHER) ; 
    adjustPhaseBasedOnTime();
    uint coinToSend ;

    if (phase == Phases.MainIco){
      Backer storage mainBacker = mainBackers[_beneficiary];
      require(mainBacker.weiReceived.add(msg.value) <= maximumCoinsPerAddress);

      coinToSend = msg.value.mul(MAIN_COIN_PER_ETHER_ICO).div(1 ether);   
      require(coinToSend.add(mainCoinSentToEther) <= MAIN_MAX_CAP) ;

      mainBacker.coinSent = mainBacker.coinSent.add(coinToSend);
      mainBacker.weiReceived = mainBacker.weiReceived.add(msg.value);   
      mainBacker.coinReadyToSend = mainBacker.coinReadyToSend.add(coinToSend);
      mainReadyToSendAddress.push(_beneficiary);

      // Update the total wei collected during the crowdfunding
      mainEtherReceived = mainEtherReceived.add(msg.value); 
      mainCoinSentToEther = mainCoinSentToEther.add(coinToSend);

      // Send events
      LogReceivedETH(_beneficiary, mainEtherReceived); 
    }
  }

  /*
  * Adjust phase base on time
  */
    function adjustPhaseBasedOnTime() internal {

        if (now < mainStartTime ) {
            if (phase != Phases.PreStart) {
                phase = Phases.PreStart;
            }
        } else if (now >= mainStartTime && now < mainEndTime) {
            if (phase != Phases.MainIco) {
                phase = Phases.MainIco;
            }
        }else {
          if (phase != Phases.AfterIco){
            phase = Phases.AfterIco;
          }
        }
    }
  

  /*
  * Durign the main ico, should be called by owner to send TTC to beneficiary address
  */
  function mainSendTTC() onlyOwner public{
    for(uint i=0; i < mainReadyToSendAddress.length ; i++){
      address backerAddress = mainReadyToSendAddress[i];
      uint coinReadyToSend = mainBackers[backerAddress].coinReadyToSend;
      if ( coinReadyToSend > 0) {
        mainBackers[backerAddress].coinReadyToSend = 0;
        coin.transfer(backerAddress, coinReadyToSend);
        LogCoinsEmited(backerAddress, coinReadyToSend);
      }
    }
    delete mainReadyToSendAddress;
    require(mainMultisigEther.send(this.balance)) ; 

  }

  /*
  *  White list, only address in white list can buy TTC
  */
  function addWhiteList(address[] _whiteList) public {
    require(msg.sender == whiteListOwner);
    for (uint i =0;i<_whiteList.length;i++){
      whiteList[_whiteList[i]] = true;
    } 
  }
  /**
  * Remove address from whiteList by whiteListOwner
  */
  function removeWhiteList(address[] _whiteList) public {
    require(msg.sender == whiteListOwner);
    for (uint i =0;i<_whiteList.length;i++){
      whiteList[_whiteList[i]] = false;
    }
  }

  /*  
   * Finalize the crowdsale, should be called after the refund period
  */
  function finalize() onlyOwner public {
    adjustPhaseBasedOnTime();
    require(phase == Phases.AfterIco);
    require(this.balance > 0);
    require(mainMultisigEther.send(this.balance)) ; 
    uint remains = coin.balanceOf(this);
    if (remains > 0) { 
      coin.transfer(owner,remains);
    }
  }

  /**
   * Manually back TTC owner address.
   */
  function backTTCOwner() onlyOwner public {
    coin.transferOwnership(owner);
  }

  /**
   * Transfer remains to owner in case if impossible to do min invest
   */
  function getMainRemainCoins() onlyOwner public {
    uint mainRemains = MAIN_MAX_CAP - mainCoinSentToEther;
    Backer storage backer = mainBackers[owner];
    coin.transfer(owner, mainRemains); 
    backer.coinSent = backer.coinSent.add(mainRemains);
    mainCoinSentToEther = mainCoinSentToEther.add(mainRemains);

    LogCoinsEmited(this ,mainRemains);
    LogReceivedETH(owner, mainEtherReceived); 
  }

  /**
  * Refund to specific address 
  */
  function refund(address _beneficiary) onlyOwner public {
    uint valueToSend = 0;
    Backer storage mainBacker = mainBackers[_beneficiary];
    if (mainBacker.coinReadyToSend > 0){ 
      uint mainValueToSend = mainBacker.coinReadyToSend.mul(1 ether).div(MAIN_COIN_PER_ETHER_ICO);
      mainBacker.coinSent = mainBacker.coinSent.sub(mainBacker.coinReadyToSend);
      mainBacker.weiReceived = mainBacker.weiReceived.sub(mainValueToSend);   
      mainEtherReceived = mainEtherReceived.sub(mainValueToSend); 
      mainCoinSentToEther = mainCoinSentToEther.sub(mainBacker.coinReadyToSend);
      mainBacker.coinReadyToSend = 0;
      valueToSend = valueToSend + mainValueToSend;

    }
    if (valueToSend > 0){
      require(_beneficiary.send(valueToSend));
    }
    
  }


  /**
  * Refund to all address
  */  
  function refundAll() onlyOwner public {
    
    for(uint j=0; j < mainReadyToSendAddress.length ; j++){
      refund(mainReadyToSendAddress[j]);

    }

    delete mainReadyToSendAddress;

  }
  

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"isExistInWhiteList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"coin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whiteList","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refundAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_whiteList","type":"address[]"}],"name":"removeWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAIN_COIN_PER_ETHER_ICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"}],"name":"changeMainEndTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getMainRemainCoins","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_whiteList","type":"address[]"}],"name":"addWhiteList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"mainBackers","outputs":[{"name":"weiReceived","type":"uint256"},{"name":"coinSent","type":"uint256"},{"name":"coinReadyToSend","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mainMultisigEther","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_INVEST_ETHER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"backTTCOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maximumCoinsPerAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setWhiteListOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"mainSendTTC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"phase","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cnt","type":"uint256"}],"name":"setMaximumCoinsPerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mainCoinSentToEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAIN_MAX_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mainEtherReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_timestamp","type":"uint256"}],"name":"changeMainStartTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setMultisigMain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"setTTCAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogReceivedETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogCoinsEmited","type":"event"}]

6080604052635ad73340600155635afec0406002556802b5e3af16b18800006004556000600b60146101000a81548160ff0219169083600281111561004057fe5b021790555034801561005157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506121e6806100e26000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063060a1051146101eb57806311df999514610246578063372c12b11461029d57806338e771ab146102f8578063397457911461030f578063477492dc1461037557806349b9734d146103a05780634bb278f3146103cd5780635700cb10146103e45780635e1045ec146103fb57806367dd852f1461046157806368f91814146104c65780636a2d1cb81461051d57806372f718941461054857806385473be11461055f5780638da5cb5b1461058a57806391962739146105e1578063a1e3c00814610624578063b1c9fe6e1461063b578063d1d675e414610674578063d726f7c7146106a1578063dc6ff38e146106cc578063e1590ed7146106f7578063f2fde38b14610722578063f4009d9914610765578063f9f286f914610792578063fa89401a146107d5578063ff0f2f7114610818575b600154421015801561017d575060025442105b151561018857600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156101e057600080fd5b6101e93361085b565b005b3480156101f757600080fd5b5061022c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae5565b604051808215151515815260200191505060405180910390f35b34801561025257600080fd5b5061025b610b3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a957600080fd5b506102de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b61565b604051808215151515815260200191505060405180910390f35b34801561030457600080fd5b5061030d610b81565b005b34801561031b57600080fd5b5061037360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c50565b005b34801561038157600080fd5b5061038a610d3c565b6040518082815260200191505060405180910390f35b3480156103ac57600080fd5b506103cb60048036038101908080359060200190929190505050610d49565b005b3480156103d957600080fd5b506103e2610dae565b005b3480156103f057600080fd5b506103f96110ea565b005b34801561040757600080fd5b5061045f600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506113d4565b005b34801561046d57600080fd5b506104a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c0565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156104d257600080fd5b506104db6114ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052957600080fd5b50610532611510565b6040518082815260200191505060405180910390f35b34801561055457600080fd5b5061055d61151c565b005b34801561056b57600080fd5b5061057461166f565b6040518082815260200191505060405180910390f35b34801561059657600080fd5b5061059f611675565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105ed57600080fd5b50610622600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061169a565b005b34801561063057600080fd5b50610639611739565b005b34801561064757600080fd5b50610650611a42565b6040518082600281111561066057fe5b60ff16815260200191505060405180910390f35b34801561068057600080fd5b5061069f60048036038101908080359060200190929190505050611a55565b005b3480156106ad57600080fd5b506106b6611aba565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b506106e1611ac0565b6040518082815260200191505060405180910390f35b34801561070357600080fd5b5061070c611acf565b6040518082815260200191505060405180910390f35b34801561072e57600080fd5b50610763600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad5565b005b34801561077157600080fd5b5061079060048036038101908080359060200190929190505050611baa565b005b34801561079e57600080fd5b506107d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c0f565b005b3480156107e157600080fd5b50610816600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cea565b005b34801561082457600080fd5b50610859600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb4565b005b60008067016345785d8a0000341015151561087557600080fd5b61087d611f8f565b6001600281111561088a57fe5b600b60149054906101000a900460ff1660028111156108a557fe5b1415610ae057600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506004546109063483600001546120ba90919063ffffffff16565b1115151561091357600080fd5b610949670de0b6b3a764000061093b68d8d726b7177a800000346120db90919063ffffffff16565b61211190919063ffffffff16565b91506a52b7d2dcc80cd2e400000061096c600754846120ba90919063ffffffff16565b1115151561097957600080fd5b6109908282600101546120ba90919063ffffffff16565b81600101819055506109af3482600001546120ba90919063ffffffff16565b81600001819055506109ce8282600201546120ba90919063ffffffff16565b816002018190555060098390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610a51346006546120ba90919063ffffffff16565b600681905550610a6c826007546120ba90919063ffffffff16565b6007819055507fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e8583600654604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bde57600080fd5b600090505b600980549050811015610c3f57610c32600982815481101515610c0257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cea565b8080600101915050610be3565b60096000610c4d9190612174565b50565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cae57600080fd5b600090505b8151811015610d38576000600a60008484815181101515610cd057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610cb3565b5050565b68d8d726b7177a80000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da457600080fd5b8060028190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0b57600080fd5b610e13611f8f565b600280811115610e1f57fe5b600b60149054906101000a900460ff166002811115610e3a57fe5b141515610e4657600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515610e6c57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610ee557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610fa257600080fd5b505af1158015610fb6573d6000803e3d6000fd5b505050506040513d6020811015610fcc57600080fd5b8101908080519060200190929190505050905060008111156110e757600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156110ce57600080fd5b505af11580156110e2573d6000803e3d6000fd5b505050505b50565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114857600080fd5b6007546a52b7d2dcc80cd2e4000000039150600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156112a257600080fd5b505af11580156112b6573d6000803e3d6000fd5b505050506112d18282600101546120ba90919063ffffffff16565b81600101819055506112ee826007546120ba90919063ffffffff16565b6007819055503073ffffffffffffffffffffffffffffffffffffffff167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c836040518082815260200191505060405180910390a27fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e856000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143257600080fd5b600090505b81518110156114bc576001600a6000848481518110151561145457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611437565b5050565b60086020528060005260406000206000915090508060000154908060010154908060020154905083565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b67016345785d8a000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561165557600080fd5b505af1158015611669573d6000803e3d6000fd5b50505050565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116f557600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561179957600080fd5b600092505b6009805490508310156119b6576009838154811015156117ba57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154905060008111156119a9576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561194257600080fd5b505af1158015611956573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c826040518082815260200191505060405180910390a25b828060010193505061179e565b600960006119c49190612174565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611a3d57600080fd5b505050565b600b60149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab057600080fd5b8060048190555050565b60075481565b6a52b7d2dcc80cd2e400000081565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b3057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611ba757806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c0557600080fd5b8060018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c6a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ca657600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d4a57600080fd5b60009250600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600082600201541115611e6457611dd668d8d726b7177a800000611dc8670de0b6b3a764000085600201546120db90919063ffffffff16565b61211190919063ffffffff16565b9050611df38260020154836001015461215890919063ffffffff16565b8260010181905550611e1281836000015461215890919063ffffffff16565b8260000181905550611e2f8160065461215890919063ffffffff16565b600681905550611e4e826002015460075461215890919063ffffffff16565b6007819055506000826002018190555080830192505b6000831115611eae578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611ead57600080fd5b5b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f0f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f4b57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600154421015611ff25760006002811115611fa657fe5b600b60149054906101000a900460ff166002811115611fc157fe5b141515611fed576000600b60146101000a81548160ff02191690836002811115611fe757fe5b02179055505b6120b8565b6001544210158015612005575060025442105b15612063576001600281111561201757fe5b600b60149054906101000a900460ff16600281111561203257fe5b14151561205e576001600b60146101000a81548160ff0219169083600281111561205857fe5b02179055505b6120b7565b60028081111561206f57fe5b600b60149054906101000a900460ff16600281111561208a57fe5b1415156120b6576002600b60146101000a81548160ff021916908360028111156120b057fe5b02179055505b5b5b565b60008082840190508381101515156120d157600080fd5b8091505092915050565b600080828402905060008414806120fc57508284828115156120f957fe5b04145b151561210757600080fd5b8091505092915050565b60008060008311151561212357600080fd5b828481151561212e57fe5b049050828481151561213c57fe5b06818402018414151561214e57600080fd5b8091505092915050565b600082821115151561216957600080fd5b818303905092915050565b50805460008255906000526020600020908101906121929190612195565b50565b6121b791905b808211156121b357600081600090555060010161219b565b5090565b905600a165627a7a72305820ec8244feb196376dc2c196eb5b22369bf198d97e1d23616f7d2051ee0660e3570029

Deployed Bytecode

0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063060a1051146101eb57806311df999514610246578063372c12b11461029d57806338e771ab146102f8578063397457911461030f578063477492dc1461037557806349b9734d146103a05780634bb278f3146103cd5780635700cb10146103e45780635e1045ec146103fb57806367dd852f1461046157806368f91814146104c65780636a2d1cb81461051d57806372f718941461054857806385473be11461055f5780638da5cb5b1461058a57806391962739146105e1578063a1e3c00814610624578063b1c9fe6e1461063b578063d1d675e414610674578063d726f7c7146106a1578063dc6ff38e146106cc578063e1590ed7146106f7578063f2fde38b14610722578063f4009d9914610765578063f9f286f914610792578063fa89401a146107d5578063ff0f2f7114610818575b600154421015801561017d575060025442105b151561018857600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156101e057600080fd5b6101e93361085b565b005b3480156101f757600080fd5b5061022c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ae5565b604051808215151515815260200191505060405180910390f35b34801561025257600080fd5b5061025b610b3b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a957600080fd5b506102de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b61565b604051808215151515815260200191505060405180910390f35b34801561030457600080fd5b5061030d610b81565b005b34801561031b57600080fd5b5061037360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c50565b005b34801561038157600080fd5b5061038a610d3c565b6040518082815260200191505060405180910390f35b3480156103ac57600080fd5b506103cb60048036038101908080359060200190929190505050610d49565b005b3480156103d957600080fd5b506103e2610dae565b005b3480156103f057600080fd5b506103f96110ea565b005b34801561040757600080fd5b5061045f600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506113d4565b005b34801561046d57600080fd5b506104a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c0565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156104d257600080fd5b506104db6114ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052957600080fd5b50610532611510565b6040518082815260200191505060405180910390f35b34801561055457600080fd5b5061055d61151c565b005b34801561056b57600080fd5b5061057461166f565b6040518082815260200191505060405180910390f35b34801561059657600080fd5b5061059f611675565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105ed57600080fd5b50610622600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061169a565b005b34801561063057600080fd5b50610639611739565b005b34801561064757600080fd5b50610650611a42565b6040518082600281111561066057fe5b60ff16815260200191505060405180910390f35b34801561068057600080fd5b5061069f60048036038101908080359060200190929190505050611a55565b005b3480156106ad57600080fd5b506106b6611aba565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b506106e1611ac0565b6040518082815260200191505060405180910390f35b34801561070357600080fd5b5061070c611acf565b6040518082815260200191505060405180910390f35b34801561072e57600080fd5b50610763600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad5565b005b34801561077157600080fd5b5061079060048036038101908080359060200190929190505050611baa565b005b34801561079e57600080fd5b506107d3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c0f565b005b3480156107e157600080fd5b50610816600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cea565b005b34801561082457600080fd5b50610859600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb4565b005b60008067016345785d8a0000341015151561087557600080fd5b61087d611f8f565b6001600281111561088a57fe5b600b60149054906101000a900460ff1660028111156108a557fe5b1415610ae057600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506004546109063483600001546120ba90919063ffffffff16565b1115151561091357600080fd5b610949670de0b6b3a764000061093b68d8d726b7177a800000346120db90919063ffffffff16565b61211190919063ffffffff16565b91506a52b7d2dcc80cd2e400000061096c600754846120ba90919063ffffffff16565b1115151561097957600080fd5b6109908282600101546120ba90919063ffffffff16565b81600101819055506109af3482600001546120ba90919063ffffffff16565b81600001819055506109ce8282600201546120ba90919063ffffffff16565b816002018190555060098390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610a51346006546120ba90919063ffffffff16565b600681905550610a6c826007546120ba90919063ffffffff16565b6007819055507fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e8583600654604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bde57600080fd5b600090505b600980549050811015610c3f57610c32600982815481101515610c0257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611cea565b8080600101915050610be3565b60096000610c4d9190612174565b50565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610cae57600080fd5b600090505b8151811015610d38576000600a60008484815181101515610cd057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610cb3565b5050565b68d8d726b7177a80000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610da457600080fd5b8060028190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0b57600080fd5b610e13611f8f565b600280811115610e1f57fe5b600b60149054906101000a900460ff166002811115610e3a57fe5b141515610e4657600080fd5b60003073ffffffffffffffffffffffffffffffffffffffff1631111515610e6c57600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515610ee557600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610fa257600080fd5b505af1158015610fb6573d6000803e3d6000fd5b505050506040513d6020811015610fcc57600080fd5b8101908080519060200190929190505050905060008111156110e757600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156110ce57600080fd5b505af11580156110e2573d6000803e3d6000fd5b505050505b50565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114857600080fd5b6007546a52b7d2dcc80cd2e4000000039150600860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b1580156112a257600080fd5b505af11580156112b6573d6000803e3d6000fd5b505050506112d18282600101546120ba90919063ffffffff16565b81600101819055506112ee826007546120ba90919063ffffffff16565b6007819055503073ffffffffffffffffffffffffffffffffffffffff167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c836040518082815260200191505060405180910390a27fd1dc370699ae69fb860ed754789a4327413ec1cd379b93f2cbedf449a26b0e856000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600654604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561143257600080fd5b600090505b81518110156114bc576001600a6000848481518110151561145457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611437565b5050565b60086020528060005260406000206000915090508060000154908060010154908060020154905083565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b67016345785d8a000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561157757600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f2fde38b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561165557600080fd5b505af1158015611669573d6000803e3d6000fd5b50505050565b60045481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116f557600080fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561179957600080fd5b600092505b6009805490508310156119b6576009838154811015156117ba57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154905060008111156119a9576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561194257600080fd5b505af1158015611956573d6000803e3d6000fd5b505050508173ffffffffffffffffffffffffffffffffffffffff167ff3c1c7c0eb1328ddc834c4c9e579c06d35f443bf1102b034653624a239c7a40c826040518082815260200191505060405180910390a25b828060010193505061179e565b600960006119c49190612174565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501515611a3d57600080fd5b505050565b600b60149054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab057600080fd5b8060048190555050565b60075481565b6a52b7d2dcc80cd2e400000081565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b3057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611ba757806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c0557600080fd5b8060018190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c6a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611ca657600080fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d4a57600080fd5b60009250600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209150600082600201541115611e6457611dd668d8d726b7177a800000611dc8670de0b6b3a764000085600201546120db90919063ffffffff16565b61211190919063ffffffff16565b9050611df38260020154836001015461215890919063ffffffff16565b8260010181905550611e1281836000015461215890919063ffffffff16565b8260000181905550611e2f8160065461215890919063ffffffff16565b600681905550611e4e826002015460075461215890919063ffffffff16565b6007819055506000826002018190555080830192505b6000831115611eae578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501515611ead57600080fd5b5b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f0f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611f4b57600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600154421015611ff25760006002811115611fa657fe5b600b60149054906101000a900460ff166002811115611fc157fe5b141515611fed576000600b60146101000a81548160ff02191690836002811115611fe757fe5b02179055505b6120b8565b6001544210158015612005575060025442105b15612063576001600281111561201757fe5b600b60149054906101000a900460ff16600281111561203257fe5b14151561205e576001600b60146101000a81548160ff0219169083600281111561205857fe5b02179055505b6120b7565b60028081111561206f57fe5b600b60149054906101000a900460ff16600281111561208a57fe5b1415156120b6576002600b60146101000a81548160ff021916908360028111156120b057fe5b02179055505b5b5b565b60008082840190508381101515156120d157600080fd5b8091505092915050565b600080828402905060008414806120fc57508284828115156120f957fe5b04145b151561210757600080fd5b8091505092915050565b60008060008311151561212357600080fd5b828481151561212e57fe5b049050828481151561213c57fe5b06818402018414151561214e57600080fd5b8091505092915050565b600082821115151561216957600080fd5b818303905092915050565b50805460008255906000526020600020908101906121929190612195565b50565b6121b791905b808211156121b357600081600090555060010161219b565b5090565b905600a165627a7a72305820ec8244feb196376dc2c196eb5b22369bf198d97e1d23616f7d2051ee0660e3570029

Swarm Source

bzzr://ec8244feb196376dc2c196eb5b22369bf198d97e1d23616f7d2051ee0660e357

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.