Source Code
Latest 25 from a total of 11,823 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Equip Up | 7006482 | 2535 days ago | IN | 0 ETH | 0.00007456 | ||||
| Equip Up | 7005414 | 2535 days ago | IN | 0 ETH | 0.00007456 | ||||
| Equip Up | 6764547 | 2576 days ago | IN | 0 ETH | 0.00034423 | ||||
| Equip Up | 6743851 | 2579 days ago | IN | 0 ETH | 0.00022948 | ||||
| Equip Up | 6684055 | 2589 days ago | IN | 0 ETH | 0.00022464 | ||||
| Equip Up | 6684050 | 2589 days ago | IN | 0 ETH | 0.00046646 | ||||
| Equip Up | 6676752 | 2590 days ago | IN | 0 ETH | 0.00028686 | ||||
| Equip Up | 6675970 | 2590 days ago | IN | 0 ETH | 0.00034423 | ||||
| Equip Up | 6675575 | 2590 days ago | IN | 0 ETH | 0.00044534 | ||||
| Equip Up | 6667910 | 2591 days ago | IN | 0 ETH | 0.000092 | ||||
| Equip Up | 6637762 | 2596 days ago | IN | 0 ETH | 0.00005621 | ||||
| Equip Up | 6633917 | 2597 days ago | IN | 0 ETH | 0.00005621 | ||||
| Equip Up | 6631680 | 2597 days ago | IN | 0 ETH | 0.00005621 | ||||
| Equip Up | 6631677 | 2597 days ago | IN | 0 ETH | 0.00005621 | ||||
| Equip Up | 6631677 | 2597 days ago | IN | 0 ETH | 0.00005621 | ||||
| Equip Up | 6626310 | 2598 days ago | IN | 0 ETH | 0.00002944 | ||||
| Equip Up | 6618338 | 2600 days ago | IN | 0 ETH | 0.00002944 | ||||
| Equip Up | 6611451 | 2601 days ago | IN | 0 ETH | 0.00010708 | ||||
| Equip Up | 6611444 | 2601 days ago | IN | 0 ETH | 0.00010708 | ||||
| Equip Up | 6611444 | 2601 days ago | IN | 0 ETH | 0.00010708 | ||||
| Equip Up | 6611444 | 2601 days ago | IN | 0 ETH | 0.00010708 | ||||
| Equip Up | 6611127 | 2601 days ago | IN | 0 ETH | 0.00017607 | ||||
| Equip Up | 6589665 | 2604 days ago | IN | 0 ETH | 0.00032731 | ||||
| Equip Up | 6589662 | 2604 days ago | IN | 0 ETH | 0.00032731 | ||||
| Equip Up | 6589660 | 2604 days ago | IN | 0 ETH | 0.00028245 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DataEquip
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-26 */ /* ==================================================================== */ /* Copyright (c) 2018 The ether.online Project. All rights reserved. /* /* https://ether.online The first RPG game of blockchain /* /* authors [email protected] /* [email protected] /* ==================================================================== */ 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 AccessService is AccessAdmin { address public addrService; address public addrFinance; modifier onlyService() { require(msg.sender == addrService); _; } modifier onlyFinance() { require(msg.sender == addrFinance); _; } function setService(address _newService) external { require(msg.sender == addrService || msg.sender == addrAdmin); require(_newService != address(0)); addrService = _newService; } function setFinance(address _newFinance) external { require(msg.sender == addrFinance || msg.sender == addrAdmin); require(_newFinance != address(0)); addrFinance = _newFinance; } function withdraw(address _target, uint256 _amount) external { require(msg.sender == addrFinance || msg.sender == addrAdmin); require(_amount > 0); address receiver = _target == address(0) ? addrFinance : _target; uint256 balance = this.balance; if (_amount < balance) { receiver.transfer(_amount); } else { receiver.transfer(this.balance); } } } interface IDataMining { function getRecommender(address _target) external view returns(address); function subFreeMineral(address _target) external returns(bool); } interface IDataEquip { function isEquiped(address _target, uint256 _tokenId) external view returns(bool); function isEquipedAny2(address _target, uint256 _tokenId1, uint256 _tokenId2) external view returns(bool); function isEquipedAny3(address _target, uint256 _tokenId1, uint256 _tokenId2, uint256 _tokenId3) external view returns(bool); } contract Random { uint256 _seed; function _rand() internal returns (uint256) { _seed = uint256(keccak256(_seed, block.blockhash(block.number - 1), block.coinbase, block.difficulty)); return _seed; } function _randBySeed(uint256 _outSeed) internal view returns (uint256) { return uint256(keccak256(_outSeed, block.blockhash(block.number - 1), block.coinbase, block.difficulty)); } } /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } contract 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 DataEquip is AccessService, IDataEquip { event EquipChanged(address indexed _target); /// @dev WarToken(NFT) contract address WarToken public tokenContract; mapping (address => uint256) public slotWeapon; mapping (address => uint256) public slotHat; mapping (address => uint256) public slotCloth; mapping (address => uint256) public slotPant; mapping (address => uint256) public slotShoes; mapping (address => uint256) public slotPet; function DataEquip(address _nftAddr) public { addrAdmin = msg.sender; addrService = msg.sender; addrFinance = msg.sender; tokenContract = WarToken(_nftAddr); } function _equipUpOne(address _owner, uint256 _tokenId) private { require(tokenContract.ownerOf(_tokenId) == _owner); uint16[12] memory attrs = tokenContract.getFashion(_tokenId); uint16 pos = attrs[2]; if (pos == 1) { if (slotWeapon[_owner] != _tokenId) { slotWeapon[_owner] = _tokenId; } } else if (pos == 2) { if (slotHat[_owner] != _tokenId) { slotHat[_owner] = _tokenId; } } else if (pos == 3) { if (slotCloth[_owner] != _tokenId) { slotCloth[_owner] = _tokenId; } } else if (pos == 4) { if (slotPant[_owner] != _tokenId) { slotPant[_owner] = _tokenId; } } else if (pos == 5) { if (slotShoes[_owner] != _tokenId) { slotShoes[_owner] = _tokenId; } } else if (pos == 9) { if (slotPet[_owner] != _tokenId) { slotPet[_owner] = _tokenId; } } } function _equipDownOne(address _owner, uint16 _index) private { if (_index == 0) { if (slotWeapon[_owner] != 0) { slotWeapon[_owner] = 0; } } else if (_index == 1) { if (slotHat[_owner] != 0) { slotHat[_owner] = 0; } } else if (_index == 2) { if (slotCloth[_owner] != 0) { slotCloth[_owner] = 0; } } else if (_index == 3) { if (slotPant[_owner] != 0) { slotPant[_owner] = 0; } } else if (_index == 4) { if (slotShoes[_owner] != 0) { slotShoes[_owner] = 0; } } else if (_index == 5) { if (slotPet[_owner] != 0) { slotPet[_owner] = 0; } } } function equipUp(uint256[6] _tokens) external whenNotPaused { for (uint16 i = 0; i < 6; ++i) { if (_tokens[i] > 0) { _equipUpOne(msg.sender, _tokens[i]); } else { _equipDownOne(msg.sender, i); // tokenId 0 will be equip down } } EquipChanged(msg.sender); } function equipDown(uint256 _tokenId) external whenNotPaused { } function isEquiped(address _target, uint256 _tokenId) external view returns(bool) { require(_target != address(0)); require(_tokenId > 0); if (slotWeapon[_target] == _tokenId) { return true; } if (slotHat[_target] == _tokenId) { return true; } if (slotCloth[_target] == _tokenId) { return true; } if (slotPant[_target] == _tokenId) { return true; } if (slotShoes[_target] == _tokenId) { return true; } if (slotPet[_target] == _tokenId) { return true; } return false; } function isEquipedAny2(address _target, uint256 _tokenId1, uint256 _tokenId2) external view returns(bool) { require(_target != address(0)); require(_tokenId1 > 0); require(_tokenId2 > 0); uint256 equipTokenId = slotWeapon[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2) { return true; } equipTokenId = slotHat[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2) { return true; } equipTokenId = slotCloth[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2) { return true; } equipTokenId = slotPant[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2) { return true; } equipTokenId = slotShoes[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2) { return true; } equipTokenId = slotPet[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2) { return true; } return false; } function isEquipedAny3(address _target, uint256 _tokenId1, uint256 _tokenId2, uint256 _tokenId3) external view returns(bool) { require(_target != address(0)); require(_tokenId1 > 0); require(_tokenId2 > 0); require(_tokenId3 > 0); uint256 equipTokenId = slotWeapon[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2 || equipTokenId == _tokenId3) { return true; } equipTokenId = slotHat[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2 || equipTokenId == _tokenId3) { return true; } equipTokenId = slotCloth[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2 || equipTokenId == _tokenId3) { return true; } equipTokenId = slotPant[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2 || equipTokenId == _tokenId3) { return true; } equipTokenId = slotShoes[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2 || equipTokenId == _tokenId3) { return true; } equipTokenId = slotPet[_target]; if (equipTokenId == _tokenId1 || equipTokenId == _tokenId2 || equipTokenId == _tokenId3) { return true; } return false; } function getEquipTokens(address _target) external view returns(uint256[6] tokens) { tokens[0] = slotWeapon[_target]; tokens[1] = slotHat[_target]; tokens[2] = slotCloth[_target]; tokens[3] = slotPant[_target]; tokens[4] = slotShoes[_target]; tokens[5] = slotPet[_target]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"_target","type":"address"}],"name":"getEquipTokens","outputs":[{"name":"tokens","type":"uint256[6]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"slotPant","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"slotCloth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doUnpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"slotPet","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"slotHat","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_target","type":"address"},{"name":"_tokenId1","type":"uint256"},{"name":"_tokenId2","type":"uint256"}],"name":"isEquipedAny2","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doPause","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":"addrFinance","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newFinance","type":"address"}],"name":"setFinance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256[6]"}],"name":"equipUp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"slotWeapon","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newService","type":"address"}],"name":"setService","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":"addrService","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"equipDown","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_target","type":"address"},{"name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"slotShoes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_target","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"isEquiped","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_target","type":"address"},{"name":"_tokenId1","type":"uint256"},{"name":"_tokenId2","type":"uint256"},{"name":"_tokenId3","type":"uint256"}],"name":"isEquipedAny3","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_nftAddr","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_target","type":"address"}],"name":"EquipChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"preAdmin","type":"address"},{"indexed":true,"name":"newAdmin","type":"address"}],"name":"AdminTransferred","type":"event"}]Contract Creation Code
60606040526000805460ff19169055341561001957600080fd5b6040516020806113068339810160405280805160008054600160a060020a03338116610100810261010060a860020a0319938416811790931690921790925560018054600160a060020a0319908116831790915560028054821690921790915560038054929093169116179055505061126f806100976000396000f3006060604052600436106101195763ffffffff60e060020a6000350416630eacecd2811461011e57806310bb8f261461017557806326d91c79146101a657806330efb8d3146101c55780633481c488146101da5780633e4c707d146101f957806348e063001461021857806355a373d61461025157806367d0661d14610280578063704b6c021461029357806382cb9df9146102b25780639b8d3064146102c5578063a1be79a0146102e4578063b187bd26146102f9578063bb2871a31461030c578063bf8bdac11461032b578063bfae2f0e1461034a578063cdd977e01461035d578063e26fdc1214610370578063f3fef3a314610386578063f470ef34146103a8578063f761720a146103c7578063f9c71f79146103e9575b600080fd5b341561012957600080fd5b61013d600160a060020a0360043516610411565b604051808260c080838360005b8381101561016257808201518382015260200161014a565b5050505090500191505060405180910390f35b341561018057600080fd5b610194600160a060020a0360043516610488565b60405190815260200160405180910390f35b34156101b157600080fd5b610194600160a060020a036004351661049a565b34156101d057600080fd5b6101d86104ac565b005b34156101e557600080fd5b610194600160a060020a03600435166104e9565b341561020457600080fd5b610194600160a060020a03600435166104fb565b341561022357600080fd5b61023d600160a060020a036004351660243560443561050d565b604051901515815260200160405180910390f35b341561025c57600080fd5b61026461068a565b604051600160a060020a03909116815260200160405180910390f35b341561028b57600080fd5b6101d8610699565b341561029e57600080fd5b6101d8600160a060020a03600435166106d8565b34156102bd57600080fd5b610264610783565b34156102d057600080fd5b6101d8600160a060020a0360043516610792565b34156102ef57600080fd5b6101d86004610811565b341561030457600080fd5b61023d6108bf565b341561031757600080fd5b610194600160a060020a03600435166108c8565b341561033657600080fd5b6101d8600160a060020a03600435166108da565b341561035557600080fd5b610264610959565b341561036857600080fd5b61026461096d565b341561037b57600080fd5b6101d860043561097c565b341561039157600080fd5b6101d8600160a060020a036004351660243561098f565b34156103b357600080fd5b610194600160a060020a0360043516610a8d565b34156103d257600080fd5b61023d600160a060020a0360043516602435610a9f565b34156103f457600080fd5b61023d600160a060020a0360043516602435604435606435610bbd565b6104196111f3565b600160a060020a03919091166000818152600460209081526040808320548552838352600582528083205485830152838352600682528083205485820152838352600782528083205460608601528383526008825280832054608086015292825260099052205460a082015290565b60076020526000908152604090205481565b60066020526000908152604090205481565b60005433600160a060020a0390811661010090920416146104cc57600080fd5b60005460ff1615156104dd57600080fd5b6000805460ff19169055565b60096020526000908152604090205481565b60056020526000908152604090205481565b600080600160a060020a038516151561052557600080fd5b6000841161053257600080fd5b6000831161053f57600080fd5b50600160a060020a0384166000908152600460205260409020548381148061056657508281145b156105745760019150610682565b50600160a060020a0384166000908152600560205260409020548381148061059b57508281145b156105a95760019150610682565b50600160a060020a038416600090815260066020526040902054838114806105d057508281145b156105de5760019150610682565b50600160a060020a0384166000908152600760205260409020548381148061060557508281145b156106135760019150610682565b50600160a060020a0384166000908152600860205260409020548381148061063a57508281145b156106485760019150610682565b50600160a060020a0384166000908152600960205260409020548381148061066f57508281145b1561067d5760019150610682565b600091505b509392505050565b600354600160a060020a031681565b60005433600160a060020a0390811661010090920416146106b957600080fd5b60005460ff16156106c957600080fd5b6000805460ff19166001179055565b60005433600160a060020a0390811661010090920416146106f857600080fd5b600160a060020a038116151561070d57600080fd5b600054600160a060020a03808316916101009004167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a360008054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600254600160a060020a031681565b60025433600160a060020a03908116911614806107c2575060005433600160a060020a0390811661010090920416145b15156107cd57600080fd5b600160a060020a03811615156107e257600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805460ff161561082257600080fd5b5060005b60068161ffff1610156108855760008261ffff83166006811061084557fe5b602002013511156108735761086e338361ffff84166006811061086457fe5b6020020135610d84565b61087d565b61087d338261103e565b600101610826565b33600160a060020a03167f9ba7335512a89fbb3a04231ee2a99bd9dccbea974d4a36b26868ba8b49db429c60405160405180910390a25050565b60005460ff1681565b60046020526000908152604090205481565b60015433600160a060020a039081169116148061090a575060005433600160a060020a0390811661010090920416145b151561091557600080fd5b600160a060020a038116151561092a57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000546101009004600160a060020a031681565b600154600160a060020a031681565b60005460ff161561098c57600080fd5b50565b600254600090819033600160a060020a03908116911614806109c4575060005433600160a060020a0390811661010090920416145b15156109cf57600080fd5b600083116109dc57600080fd5b600160a060020a038416156109f157836109fe565b600254600160a060020a03165b915050600160a060020a0330163180831015610a4a57600160a060020a03821683156108fc0284604051600060405180830381858888f193505050501515610a4557600080fd5b610a87565b81600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515610a8757600080fd5b50505050565b60086020526000908152604090205481565b6000600160a060020a0383161515610ab657600080fd5b60008211610ac357600080fd5b600160a060020a038316600090815260046020526040902054821415610aeb57506001610bb7565b600160a060020a038316600090815260056020526040902054821415610b1357506001610bb7565b600160a060020a038316600090815260066020526040902054821415610b3b57506001610bb7565b600160a060020a038316600090815260076020526040902054821415610b6357506001610bb7565b600160a060020a038316600090815260086020526040902054821415610b8b57506001610bb7565b600160a060020a038316600090815260096020526040902054821415610bb357506001610bb7565b5060005b92915050565b600080600160a060020a0386161515610bd557600080fd5b60008511610be257600080fd5b60008411610bef57600080fd5b60008311610bfc57600080fd5b50600160a060020a03851660009081526004602052604090205484811480610c2357508381145b80610c2d57508281145b15610c3b5760019150610d7b565b50600160a060020a03851660009081526005602052604090205484811480610c6257508381145b80610c6c57508281145b15610c7a5760019150610d7b565b50600160a060020a03851660009081526006602052604090205484811480610ca157508381145b80610cab57508281145b15610cb95760019150610d7b565b50600160a060020a03851660009081526007602052604090205484811480610ce057508381145b80610cea57508281145b15610cf85760019150610d7b565b50600160a060020a03851660009081526008602052604090205484811480610d1f57508381145b80610d2957508281145b15610d375760019150610d7b565b50600160a060020a03851660009081526009602052604090205484811480610d5e57508381145b80610d6857508281145b15610d765760019150610d7b565b600091505b50949350505050565b610d8c61121a565b600354600090600160a060020a038086169116636352211e8560405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610ddb57600080fd5b5af11515610de857600080fd5b50505060405180519050600160a060020a0316141515610e0757600080fd5b600354600160a060020a031663425189e08460405160e060020a63ffffffff8416028152600481019190915260240161018060405180830381600087803b1515610e5057600080fd5b5af11515610e5d57600080fd5b50505060405161018081016040529150816002602002015190508061ffff1660011415610ec357600160a060020a0384166000908152600460205260409020548314610a4557600160a060020a0384166000908152600460205260409020839055610a87565b8061ffff1660021415610f0f57600160a060020a0384166000908152600560205260409020548314610a4557600160a060020a0384166000908152600560205260409020839055610a87565b8061ffff1660031415610f5b57600160a060020a0384166000908152600660205260409020548314610a4557600160a060020a0384166000908152600660205260409020839055610a87565b8061ffff1660041415610fa757600160a060020a0384166000908152600760205260409020548314610a4557600160a060020a0384166000908152600760205260409020839055610a87565b8061ffff1660051415610ff357600160a060020a0384166000908152600860205260409020548314610a4557600160a060020a0384166000908152600860205260409020839055610a87565b8061ffff1660091415610a8757600160a060020a0384166000908152600960205260409020548314610a87575050600160a060020a0391909116600090815260096020526040902055565b61ffff8116151561108657600160a060020a0382166000908152600460205260409020541561108157600160a060020a0382166000908152600460205260408120555b6111ef565b8061ffff16600114156110cf57600160a060020a0382166000908152600560205260409020541561108157600160a060020a0382166000908152600560205260408120556111ef565b8061ffff166002141561111857600160a060020a0382166000908152600660205260409020541561108157600160a060020a0382166000908152600660205260408120556111ef565b8061ffff166003141561116157600160a060020a0382166000908152600760205260409020541561108157600160a060020a0382166000908152600760205260408120556111ef565b8061ffff16600414156111aa57600160a060020a0382166000908152600860205260409020541561108157600160a060020a0382166000908152600860205260408120556111ef565b8061ffff16600514156111ef57600160a060020a038216600090815260096020526040902054156111ef57600160a060020a0382166000908152600960205260408120555b5050565b60c06040519081016040526006815b60008152602001906001900390816112025790505090565b610180604051908101604052600c815b60008152600019909101906020018161122a57905050905600a165627a7a7230582095da2c5823caf4b306182f57353248ad8c5f7748437de84f9c1f573cae7ccf550029000000000000000000000000da9c03dfd4d137f926c3cf6953cb951832eb08b2
Deployed Bytecode
0x6060604052600436106101195763ffffffff60e060020a6000350416630eacecd2811461011e57806310bb8f261461017557806326d91c79146101a657806330efb8d3146101c55780633481c488146101da5780633e4c707d146101f957806348e063001461021857806355a373d61461025157806367d0661d14610280578063704b6c021461029357806382cb9df9146102b25780639b8d3064146102c5578063a1be79a0146102e4578063b187bd26146102f9578063bb2871a31461030c578063bf8bdac11461032b578063bfae2f0e1461034a578063cdd977e01461035d578063e26fdc1214610370578063f3fef3a314610386578063f470ef34146103a8578063f761720a146103c7578063f9c71f79146103e9575b600080fd5b341561012957600080fd5b61013d600160a060020a0360043516610411565b604051808260c080838360005b8381101561016257808201518382015260200161014a565b5050505090500191505060405180910390f35b341561018057600080fd5b610194600160a060020a0360043516610488565b60405190815260200160405180910390f35b34156101b157600080fd5b610194600160a060020a036004351661049a565b34156101d057600080fd5b6101d86104ac565b005b34156101e557600080fd5b610194600160a060020a03600435166104e9565b341561020457600080fd5b610194600160a060020a03600435166104fb565b341561022357600080fd5b61023d600160a060020a036004351660243560443561050d565b604051901515815260200160405180910390f35b341561025c57600080fd5b61026461068a565b604051600160a060020a03909116815260200160405180910390f35b341561028b57600080fd5b6101d8610699565b341561029e57600080fd5b6101d8600160a060020a03600435166106d8565b34156102bd57600080fd5b610264610783565b34156102d057600080fd5b6101d8600160a060020a0360043516610792565b34156102ef57600080fd5b6101d86004610811565b341561030457600080fd5b61023d6108bf565b341561031757600080fd5b610194600160a060020a03600435166108c8565b341561033657600080fd5b6101d8600160a060020a03600435166108da565b341561035557600080fd5b610264610959565b341561036857600080fd5b61026461096d565b341561037b57600080fd5b6101d860043561097c565b341561039157600080fd5b6101d8600160a060020a036004351660243561098f565b34156103b357600080fd5b610194600160a060020a0360043516610a8d565b34156103d257600080fd5b61023d600160a060020a0360043516602435610a9f565b34156103f457600080fd5b61023d600160a060020a0360043516602435604435606435610bbd565b6104196111f3565b600160a060020a03919091166000818152600460209081526040808320548552838352600582528083205485830152838352600682528083205485820152838352600782528083205460608601528383526008825280832054608086015292825260099052205460a082015290565b60076020526000908152604090205481565b60066020526000908152604090205481565b60005433600160a060020a0390811661010090920416146104cc57600080fd5b60005460ff1615156104dd57600080fd5b6000805460ff19169055565b60096020526000908152604090205481565b60056020526000908152604090205481565b600080600160a060020a038516151561052557600080fd5b6000841161053257600080fd5b6000831161053f57600080fd5b50600160a060020a0384166000908152600460205260409020548381148061056657508281145b156105745760019150610682565b50600160a060020a0384166000908152600560205260409020548381148061059b57508281145b156105a95760019150610682565b50600160a060020a038416600090815260066020526040902054838114806105d057508281145b156105de5760019150610682565b50600160a060020a0384166000908152600760205260409020548381148061060557508281145b156106135760019150610682565b50600160a060020a0384166000908152600860205260409020548381148061063a57508281145b156106485760019150610682565b50600160a060020a0384166000908152600960205260409020548381148061066f57508281145b1561067d5760019150610682565b600091505b509392505050565b600354600160a060020a031681565b60005433600160a060020a0390811661010090920416146106b957600080fd5b60005460ff16156106c957600080fd5b6000805460ff19166001179055565b60005433600160a060020a0390811661010090920416146106f857600080fd5b600160a060020a038116151561070d57600080fd5b600054600160a060020a03808316916101009004167ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec660405160405180910390a360008054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b600254600160a060020a031681565b60025433600160a060020a03908116911614806107c2575060005433600160a060020a0390811661010090920416145b15156107cd57600080fd5b600160a060020a03811615156107e257600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000805460ff161561082257600080fd5b5060005b60068161ffff1610156108855760008261ffff83166006811061084557fe5b602002013511156108735761086e338361ffff84166006811061086457fe5b6020020135610d84565b61087d565b61087d338261103e565b600101610826565b33600160a060020a03167f9ba7335512a89fbb3a04231ee2a99bd9dccbea974d4a36b26868ba8b49db429c60405160405180910390a25050565b60005460ff1681565b60046020526000908152604090205481565b60015433600160a060020a039081169116148061090a575060005433600160a060020a0390811661010090920416145b151561091557600080fd5b600160a060020a038116151561092a57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000546101009004600160a060020a031681565b600154600160a060020a031681565b60005460ff161561098c57600080fd5b50565b600254600090819033600160a060020a03908116911614806109c4575060005433600160a060020a0390811661010090920416145b15156109cf57600080fd5b600083116109dc57600080fd5b600160a060020a038416156109f157836109fe565b600254600160a060020a03165b915050600160a060020a0330163180831015610a4a57600160a060020a03821683156108fc0284604051600060405180830381858888f193505050501515610a4557600080fd5b610a87565b81600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f193505050501515610a8757600080fd5b50505050565b60086020526000908152604090205481565b6000600160a060020a0383161515610ab657600080fd5b60008211610ac357600080fd5b600160a060020a038316600090815260046020526040902054821415610aeb57506001610bb7565b600160a060020a038316600090815260056020526040902054821415610b1357506001610bb7565b600160a060020a038316600090815260066020526040902054821415610b3b57506001610bb7565b600160a060020a038316600090815260076020526040902054821415610b6357506001610bb7565b600160a060020a038316600090815260086020526040902054821415610b8b57506001610bb7565b600160a060020a038316600090815260096020526040902054821415610bb357506001610bb7565b5060005b92915050565b600080600160a060020a0386161515610bd557600080fd5b60008511610be257600080fd5b60008411610bef57600080fd5b60008311610bfc57600080fd5b50600160a060020a03851660009081526004602052604090205484811480610c2357508381145b80610c2d57508281145b15610c3b5760019150610d7b565b50600160a060020a03851660009081526005602052604090205484811480610c6257508381145b80610c6c57508281145b15610c7a5760019150610d7b565b50600160a060020a03851660009081526006602052604090205484811480610ca157508381145b80610cab57508281145b15610cb95760019150610d7b565b50600160a060020a03851660009081526007602052604090205484811480610ce057508381145b80610cea57508281145b15610cf85760019150610d7b565b50600160a060020a03851660009081526008602052604090205484811480610d1f57508381145b80610d2957508281145b15610d375760019150610d7b565b50600160a060020a03851660009081526009602052604090205484811480610d5e57508381145b80610d6857508281145b15610d765760019150610d7b565b600091505b50949350505050565b610d8c61121a565b600354600090600160a060020a038086169116636352211e8560405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515610ddb57600080fd5b5af11515610de857600080fd5b50505060405180519050600160a060020a0316141515610e0757600080fd5b600354600160a060020a031663425189e08460405160e060020a63ffffffff8416028152600481019190915260240161018060405180830381600087803b1515610e5057600080fd5b5af11515610e5d57600080fd5b50505060405161018081016040529150816002602002015190508061ffff1660011415610ec357600160a060020a0384166000908152600460205260409020548314610a4557600160a060020a0384166000908152600460205260409020839055610a87565b8061ffff1660021415610f0f57600160a060020a0384166000908152600560205260409020548314610a4557600160a060020a0384166000908152600560205260409020839055610a87565b8061ffff1660031415610f5b57600160a060020a0384166000908152600660205260409020548314610a4557600160a060020a0384166000908152600660205260409020839055610a87565b8061ffff1660041415610fa757600160a060020a0384166000908152600760205260409020548314610a4557600160a060020a0384166000908152600760205260409020839055610a87565b8061ffff1660051415610ff357600160a060020a0384166000908152600860205260409020548314610a4557600160a060020a0384166000908152600860205260409020839055610a87565b8061ffff1660091415610a8757600160a060020a0384166000908152600960205260409020548314610a87575050600160a060020a0391909116600090815260096020526040902055565b61ffff8116151561108657600160a060020a0382166000908152600460205260409020541561108157600160a060020a0382166000908152600460205260408120555b6111ef565b8061ffff16600114156110cf57600160a060020a0382166000908152600560205260409020541561108157600160a060020a0382166000908152600560205260408120556111ef565b8061ffff166002141561111857600160a060020a0382166000908152600660205260409020541561108157600160a060020a0382166000908152600660205260408120556111ef565b8061ffff166003141561116157600160a060020a0382166000908152600760205260409020541561108157600160a060020a0382166000908152600760205260408120556111ef565b8061ffff16600414156111aa57600160a060020a0382166000908152600860205260409020541561108157600160a060020a0382166000908152600860205260408120556111ef565b8061ffff16600514156111ef57600160a060020a038216600090815260096020526040902054156111ef57600160a060020a0382166000908152600960205260408120555b5050565b60c06040519081016040526006815b60008152602001906001900390816112025790505090565b610180604051908101604052600c815b60008152600019909101906020018161122a57905050905600a165627a7a7230582095da2c5823caf4b306182f57353248ad8c5f7748437de84f9c1f573cae7ccf550029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000da9c03dfd4d137f926c3cf6953cb951832eb08b2
-----Decoded View---------------
Arg [0] : _nftAddr (address): 0xDA9c03dFd4D137F926c3cF6953cb951832Eb08b2
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000da9c03dfd4d137f926c3cf6953cb951832eb08b2
Swarm Source
bzzr://95da2c5823caf4b306182f57353248ad8c5f7748437de84f9c1f573cae7ccf55
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.