ETH Price: $2,671.35 (-4.81%)

Contract

0x52FFb515eCEB5927DFEc948DCA10e5233db8f27f
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Tokens59746882018-07-16 12:28:482415 days ago1531744128IN
0x52FFb515...33db8f27f
0 ETH0.000130615
Transfer56708642018-05-24 21:52:082467 days ago1527198728IN
0x52FFb515...33db8f27f
4.0020894 ETH0.000598229
Update Time56707912018-05-24 21:34:112467 days ago1527197651IN
0x52FFb515...33db8f27f
0 ETH0.0003560713
Transfer54735842018-04-20 10:10:092502 days ago1524219009IN
0x52FFb515...33db8f27f
1,500 ETH0.0020587640
Transfer54735752018-04-20 10:08:072502 days ago1524218887IN
0x52FFb515...33db8f27f
1,000 ETH0.0020587640
Transfer54735472018-04-20 10:00:192502 days ago1524218419IN
0x52FFb515...33db8f27f
10 ETH0.0020587640
Transfer54649562018-04-18 22:21:502503 days ago1524090110IN
0x52FFb515...33db8f27f
10 ETH0.0026587640
Transfer54649472018-04-18 22:19:222503 days ago1524089962IN
0x52FFb515...33db8f27f
10 ETH0.0008440
Update Value54565592018-04-17 11:33:232505 days ago1523964803IN
0x52FFb515...33db8f27f
0 ETH0.000057732
Update Time53857402018-04-05 15:23:092517 days ago1522941789IN
0x52FFb515...33db8f27f
0 ETH0.000054782
Update Value51309292018-02-21 15:28:472560 days ago1519226927IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value51251542018-02-20 15:29:192561 days ago1519140559IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value51193122018-02-19 15:27:542562 days ago1519054074IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value51133712018-02-18 15:28:442563 days ago1518967724IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value51073672018-02-17 15:28:332564 days ago1518881313IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value51014152018-02-16 15:28:172565 days ago1518794897IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value50953712018-02-15 15:28:052566 days ago1518708485IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value50894592018-02-14 15:27:592567 days ago1518622079IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value50835582018-02-13 15:27:432568 days ago1518535663IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Transfer50776962018-02-12 15:50:202569 days ago1518450620IN
0x52FFb515...33db8f27f
0.5 ETH0.0004520621
Update Value50776082018-02-12 15:28:312569 days ago1518449311IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value50716552018-02-11 15:27:592570 days ago1518362879IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Update Value50656422018-02-10 15:27:442571 days ago1518276464IN
0x52FFb515...33db8f27f
0 ETH0.000685724
Transfer*50647432018-02-10 11:52:282571 days ago1518263548IN
0x52FFb515...33db8f27f
0.5 ETH0.000021661
Transfer50645872018-02-10 11:15:042571 days ago1518261304IN
0x52FFb515...33db8f27f
0.5 ETH0.000193749
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
56708642018-05-24 21:52:082467 days ago1527198728
0x52FFb515...33db8f27f
4.0020894 ETH
54735842018-04-20 10:10:092502 days ago1524219009
0x52FFb515...33db8f27f
1,500 ETH
54735752018-04-20 10:08:072502 days ago1524218887
0x52FFb515...33db8f27f
1,000 ETH
54735472018-04-20 10:00:192502 days ago1524218419
0x52FFb515...33db8f27f
10 ETH
54649562018-04-18 22:21:502503 days ago1524090110
0x52FFb515...33db8f27f
10 ETH
50613252018-02-09 21:58:152571 days ago1518213495
0x52FFb515...33db8f27f
0.25 ETH
50612372018-02-09 21:40:522571 days ago1518212452
0x52FFb515...33db8f27f
2 ETH
50611162018-02-09 21:11:232571 days ago1518210683
0x52FFb515...33db8f27f
7 ETH
50611112018-02-09 21:09:242571 days ago1518210564
0x52FFb515...33db8f27f
7 ETH
50611072018-02-09 21:08:132571 days ago1518210493
0x52FFb515...33db8f27f
48.89164139 ETH
50610182018-02-09 20:43:152571 days ago1518208995
0x52FFb515...33db8f27f
1 ETH
50605872018-02-09 18:56:182571 days ago1518202578
0x52FFb515...33db8f27f
47 ETH
50605822018-02-09 18:54:032571 days ago1518202443
0x52FFb515...33db8f27f
4 ETH
50605812018-02-09 18:53:482571 days ago1518202428
0x52FFb515...33db8f27f
2 ETH
50605792018-02-09 18:52:462571 days ago1518202366
0x52FFb515...33db8f27f
4 ETH
50605632018-02-09 18:47:302571 days ago1518202050
0x52FFb515...33db8f27f
8.4 ETH
50605552018-02-09 18:44:542571 days ago1518201894
0x52FFb515...33db8f27f
10 ETH
50605482018-02-09 18:43:242571 days ago1518201804
0x52FFb515...33db8f27f
8.4 ETH
50605422018-02-09 18:42:042571 days ago1518201724
0x52FFb515...33db8f27f
8.4 ETH
50605362018-02-09 18:41:162571 days ago1518201676
0x52FFb515...33db8f27f
4 ETH
50605342018-02-09 18:40:272571 days ago1518201627
0x52FFb515...33db8f27f
15 ETH
50605232018-02-09 18:38:322571 days ago1518201512
0x52FFb515...33db8f27f
10.5 ETH
50605212018-02-09 18:38:192571 days ago1518201499
0x52FFb515...33db8f27f
10 ETH
50605122018-02-09 18:35:402571 days ago1518201340
0x52FFb515...33db8f27f
0.192 ETH
50605072018-02-09 18:34:242571 days ago1518201264
0x52FFb515...33db8f27f
5 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Presale

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-12-19
*/

