ETH Price: $3,336.99 (-2.59%)

Contract

0x73B0eBEa28f76be1368d578D13657354330472A9
 

Overview

ETH Balance

0.004679874613522065 ETH

Eth Value

$15.62 (@ $3,336.99/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Purchase130417942021-08-17 9:01:231197 days ago1629190883IN
0x73B0eBEa...4330472A9
0.07799791 ETH0.0036910840
Withdraw Balance110131442020-10-08 5:42:371510 days ago1602135757IN
0x73B0eBEa...4330472A9
0 ETH0.0010464933
Withdraw Balance110131252020-10-08 5:39:381510 days ago1602135578IN
0x73B0eBEa...4330472A9
0 ETH0.0018503433
Transfer From109149212020-09-22 22:18:101526 days ago1600813090IN
0x73B0eBEa...4330472A9
0 ETH0.00267105102.3
Transfer From109149012020-09-22 22:13:021526 days ago1600812782IN
0x73B0eBEa...4330472A9
0 ETH0.00267105102.3
Approve88479762019-10-31 18:14:141853 days ago1572545654IN
0x73B0eBEa...4330472A9
0 ETH0.000031231
Approve88479762019-10-31 18:14:141853 days ago1572545654IN
0x73B0eBEa...4330472A9
0 ETH0.000046231
Approve81697232019-07-17 17:59:561959 days ago1563386396IN
0x73B0eBEa...4330472A9
0 ETH0.000046231
Approve80127422019-06-23 6:33:281983 days ago1561271608IN
0x73B0eBEa...4330472A9
0 ETH0.000046231.00001
Approve69290832018-12-21 22:43:202167 days ago1545432200IN
0x73B0eBEa...4330472A9
0 ETH0.00009712.1
Approve69290432018-12-21 22:35:532167 days ago1545431753IN
0x73B0eBEa...4330472A9
0 ETH0.000138713
Approve65919442018-10-27 7:54:102222 days ago1540626850IN
0x73B0eBEa...4330472A9
0 ETH0.000087462.8
Approve65918612018-10-27 7:34:092222 days ago1540625649IN
0x73B0eBEa...4330472A9
0 ETH0.000139173.01
Purchase62487192018-08-31 21:17:162279 days ago1535750236IN
0x73B0eBEa...4330472A9
0.27627637 ETH0.000174282.5998
Purchase62487132018-08-31 21:15:022279 days ago1535750102IN
0x73B0eBEa...4330472A9
0.06109836 ETH0.000135282.5998
Purchase62487092018-08-31 21:14:092279 days ago1535750049IN
0x73B0eBEa...4330472A9
0.04254256 ETH0.00017372.6000001
Purchase62484572018-08-31 20:13:252279 days ago1535746405IN
0x73B0eBEa...4330472A9
0.06109836 ETH0.000167592.5
Purchase62484532018-08-31 20:12:582279 days ago1535746378IN
0x73B0eBEa...4330472A9
0.10402319 ETH0.000167592.5
Approve61553022018-08-16 2:32:482294 days ago1534386768IN
0x73B0eBEa...4330472A9
0 ETH0.000138713
Approve61245462018-08-10 21:27:502300 days ago1533936470IN
0x73B0eBEa...4330472A9
0 ETH0.000124954
Approve61245232018-08-10 21:21:412300 days ago1533936101IN
0x73B0eBEa...4330472A9
0 ETH0.0006247820
Purchase60951172018-08-05 22:16:202305 days ago1533507380IN
0x73B0eBEa...4330472A9
0.20715553 ETH0.000082031
Approve60867142018-08-04 12:14:142306 days ago1533384854IN
0x73B0eBEa...4330472A9
0 ETH0.000049981.6
Approve60839742018-08-04 1:22:442306 days ago1533345764IN
0x73B0eBEa...4330472A9
0 ETH0.000031231
Approve60838112018-08-04 0:45:582306 days ago1533343558IN
0x73B0eBEa...4330472A9
0 ETH0.000031231
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
130417942021-08-17 9:01:231197 days ago1629190883
0x73B0eBEa...4330472A9
0.07331803 ETH
110131442020-10-08 5:42:371510 days ago1602135757
0x73B0eBEa...4330472A9
3.90560187 ETH
110131252020-10-08 5:39:381510 days ago1602135578
0x73B0eBEa...4330472A9
0.1 ETH
62487192018-08-31 21:17:162279 days ago1535750236
0x73B0eBEa...4330472A9
0.25969979 ETH
62487132018-08-31 21:15:022279 days ago1535750102
0x73B0eBEa...4330472A9
0.05743246 ETH
62487092018-08-31 21:14:092279 days ago1535750049
0x73B0eBEa...4330472A9
0.03999001 ETH
62484572018-08-31 20:13:252279 days ago1535746405
0x73B0eBEa...4330472A9
0.05743246 ETH
62484532018-08-31 20:12:582279 days ago1535746378
0x73B0eBEa...4330472A9
0.0977818 ETH
60951172018-08-05 22:16:202305 days ago1533507380
0x73B0eBEa...4330472A9
0.1947262 ETH
60356832018-07-26 22:03:002315 days ago1532642580
0x73B0eBEa...4330472A9
0.03999001 ETH
57435812018-06-06 19:02:192365 days ago1528311739
0x73B0eBEa...4330472A9
0.01938829 ETH
55652162018-05-06 8:20:352396 days ago1525594835
0x73B0eBEa...4330472A9
3.95 ETH
52101482018-03-07 2:37:102456 days ago1520390230
0x73B0eBEa...4330472A9
0.03999001 ETH
52074522018-03-06 15:37:292457 days ago1520350649
0x73B0eBEa...4330472A9
0.03999001 ETH
52074512018-03-06 15:37:202457 days ago1520350640
0x73B0eBEa...4330472A9
0.02784489 ETH
52074472018-03-06 15:36:542457 days ago1520350614
0x73B0eBEa...4330472A9
0.02784489 ETH
52050292018-03-06 5:42:272457 days ago1520314947
0x73B0eBEa...4330472A9
0.02784489 ETH
52036812018-03-06 0:15:382457 days ago1520295338
0x73B0eBEa...4330472A9
0.01938829 ETH
52036802018-03-06 0:15:222457 days ago1520295322
0x73B0eBEa...4330472A9
0.01938829 ETH
52029592018-03-05 21:13:142458 days ago1520284394
0x73B0eBEa...4330472A9
0.01938829 ETH
52029542018-03-05 21:12:062458 days ago1520284326
0x73B0eBEa...4330472A9
0.0135 ETH
52029512018-03-05 21:11:222458 days ago1520284282
0x73B0eBEa...4330472A9
0.0135 ETH
52029092018-03-05 21:01:242458 days ago1520283684
0x73B0eBEa...4330472A9
0.0135 ETH
52027942018-03-05 20:34:112458 days ago1520282051
0x73B0eBEa...4330472A9
0.0135 ETH
52015012018-03-05 15:27:302458 days ago1520263650
0x73B0eBEa...4330472A9
0.03999001 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoArtsToken

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-02-14
*/

pragma solidity ^0.4.18;
// inspired by
// https://github.com/axiomzen/cryptokitties-bounty/blob/master/contracts/KittyAccessControl.sol

contract AccessControl {
  /// @dev The addresses of the accounts (or contracts) that can execute actions within each roles
  address public ceoAddress;
  address public cooAddress;

  /// @dev Keeps track whether the contract is paused. When that is true, most actions are blocked
  bool public paused = false;

  /// @dev The AccessControl constructor sets the original C roles of the contract to the sender account
  function AccessControl() public {
    ceoAddress = msg.sender;
    cooAddress = msg.sender;
  }

  /// @dev Access modifier for CEO-only functionality
  modifier onlyCEO() {
    require(msg.sender == ceoAddress);
    _;
  }

  /// @dev Access modifier for COO-only functionality
  modifier onlyCOO() {
    require(msg.sender == cooAddress);
    _;
  }

  /// @dev Access modifier for any CLevel functionality
  modifier onlyCLevel() {
    require(msg.sender == ceoAddress || msg.sender == cooAddress);
    _;
  }

  /// @dev Assigns a new address to act as the CEO. Only available to the current CEO
  /// @param _newCEO The address of the new CEO
  function setCEO(address _newCEO) public onlyCEO {
    require(_newCEO != address(0));
    ceoAddress = _newCEO;
  }

  /// @dev Assigns a new address to act as the COO. Only available to the current CEO
  /// @param _newCOO The address of the new COO
  function setCOO(address _newCOO) public onlyCEO {
    require(_newCOO != address(0));
    cooAddress = _newCOO;
  }

  /// @dev Modifier to allow actions only when the contract IS NOT paused
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

  /// @dev Modifier to allow actions only when the contract IS paused
  modifier whenPaused {
    require(paused);
    _;
  }

  /// @dev Pause the smart contract. Only can be called by the CEO
  function pause() public onlyCEO whenNotPaused {
     paused = true;
  }

  /// @dev Unpauses the smart contract. Only can be called by the CEO
  function unpause() public onlyCEO whenPaused {
    paused = false;
  }
}


// https://github.com/dharmaprotocol/NonFungibleToken/blob/master/contracts/ERC721.sol
// https://github.com/dharmaprotocol/NonFungibleToken/blob/master/contracts/DetailedERC721.sol

/**
 * Interface for required functionality in the ERC721 standard
 * for non-fungible tokens.
 *
 * Author: Nadav Hollander (nadav at dharma.io)
 */
contract ERC721 {
    // Events
    event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);

    /// For querying totalSupply of token.
    function totalSupply() public view returns (uint256 _totalSupply);

    /// For querying balance of a particular account.
    /// @param _owner The address for balance query.
    /// @dev Required for ERC-721 compliance.
    function balanceOf(address _owner) public view returns (uint256 _balance);

    /// For querying owner of token.
    /// @param _tokenId The tokenID for owner inquiry.
    /// @dev Required for ERC-721 compliance.
    function ownerOf(uint256 _tokenId) public view returns (address _owner);

    /// @notice Grant another address the right to transfer token via takeOwnership() and transferFrom()
    /// @param _to The address to be granted transfer approval. Pass address(0) to
    ///  clear all approvals.
    /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
    /// @dev Required for ERC-721 compliance.
    function approve(address _to, uint256 _tokenId) public;

    // NOT IMPLEMENTED
    // function getApproved(uint256 _tokenId) public view returns (address _approved);

    /// Third-party initiates transfer of token from address _from to address _to.
    /// @param _from The address for the token to be transferred from.
    /// @param _to The address for the token to be transferred to.
    /// @param _tokenId The ID of the Token that can be transferred if this call succeeds.
    /// @dev Required for ERC-721 compliance.
    function transferFrom(address _from, address _to, uint256 _tokenId) public;

    /// Owner initates the transfer of the token to another account.
    /// @param _to The address of the recipient, can be a user or contract.
    /// @param _tokenId The ID of the token to transfer.
    /// @dev Required for ERC-721 compliance.
    function transfer(address _to, uint256 _tokenId) public;

    ///
    function implementsERC721() public view returns (bool _implementsERC721);

    // EXTRA
    /// @notice Allow pre-approved user to take ownership of a token.
    /// @param _tokenId The ID of the token that can be transferred if this call succeeds.
    /// @dev Required for ERC-721 compliance.
    function takeOwnership(uint256 _tokenId) public;
}

