ETH Price: $2,055.22 (-2.96%)

Contract

0xDc1d53DC4F8E44C2FabE22e76236bcDFFAb77124
 

Overview

ETH Balance

0.009954853273137698 ETH

Eth Value

$20.46 (@ $2,055.22/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Chip75974322019-04-19 9:47:072513 days ago1555667227IN
0xDc1d53DC...FFAb77124
0 ETH0.000002380.1
Claim Chip66195172018-10-31 20:06:322682 days ago1541016392IN
0xDc1d53DC...FFAb77124
0 ETH0.000038191.6
Claim Chip64984782018-10-12 1:51:512702 days ago1539309111IN
0xDc1d53DC...FFAb77124
0 ETH0.0009760441
Claim Chip62798382018-09-06 2:50:312738 days ago1536202231IN
0xDc1d53DC...FFAb77124
0 ETH0.0009760441
Claim Chip61408372018-08-13 16:06:432761 days ago1534176403IN
0xDc1d53DC...FFAb77124
0 ETH0.000477420
Claim Chip61408302018-08-13 16:05:182761 days ago1534176318IN
0xDc1d53DC...FFAb77124
0 ETH0.000477420
Claim Chip61115872018-08-08 17:02:492766 days ago1533747769IN
0xDc1d53DC...FFAb77124
0 ETH0.0004812420
Claim Chip60387552018-07-27 10:32:512779 days ago1532687571IN
0xDc1d53DC...FFAb77124
0 ETH0.000071413
Claim Chip60387472018-07-27 10:29:482779 days ago1532687388IN
0xDc1d53DC...FFAb77124
0 ETH0.000059512.5
Claim Chip59889462018-07-18 23:04:332787 days ago1531955073IN
0xDc1d53DC...FFAb77124
0 ETH0.0004999221
Claim Chip59889442018-07-18 23:03:552787 days ago1531955035IN
0xDc1d53DC...FFAb77124
0 ETH0.0005012721
Claim Chip59889412018-07-18 23:03:372787 days ago1531955017IN
0xDc1d53DC...FFAb77124
0 ETH0.0004999221
Claim Chip59889362018-07-18 23:02:422787 days ago1531954962IN
0xDc1d53DC...FFAb77124
0 ETH0.0005012721
Claim Chip58888092018-07-01 21:48:512804 days ago1530481731IN
0xDc1d53DC...FFAb77124
0 ETH0.0009760441
Claim Chip58784402018-06-30 3:20:242806 days ago1530328824IN
0xDc1d53DC...FFAb77124
0 ETH0.0009786741
Claim Chip57663192018-06-10 19:53:392825 days ago1528660419IN
0xDc1d53DC...FFAb77124
0 ETH0.000477420
Claim Chip57663072018-06-10 19:51:212825 days ago1528660281IN
0xDc1d53DC...FFAb77124
0 ETH0.000477420
Claim Chip57662812018-06-10 19:45:242825 days ago1528659924IN
0xDc1d53DC...FFAb77124
0 ETH0.0004612820
Claim Chip57662752018-06-10 19:43:392825 days ago1528659819IN
0xDc1d53DC...FFAb77124
0 ETH0.0004620
Claim Chip57662702018-06-10 19:42:382825 days ago1528659758IN
0xDc1d53DC...FFAb77124
0 ETH0.0004612820
Claim Chip57662622018-06-10 19:41:032825 days ago1528659663IN
0xDc1d53DC...FFAb77124
0 ETH0.0004612820
Claim Chip57662542018-06-10 19:38:302825 days ago1528659510IN
0xDc1d53DC...FFAb77124
0 ETH0.0004612820
Claim Chip57272182018-06-03 21:20:292832 days ago1528060829IN
0xDc1d53DC...FFAb77124
0 ETH0.0009760441
Claim Chip57272092018-06-03 21:19:042832 days ago1528060744IN
0xDc1d53DC...FFAb77124
0 ETH0.0009786741
Claim Chip57270812018-06-03 20:44:512832 days ago1528058691IN
0xDc1d53DC...FFAb77124
0 ETH0.0009760441
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer56504242018-05-21 6:26:532846 days ago1526884013
0xDc1d53DC...FFAb77124
0.00002257 ETH
Transfer56504002018-05-21 6:22:212846 days ago1526883741
0xDc1d53DC...FFAb77124
0.00002257 ETH
Transfer56503772018-05-21 6:18:182846 days ago1526883498
0xDc1d53DC...FFAb77124
4.41 ETH
Transfer56494152018-05-21 2:21:152846 days ago1526869275
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56489462018-05-21 0:20:142846 days ago1526862014
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56489342018-05-21 0:17:322846 days ago1526861852
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56489192018-05-21 0:14:532846 days ago1526861693
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56468982018-05-20 15:41:072846 days ago1526830867
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56423452018-05-19 20:27:322847 days ago1526761652
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56423402018-05-19 20:26:292847 days ago1526761589
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56423292018-05-19 20:22:192847 days ago1526761339
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56388542018-05-19 5:12:062848 days ago1526706726
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56248452018-05-16 18:05:432850 days ago1526493943
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56194262018-05-15 19:03:522851 days ago1526411032
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56194182018-05-15 19:00:462851 days ago1526410846
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56194102018-05-15 18:59:152851 days ago1526410755
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56193962018-05-15 18:55:472851 days ago1526410547
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56193882018-05-15 18:53:542851 days ago1526410434
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56149262018-05-15 0:07:352852 days ago1526342855
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56145572018-05-14 22:32:002852 days ago1526337120
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56144132018-05-14 21:56:012852 days ago1526334961
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56133722018-05-14 17:30:572852 days ago1526319057
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56133692018-05-14 17:30:362852 days ago1526319036
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56126292018-05-14 14:21:062852 days ago1526307666
0xDc1d53DC...FFAb77124
0.01 ETH
Transfer56126272018-05-14 14:20:402852 days ago1526307640
0xDc1d53DC...FFAb77124
0.01 ETH
View All Internal Transactions
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 Source Code Verified (Exact Match)

Contract Name:
ChipTreasury

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-05-02
*/

pragma solidity 0.4.23;

// File: zeppelin-solidity/contracts/ownership/Ownable.sol

/**
 * @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() public {
    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) public onlyOwner {
    require(newOwner != address(0));
    emit OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

// File: zeppelin-solidity/contracts/lifecycle/Pausable.sol

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
  event Pause();
  event Unpause();

  bool public paused = false;


  /**
   * @dev Modifier to make a function callable only when the contract is not paused.
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /**
   * @dev Modifier to make a function callable only when the contract is paused.
   */
  modifier whenPaused() {
    require(paused);
    _;
  }

  /**
   * @dev called by the owner to pause, triggers stopped state
   */
  function pause() onlyOwner whenNotPaused public {
    paused = true;
    emit Pause();
  }

  /**
   * @dev called by the owner to unpause, returns to normal state
   */
  function unpause() onlyOwner whenPaused public {
    paused = false;
    emit Unpause();
  }
}