pragma solidity ^0.4.19;

/**
 * HauroPay Presale. More info www.hauropay.com. 
 * Designed by www.coincrowd.it.
 */

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

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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


/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;
  
  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() internal {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) onlyOwner public {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}


/**
 * @title Authorizable
 * @dev The Authorizable contract has authorized addresses, and provides basic authorization control
 * functions, this simplifies the implementation of "multiple user permissions".
 */
contract Authorizable is Ownable {
  mapping(address => bool) public authorized;
  
  event AuthorizationSet(address indexed addressAuthorized, bool indexed authorization);

  /**
   * @dev The Authorizable constructor sets the first `authorized` of the contract to the sender
   * account.
   */ 
  function Authorizable() public {
	authorized[msg.sender] = true;
  }

  /**
   * @dev Throws if called by any account other than the authorized.
   */
  modifier onlyAuthorized() {
    require(authorized[msg.sender]);
    _;
  }

 /**
   * @dev Allows the current owner to set an authorization.
   * @param addressAuthorized The address to change authorization.
   */
  function setAuthorized(address addressAuthorized, bool authorization) onlyOwner public {
    AuthorizationSet(addressAuthorized, authorization);
    authorized[addressAuthorized] = authorization;
  }
  
}


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

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

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

  mapping(address => uint256) balances;

  /**
  * @dev transfer token from an address to another specified address 
  * @param _sender The address to transfer from.
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transferFunction(address _sender, address _to, uint256 _value) internal returns (bool) {
    require(_to != address(0));
    require(_to != address(this));
    require(_value <= balances[_sender]);

    // SafeMath.sub will throw if there is not enough balance.
    balances[_sender] = balances[_sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(_sender, _to, _value);
    return true;
  }
  
  /**
  * @dev transfer token for a specified address (BasicToken transfer method)
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
	return transferFunction(msg.sender, _to, _value);
  }
  
  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) public constant returns (uint256 balance) {
    return balances[_owner];
  }
}

contract ERC223TokenCompatible is BasicToken {
  using SafeMath for uint256;
  
  event Transfer(address indexed from, address indexed to, uint256 value, bytes indexed data);

  // Function that is called when a user or another contract wants to transfer funds .
	function transfer(address _to, uint256 _value, bytes _data, string _custom_fallback) public returns (bool success) {
		require(_to != address(0));
        require(_to != address(this));
		require(_value <= balances[msg.sender]);
		// SafeMath.sub will throw if there is not enough balance.
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);
		if( isContract(_to) ) {
			_to.call.value(0)(bytes4(keccak256(_custom_fallback)), msg.sender, _value, _data);
		} 
		Transfer(msg.sender, _to, _value, _data);
		return true;
	}

	// Function that is called when a user or another contract wants to transfer funds .
	function transfer(address _to, uint256 _value, bytes _data) public returns (bool success) {
		return transfer( _to, _value, _data, "tokenFallback(address,uint256,bytes)");
	}

	//assemble the given address bytecode. If bytecode exists then the _addr is a contract.
	function isContract(address _addr) private view returns (bool is_contract) {
		uint256 length;
		assembly {
            //retrieve the size of the code on target address, this needs assembly
            length := extcodesize(_addr)
		}
		return (length>0);
    }
}


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

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


  /**
   * @dev Transfer tokens from one address to another
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint256 the amount of tokens to be transferred
   */
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_to != address(this));
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
    Transfer(_from, _to, _value);
    return true;
  }

  /**
   * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
   *
   * Beware that changing an allowance with this method brings the risk that someone may use both the old
   * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
   * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @param _spender The address which will spend the funds.
   * @param _value The amount of tokens to be spent.
   */
  function approve(address _spender, uint256 _value) public returns (bool) {
    allowed[msg.sender][_spender] = _value;
    Approval(msg.sender, _spender, _value);
    return true;
  }

  /**
   * @dev Function to check the amount of tokens that an owner allowed to a spender.
   * @param _owner address The address which owns the funds.
   * @param _spender address The address which will spend the funds.
   * @return A uint256 specifying the amount of tokens still available for the spender.
   */
  function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {
    return allowed[_owner][_spender];
  }

  /**
   * approve should be called when allowed[_spender] == 0. To increment
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   */
  function increaseApproval (address _spender, uint _addedValue) public returns (bool success) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  function decreaseApproval (address _spender, uint _subtractedValue) public returns (bool success) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}


