ETH Price: $2,093.70 (-1.47%)

Contract

0xF0a924661b0263e5Ce12756D07f45b8668C53380
 

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Kill245064042026-02-21 16:21:4720 days ago1771690907IN
Fake_Phishing6928
0 ETH0.000001080.04892991
Kill58681222018-06-28 8:34:262815 days ago1530174866IN
Fake_Phishing6928
0 ETH0.000085084
Crowdsale58680922018-06-28 8:27:022815 days ago1530174422IN
Fake_Phishing6928
0 ETH0.000099424
Token58680722018-06-28 8:22:482815 days ago1530174168IN
Fake_Phishing6928
0 ETH0.000085084
Kill43648462017-10-14 10:51:003072 days ago1507978260IN
Fake_Phishing6928
0 ETH0.0004467121
0x5a69626541054252017-08-01 21:52:573146 days ago1501624377IN
Fake_Phishing6928
0 ETH0.000045812.1
0x4f776e6141054252017-08-01 21:52:573146 days ago1501624377IN
Fake_Phishing6928
0 ETH0.000045382.1
0x4f776e6141054252017-08-01 21:52:573146 days ago1501624377IN
Fake_Phishing6928
0 ETH0.000004530.21
Transfer41054252017-08-01 21:52:573146 days ago1501624377IN
Fake_Phishing6928
0 ETH0.00004412.1
Transfer41054252017-08-01 21:52:573146 days ago1501624377IN
Fake_Phishing6928
0 ETH0.000004410.21
Transfer41054252017-08-01 21:52:573146 days ago1501624377IN
Fake_Phishing6928
0 ETH0.000004410.21
Transfer40874892017-07-28 22:30:293150 days ago1501281029IN
Fake_Phishing6928
0.25 ETH0.000485123.1
Transfer Ownersh...40867822017-07-28 18:53:413150 days ago1501268021IN
Fake_Phishing6928
0 ETH0.0004749321
Crowdsale40867562017-07-28 18:46:123150 days ago1501267572IN
Fake_Phishing6928
0 ETH0.0004789621
Crowdsale40866792017-07-28 18:24:443150 days ago1501266284IN
Fake_Phishing6928
0 ETH0.0004789621
Transfer40861722017-07-28 15:44:323150 days ago1501256672IN
Fake_Phishing6928
0.5 ETH0.00044121
Transfer40861122017-07-28 15:24:483150 days ago1501255488IN
Fake_Phishing6928
0.261 ETH0.00044121
Transfer40852202017-07-28 10:56:163150 days ago1501239376IN
Fake_Phishing6928
0.002 ETH0.00044121
Transfer40851292017-07-28 10:24:073150 days ago1501237447IN
Fake_Phishing6928
0.002 ETH0.00044121
Transfer40848662017-07-28 8:56:433150 days ago1501232203IN
Fake_Phishing6928
0.0001 ETH0.0000211
Withdraw40839522017-07-28 4:23:473150 days ago1501215827IN
Fake_Phishing6928
0 ETH0.0004257120.0127736
Unhalt40839412017-07-28 4:19:583150 days ago1501215598IN
Fake_Phishing6928
0 ETH0.0004257120.0127736
Transfer Ownersh...40839392017-07-28 4:18:053150 days ago1501215485IN
Fake_Phishing6928
0 ETH0.000452620.0127736
Transfer40834762017-07-28 1:45:353151 days ago1501206335IN
Fake_Phishing6928
0.361 ETH0.00044121
Withdraw40831232017-07-27 23:59:113151 days ago1501199951IN
Fake_Phishing6928
0 ETH0.0004467121
View all transactions

Latest 3 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer40812602017-07-27 14:21:573151 days ago1501165317
Fake_Phishing6928
0 ETH
Transfer40810612017-07-27 13:25:393151 days ago1501161939
Fake_Phishing6928
33.74178385 ETH
Transfer40809662017-07-27 12:59:083151 days ago1501160348
Fake_Phishing6928
986.38987791 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x2ec93c57d9cfa55982697e2a986e9fd9e6a85e70ef79398e8dbe9a01736d6520


Contract Source Code Verified (Exact Match)

Contract Name:
ZiberCrowdsale

Compiler Version
v0.4.13+commit.fb4cb1a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2017-07-24
*/

pragma solidity ^0.4.13;

 /// @title SafeMath contract - math operations with safety checks
 /// @author [email protected]
