ETH Price: $3,215.67 (+1.67%)

Token

Pirate Kitty Token (KCT)
 

Overview

Max Total Supply

385 KCT

Holders

74

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
0 KCT

Value
$0.00
0x6e10e8f202ced220791043df74aa84615caec537
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
KittyToken

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-06-21
*/

pragma solidity ^0.4.18;
/* ==================================================================== */
/* Copyright (c) 2018 The Priate Conquest Project.  All rights reserved.
/* 
/* https://www.pirateconquest.com One of the world's slg games of blockchain 
/*  
/* authors [email protected]/[email protected]
/*                 
/* ==================================================================== */
/// @title ERC-721 Non-Fungible Token Standard
/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
///  Note: the ERC-165 identifier for this interface is 0x80ac58cd
contract ERC721 /* is ERC165 */ {
  event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
  event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
  event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

  function balanceOf(address _owner) external view returns (uint256);
  function ownerOf(uint256 _tokenId) external view returns (address);
  function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable;
  function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;
  function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
  function approve(address _approved, uint256 _tokenId) external payable;
  function setApprovalForAll(address _operator, bool _approved) external;
  function getApproved(uint256 _tokenId) external view returns (address);
  function isApprovedForAll(address _owner, address _operator) external view returns (bool);
}

interface ERC165 {
     function supportsInterface(bytes4 interfaceID) external view returns (bool);
}

/// @title ERC-721 Non-Fungible Token Standard
interface ERC721TokenReceiver {
	function onERC721Received(address _from, uint256 _tokenId, bytes data) external returns(bytes4);
}

/// @title ERC-721 Non-Fungible Token Standard, optional metadata extension
/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
///  Note: the ERC-165 identifier for this interface is 0x5b5e139f
interface ERC721Metadata /* is ERC721 */ {
    function name() external view returns (string _name);
    function symbol() external view returns (string _symbol);
    function tokenURI(uint256 _tokenId) external view returns (string);
}

/// @title ERC-721 Non-Fungible Token Standard, optional enumeration extension
/// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md
///  Note: the ERC-165 identifier for this interface is 0x780e9d63
interface ERC721Enumerable /* is ERC721 */ {
    function totalSupply() external view returns (uint256);
    function tokenByIndex(uint256 _index) external view returns (uint256);
    function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256);
}

/**
 * @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));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }
}


/**
 * @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 allow actions only when the contract IS paused
   */
  modifier whenNotPaused() {
    require(!paused);
    _;
  }

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

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

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

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;
  }

  function mul32(uint32 a, uint32 b) internal pure returns (uint32) {
    if (a == 0) {
      return 0;
    }
    uint32 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;
  }

  function div32(uint32 a, uint32 b) internal pure returns (uint32) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint32 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;
  }

  function sub32(uint32 a, uint32 b) internal pure returns (uint32) {
    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;
  }

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

contract AccessAdmin is Pausable {

  /// @dev Admin Address
  mapping (address => bool) adminContracts;

  /// @dev Trust contract
  mapping (address => bool) actionContracts;

  function setAdminContract(address _addr, bool _useful) public onlyOwner {
    require(_addr != address(0));
    adminContracts[_addr] = _useful;
  }

  modifier onlyAdmin {
    require(adminContracts[msg.sender]); 
    _;
  }

  function setActionContract(address _actionAddr, bool _useful) public onlyAdmin {
    actionContracts[_actionAddr] = _useful;
  }

  modifier onlyAccess() {
    require(actionContracts[msg.sender]);
    _;
  }
}