/**
 * @title Startable
 * @dev Base contract which allows owner to implement an start mechanism without ever being stopped more.
 */
contract Startable is Ownable, Authorizable {
  event Start();

  bool public started = false;

  /**
   * @dev Modifier to make a function callable only when the contract is started.
   */
  modifier whenStarted() {
	require( started || authorized[msg.sender] );
    _;
  }

  /**
   * @dev called by the owner to start, go to normal state
   */
  function start() onlyOwner public {
    started = true;
    Start();
  }
}

/**
 * @title Startable token
 *
 * @dev StandardToken modified with startable transfers.
 **/

contract StartToken is Startable, ERC223TokenCompatible, StandardToken {

  function transfer(address _to, uint256 _value) public whenStarted returns (bool) {
    return super.transfer(_to, _value);
  }
  function transfer(address _to, uint256 _value, bytes _data) public whenStarted returns (bool) {
    return super.transfer(_to, _value, _data);
  }
  function transfer(address _to, uint256 _value, bytes _data, string _custom_fallback) public whenStarted returns (bool) {
    return super.transfer(_to, _value, _data, _custom_fallback);
  }

  function transferFrom(address _from, address _to, uint256 _value) public whenStarted returns (bool) {
    return super.transferFrom(_from, _to, _value);
  }

  function approve(address _spender, uint256 _value) public whenStarted returns (bool) {
    return super.approve(_spender, _value);
  }

  function increaseApproval(address _spender, uint _addedValue) public whenStarted returns (bool success) {
    return super.increaseApproval(_spender, _addedValue);
  }

  function decreaseApproval(address _spender, uint _subtractedValue) public whenStarted returns (bool success) {
    return super.decreaseApproval(_spender, _subtractedValue);
  }
}

contract HumanStandardToken is StandardToken, StartToken {
    /* Approves and then calls the receiving contract */
    function approveAndCall(address _spender, uint256 _value, bytes _extraData) public returns (bool success) {
        approve(_spender, _value);
        require(_spender.call(bytes4(keccak256("receiveApproval(address,uint256,bytes)")), msg.sender, _value, _extraData));
        return true;
    }
}

contract BurnToken is StandardToken {

    event Burn(address indexed burner, uint256 value);

    /**
     * @dev Function to burn tokens.
     * @param _burner The address of token holder.
     * @param _value The amount of token to be burned.
     */
    function burnFunction(address _burner, uint256 _value) internal returns (bool) {
        require(_value > 0);
		require(_value <= balances[_burner]);
        // no need to require value <= totalSupply, since that would imply the
        // sender's balance is greater than the totalSupply, which *should* be an assertion failure

        balances[_burner] = balances[_burner].sub(_value);
        totalSupply = totalSupply.sub(_value);
        Burn(_burner, _value);
		return true;
    }
    
    /**
     * @dev Burns a specific amount of tokens.
     * @param _value The amount of token to be burned.
     */
	function burn(uint256 _value) public returns(bool) {
        return burnFunction(msg.sender, _value);
    }
	
	/**
	* @dev Burns tokens from one address
	* @param _from address The address which you want to burn tokens from
	* @param _value uint256 the amount of tokens to be burned
	*/
	function burnFrom(address _from, uint256 _value) public returns (bool) {
		require(_value <= allowed[_from][msg.sender]); // check if it has the budget allowed
		burnFunction(_from, _value);
		allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
		return true;
	}
}

contract OriginToken is Authorizable, BasicToken, BurnToken {
    
    /**
     * @dev transfer token from tx.orgin to a specified address (onlyAuthorized contract)
     */ 
    function originTransfer(address _to, uint256 _value) onlyAuthorized public returns (bool) {
	    return transferFunction(tx.origin, _to, _value);
    }
    
    /**
     * @dev Burns a specific amount of tokens from tx.orgin. (onlyAuthorized contract)
     * @param _value The amount of token to be burned.
     */	
	function originBurn(uint256 _value) onlyAuthorized public returns(bool) {
        return burnFunction(tx.origin, _value);
    }
}