/**
 * Interface for optional functionality in the ERC721 standard
 * for non-fungible tokens.
 *
 * Author: Nadav Hollander (nadav at dharma.io)
 */
contract DetailedERC721 is ERC721 {
    function name() public view returns (string _name);
    function symbol() public view returns (string _symbol);
    // function tokenMetadata(uint256 _tokenId) public view returns (string _infoUrl);
    // function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256 _tokenId);
}


contract CryptoArtsToken is AccessControl, DetailedERC721 {
  using SafeMath for uint256;

  /// @dev The TokenCreated event is fired whenever a new token is created.
  event TokenCreated(uint256 tokenId, string name, uint256 price, address owner);

  /// @dev The TokenSold event is fired whenever a token is sold.
  event TokenSold(uint256 indexed tokenId, string name, uint256 sellingPrice,
   uint256 newPrice, address indexed oldOwner, address indexed newOwner);


  /// @dev A mapping from tokenIds to the address that owns them. All tokens have
  ///  some valid owner address.
  mapping (uint256 => address) private tokenIdToOwner;

  /// @dev A mapping from TokenIds to the price of the token.
  mapping (uint256 => uint256) private tokenIdToPrice;

  /// @dev A mapping from owner address to count of tokens that address owns.
  ///  Used internally inside balanceOf() to resolve ownership count.
  mapping (address => uint256) private ownershipTokenCount;

  /// @dev A mapping from TokenIds to an address that has been approved to call
  ///  transferFrom(). Each Token can only have one approved address for transfer
  ///  at any time. A zero value means no approval is outstanding
  mapping (uint256 => address) public tokenIdToApproved;


  struct Art {
    string name;
  }
  Art[] private arts;

  uint256 private startingPrice = 0.01 ether;
  bool private erc721Enabled = false;

  modifier onlyERC721() {
    require(erc721Enabled);
    _;
  }

  /// @dev Creates a new token with the given name and _price and assignes it to an _owner.
  function createToken(string _name, address _owner, uint256 _price) public onlyCLevel {
    require(_owner != address(0));
    require(_price >= startingPrice);

    _createToken(_name, _owner, _price);
  }

  /// @dev Creates a new token with the given name.
  function createToken(string _name) public onlyCLevel {
    _createToken(_name, address(this), startingPrice);
  }

  function _createToken(string _name, address _owner, uint256 _price) private {
    Art memory _art = Art({
      name: _name
    });
    uint256 newTokenId = arts.push(_art) - 1;
    tokenIdToPrice[newTokenId] = _price;

    TokenCreated(newTokenId, _name, _price, _owner);

    // This will assign ownership, and also emit the Transfer event as per ERC721 draft
    _transfer(address(0), _owner, newTokenId);
  }

  function getToken(uint256 _tokenId) public view returns (
    string _tokenName,
    uint256 _price,
    uint256 _nextPrice,
    address _owner
  ) {
    _tokenName = arts[_tokenId].name;
    _price = tokenIdToPrice[_tokenId];
    _nextPrice = nextPriceOf(_tokenId);
    _owner = tokenIdToOwner[_tokenId];
  }

  function getAllTokens() public view returns (
      uint256[],
      uint256[],
      address[]
  ) {
      uint256 total = totalSupply();
      uint256[] memory prices = new uint256[](total);
      uint256[] memory nextPrices = new uint256[](total);
      address[] memory owners = new address[](total);

      for (uint256 i = 0; i < total; i++) {
          prices[i] = tokenIdToPrice[i];
          nextPrices[i] = nextPriceOf(i);
          owners[i] = tokenIdToOwner[i];
      }

      return (prices, nextPrices, owners);
  }

  function tokensOf(address _owner) public view returns(uint256[]) {
    uint256 tokenCount = balanceOf(_owner);
    if (tokenCount == 0) {
        // Return an empty array
      return new uint256[](0);
    } else {
      uint256[] memory result = new uint256[](tokenCount);
      uint256 total = totalSupply();
      uint256 resultIndex = 0;

      for (uint256 i = 0; i < total; i++) {
        if (tokenIdToOwner[i] == _owner) {
          result[resultIndex] = i;
          resultIndex++;
        }
      }
      return result;
    }
  }

  /// @dev This function withdraws the contract owner's cut.
  /// Any amount may be withdrawn as there is no user funds.
  /// User funds are immediately sent to the old owner in `purchase`
  function withdrawBalance(address _to, uint256 _amount) public onlyCEO {
    require(_amount <= this.balance);

    if (_amount == 0) {
      _amount = this.balance;
    }

    if (_to == address(0)) {
      ceoAddress.transfer(_amount);
    } else {
      _to.transfer(_amount);
    }
  }

  // Send ether and obtain the token
  function purchase(uint256 _tokenId) public payable whenNotPaused {
    address oldOwner = ownerOf(_tokenId);
    address newOwner = msg.sender;
    uint256 sellingPrice = priceOf(_tokenId);

    // active tokens
    require(oldOwner != address(0));
    // maybe one day newOwner's logic allows this to happen
    require(newOwner != address(0));
    // don't buy from yourself
    require(oldOwner != newOwner);
    // don't sell to contracts
    // but even this doesn't prevent bad contracts to become an owner of a token
    require(!_isContract(newOwner));
    // another check to be sure that token is active
    require(sellingPrice > 0);
    // min required amount check
    require(msg.value >= sellingPrice);

    // transfer to the new owner
    _transfer(oldOwner, newOwner, _tokenId);
    // update fields before emitting an event
    tokenIdToPrice[_tokenId] = nextPriceOf(_tokenId);
    // emit event
    TokenSold(_tokenId, arts[_tokenId].name, sellingPrice, priceOf(_tokenId), oldOwner, newOwner);

    // extra ether which should be returned back to buyer
    uint256 excess = msg.value.sub(sellingPrice);
    // contract owner's cut which is left in contract and accesed by withdrawBalance
    uint256 contractCut = sellingPrice.mul(6).div(100); // 6%

    // no need to transfer if it's initial sell
    if (oldOwner != address(this)) {
      // transfer payment to seller minus the contract's cut
      oldOwner.transfer(sellingPrice.sub(contractCut));
    }

    // return extra ether
    if (excess > 0) {
      newOwner.transfer(excess);
    }
  }

  function priceOf(uint256 _tokenId) public view returns (uint256 _price) {
    return tokenIdToPrice[_tokenId];
  }

  uint256 private increaseLimit1 = 0.05 ether;
  uint256 private increaseLimit2 = 0.5 ether;
  uint256 private increaseLimit3 = 5 ether;

  function nextPriceOf(uint256 _tokenId) public view returns (uint256 _nextPrice) {
    uint256 price = priceOf(_tokenId);
    if (price < increaseLimit1) {
      return price.mul(135).div(94);
    } else if (price < increaseLimit2) {
      return price.mul(120).div(94);
    } else if (price < increaseLimit3) {
      return price.mul(118).div(94);
    } else {
      return price.mul(116).div(94);
    }
  }


  /*** ERC-721 ***/
  // Unlocks ERC721 behaviour, allowing for trading on third party platforms.
  function enableERC721() onlyCEO public {
    erc721Enabled = true;
  }

  function totalSupply() public view returns (uint256 _totalSupply) {
    _totalSupply = arts.length;
  }

  function balanceOf(address _owner) public view returns (uint256 _balance) {
    _balance = ownershipTokenCount[_owner];
  }

  function ownerOf(uint256 _tokenId) public view returns (address _owner) {
    _owner = tokenIdToOwner[_tokenId];
    // require(_owner != address(0));
  }

  function approve(address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
    require(_owns(msg.sender, _tokenId));

    tokenIdToApproved[_tokenId] = _to;

    Approval(msg.sender, _to, _tokenId);
  }

  function transferFrom(address _from, address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
    require(_to != address(0));
    require(_owns(_from, _tokenId));
    require(_approved(msg.sender, _tokenId));

    _transfer(_from, _to, _tokenId);
  }

  function transfer(address _to, uint256 _tokenId) public whenNotPaused onlyERC721 {
      require(_to != address(0));
      require(_owns(msg.sender, _tokenId));

      // Reassign ownership, clear pending approvals, emit Transfer event.
      _transfer(msg.sender, _to, _tokenId);
  }

  function implementsERC721() public view whenNotPaused returns (bool) {
    return erc721Enabled;
  }

  function takeOwnership(uint256 _tokenId) public whenNotPaused onlyERC721 {
    require(_approved(msg.sender, _tokenId));

    _transfer(tokenIdToOwner[_tokenId], msg.sender, _tokenId);
  }

  function name() public view returns (string _name) {
    _name = "CryptoArts";
  }

  function symbol() public view returns (string _symbol) {
    _symbol = "XART";
  }


  /*** PRIVATES ***/
  /// @dev Check for token ownership.
  function _owns(address _claimant, uint256 _tokenId) private view returns (bool) {
      return tokenIdToOwner[_tokenId] == _claimant;
  }

  /// @dev For checking approval of transfer for address _to.
  function _approved(address _to, uint256 _tokenId) private view returns (bool) {
    return tokenIdToApproved[_tokenId] == _to;
  }

  /// @dev Assigns ownership of a specific token to an address.
  function _transfer(address _from, address _to, uint256 _tokenId) private {
    // Since the number of tokens is capped to 2^32 we can't overflow this
    ownershipTokenCount[_to]++;
    // Transfer ownership
    tokenIdToOwner[_tokenId] = _to;

    // When creating new token _from is 0x0, but we can't account that address.
    if (_from != address(0)) {
      ownershipTokenCount[_from]--;
      // clear any previously approved ownership exchange
      delete tokenIdToApproved[_tokenId];
    }

    // Emit the transfer event.
    Transfer(_from, _to, _tokenId);
  }

  /// @dev Checks if the address ia a contract or not
  function _isContract(address addr) private view returns (bool) {
    uint256 size;
    assembly { size := extcodesize(addr) }
    return size > 0;
  }
}