contract KittyToken is AccessAdmin, ERC721 {
  using SafeMath for SafeMath;
  //event 
  event CreateGift(uint tokenId,uint32 cardId, address _owner, uint256 _price);
  //ERC721
  event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
  event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
  event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);

  struct Kitty {
    uint32 kittyId;
  }

  Kitty[] public kitties; //dynamic Array
  function KittyToken() public {
    kitties.length += 1;
    setAdminContract(msg.sender,true);
    setActionContract(msg.sender,true);
  }

  /**MAPPING**/
  /// @dev tokenId to owner  tokenId -> address
  mapping (uint256 => address) public TokenIdToOwner;
  /// @dev Equipment token ID search in owner array kittyId -> tokenId
  mapping (uint256 => uint256) kittyIdToOwnerIndex;  
  /// @dev kittys owner by the owner (array)
  mapping (address => uint256[]) ownerTokittyArray;
  /// @dev price of each token
  mapping (uint256 => uint256) TokenIdToPrice;
  /// @dev token count of kitty
  mapping (uint32 => uint256) tokenCountOfkitty;
  /// @dev tokens by the kitty
  mapping (uint256 => uint32) IndexTokitty;
  /// @dev The authorized address for each kitty
  mapping (uint256 => address) kittyTokenIdToApprovals;
  /// @dev The authorized operators for each address
  mapping (address => mapping (address => bool)) operatorToApprovals;
  mapping(uint256 => bool) tokenToSell;
  

  /*** CONSTRUCTOR ***/
  /// @dev Amount of tokens destroyed
  uint256 destroyKittyCount;
  uint256 onAuction;
  // modifier
  /// @dev Check if token ID is valid
  modifier isValidToken(uint256 _tokenId) {
    require(_tokenId >= 1 && _tokenId <= kitties.length);
    require(TokenIdToOwner[_tokenId] != address(0)); 
    _;
  }
  modifier canTransfer(uint256 _tokenId) {
    require(msg.sender == TokenIdToOwner[_tokenId]);
    _;
  }
  /// @dev Creates a new kitty with the given name.
  function CreateKittyToken(address _owner,uint256 _price, uint32 _cardId) public onlyAccess {
    _createKittyToken(_owner,_price,_cardId);
  }

    /// For creating GiftToken
  function _createKittyToken(address _owner, uint256 _price, uint32 _kittyId) 
  internal {
    uint256 newTokenId = kitties.length;
    Kitty memory _kitty = Kitty({
      kittyId: _kittyId
    });
    kitties.push(_kitty);
    //event
    CreateGift(newTokenId, _kittyId, _owner, _price);
    TokenIdToPrice[newTokenId] = _price;
    IndexTokitty[newTokenId] = _kittyId;
    tokenCountOfkitty[_kittyId] = SafeMath.add(tokenCountOfkitty[_kittyId],1);
    // This will assign ownership, and also emit the Transfer event as
    // per ERC721 draft
    _transfer(address(0), _owner, newTokenId);
  } 
  /// @dev let owner set the token price
  function setTokenPriceByOwner(uint256 _tokenId, uint256 _price) external {
    require(TokenIdToOwner[_tokenId] == msg.sender);
    TokenIdToPrice[_tokenId] = _price;
  }

    /// @dev set the token price
  function setTokenPrice(uint256 _tokenId, uint256 _price) external onlyAccess {
    TokenIdToPrice[_tokenId] = _price;
  }

  /// @notice Returns all the relevant information about a specific tokenId.
  /// @param _tokenId The tokenId of the captain
  function getKittyInfo(uint256 _tokenId) external view returns (
    uint32 kittyId,  
    uint256 price,
    address owner,
    bool selled
  ) {
    Kitty storage kitty = kitties[_tokenId];
    kittyId = kitty.kittyId;
    price = TokenIdToPrice[_tokenId];
    owner = TokenIdToOwner[_tokenId];
    selled = tokenToSell[_tokenId];
  }
  /// @dev Do the real transfer with out any condition checking
  /// @param _from The old owner of this kitty(If created: 0x0)
  /// @param _to The new owner of this kitty 
  /// @param _tokenId The tokenId of the kitty
  function _transfer(address _from, address _to, uint256 _tokenId) internal {
    if (_from != address(0)) {
      uint256 indexFrom = kittyIdToOwnerIndex[_tokenId];  // tokenId -> kittyId
      uint256[] storage cpArray = ownerTokittyArray[_from];
      require(cpArray[indexFrom] == _tokenId);

      // If the kitty is not the element of array, change it to with the last
      if (indexFrom != cpArray.length - 1) {
        uint256 lastTokenId = cpArray[cpArray.length - 1];
        cpArray[indexFrom] = lastTokenId; 
        kittyIdToOwnerIndex[lastTokenId] = indexFrom;
      }
      cpArray.length -= 1; 
    
      if (kittyTokenIdToApprovals[_tokenId] != address(0)) {
        delete kittyTokenIdToApprovals[_tokenId];
      }      
    }

    // Give the kitty to '_to'
    TokenIdToOwner[_tokenId] = _to;
    ownerTokittyArray[_to].push(_tokenId);
    kittyIdToOwnerIndex[_tokenId] = ownerTokittyArray[_to].length - 1;
        
    Transfer(_from != address(0) ? _from : this, _to, _tokenId);
  }

  /// @dev Return all the auction tokens
  function getAuctions() external view returns (uint256[]) {
    uint256 totalgifts = kitties.length - destroyKittyCount - 1;

    uint256[] memory result = new uint256[](onAuction);
    uint256 tokenId = 1;
    for (uint i=0;i< totalgifts;i++) {
      if (tokenToSell[tokenId] == true) {
        result[i] = tokenId;
        tokenId ++;
      }
    }
    return result;
  }
  /// ERC721 

  function balanceOf(address _owner) external view returns (uint256) {
    require(_owner != address(0));
    return ownerTokittyArray[_owner].length;
  }

  function ownerOf(uint256 _tokenId) external view returns (address) {
    return TokenIdToOwner[_tokenId];
  }
  function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable {
    _safeTransferFrom(_from, _to, _tokenId, data);
  }
  function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable {
    _safeTransferFrom(_from, _to, _tokenId, "");
  }

  /// @dev Actually perform the safeTransferFrom
  function _safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) 
    internal
    isValidToken(_tokenId) 
    canTransfer(_tokenId)
    {
    address owner = TokenIdToOwner[_tokenId];
    require(owner != address(0) && owner == _from);
    require(_to != address(0));
        
    _transfer(_from, _to, _tokenId);

    // Do the callback after everything is done to avoid reentrancy attack
    /*uint256 codeSize;
    assembly { codeSize := extcodesize(_to) }
    if (codeSize == 0) {
      return;
    }*/
    bytes4 retval = ERC721TokenReceiver(_to).onERC721Received(_from, _tokenId, data);
    // bytes4(keccak256("onERC721Received(address,uint256,bytes)")) = 0xf0b9e5ba;
    require(retval == 0xf0b9e5ba);
  }
    
  /// @dev Transfer ownership of an kitty, '_to' must be a vaild address, or the WAR will lost
  /// @param _from The current owner of the kitty
  /// @param _to The new owner
  /// @param _tokenId The kitty to transfer
  function transferFrom(address _from, address _to, uint256 _tokenId)
        external
        whenNotPaused
        isValidToken(_tokenId)
        canTransfer(_tokenId)
        payable
    {
    address owner = TokenIdToOwner[_tokenId];
    require(owner != address(0));
    require(owner == _from);
    require(_to != address(0));
        
    _transfer(_from, _to, _tokenId);
  }

  /// @dev Safe transfer by trust contracts
  function safeTransferByContract(address _from,address _to, uint256 _tokenId) 
  external
  whenNotPaused
  {
    require(actionContracts[msg.sender]);

    require(_tokenId >= 1 && _tokenId <= kitties.length);
    address owner = TokenIdToOwner[_tokenId];
    require(owner != address(0));
    require(_to != address(0));
    require(owner != _to);
    require(_from == owner);

    _transfer(owner, _to, _tokenId);
  }

  /// @dev Set or reaffirm the approved address for an kitty
  /// @param _approved The new approved kitty controller
  /// @param _tokenId The kitty to approve
  function approve(address _approved, uint256 _tokenId)
    external
    whenNotPaused 
    payable
  {
    address owner = TokenIdToOwner[_tokenId];
    require(owner != address(0));
    require(msg.sender == owner || operatorToApprovals[owner][msg.sender]);

    kittyTokenIdToApprovals[_tokenId] = _approved;
    Approval(owner, _approved, _tokenId);
  }

  /// @dev Enable or disable approval for a third party ("operator") to manage all your asset.
  /// @param _operator Address to add to the set of authorized operators.
  /// @param _approved True if the operators is approved, false to revoke approval
  function setApprovalForAll(address _operator, bool _approved) 
    external 
    whenNotPaused
  {
    operatorToApprovals[msg.sender][_operator] = _approved;
    ApprovalForAll(msg.sender, _operator, _approved);
  }

  /// @dev Get the approved address for a single kitty
  /// @param _tokenId The WAR to find the approved address for
  /// @return The approved address for this WAR, or the zero address if there is none
  function getApproved(uint256 _tokenId) external view isValidToken(_tokenId) returns (address) {
    return kittyTokenIdToApprovals[_tokenId];
  }
  
  /// @dev Query if an address is an authorized operator for another address
  /// @param _owner The address that owns the WARs
  /// @param _operator The address that acts on behalf of the owner
  /// @return True if `_operator` is an approved operator for `_owner`, false otherwise
  function isApprovedForAll(address _owner, address _operator) external view returns (bool) {
    return operatorToApprovals[_owner][_operator];
  }
  /// @notice A descriptive name for a collection of NFTs in this contract
  function name() public pure returns(string) {
    return "Pirate Kitty Token";
  }
  /// @notice An abbreviated name for NFTs in this contract
  function symbol() public pure returns(string) {
    return "KCT";
  }
  /// @notice A distinct Uniform Resource Identifier (URI) for a given asset.
  /// @dev Throws if `_tokenId` is not a valid NFT. URIs are defined in RFC
  ///  3986. The URI may point to a JSON file that conforms to the "ERC721
  ///  Metadata JSON Schema".
  //function tokenURI(uint256 _tokenId) external view returns (string);

  /// @notice Count NFTs tracked by this contract
  /// @return A count of valid NFTs tracked by this contract, where each one of
  ///  them has an assigned and queryable owner not equal to the zero address
  function totalSupply() external view returns (uint256) {
    return kitties.length - destroyKittyCount -1;
  }
  /// @notice Enumerate valid NFTs
  /// @dev Throws if `_index` >= `totalSupply()`.
  /// @param _index A counter less than `totalSupply()`
  /// @return The token identifier for the `_index`th NFT,
  ///  (sort order not specified)
  function tokenByIndex(uint256 _index) external view returns (uint256) {
    require(_index<(kitties.length - destroyKittyCount));
    //return kittyIdToOwnerIndex[_index];
    return _index;
  }
  /// @notice Enumerate NFTs assigned to an owner
  /// @dev Throws if `_index` >= `balanceOf(_owner)` or if
  ///  `_owner` is the zero address, representing invalid NFTs.
  /// @param _owner An address where we are interested in NFTs owned by them
  /// @param _index A counter less than `balanceOf(_owner)`
  /// @return The token identifier for the `_index`th NFT assigned to `_owner`,
  ///   (sort order not specified)
  function tokenOfOwnerByIndex(address _owner, uint256 _index) external view returns (uint256) {
    require(_index < ownerTokittyArray[_owner].length);
    if (_owner != address(0)) {
      uint256 tokenId = ownerTokittyArray[_owner][_index];
      return tokenId;
    }
  }

  /// @param _owner The owner whose celebrity tokens we are interested in.
  /// @dev This method MUST NEVER be called by smart contract code. First, it's fairly
  ///  expensive (it walks the entire Persons array looking for persons belonging to owner),
  ///  but it also returns a dynamic array, which is only supported for web3 calls, and
  ///  not contract-to-contract calls.
  function tokensOfOwner(address _owner) external view returns (uint256[],uint32[]) {
    uint256 len = ownerTokittyArray[_owner].length;
    uint256[] memory tokens = new uint256[](len);
    uint32[] memory kittyss = new uint32[](len);
    uint256 icount;
    if (_owner != address(0)) {
      for (uint256 i=0;i<len;i++) {
        tokens[i] = ownerTokittyArray[_owner][icount];
        kittyss[i] = IndexTokitty[ownerTokittyArray[_owner][icount]];
        icount++;
      }
    }
    return (tokens,kittyss);
  }

  /// @param _kittyId The kitty whose celebrity tokens we are interested in.
  /// @dev This method MUST NEVER be called by smart contract code. First, it's fairly
  ///  expensive (it walks the entire Persons array looking for persons belonging to owner),
  ///  but it also returns a dynamic array, which is only supported for web3 calls, and
  ///  not contract-to-contract calls.
  function tokensOfkitty(uint32 _kittyId) public view returns(uint256[] kittyTokens) {
    uint256 tokenCount = tokenCountOfkitty[_kittyId];
    if (tokenCount == 0) {
        // Return an empty array
      return new uint256[](0);
    } else {
      uint256[] memory result = new uint256[](tokenCount);
      uint256 totalkitties = kitties.length - destroyKittyCount - 1;
      uint256 resultIndex = 0;

      uint256 tokenId;
      for (tokenId = 0; tokenId <= totalkitties; tokenId++) {
        if (IndexTokitty[tokenId] == _kittyId) {
          result[resultIndex] = tokenId;
          resultIndex++;
        }
      }
      return result;
    }
  } 
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_useful","type":"bool"}],"name":"setAdminContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_approved","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","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":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"setTokenPriceByOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"TokenIdToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_kittyId","type":"uint32"}],"name":"tokensOfkitty","outputs":[{"name":"kittyTokens","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":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_actionAddr","type":"address"},{"name":"_useful","type":"bool"}],"name":"setActionContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getKittyInfo","outputs":[{"name":"kittyId","type":"uint32"},{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"selled","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"kitties","outputs":[{"name":"kittyId","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"},{"name":"_cardId","type":"uint32"}],"name":"CreateKittyToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getAuctions","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"setTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferByContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"cardId","type":"uint32"},{"indexed":false,"name":"_owner","type":"address"},{"indexed":false,"name":"_price","type":"uint256"}],"name":"CreateGift","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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"ApprovalForAll","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"}]