contract Token is ERC223TokenCompatible, StandardToken, StartToken, HumanStandardToken, BurnToken, OriginToken {
	uint256 public totalSupply;
	uint256 public initialSupply;
	uint8 public decimals;
    string public name;
    string public symbol;

    function Token(uint256 _totalSupply, uint8 _decimals, string _name, string _symbol) public {
        decimals = _decimals;
        totalSupply = _totalSupply * 10 ** uint(decimals);  
        initialSupply = totalSupply;
		name = _name;
		symbol = _symbol;
        balances[msg.sender] = totalSupply;
        Transfer(0, msg.sender, totalSupply);
    }
}

contract Presale is Ownable {
    using SafeMath for uint256;
    Token public tokenContract;
    
	uint8 public decimals;
    uint256 public tokenValue;  // 1 Token in wei
    uint256 public centToken; // euro cents value of 1 token 

    uint256 public endTime;  // seconds from 1970-01-01T00:00:00Z
    uint256 public startTime;  // seconds from 1970-01-01T00:00:00Z

    function Presale() public {
        //Configuration
        centToken = 25; // Euro cents value of 1 token 
        
        tokenValue = 402693728269933; // centToken in wei of ether 04/12/2017
        startTime = 1513625400; // 18/12/2017 20:30 UTC+1
        endTime = 1516476600; // 20/01/2018 20:30 UTC+1
		
		uint256 totalSupply = 12000000; // 12.000.000 * 0.25€ = 3.000.000€ CAPPED
		decimals = 18;
		string memory name = "MethaVoucher";
		string memory symbol = "MTV";
		
		//End Configuration
		
        tokenContract = new Token(totalSupply, decimals, name, symbol);
		//tokenContract.setAuthorized(this, true); // Authorizable constructor set msg.sender to true
		tokenContract.transferOwnership(msg.sender);
    }

    address public updater;  // account in charge of updating the token value
    event UpdateValue(uint256 newValue);

    function updateValue(uint256 newValue) public {
        require(msg.sender == updater || msg.sender == owner);
        tokenValue = newValue;
        UpdateValue(newValue);
    }

    function updateUpdater(address newUpdater) public onlyOwner {
        updater = newUpdater;
    }

    function updateTime(uint256 _newStart, uint256 _newEnd) public onlyOwner {
        if ( _newStart != 0 ) startTime = _newStart;
        if ( _newEnd != 0 ) endTime = _newEnd;
    }
    
    event Buy(address buyer, uint256 value);

    function buy(address _buyer) public payable returns(uint256) {
        require(now > startTime); // check if started
        require(now < endTime); // check if ended
        require(msg.value > 0);
		
		uint256 remainingTokens = tokenContract.balanceOf(this);
        require( remainingTokens > 0 ); // Check if there are any remaining tokens 
        
        uint256 oneToken = 10 ** uint256(decimals);
        uint256 tokenAmount = msg.value.mul(oneToken).div(tokenValue);
        
        if ( remainingTokens < tokenAmount ) {
            uint256 refund = (tokenAmount - remainingTokens).mul(tokenValue).div(oneToken);
            tokenAmount = remainingTokens;
            owner.transfer(msg.value-refund);
			remainingTokens = 0; // set remaining token to 0
             _buyer.transfer(refund);
        } else {
			remainingTokens = remainingTokens.sub(tokenAmount); // update remaining token without bonus
            owner.transfer(msg.value);
        }
        
        tokenContract.transfer(_buyer, tokenAmount);
        Buy(_buyer, tokenAmount);
		
        return tokenAmount; 
    }

    function withdraw(address to, uint256 value) public onlyOwner {
        to.transfer(value);
    }
    
    function updateTokenContract(address _tokenContract) public onlyOwner {
        tokenContract = Token(_tokenContract);
    }

    function withdrawTokens(address to, uint256 value) public onlyOwner returns (bool) {
        return tokenContract.transfer(to, value);
    }

    function () public payable {
        buy(msg.sender);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"withdrawTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newStart","type":"uint256"},{"name":"_newEnd","type":"uint256"}],"name":"updateTime","outputs":[],"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":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newValue","type":"uint256"}],"name":"updateValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newUpdater","type":"address"}],"name":"updateUpdater","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"centToken","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":"_tokenContract","type":"address"}],"name":"updateTokenContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"updater","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_buyer","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"withdraw","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":"newValue","type":"uint256"}],"name":"UpdateValue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

