ERC-20
Overview
Max Total Supply
19,738 WAR
Holders
778
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:
WarToken
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-04-10 */ /* ==================================================================== */ /* Copyright (c) 2018 The ether.online Project. All rights reserved. /* /* https://ether.online The first RPG game of blockchain /* ==================================================================== */ pragma solidity ^0.4.20; /// @title ERC-165 Standard Interface Detection /// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md interface ERC165 { function supportsInterface(bytes4 interfaceID) external view returns (bool); } /// @title ERC-721 Non-Fungible Token Standard /// @dev See https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md 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; function safeTransferFrom(address _from, address _to, uint256 _tokenId) external; function transferFrom(address _from, address _to, uint256 _tokenId) external; function approve(address _approved, uint256 _tokenId) external; 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); } /// @title ERC-721 Non-Fungible Token Standard interface ERC721TokenReceiver { function onERC721Received(address _from, uint256 _tokenId, bytes data) external returns(bytes4); } contract AccessAdmin { bool public isPaused = false; address public addrAdmin; event AdminTransferred(address indexed preAdmin, address indexed newAdmin); function AccessAdmin() public { addrAdmin = msg.sender; } modifier onlyAdmin() { require(msg.sender == addrAdmin); _; } modifier whenNotPaused() { require(!isPaused); _; } modifier whenPaused { require(isPaused); _; } function setAdmin(address _newAdmin) external onlyAdmin { require(_newAdmin != address(0)); AdminTransferred(addrAdmin, _newAdmin); addrAdmin = _newAdmin; } function doPause() external onlyAdmin whenNotPaused { isPaused = true; } function doUnpause() external onlyAdmin whenPaused { isPaused = false; } } contract WarToken is ERC721, AccessAdmin { /// @dev The equipment info struct Fashion { uint16 protoId; // 0 Equipment ID uint16 quality; // 1 Rarity: 1 Coarse/2 Good/3 Rare/4 Epic/5 Legendary uint16 pos; // 2 Slots: 1 Weapon/2 Hat/3 Cloth/4 Pant/5 Shoes/9 Pets uint16 health; // 3 Health uint16 atkMin; // 4 Min attack uint16 atkMax; // 5 Max attack uint16 defence; // 6 Defennse uint16 crit; // 7 Critical rate uint16 isPercent; // 8 Attr value type uint16 attrExt1; // 9 future stat 1 uint16 attrExt2; // 10 future stat 2 uint16 attrExt3; // 11 future stat 3 } /// @dev All equipments tokenArray (not exceeding 2^32-1) Fashion[] public fashionArray; /// @dev Amount of tokens destroyed uint256 destroyFashionCount; /// @dev Equipment token ID vs owner address mapping (uint256 => address) fashionIdToOwner; /// @dev Equipments owner by the owner (array) mapping (address => uint256[]) ownerToFashionArray; /// @dev Equipment token ID search in owner array mapping (uint256 => uint256) fashionIdToOwnerIndex; /// @dev The authorized address for each WAR mapping (uint256 => address) fashionIdToApprovals; /// @dev The authorized operators for each address mapping (address => mapping (address => bool)) operatorToApprovals; /// @dev Trust contract mapping (address => bool) actionContracts; function setActionContract(address _actionAddr, bool _useful) external onlyAdmin { actionContracts[_actionAddr] = _useful; } function getActionContract(address _actionAddr) external view onlyAdmin returns(bool) { return actionContracts[_actionAddr]; } /// @dev This emits when the approved address for an WAR is changed or reaffirmed. event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId); /// @dev This emits when an operator is enabled or disabled for an owner. event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); /// @dev This emits when the equipment ownership changed event Transfer(address indexed from, address indexed to, uint256 tokenId); /// @dev This emits when the equipment created event CreateFashion(address indexed owner, uint256 tokenId, uint16 protoId, uint16 quality, uint16 pos, uint16 createType); /// @dev This emits when the equipment's attributes changed event ChangeFashion(address indexed owner, uint256 tokenId, uint16 changeType); /// @dev This emits when the equipment destroyed event DeleteFashion(address indexed owner, uint256 tokenId, uint16 deleteType); function WarToken() public { addrAdmin = msg.sender; fashionArray.length += 1; } // modifier /// @dev Check if token ID is valid modifier isValidToken(uint256 _tokenId) { require(_tokenId >= 1 && _tokenId <= fashionArray.length); require(fashionIdToOwner[_tokenId] != address(0)); _; } modifier canTransfer(uint256 _tokenId) { address owner = fashionIdToOwner[_tokenId]; require(msg.sender == owner || msg.sender == fashionIdToApprovals[_tokenId] || operatorToApprovals[owner][msg.sender]); _; } // ERC721 function supportsInterface(bytes4 _interfaceId) external view returns(bool) { // ERC165 || ERC721 || ERC165^ERC721 return (_interfaceId == 0x01ffc9a7 || _interfaceId == 0x80ac58cd || _interfaceId == 0x8153916a) && (_interfaceId != 0xffffffff); } function name() public pure returns(string) { return "WAR Token"; } function symbol() public pure returns(string) { return "WAR"; } /// @dev Search for token quantity address /// @param _owner Address that needs to be searched /// @return Returns token quantity function balanceOf(address _owner) external view returns(uint256) { require(_owner != address(0)); return ownerToFashionArray[_owner].length; } /// @dev Find the owner of an WAR /// @param _tokenId The tokenId of WAR /// @return Give The address of the owner of this WAR function ownerOf(uint256 _tokenId) external view /*isValidToken(_tokenId)*/ returns (address owner) { return fashionIdToOwner[_tokenId]; } /// @dev Transfers the ownership of an WAR from one address to another address /// @param _from The current owner of the WAR /// @param _to The new owner /// @param _tokenId The WAR to transfer /// @param data Additional data with no specified format, sent in call to `_to` function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external whenNotPaused { _safeTransferFrom(_from, _to, _tokenId, data); } /// @dev Transfers the ownership of an WAR from one address to another address /// @param _from The current owner of the WAR /// @param _to The new owner /// @param _tokenId The WAR to transfer function safeTransferFrom(address _from, address _to, uint256 _tokenId) external whenNotPaused { _safeTransferFrom(_from, _to, _tokenId, ""); } /// @dev Transfer ownership of an WAR, '_to' must be a vaild address, or the WAR will lost /// @param _from The current owner of the WAR /// @param _to The new owner /// @param _tokenId The WAR to transfer function transferFrom(address _from, address _to, uint256 _tokenId) external whenNotPaused isValidToken(_tokenId) canTransfer(_tokenId) { address owner = fashionIdToOwner[_tokenId]; require(owner != address(0)); require(_to != address(0)); require(owner == _from); _transfer(_from, _to, _tokenId); } /// @dev Set or reaffirm the approved address for an WAR /// @param _approved The new approved WAR controller /// @param _tokenId The WAR to approve function approve(address _approved, uint256 _tokenId) external whenNotPaused { address owner = fashionIdToOwner[_tokenId]; require(owner != address(0)); require(msg.sender == owner || operatorToApprovals[owner][msg.sender]); fashionIdToApprovals[_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 WAR /// @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 fashionIdToApprovals[_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]; } /// @dev Count WARs tracked by this contract /// @return A count of valid WARs 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 fashionArray.length - destroyFashionCount - 1; } /// @dev Do the real transfer with out any condition checking /// @param _from The old owner of this WAR(If created: 0x0) /// @param _to The new owner of this WAR /// @param _tokenId The tokenId of the WAR function _transfer(address _from, address _to, uint256 _tokenId) internal { if (_from != address(0)) { uint256 indexFrom = fashionIdToOwnerIndex[_tokenId]; uint256[] storage fsArray = ownerToFashionArray[_from]; require(fsArray[indexFrom] == _tokenId); // If the WAR is not the element of array, change it to with the last if (indexFrom != fsArray.length - 1) { uint256 lastTokenId = fsArray[fsArray.length - 1]; fsArray[indexFrom] = lastTokenId; fashionIdToOwnerIndex[lastTokenId] = indexFrom; } fsArray.length -= 1; if (fashionIdToApprovals[_tokenId] != address(0)) { delete fashionIdToApprovals[_tokenId]; } } // Give the WAR to '_to' fashionIdToOwner[_tokenId] = _to; ownerToFashionArray[_to].push(_tokenId); fashionIdToOwnerIndex[_tokenId] = ownerToFashionArray[_to].length - 1; Transfer(_from != address(0) ? _from : this, _to, _tokenId); } /// @dev Actually perform the safeTransferFrom function _safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) internal isValidToken(_tokenId) canTransfer(_tokenId) { address owner = fashionIdToOwner[_tokenId]; require(owner != address(0)); require(_to != address(0)); require(owner == _from); _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 Equipment creation /// @param _owner Owner of the equipment created /// @param _attrs Attributes of the equipment created /// @return Token ID of the equipment created function createFashion(address _owner, uint16[9] _attrs, uint16 _createType) external whenNotPaused returns(uint256) { require(actionContracts[msg.sender]); require(_owner != address(0)); uint256 newFashionId = fashionArray.length; require(newFashionId < 4294967296); fashionArray.length += 1; Fashion storage fs = fashionArray[newFashionId]; fs.protoId = _attrs[0]; fs.quality = _attrs[1]; fs.pos = _attrs[2]; if (_attrs[3] != 0) { fs.health = _attrs[3]; } if (_attrs[4] != 0) { fs.atkMin = _attrs[4]; fs.atkMax = _attrs[5]; } if (_attrs[6] != 0) { fs.defence = _attrs[6]; } if (_attrs[7] != 0) { fs.crit = _attrs[7]; } if (_attrs[8] != 0) { fs.isPercent = _attrs[8]; } _transfer(0, _owner, newFashionId); CreateFashion(_owner, newFashionId, _attrs[0], _attrs[1], _attrs[2], _createType); return newFashionId; } /// @dev One specific attribute of the equipment modified function _changeAttrByIndex(Fashion storage _fs, uint16 _index, uint16 _val) internal { if (_index == 3) { _fs.health = _val; } else if(_index == 4) { _fs.atkMin = _val; } else if(_index == 5) { _fs.atkMax = _val; } else if(_index == 6) { _fs.defence = _val; } else if(_index == 7) { _fs.crit = _val; } else if(_index == 9) { _fs.attrExt1 = _val; } else if(_index == 10) { _fs.attrExt2 = _val; } else if(_index == 11) { _fs.attrExt3 = _val; } } /// @dev Equiment attributes modified (max 4 stats modified) /// @param _tokenId Equipment Token ID /// @param _idxArray Stats order that must be modified /// @param _params Stat value that must be modified /// @param _changeType Modification type such as enhance, socket, etc. function changeFashionAttr(uint256 _tokenId, uint16[4] _idxArray, uint16[4] _params, uint16 _changeType) external whenNotPaused isValidToken(_tokenId) { require(actionContracts[msg.sender]); Fashion storage fs = fashionArray[_tokenId]; if (_idxArray[0] > 0) { _changeAttrByIndex(fs, _idxArray[0], _params[0]); } if (_idxArray[1] > 0) { _changeAttrByIndex(fs, _idxArray[1], _params[1]); } if (_idxArray[2] > 0) { _changeAttrByIndex(fs, _idxArray[2], _params[2]); } if (_idxArray[3] > 0) { _changeAttrByIndex(fs, _idxArray[3], _params[3]); } ChangeFashion(fashionIdToOwner[_tokenId], _tokenId, _changeType); } /// @dev Equipment destruction /// @param _tokenId Equipment Token ID /// @param _deleteType Destruction type, such as craft function destroyFashion(uint256 _tokenId, uint16 _deleteType) external whenNotPaused isValidToken(_tokenId) { require(actionContracts[msg.sender]); address _from = fashionIdToOwner[_tokenId]; uint256 indexFrom = fashionIdToOwnerIndex[_tokenId]; uint256[] storage fsArray = ownerToFashionArray[_from]; require(fsArray[indexFrom] == _tokenId); if (indexFrom != fsArray.length - 1) { uint256 lastTokenId = fsArray[fsArray.length - 1]; fsArray[indexFrom] = lastTokenId; fashionIdToOwnerIndex[lastTokenId] = indexFrom; } fsArray.length -= 1; fashionIdToOwner[_tokenId] = address(0); delete fashionIdToOwnerIndex[_tokenId]; destroyFashionCount += 1; Transfer(_from, 0, _tokenId); DeleteFashion(_from, _tokenId, _deleteType); } /// @dev Safe transfer by trust contracts function safeTransferByContract(uint256 _tokenId, address _to) external whenNotPaused { require(actionContracts[msg.sender]); require(_tokenId >= 1 && _tokenId <= fashionArray.length); address owner = fashionIdToOwner[_tokenId]; require(owner != address(0)); require(_to != address(0)); require(owner != _to); _transfer(owner, _to, _tokenId); } //---------------------------------------------------------------------------------------------------------- /// @dev Get fashion attrs by tokenId function getFashion(uint256 _tokenId) external view isValidToken(_tokenId) returns (uint16[12] datas) { Fashion storage fs = fashionArray[_tokenId]; datas[0] = fs.protoId; datas[1] = fs.quality; datas[2] = fs.pos; datas[3] = fs.health; datas[4] = fs.atkMin; datas[5] = fs.atkMax; datas[6] = fs.defence; datas[7] = fs.crit; datas[8] = fs.isPercent; datas[9] = fs.attrExt1; datas[10] = fs.attrExt2; datas[11] = fs.attrExt3; } /// @dev Get tokenIds and flags by owner function getOwnFashions(address _owner) external view returns(uint256[] tokens, uint32[] flags) { require(_owner != address(0)); uint256[] storage fsArray = ownerToFashionArray[_owner]; uint256 length = fsArray.length; tokens = new uint256[](length); flags = new uint32[](length); for (uint256 i = 0; i < length; ++i) { tokens[i] = fsArray[i]; Fashion storage fs = fashionArray[fsArray[i]]; flags[i] = uint32(uint32(fs.protoId) * 100 + uint32(fs.quality) * 10 + fs.pos); } } /// @dev WAR token info returned based on Token ID transfered (64 at most) function getFashionsAttrs(uint256[] _tokens) external view returns(uint16[] attrs) { uint256 length = _tokens.length; require(length <= 64); attrs = new uint16[](length * 11); uint256 tokenId; uint256 index; for (uint256 i = 0; i < length; ++i) { tokenId = _tokens[i]; if (fashionIdToOwner[tokenId] != address(0)) { index = i * 11; Fashion storage fs = fashionArray[tokenId]; attrs[index] = fs.health; attrs[index + 1] = fs.atkMin; attrs[index + 2] = fs.atkMax; attrs[index + 3] = fs.defence; attrs[index + 4] = fs.crit; attrs[index + 5] = fs.isPercent; attrs[index + 6] = fs.attrExt1; attrs[index + 7] = fs.attrExt2; attrs[index + 8] = fs.attrExt3; } } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[{"name":"_interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_deleteType","type":"uint16"}],"name":"destroyFashion","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"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":"_approved","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokens","type":"uint256[]"}],"name":"getFashionsAttrs","outputs":[{"name":"attrs","type":"uint16[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getOwnFashions","outputs":[{"name":"tokens","type":"uint256[]"},{"name":"flags","type":"uint32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_to","type":"address"}],"name":"safeTransferByContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"doUnpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getFashion","outputs":[{"name":"datas","type":"uint16[12]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_actionAddr","type":"address"}],"name":"getActionContract","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doPause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_actionAddr","type":"address"},{"name":"_useful","type":"bool"}],"name":"setActionContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newAdmin","type":"address"}],"name":"setAdmin","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":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_idxArray","type":"uint16[4]"},{"name":"_params","type":"uint16[4]"},{"name":"_changeType","type":"uint16"}],"name":"changeFashionAttr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_attrs","type":"uint16[9]"},{"name":"_createType","type":"uint16"}],"name":"createFashion","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","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":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"addrAdmin","outputs":[{"name":"","type":"address"}],"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":true,"inputs":[{"name":"","type":"uint256"}],"name":"fashionArray","outputs":[{"name":"protoId","type":"uint16"},{"name":"quality","type":"uint16"},{"name":"pos","type":"uint16"},{"name":"health","type":"uint16"},{"name":"atkMin","type":"uint16"},{"name":"atkMax","type":"uint16"},{"name":"defence","type":"uint16"},{"name":"crit","type":"uint16"},{"name":"isPercent","type":"uint16"},{"name":"attrExt1","type":"uint16"},{"name":"attrExt2","type":"uint16"},{"name":"attrExt3","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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":[{"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":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"protoId","type":"uint16"},{"indexed":false,"name":"quality","type":"uint16"},{"indexed":false,"name":"pos","type":"uint16"},{"indexed":false,"name":"createType","type":"uint16"}],"name":"CreateFashion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"changeType","type":"uint16"}],"name":"ChangeFashion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"deleteType","type":"uint16"}],"name":"DeleteFashion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"preAdmin","type":"address"},{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminTransferred","type":"event"}]
Contract Creation Code
60606040526000805460ff1916905534156200001a57600080fd5b60008054600160a060020a0333166101000261010060a860020a03199182168117909116179055600180548101906200005490826200005b565b50620000b5565b81548183558181151162000082576000838152602090206200008291810190830162000087565b505050565b620000b291905b80821115620000ae578054600160c060020a03191681556001016200008e565b5090565b90565b6122be80620000c56000396000f3006060604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461016e5780630378f83f146101a257806306fdde03146101c1578063081812fc1461024b578063095ea7b31461027d5780630d047d491461029f57806315de46071461031057806318160ddd146103c857806318ad052b146103ed57806323b872dd1461040f57806330efb8d314610437578063425189e01461044a57806342842e0e146104995780634ea34cdb146104c15780636352211e146104e057806367d0661d146104f65780636fb642de14610509578063704b6c021461052d57806370a082311461054c57806375b599c01461056b57806395d89b411461058d5780639cc477b2146105a0578063a22cb465146105c9578063b187bd26146105ed578063b88d4fde14610600578063bfae2f0e14610637578063e985e9c51461064a578063febb986b1461066f575b600080fd5b341561017957600080fd5b61018e600160e060020a0319600435166106f7565b604051901515815260200160405180910390f35b34156101ad57600080fd5b6101bf60043561ffff602435166107aa565b005b34156101cc57600080fd5b6101d46109c4565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102105780820151838201526020016101f8565b50505050905090810190601f16801561023d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025657600080fd5b610261600435610a06565b604051600160a060020a03909116815260200160405180910390f35b341561028857600080fd5b6101bf600160a060020a0360043516602435610a67565b34156102aa57600080fd5b6102bd6004803560248101910135610b65565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156102fc5780820151838201526020016102e4565b505050509050019250505060405180910390f35b341561031b57600080fd5b61032f600160a060020a0360043516610de6565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561037357808201518382015260200161035b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156103b257808201518382015260200161039a565b5050505090500194505050505060405180910390f35b34156103d357600080fd5b6103db610f3c565b60405190815260200160405180910390f35b34156103f857600080fd5b6101bf600435600160a060020a0360243516610f4a565b341561041a57600080fd5b6101bf600160a060020a0360043581169060243516604435611003565b341561044257600080fd5b6101bf61113f565b341561045557600080fd5b61046060043561117c565b604051808261018080838360005b8381101561048657808201518382015260200161046e565b5050505090500191505060405180910390f35b34156104a457600080fd5b6101bf600160a060020a03600435811690602435166044356112e2565b34156104cc57600080fd5b61018e600160a060020a036004351661130c565b34156104eb57600080fd5b61026160043561134c565b341561050157600080fd5b6101bf611367565b341561051457600080fd5b6101bf600160a060020a036004351660243515156113a6565b341561053857600080fd5b6101bf600160a060020a03600435166113f1565b341561055757600080fd5b6103db600160a060020a036004351661149c565b341561057657600080fd5b6101bf600435602460a461ffff61012435166114cf565b341561059857600080fd5b6101d461165f565b34156105ab57600080fd5b6103db600160a060020a0360043516602461ffff61014435166116a0565b34156105d457600080fd5b6101bf600160a060020a0360043516602435151561195f565b34156105f857600080fd5b61018e6119df565b341561060b57600080fd5b6101bf600160a060020a03600480358216916024803590911691604435916064359081019101356119e8565b341561064257600080fd5b610261611a3a565b341561065557600080fd5b61018e600160a060020a0360043581169060243516611a4e565b341561067a57600080fd5b610685600435611a7c565b60405161ffff9c8d1681529a8c1660208c0152988b166040808c0191909152978b1660608b0152958a1660808a015293891660a089015291881660c0880152871660e0870152861661010086015285166101208501528416610140840152921661016082015261018001905180910390f35b60007f01ffc9a700000000000000000000000000000000000000000000000000000000600160e060020a03198316148061075a57507f80ac58cd00000000000000000000000000000000000000000000000000000000600160e060020a03198316145b8061078e57507f8153916a00000000000000000000000000000000000000000000000000000000600160e060020a03198316145b80156107a45750600160e060020a031980831614155b92915050565b6000805481908190819060ff16156107c157600080fd5b85600181101580156107d557506001548111155b15156107e057600080fd5b600081815260036020526040902054600160a060020a0316151561080357600080fd5b600160a060020a03331660009081526008602052604090205460ff16151561082a57600080fd5b6000878152600360209081526040808320546005835281842054600160a060020a03909116808552600490935292208054919750919550909350879084908690811061087257fe5b6000918252602090912001541461088857600080fd5b82546000190184146108e4578254839060001981019081106108a657fe5b90600052602060002090015491508183858154811015156108c357fe5b60009182526020808320909101929092558381526005909152604090208490555b8254600019016108f484826121bc565b506000878152600360209081526040808320805473ffffffffffffffffffffffffffffffffffffffff191690556005909152808220829055600280546001019055600160a060020a038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908a905190815260200160405180910390a384600160a060020a03167f731c886bc6fd1e9c7249159422a4e267e6babaa0543d8aa9c085d1d0ce896611888860405191825261ffff1660208201526040908101905180910390a250505050505050565b6109cc6121e0565b60408051908101604052600981527f57415220546f6b656e0000000000000000000000000000000000000000000000602082015290505b90565b60008160018110158015610a1c57506001548111155b1515610a2757600080fd5b600081815260036020526040902054600160a060020a03161515610a4a57600080fd5b5050600090815260066020526040902054600160a060020a031690565b6000805460ff1615610a7857600080fd5b50600081815260036020526040902054600160a060020a0316801515610a9d57600080fd5b80600160a060020a031633600160a060020a03161480610ae35750600160a060020a038082166000908152600760209081526040808320339094168352929052205460ff165b1515610aee57600080fd5b60008281526006602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386811691821790925591908316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a3505050565b610b6d6121e0565b8160008080806040851115610b8157600080fd5b84600b02604051805910610b925750595b90808252806020026020018201604052509550600091505b84821015610ddb57878783818110610bbe57fe5b602090810292909201356000818152600390935260409092205491955050600160a060020a031615610dd05760018054600b8402945085908110610bfe57fe5b600091825260209091200180549091506601000000000000900461ffff16868481518110610c2857fe5b61ffff92831660209182029092010152815468010000000000000000900416866001850181518110610c5657fe5b61ffff9283166020918202909201015281546a0100000000000000000000900416866002850181518110610c8657fe5b61ffff9283166020918202909201015281546c01000000000000000000000000900416866003850181518110610cb857fe5b61ffff9283166020918202909201015281546e010000000000000000000000000000900416866004850181518110610cec57fe5b61ffff928316602091820290920101528154700100000000000000000000000000000000900416866005850181518110610d2257fe5b61ffff9283166020918202909201015281547201000000000000000000000000000000000000900416866006850181518110610d5a57fe5b61ffff92831660209182029092010152815474010000000000000000000000000000000000000000900416866007850181518110610d9457fe5b61ffff92831660209182029092010152815460b060020a900416866008850181518110610dbd57fe5b61ffff9092166020928302909101909101525b816001019150610baa565b505050505092915050565b610dee6121e0565b610df66121e0565b6000808080600160a060020a0387161515610e1057600080fd5b600160a060020a0387166000908152600460205260409081902080549095509350839051805910610e3e5750595b9080825280602002602001820160405250955082604051805910610e5f5750595b90808252806020026020018201604052509450600091505b82821015610f33578382815481101515610e8d57fe5b906000526020600020900154868381518110610ea557fe5b602090810290910101528354600190859084908110610ec057fe5b60009182526020909120015481548110610ed657fe5b60009182526020909120018054909150640100000000810461ffff9081166201000083048216600a02919092166064020101858381518110610f1457fe5b63ffffffff909216602092830290910190910152600190910190610e77565b50505050915091565b600254600154036000190190565b6000805460ff1615610f5b57600080fd5b600160a060020a03331660009081526008602052604090205460ff161515610f8257600080fd5b60018310158015610f9557506001548311155b1515610fa057600080fd5b50600082815260036020526040902054600160a060020a0316801515610fc557600080fd5b600160a060020a0382161515610fda57600080fd5b600160a060020a038181169083161415610ff357600080fd5b610ffe818385611b5e565b505050565b6000805460ff161561101457600080fd5b816001811015801561102857506001548111155b151561103357600080fd5b600081815260036020526040902054600160a060020a0316151561105657600080fd5b6000838152600360205260409020548390600160a060020a0390811690331681148061109c575060008281526006602052604090205433600160a060020a039081169116145b806110cd5750600160a060020a038082166000908152600760209081526040808320339094168352929052205460ff165b15156110d857600080fd5b600085815260036020526040902054600160a060020a031693508315156110fe57600080fd5b600160a060020a038616151561111357600080fd5b600160a060020a038481169088161461112b57600080fd5b611136878787611b5e565b50505050505050565b60005433600160a060020a03908116610100909204161461115f57600080fd5b60005460ff16151561117057600080fd5b6000805460ff19169055565b6111846121f2565b6000826001811015801561119a57506001548111155b15156111a557600080fd5b600081815260036020526040902054600160a060020a031615156111c857600080fd5b60018054859081106111d657fe5b6000918252602091829020015461ffff80821686526201000082048116928601929092526401000000008104821660408601526601000000000000810482166060860152680100000000000000008104821660808601526a01000000000000000000008104821660a08601526c010000000000000000000000008104821660c08601526e0100000000000000000000000000008104821660e086015270010000000000000000000000000000000081048216610100860152720100000000000000000000000000000000000081048216610120860152740100000000000000000000000000000000000000008104821661014086015260b060020a900416610160840152509092915050565b60005460ff16156112f257600080fd5b610ffe838383602060405190810160405260008152611d5b565b6000805433600160a060020a03908116610100909204161461132d57600080fd5b50600160a060020a031660009081526008602052604090205460ff1690565b600090815260036020526040902054600160a060020a031690565b60005433600160a060020a03908116610100909204161461138757600080fd5b60005460ff161561139757600080fd5b6000805460ff19166001179055565b60005433600160a060020a0390811661010090920416146113c657600080fd5b600160a060020a03919091166000908152600860205260409020805460ff1916911515919091179055565b60005433600160a060020a03908116610100909204161461141157600080fd5b600160a060020a038116151561142657600080fd5b600054600160a060020a03808316916101009004167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a360008054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000600160a060020a03821615156114b357600080fd5b50600160a060020a031660009081526004602052604090205490565b6000805460ff16156114e057600080fd5b84600181101580156114f457506001548111155b15156114ff57600080fd5b600081815260036020526040902054600160a060020a0316151561152257600080fd5b600160a060020a03331660009081526008602052604090205460ff16151561154957600080fd5b600180548790811061155757fe5b60009182526020822001925061ffff863516111561158b5761158b8261ffff8735168660005b602002013561ffff16611fd1565b600061ffff60208701351611156115b1576115b18261ffff60208801351686600161157d565b600061ffff60408701351611156115d7576115d78261ffff60408801351686600261157d565b600061ffff60608701351611156115fd576115fd8261ffff60608801351686600361157d565b6000868152600360205260409081902054600160a060020a0316907f447449e0835c6129793b404e5f4373bee3e0c20463da359d3cf0922bd8d911cf90889086905191825261ffff1660208201526040908101905180910390a2505050505050565b6116676121e0565b60408051908101604052600381527f57415200000000000000000000000000000000000000000000000000000000006020820152905090565b600080548190819060ff16156116b557600080fd5b600160a060020a03331660009081526008602052604090205460ff1615156116dc57600080fd5b600160a060020a03861615156116f157600080fd5b6001549150640100000000821061170757600080fd5b60018054810190611718908261221b565b50600180548390811061172757fe5b600091825260209182902001805461ffff1916873561ffff9081169190911763ffff0000191692880135811662010000029290921765ffff00000000191660408801358316640100000000021781559150606086013516156117a657805467ffff0000000000001916606086013561ffff166601000000000000021781555b61ffff6080860135161561180657805469ffff00000000000000001916608086013561ffff9081166801000000000000000002919091176bffff00000000000000000000191660a0870135919091166a0100000000000000000000021781555b61ffff60c086013516156118435780546dffff000000000000000000000000191660c086013561ffff166c01000000000000000000000000021781555b61ffff60e086013516156118845780546fffff0000000000000000000000000000191660e086013561ffff166e010000000000000000000000000000021781555b61ffff61010086013516156118cb57805471ffff00000000000000000000000000000000191661010086013561ffff16700100000000000000000000000000000000021781555b6118d760008784611b5e565b600160a060020a0386167f8ded42b67fd3601c2cdbeb4fcb9a03da61bfd15fedc18f2908c4fe93305ed7428361ffff883581169060208a013516896002602002013561ffff168960405194855261ffff938416602086015291831660408086019190915290831660608501529116608083015260a0909101905180910390a250949350505050565b60005460ff161561196f57600080fd5b33600160a060020a0390811660008181526007602090815260408083209487168084529490915290819020805460ff19168515151790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190849051901515815260200160405180910390a35050565b60005460ff1681565b60005460ff16156119f857600080fd5b611a3385858585858080601f016020809104026020016040519081016040528181529291906020840183838082843750611d5b945050505050565b5050505050565b6000546101009004600160a060020a031681565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6001805482908110611a8a57fe5b60009182526020909120015461ffff80821692506201000082048116916401000000008104821691660100000000000082048116916801000000000000000081048216916a010000000000000000000082048116916c0100000000000000000000000081048216916e010000000000000000000000000000820481169170010000000000000000000000000000000081048216917201000000000000000000000000000000000000820481169174010000000000000000000000000000000000000000810482169160b060020a909104168c565b60008080600160a060020a03861615611c7657600084815260056020908152604080832054600160a060020a038a1684526004909252909120805491945092508490839085908110611bac57fe5b60009182526020909120015414611bc257600080fd5b8154600019018314611c1e57815482906000198101908110611be057fe5b9060005260206000209001549050808284815481101515611bfd57fe5b60009182526020808320909101929092558281526005909152604090208390555b815460001901611c2e83826121bc565b50600084815260066020526040902054600160a060020a031615611c76576000848152600660205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b6000848152600360209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a16908117909155835260049091529020805460018101611cc983826121bc565b506000918252602080832091909101869055600160a060020a0380881680845260048352604080852054898652600590945290932060001990920190915587161515611d155730611d17565b865b600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405190815260200160405180910390a3505050505050565b60008060008460018110158015611d7457506001548111155b1515611d7f57600080fd5b600081815260036020526040902054600160a060020a03161515611da257600080fd5b6000868152600360205260409020548690600160a060020a03908116903316811480611de8575060008281526006602052604090205433600160a060020a039081169116145b80611e195750600160a060020a038082166000908152600760209081526040808320339094168352929052205460ff165b1515611e2457600080fd5b600088815260036020526040902054600160a060020a03169550851515611e4a57600080fd5b600160a060020a0389161515611e5f57600080fd5b600160a060020a03868116908b1614611e7757600080fd5b611e828a8a8a611b5e565b883b9450841515611e9257611fc5565b88600160a060020a031663f0b9e5ba8b8a8a6040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611f2a578082015183820152602001611f12565b50505050905090810190601f168015611f575780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515611f7757600080fd5b5af11515611f8457600080fd5b50505060405180519450507ff0b9e5ba00000000000000000000000000000000000000000000000000000000600160e060020a0319851614611fc557600080fd5b50505050505050505050565b8161ffff166003141561200157825467ffff0000000000001916660100000000000061ffff831602178355610ffe565b8161ffff166004141561203557825469ffff000000000000000019166801000000000000000061ffff831602178355610ffe565b8161ffff166005141561206d5782546bffff0000000000000000000019166a010000000000000000000061ffff831602178355610ffe565b8161ffff16600614156120a95782546dffff00000000000000000000000019166c0100000000000000000000000061ffff831602178355610ffe565b8161ffff16600714156120e95782546fffff000000000000000000000000000019166e01000000000000000000000000000061ffff831602178355610ffe565b8161ffff166009141561213157825473ffff0000000000000000000000000000000000001916720100000000000000000000000000000000000061ffff831602178355610ffe565b8161ffff16600a141561217d57825475ffff000000000000000000000000000000000000000019167401000000000000000000000000000000000000000061ffff831602178355610ffe565b8161ffff16600b1415610ffe57825461ffff821660b060020a0277ffff0000000000000000000000000000000000000000000019909116178355505050565b815481835581811511610ffe57600083815260209020610ffe91810190830161223f565b60206040519081016040526000815290565b610180604051908101604052600c815b6000815260001990910190602001816122025790505090565b815481835581811511610ffe57600083815260209020610ffe91810190830161225d565b610a0391905b808211156122595760008155600101612245565b5090565b610a0391905b8082111561225957805477ffffffffffffffffffffffffffffffffffffffffffffffff191681556001016122635600a165627a7a723058206f4784360e1bc9209cf875bc0505be8673bd53d559c5532272edf7f169e19e850029
Deployed Bytecode
0x6060604052600436106101695763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461016e5780630378f83f146101a257806306fdde03146101c1578063081812fc1461024b578063095ea7b31461027d5780630d047d491461029f57806315de46071461031057806318160ddd146103c857806318ad052b146103ed57806323b872dd1461040f57806330efb8d314610437578063425189e01461044a57806342842e0e146104995780634ea34cdb146104c15780636352211e146104e057806367d0661d146104f65780636fb642de14610509578063704b6c021461052d57806370a082311461054c57806375b599c01461056b57806395d89b411461058d5780639cc477b2146105a0578063a22cb465146105c9578063b187bd26146105ed578063b88d4fde14610600578063bfae2f0e14610637578063e985e9c51461064a578063febb986b1461066f575b600080fd5b341561017957600080fd5b61018e600160e060020a0319600435166106f7565b604051901515815260200160405180910390f35b34156101ad57600080fd5b6101bf60043561ffff602435166107aa565b005b34156101cc57600080fd5b6101d46109c4565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102105780820151838201526020016101f8565b50505050905090810190601f16801561023d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025657600080fd5b610261600435610a06565b604051600160a060020a03909116815260200160405180910390f35b341561028857600080fd5b6101bf600160a060020a0360043516602435610a67565b34156102aa57600080fd5b6102bd6004803560248101910135610b65565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156102fc5780820151838201526020016102e4565b505050509050019250505060405180910390f35b341561031b57600080fd5b61032f600160a060020a0360043516610de6565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561037357808201518382015260200161035b565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156103b257808201518382015260200161039a565b5050505090500194505050505060405180910390f35b34156103d357600080fd5b6103db610f3c565b60405190815260200160405180910390f35b34156103f857600080fd5b6101bf600435600160a060020a0360243516610f4a565b341561041a57600080fd5b6101bf600160a060020a0360043581169060243516604435611003565b341561044257600080fd5b6101bf61113f565b341561045557600080fd5b61046060043561117c565b604051808261018080838360005b8381101561048657808201518382015260200161046e565b5050505090500191505060405180910390f35b34156104a457600080fd5b6101bf600160a060020a03600435811690602435166044356112e2565b34156104cc57600080fd5b61018e600160a060020a036004351661130c565b34156104eb57600080fd5b61026160043561134c565b341561050157600080fd5b6101bf611367565b341561051457600080fd5b6101bf600160a060020a036004351660243515156113a6565b341561053857600080fd5b6101bf600160a060020a03600435166113f1565b341561055757600080fd5b6103db600160a060020a036004351661149c565b341561057657600080fd5b6101bf600435602460a461ffff61012435166114cf565b341561059857600080fd5b6101d461165f565b34156105ab57600080fd5b6103db600160a060020a0360043516602461ffff61014435166116a0565b34156105d457600080fd5b6101bf600160a060020a0360043516602435151561195f565b34156105f857600080fd5b61018e6119df565b341561060b57600080fd5b6101bf600160a060020a03600480358216916024803590911691604435916064359081019101356119e8565b341561064257600080fd5b610261611a3a565b341561065557600080fd5b61018e600160a060020a0360043581169060243516611a4e565b341561067a57600080fd5b610685600435611a7c565b60405161ffff9c8d1681529a8c1660208c0152988b166040808c0191909152978b1660608b0152958a1660808a015293891660a089015291881660c0880152871660e0870152861661010086015285166101208501528416610140840152921661016082015261018001905180910390f35b60007f01ffc9a700000000000000000000000000000000000000000000000000000000600160e060020a03198316148061075a57507f80ac58cd00000000000000000000000000000000000000000000000000000000600160e060020a03198316145b8061078e57507f8153916a00000000000000000000000000000000000000000000000000000000600160e060020a03198316145b80156107a45750600160e060020a031980831614155b92915050565b6000805481908190819060ff16156107c157600080fd5b85600181101580156107d557506001548111155b15156107e057600080fd5b600081815260036020526040902054600160a060020a0316151561080357600080fd5b600160a060020a03331660009081526008602052604090205460ff16151561082a57600080fd5b6000878152600360209081526040808320546005835281842054600160a060020a03909116808552600490935292208054919750919550909350879084908690811061087257fe5b6000918252602090912001541461088857600080fd5b82546000190184146108e4578254839060001981019081106108a657fe5b90600052602060002090015491508183858154811015156108c357fe5b60009182526020808320909101929092558381526005909152604090208490555b8254600019016108f484826121bc565b506000878152600360209081526040808320805473ffffffffffffffffffffffffffffffffffffffff191690556005909152808220829055600280546001019055600160a060020a038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908a905190815260200160405180910390a384600160a060020a03167f731c886bc6fd1e9c7249159422a4e267e6babaa0543d8aa9c085d1d0ce896611888860405191825261ffff1660208201526040908101905180910390a250505050505050565b6109cc6121e0565b60408051908101604052600981527f57415220546f6b656e0000000000000000000000000000000000000000000000602082015290505b90565b60008160018110158015610a1c57506001548111155b1515610a2757600080fd5b600081815260036020526040902054600160a060020a03161515610a4a57600080fd5b5050600090815260066020526040902054600160a060020a031690565b6000805460ff1615610a7857600080fd5b50600081815260036020526040902054600160a060020a0316801515610a9d57600080fd5b80600160a060020a031633600160a060020a03161480610ae35750600160a060020a038082166000908152600760209081526040808320339094168352929052205460ff165b1515610aee57600080fd5b60008281526006602052604090819020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386811691821790925591908316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a3505050565b610b6d6121e0565b8160008080806040851115610b8157600080fd5b84600b02604051805910610b925750595b90808252806020026020018201604052509550600091505b84821015610ddb57878783818110610bbe57fe5b602090810292909201356000818152600390935260409092205491955050600160a060020a031615610dd05760018054600b8402945085908110610bfe57fe5b600091825260209091200180549091506601000000000000900461ffff16868481518110610c2857fe5b61ffff92831660209182029092010152815468010000000000000000900416866001850181518110610c5657fe5b61ffff9283166020918202909201015281546a0100000000000000000000900416866002850181518110610c8657fe5b61ffff9283166020918202909201015281546c01000000000000000000000000900416866003850181518110610cb857fe5b61ffff9283166020918202909201015281546e010000000000000000000000000000900416866004850181518110610cec57fe5b61ffff928316602091820290920101528154700100000000000000000000000000000000900416866005850181518110610d2257fe5b61ffff9283166020918202909201015281547201000000000000000000000000000000000000900416866006850181518110610d5a57fe5b61ffff92831660209182029092010152815474010000000000000000000000000000000000000000900416866007850181518110610d9457fe5b61ffff92831660209182029092010152815460b060020a900416866008850181518110610dbd57fe5b61ffff9092166020928302909101909101525b816001019150610baa565b505050505092915050565b610dee6121e0565b610df66121e0565b6000808080600160a060020a0387161515610e1057600080fd5b600160a060020a0387166000908152600460205260409081902080549095509350839051805910610e3e5750595b9080825280602002602001820160405250955082604051805910610e5f5750595b90808252806020026020018201604052509450600091505b82821015610f33578382815481101515610e8d57fe5b906000526020600020900154868381518110610ea557fe5b602090810290910101528354600190859084908110610ec057fe5b60009182526020909120015481548110610ed657fe5b60009182526020909120018054909150640100000000810461ffff9081166201000083048216600a02919092166064020101858381518110610f1457fe5b63ffffffff909216602092830290910190910152600190910190610e77565b50505050915091565b600254600154036000190190565b6000805460ff1615610f5b57600080fd5b600160a060020a03331660009081526008602052604090205460ff161515610f8257600080fd5b60018310158015610f9557506001548311155b1515610fa057600080fd5b50600082815260036020526040902054600160a060020a0316801515610fc557600080fd5b600160a060020a0382161515610fda57600080fd5b600160a060020a038181169083161415610ff357600080fd5b610ffe818385611b5e565b505050565b6000805460ff161561101457600080fd5b816001811015801561102857506001548111155b151561103357600080fd5b600081815260036020526040902054600160a060020a0316151561105657600080fd5b6000838152600360205260409020548390600160a060020a0390811690331681148061109c575060008281526006602052604090205433600160a060020a039081169116145b806110cd5750600160a060020a038082166000908152600760209081526040808320339094168352929052205460ff165b15156110d857600080fd5b600085815260036020526040902054600160a060020a031693508315156110fe57600080fd5b600160a060020a038616151561111357600080fd5b600160a060020a038481169088161461112b57600080fd5b611136878787611b5e565b50505050505050565b60005433600160a060020a03908116610100909204161461115f57600080fd5b60005460ff16151561117057600080fd5b6000805460ff19169055565b6111846121f2565b6000826001811015801561119a57506001548111155b15156111a557600080fd5b600081815260036020526040902054600160a060020a031615156111c857600080fd5b60018054859081106111d657fe5b6000918252602091829020015461ffff80821686526201000082048116928601929092526401000000008104821660408601526601000000000000810482166060860152680100000000000000008104821660808601526a01000000000000000000008104821660a08601526c010000000000000000000000008104821660c08601526e0100000000000000000000000000008104821660e086015270010000000000000000000000000000000081048216610100860152720100000000000000000000000000000000000081048216610120860152740100000000000000000000000000000000000000008104821661014086015260b060020a900416610160840152509092915050565b60005460ff16156112f257600080fd5b610ffe838383602060405190810160405260008152611d5b565b6000805433600160a060020a03908116610100909204161461132d57600080fd5b50600160a060020a031660009081526008602052604090205460ff1690565b600090815260036020526040902054600160a060020a031690565b60005433600160a060020a03908116610100909204161461138757600080fd5b60005460ff161561139757600080fd5b6000805460ff19166001179055565b60005433600160a060020a0390811661010090920416146113c657600080fd5b600160a060020a03919091166000908152600860205260409020805460ff1916911515919091179055565b60005433600160a060020a03908116610100909204161461141157600080fd5b600160a060020a038116151561142657600080fd5b600054600160a060020a03808316916101009004167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a360008054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b6000600160a060020a03821615156114b357600080fd5b50600160a060020a031660009081526004602052604090205490565b6000805460ff16156114e057600080fd5b84600181101580156114f457506001548111155b15156114ff57600080fd5b600081815260036020526040902054600160a060020a0316151561152257600080fd5b600160a060020a03331660009081526008602052604090205460ff16151561154957600080fd5b600180548790811061155757fe5b60009182526020822001925061ffff863516111561158b5761158b8261ffff8735168660005b602002013561ffff16611fd1565b600061ffff60208701351611156115b1576115b18261ffff60208801351686600161157d565b600061ffff60408701351611156115d7576115d78261ffff60408801351686600261157d565b600061ffff60608701351611156115fd576115fd8261ffff60608801351686600361157d565b6000868152600360205260409081902054600160a060020a0316907f447449e0835c6129793b404e5f4373bee3e0c20463da359d3cf0922bd8d911cf90889086905191825261ffff1660208201526040908101905180910390a2505050505050565b6116676121e0565b60408051908101604052600381527f57415200000000000000000000000000000000000000000000000000000000006020820152905090565b600080548190819060ff16156116b557600080fd5b600160a060020a03331660009081526008602052604090205460ff1615156116dc57600080fd5b600160a060020a03861615156116f157600080fd5b6001549150640100000000821061170757600080fd5b60018054810190611718908261221b565b50600180548390811061172757fe5b600091825260209182902001805461ffff1916873561ffff9081169190911763ffff0000191692880135811662010000029290921765ffff00000000191660408801358316640100000000021781559150606086013516156117a657805467ffff0000000000001916606086013561ffff166601000000000000021781555b61ffff6080860135161561180657805469ffff00000000000000001916608086013561ffff9081166801000000000000000002919091176bffff00000000000000000000191660a0870135919091166a0100000000000000000000021781555b61ffff60c086013516156118435780546dffff000000000000000000000000191660c086013561ffff166c01000000000000000000000000021781555b61ffff60e086013516156118845780546fffff0000000000000000000000000000191660e086013561ffff166e010000000000000000000000000000021781555b61ffff61010086013516156118cb57805471ffff00000000000000000000000000000000191661010086013561ffff16700100000000000000000000000000000000021781555b6118d760008784611b5e565b600160a060020a0386167f8ded42b67fd3601c2cdbeb4fcb9a03da61bfd15fedc18f2908c4fe93305ed7428361ffff883581169060208a013516896002602002013561ffff168960405194855261ffff938416602086015291831660408086019190915290831660608501529116608083015260a0909101905180910390a250949350505050565b60005460ff161561196f57600080fd5b33600160a060020a0390811660008181526007602090815260408083209487168084529490915290819020805460ff19168515151790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190849051901515815260200160405180910390a35050565b60005460ff1681565b60005460ff16156119f857600080fd5b611a3385858585858080601f016020809104026020016040519081016040528181529291906020840183838082843750611d5b945050505050565b5050505050565b6000546101009004600160a060020a031681565b600160a060020a03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6001805482908110611a8a57fe5b60009182526020909120015461ffff80821692506201000082048116916401000000008104821691660100000000000082048116916801000000000000000081048216916a010000000000000000000082048116916c0100000000000000000000000081048216916e010000000000000000000000000000820481169170010000000000000000000000000000000081048216917201000000000000000000000000000000000000820481169174010000000000000000000000000000000000000000810482169160b060020a909104168c565b60008080600160a060020a03861615611c7657600084815260056020908152604080832054600160a060020a038a1684526004909252909120805491945092508490839085908110611bac57fe5b60009182526020909120015414611bc257600080fd5b8154600019018314611c1e57815482906000198101908110611be057fe5b9060005260206000209001549050808284815481101515611bfd57fe5b60009182526020808320909101929092558281526005909152604090208390555b815460001901611c2e83826121bc565b50600084815260066020526040902054600160a060020a031615611c76576000848152600660205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b6000848152600360209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038a16908117909155835260049091529020805460018101611cc983826121bc565b506000918252602080832091909101869055600160a060020a0380881680845260048352604080852054898652600590945290932060001990920190915587161515611d155730611d17565b865b600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405190815260200160405180910390a3505050505050565b60008060008460018110158015611d7457506001548111155b1515611d7f57600080fd5b600081815260036020526040902054600160a060020a03161515611da257600080fd5b6000868152600360205260409020548690600160a060020a03908116903316811480611de8575060008281526006602052604090205433600160a060020a039081169116145b80611e195750600160a060020a038082166000908152600760209081526040808320339094168352929052205460ff165b1515611e2457600080fd5b600088815260036020526040902054600160a060020a03169550851515611e4a57600080fd5b600160a060020a0389161515611e5f57600080fd5b600160a060020a03868116908b1614611e7757600080fd5b611e828a8a8a611b5e565b883b9450841515611e9257611fc5565b88600160a060020a031663f0b9e5ba8b8a8a6040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611f2a578082015183820152602001611f12565b50505050905090810190601f168015611f575780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1515611f7757600080fd5b5af11515611f8457600080fd5b50505060405180519450507ff0b9e5ba00000000000000000000000000000000000000000000000000000000600160e060020a0319851614611fc557600080fd5b50505050505050505050565b8161ffff166003141561200157825467ffff0000000000001916660100000000000061ffff831602178355610ffe565b8161ffff166004141561203557825469ffff000000000000000019166801000000000000000061ffff831602178355610ffe565b8161ffff166005141561206d5782546bffff0000000000000000000019166a010000000000000000000061ffff831602178355610ffe565b8161ffff16600614156120a95782546dffff00000000000000000000000019166c0100000000000000000000000061ffff831602178355610ffe565b8161ffff16600714156120e95782546fffff000000000000000000000000000019166e01000000000000000000000000000061ffff831602178355610ffe565b8161ffff166009141561213157825473ffff0000000000000000000000000000000000001916720100000000000000000000000000000000000061ffff831602178355610ffe565b8161ffff16600a141561217d57825475ffff000000000000000000000000000000000000000019167401000000000000000000000000000000000000000061ffff831602178355610ffe565b8161ffff16600b1415610ffe57825461ffff821660b060020a0277ffff0000000000000000000000000000000000000000000019909116178355505050565b815481835581811511610ffe57600083815260209020610ffe91810190830161223f565b60206040519081016040526000815290565b610180604051908101604052600c815b6000815260001990910190602001816122025790505090565b815481835581811511610ffe57600083815260209020610ffe91810190830161225d565b610a0391905b808211156122595760008155600101612245565b5090565b610a0391905b8082111561225957805477ffffffffffffffffffffffffffffffffffffffffffffffff191681556001016122635600a165627a7a723058206f4784360e1bc9209cf875bc0505be8673bd53d559c5532272edf7f169e19e850029
Swarm Source
bzzr://6f4784360e1bc9209cf875bc0505be8673bd53d559c5532272edf7f169e19e85
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.