60606040526000805460a060020a60ff021916905534156200002057600080fd5b60008054600160a060020a03191633600160a060020a031617905560038054600101906200004f90826200013c565b506200006b336001640100000000620007786200008c82021704565b6200008633600164010000000062000c69620000e982021704565b62000193565b60005433600160a060020a03908116911614620000a857600080fd5b600160a060020a0382161515620000be57600080fd5b600160a060020a03919091166000908152600160205260409020805460ff1916911515919091179055565b600160a060020a03331660009081526001602052604090205460ff1615156200011157600080fd5b600160a060020a03919091166000908152600260205260409020805460ff1916911515919091179055565b81548183558181151162000163576000838152602090206200016391810190830162000168565b505050565b6200019091905b808211156200018c57805463ffffffff191681556001016200016f565b5090565b90565b61194680620001a36000396000f30060606040526004361061018a5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461018f578063081812fc146102195780630865dadc1461024b578063095ea7b31461027157806318160ddd1461028857806323b872dd146102ad5780632f745c59146102ca578063380c686d146102ec5780633f4ba83a1461030557806342842e0e1461032c5780634f6ccce7146103495780635b2f03ef1461035f5780635b530196146103755780635c975abb146103e45780636352211e146103f75780636fb642de1461040d57806370a082311461043157806375ca3b2e146104505780638456cb59146104a25780638462151c146104b55780638cc51eda1461056d5780638da5cb5b1461059c57806395d89b41146105af578063a22cb465146105c2578063ae5c1816146105e6578063b88d4fde14610611578063d7c069191461063d578063e985e9c514610650578063eb685c4714610675578063f2fde38b1461068e578063fbeecb47146106ad575b600080fd5b341561019a57600080fd5b6101a26106d5565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101de5780820151838201526020016101c6565b50505050905090810190601f16801561020b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022457600080fd5b61022f600435610717565b604051600160a060020a03909116815260200160405180910390f35b341561025657600080fd5b61026f600160a060020a03600435166024351515610778565b005b61026f600160a060020a03600435166024356107d3565b341561029357600080fd5b61029b6108d8565b60405190815260200160405180910390f35b61026f600160a060020a03600435811690602435166044356108e6565b34156102d557600080fd5b61029b600160a060020a03600435166024356109cf565b34156102f757600080fd5b61026f600435602435610a41565b341561031057600080fd5b610318610a7a565b604051901515815260200160405180910390f35b61026f600160a060020a0360043581169060243516604435610afe565b341561035457600080fd5b61029b600435610b1d565b341561036a57600080fd5b61022f600435610b37565b341561038057600080fd5b61039163ffffffff60043516610b52565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103d05780820151838201526020016103b8565b505050509050019250505060405180910390f35b34156103ef57600080fd5b610318610c3e565b341561040257600080fd5b61022f600435610c4e565b341561041857600080fd5b61026f600160a060020a03600435166024351515610c69565b341561043c57600080fd5b61029b600160a060020a0360043516610cbb565b341561045b57600080fd5b610466600435610cee565b60405163ffffffff90941684526020840192909252600160a060020a031660408084019190915290151560608301526080909101905180910390f35b34156104ad57600080fd5b610318610d53565b34156104c057600080fd5b6104d4600160a060020a0360043516610ddc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610518578082015183820152602001610500565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561055757808201518382015260200161053f565b5050505090500194505050505060405180910390f35b341561057857600080fd5b610583600435610f46565b60405163ffffffff909116815260200160405180910390f35b34156105a757600080fd5b61022f610f6b565b34156105ba57600080fd5b6101a2610f7a565b34156105cd57600080fd5b61026f600160a060020a03600435166024351515610fbb565b34156105f157600080fd5b61026f600160a060020a036004351660243563ffffffff60443516611042565b61026f600160a060020a0360048035821691602480359091169160443591606435908101910135611074565b341561064857600080fd5b6103916110b6565b341561065b57600080fd5b610318600160a060020a0360043581169060243516611159565b341561068057600080fd5b61026f600435602435611187565b341561069957600080fd5b61026f600160a060020a03600435166111ae565b34156106b857600080fd5b61026f600160a060020a0360043581169060243516604435611249565b6106dd611885565b60408051908101604052601281527f506972617465204b6974747920546f6b656e0000000000000000000000000000602082015290505b90565b6000816001811015801561072d57506003548111155b151561073857600080fd5b600081815260046020526040902054600160a060020a0316151561075b57600080fd5b50506000908152600a6020526040902054600160a060020a031690565b60005433600160a060020a0390811691161461079357600080fd5b600160a060020a03821615156107a857600080fd5b600160a060020a03919091166000908152600160205260409020805460ff1916911515919091179055565b6000805460a060020a900460ff16156107eb57600080fd5b50600081815260046020526040902054600160a060020a031680151561081057600080fd5b80600160a060020a031633600160a060020a031614806108565750600160a060020a038082166000908152600b60209081526040808320339094168352929052205460ff165b151561086157600080fd5b6000828152600a602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386811691821790925591908316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a3505050565b600d54600354036000190190565b6000805460a060020a900460ff16156108fe57600080fd5b816001811015801561091257506003548111155b151561091d57600080fd5b600081815260046020526040902054600160a060020a0316151561094057600080fd5b600083815260046020526040902054839033600160a060020a0390811691161461096957600080fd5b600084815260046020526040902054600160a060020a0316925082151561098f57600080fd5b600160a060020a03838116908716146109a757600080fd5b600160a060020a03851615156109bc57600080fd5b6109c7868686611322565b505050505050565b600160a060020a038216600090815260066020526040812054819083106109f557600080fd5b600160a060020a03841615610a3a57600160a060020a0384166000908152600660205260409020805484908110610a2857fe5b90600052602060002090015490508091505b5092915050565b60008281526004602052604090205433600160a060020a03908116911614610a6857600080fd5b60009182526007602052604090912055565b6000805433600160a060020a03908116911614610a9657600080fd5b60005460a060020a900460ff161515610aae57600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b610b1883838360206040519081016040526000815261151f565b505050565b600d5460035460009190038210610b3357600080fd5b5090565b600460205260009081526040902054600160a060020a031681565b610b5a611885565b6000610b64611885565b63ffffffff841660009081526008602052604081205492508080841515610bac576000604051805910610b945750595b90808252806020026020018201604052509550610c34565b84604051805910610bba5750595b9080825280602002602001820160405250600d546003549195506000199103019250600091508190505b828111610c305760008181526009602052604090205463ffffffff88811691161415610c285780848381518110610c1757fe5b602090810290910101526001909101905b600101610be4565b8395505b5050505050919050565b60005460a060020a900460ff1681565b600090815260046020526040902054600160a060020a031690565b600160a060020a03331660009081526001602052604090205460ff161515610c9057600080fd5b600160a060020a03919091166000908152600260205260409020805460ff1916911515919091179055565b6000600160a060020a0382161515610cd257600080fd5b50600160a060020a031660009081526006602052604090205490565b6000806000806000600386815481101515610d0557fe5b6000918252602080832090910154978252600781526040808320546004835281842054600c90935292205463ffffffff909816989197600160a060020a03909116965060ff16945092505050565b6000805433600160a060020a03908116911614610d6f57600080fd5b60005460a060020a900460ff1615610d8657600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b610de4611885565b610dec611885565b6000610df6611885565b610dfe611885565b600160a060020a0386166000908152600660205260408082205494508190859051805910610e295750595b9080825280602002602001820160405250935084604051805910610e4a5750595b90808252806020026020018201604052509250600160a060020a03881615610f39575060005b84811015610f3957600160a060020a0388166000908152600660205260409020805483908110610e9c57fe5b906000526020600020900154848281518110610eb457fe5b6020908102909101810191909152600160a060020a03891660009081526006909152604081208054600992919085908110610eeb57fe5b6000918252602080832090910154835282019290925260400190205463ffffffff16838281518110610f1957fe5b63ffffffff90921660209283029091019091015260019182019101610e70565b5091969095509350505050565b6003805482908110610f5457fe5b60009182526020909120015463ffffffff16905081565b600054600160a060020a031681565b610f82611885565b60408051908101604052600381527f4b435400000000000000000000000000000000000000000000000000000000006020820152905090565b60005460a060020a900460ff1615610fd257600080fd5b33600160a060020a039081166000818152600b602090815260408083209487168084529490915290819020805460ff19168515151790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190849051901515815260200160405180910390a35050565b600160a060020a03331660009081526002602052604090205460ff16151561106957600080fd5b610b18838383611747565b6110af85858585858080601f01602080910402602001604051908101604052818152929190602084018383808284375061151f945050505050565b5050505050565b6110be611885565b60006110c8611885565b6000806001600d5460038054905003039350600e546040518059106110ea5750595b9080825280602002602001820160405250925060019150600090505b83811015611150576000828152600c602052604090205460ff16151560011415611148578183828151811061113757fe5b602090810290910101526001909101905b600101611106565b50909392505050565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205460ff1690565b600160a060020a03331660009081526002602052604090205460ff161515610a6857600080fd5b60005433600160a060020a039081169116146111c957600080fd5b600160a060020a03811615156111de57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805460a060020a900460ff161561126157600080fd5b600160a060020a03331660009081526002602052604090205460ff16151561128857600080fd5b6001821015801561129b57506003548211155b15156112a657600080fd5b50600081815260046020526040902054600160a060020a03168015156112cb57600080fd5b600160a060020a03831615156112e057600080fd5b600160a060020a0381811690841614156112f957600080fd5b600160a060020a038481169082161461131157600080fd5b61131c818484611322565b50505050565b60008080600160a060020a0386161561143a57600084815260056020908152604080832054600160a060020a038a168452600690925290912080549194509250849083908590811061137057fe5b6000918252602090912001541461138657600080fd5b81546000190183146113e2578154829060001981019081106113a457fe5b90600052602060002090015490508082848154811015156113c157fe5b60009182526020808320909101929092558281526005909152604090208390555b8154600019016113f28382611897565b506000848152600a6020526040902054600160a060020a03161561143a576000848152600a60205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b6000848152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1690811790915583526006909152902080546001810161148d8382611897565b506000918252602080832091909101869055600160a060020a03808816808452600683526040808520548986526005909452909320600019909201909155871615156114d957306114db565b865b600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405190815260200160405180910390a3505050505050565b600080836001811015801561153657506003548111155b151561154157600080fd5b600081815260046020526040902054600160a060020a0316151561156457600080fd5b600085815260046020526040902054859033600160a060020a0390811691161461158d57600080fd5b600086815260046020526040902054600160a060020a0316935083158015906115c7575087600160a060020a031684600160a060020a0316145b15156115d257600080fd5b600160a060020a03871615156115e757600080fd5b6115f2888888611322565b86600160a060020a031663f0b9e5ba8988886040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561168a578082015183820152602001611672565b50505050905090810190601f1680156116b75780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15156116d757600080fd5b5af115156116e457600080fd5b50505060405180519350507ff0b9e5ba000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084161461173d57600080fd5b5050505050505050565b6000611751611885565b6003549150602060405190810160405263ffffffff8416815260038054919250906001810161178083826118bb565b600092835260209092208391018151815463ffffffff191663ffffffff91909116179055507fdf5ca1e491e3f201b780b88ed7625742b89a182dcd64b900f40dfc55a769b59f90508284878760405193845263ffffffff9092166020840152600160a060020a031660408084019190915260608301919091526080909101905180910390a1600082815260076020908152604080832087905560098252808320805463ffffffff191663ffffffff88169081179091558352600890915290205461184b90600161186f565b63ffffffff84166000908152600860205260408120919091556110af908684611322565b60008282018381101561187e57fe5b9392505050565b60206040519081016040526000815290565b815481835581811511610b1857600083815260209020610b189181019083016118df565b815481835581811511610b1857600083815260209020610b189181019083016118f9565b61071491905b80821115610b3357600081556001016118e5565b61071491905b80821115610b3357805463ffffffff191681556001016118ff5600a165627a7a7230582073074787483e25567e175895fbfdcc05a80e2bfc8d694fae5341e14f2bb34ecd0029

