ETH Price: $2,384.13 (-0.22%)

Contract

0x5136C98A80811C3f46bDda8B5c4555CFd9f812F0
 
Transaction Hash
Method
Block
From
To
Transfer207970122024-09-21 5:57:3519 days ago1726898255IN
IndaHashToken
0 ETH0.000534919.78431335
Transfer207271722024-09-11 11:48:5929 days ago1726055339IN
IndaHashToken
0 ETH0.00011842.16620382
Transfer206998412024-09-07 16:12:3533 days ago1725725555IN
IndaHashToken
0 ETH0.000144832.64986292
Transfer205625322024-08-19 11:59:3552 days ago1724068775IN
IndaHashToken
0 ETH0.000179853.29051352
Transfer205619322024-08-19 9:58:5952 days ago1724061539IN
IndaHashToken
0 ETH0.000217763.98317391
Approve205266072024-08-14 11:35:3557 days ago1723635335IN
IndaHashToken
0 ETH0.000062592.55186848
Approve205081192024-08-11 21:40:5960 days ago1723412459IN
IndaHashToken
0 ETH0.000056371.16419132
Approve204681112024-08-06 7:43:1165 days ago1722930191IN
IndaHashToken
0 ETH0.000076493.11838522
Approve204533932024-08-04 6:27:5967 days ago1722752879IN
IndaHashToken
0 ETH0.000048421
Transfer204532922024-08-04 6:07:3567 days ago1722751655IN
IndaHashToken
0 ETH0.000054671
Transfer204532922024-08-04 6:07:3567 days ago1722751655IN
IndaHashToken
0 ETH0.000055771
Transfer204528042024-08-04 4:29:4767 days ago1722745787IN
IndaHashToken
0 ETH0.000054641
Transfer204517662024-08-04 1:01:2368 days ago1722733283IN
IndaHashToken
0 ETH0.000054671
Approve203799932024-07-25 0:31:1178 days ago1721867471IN
IndaHashToken
0 ETH0.000074773.04816377
Approve203728292024-07-24 0:30:4779 days ago1721781047IN
IndaHashToken
0 ETH0.000067792.76365611
Approve203728012024-07-24 0:25:1179 days ago1721780711IN
IndaHashToken
0 ETH0.000069312.82579222
Transfer203617952024-07-22 11:32:3580 days ago1721647955IN
IndaHashToken
0 ETH0.000297765.44655144
Transfer202975582024-07-13 12:22:2389 days ago1720873343IN
IndaHashToken
0 ETH0.000068281.81744914
Transfer202974892024-07-13 12:08:3589 days ago1720872515IN
IndaHashToken
0 ETH0.000087592.3322184
Transfer202974872024-07-13 12:08:1189 days ago1720872491IN
IndaHashToken
0 ETH0.000077762.07041471
Transfer202974842024-07-13 12:07:3589 days ago1720872455IN
IndaHashToken
0 ETH0.000081932.18144978
Transfer202974822024-07-13 12:07:1189 days ago1720872431IN
IndaHashToken
0 ETH0.000075492.01012335
Transfer202974722024-07-13 12:05:1189 days ago1720872311IN
IndaHashToken
0 ETH0.000069971.8629592
Transfer202974692024-07-13 12:04:3589 days ago1720872275IN
IndaHashToken
0 ETH0.000070211.8695135
Transfer202974682024-07-13 12:04:2389 days ago1720872263IN
IndaHashToken
0 ETH0.000072471.92968997
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
47660952017-12-20 14:58:562486 days ago1513781936
IndaHashToken
1.20458884 ETH
47660952017-12-20 14:58:562486 days ago1513781936
IndaHashToken
1 ETH
47660952017-12-20 14:58:562486 days ago1513781936
IndaHashToken
2 ETH
47660862017-12-20 14:57:232486 days ago1513781843
IndaHashToken
0.5 ETH
47660862017-12-20 14:57:232486 days ago1513781843
IndaHashToken
0.5 ETH
47660842017-12-20 14:56:582486 days ago1513781818
IndaHashToken
0.58 ETH
47660832017-12-20 14:56:212486 days ago1513781781
IndaHashToken
0.5 ETH
47660822017-12-20 14:55:422486 days ago1513781742
IndaHashToken
1 ETH
47660822017-12-20 14:55:422486 days ago1513781742
IndaHashToken
0.5 ETH
47660812017-12-20 14:54:572486 days ago1513781697
IndaHashToken
0.97 ETH
47660802017-12-20 14:54:452486 days ago1513781685
IndaHashToken
0.5 ETH
47660782017-12-20 14:54:352486 days ago1513781675
IndaHashToken
0.9 ETH
47660782017-12-20 14:54:352486 days ago1513781675
IndaHashToken
0.94172144 ETH
47660782017-12-20 14:54:352486 days ago1513781675
IndaHashToken
0.52 ETH
47660692017-12-20 14:51:452486 days ago1513781505
IndaHashToken
0.5 ETH
47660672017-12-20 14:51:302486 days ago1513781490
IndaHashToken
0.5 ETH
47660672017-12-20 14:51:302486 days ago1513781490
IndaHashToken
0.989875 ETH
47660662017-12-20 14:51:042486 days ago1513781464
IndaHashToken
1.73 ETH
47660642017-12-20 14:50:562486 days ago1513781456
IndaHashToken
1 ETH
47660602017-12-20 14:49:552486 days ago1513781395
IndaHashToken
1.043 ETH
47660582017-12-20 14:49:282486 days ago1513781368
IndaHashToken
0.74 ETH
47660572017-12-20 14:49:192486 days ago1513781359
IndaHashToken
0.99 ETH
47660552017-12-20 14:48:352486 days ago1513781315
IndaHashToken
0.7 ETH
47660552017-12-20 14:48:352486 days ago1513781315
IndaHashToken
1 ETH
47660522017-12-20 14:47:472486 days ago1513781267
IndaHashToken
0.99 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
IndaHashToken

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-11-08
*/

pragma solidity ^0.4.16;

// ----------------------------------------------------------------------------
//
// IDH indaHash token public sale contract
//
// For details, please visit: https://indahash.com/ico
//
// ----------------------------------------------------------------------------


// ----------------------------------------------------------------------------
//
// SafeMath3
//
// Adapted from https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
// (no need to implement division)
//
// ----------------------------------------------------------------------------

library SafeMath3 {

  function mul(uint a, uint b) internal constant returns (uint c) {
    c = a * b;
    assert( a == 0 || c / a == b );
  }

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

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

}


// ----------------------------------------------------------------------------
//
// Owned contract
//
// ----------------------------------------------------------------------------

