ERC-20
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)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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.