Deployed Bytecode

0x60606040526004361061018a5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde03811461018f578063081812fc146102195780630865dadc1461024b578063095ea7b31461027157806318160ddd1461028857806323b872dd146102ad5780632f745c59146102ca578063380c686d146102ec5780633f4ba83a1461030557806342842e0e1461032c5780634f6ccce7146103495780635b2f03ef1461035f5780635b530196146103755780635c975abb146103e45780636352211e146103f75780636fb642de1461040d57806370a082311461043157806375ca3b2e146104505780638456cb59146104a25780638462151c146104b55780638cc51eda1461056d5780638da5cb5b1461059c57806395d89b41146105af578063a22cb465146105c2578063ae5c1816146105e6578063b88d4fde14610611578063d7c069191461063d578063e985e9c514610650578063eb685c4714610675578063f2fde38b1461068e578063fbeecb47146106ad575b600080fd5b341561019a57600080fd5b6101a26106d5565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101de5780820151838201526020016101c6565b50505050905090810190601f16801561020b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561022457600080fd5b61022f600435610717565b604051600160a060020a03909116815260200160405180910390f35b341561025657600080fd5b61026f600160a060020a03600435166024351515610778565b005b61026f600160a060020a03600435166024356107d3565b341561029357600080fd5b61029b6108d8565b60405190815260200160405180910390f35b61026f600160a060020a03600435811690602435166044356108e6565b34156102d557600080fd5b61029b600160a060020a03600435166024356109cf565b34156102f757600080fd5b61026f600435602435610a41565b341561031057600080fd5b610318610a7a565b604051901515815260200160405180910390f35b61026f600160a060020a0360043581169060243516604435610afe565b341561035457600080fd5b61029b600435610b1d565b341561036a57600080fd5b61022f600435610b37565b341561038057600080fd5b61039163ffffffff60043516610b52565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103d05780820151838201526020016103b8565b505050509050019250505060405180910390f35b34156103ef57600080fd5b610318610c3e565b341561040257600080fd5b61022f600435610c4e565b341561041857600080fd5b61026f600160a060020a03600435166024351515610c69565b341561043c57600080fd5b61029b600160a060020a0360043516610cbb565b341561045b57600080fd5b610466600435610cee565b60405163ffffffff90941684526020840192909252600160a060020a031660408084019190915290151560608301526080909101905180910390f35b34156104ad57600080fd5b610318610d53565b34156104c057600080fd5b6104d4600160a060020a0360043516610ddc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610518578082015183820152602001610500565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561055757808201518382015260200161053f565b5050505090500194505050505060405180910390f35b341561057857600080fd5b610583600435610f46565b60405163ffffffff909116815260200160405180910390f35b34156105a757600080fd5b61022f610f6b565b34156105ba57600080fd5b6101a2610f7a565b34156105cd57600080fd5b61026f600160a060020a03600435166024351515610fbb565b34156105f157600080fd5b61026f600160a060020a036004351660243563ffffffff60443516611042565b61026f600160a060020a0360048035821691602480359091169160443591606435908101910135611074565b341561064857600080fd5b6103916110b6565b341561065b57600080fd5b610318600160a060020a0360043581169060243516611159565b341561068057600080fd5b61026f600435602435611187565b341561069957600080fd5b61026f600160a060020a03600435166111ae565b34156106b857600080fd5b61026f600160a060020a0360043581169060243516604435611249565b6106dd611885565b60408051908101604052601281527f506972617465204b6974747920546f6b656e0000000000000000000000000000602082015290505b90565b6000816001811015801561072d57506003548111155b151561073857600080fd5b600081815260046020526040902054600160a060020a0316151561075b57600080fd5b50506000908152600a6020526040902054600160a060020a031690565b60005433600160a060020a0390811691161461079357600080fd5b600160a060020a03821615156107a857600080fd5b600160a060020a03919091166000908152600160205260409020805460ff1916911515919091179055565b6000805460a060020a900460ff16156107eb57600080fd5b50600081815260046020526040902054600160a060020a031680151561081057600080fd5b80600160a060020a031633600160a060020a031614806108565750600160a060020a038082166000908152600b60209081526040808320339094168352929052205460ff165b151561086157600080fd5b6000828152600a602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386811691821790925591908316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a3505050565b600d54600354036000190190565b6000805460a060020a900460ff16156108fe57600080fd5b816001811015801561091257506003548111155b151561091d57600080fd5b600081815260046020526040902054600160a060020a0316151561094057600080fd5b600083815260046020526040902054839033600160a060020a0390811691161461096957600080fd5b600084815260046020526040902054600160a060020a0316925082151561098f57600080fd5b600160a060020a03838116908716146109a757600080fd5b600160a060020a03851615156109bc57600080fd5b6109c7868686611322565b505050505050565b600160a060020a038216600090815260066020526040812054819083106109f557600080fd5b600160a060020a03841615610a3a57600160a060020a0384166000908152600660205260409020805484908110610a2857fe5b90600052602060002090015490508091505b5092915050565b60008281526004602052604090205433600160a060020a03908116911614610a6857600080fd5b60009182526007602052604090912055565b6000805433600160a060020a03908116911614610a9657600080fd5b60005460a060020a900460ff161515610aae57600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a150600190565b610b1883838360206040519081016040526000815261151f565b505050565b600d5460035460009190038210610b3357600080fd5b5090565b600460205260009081526040902054600160a060020a031681565b610b5a611885565b6000610b64611885565b63ffffffff841660009081526008602052604081205492508080841515610bac576000604051805910610b945750595b90808252806020026020018201604052509550610c34565b84604051805910610bba5750595b9080825280602002602001820160405250600d546003549195506000199103019250600091508190505b828111610c305760008181526009602052604090205463ffffffff88811691161415610c285780848381518110610c1757fe5b602090810290910101526001909101905b600101610be4565b8395505b5050505050919050565b60005460a060020a900460ff1681565b600090815260046020526040902054600160a060020a031690565b600160a060020a03331660009081526001602052604090205460ff161515610c9057600080fd5b600160a060020a03919091166000908152600260205260409020805460ff1916911515919091179055565b6000600160a060020a0382161515610cd257600080fd5b50600160a060020a031660009081526006602052604090205490565b6000806000806000600386815481101515610d0557fe5b6000918252602080832090910154978252600781526040808320546004835281842054600c90935292205463ffffffff909816989197600160a060020a03909116965060ff16945092505050565b6000805433600160a060020a03908116911614610d6f57600080fd5b60005460a060020a900460ff1615610d8657600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a150600190565b610de4611885565b610dec611885565b6000610df6611885565b610dfe611885565b600160a060020a0386166000908152600660205260408082205494508190859051805910610e295750595b9080825280602002602001820160405250935084604051805910610e4a5750595b90808252806020026020018201604052509250600160a060020a03881615610f39575060005b84811015610f3957600160a060020a0388166000908152600660205260409020805483908110610e9c57fe5b906000526020600020900154848281518110610eb457fe5b6020908102909101810191909152600160a060020a03891660009081526006909152604081208054600992919085908110610eeb57fe5b6000918252602080832090910154835282019290925260400190205463ffffffff16838281518110610f1957fe5b63ffffffff90921660209283029091019091015260019182019101610e70565b5091969095509350505050565b6003805482908110610f5457fe5b60009182526020909120015463ffffffff16905081565b600054600160a060020a031681565b610f82611885565b60408051908101604052600381527f4b435400000000000000000000000000000000000000000000000000000000006020820152905090565b60005460a060020a900460ff1615610fd257600080fd5b33600160a060020a039081166000818152600b602090815260408083209487168084529490915290819020805460ff19168515151790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190849051901515815260200160405180910390a35050565b600160a060020a03331660009081526002602052604090205460ff16151561106957600080fd5b610b18838383611747565b6110af85858585858080601f01602080910402602001604051908101604052818152929190602084018383808284375061151f945050505050565b5050505050565b6110be611885565b60006110c8611885565b6000806001600d5460038054905003039350600e546040518059106110ea5750595b9080825280602002602001820160405250925060019150600090505b83811015611150576000828152600c602052604090205460ff16151560011415611148578183828151811061113757fe5b602090810290910101526001909101905b600101611106565b50909392505050565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205460ff1690565b600160a060020a03331660009081526002602052604090205460ff161515610a6857600080fd5b60005433600160a060020a039081169116146111c957600080fd5b600160a060020a03811615156111de57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805460a060020a900460ff161561126157600080fd5b600160a060020a03331660009081526002602052604090205460ff16151561128857600080fd5b6001821015801561129b57506003548211155b15156112a657600080fd5b50600081815260046020526040902054600160a060020a03168015156112cb57600080fd5b600160a060020a03831615156112e057600080fd5b600160a060020a0381811690841614156112f957600080fd5b600160a060020a038481169082161461131157600080fd5b61131c818484611322565b50505050565b60008080600160a060020a0386161561143a57600084815260056020908152604080832054600160a060020a038a168452600690925290912080549194509250849083908590811061137057fe5b6000918252602090912001541461138657600080fd5b81546000190183146113e2578154829060001981019081106113a457fe5b90600052602060002090015490508082848154811015156113c157fe5b60009182526020808320909101929092558281526005909152604090208390555b8154600019016113f28382611897565b506000848152600a6020526040902054600160a060020a03161561143a576000848152600a60205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b6000848152600460209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a1690811790915583526006909152902080546001810161148d8382611897565b506000918252602080832091909101869055600160a060020a03808816808452600683526040808520548986526005909452909320600019909201909155871615156114d957306114db565b865b600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405190815260200160405180910390a3505050505050565b600080836001811015801561153657506003548111155b151561154157600080fd5b600081815260046020526040902054600160a060020a0316151561156457600080fd5b600085815260046020526040902054859033600160a060020a0390811691161461158d57600080fd5b600086815260046020526040902054600160a060020a0316935083158015906115c7575087600160a060020a031684600160a060020a0316145b15156115d257600080fd5b600160a060020a03871615156115e757600080fd5b6115f2888888611322565b86600160a060020a031663f0b9e5ba8988886040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561168a578082015183820152602001611672565b50505050905090810190601f1680156116b75780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15156116d757600080fd5b5af115156116e457600080fd5b50505060405180519350507ff0b9e5ba000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084161461173d57600080fd5b5050505050505050565b6000611751611885565b6003549150602060405190810160405263ffffffff8416815260038054919250906001810161178083826118bb565b600092835260209092208391018151815463ffffffff191663ffffffff91909116179055507fdf5ca1e491e3f201b780b88ed7625742b89a182dcd64b900f40dfc55a769b59f90508284878760405193845263ffffffff9092166020840152600160a060020a031660408084019190915260608301919091526080909101905180910390a1600082815260076020908152604080832087905560098252808320805463ffffffff191663ffffffff88169081179091558352600890915290205461184b90600161186f565b63ffffffff84166000908152600860205260408120919091556110af908684611322565b60008282018381101561187e57fe5b9392505050565b60206040519081016040526000815290565b815481835581811511610b1857600083815260209020610b189181019083016118df565b815481835581811511610b1857600083815260209020610b189181019083016118f9565b61071491905b80821115610b3357600081556001016118e5565b61071491905b80821115610b3357805463ffffffff191681556001016118ff5600a165627a7a7230582073074787483e25567e175895fbfdcc05a80e2bfc8d694fae5341e14f2bb34ecd0029

Swarm Source

bzzr://73074787483e25567e175895fbfdcc05a80e2bfc8d694fae5341e14f2bb34ecd
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.