contract SafeMath {
  function safeMul(uint a, uint b) internal returns (uint) {
    uint c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function safeDiv(uint a, uint b) internal returns (uint) {
    assert(b > 0);
    uint c = a / b;
    assert(a == b * c + a % b);
    return c;
  }

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

  function safeAdd(uint a, uint b) internal returns (uint) {
    uint c = a + b;
    assert(c>=a && c>=b);
    return c;
  }

  function max64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a >= b ? a : b;
  }

  function min64(uint64 a, uint64 b) internal constant returns (uint64) {
    return a < b ? a : b;
  }

  function max256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a >= b ? a : b;
  }

  function min256(uint256 a, uint256 b) internal constant returns (uint256) {
    return a < b ? a : b;
  }

  function assert(bool assertion) internal {
    require(assertion);  
  }
}

 /// @title Ownable contract - base contract with an owner
 /// @author [email protected]
contract Ownable {
  address public owner;

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

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

  function transferOwnership(address newOwner) onlyOwner {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }
}


/// @title Haltable contract - abstract contract that allows children to implement an emergency stop mechanism.
/// @author [email protected]
/// Originally envisioned in FirstBlood ICO contract.
contract Haltable is Ownable {
  bool public halted;

  modifier stopInEmergency {
    require(!halted);
    _;
  }

  modifier onlyInEmergency {
    require(halted);       
    _;
  }

  /// called by the owner on emergency, triggers stopped state
  function halt() external onlyOwner {
    halted = true;
  }

  /// called by the owner on end of emergency, returns to normal state
  function unhalt() external onlyOwner onlyInEmergency {
    halted = false;
  }
}

 /// @title Killable contract - base contract that can be killed by owner. All funds in contract will be sent to the owner.
 /// @author [email protected]
contract Killable is Ownable {
  function kill() onlyOwner {
    selfdestruct(owner);
  }
}


 /// @title ERC20 interface see https://github.com/ethereum/EIPs/issues/20
 /// @author [email protected]
contract ERC20 {
  uint public totalSupply;
  function balanceOf(address who) constant returns (uint);
  function allowance(address owner, address spender) constant returns (uint);
  function mint(address receiver, uint amount);
  function transfer(address to, uint value) returns (bool ok);
  function transferFrom(address from, address to, uint value) returns (bool ok);
  function approve(address spender, uint value) returns (bool ok);
  event Transfer(address indexed from, address indexed to, uint value);
  event Approval(address indexed owner, address indexed spender, uint value);
}


/// @title ZiberToken contract - standard ERC20 token with Short Hand Attack and approve() race condition mitigation.
/// @author [email protected]
contract ZiberToken is SafeMath, ERC20, Ownable {
 string public name = "Ziber Token";
 string public symbol = "ZBR";
 uint public decimals = 8;
 uint public constant FROZEN_TOKENS = 1e7;
 uint public constant FREEZE_PERIOD = 1 years;
 uint public crowdSaleOverTimestamp;

 /// contract that is allowed to create new tokens and allows unlift the transfer limits on this token
 address public crowdsaleAgent;
 /// A crowdsale contract can release us to the wild if ICO success. If false we are are in transfer lock up period.
 bool public released = false;
 /// approve() allowances
 mapping (address => mapping (address => uint)) allowed;
 /// holder balances
 mapping(address => uint) balances;

 /// @dev Limit token transfer until the crowdsale is over.
 modifier canTransfer() {
   if(!released) {
     require(msg.sender == crowdsaleAgent);
   }
   _;
 }

 modifier checkFrozenAmount(address source, uint amount) {
   if (source == owner && now < crowdSaleOverTimestamp + FREEZE_PERIOD) {
     var frozenTokens = 10 ** decimals * FROZEN_TOKENS;
     require(safeSub(balances[owner], amount) > frozenTokens);
   }
   _;
 }

 /// @dev The function can be called only before or after the tokens have been releasesd
 /// @param _released token transfer and mint state
 modifier inReleaseState(bool _released) {
   require(_released == released);
   _;
 }

 /// @dev The function can be called only by release agent.
 modifier onlyCrowdsaleAgent() {
   require(msg.sender == crowdsaleAgent);
   _;
 }

 /// @dev Fix for the ERC20 short address attack http://vessenes.com/the-erc20-short-address-attack-explained/
 /// @param size payload size
 modifier onlyPayloadSize(uint size) {
   require(msg.data.length >= size + 4);
    _;
 }

 /// @dev Make sure we are not done yet.
 modifier canMint() {
   require(!released);
    _;
  }

 /// @dev Constructor
 function ZiberToken() {
   owner = msg.sender;
 }

 /// Fallback method will buyout tokens
 function() payable {
   revert();
 }
 /// @dev Create new tokens and allocate them to an address. Only callably by a crowdsale contract
 /// @param receiver Address of receiver
 /// @param amount  Number of tokens to issue.
 function mint(address receiver, uint amount) onlyCrowdsaleAgent canMint public {
    totalSupply = safeAdd(totalSupply, amount);
    balances[receiver] = safeAdd(balances[receiver], amount);
    Transfer(0, receiver, amount);
 }

 /// @dev Set the contract that can call release and make the token transferable.
 /// @param _crowdsaleAgent crowdsale contract address
 function setCrowdsaleAgent(address _crowdsaleAgent) onlyOwner inReleaseState(false) public {
   crowdsaleAgent = _crowdsaleAgent;
 }
 /// @dev One way function to release the tokens to the wild. Can be called only from the release agent that is the final ICO contract. It is only called if the crowdsale has been success (first milestone reached).
 function releaseTokenTransfer() public onlyCrowdsaleAgent {
   crowdSaleOverTimestamp = now;
   released = true;
 }
 /// @dev Tranfer tokens to address
 /// @param _to dest address
 /// @param _value tokens amount
 /// @return transfer result
 function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) canTransfer checkFrozenAmount(msg.sender, _value) returns (bool success) {
   balances[msg.sender] = safeSub(balances[msg.sender], _value);
   balances[_to] = safeAdd(balances[_to], _value);

   Transfer(msg.sender, _to, _value);
   return true;
 }

 /// @dev Tranfer tokens from one address to other
 /// @param _from source address
 /// @param _to dest address
 /// @param _value tokens amount
 /// @return transfer result
 function transferFrom(address _from, address _to, uint _value) onlyPayloadSize(2 * 32) canTransfer checkFrozenAmount(_from, _value) returns (bool success) {
    var _allowance = allowed[_from][msg.sender];

    balances[_to] = safeAdd(balances[_to], _value);
    balances[_from] = safeSub(balances[_from], _value);
    allowed[_from][msg.sender] = safeSub(_allowance, _value);
    Transfer(_from, _to, _value);
    return true;
 }
 /// @dev Tokens balance
 /// @param _owner holder address
 /// @return balance amount
 function balanceOf(address _owner) constant returns (uint balance) {
   return balances[_owner];
 }

 /// @dev Approve transfer
 /// @param _spender holder address
 /// @param _value tokens amount
 /// @return result
 function approve(address _spender, uint _value) returns (bool success) {
   // To change the approve amount you first have to reduce the addresses`
   //  allowance to zero by calling `approve(_spender, 0)` if it is not
   //  already 0 to mitigate the race condition described here:
   //  https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   require ((_value == 0) || (allowed[msg.sender][_spender] == 0));

   allowed[msg.sender][_spender] = _value;
   Approval(msg.sender, _spender, _value);
   return true;
 }

 /// @dev Token allowance
 /// @param _owner holder address
 /// @param _spender spender address
 /// @return remain amount
 function allowance(address _owner, address _spender) constant returns (uint remaining) {
   return allowed[_owner][_spender];
 }
}