contract Owned {

  address public owner;
  address public newOwner;

  // Events ---------------------------

  event OwnershipTransferProposed(address indexed _from, address indexed _to);
  event OwnershipTransferred(address indexed _from, address indexed _to);

  // Modifier -------------------------

  modifier onlyOwner {
    require( msg.sender == owner );
    _;
  }

  // Functions ------------------------

  function Owned() {
    owner = msg.sender;
  }

  function transferOwnership(address _newOwner) onlyOwner {
    require( _newOwner != owner );
    require( _newOwner != address(0x0) );
    OwnershipTransferProposed(owner, _newOwner);
    newOwner = _newOwner;
  }

  function acceptOwnership() {
    require(msg.sender == newOwner);
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}


// ----------------------------------------------------------------------------
//
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
//
// ----------------------------------------------------------------------------

contract ERC20Interface {

  // Events ---------------------------

  event Transfer(address indexed _from, address indexed _to, uint _value);
  event Approval(address indexed _owner, address indexed _spender, uint _value);

  // Functions ------------------------

  function totalSupply() constant returns (uint);
  function balanceOf(address _owner) constant returns (uint balance);
  function transfer(address _to, uint _value) returns (bool success);
  function transferFrom(address _from, address _to, uint _value) returns (bool success);
  function approve(address _spender, uint _value) returns (bool success);
  function allowance(address _owner, address _spender) constant returns (uint remaining);

}


// ----------------------------------------------------------------------------
//
// ERC Token Standard #20
//
// ----------------------------------------------------------------------------

contract ERC20Token is ERC20Interface, Owned {
  
  using SafeMath3 for uint;

  uint public tokensIssuedTotal = 0;
  mapping(address => uint) balances;
  mapping(address => mapping (address => uint)) allowed;

  // Functions ------------------------

  /* Total token supply */

  function totalSupply() constant returns (uint) {
    return tokensIssuedTotal;
  }

  /* Get the account balance for an address */

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

  /* Transfer the balance from owner's account to another account */

  function transfer(address _to, uint _amount) returns (bool success) {
    // amount sent cannot exceed balance
    require( balances[msg.sender] >= _amount );

    // update balances
    balances[msg.sender] = balances[msg.sender].sub(_amount);
    balances[_to]        = balances[_to].add(_amount);

    // log event
    Transfer(msg.sender, _to, _amount);
    return true;
  }

  /* Allow _spender to withdraw from your account up to _amount */

  function approve(address _spender, uint _amount) returns (bool success) {
    // approval amount cannot exceed the balance
    require ( balances[msg.sender] >= _amount );
      
    // update allowed amount
    allowed[msg.sender][_spender] = _amount;
    
    // log event
    Approval(msg.sender, _spender, _amount);
    return true;
  }

  /* Spender of tokens transfers tokens from the owner's balance */
  /* Must be pre-approved by owner */

  function transferFrom(address _from, address _to, uint _amount) returns (bool success) {
    // balance checks
    require( balances[_from] >= _amount );
    require( allowed[_from][msg.sender] >= _amount );

    // update balances and allowed amount
    balances[_from]            = balances[_from].sub(_amount);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount);
    balances[_to]              = balances[_to].add(_amount);

    // log event
    Transfer(_from, _to, _amount);
    return true;
  }

  /* Returns the amount of tokens approved by the owner */
  /* that can be transferred by spender */

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

}


// ----------------------------------------------------------------------------
//
// IDH public token sale
//
// ----------------------------------------------------------------------------

