ERC-20
Source Code
Overview
Max Total Supply
19,738 WAR
Holders
778
Transfers
-
0
Market
Onchain Market Cap
-
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
Contract ABI
API[{"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.
Add Token to MetaMask (Web3)