/// @title ZiberCrowdsale contract - contract for token sales.
/// @author [email protected]
contract ZiberCrowdsale is Haltable, Killable, SafeMath {

  /// Total count of tokens distributed via ICO
  uint public constant TOTAL_ICO_TOKENS = 100000000;

  /// Miminal tokens funding goal in Wei, if this goal isn't reached during ICO, refund will begin
  uint public constant MIN_ICO_GOAL = 5000 ether;

  /// Maximal tokens funding goal in Wei
  uint public constant MAX_ICO_GOAL = 50000 ether;
  
  /// the UNIX timestamp 5e4 ether funded
  uint public maxGoalReachedAt = 0;

  /// The duration of ICO
  uint public constant ICO_DURATION = 10 days;

  /// The duration of ICO
  uint public constant AFTER_MAX_GOAL_DURATION = 24 hours;

  /// The token we are selling
  ZiberToken public token;

  /// the UNIX timestamp start date of the crowdsale
  uint public startsAt;

  /// How many wei of funding we have raised
  uint public weiRaised = 0;

  /// How much wei we have returned back to the contract after a failed crowdfund.
  uint public loadedRefund = 0;

  /// How much wei we have given back to investors.
  uint public weiRefunded = 0;

  /// Has this crowdsale been finalized
  bool public finalized;

  /// How much ETH each address has invested to this crowdsale
  mapping (address => uint256) public investedAmountOf;

  /// How much tokens this crowdsale has credited for each investor address
  mapping (address => uint256) public tokenAmountOf;

  /// Define a structure for one investment event occurrence
  struct Investment {
      /// Who invested
      address source;
      /// Amount invested
      uint weiValue;
  }

  Investment[] public investments;

  /// State machine
  /// Preparing: All contract initialization calls and variables have not been set yet
  /// Prefunding: We have not passed start time yet
  /// Funding: Active crowdsale
  /// Success: Minimum funding goal reached
  /// Failure: Minimum funding goal not reached before ending time
  /// Finalized: The finalized has been called and succesfully executed\
  /// Refunding: Refunds are loaded on the contract for reclaim.
  enum State {Unknown, Preparing, Funding, Success, Failure, Finalized, Refunding}

  /// A new investment was made
  event Invested(address investor, uint weiAmount);
  /// Refund was processed for a contributor
  event Refund(address investor, uint weiAmount);

  /// @dev Modified allowing execution only if the crowdsale is currently running
  modifier inState(State state) {
    require(getState() == state);
    _;
  }

  /// @dev Constructor
  /// @param _token Pay Fair token address
  /// @param _start token ICO start date
  function Crowdsale(address _token, uint _start) {
    require(_token != 0);
    require(_start != 0);

    owner = msg.sender;
    token = ZiberToken(_token);
    startsAt = _start;
  }

  ///  Don't expect to just send in money and get tokens.
  function() payable {
    buy();
  }

   /// @dev Make an investment. Crowdsale must be running for one to invest.
   /// @param receiver The Ethereum address who receives the tokens
  function investInternal(address receiver) stopInEmergency private {
    var state = getState();
    require(state == State.Funding);
    require(msg.value > 0);

    // Add investment record
    var weiAmount = msg.value;
    investedAmountOf[receiver] = safeAdd(investedAmountOf[receiver], weiAmount);
    investments.push(Investment(receiver, weiAmount));

    // Update totals
    weiRaised = safeAdd(weiRaised, weiAmount);
    // Max ICO goal reached at
    if(maxGoalReachedAt == 0 && weiRaised >= MAX_ICO_GOAL)
      maxGoalReachedAt = now;
    // Tell us invest was success
    Invested(receiver, weiAmount);
  }

  /// @dev Allow anonymous contributions to this crowdsale.
  /// @param receiver The Ethereum address who receives the tokens
  function invest(address receiver) public payable {
    investInternal(receiver);
  }

  /// @dev The basic entry point to participate the crowdsale process.
  function buy() public payable {
    invest(msg.sender);
  }

  /// @dev Finalize a succcesful crowdsale.
  function finalize() public inState(State.Success) onlyOwner stopInEmergency {
    require(!finalized);

    finalized = true;
    finalizeCrowdsale();
  }

  /// @dev Owner can withdraw contract funds
  function withdraw() public onlyOwner {
    // Transfer funds to the team wallet
    owner.transfer(this.balance);
  }

  /// @dev Finalize a succcesful crowdsale.
  function finalizeCrowdsale() internal {
    // Calculate divisor of the total token count
    uint divisor;
    for (uint i = 0; i < investments.length; i++)
       divisor = safeAdd(divisor, investments[i].weiValue);

    var multiplier = 10 ** token.decimals();
    // Get unit price
    uint unitPrice = safeDiv(safeMul(TOTAL_ICO_TOKENS, multiplier), divisor);

    // Distribute tokens among investors
    for (i = 0; i < investments.length; i++) {
        var tokenAmount = safeMul(unitPrice, investments[i].weiValue);
        tokenAmountOf[investments[i].source] += tokenAmount;
        assignTokens(investments[i].source, tokenAmount);
    }
    assignTokens(owner, 2e7);
    token.releaseTokenTransfer();
  }

  /// @dev Allow load refunds back on the contract for the refunding.
  function loadRefund() public payable inState(State.Failure) {
    require(msg.value > 0);
    loadedRefund = safeAdd(loadedRefund, msg.value);
  }

  /// @dev Investors can claim refund.
  function refund() public inState(State.Refunding) {
    uint256 weiValue = investedAmountOf[msg.sender];
    if (weiValue == 0)
      return;
    investedAmountOf[msg.sender] = 0;
    weiRefunded = safeAdd(weiRefunded, weiValue);
    Refund(msg.sender, weiValue);
    msg.sender.transfer(weiValue);
  }

  /// @dev Minimum goal was reached
  /// @return true if the crowdsale has raised enough money to not initiate the refunding
  function isMinimumGoalReached() public constant returns (bool reached) {
    return weiRaised >= MIN_ICO_GOAL;
  }

  /// @dev Check if the ICO goal was reached.
  /// @return true if the crowdsale has raised enough money to be a success
  function isCrowdsaleFull() public constant returns (bool) {
    return weiRaised >= MAX_ICO_GOAL && now > maxGoalReachedAt + AFTER_MAX_GOAL_DURATION;
  }

  /// @dev Crowdfund state machine management.
  /// @return State current state
  function getState() public constant returns (State) {
    if (finalized)
      return State.Finalized;
    if (address(token) == 0)
      return State.Preparing;
    if (now >= startsAt && now < startsAt + ICO_DURATION && !isCrowdsaleFull())
      return State.Funding;
    if (isCrowdsaleFull())
      return State.Success;
    if (!isMinimumGoalReached() && weiRaised > 0 && loadedRefund >= weiRaised)
      return State.Refunding;
    return State.Failure;
  }

   /// @dev Dynamically create tokens and assign them to the investor.
   /// @param receiver investor address
   /// @param tokenAmount The amount of tokens we try to give to the investor in the current transaction
   function assignTokens(address receiver, uint tokenAmount) private {
     token.mint(receiver, tokenAmount);
   }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"receiver","type":"address"}],"name":"invest","outputs":[],"payable":true,"type":"function"},{"constant":false,"inputs":[{"name":"_token","type":"address"},{"name":"_start","type":"uint256"}],"name":"Crowdsale","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"getState","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"investedAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MIN_ICO_GOAL","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"MAX_ICO_GOAL","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"weiRefunded","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"halt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"loadedRefund","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isMinimumGoalReached","outputs":[{"name":"reached","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"loadRefund","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenAmountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"startsAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"halted","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TOTAL_ICO_TOKENS","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxGoalReachedAt","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ICO_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"unhalt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isCrowdsaleFull","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"AFTER_MAX_GOAL_DURATION","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"investments","outputs":[{"name":"source","type":"address"},{"name":"weiValue","type":"uint256"}],"payable":false,"type":"function"},{"payable":true,"type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"}],"name":"Invested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"weiAmount","type":"uint256"}],"name":"Refund","type":"event"}]

606060405260006001556000600455600060055560006006555b60008054600160a060020a03191633600160a060020a03161790555b5b611069806100456000396000f3006060604052361561016f5763ffffffff60e060020a60003504166303f9c79381146101805780630f6a1734146101965780631865c57d146101ba5780631aae3460146101f15780633ccfd60b146102225780634042b66f1461023757806341c0e1b51461025c578063442e1079146102715780634bb278f3146102965780635256a36e146102ab578063590e1ae3146102d05780635da89ac0146102e55780635ed7ca5b1461030a578063797d94371461031f5780637c2e08a314610344578063876121021461036b5780638da5cb5b1461037557806397b150ca146103a4578063a6f2ae3a146103d5578063af468682146103df578063b3f05b9714610404578063b9b8af0b1461042b578063bd611c7314610452578063c4f1215c14610477578063c9d82c961461049c578063cb3e64fd146104c1578063d5d09021146104d6578063f071ecc5146104fd578063f2fde38b14610522578063fc0c546a14610543578063fd345c8a14610572575b61017e5b61017b6105aa565b5b565b005b61017e600160a060020a03600435166105b6565b005b34156101a157600080fd5b61017e600160a060020a03600435166024356105c3565b005b34156101c557600080fd5b6101cd61062b565b604051808260068111156101dd57fe5b60ff16815260200191505060405180910390f35b34156101fc57600080fd5b610210600160a060020a03600435166106e1565b60405190815260200160405180910390f35b341561022d57600080fd5b61017e6106f3565b005b341561024257600080fd5b61021061074b565b60405190815260200160405180910390f35b341561026757600080fd5b61017e610751565b005b341561027c57600080fd5b61021061077d565b60405190815260200160405180910390f35b34156102a157600080fd5b61017e61078b565b005b34156102b657600080fd5b61021061080a565b60405190815260200160405180910390f35b34156102db57600080fd5b61017e610818565b005b34156102f057600080fd5b610210610906565b60405190815260200160405180910390f35b341561031557600080fd5b61017e61090c565b005b341561032a57600080fd5b61021061094f565b60405190815260200160405180910390f35b341561034f57600080fd5b610357610955565b604051901515815260200160405180910390f35b61017e61096a565b005b341561038057600080fd5b6103886109ac565b604051600160a060020a03909116815260200160405180910390f35b34156103af57600080fd5b610210600160a060020a03600435166109bb565b60405190815260200160405180910390f35b61017e6105aa565b005b34156103ea57600080fd5b6102106109cd565b60405190815260200160405180910390f35b341561040f57600080fd5b6103576109d3565b604051901515815260200160405180910390f35b341561043657600080fd5b6103576109dc565b604051901515815260200160405180910390f35b341561045d57600080fd5b6102106109ec565b60405190815260200160405180910390f35b341561048257600080fd5b6102106109f4565b60405190815260200160405180910390f35b34156104a757600080fd5b6102106109fa565b60405190815260200160405180910390f35b34156104cc57600080fd5b61017e610a01565b005b34156104e157600080fd5b610357610a57565b604051901515815260200160405180910390f35b341561050857600080fd5b610210610a81565b60405190815260200160405180910390f35b341561052d57600080fd5b61017e600160a060020a0360043516610a88565b005b341561054e57600080fd5b610388610ae0565b604051600160a060020a03909116815260200160405180910390f35b341561057d57600080fd5b610588600435610aef565b604051600160a060020a03909216825260208201526040908101905180910390f35b61017b336105b6565b5b565b6105bf81610b27565b5b50565b600160a060020a03821615156105d857600080fd5b8015156105e457600080fd5b60008054600160a060020a0333811673ffffffffffffffffffffffffffffffffffffffff1992831617909255600280549285169290911691909117905560038190555b5050565b60075460009060ff1615610641575060056106de565b600254600160a060020a0316151561065b575060016106de565b60035442101580156106735750620d2f006003540142105b80156106845750610682610a57565b155b15610691575060026106de565b610699610a57565b156106a6575060036106de565b6106ae610955565b1580156106bd57506000600454115b80156106cd575060045460055410155b156106da575060066106de565b5060045b90565b60086020526000908152604090205481565b60005433600160a060020a0390811691161461070e57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561017b57600080fd5b5b5b565b60045481565b60005433600160a060020a0390811691161461076c57600080fd5b600054600160a060020a0316ff5b5b565b69010f0cf064dd5920000081565b6003805b61079761062b565b60068111156107a257fe5b146107ac57600080fd5b60005433600160a060020a039081169116146107c757600080fd5b60005460a060020a900460ff16156107de57600080fd5b60075460ff16156107ee57600080fd5b6007805460ff191660011790556105bf610caa565b5b5b5b5b50565b690a968163f0a57b40000081565b60006006805b61082661062b565b600681111561083157fe5b1461083b57600080fd5b600160a060020a033316600090815260086020526040902054915081151561086257610627565b600160a060020a0333166000908152600860205260408120556006546108889083610eb4565b6006557fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d3383604051600160a060020a03909216825260208201526040908101905180910390a1600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561062757600080fd5b5b5b5050565b60065481565b60005433600160a060020a0390811691161461092757600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60055481565b60045469010f0cf064dd592000009010155b90565b6004805b61097661062b565b600681111561098157fe5b1461098b57600080fd5b6000341161099857600080fd5b6109a460055434610eb4565b6005555b5b50565b600054600160a060020a031681565b60096020526000908152604090205481565b60035481565b60075460ff1681565b60005460a060020a900460ff1681565b6305f5e10081565b60015481565b620d2f0081565b60005433600160a060020a03908116911614610a1c57600080fd5b60005460a060020a900460ff161515610a3457600080fd5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b6000690a968163f0a57b40000060045410158015610a7b5750620151806001540142115b90505b90565b6201518081565b60005433600160a060020a03908116911614610aa357600080fd5b600160a060020a038116156105bf576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600254600160a060020a031681565b600a805482908110610afd57fe5b906000526020600020906002020160005b508054600190910154600160a060020a03909116915082565b60008054819060a060020a900460ff1615610b4157600080fd5b610b4961062b565b915060025b826006811115610b5a57fe5b14610b6457600080fd5b60003411610b7157600080fd5b50600160a060020a0382166000908152600860205260409020543490610b979082610eb4565b600160a060020a038416600090815260086020526040902055600a805460018101610bc28382610fcc565b916000526020600020906002020160005b60408051908101604052600160a060020a0387168152602081018590529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201518160010155505050610c3660045482610eb4565b600455600154158015610c555750690a968163f0a57b40000060045410155b15610c5f57426001555b7fc3f75dfc78f6efac88ad5abb5e606276b903647d97b2a62a1ef89840a658bbc38382604051600160a060020a03909216825260208201526040908101905180910390a15b5b505050565b6000808080805b600a54841015610cf757610ce985600a86815481101515610cce57fe5b906000526020600020906002020160005b5060010154610eb4565b94505b600190930192610cb1565b600254600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d3f57600080fd5b6102c65a03f11515610d5057600080fd5b50505060405180519050600a0a9250610d76610d706305f5e10085610edc565b86610f0b565b9150600093505b600a54841015610e3f57610db582600a86815481101515610d9a57fe5b906000526020600020906002020160005b5060010154610edc565b90508060096000600a87815481101515610dcb57fe5b906000526020600020906002020160005b5054600160a060020a03168152602081019190915260400160002080549091019055600a8054610e33919086908110610e1157fe5b906000526020600020906002020160005b5054600160a060020a031682610f4d565b5b600190930192610d7d565b600054610e5990600160a060020a03166301312d00610f4d565b600254600160a060020a0316635f412d4f6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610e9857600080fd5b6102c65a03f11515610ea957600080fd5b5050505b5050505050565b6000828201610ed1848210801590610ecc5750838210155b610fbc565b8091505b5092915050565b6000828202610ed1841580610ecc5750838583811515610ef857fe5b04145b610fbc565b8091505b5092915050565b600080610f1a60008411610fbc565b8284811515610f2557fe5b049050610ed18385811515610f3657fe5b06828502018514610fbc565b8091505b5092915050565b600254600160a060020a03166340c10f19838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610fa357600080fd5b6102c65a03f11515610ead57600080fd5b5050505b5050565b8015156105bf57600080fd5b5b50565b815481835581811511610ca457600202816002028360005260206000209182019101610ca49190610ffe565b5b505050565b6106de91905b8082111561103657805473ffffffffffffffffffffffffffffffffffffffff1916815560006001820155600201611004565b5090565b905600a165627a7a723058204372f6d2a65570922a02ab831fa2bb415742e3fd6e13f6774d4074e9f0b668380029

Deployed Bytecode

0x6060604052361561016f5763ffffffff60e060020a60003504166303f9c79381146101805780630f6a1734146101965780631865c57d146101ba5780631aae3460146101f15780633ccfd60b146102225780634042b66f1461023757806341c0e1b51461025c578063442e1079146102715780634bb278f3146102965780635256a36e146102ab578063590e1ae3146102d05780635da89ac0146102e55780635ed7ca5b1461030a578063797d94371461031f5780637c2e08a314610344578063876121021461036b5780638da5cb5b1461037557806397b150ca146103a4578063a6f2ae3a146103d5578063af468682146103df578063b3f05b9714610404578063b9b8af0b1461042b578063bd611c7314610452578063c4f1215c14610477578063c9d82c961461049c578063cb3e64fd146104c1578063d5d09021146104d6578063f071ecc5146104fd578063f2fde38b14610522578063fc0c546a14610543578063fd345c8a14610572575b61017e5b61017b6105aa565b5b565b005b61017e600160a060020a03600435166105b6565b005b34156101a157600080fd5b61017e600160a060020a03600435166024356105c3565b005b34156101c557600080fd5b6101cd61062b565b604051808260068111156101dd57fe5b60ff16815260200191505060405180910390f35b34156101fc57600080fd5b610210600160a060020a03600435166106e1565b60405190815260200160405180910390f35b341561022d57600080fd5b61017e6106f3565b005b341561024257600080fd5b61021061074b565b60405190815260200160405180910390f35b341561026757600080fd5b61017e610751565b005b341561027c57600080fd5b61021061077d565b60405190815260200160405180910390f35b34156102a157600080fd5b61017e61078b565b005b34156102b657600080fd5b61021061080a565b60405190815260200160405180910390f35b34156102db57600080fd5b61017e610818565b005b34156102f057600080fd5b610210610906565b60405190815260200160405180910390f35b341561031557600080fd5b61017e61090c565b005b341561032a57600080fd5b61021061094f565b60405190815260200160405180910390f35b341561034f57600080fd5b610357610955565b604051901515815260200160405180910390f35b61017e61096a565b005b341561038057600080fd5b6103886109ac565b604051600160a060020a03909116815260200160405180910390f35b34156103af57600080fd5b610210600160a060020a03600435166109bb565b60405190815260200160405180910390f35b61017e6105aa565b005b34156103ea57600080fd5b6102106109cd565b60405190815260200160405180910390f35b341561040f57600080fd5b6103576109d3565b604051901515815260200160405180910390f35b341561043657600080fd5b6103576109dc565b604051901515815260200160405180910390f35b341561045d57600080fd5b6102106109ec565b60405190815260200160405180910390f35b341561048257600080fd5b6102106109f4565b60405190815260200160405180910390f35b34156104a757600080fd5b6102106109fa565b60405190815260200160405180910390f35b34156104cc57600080fd5b61017e610a01565b005b34156104e157600080fd5b610357610a57565b604051901515815260200160405180910390f35b341561050857600080fd5b610210610a81565b60405190815260200160405180910390f35b341561052d57600080fd5b61017e600160a060020a0360043516610a88565b005b341561054e57600080fd5b610388610ae0565b604051600160a060020a03909116815260200160405180910390f35b341561057d57600080fd5b610588600435610aef565b604051600160a060020a03909216825260208201526040908101905180910390f35b61017b336105b6565b5b565b6105bf81610b27565b5b50565b600160a060020a03821615156105d857600080fd5b8015156105e457600080fd5b60008054600160a060020a0333811673ffffffffffffffffffffffffffffffffffffffff1992831617909255600280549285169290911691909117905560038190555b5050565b60075460009060ff1615610641575060056106de565b600254600160a060020a0316151561065b575060016106de565b60035442101580156106735750620d2f006003540142105b80156106845750610682610a57565b155b15610691575060026106de565b610699610a57565b156106a6575060036106de565b6106ae610955565b1580156106bd57506000600454115b80156106cd575060045460055410155b156106da575060066106de565b5060045b90565b60086020526000908152604090205481565b60005433600160a060020a0390811691161461070e57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561017b57600080fd5b5b5b565b60045481565b60005433600160a060020a0390811691161461076c57600080fd5b600054600160a060020a0316ff5b5b565b69010f0cf064dd5920000081565b6003805b61079761062b565b60068111156107a257fe5b146107ac57600080fd5b60005433600160a060020a039081169116146107c757600080fd5b60005460a060020a900460ff16156107de57600080fd5b60075460ff16156107ee57600080fd5b6007805460ff191660011790556105bf610caa565b5b5b5b5b50565b690a968163f0a57b40000081565b60006006805b61082661062b565b600681111561083157fe5b1461083b57600080fd5b600160a060020a033316600090815260086020526040902054915081151561086257610627565b600160a060020a0333166000908152600860205260408120556006546108889083610eb4565b6006557fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d3383604051600160a060020a03909216825260208201526040908101905180910390a1600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561062757600080fd5b5b5b5050565b60065481565b60005433600160a060020a0390811691161461092757600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790555b5b565b60055481565b60045469010f0cf064dd592000009010155b90565b6004805b61097661062b565b600681111561098157fe5b1461098b57600080fd5b6000341161099857600080fd5b6109a460055434610eb4565b6005555b5b50565b600054600160a060020a031681565b60096020526000908152604090205481565b60035481565b60075460ff1681565b60005460a060020a900460ff1681565b6305f5e10081565b60015481565b620d2f0081565b60005433600160a060020a03908116911614610a1c57600080fd5b60005460a060020a900460ff161515610a3457600080fd5b6000805474ff0000000000000000000000000000000000000000191690555b5b5b565b6000690a968163f0a57b40000060045410158015610a7b5750620151806001540142115b90505b90565b6201518081565b60005433600160a060020a03908116911614610aa357600080fd5b600160a060020a038116156105bf576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600254600160a060020a031681565b600a805482908110610afd57fe5b906000526020600020906002020160005b508054600190910154600160a060020a03909116915082565b60008054819060a060020a900460ff1615610b4157600080fd5b610b4961062b565b915060025b826006811115610b5a57fe5b14610b6457600080fd5b60003411610b7157600080fd5b50600160a060020a0382166000908152600860205260409020543490610b979082610eb4565b600160a060020a038416600090815260086020526040902055600a805460018101610bc28382610fcc565b916000526020600020906002020160005b60408051908101604052600160a060020a0387168152602081018590529190508151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039190911617815560208201518160010155505050610c3660045482610eb4565b600455600154158015610c555750690a968163f0a57b40000060045410155b15610c5f57426001555b7fc3f75dfc78f6efac88ad5abb5e606276b903647d97b2a62a1ef89840a658bbc38382604051600160a060020a03909216825260208201526040908101905180910390a15b5b505050565b6000808080805b600a54841015610cf757610ce985600a86815481101515610cce57fe5b906000526020600020906002020160005b5060010154610eb4565b94505b600190930192610cb1565b600254600160a060020a031663313ce5676000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d3f57600080fd5b6102c65a03f11515610d5057600080fd5b50505060405180519050600a0a9250610d76610d706305f5e10085610edc565b86610f0b565b9150600093505b600a54841015610e3f57610db582600a86815481101515610d9a57fe5b906000526020600020906002020160005b5060010154610edc565b90508060096000600a87815481101515610dcb57fe5b906000526020600020906002020160005b5054600160a060020a03168152602081019190915260400160002080549091019055600a8054610e33919086908110610e1157fe5b906000526020600020906002020160005b5054600160a060020a031682610f4d565b5b600190930192610d7d565b600054610e5990600160a060020a03166301312d00610f4d565b600254600160a060020a0316635f412d4f6040518163ffffffff1660e060020a028152600401600060405180830381600087803b1515610e9857600080fd5b6102c65a03f11515610ea957600080fd5b5050505b5050505050565b6000828201610ed1848210801590610ecc5750838210155b610fbc565b8091505b5092915050565b6000828202610ed1841580610ecc5750838583811515610ef857fe5b04145b610fbc565b8091505b5092915050565b600080610f1a60008411610fbc565b8284811515610f2557fe5b049050610ed18385811515610f3657fe5b06828502018514610fbc565b8091505b5092915050565b600254600160a060020a03166340c10f19838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610fa357600080fd5b6102c65a03f11515610ead57600080fd5b5050505b5050565b8015156105bf57600080fd5b5b50565b815481835581811511610ca457600202816002028360005260206000209182019101610ca49190610ffe565b5b505050565b6106de91905b8082111561103657805473ffffffffffffffffffffffffffffffffffffffff1916815560006001820155600201611004565b5090565b905600a165627a7a723058204372f6d2a65570922a02ab831fa2bb415742e3fd6e13f6774d4074e9f0b668380029

Swarm Source

bzzr://4372f6d2a65570922a02ab831fa2bb415742e3fd6e13f6774d4074e9f0b66838

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.