// File: zeppelin-solidity/contracts/math/SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
    if (a == 0) {
      return 0;
    }
    c = a * b;
    assert(c / a == b);
    return c;
  }

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

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

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

// File: zeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol

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

// File: zeppelin-solidity/contracts/token/ERC20/BasicToken.sol

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

  mapping(address => uint256) balances;

  uint256 totalSupply_;

  /**
  * @dev total number of tokens in existence
  */
  function totalSupply() public view returns (uint256) {
    return totalSupply_;
  }

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) public returns (bool) {
    require(_to != address(0));
    require(_value <= balances[msg.sender]);

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

  /**
  * @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 view returns (uint256) {
    return balances[_owner];
  }

}

// File: zeppelin-solidity/contracts/token/ERC20/ERC20.sol

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public view 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);
}

// File: zeppelin-solidity/contracts/token/ERC20/StandardToken.sol

/**
 * @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(_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);
    emit 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;
    emit 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 view returns (uint256) {
    return allowed[_owner][_spender];
  }

  /**
   * @dev Increase the amount of tokens that an owner allowed to a 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
   * @param _spender The address which will spend the funds.
   * @param _addedValue The amount of tokens to increase the allowance by.
   */
  function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
    allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

  /**
   * @dev Decrease the amount of tokens that an owner allowed to a spender.
   *
   * approve should be called when allowed[_spender] == 0. To decrement
   * allowed value is better to use this function to avoid 2 calls (and wait until
   * the first transaction is mined)
   * From MonolithDAO Token.sol
   * @param _spender The address which will spend the funds.
   * @param _subtractedValue The amount of tokens to decrease the allowance by.
   */
  function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
    uint oldValue = allowed[msg.sender][_spender];
    if (_subtractedValue > oldValue) {
      allowed[msg.sender][_spender] = 0;
    } else {
      allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
    }
    emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
    return true;
  }

}