contract IndaHashToken is ERC20Token {

  /* Utility variable */
  
  uint constant E6 = 10**6;
  
  /* Basic token data */

  string public constant name     = "indaHash Coin";
  string public constant symbol   = "IDH";
  uint8  public constant decimals = 6;

  /* Wallet addresses - initially set to owner at deployment */
  
  address public wallet;
  address public adminWallet;

  /* ICO dates */

  uint public constant DATE_PRESALE_START = 1510153200; // 08-Nov-2017 15:00 UTC
  uint public constant DATE_PRESALE_END   = 1510758000; // 15-Nov-2017 15:00 UTC

  uint public constant DATE_ICO_START = 1511967600; // 29-Nov-2017 15:00 UTC
  uint public constant DATE_ICO_END   = 1513782000; // 20-Dec-2017 15:00 UTC

  /* ICO tokens per ETH */
  
  uint public tokensPerEth = 3200 * E6; // rate during last ICO week

  uint public constant BONUS_PRESALE      = 40;
  uint public constant BONUS_ICO_WEEK_ONE = 20;
  uint public constant BONUS_ICO_WEEK_TWO = 10;

  /* Other ICO parameters */  
  
  uint public constant TOKEN_SUPPLY_TOTAL = 400 * E6 * E6; // 400 mm tokens
  uint public constant TOKEN_SUPPLY_ICO   = 320 * E6 * E6; // 320 mm tokens
  uint public constant TOKEN_SUPPLY_MKT   =  80 * E6 * E6; //  80 mm tokens

  uint public constant PRESALE_ETH_CAP =  15000 ether;

  uint public constant MIN_FUNDING_GOAL =  40 * E6 * E6; // 40 mm tokens
  
  uint public constant MIN_CONTRIBUTION = 1 ether / 2; // 0.5 Ether
  uint public constant MAX_CONTRIBUTION = 300 ether;

  uint public constant COOLDOWN_PERIOD =  2 days;
  uint public constant CLAWBACK_PERIOD = 90 days;

  /* Crowdsale variables */

  uint public icoEtherReceived = 0; // Ether actually received by the contract

  uint public tokensIssuedIco   = 0;
  uint public tokensIssuedMkt   = 0;
  
  uint public tokensClaimedAirdrop = 0;
  
  /* Keep track of Ether contributed and tokens received during Crowdsale */
  
  mapping(address => uint) public icoEtherContributed;
  mapping(address => uint) public icoTokensReceived;

  /* Keep track of participants who 
  /* - have received their airdropped tokens after a successful ICO */
  /* - or have reclaimed their contributions in case of failed Crowdsale */
  /* - are locked */
  
  mapping(address => bool) public airdropClaimed;
  mapping(address => bool) public refundClaimed;
  mapping(address => bool) public locked;

  // Events ---------------------------
  
  event WalletUpdated(address _newWallet);
  event AdminWalletUpdated(address _newAdminWallet);
  event TokensPerEthUpdated(uint _tokensPerEth);
  event TokensMinted(address indexed _owner, uint _tokens, uint _balance);
  event TokensIssued(address indexed _owner, uint _tokens, uint _balance, uint _etherContributed);
  event Refund(address indexed _owner, uint _amount, uint _tokens);
  event Airdrop(address indexed _owner, uint _amount, uint _balance);
  event LockRemoved(address indexed _participant);

  // Basic Functions ------------------

  /* Initialize (owner is set to msg.sender by Owned.Owned() */

  function IndaHashToken() {
    require( TOKEN_SUPPLY_ICO + TOKEN_SUPPLY_MKT == TOKEN_SUPPLY_TOTAL );
    wallet = owner;
    adminWallet = owner;
  }

  /* Fallback */
  
  function () payable {
    buyTokens();
  }
  
  // Information functions ------------
  
  /* What time is it? */
  
  function atNow() constant returns (uint) {
    return now;
  }
  
  /* Has the minimum threshold been reached? */
  
  function icoThresholdReached() constant returns (bool thresholdReached) {
     if (tokensIssuedIco < MIN_FUNDING_GOAL) return false;
     return true;
  }  
  
  /* Are tokens transferable? */

  function isTransferable() constant returns (bool transferable) {
     if ( !icoThresholdReached() ) return false;
     if ( atNow() < DATE_ICO_END + COOLDOWN_PERIOD ) return false;
     return true;
  }
  
  // Lock functions -------------------

  /* Manage locked */

  function removeLock(address _participant) {
    require( msg.sender == adminWallet || msg.sender == owner );
    locked[_participant] = false;
    LockRemoved(_participant);
  }

  function removeLockMultiple(address[] _participants) {
    require( msg.sender == adminWallet || msg.sender == owner );
    for (uint i = 0; i < _participants.length; i++) {
      locked[_participants[i]] = false;
      LockRemoved(_participants[i]);
    }
  }

  // Owner Functions ------------------
  
  /* Change the crowdsale wallet address */

  function setWallet(address _wallet) onlyOwner {
    require( _wallet != address(0x0) );
    wallet = _wallet;
    WalletUpdated(wallet);
  }

  /* Change the admin wallet address */

  function setAdminWallet(address _wallet) onlyOwner {
    require( _wallet != address(0x0) );
    adminWallet = _wallet;
    AdminWalletUpdated(adminWallet);
  }

  /* Change tokensPerEth before ICO start */
  
  function updateTokensPerEth(uint _tokensPerEth) onlyOwner {
    require( atNow() < DATE_PRESALE_START );
    tokensPerEth = _tokensPerEth;
    TokensPerEthUpdated(_tokensPerEth);
  }

  /* Minting of marketing tokens by owner */

  function mintMarketing(address _participant, uint _tokens) onlyOwner {
    // check amount
    require( _tokens <= TOKEN_SUPPLY_MKT.sub(tokensIssuedMkt) );
    
    // update balances
    balances[_participant] = balances[_participant].add(_tokens);
    tokensIssuedMkt        = tokensIssuedMkt.add(_tokens);
    tokensIssuedTotal      = tokensIssuedTotal.add(_tokens);
    
    // locked
    locked[_participant] = true;
    
    // log the miniting
    Transfer(0x0, _participant, _tokens);
    TokensMinted(_participant, _tokens, balances[_participant]);
  }

  /* Owner clawback of remaining funds after clawback period */
  /* (for use in case of a failed Crwodsale) */
  
  function ownerClawback() external onlyOwner {
    require( atNow() > DATE_ICO_END + CLAWBACK_PERIOD );
    wallet.transfer(this.balance);
  }

  /* Transfer out any accidentally sent ERC20 tokens */

  function transferAnyERC20Token(address tokenAddress, uint amount) onlyOwner returns (bool success) {
      return ERC20Interface(tokenAddress).transfer(owner, amount);
  }

  // Private functions ----------------

  /* Accept ETH during crowdsale (called by default function) */

  function buyTokens() private {
    uint ts = atNow();
    bool isPresale = false;
    bool isIco = false;
    uint tokens = 0;
    
    // minimum contribution
    require( msg.value >= MIN_CONTRIBUTION );
    
    // one address transfer hard cap
    require( icoEtherContributed[msg.sender].add(msg.value) <= MAX_CONTRIBUTION );

    // check dates for presale or ICO
    if (ts > DATE_PRESALE_START && ts < DATE_PRESALE_END) isPresale = true;  
    if (ts > DATE_ICO_START && ts < DATE_ICO_END) isIco = true;  
    require( isPresale || isIco );

    // presale cap in Ether
    if (isPresale) require( icoEtherReceived.add(msg.value) <= PRESALE_ETH_CAP );
    
    // get baseline number of tokens
    tokens = tokensPerEth.mul(msg.value) / 1 ether;
    
    // apply bonuses (none for last week)
    if (isPresale) {
      tokens = tokens.mul(100 + BONUS_PRESALE) / 100;
    } else if (ts < DATE_ICO_START + 7 days) {
      // first week ico bonus
      tokens = tokens.mul(100 + BONUS_ICO_WEEK_ONE) / 100;
    } else if (ts < DATE_ICO_START + 14 days) {
      // second week ico bonus
      tokens = tokens.mul(100 + BONUS_ICO_WEEK_TWO) / 100;
    }
    
    // ICO token volume cap
    require( tokensIssuedIco.add(tokens) <= TOKEN_SUPPLY_ICO );

    // register tokens
    balances[msg.sender]          = balances[msg.sender].add(tokens);
    icoTokensReceived[msg.sender] = icoTokensReceived[msg.sender].add(tokens);
    tokensIssuedIco               = tokensIssuedIco.add(tokens);
    tokensIssuedTotal             = tokensIssuedTotal.add(tokens);
    
    // register Ether
    icoEtherReceived                = icoEtherReceived.add(msg.value);
    icoEtherContributed[msg.sender] = icoEtherContributed[msg.sender].add(msg.value);
    
    // locked
    locked[msg.sender] = true;
    
    // log token issuance
    Transfer(0x0, msg.sender, tokens);
    TokensIssued(msg.sender, tokens, balances[msg.sender], msg.value);

    // transfer Ether if we're over the threshold
    if ( icoThresholdReached() ) wallet.transfer(this.balance);
  }
  
  // ERC20 functions ------------------

  /* Override "transfer" (ERC20) */

  function transfer(address _to, uint _amount) returns (bool success) {
    require( isTransferable() );
    require( locked[msg.sender] == false );
    require( locked[_to] == false );
    return super.transfer(_to, _amount);
  }
  
  /* Override "transferFrom" (ERC20) */

  function transferFrom(address _from, address _to, uint _amount) returns (bool success) {
    require( isTransferable() );
    require( locked[_from] == false );
    require( locked[_to] == false );
    return super.transferFrom(_from, _to, _amount);
  }

  // External functions ---------------

  /* Reclaiming of funds by contributors in case of a failed crowdsale */
  /* (it will fail if account is empty after ownerClawback) */

  /* While there could not have been any token transfers yet, a contributor */
  /* may have received minted tokens, so the token balance after a refund */ 
  /* may still be positive */
  
  function reclaimFunds() external {
    uint tokens; // tokens to destroy
    uint amount; // refund amount
    
    // ico is finished and was not successful
    require( atNow() > DATE_ICO_END && !icoThresholdReached() );
    
    // check if refund has already been claimed
    require( !refundClaimed[msg.sender] );
    
    // check if there is anything to refund
    require( icoEtherContributed[msg.sender] > 0 );
    
    // update variables affected by refund
    tokens = icoTokensReceived[msg.sender];
    amount = icoEtherContributed[msg.sender];

    balances[msg.sender] = balances[msg.sender].sub(tokens);
    tokensIssuedTotal    = tokensIssuedTotal.sub(tokens);
    
    refundClaimed[msg.sender] = true;
    
    // transfer out refund
    msg.sender.transfer(amount);
    
    // log
    Transfer(msg.sender, 0x0, tokens);
    Refund(msg.sender, amount, tokens);
  }

  /* Claiming of "airdropped" tokens in case of successful crowdsale */
  /* Can be done by token holder, or by adminWallet */ 

  function claimAirdrop() external {
    doAirdrop(msg.sender);
  }

  function adminClaimAirdrop(address _participant) external {
    require( msg.sender == adminWallet );
    doAirdrop(_participant);
  }

  function adminClaimAirdropMultiple(address[] _addresses) external {
    require( msg.sender == adminWallet );
    for (uint i = 0; i < _addresses.length; i++) doAirdrop(_addresses[i]);
  }  
  
  function doAirdrop(address _participant) internal {
    uint airdrop = computeAirdrop(_participant);

    require( airdrop > 0 );

    // update balances and token issue volume
    airdropClaimed[_participant] = true;
    balances[_participant] = balances[_participant].add(airdrop);
    tokensIssuedTotal      = tokensIssuedTotal.add(airdrop);
    tokensClaimedAirdrop   = tokensClaimedAirdrop.add(airdrop);
    
    // log
    Airdrop(_participant, airdrop, balances[_participant]);
    Transfer(0x0, _participant, airdrop);
  }

  /* Function to estimate airdrop amount. For some accounts, the value of */
  /* tokens received by calling claimAirdrop() may be less than gas costs */
  
  /* If an account has tokens from the ico, the amount after the airdrop */
  /* will be newBalance = tokens * TOKEN_SUPPLY_ICO / tokensIssuedIco */
      
  function computeAirdrop(address _participant) constant returns (uint airdrop) {
    // return 0 if it's too early or ico was not successful
    if ( atNow() < DATE_ICO_END || !icoThresholdReached() ) return 0;
    
    // return  0 is the airdrop was already claimed
    if( airdropClaimed[_participant] ) return 0;

    // return 0 if the account does not hold any crowdsale tokens
    if( icoTokensReceived[_participant] == 0 ) return 0;
    
    // airdrop amount
    uint tokens = icoTokensReceived[_participant];
    uint newBalance = tokens.mul(TOKEN_SUPPLY_ICO) / tokensIssuedIco;
    airdrop = newBalance - tokens;
  }  

  /* Multiple token transfers from one address to save gas */
  /* (longer _amounts array not accepted = sanity check) */

  function transferMultiple(address[] _addresses, uint[] _amounts) external {
    require( isTransferable() );
    require( locked[msg.sender] == false );
    require( _addresses.length == _amounts.length );
    for (uint i = 0; i < _addresses.length; i++) {
      if (locked[_addresses[i]] == false) super.transfer(_addresses[i], _amounts[i]);
    }
  }  

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"CLAWBACK_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DATE_PRESALE_START","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BONUS_ICO_WEEK_TWO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BONUS_PRESALE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTransferable","outputs":[{"name":"transferable","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"icoEtherContributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"setAdminWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"adminWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_FUNDING_GOAL","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_CONTRIBUTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_participant","type":"address"}],"name":"computeAirdrop","outputs":[{"name":"airdrop","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_ETH_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"removeLock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimAirdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DATE_PRESALE_END","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensClaimedAirdrop","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"COOLDOWN_PERIOD","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_SUPPLY_MKT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"mintMarketing","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"atNow","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensIssuedTotal","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":true,"inputs":[],"name":"MAX_CONTRIBUTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DATE_ICO_START","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokensPerEth","type":"uint256"}],"name":"updateTokensPerEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"transferMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_participant","type":"address"}],"name":"adminClaimAirdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"refundClaimed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"ownerClawback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"DATE_ICO_END","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BONUS_ICO_WEEK_ONE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_SUPPLY_ICO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"locked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"icoTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_SUPPLY_TOTAL","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"airdropClaimed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensIssuedIco","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"setWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensIssuedMkt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoThresholdReached","outputs":[{"name":"thresholdReached","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"adminClaimAirdropMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"icoEtherReceived","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":"_participants","type":"address[]"}],"name":"removeLockMultiple","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":"_newWallet","type":"address"}],"name":"WalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_newAdminWallet","type":"address"}],"name":"AdminWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tokensPerEth","type":"uint256"}],"name":"TokensPerEthUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"TokensMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_tokens","type":"uint256"},{"indexed":false,"name":"_balance","type":"uint256"},{"indexed":false,"name":"_etherContributed","type":"uint256"}],"name":"TokensIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_tokens","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"Airdrop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_participant","type":"address"}],"name":"LockRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526000600255620f4240610c8002600755600060085560006009556000600a556000600b55341561003357600080fd5b5b5b60008054600160a060020a03191633600160a060020a03161790555b5b60005460058054600160a060020a03909216600160a060020a03199283168117909155600680549092161790555b5b612321806100906000396000f300606060405236156102bc5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663021ba8f881146102c8578063023bb74d146102ed578063024c6def1461031257806305502a621461033757806306fdde031461035c578063095ea7b3146103e757806318160ddd1461041d5780632121dc751461044257806323b872dd14610469578063313ce567146104a5578063347e26c0146104ce57806335082933146104ff57806336b19cd71461052057806336d95f561461054f57806340650c9114610574578063436e1e2e14610599578063465a092d146105ca5780634a387bef146105ef578063521eb273146106105780635b88349d1461063f5780635ef7943414610654578063615ef639146106795780636e99d52f1461069e57806370a08231146106c357806374b433bd146106f4578063763f40111461071957806379ba50971461073d57806381aea6681461075257806384ef0778146107775780638da5cb5b1461079c57806394d95f8f146107cb57806395cc2e8b146107f057806395d89b41146108155780639ea407be146108a0578063a05fccef146108b8578063a9059cbb146108e4578063ad9df0551461091a578063b557478a1461093b578063b63e93dc1461096e578063c0c133a814610983578063cab3ad2c146109a8578063cbc8ae5f146109cd578063cbdd69b5146109f2578063cbf9fe5f14610a17578063cce4bd5214610a4a578063ce916d8514610a5f578063cef9db6d14610a90578063d1b6dd3014610ab5578063d4ee1d9014610ae8578063d912ebb214610b17578063dc39d06d14610b3c578063dd62ed3e14610b72578063deaa59df14610ba9578063e1c1451a14610bca578063e3fe974014610bef578063f0e7cf1314610c16578063f21632e114610c36578063f2fde38b14610c5b578063fcc1cc9b14610c7c575b5b6102c5610ccd565b5b005b34156102d357600080fd5b6102db61107f565b60405190815260200160405180910390f35b34156102f857600080fd5b6102db611086565b60405190815260200160405180910390f35b341561031d57600080fd5b6102db61108e565b60405190815260200160405180910390f35b341561034257600080fd5b6102db611093565b60405190815260200160405180910390f35b341561036757600080fd5b61036f611098565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103ac5780820151818401525b602001610393565b50505050905090810190601f1680156103d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103f257600080fd5b610409600160a060020a03600435166024356110cf565b604051901515815260200160405180910390f35b341561042857600080fd5b6102db61115f565b60405190815260200160405180910390f35b341561044d57600080fd5b610409611166565b604051901515815260200160405180910390f35b341561047457600080fd5b610409600160a060020a03600435811690602435166044356111a0565b604051901515815260200160405180910390f35b34156104b057600080fd5b6104b8611216565b60405160ff909116815260200160405180910390f35b34156104d957600080fd5b6102db600160a060020a036004351661121b565b60405190815260200160405180910390f35b341561050a57600080fd5b6102c5600160a060020a036004351661122d565b005b341561052b57600080fd5b6105336112ce565b604051600160a060020a03909116815260200160405180910390f35b341561055a57600080fd5b6102db6112dd565b60405190815260200160405180910390f35b341561057f57600080fd5b6102db6112e7565b60405190815260200160405180910390f35b34156105a457600080fd5b6102db600160a060020a03600435166112f3565b60405190815260200160405180910390f35b34156105d557600080fd5b6102db6113c5565b60405190815260200160405180910390f35b34156105fa57600080fd5b6102c5600160a060020a03600435166113d3565b005b341561061b57600080fd5b61053361145a565b604051600160a060020a03909116815260200160405180910390f35b341561064a57600080fd5b6102c5611469565b005b341561065f57600080fd5b6102db611475565b60405190815260200160405180910390f35b341561068457600080fd5b6102db61147d565b60405190815260200160405180910390f35b34156106a957600080fd5b6102db611483565b60405190815260200160405180910390f35b34156106ce57600080fd5b6102db600160a060020a036004351661148a565b60405190815260200160405180910390f35b34156106ff57600080fd5b6102db6114a9565b60405190815260200160405180910390f35b341561072457600080fd5b6102c5600160a060020a03600435166024356114b3565b005b341561074857600080fd5b6102c5611602565b005b341561075d57600080fd5b6102db61168e565b60405190815260200160405180910390f35b341561078257600080fd5b6102db611693565b60405190815260200160405180910390f35b34156107a757600080fd5b610533611699565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102db6116a8565b60405190815260200160405180910390f35b34156107fb57600080fd5b6102db6116b5565b60405190815260200160405180910390f35b341561082057600080fd5b61036f6116bd565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103ac5780820151818401525b602001610393565b50505050905090810190601f1680156103d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108ab57600080fd5b6102c56004356116f4565b005b34156108c357600080fd5b6102c56024600480358281019290820135918135918201910135611763565b005b34156108ef57600080fd5b610409600160a060020a036004351660243561183e565b604051901515815260200160405180910390f35b341561092557600080fd5b6102c5600160a060020a03600435166118b2565b005b341561094657600080fd5b610409600160a060020a03600435166118da565b604051901515815260200160405180910390f35b341561097957600080fd5b6102c56118ef565b005b341561098e57600080fd5b6102db61195e565b60405190815260200160405180910390f35b34156109b357600080fd5b6102db611966565b60405190815260200160405180910390f35b34156109d857600080fd5b6102db61196b565b60405190815260200160405180910390f35b34156109fd57600080fd5b6102db611976565b60405190815260200160405180910390f35b3415610a2257600080fd5b610409600160a060020a036004351661197c565b604051901515815260200160405180910390f35b3415610a5557600080fd5b6102c5611991565b005b3415610a6a57600080fd5b6102db600160a060020a0360043516611b36565b60405190815260200160405180910390f35b3415610a9b57600080fd5b6102db611b48565b60405190815260200160405180910390f35b3415610ac057600080fd5b610409600160a060020a0360043516611b53565b604051901515815260200160405180910390f35b3415610af357600080fd5b610533611b68565b604051600160a060020a03909116815260200160405180910390f35b3415610b2257600080fd5b6102db611b77565b60405190815260200160405180910390f35b3415610b4757600080fd5b610409600160a060020a0360043516602435611b7d565b604051901515815260200160405180910390f35b3415610b7d57600080fd5b6102db600160a060020a0360043581169060243516611c3c565b60405190815260200160405180910390f35b3415610bb457600080fd5b6102c5600160a060020a0360043516611c69565b005b3415610bd557600080fd5b6102db611d0a565b60405190815260200160405180910390f35b3415610bfa57600080fd5b610409611d10565b604051901515815260200160405180910390f35b3415610c2157600080fd5b6102c56004803560248101910135611d33565b005b3415610c4157600080fd5b6102db611d90565b60405190815260200160405180910390f35b3415610c6657600080fd5b6102c5600160a060020a0360043516611d96565b005b3415610c8757600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611e4a95505050505050565b005b600080600080610cdb61168e565b9350600092508291508190506706f05b59d3b20000341015610cfc57600080fd5b600160a060020a0333166000908152600c6020526040902054681043561a882930000090610d30903463ffffffff611f2d16565b1115610d3b57600080fd5b635a031bf084118015610d515750635a0c567084105b15610d5b57600192505b635a1ecb7084118015610d715750635a3a7af084105b15610d7b57600191505b8280610d845750815b1515610d8f57600080fd5b8215610dbf5760085469032d26d12e980b60000090610db4903463ffffffff611f2d16565b1115610dbf57600080fd5b5b600754670de0b6b3a764000090610ddd903463ffffffff611f4116565b811515610de657fe5b0490508215610e13576064610e0282608c63ffffffff611f4116565b811515610e0b57fe5b049050610e6f565b635a2805f0841015610e43576064610e0282607863ffffffff611f4116565b811515610e0b57fe5b049050610e6f565b635a314070841015610e6f576064610e6282606e63ffffffff611f4116565b811515610e6b57fe5b0490505b5b5b60095466012309ce54000090610e8d908363ffffffff611f2d16565b1115610e9857600080fd5b600160a060020a033316600090815260036020526040902054610ec1908263ffffffff611f2d16565b600160a060020a033316600090815260036020908152604080832093909355600d90522054610ef6908263ffffffff611f2d16565b600160a060020a0333166000908152600d6020526040902055600954610f22908263ffffffff611f2d16565b600955600254610f38908263ffffffff611f2d16565b600255600854610f4e903463ffffffff611f2d16565b600855600160a060020a0333166000908152600c6020526040902054610f7a903463ffffffff611f2d16565b600160a060020a0333166000818152600c602090815260408083209490945560109052828120805460ff1916600117905590916000805160206122d68339815191529084905190815260200160405180910390a3600160a060020a03331660008181526003602052604090819020547fdf61f51b99ff0164245d2ca4eb058f919dbe973d48c3891c93e50183b67f3e1e9184919034905180848152602001838152602001828152602001935050505060405180910390a2611039611d10565b1561107757600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561107757600080fd5b5b5b50505050565b6276a70081565b635a031bf081565b600a81565b602881565b60408051908101604052600d81527f696e64614861736820436f696e00000000000000000000000000000000000000602082015281565b600160a060020a033316600090815260036020526040812054829010156110f557600080fd5b600160a060020a03338116600081815260046020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6002545b90565b6000611170611d10565b151561117e57506000611163565b635a3d1df061118b61168e565b101561119957506000611163565b5060015b90565b60006111aa611166565b15156111b557600080fd5b600160a060020a03841660009081526010602052604090205460ff16156111db57600080fd5b600160a060020a03831660009081526010602052604090205460ff161561120157600080fd5b61120c848484611f6a565b90505b9392505050565b600681565b600c6020526000908152604090205481565b60005433600160a060020a0390811691161461124857600080fd5b600160a060020a038116151561125d57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290557f65ef617d87f7e47ab080058ac1d5ebf06817bbd817e49898ab9f9532405ecd9b9116604051600160a060020a03909116815260200160405180910390a15b5b50565b600654600160a060020a031681565b65246139ca800081565b6706f05b59d3b2000081565b6000806000635a3a7af061130561168e565b10806113165750611314611d10565b155b1561132457600092506113be565b600160a060020a0384166000908152600e602052604090205460ff161561134e57600092506113be565b600160a060020a0384166000908152600d6020526040902054151561137657600092506113be565b600160a060020a0384166000908152600d60205260409020546009549092506113ac8366012309ce54000063ffffffff611f4116565b8115156113b557fe5b04905081810392505b5050919050565b69032d26d12e980b60000081565b60065433600160a060020a03908116911614806113fe575060005433600160a060020a039081169116145b151561140957600080fd5b600160a060020a03811660008181526010602052604090819020805460ff191690557f064f67e76df103eb3e142dac6110a06fcfc7a01ef2da651312b88eb6f0dd3d28905160405180910390a25b50565b600554600160a060020a031681565b611472336120c6565b5b565b635a0c567081565b600b5481565b6202a30081565b600160a060020a0381166000908152600360205260409020545b919050565b6548c27395000081565b60005433600160a060020a039081169116146114ce57600080fd5b600a546114e8906548c2739500009063ffffffff6121ea16565b8111156114f457600080fd5b600160a060020a03821660009081526003602052604090205461151d908263ffffffff611f2d16565b600160a060020a038316600090815260036020526040902055600a54611549908263ffffffff611f2d16565b600a5560025461155f908263ffffffff611f2d16565b600255600160a060020a038216600081815260106020526040808220805460ff191660011790556000805160206122d68339815191529084905190815260200160405180910390a3600160a060020a03821660008181526003602052604090819020547f2e8ac5177a616f2aec08c3048f5021e4e9743ece034e8d83ba5caf76688bb475918491905191825260208201526040908101905180910390a25b5b5050565b60015433600160a060020a0390811691161461161d57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b425b90565b60025481565b600054600160a060020a031681565b681043561a882930000081565b635a1ecb7081565b60408051908101604052600381527f4944480000000000000000000000000000000000000000000000000000000000602082015281565b60005433600160a060020a0390811691161461170f57600080fd5b635a031bf061171c61168e565b1061172657600080fd5b60078190557ff7729fa834bbef70b6d3257c2317a562aa88b56c81b544814f93dc5963a2c0038160405190815260200160405180910390a15b5b50565b600061176d611166565b151561177857600080fd5b600160a060020a03331660009081526010602052604090205460ff161561179e57600080fd5b8382146117aa57600080fd5b5060005b8381101561183657601060008686848181106117c657fe5b60209081029290920135600160a060020a03168352508101919091526040016000205460ff16151561182d5761182b85858381811061180157fe5b90506020020135600160a060020a0316848484818110151561181f57fe5b90506020020135612201565b505b5b6001016117ae565b5b5050505050565b6000611848611166565b151561185357600080fd5b600160a060020a03331660009081526010602052604090205460ff161561187957600080fd5b600160a060020a03831660009081526010602052604090205460ff161561189f57600080fd5b6118a98383612201565b90505b92915050565b60065433600160a060020a039081169116146118cd57600080fd5b6112ca816120c6565b5b50565b600f6020526000908152604090205460ff1681565b60005433600160a060020a0390811691161461190a57600080fd5b635ab121f061191761168e565b1161192157600080fd5b600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561147257600080fd5b5b5b565b635a3a7af081565b601481565b66012309ce54000081565b60075481565b60106020526000908152604090205460ff1681565b600080635a3a7af06119a161168e565b1180156119b357506119b1611d10565b155b15156119be57600080fd5b600160a060020a0333166000908152600f602052604090205460ff16156119e457600080fd5b600160a060020a0333166000908152600c602052604081205411611a0757600080fd5b5050600160a060020a0333166000908152600d6020908152604080832054600c8352818420546003909352922054611a45908363ffffffff6121ea16565b600160a060020a033316600090815260036020526040902055600254611a71908363ffffffff6121ea16565b600255600160a060020a0333166000818152600f602052604090819020805460ff1916600117905582156108fc0290839051600060405180830381858888f193505050501515611ac057600080fd5b600033600160a060020a03166000805160206122d68339815191528460405190815260200160405180910390a333600160a060020a03167f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb6828460405191825260208201526040908101905180910390a25b5050565b600d6020526000908152604090205481565b66016bcc41e9000081565b600e6020526000908152604090205460ff1681565b600154600160a060020a031681565b60095481565b6000805433600160a060020a03908116911614611b9957600080fd5b60008054600160a060020a038086169263a9059cbb92909116908590604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611c1857600080fd5b6102c65a03f11515611c2957600080fd5b50505060405180519150505b5b92915050565b600160a060020a038083166000908152600460209081526040808320938516835292905220545b92915050565b60005433600160a060020a03908116911614611c8457600080fd5b600160a060020a0381161515611c9957600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290557f4edbfac5b40fe46ac1af1fd222b224b38cfeeb9e21bd4fc6344526c245f7549b9116604051600160a060020a03909116815260200160405180910390a15b5b50565b600a5481565b60095460009065246139ca800090101561119957506000611163565b5060015b90565b60065460009033600160a060020a03908116911614611d5157600080fd5b5060005b81811015611d8a57611d81838383818110611d6c57fe5b90506020020135600160a060020a03166120c6565b5b600101611d55565b5b505050565b60085481565b60005433600160a060020a03908116911614611db157600080fd5b600054600160a060020a0382811691161415611dcc57600080fd5b600160a060020a0381161515611de157600080fd5b600054600160a060020a0380831691167ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c060405160405180910390a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60065460009033600160a060020a0390811691161480611e78575060005433600160a060020a039081169116145b1515611e8357600080fd5b5060005b81518110156115fd57600060106000848481518110611ea257fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055818181518110611ee057fe5b90602001906020020151600160a060020a03167f064f67e76df103eb3e142dac6110a06fcfc7a01ef2da651312b88eb6f0dd3d2860405160405180910390a25b600101611e87565b5b5050565b8181018281101561115957fe5b5b92915050565b818102821580611f5b5750818382811515611f5857fe5b04145b151561115957fe5b5b92915050565b600160a060020a03831660009081526003602052604081205482901015611f9057600080fd5b600160a060020a038085166000908152600460209081526040808320339094168352929052205482901015611fc457600080fd5b600160a060020a038416600090815260036020526040902054611fed908363ffffffff6121ea16565b600160a060020a0380861660009081526003602090815260408083209490945560048152838220339093168252919091522054612030908363ffffffff6121ea16565b600160a060020a0380861660009081526004602090815260408083203385168452825280832094909455918616815260039091522054612076908363ffffffff611f2d16565b600160a060020a03808516600081815260036020526040908190209390935591908616906000805160206122d68339815191529085905190815260200160405180910390a35060015b9392505050565b60006120d1826112f3565b9050600081116120e057600080fd5b600160a060020a0382166000908152600e60209081526040808320805460ff19166001179055600390915290205461211e908263ffffffff611f2d16565b600160a060020a03831660009081526003602052604090205560025461214a908263ffffffff611f2d16565b600255600b54612160908263ffffffff611f2d16565b600b55600160a060020a03821660008181526003602052604090819020547fada993ad066837289fe186cd37227aa338d27519a8a1547472ecb9831486d272918491905191825260208201526040908101905180910390a281600160a060020a031660006000805160206122d68339815191528360405190815260200160405180910390a35b5050565b6000828211156121f657fe5b508082035b92915050565b600160a060020a0333166000908152600360205260408120548290101561222757600080fd5b600160a060020a033316600090815260036020526040902054612250908363ffffffff6121ea16565b600160a060020a033381166000908152600360205260408082209390935590851681522054612285908363ffffffff611f2d16565b600160a060020a0380851660008181526003602052604090819020939093559133909116906000805160206122d68339815191529085905190815260200160405180910390a35060015b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058200b92f4a92f6662883588a427cb57f970575daf04db1bcdfe0ab30e5e137ffa200029