6060604052341561000f57600080fd5b60006100196102b6565b6100216102b6565b60008054600160a060020a03191633600160a060020a0316179055601960035566016e3f70a0766d600255635a381738600555635a6398b86004556001805460a060020a60ff0219167412000000000000000000000000000000000000000017905562b71b0092506040805190810160405280600c81526020017f4d65746861566f75636865720000000000000000000000000000000000000000815250915060408051908101604052600381527f4d545600000000000000000000000000000000000000000000000000000000006020820152600154909150839074010000000000000000000000000000000000000000900460ff1683836101226102c8565b84815260ff84166020820152608060408201818152906060830190830185818151815260200191508051906020019080838360005b8381101561016f578082015183820152602001610157565b50505050905090810190601f16801561019c5780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156101d25780820151838201526020016101ba565b50505050905090810190601f1680156101ff5780820380516001836020036101000a031916815260200191505b509650505050505050604051809103906000f080151561021e57600080fd5b60018054600160a060020a031916600160a060020a0392831617908190551663f2fde38b336040517c010000000000000000000000000000000000000000000000000000000063ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561029a57600080fd5b6102c65a03f115156102ab57600080fd5b5050505050506102d8565b60206040519081016040526000815290565b6040516117f880610bdb83390190565b6108f4806102e76000396000f3006060604052600436106100cc5763ffffffff60e060020a60003504166306b091f981146100d85780631ec7e3451461010e57806321f1b67714610133578063313ce5671461014e5780633197cbb61461017757806355a373d61461018a578063573c0bd3146101b9578063637af51c146101cf57806378e97925146101ee5780637dc0015d146102015780638da5cb5b14610214578063989ced2614610227578063df034cd014610246578063f088d54714610259578063f2fde38b1461026d578063f3fef3a31461028c575b6100d5336102ae565b50005b34156100e357600080fd5b6100fa600160a060020a036004351660243561054f565b604051901515815260200160405180910390f35b341561011957600080fd5b6101216105eb565b60405190815260200160405180910390f35b341561013e57600080fd5b61014c6004356024356105f1565b005b341561015957600080fd5b610161610628565b60405160ff909116815260200160405180910390f35b341561018257600080fd5b610121610649565b341561019557600080fd5b61019d61064f565b604051600160a060020a03909116815260200160405180910390f35b34156101c457600080fd5b61014c60043561065e565b34156101da57600080fd5b61014c600160a060020a03600435166106cf565b34156101f957600080fd5b610121610719565b341561020c57600080fd5b61012161071f565b341561021f57600080fd5b61019d610725565b341561023257600080fd5b61014c600160a060020a0360043516610734565b341561025157600080fd5b61019d61077e565b610121600160a060020a03600435166102ae565b341561027857600080fd5b61014c600160a060020a036004351661078d565b341561029757600080fd5b61014c600160a060020a0360043516602435610828565b6000806000806000600554421115156102c657600080fd5b60045442106102d457600080fd5b600034116102e157600080fd5b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561033a57600080fd5b6102c65a03f1151561034b57600080fd5b50505060405180519450506000841161036357600080fd5b6001546002547401000000000000000000000000000000000000000090910460ff16600a0a93506103a4906103983486610874565b9063ffffffff61089f16565b915081841015610440576103c98361039860025487860361087490919063ffffffff16565b600054859350909150600160a060020a03163482900380156108fc0290604051600060405180830381858888f19350505050151561040657600080fd5b60009350600160a060020a03861681156108fc0282604051600060405180830381858888f19350505050151561043b57600080fd5b610487565b610450848363ffffffff6108b616565b600054909450600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561048757600080fd5b600154600160a060020a031663a9059cbb878460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156104e657600080fd5b6102c65a03f115156104f757600080fd5b50505060405180519050507fe3d4187f6ca4248660cc0ac8b8056515bac4a8132be2eca31d6d0cc170722a7e8683604051600160a060020a03909216825260208201526040908101905180910390a150949350505050565b6000805433600160a060020a0390811691161461056b57600080fd5b600154600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105ca57600080fd5b6102c65a03f115156105db57600080fd5b5050506040518051949350505050565b60025481565b60005433600160a060020a0390811691161461060c57600080fd5b81156106185760058290555b80156106245760048190555b5050565b60015474010000000000000000000000000000000000000000900460ff1681565b60045481565b600154600160a060020a031681565b60065433600160a060020a0390811691161480610689575060005433600160a060020a039081169116145b151561069457600080fd5b60028190557f95b271809b8eaef8cde269cc1a8f9f19a80f05db399160fcf41bdf1b8bd8cad68160405190815260200160405180910390a150565b60005433600160a060020a039081169116146106ea57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055481565b60035481565b600054600160a060020a031681565b60005433600160a060020a0390811691161461074f57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600654600160a060020a031681565b60005433600160a060020a039081169116146107a857600080fd5b600160a060020a03811615156107bd57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461084357600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f19350505050151561062457600080fd5b6000828202831580610890575082848281151561088d57fe5b04145b151561089857fe5b9392505050565b60008082848115156108ad57fe5b04949350505050565b6000828211156108c257fe5b509003905600a165627a7a72305820f036241282a330662ee56d6f68e4f60926e8cb4397cc6ff223b7944d18bc253c002960606040526002805460ff1916905534156200001a57600080fd5b604051620017f8380380620017f883398101604052808051919060200180519190602001805182019190602001805160008054600160a060020a033316600160a060020a0319909116811782558152600160208190526040909120805460ff1990811690921790556008805460ff88811691909316179081905516600a0a8602600681905560075590910190506009828051620000bc92916020019062000132565b50600a818051620000d292916020019062000132565b50600654600160a060020a033316600081815260046020526040808220849055919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91905190815260200160405180910390a350505050620001d7565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017557805160ff1916838001178555620001a5565b82800160010185558215620001a5579182015b82811115620001a557825182559160200191906001019062000188565b50620001b3929150620001b7565b5090565b620001d491905b80821115620001b35760008155600101620001be565b90565b61161180620001e76000396000f30060606040526004361061012f5763ffffffff60e060020a60003504166306fdde038114610134578063095ea7b3146101be57806318160ddd146101f45780631d32ab99146102195780631f2698ab1461023b57806323b872dd1461024e578063313ce56714610276578063378dc3dc1461029f57806342966c68146102b257806355684aa6146102c857806366188463146102de57806370a0823114610300578063711bf9b21461031f57806379cc6790146103455780638da5cb5b1461036757806395d89b4114610396578063a9059cbb146103a9578063b9181611146103cb578063be45fd62146103ea578063be9a65551461044f578063cae9ca5114610462578063d73dd623146104c7578063dd62ed3e146104e9578063f2fde38b1461050e578063f6368f8a1461052d575b600080fd5b341561013f57600080fd5b6101476105d4565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561018357808201518382015260200161016b565b50505050905090810190601f1680156101b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101c957600080fd5b6101e0600160a060020a0360043516602435610672565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6102076106ba565b60405190815260200160405180910390f35b341561022457600080fd5b6101e0600160a060020a03600435166024356106c0565b341561024657600080fd5b6101e06106f2565b341561025957600080fd5b6101e0600160a060020a03600435811690602435166044356106fb565b341561028157600080fd5b610289610745565b60405160ff909116815260200160405180910390f35b34156102aa57600080fd5b61020761074e565b34156102bd57600080fd5b6101e0600435610754565b34156102d357600080fd5b6101e0600435610766565b34156102e957600080fd5b6101e0600160a060020a0360043516602435610797565b341561030b57600080fd5b610207600160a060020a03600435166107d8565b341561032a57600080fd5b610343600160a060020a036004351660243515156107f3565b005b341561035057600080fd5b6101e0600160a060020a0360043516602435610872565b341561037257600080fd5b61037a610919565b604051600160a060020a03909116815260200160405180910390f35b34156103a157600080fd5b610147610928565b34156103b457600080fd5b6101e0600160a060020a0360043516602435610993565b34156103d657600080fd5b6101e0600160a060020a03600435166109d4565b34156103f557600080fd5b6101e060048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506109e995505050505050565b341561045a57600080fd5b610343610a2b565b341561046d57600080fd5b6101e060048035600160a060020a03169060248035919060649060443590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610a8195505050505050565b34156104d257600080fd5b6101e0600160a060020a0360043516602435610bb1565b34156104f457600080fd5b610207600160a060020a0360043581169060243516610bf2565b341561051957600080fd5b610343600160a060020a0360043516610c1d565b341561053857600080fd5b6101e060048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650610cb895505050505050565b60098054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561066a5780601f1061063f5761010080835404028352916020019161066a565b820191906000526020600020905b81548152906001019060200180831161064d57829003601f168201915b505050505081565b60025460009060ff168061069e5750600160a060020a03331660009081526001602052604090205460ff165b15156106a957600080fd5b6106b38383610d04565b9392505050565b60065481565b600160a060020a03331660009081526001602052604081205460ff1615156106e757600080fd5b6106b3328484610d70565b60025460ff1681565b60025460009060ff16806107275750600160a060020a03331660009081526001602052604090205460ff165b151561073257600080fd5b61073d848484610e8c565b949350505050565b60085460ff1681565b60075481565b6000610760338361102f565b92915050565b600160a060020a03331660009081526001602052604081205460ff16151561078d57600080fd5b610760328361102f565b60025460009060ff16806107c35750600160a060020a03331660009081526001602052604090205460ff165b15156107ce57600080fd5b6106b38383611100565b600160a060020a031660009081526004602052604090205490565b60005433600160a060020a0390811691161461080e57600080fd5b80151582600160a060020a03167f5056a36abc1db1625034fdf114a164a0345b3ccf992fc1d51055e017375f473260405160405180910390a3600160a060020a03919091166000908152600160205260409020805460ff1916911515919091179055565b600160a060020a038083166000908152600560209081526040808320339094168352929052908120548211156108a757600080fd5b6108b1838361102f565b50600160a060020a03808416600090815260056020908152604080832033909416835292905220546108e9908363ffffffff6111fa16565b600160a060020a038085166000908152600560209081526040808320339094168352929052205550600192915050565b600054600160a060020a031681565b600a8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561066a5780601f1061063f5761010080835404028352916020019161066a565b60025460009060ff16806109bf5750600160a060020a03331660009081526001602052604090205460ff165b15156109ca57600080fd5b6106b3838361120c565b60016020526000908152604090205460ff1681565b60025460009060ff1680610a155750600160a060020a03331660009081526001602052604090205460ff165b1515610a2057600080fd5b61073d848484611219565b60005433600160a060020a03908116911614610a4657600080fd5b6002805460ff191660011790557f1b55ba3aa851a46be3b365aee5b5c140edd620d578922f3e8466d2cbd96f954b60405160405180910390a1565b6000610a8d8484610672565b5083600160a060020a03166040517f72656365697665417070726f76616c28616464726573732c75696e743235362c81527f62797465732900000000000000000000000000000000000000000000000000006020820152602601604051809103902060e060020a90043385856040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a03168152602001838152602001828051906020019080838360005b83811015610b53578082015183820152602001610b3b565b50505050905090810190601f168015610b805780820380516001836020036101000a031916815260200191505b50935050505060006040518083038160008761646e5a03f1925050501515610ba757600080fd5b5060019392505050565b60025460009060ff1680610bdd5750600160a060020a03331660009081526001602052604090205460ff165b1515610be857600080fd5b6106b38383611283565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b60005433600160a060020a03908116911614610c3857600080fd5b600160a060020a0381161515610c4d57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025460009060ff1680610ce45750600160a060020a03331660009081526001602052604090205460ff165b1515610cef57600080fd5b610cfb85858585611327565b95945050505050565b600160a060020a03338116600081815260056020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6000600160a060020a0383161515610d8757600080fd5b30600160a060020a031683600160a060020a031614151515610da857600080fd5b600160a060020a038416600090815260046020526040902054821115610dcd57600080fd5b600160a060020a038416600090815260046020526040902054610df6908363ffffffff6111fa16565b600160a060020a038086166000908152600460205260408082209390935590851681522054610e2b908363ffffffff6115ce16565b600160a060020a03808516600081815260046020526040908190209390935591908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b6000600160a060020a0383161515610ea357600080fd5b30600160a060020a031683600160a060020a031614151515610ec457600080fd5b600160a060020a038416600090815260046020526040902054821115610ee957600080fd5b600160a060020a0380851660009081526005602090815260408083203390941683529290522054821115610f1c57600080fd5b600160a060020a038416600090815260046020526040902054610f45908363ffffffff6111fa16565b600160a060020a038086166000908152600460205260408082209390935590851681522054610f7a908363ffffffff6115ce16565b600160a060020a03808516600090815260046020908152604080832094909455878316825260058152838220339093168252919091522054610fc2908363ffffffff6111fa16565b600160a060020a03808616600081815260056020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b600080821161103d57600080fd5b600160a060020a03831660009081526004602052604090205482111561106257600080fd5b600160a060020a03831660009081526004602052604090205461108b908363ffffffff6111fa16565b600160a060020a0384166000908152600460205260409020556003546110b7908363ffffffff6111fa16565b600355600160a060020a0383167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58360405190815260200160405180910390a250600192915050565b600160a060020a0333811660009081526005602090815260408083209386168352929052908120548083111561115d57600160a060020a033381166000908152600560209081526040808320938816835292905290812055611194565b61116d818463ffffffff6111fa16565b600160a060020a033381166000908152600560209081526040808320938916835292905220555b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a35060019392505050565b60008282111561120657fe5b50900390565b60006106b3338484610d70565b600061073d848484606060405190810160405280602481526020017f746f6b656e46616c6c6261636b28616464726573732c75696e743235362c627981526020017f7465732900000000000000000000000000000000000000000000000000000000815250610cb8565b600160a060020a0333811660009081526005602090815260408083209386168352929052908120546112bb908363ffffffff6115ce16565b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b6000600160a060020a038516151561133e57600080fd5b30600160a060020a031685600160a060020a03161415151561135f57600080fd5b600160a060020a03331660009081526004602052604090205484111561138457600080fd5b600160a060020a0333166000908152600460205260409020546113ad908563ffffffff6111fa16565b600160a060020a0333811660009081526004602052604080822093909355908716815220546113e2908563ffffffff6115ce16565b600160a060020a038616600090815260046020526040902055611404856115dd565b156115205784600160a060020a03166000836040518082805190602001908083835b602083106114455780518252601f199092019160209182019101611426565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051809103902060e060020a9004903387876040518563ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a03168152602001838152602001828051906020019080838360005b838110156114d65780820151838201526020016114be565b50505050905090810190601f1680156115035780820380516001836020036101000a031916815260200191505b50935050505060006040518083038185886187965a03f150505050505b826040518082805190602001908083835b602083106115505780518252601f199092019160209182019101611531565b6001836020036101000a0380198251168184511617909252505050919091019250604091505051809103902085600160a060020a031633600160a060020a03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168760405190815260200160405180910390a4506001949350505050565b6000828201838110156106b357fe5b6000903b11905600a165627a7a7230582085156124c4c9caa41be21d6d04069bd7110aedaae17e53d71032112b9253ea100029