// File: contracts/ChipTreasury.sol

contract ChipTreasury is Pausable {
  using SafeMath for uint256;

  mapping(uint => Chip) public chips;
  uint                  public numChipsMinted;
  uint                  public numChipsClaimed;

  struct Chip {
    bytes32 hash;
    bool claimed;
  }

  event Deposit(address indexed sender, uint value);
  event Withdrawal(address indexed to, uint value);
  event TokenWithdrawal(address indexed to, address indexed token, uint value);

  event ChipMinted(uint indexed chipId);
  event ChipHashReplaced(uint indexed chipId, bytes32 newHash, bytes32 oldhash);
  event ChipClaimAttempt(address indexed sender, uint indexed chipId);
  event ChipClaimSuccess(address indexed sender, uint indexed chipId);

  constructor () public {
    paused = true;
  }

  function () public payable {
    if (msg.value > 0) emit Deposit(msg.sender, msg.value);
  }

  function claimChip (uint chipId, string password) public whenNotPaused {
    emit ChipClaimAttempt(msg.sender, chipId);
    // 1. Conditions
    require(isClaimed(chipId) == false);       // chip is unclaimed
    require(isChipPassword(chipId, password)); // sender has chip password

    // 2. Effects
    uint chipValue = getChipValue();           // get chip value
    numChipsClaimed = numChipsClaimed.add(1);  // increase claimed count
    chips[chipId].claimed = true;              // mark chip as claimed

    // 3. Interaction
    msg.sender.transfer(chipValue);            // send ether to the sender
    emit ChipClaimSuccess(msg.sender, chipId);
  }

  // NOTE: You must prefix hashes with '0x'
  function mintChip (bytes32 hash) public onlyOwner {
    chips[numChipsMinted] = Chip(hash, false);
    emit ChipMinted(numChipsMinted);
    numChipsMinted = numChipsMinted.add(1);
  }

  // Mint function that allows for transactions to come in out-of-order
  // However it is unsafe because a mistakenly high chipId could throw off numChipsMinted permanently
  // NOTE: You must prefix hashes with '0x'
  function mintChipUnsafely (uint chipId, bytes32 hash) public onlyOwner whenPaused {
    require(chips[chipId].hash == ""); // chip hash must initially be unset
    chips[chipId].hash = hash;
    emit ChipMinted(chipId);
    numChipsMinted = numChipsMinted.add(1);
  }

  // In case you mess something up during minting (╯°□°)╯︵ ┻━┻
  // NOTE: You must prefix hashes with '0x'
  function replaceChiphash (uint chipId, bytes32 newHash) public onlyOwner whenPaused {
    require(chips[chipId].hash != ""); // chip hash must not be unset
    bytes32 oldHash = chips[chipId].hash;
    chips[chipId].hash = newHash;
    emit ChipHashReplaced(chipId, newHash, oldHash);
  }

  function withdrawFunds (uint value) public onlyOwner {
    owner.transfer(value);
    emit Withdrawal(owner, value);
  }

  function withdrawTokens (address token, uint value) public onlyOwner {
    StandardToken(token).transfer(owner, value);
    emit TokenWithdrawal(owner, token, value);
  }

  function isClaimed (uint chipId) public view returns(bool) {
    return chips[chipId].claimed;
  }

  function getNumChips () public view returns(uint) {
    return numChipsMinted.sub(numChipsClaimed);
  }

  function getChipIds (bool isChipClaimed) public view returns(uint[]) {
    uint[] memory chipIdsTemp = new uint[](numChipsMinted);
    uint count = 0;
    uint i;

    // filter chips by isChipClaimed status
    for (i = 0; i < numChipsMinted; i++) {
      if (isChipClaimed == chips[i].claimed) {
        chipIdsTemp[count] = i;
        count += 1;
      }
    }

    // return array of filtered chip ids
    uint[] memory _chipIds = new uint[](count);
    for (i = 0; i < count; i++) _chipIds[i] = chipIdsTemp[i];
    return _chipIds;
  }

  function getChipValue () public view returns(uint) {
    uint numChips = getNumChips();
    if (numChips > 0) return address(this).balance.div(numChips);
    return 0;
  }

  function isChipPassword (uint chipId, string password) internal view returns(bool) {
    return chips[chipId].hash == keccak256(password);
  }

}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"token","type":"address"},{"name":"value","type":"uint256"}],"name":"withdrawTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"withdrawFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"chipId","type":"uint256"},{"name":"newHash","type":"bytes32"}],"name":"replaceChiphash","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"chipId","type":"uint256"},{"name":"hash","type":"bytes32"}],"name":"mintChipUnsafely","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"isChipClaimed","type":"bool"}],"name":"getChipIds","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"chipId","type":"uint256"},{"name":"password","type":"string"}],"name":"claimChip","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getNumChips","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"chips","outputs":[{"name":"hash","type":"bytes32"},{"name":"claimed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"hash","type":"bytes32"}],"name":"mintChip","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numChipsClaimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getChipValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"chipId","type":"uint256"}],"name":"isClaimed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"numChipsMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Withdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"token","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"TokenWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"chipId","type":"uint256"}],"name":"ChipMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"chipId","type":"uint256"},{"indexed":false,"name":"newHash","type":"bytes32"},{"indexed":false,"name":"oldhash","type":"bytes32"}],"name":"ChipHashReplaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"chipId","type":"uint256"}],"name":"ChipClaimAttempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"chipId","type":"uint256"}],"name":"ChipClaimSuccess","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405260008060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600060146101000a81548160ff0219169083151502179055506113a2806100956000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306b091f914610156578063155dd5ee146101a357806315cb75e3146101d05780631e04eee91461020b578063290c398f146102465780632bdcd90d146102ca57806330a3ce811461033d5780633f4ba83a1461036857806340d960501461037f5780635a70686a146103d35780635c975abb1461040457806378160d6b146104335780638456cb591461045e5780638da5cb5b146104755780639c8e1d50146104cc5780639e34070f146104f7578063f2fde38b1461053c578063fb9cb15d1461057f575b6000341115610154573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b34801561016257600080fd5b506101a1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105aa565b005b3480156101af57600080fd5b506101ce6004803603810190808035906020019092919050505061078f565b005b3480156101dc57600080fd5b506102096004803603810190808035906020019092919080356000191690602001909291905050506108c4565b005b34801561021757600080fd5b506102446004803603810190808035906020019092919080356000191690602001909291905050506109f3565b005b34801561025257600080fd5b50610273600480360381019080803515159060200190929190505050610afe565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102b657808201518184015260208101905061029b565b505050509050019250505060405180910390f35b3480156102d657600080fd5b5061033b60048036038101908080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c39565b005b34801561034957600080fd5b50610352610dae565b6040518082815260200191505060405180910390f35b34801561037457600080fd5b5061037d610dcc565b005b34801561038b57600080fd5b506103aa60048036038101908080359060200190929190505050610e8a565b604051808360001916600019168152602001821515151581526020019250505060405180910390f35b3480156103df57600080fd5b506104026004803603810190808035600019169060200190929190505050610ebb565b005b34801561041057600080fd5b50610419610fc8565b604051808215151515815260200191505060405180910390f35b34801561043f57600080fd5b50610448610fdb565b6040518082815260200191505060405180910390f35b34801561046a57600080fd5b50610473610fe1565b005b34801561048157600080fd5b5061048a6110a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d857600080fd5b506104e16110c6565b6040518082815260200191505060405180910390f35b34801561050357600080fd5b5061052260048036038101908080359060200190929190505050611116565b604051808215151515815260200191505060405180910390f35b34801561054857600080fd5b5061057d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611143565b005b34801561058b57600080fd5b50610594611298565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561060557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156106c957600080fd5b505af11580156106dd573d6000803e3d6000fd5b505050506040513d60208110156106f357600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f42856d0378dde02337bb59ae41747abc77ded8ebdbbc5cbdd1e53693b7554938836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107ea57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610851573d6000803e3d6000fd5b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092157600080fd5b600060149054906101000a900460ff16151561093c57600080fd5b60006001600085815260200190815260200160002060000154600019161415151561096657600080fd5b6001600084815260200190815260200160002060000154905081600160008581526020019081526020016000206000018160001916905550827f3368f123bc2ad97a0c76726a1e249fd44041cae01e1056afc462977d0093f43c838360405180836000191660001916815260200182600019166000191681526020019250505060405180910390a2505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a4e57600080fd5b600060149054906101000a900460ff161515610a6957600080fd5b6000600160008481526020019081526020016000206000015460001916141515610a9257600080fd5b80600160008481526020019081526020016000206000018160001916905550817fb7aeae2f01fb40038c35eeac3606c0707403ac76e46aa35d1ade5cebd53aeb6560405160405180910390a2610af4600160025461129e90919063ffffffff16565b6002819055505050565b6060806000806060600254604051908082528060200260200182016040528015610b375781602001602082028038833980820191505090505b50935060009250600091505b600254821015610bad576001600083815260200190815260200160002060010160009054906101000a900460ff1615158615151415610ba057818484815181101515610b8b57fe5b90602001906020020181815250506001830192505b8180600101925050610b43565b82604051908082528060200260200182016040528015610bdc5781602001602082028038833980820191505090505b509050600091505b82821015610c2d578382815181101515610bfa57fe5b906020019060200201518183815181101515610c1257fe5b90602001906020020181815250508180600101925050610be4565b80945050505050919050565b60008060149054906101000a900460ff16151515610c5657600080fd5b823373ffffffffffffffffffffffffffffffffffffffff167f22309f59fa3f7ccfac0b04bf4e51ff43c9ea2cab5fc46caa3ef8a85698b4c92260405160405180910390a360001515610ca784611116565b1515141515610cb557600080fd5b610cbf83836112ba565b1515610cca57600080fd5b610cd26110c6565b9050610cea600160035461129e90919063ffffffff16565b600381905550600180600085815260200190815260200160002060010160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d64573d6000803e3d6000fd5b50823373ffffffffffffffffffffffffffffffffffffffff167f044838236845b7a22c1f05ca45187b45a2d76d63beb0f1634a59ea6e888810f960405160405180910390a3505050565b6000610dc760035460025461134790919063ffffffff16565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2757600080fd5b600060149054906101000a900460ff161515610e4257600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1657600080fd5b604080519081016040528082600019168152602001600015158152506001600060025481526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548160ff0219169083151502179055509050506002547fb7aeae2f01fb40038c35eeac3606c0707403ac76e46aa35d1ade5cebd53aeb6560405160405180910390a2610fbf600160025461129e90919063ffffffff16565b60028190555050565b600060149054906101000a900460ff1681565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103c57600080fd5b600060149054906101000a900460ff1615151561105857600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110d1610dae565b9050600081111561110d57611106813073ffffffffffffffffffffffffffffffffffffffff163161136090919063ffffffff16565b9150611112565b600091505b5090565b60006001600083815260200190815260200160002060010160009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111da57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b600081830190508281101515156112b157fe5b80905092915050565b6000816040518082805190602001908083835b6020831015156112f257805182526020820191506020810190506020830392506112cd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660016000858152602001908152602001600020600001546000191614905092915050565b600082821115151561135557fe5b818303905092915050565b6000818381151561136d57fe5b049050929150505600a165627a7a723058200960049d5346e22ffb6bcf44e775ec27b2e661e45ee235ce26982e25396b0bc80029