Deployed Bytecode

0x606060405236156102bc5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663021ba8f881146102c8578063023bb74d146102ed578063024c6def1461031257806305502a621461033757806306fdde031461035c578063095ea7b3146103e757806318160ddd1461041d5780632121dc751461044257806323b872dd14610469578063313ce567146104a5578063347e26c0146104ce57806335082933146104ff57806336b19cd71461052057806336d95f561461054f57806340650c9114610574578063436e1e2e14610599578063465a092d146105ca5780634a387bef146105ef578063521eb273146106105780635b88349d1461063f5780635ef7943414610654578063615ef639146106795780636e99d52f1461069e57806370a08231146106c357806374b433bd146106f4578063763f40111461071957806379ba50971461073d57806381aea6681461075257806384ef0778146107775780638da5cb5b1461079c57806394d95f8f146107cb57806395cc2e8b146107f057806395d89b41146108155780639ea407be146108a0578063a05fccef146108b8578063a9059cbb146108e4578063ad9df0551461091a578063b557478a1461093b578063b63e93dc1461096e578063c0c133a814610983578063cab3ad2c146109a8578063cbc8ae5f146109cd578063cbdd69b5146109f2578063cbf9fe5f14610a17578063cce4bd5214610a4a578063ce916d8514610a5f578063cef9db6d14610a90578063d1b6dd3014610ab5578063d4ee1d9014610ae8578063d912ebb214610b17578063dc39d06d14610b3c578063dd62ed3e14610b72578063deaa59df14610ba9578063e1c1451a14610bca578063e3fe974014610bef578063f0e7cf1314610c16578063f21632e114610c36578063f2fde38b14610c5b578063fcc1cc9b14610c7c575b5b6102c5610ccd565b5b005b34156102d357600080fd5b6102db61107f565b60405190815260200160405180910390f35b34156102f857600080fd5b6102db611086565b60405190815260200160405180910390f35b341561031d57600080fd5b6102db61108e565b60405190815260200160405180910390f35b341561034257600080fd5b6102db611093565b60405190815260200160405180910390f35b341561036757600080fd5b61036f611098565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103ac5780820151818401525b602001610393565b50505050905090810190601f1680156103d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103f257600080fd5b610409600160a060020a03600435166024356110cf565b604051901515815260200160405180910390f35b341561042857600080fd5b6102db61115f565b60405190815260200160405180910390f35b341561044d57600080fd5b610409611166565b604051901515815260200160405180910390f35b341561047457600080fd5b610409600160a060020a03600435811690602435166044356111a0565b604051901515815260200160405180910390f35b34156104b057600080fd5b6104b8611216565b60405160ff909116815260200160405180910390f35b34156104d957600080fd5b6102db600160a060020a036004351661121b565b60405190815260200160405180910390f35b341561050a57600080fd5b6102c5600160a060020a036004351661122d565b005b341561052b57600080fd5b6105336112ce565b604051600160a060020a03909116815260200160405180910390f35b341561055a57600080fd5b6102db6112dd565b60405190815260200160405180910390f35b341561057f57600080fd5b6102db6112e7565b60405190815260200160405180910390f35b34156105a457600080fd5b6102db600160a060020a03600435166112f3565b60405190815260200160405180910390f35b34156105d557600080fd5b6102db6113c5565b60405190815260200160405180910390f35b34156105fa57600080fd5b6102c5600160a060020a03600435166113d3565b005b341561061b57600080fd5b61053361145a565b604051600160a060020a03909116815260200160405180910390f35b341561064a57600080fd5b6102c5611469565b005b341561065f57600080fd5b6102db611475565b60405190815260200160405180910390f35b341561068457600080fd5b6102db61147d565b60405190815260200160405180910390f35b34156106a957600080fd5b6102db611483565b60405190815260200160405180910390f35b34156106ce57600080fd5b6102db600160a060020a036004351661148a565b60405190815260200160405180910390f35b34156106ff57600080fd5b6102db6114a9565b60405190815260200160405180910390f35b341561072457600080fd5b6102c5600160a060020a03600435166024356114b3565b005b341561074857600080fd5b6102c5611602565b005b341561075d57600080fd5b6102db61168e565b60405190815260200160405180910390f35b341561078257600080fd5b6102db611693565b60405190815260200160405180910390f35b34156107a757600080fd5b610533611699565b604051600160a060020a03909116815260200160405180910390f35b34156107d657600080fd5b6102db6116a8565b60405190815260200160405180910390f35b34156107fb57600080fd5b6102db6116b5565b60405190815260200160405180910390f35b341561082057600080fd5b61036f6116bd565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156103ac5780820151818401525b602001610393565b50505050905090810190601f1680156103d95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108ab57600080fd5b6102c56004356116f4565b005b34156108c357600080fd5b6102c56024600480358281019290820135918135918201910135611763565b005b34156108ef57600080fd5b610409600160a060020a036004351660243561183e565b604051901515815260200160405180910390f35b341561092557600080fd5b6102c5600160a060020a03600435166118b2565b005b341561094657600080fd5b610409600160a060020a03600435166118da565b604051901515815260200160405180910390f35b341561097957600080fd5b6102c56118ef565b005b341561098e57600080fd5b6102db61195e565b60405190815260200160405180910390f35b34156109b357600080fd5b6102db611966565b60405190815260200160405180910390f35b34156109d857600080fd5b6102db61196b565b60405190815260200160405180910390f35b34156109fd57600080fd5b6102db611976565b60405190815260200160405180910390f35b3415610a2257600080fd5b610409600160a060020a036004351661197c565b604051901515815260200160405180910390f35b3415610a5557600080fd5b6102c5611991565b005b3415610a6a57600080fd5b6102db600160a060020a0360043516611b36565b60405190815260200160405180910390f35b3415610a9b57600080fd5b6102db611b48565b60405190815260200160405180910390f35b3415610ac057600080fd5b610409600160a060020a0360043516611b53565b604051901515815260200160405180910390f35b3415610af357600080fd5b610533611b68565b604051600160a060020a03909116815260200160405180910390f35b3415610b2257600080fd5b6102db611b77565b60405190815260200160405180910390f35b3415610b4757600080fd5b610409600160a060020a0360043516602435611b7d565b604051901515815260200160405180910390f35b3415610b7d57600080fd5b6102db600160a060020a0360043581169060243516611c3c565b60405190815260200160405180910390f35b3415610bb457600080fd5b6102c5600160a060020a0360043516611c69565b005b3415610bd557600080fd5b6102db611d0a565b60405190815260200160405180910390f35b3415610bfa57600080fd5b610409611d10565b604051901515815260200160405180910390f35b3415610c2157600080fd5b6102c56004803560248101910135611d33565b005b3415610c4157600080fd5b6102db611d90565b60405190815260200160405180910390f35b3415610c6657600080fd5b6102c5600160a060020a0360043516611d96565b005b3415610c8757600080fd5b6102c56004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611e4a95505050505050565b005b600080600080610cdb61168e565b9350600092508291508190506706f05b59d3b20000341015610cfc57600080fd5b600160a060020a0333166000908152600c6020526040902054681043561a882930000090610d30903463ffffffff611f2d16565b1115610d3b57600080fd5b635a031bf084118015610d515750635a0c567084105b15610d5b57600192505b635a1ecb7084118015610d715750635a3a7af084105b15610d7b57600191505b8280610d845750815b1515610d8f57600080fd5b8215610dbf5760085469032d26d12e980b60000090610db4903463ffffffff611f2d16565b1115610dbf57600080fd5b5b600754670de0b6b3a764000090610ddd903463ffffffff611f4116565b811515610de657fe5b0490508215610e13576064610e0282608c63ffffffff611f4116565b811515610e0b57fe5b049050610e6f565b635a2805f0841015610e43576064610e0282607863ffffffff611f4116565b811515610e0b57fe5b049050610e6f565b635a314070841015610e6f576064610e6282606e63ffffffff611f4116565b811515610e6b57fe5b0490505b5b5b60095466012309ce54000090610e8d908363ffffffff611f2d16565b1115610e9857600080fd5b600160a060020a033316600090815260036020526040902054610ec1908263ffffffff611f2d16565b600160a060020a033316600090815260036020908152604080832093909355600d90522054610ef6908263ffffffff611f2d16565b600160a060020a0333166000908152600d6020526040902055600954610f22908263ffffffff611f2d16565b600955600254610f38908263ffffffff611f2d16565b600255600854610f4e903463ffffffff611f2d16565b600855600160a060020a0333166000908152600c6020526040902054610f7a903463ffffffff611f2d16565b600160a060020a0333166000818152600c602090815260408083209490945560109052828120805460ff1916600117905590916000805160206122d68339815191529084905190815260200160405180910390a3600160a060020a03331660008181526003602052604090819020547fdf61f51b99ff0164245d2ca4eb058f919dbe973d48c3891c93e50183b67f3e1e9184919034905180848152602001838152602001828152602001935050505060405180910390a2611039611d10565b1561107757600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561107757600080fd5b5b5b50505050565b6276a70081565b635a031bf081565b600a81565b602881565b60408051908101604052600d81527f696e64614861736820436f696e00000000000000000000000000000000000000602082015281565b600160a060020a033316600090815260036020526040812054829010156110f557600080fd5b600160a060020a03338116600081815260046020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6002545b90565b6000611170611d10565b151561117e57506000611163565b635a3d1df061118b61168e565b101561119957506000611163565b5060015b90565b60006111aa611166565b15156111b557600080fd5b600160a060020a03841660009081526010602052604090205460ff16156111db57600080fd5b600160a060020a03831660009081526010602052604090205460ff161561120157600080fd5b61120c848484611f6a565b90505b9392505050565b600681565b600c6020526000908152604090205481565b60005433600160a060020a0390811691161461124857600080fd5b600160a060020a038116151561125d57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290557f65ef617d87f7e47ab080058ac1d5ebf06817bbd817e49898ab9f9532405ecd9b9116604051600160a060020a03909116815260200160405180910390a15b5b50565b600654600160a060020a031681565b65246139ca800081565b6706f05b59d3b2000081565b6000806000635a3a7af061130561168e565b10806113165750611314611d10565b155b1561132457600092506113be565b600160a060020a0384166000908152600e602052604090205460ff161561134e57600092506113be565b600160a060020a0384166000908152600d6020526040902054151561137657600092506113be565b600160a060020a0384166000908152600d60205260409020546009549092506113ac8366012309ce54000063ffffffff611f4116565b8115156113b557fe5b04905081810392505b5050919050565b69032d26d12e980b60000081565b60065433600160a060020a03908116911614806113fe575060005433600160a060020a039081169116145b151561140957600080fd5b600160a060020a03811660008181526010602052604090819020805460ff191690557f064f67e76df103eb3e142dac6110a06fcfc7a01ef2da651312b88eb6f0dd3d28905160405180910390a25b50565b600554600160a060020a031681565b611472336120c6565b5b565b635a0c567081565b600b5481565b6202a30081565b600160a060020a0381166000908152600360205260409020545b919050565b6548c27395000081565b60005433600160a060020a039081169116146114ce57600080fd5b600a546114e8906548c2739500009063ffffffff6121ea16565b8111156114f457600080fd5b600160a060020a03821660009081526003602052604090205461151d908263ffffffff611f2d16565b600160a060020a038316600090815260036020526040902055600a54611549908263ffffffff611f2d16565b600a5560025461155f908263ffffffff611f2d16565b600255600160a060020a038216600081815260106020526040808220805460ff191660011790556000805160206122d68339815191529084905190815260200160405180910390a3600160a060020a03821660008181526003602052604090819020547f2e8ac5177a616f2aec08c3048f5021e4e9743ece034e8d83ba5caf76688bb475918491905191825260208201526040908101905180910390a25b5b5050565b60015433600160a060020a0390811691161461161d57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039092169190911790555b565b425b90565b60025481565b600054600160a060020a031681565b681043561a882930000081565b635a1ecb7081565b60408051908101604052600381527f4944480000000000000000000000000000000000000000000000000000000000602082015281565b60005433600160a060020a0390811691161461170f57600080fd5b635a031bf061171c61168e565b1061172657600080fd5b60078190557ff7729fa834bbef70b6d3257c2317a562aa88b56c81b544814f93dc5963a2c0038160405190815260200160405180910390a15b5b50565b600061176d611166565b151561177857600080fd5b600160a060020a03331660009081526010602052604090205460ff161561179e57600080fd5b8382146117aa57600080fd5b5060005b8381101561183657601060008686848181106117c657fe5b60209081029290920135600160a060020a03168352508101919091526040016000205460ff16151561182d5761182b85858381811061180157fe5b90506020020135600160a060020a0316848484818110151561181f57fe5b90506020020135612201565b505b5b6001016117ae565b5b5050505050565b6000611848611166565b151561185357600080fd5b600160a060020a03331660009081526010602052604090205460ff161561187957600080fd5b600160a060020a03831660009081526010602052604090205460ff161561189f57600080fd5b6118a98383612201565b90505b92915050565b60065433600160a060020a039081169116146118cd57600080fd5b6112ca816120c6565b5b50565b600f6020526000908152604090205460ff1681565b60005433600160a060020a0390811691161461190a57600080fd5b635ab121f061191761168e565b1161192157600080fd5b600554600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561147257600080fd5b5b5b565b635a3a7af081565b601481565b66012309ce54000081565b60075481565b60106020526000908152604090205460ff1681565b600080635a3a7af06119a161168e565b1180156119b357506119b1611d10565b155b15156119be57600080fd5b600160a060020a0333166000908152600f602052604090205460ff16156119e457600080fd5b600160a060020a0333166000908152600c602052604081205411611a0757600080fd5b5050600160a060020a0333166000908152600d6020908152604080832054600c8352818420546003909352922054611a45908363ffffffff6121ea16565b600160a060020a033316600090815260036020526040902055600254611a71908363ffffffff6121ea16565b600255600160a060020a0333166000818152600f602052604090819020805460ff1916600117905582156108fc0290839051600060405180830381858888f193505050501515611ac057600080fd5b600033600160a060020a03166000805160206122d68339815191528460405190815260200160405180910390a333600160a060020a03167f73f04af9dcc582a923ec15d3eea990fe34adabfff2879e28d44572e01a54abb6828460405191825260208201526040908101905180910390a25b5050565b600d6020526000908152604090205481565b66016bcc41e9000081565b600e6020526000908152604090205460ff1681565b600154600160a060020a031681565b60095481565b6000805433600160a060020a03908116911614611b9957600080fd5b60008054600160a060020a038086169263a9059cbb92909116908590604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611c1857600080fd5b6102c65a03f11515611c2957600080fd5b50505060405180519150505b5b92915050565b600160a060020a038083166000908152600460209081526040808320938516835292905220545b92915050565b60005433600160a060020a03908116911614611c8457600080fd5b600160a060020a0381161515611c9957600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290557f4edbfac5b40fe46ac1af1fd222b224b38cfeeb9e21bd4fc6344526c245f7549b9116604051600160a060020a03909116815260200160405180910390a15b5b50565b600a5481565b60095460009065246139ca800090101561119957506000611163565b5060015b90565b60065460009033600160a060020a03908116911614611d5157600080fd5b5060005b81811015611d8a57611d81838383818110611d6c57fe5b90506020020135600160a060020a03166120c6565b5b600101611d55565b5b505050565b60085481565b60005433600160a060020a03908116911614611db157600080fd5b600054600160a060020a0382811691161415611dcc57600080fd5b600160a060020a0381161515611de157600080fd5b600054600160a060020a0380831691167ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c060405160405180910390a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b50565b60065460009033600160a060020a0390811691161480611e78575060005433600160a060020a039081169116145b1515611e8357600080fd5b5060005b81518110156115fd57600060106000848481518110611ea257fe5b90602001906020020151600160a060020a031681526020810191909152604001600020805460ff1916911515919091179055818181518110611ee057fe5b90602001906020020151600160a060020a03167f064f67e76df103eb3e142dac6110a06fcfc7a01ef2da651312b88eb6f0dd3d2860405160405180910390a25b600101611e87565b5b5050565b8181018281101561115957fe5b5b92915050565b818102821580611f5b5750818382811515611f5857fe5b04145b151561115957fe5b5b92915050565b600160a060020a03831660009081526003602052604081205482901015611f9057600080fd5b600160a060020a038085166000908152600460209081526040808320339094168352929052205482901015611fc457600080fd5b600160a060020a038416600090815260036020526040902054611fed908363ffffffff6121ea16565b600160a060020a0380861660009081526003602090815260408083209490945560048152838220339093168252919091522054612030908363ffffffff6121ea16565b600160a060020a0380861660009081526004602090815260408083203385168452825280832094909455918616815260039091522054612076908363ffffffff611f2d16565b600160a060020a03808516600081815260036020526040908190209390935591908616906000805160206122d68339815191529085905190815260200160405180910390a35060015b9392505050565b60006120d1826112f3565b9050600081116120e057600080fd5b600160a060020a0382166000908152600e60209081526040808320805460ff19166001179055600390915290205461211e908263ffffffff611f2d16565b600160a060020a03831660009081526003602052604090205560025461214a908263ffffffff611f2d16565b600255600b54612160908263ffffffff611f2d16565b600b55600160a060020a03821660008181526003602052604090819020547fada993ad066837289fe186cd37227aa338d27519a8a1547472ecb9831486d272918491905191825260208201526040908101905180910390a281600160a060020a031660006000805160206122d68339815191528360405190815260200160405180910390a35b5050565b6000828211156121f657fe5b508082035b92915050565b600160a060020a0333166000908152600360205260408120548290101561222757600080fd5b600160a060020a033316600090815260036020526040902054612250908363ffffffff6121ea16565b600160a060020a033381166000908152600360205260408082209390935590851681522054612285908363ffffffff611f2d16565b600160a060020a0380851660008181526003602052604090819020939093559133909116906000805160206122d68339815191529085905190815260200160405180910390a35060015b929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a723058200b92f4a92f6662883588a427cb57f970575daf04db1bcdfe0ab30e5e137ffa200029

Swarm Source

bzzr://0b92f4a92f6662883588a427cb57f970575daf04db1bcdfe0ab30e5e137ffa20

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.