Deployed Bytecode

0x6060604052600436106100cc5763ffffffff60e060020a60003504166306b091f981146100d85780631ec7e3451461010e57806321f1b67714610133578063313ce5671461014e5780633197cbb61461017757806355a373d61461018a578063573c0bd3146101b9578063637af51c146101cf57806378e97925146101ee5780637dc0015d146102015780638da5cb5b14610214578063989ced2614610227578063df034cd014610246578063f088d54714610259578063f2fde38b1461026d578063f3fef3a31461028c575b6100d5336102ae565b50005b34156100e357600080fd5b6100fa600160a060020a036004351660243561054f565b604051901515815260200160405180910390f35b341561011957600080fd5b6101216105eb565b60405190815260200160405180910390f35b341561013e57600080fd5b61014c6004356024356105f1565b005b341561015957600080fd5b610161610628565b60405160ff909116815260200160405180910390f35b341561018257600080fd5b610121610649565b341561019557600080fd5b61019d61064f565b604051600160a060020a03909116815260200160405180910390f35b34156101c457600080fd5b61014c60043561065e565b34156101da57600080fd5b61014c600160a060020a03600435166106cf565b34156101f957600080fd5b610121610719565b341561020c57600080fd5b61012161071f565b341561021f57600080fd5b61019d610725565b341561023257600080fd5b61014c600160a060020a0360043516610734565b341561025157600080fd5b61019d61077e565b610121600160a060020a03600435166102ae565b341561027857600080fd5b61014c600160a060020a036004351661078d565b341561029757600080fd5b61014c600160a060020a0360043516602435610828565b6000806000806000600554421115156102c657600080fd5b60045442106102d457600080fd5b600034116102e157600080fd5b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561033a57600080fd5b6102c65a03f1151561034b57600080fd5b50505060405180519450506000841161036357600080fd5b6001546002547401000000000000000000000000000000000000000090910460ff16600a0a93506103a4906103983486610874565b9063ffffffff61089f16565b915081841015610440576103c98361039860025487860361087490919063ffffffff16565b600054859350909150600160a060020a03163482900380156108fc0290604051600060405180830381858888f19350505050151561040657600080fd5b60009350600160a060020a03861681156108fc0282604051600060405180830381858888f19350505050151561043b57600080fd5b610487565b610450848363ffffffff6108b616565b600054909450600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561048757600080fd5b600154600160a060020a031663a9059cbb878460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156104e657600080fd5b6102c65a03f115156104f757600080fd5b50505060405180519050507fe3d4187f6ca4248660cc0ac8b8056515bac4a8132be2eca31d6d0cc170722a7e8683604051600160a060020a03909216825260208201526040908101905180910390a150949350505050565b6000805433600160a060020a0390811691161461056b57600080fd5b600154600160a060020a031663a9059cbb848460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156105ca57600080fd5b6102c65a03f115156105db57600080fd5b5050506040518051949350505050565b60025481565b60005433600160a060020a0390811691161461060c57600080fd5b81156106185760058290555b80156106245760048190555b5050565b60015474010000000000000000000000000000000000000000900460ff1681565b60045481565b600154600160a060020a031681565b60065433600160a060020a0390811691161480610689575060005433600160a060020a039081169116145b151561069457600080fd5b60028190557f95b271809b8eaef8cde269cc1a8f9f19a80f05db399160fcf41bdf1b8bd8cad68160405190815260200160405180910390a150565b60005433600160a060020a039081169116146106ea57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60055481565b60035481565b600054600160a060020a031681565b60005433600160a060020a0390811691161461074f57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600654600160a060020a031681565b60005433600160a060020a039081169116146107a857600080fd5b600160a060020a03811615156107bd57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461084357600080fd5b600160a060020a03821681156108fc0282604051600060405180830381858888f19350505050151561062457600080fd5b6000828202831580610890575082848281151561088d57fe5b04145b151561089857fe5b9392505050565b60008082848115156108ad57fe5b04949350505050565b6000828211156108c257fe5b509003905600a165627a7a72305820f036241282a330662ee56d6f68e4f60926e8cb4397cc6ff223b7944d18bc253c0029

Swarm Source

bzzr://85156124c4c9caa41be21d6d04069bd7110aedaae17e53d71032112b9253ea10

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.