Deployed Bytecode

0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306b091f914610156578063155dd5ee146101a357806315cb75e3146101d05780631e04eee91461020b578063290c398f146102465780632bdcd90d146102ca57806330a3ce811461033d5780633f4ba83a1461036857806340d960501461037f5780635a70686a146103d35780635c975abb1461040457806378160d6b146104335780638456cb591461045e5780638da5cb5b146104755780639c8e1d50146104cc5780639e34070f146104f7578063f2fde38b1461053c578063fb9cb15d1461057f575b6000341115610154573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b34801561016257600080fd5b506101a1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105aa565b005b3480156101af57600080fd5b506101ce6004803603810190808035906020019092919050505061078f565b005b3480156101dc57600080fd5b506102096004803603810190808035906020019092919080356000191690602001909291905050506108c4565b005b34801561021757600080fd5b506102446004803603810190808035906020019092919080356000191690602001909291905050506109f3565b005b34801561025257600080fd5b50610273600480360381019080803515159060200190929190505050610afe565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102b657808201518184015260208101905061029b565b505050509050019250505060405180910390f35b3480156102d657600080fd5b5061033b60048036038101908080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c39565b005b34801561034957600080fd5b50610352610dae565b6040518082815260200191505060405180910390f35b34801561037457600080fd5b5061037d610dcc565b005b34801561038b57600080fd5b506103aa60048036038101908080359060200190929190505050610e8a565b604051808360001916600019168152602001821515151581526020019250505060405180910390f35b3480156103df57600080fd5b506104026004803603810190808035600019169060200190929190505050610ebb565b005b34801561041057600080fd5b50610419610fc8565b604051808215151515815260200191505060405180910390f35b34801561043f57600080fd5b50610448610fdb565b6040518082815260200191505060405180910390f35b34801561046a57600080fd5b50610473610fe1565b005b34801561048157600080fd5b5061048a6110a1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d857600080fd5b506104e16110c6565b6040518082815260200191505060405180910390f35b34801561050357600080fd5b5061052260048036038101908080359060200190929190505050611116565b604051808215151515815260200191505060405180910390f35b34801561054857600080fd5b5061057d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611143565b005b34801561058b57600080fd5b50610594611298565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561060557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156106c957600080fd5b505af11580156106dd573d6000803e3d6000fd5b505050506040513d60208110156106f357600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f42856d0378dde02337bb59ae41747abc77ded8ebdbbc5cbdd1e53693b7554938836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107ea57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610851573d6000803e3d6000fd5b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040518082815260200191505060405180910390a250565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561092157600080fd5b600060149054906101000a900460ff16151561093c57600080fd5b60006001600085815260200190815260200160002060000154600019161415151561096657600080fd5b6001600084815260200190815260200160002060000154905081600160008581526020019081526020016000206000018160001916905550827f3368f123bc2ad97a0c76726a1e249fd44041cae01e1056afc462977d0093f43c838360405180836000191660001916815260200182600019166000191681526020019250505060405180910390a2505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a4e57600080fd5b600060149054906101000a900460ff161515610a6957600080fd5b6000600160008481526020019081526020016000206000015460001916141515610a9257600080fd5b80600160008481526020019081526020016000206000018160001916905550817fb7aeae2f01fb40038c35eeac3606c0707403ac76e46aa35d1ade5cebd53aeb6560405160405180910390a2610af4600160025461129e90919063ffffffff16565b6002819055505050565b6060806000806060600254604051908082528060200260200182016040528015610b375781602001602082028038833980820191505090505b50935060009250600091505b600254821015610bad576001600083815260200190815260200160002060010160009054906101000a900460ff1615158615151415610ba057818484815181101515610b8b57fe5b90602001906020020181815250506001830192505b8180600101925050610b43565b82604051908082528060200260200182016040528015610bdc5781602001602082028038833980820191505090505b509050600091505b82821015610c2d578382815181101515610bfa57fe5b906020019060200201518183815181101515610c1257fe5b90602001906020020181815250508180600101925050610be4565b80945050505050919050565b60008060149054906101000a900460ff16151515610c5657600080fd5b823373ffffffffffffffffffffffffffffffffffffffff167f22309f59fa3f7ccfac0b04bf4e51ff43c9ea2cab5fc46caa3ef8a85698b4c92260405160405180910390a360001515610ca784611116565b1515141515610cb557600080fd5b610cbf83836112ba565b1515610cca57600080fd5b610cd26110c6565b9050610cea600160035461129e90919063ffffffff16565b600381905550600180600085815260200190815260200160002060010160006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d64573d6000803e3d6000fd5b50823373ffffffffffffffffffffffffffffffffffffffff167f044838236845b7a22c1f05ca45187b45a2d76d63beb0f1634a59ea6e888810f960405160405180910390a3505050565b6000610dc760035460025461134790919063ffffffff16565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2757600080fd5b600060149054906101000a900460ff161515610e4257600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60016020528060005260406000206000915090508060000154908060010160009054906101000a900460ff16905082565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1657600080fd5b604080519081016040528082600019168152602001600015158152506001600060025481526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548160ff0219169083151502179055509050506002547fb7aeae2f01fb40038c35eeac3606c0707403ac76e46aa35d1ade5cebd53aeb6560405160405180910390a2610fbf600160025461129e90919063ffffffff16565b60028190555050565b600060149054906101000a900460ff1681565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103c57600080fd5b600060149054906101000a900460ff1615151561105857600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806110d1610dae565b9050600081111561110d57611106813073ffffffffffffffffffffffffffffffffffffffff163161136090919063ffffffff16565b9150611112565b600091505b5090565b60006001600083815260200190815260200160002060010160009054906101000a900460ff169050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561119e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156111da57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b600081830190508281101515156112b157fe5b80905092915050565b6000816040518082805190602001908083835b6020831015156112f257805182526020820191506020810190506020830392506112cd565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206000191660016000858152602001908152602001600020600001546000191614905092915050565b600082821115151561135557fe5b818303905092915050565b6000818381151561136d57fe5b049050929150505600a165627a7a723058200960049d5346e22ffb6bcf44e775ec27b2e661e45ee235ce26982e25396b0bc80029

Swarm Source

bzzr://0960049d5346e22ffb6bcf44e775ec27b2e661e45ee235ce26982e25396b0bc8

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.