// https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
// v1.6.0

/**
 * @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) {
    if (a == 0) {
      return 0;
    }
    uint256 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 c;
  }

  /**
  * @dev Substracts 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) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ceoAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newCEO","type":"address"}],"name":"setCEO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAllTokens","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newCOO","type":"address"}],"name":"setCOO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"createToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOf","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"nextPriceOf","outputs":[{"name":"_nextPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"_balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableERC721","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"}],"name":"createToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cooAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"takeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOf","outputs":[{"name":"_price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getToken","outputs":[{"name":"_tokenName","type":"string"},{"name":"_price","type":"uint256"},{"name":"_nextPrice","type":"uint256"},{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"owner","type":"address"}],"name":"TokenCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"sellingPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":true,"name":"oldOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"TokenSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

60606040526000600160146101000a81548160ff021916908315150217905550662386f26fc100006007556000600860006101000a81548160ff02191690831515021790555066b1a2bc2ec500006009556706f05b59d3b20000600a55674563918244f40000600b55336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506124e4806100f86000396000f30060606040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101fd5780630a0f81681461023f5780630cf20cc9146102945780631051db34146102d657806318160ddd1461030357806323b872dd1461032c57806327d7874c1461038d5780632a5c792a146103c65780632ba73c15146104c05780633f4ba83a146104f957806345576f941461050e5780635a3f26721461056b5780635ba9e48e146105f95780635c975abb146106305780636352211e1461065d57806370a08231146106c057806371dc761e1461070d57806373b4df05146107225780638456cb59146107a757806395d89b41146107bc578063a9059cbb1461084a578063b047fb501461088c578063b2e6ceeb146108e1578063b9186d7d14610904578063e4b50cb81461093b578063eb5653d714610a18578063efef39a114610a7b575b600080fd5b341561017a57600080fd5b610182610a93565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020857600080fd5b61023d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ad6565b005b341561024a57600080fd5b610252610bdd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561029f57600080fd5b6102d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c02565b005b34156102e157600080fd5b6102e9610d87565b604051808215151515815260200191505060405180910390f35b341561030e57600080fd5b610316610dba565b6040518082815260200191505060405180910390f35b341561033757600080fd5b61038b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610dc7565b005b341561039857600080fd5b6103c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e74565b005b34156103d157600080fd5b6103d9610f4e565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610424578082015181840152602081019050610409565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561046657808201518184015260208101905061044b565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156104a857808201518184015260208101905061048d565b50505050905001965050505050505060405180910390f35b34156104cb57600080fd5b6104f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110ef565b005b341561050457600080fd5b61050c6111ca565b005b341561051957600080fd5b610569600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061125d565b005b341561057657600080fd5b6105a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611320565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105e55780820151818401526020810190506105ca565b505050509050019250505060405180910390f35b341561060457600080fd5b61061a6004808035906020019091905050611456565b6040518082815260200191505060405180910390f35b341561063b57600080fd5b61064361153c565b604051808215151515815260200191505060405180910390f35b341561066857600080fd5b61067e600480803590602001909190505061154f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106cb57600080fd5b6106f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061158c565b6040518082815260200191505060405180910390f35b341561071857600080fd5b6107206115d5565b005b341561072d57600080fd5b6107a5600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061164d565b005b34156107b257600080fd5b6107ba61175d565b005b34156107c757600080fd5b6107cf6117f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561080f5780820151818401526020810190506107f4565b50505050905090810190601f16801561083c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561085557600080fd5b61088a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611833565b005b341561089757600080fd5b61089f6118ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108ec57600080fd5b61090260048080359060200190919050506118f0565b005b341561090f57600080fd5b610925600480803590602001909190505061197d565b6040518082815260200191505060405180910390f35b341561094657600080fd5b61095c600480803590602001909190505061199a565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b838110156109da5780820151818401526020810190506109bf565b50505050905090810190601f168015610a075780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3415610a2357600080fd5b610a396004808035906020019091905050611abd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a916004808035906020019091905050611af0565b005b610a9b612306565b6040805190810160405280600a81526020017f43727970746f4172747300000000000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff16151515610af257600080fd5b600860009054906101000a900460ff161515610b0d57600080fd5b610b173382611e72565b1515610b2257600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c5d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111151515610c8357600080fd5b6000811415610ca7573073ffffffffffffffffffffffffffffffffffffffff163190505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d42576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d3d57600080fd5b610d83565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d8257600080fd5b5b5050565b6000600160149054906101000a900460ff16151515610da557600080fd5b600860009054906101000a900460ff16905090565b6000600680549050905090565b600160149054906101000a900460ff16151515610de357600080fd5b600860009054906101000a900460ff161515610dfe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e3a57600080fd5b610e448382611e72565b1515610e4f57600080fd5b610e593382611ede565b1515610e6457600080fd5b610e6f838383611f4a565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ecf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f0b57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f5661231a565b610f5e61231a565b610f6661232e565b6000610f7061231a565b610f7861231a565b610f8061232e565b6000610f8a610dba565b945084604051805910610f9a5750595b9080825280602002602001820160405250935084604051805910610fbb5750595b9080825280602002602001820160405250925084604051805910610fdc5750595b90808252806020026020018201604052509150600090505b848110156110dc576003600082815260200190815260200160002054848281518110151561101e57fe5b906020019060200201818152505061103581611456565b838281518110151561104357fe5b90602001906020020181815250506002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110151561109357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610ff4565b8383839750975097505050505050909192565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561118657600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561122557600080fd5b600160149054906101000a900460ff16151561124057600080fd5b6000600160146101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113055750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561131057600080fd5b61131d8130600754612112565b50565b61132861231a565b600061133261231a565b60008060006113408761158c565b9450600085141561137257600060405180591061135a5750595b9080825280602002602001820160405250955061144c565b846040518059106113805750595b9080825280602002602001820160405250935061139b610dba565b925060009150600090505b82811015611448578673ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561143b5780848381518110151561142457fe5b906020019060200201818152505081806001019250505b80806001019150506113a6565b8395505b5050505050919050565b6000806114628361197d565b905060095481101561149c57611495605e61148760878461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b600a548110156114d4576114cd605e6114bf60788461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b600b5481101561150c57611505605e6114f760768461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b611533605e61152560748461228490919063ffffffff16565b6122bf90919063ffffffff16565b91505b50919050565b600160149054906101000a900460ff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163057600080fd5b6001600860006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116f55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561170057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561173c57600080fd5b600754811015151561174d57600080fd5b611758838383612112565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b857600080fd5b600160149054906101000a900460ff161515156117d457600080fd5b60018060146101000a81548160ff021916908315150217905550565b6117f8612306565b6040805190810160405280600481526020017f5841525400000000000000000000000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff1615151561184f57600080fd5b600860009054906101000a900460ff16151561186a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156118a657600080fd5b6118b03382611e72565b15156118bb57600080fd5b6118c6338383611f4a565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160149054906101000a900460ff1615151561190c57600080fd5b600860009054906101000a900460ff16151561192757600080fd5b6119313382611ede565b151561193c57600080fd5b61197a6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163383611f4a565b50565b600060036000838152602001908152602001600020549050919050565b6119a2612306565b60008060006006858154811015156119b657fe5b90600052602060002090016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a585780601f10611a2d57610100808354040283529160200191611a58565b820191906000526020600020905b815481529060010190602001808311611a3b57829003601f168201915b5050505050935060036000868152602001908152602001600020549250611a7e85611456565b91506002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690509193509193565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600160149054906101000a900460ff16151515611b1457600080fd5b611b1d8661154f565b9450339350611b2b8661197d565b9250600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611b6957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611ba557600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611be057600080fd5b611be9846122da565b151515611bf557600080fd5b600083111515611c0457600080fd5b823410151515611c1357600080fd5b611c1e858588611f4a565b611c2786611456565b60036000888152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16877fef3f7c55f619f7c9178e080691f6d9bc90a74668d32c107dea7c87da023c9a0f60068a815481101515611c9d57fe5b906000526020600020900160000187611cb58c61197d565b6040518080602001848152602001838152602001828103825285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611d4a5780601f10611d1f57610100808354040283529160200191611d4a565b820191906000526020600020905b815481529060010190602001808311611d2d57829003601f168201915b505094505050505060405180910390a4611d6d83346122ed90919063ffffffff16565b9150611d966064611d8860068661228490919063ffffffff16565b6122bf90919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611e20578473ffffffffffffffffffffffffffffffffffffffff166108fc611dfa83866122ed90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611e1f57600080fd5b5b6000821115611e6a578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611e6957600080fd5b5b505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156120a857600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b61211a612342565b6000602060405190810160405280868152509150600160068054806001018281612144919061235c565b916000526020600020900160008590919091506000820151816000019080519060200190612173929190612388565b5050500390508260036000838152602001908152602001600020819055507fd306967beeb39489cb6724748118d29c59bd0f0e17a5dd711b4f4d3dea3a1c478186858760405180858152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015612234578082015181840152602081019050612219565b50505050905090810190601f1680156122615780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a161227d60008583611f4a565b5050505050565b600080600084141561229957600091506122b8565b82840290508284828115156122aa57fe5b041415156122b457fe5b8091505b5092915050565b60008082848115156122cd57fe5b0490508091505092915050565b600080823b905060008111915050919050565b60008282111515156122fb57fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280612356612408565b81525090565b81548183558181151161238357818360005260206000209182019101612382919061241c565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106123c957805160ff19168380011785556123f7565b828001600101855582156123f7579182015b828111156123f65782518255916020019190600101906123db565b5b509050612404919061244b565b5090565b602060405190810160405280600081525090565b61244891905b80821115612444576000808201600061243b9190612470565b50600101612422565b5090565b90565b61246d91905b80821115612469576000816000905550600101612451565b5090565b90565b50805460018160011615610100020316600290046000825580601f1061249657506124b5565b601f0160209004906000526020600020908101906124b4919061244b565b5b505600a165627a7a72305820f75947c10751da17b9f6cd9202d827b1ed0eca753a4ad9efc1812c60129bd36e0029

Deployed Bytecode

0x60606040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101fd5780630a0f81681461023f5780630cf20cc9146102945780631051db34146102d657806318160ddd1461030357806323b872dd1461032c57806327d7874c1461038d5780632a5c792a146103c65780632ba73c15146104c05780633f4ba83a146104f957806345576f941461050e5780635a3f26721461056b5780635ba9e48e146105f95780635c975abb146106305780636352211e1461065d57806370a08231146106c057806371dc761e1461070d57806373b4df05146107225780638456cb59146107a757806395d89b41146107bc578063a9059cbb1461084a578063b047fb501461088c578063b2e6ceeb146108e1578063b9186d7d14610904578063e4b50cb81461093b578063eb5653d714610a18578063efef39a114610a7b575b600080fd5b341561017a57600080fd5b610182610a93565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c25780820151818401526020810190506101a7565b50505050905090810190601f1680156101ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561020857600080fd5b61023d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610ad6565b005b341561024a57600080fd5b610252610bdd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561029f57600080fd5b6102d4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610c02565b005b34156102e157600080fd5b6102e9610d87565b604051808215151515815260200191505060405180910390f35b341561030e57600080fd5b610316610dba565b6040518082815260200191505060405180910390f35b341561033757600080fd5b61038b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610dc7565b005b341561039857600080fd5b6103c4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e74565b005b34156103d157600080fd5b6103d9610f4e565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b83811015610424578082015181840152602081019050610409565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561046657808201518184015260208101905061044b565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156104a857808201518184015260208101905061048d565b50505050905001965050505050505060405180910390f35b34156104cb57600080fd5b6104f7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506110ef565b005b341561050457600080fd5b61050c6111ca565b005b341561051957600080fd5b610569600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061125d565b005b341561057657600080fd5b6105a2600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611320565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105e55780820151818401526020810190506105ca565b505050509050019250505060405180910390f35b341561060457600080fd5b61061a6004808035906020019091905050611456565b6040518082815260200191505060405180910390f35b341561063b57600080fd5b61064361153c565b604051808215151515815260200191505060405180910390f35b341561066857600080fd5b61067e600480803590602001909190505061154f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106cb57600080fd5b6106f7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061158c565b6040518082815260200191505060405180910390f35b341561071857600080fd5b6107206115d5565b005b341561072d57600080fd5b6107a5600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061164d565b005b34156107b257600080fd5b6107ba61175d565b005b34156107c757600080fd5b6107cf6117f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561080f5780820151818401526020810190506107f4565b50505050905090810190601f16801561083c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561085557600080fd5b61088a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611833565b005b341561089757600080fd5b61089f6118ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156108ec57600080fd5b61090260048080359060200190919050506118f0565b005b341561090f57600080fd5b610925600480803590602001909190505061197d565b6040518082815260200191505060405180910390f35b341561094657600080fd5b61095c600480803590602001909190505061199a565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b838110156109da5780820151818401526020810190506109bf565b50505050905090810190601f168015610a075780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3415610a2357600080fd5b610a396004808035906020019091905050611abd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a916004808035906020019091905050611af0565b005b610a9b612306565b6040805190810160405280600a81526020017f43727970746f4172747300000000000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff16151515610af257600080fd5b600860009054906101000a900460ff161515610b0d57600080fd5b610b173382611e72565b1515610b2257600080fd5b816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a35050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c5d57600080fd5b3073ffffffffffffffffffffffffffffffffffffffff16318111151515610c8357600080fd5b6000811415610ca7573073ffffffffffffffffffffffffffffffffffffffff163190505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d42576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d3d57600080fd5b610d83565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d8257600080fd5b5b5050565b6000600160149054906101000a900460ff16151515610da557600080fd5b600860009054906101000a900460ff16905090565b6000600680549050905090565b600160149054906101000a900460ff16151515610de357600080fd5b600860009054906101000a900460ff161515610dfe57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e3a57600080fd5b610e448382611e72565b1515610e4f57600080fd5b610e593382611ede565b1515610e6457600080fd5b610e6f838383611f4a565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ecf57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610f0b57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610f5661231a565b610f5e61231a565b610f6661232e565b6000610f7061231a565b610f7861231a565b610f8061232e565b6000610f8a610dba565b945084604051805910610f9a5750595b9080825280602002602001820160405250935084604051805910610fbb5750595b9080825280602002602001820160405250925084604051805910610fdc5750595b90808252806020026020018201604052509150600090505b848110156110dc576003600082815260200190815260200160002054848281518110151561101e57fe5b906020019060200201818152505061103581611456565b838281518110151561104357fe5b90602001906020020181815250506002600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110151561109357fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610ff4565b8383839750975097505050505050909192565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561118657600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561122557600080fd5b600160149054906101000a900460ff16151561124057600080fd5b6000600160146101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806113055750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561131057600080fd5b61131d8130600754612112565b50565b61132861231a565b600061133261231a565b60008060006113408761158c565b9450600085141561137257600060405180591061135a5750595b9080825280602002602001820160405250955061144c565b846040518059106113805750595b9080825280602002602001820160405250935061139b610dba565b925060009150600090505b82811015611448578673ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561143b5780848381518110151561142457fe5b906020019060200201818152505081806001019250505b80806001019150506113a6565b8395505b5050505050919050565b6000806114628361197d565b905060095481101561149c57611495605e61148760878461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b600a548110156114d4576114cd605e6114bf60788461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b600b5481101561150c57611505605e6114f760768461228490919063ffffffff16565b6122bf90919063ffffffff16565b9150611536565b611533605e61152560748461228490919063ffffffff16565b6122bf90919063ffffffff16565b91505b50919050565b600160149054906101000a900460ff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561163057600080fd5b6001600860006101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806116f55750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561170057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561173c57600080fd5b600754811015151561174d57600080fd5b611758838383612112565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b857600080fd5b600160149054906101000a900460ff161515156117d457600080fd5b60018060146101000a81548160ff021916908315150217905550565b6117f8612306565b6040805190810160405280600481526020017f5841525400000000000000000000000000000000000000000000000000000000815250905090565b600160149054906101000a900460ff1615151561184f57600080fd5b600860009054906101000a900460ff16151561186a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156118a657600080fd5b6118b03382611e72565b15156118bb57600080fd5b6118c6338383611f4a565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160149054906101000a900460ff1615151561190c57600080fd5b600860009054906101000a900460ff16151561192757600080fd5b6119313382611ede565b151561193c57600080fd5b61197a6002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163383611f4a565b50565b600060036000838152602001908152602001600020549050919050565b6119a2612306565b60008060006006858154811015156119b657fe5b90600052602060002090016000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a585780601f10611a2d57610100808354040283529160200191611a58565b820191906000526020600020905b815481529060010190602001808311611a3b57829003601f168201915b5050505050935060036000868152602001908152602001600020549250611a7e85611456565b91506002600086815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690509193509193565b60056020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000600160149054906101000a900460ff16151515611b1457600080fd5b611b1d8661154f565b9450339350611b2b8661197d565b9250600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611b6957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614151515611ba557600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515611be057600080fd5b611be9846122da565b151515611bf557600080fd5b600083111515611c0457600080fd5b823410151515611c1357600080fd5b611c1e858588611f4a565b611c2786611456565b60036000888152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16877fef3f7c55f619f7c9178e080691f6d9bc90a74668d32c107dea7c87da023c9a0f60068a815481101515611c9d57fe5b906000526020600020900160000187611cb58c61197d565b6040518080602001848152602001838152602001828103825285818154600181600116156101000203166002900481526020019150805460018160011615610100020316600290048015611d4a5780601f10611d1f57610100808354040283529160200191611d4a565b820191906000526020600020905b815481529060010190602001808311611d2d57829003601f168201915b505094505050505060405180910390a4611d6d83346122ed90919063ffffffff16565b9150611d966064611d8860068661228490919063ffffffff16565b6122bf90919063ffffffff16565b90503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141515611e20578473ffffffffffffffffffffffffffffffffffffffff166108fc611dfa83866122ed90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501515611e1f57600080fd5b5b6000821115611e6a578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050501515611e6957600080fd5b5b505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b60008273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614905092915050565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156120a857600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506005600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b61211a612342565b6000602060405190810160405280868152509150600160068054806001018281612144919061235c565b916000526020600020900160008590919091506000820151816000019080519060200190612173929190612388565b5050500390508260036000838152602001908152602001600020819055507fd306967beeb39489cb6724748118d29c59bd0f0e17a5dd711b4f4d3dea3a1c478186858760405180858152602001806020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825285818151815260200191508051906020019080838360005b83811015612234578082015181840152602081019050612219565b50505050905090810190601f1680156122615780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a161227d60008583611f4a565b5050505050565b600080600084141561229957600091506122b8565b82840290508284828115156122aa57fe5b041415156122b457fe5b8091505b5092915050565b60008082848115156122cd57fe5b0490508091505092915050565b600080823b905060008111915050919050565b60008282111515156122fb57fe5b818303905092915050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280612356612408565b81525090565b81548183558181151161238357818360005260206000209182019101612382919061241c565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106123c957805160ff19168380011785556123f7565b828001600101855582156123f7579182015b828111156123f65782518255916020019190600101906123db565b5b509050612404919061244b565b5090565b602060405190810160405280600081525090565b61244891905b80821115612444576000808201600061243b9190612470565b50600101612422565b5090565b90565b61246d91905b80821115612469576000816000905550600101612451565b5090565b90565b50805460018160011615610100020316600290046000825580601f1061249657506124b5565b601f0160209004906000526020600020908101906124b4919061244b565b5b505600a165627a7a72305820f75947c10751da17b9f6cd9202d827b1ed0eca753a4ad9efc1812c60129bd36e0029

Swarm Source

bzzr://f75947c10751da17b9f6cd9202d827b1ed0eca753a4ad9efc1812c60129bd36e

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.