Contract 0x726E1B4841968c0c3EEbeeF880e60875B745b3c0

 

Contract Overview

Balance:
0 MATIC

MATIC Value:
$0.00

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x323eb49f97ccc0b6bf40a5d7cb48366ff93740c198d057c99aad77366762b8dfTransfer Sender203017622021-10-17 5:31:551 hr 34 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00096234
0x21ed0dc4c1d1736cae4545490dccb673a064b910482d837a09511487c4c288b6Transfer Sender203017572021-10-17 5:31:411 hr 34 mins ago0x27708801002c2a010865794a7fc477876970581c IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00141234
0xfef27699a807e26f4cfa60c25a3fde52ff46a913005cfc61750fdb67f627394aTransfer Sender203017522021-10-17 5:31:311 hr 34 mins ago0x6e1a678bd503af3fafa4ea034b98c34969cf5b9f IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00141234
0x3703c220c26fe0fa037080d318e99ad63990b09ecfa433de76afd57b9197cdcbTransfer Sender203017462021-10-17 5:31:191 hr 35 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00141234
0x372b9988bde53189f5bbb7a2d7335f664d10d3a860a88d053520cf85053cd507Transfer Sender203017402021-10-17 5:31:071 hr 35 mins ago0x27708801002c2a010865794a7fc477876970581c IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00141234
0x36221eae84cd7db1dc2a623b4625e78d934591853499d7ad4175169071495fc2Transfer Sender203017362021-10-17 5:30:591 hr 35 mins ago0x6e1a678bd503af3fafa4ea034b98c34969cf5b9f IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00141234
0x45bbbef65b7c19a0e4f34dc660d4041192c98a1c88a2f8855d8b56b744001d70Transfer Sender203017322021-10-17 5:30:511 hr 35 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00141234
0x2dd5d3bb336660c5efeb110fbaf43c25bf3dc3c2205560fb9a1bbe2c2354cb9dTransfer Sender203017222021-10-17 5:30:311 hr 35 mins ago0x27708801002c2a010865794a7fc477876970581c IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00141234
0x4d3e44886cfce229466d1cd10ecfec8d6de4b86ed337b5525886024e04530f99Transfer Sender203016712021-10-17 5:27:571 hr 38 mins ago0x6e1a678bd503af3fafa4ea034b98c34969cf5b9f IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.001553574
0x67ed1f89b7d152e7f69a1a952068ee0628e3e6734e3327e765f5b81c70d71bc6Transfer Sender203016672021-10-17 5:27:411 hr 38 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.001553574047
0x5318ad53628059f3a71cf66c727ca3b92ef39590c21c6c01425854d464a87e82Transfer Sender203016642021-10-17 5:27:291 hr 39 mins ago0x27708801002c2a010865794a7fc477876970581c IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.001553574
0x59b06ae0f3942eeb885a81d664facbfda1d54c3c3d3b6b6b81dd911343708c2bTransfer Sender203016612021-10-17 5:27:171 hr 39 mins ago0x6e1a678bd503af3fafa4ea034b98c34969cf5b9f IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.001553574
0xce48647037f724be0ead6c3e9da80bb2ba5004be9484df84a4f8b2abac98166fTransfer Sender203016592021-10-17 5:27:091 hr 39 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00164773
0x3dc5ed7449a2fadab87da6c92aeb6861d26f222e11ed49a330c9e5bca4425713Transfer Sender203016562021-10-17 5:26:571 hr 39 mins ago0x27708801002c2a010865794a7fc477876970581c IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00164773
0x5992ddbfb22490e36b61bb6ba7f81f34f8bcb64fe66bf1fed2f28905ace9420aTransfer Sender203016552021-10-17 5:26:531 hr 39 mins ago0x6e1a678bd503af3fafa4ea034b98c34969cf5b9f IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00141234
0x932d7420b26fc69ffcac7be1bf518e3ebdc34d8a7fa99202f8233ba3c1b0227bTransfer Sender203016352021-10-17 5:25:331 hr 40 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.001506496
0x948999f5f76f2719309e5d7427040f6a70fa8b19666d7821d368143b77163f46Transfer Sender203016322021-10-17 5:25:211 hr 41 mins ago0x27708801002c2a010865794a7fc477876970581c IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.001506496
0xa83814629eb2043a817a965ea3e917a0bc67d67ce798dd21d2fef8aaf084dd37Transfer Sender203015762021-10-17 5:23:231 hr 43 mins ago0x6e1a678bd503af3fafa4ea034b98c34969cf5b9f IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00188312
0xec9a31907185ebdf2d57765f803efbc7893149dd14714a6d0b719bdaf801aa8fTransfer Sender203015712021-10-17 5:23:131 hr 43 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00188312
0x342dc180d76f67bca0b77e9dc08c4290733e1d43ecfd4203ad543377673ba193Transfer Sender203015702021-10-17 5:23:111 hr 43 mins ago0x27708801002c2a010865794a7fc477876970581c IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00188312
0xedf5bb6b0f99af6a1af2ba2b849c257d8fd9f8c889766eb2226d6e4ba3c30336Transfer Sender203015652021-10-17 5:22:531 hr 43 mins ago0x6e1a678bd503af3fafa4ea034b98c34969cf5b9f IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00188312
0x419b4bd8c2937070702a64c025ad347c25701d49726fdd7774a95cceeb8891fdTransfer Sender203015632021-10-17 5:22:451 hr 43 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00188312
0xdd7ab208b66154dd41f4d893ed0574299a0fc7b9483abc1287fb2a37f7fb5d17Transfer Sender203015602021-10-17 5:22:331 hr 43 mins ago0x27708801002c2a010865794a7fc477876970581c IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00188312
0x54fbdfcce613070da912a684ab4ef7f85f67fdaf2cbb62aa7294bfa44f36af5fTransfer Sender203015582021-10-17 5:22:251 hr 44 mins ago0x6e1a678bd503af3fafa4ea034b98c34969cf5b9f IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00188312
0xb95ca54d19bc6c8f422c2fccae60b0020c9b8c0828686f3178e3a55a7f0dd9c6Transfer Sender203015552021-10-17 5:22:131 hr 44 mins ago0x78566ed47127e2f08eb4dd03f89a03e996e6fcca IN  0x726e1b4841968c0c3eebeef880e60875b745b3c00 MATIC0.00188312
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Citizen

Compiler Version
v0.5.9+commit.e560f70d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-06-30
*/

pragma solidity 0.5.9;

library Strings {
    function strConcat(string memory _a, string memory _b, string memory _c, string memory _d, string memory _e) internal pure returns (string memory) {
        bytes memory _ba = bytes(_a);
        bytes memory _bb = bytes(_b);
        bytes memory _bc = bytes(_c);
        bytes memory _bd = bytes(_d);
        bytes memory _be = bytes(_e);
        string memory abcde = new string(_ba.length + _bb.length + _bc.length + _bd.length + _be.length);
        bytes memory babcde = bytes(abcde);
        uint k = 0;
        for (uint i = 0; i < _ba.length; i++) babcde[k++] = _ba[i];
        for (uint i = 0; i < _bb.length; i++) babcde[k++] = _bb[i];
        for (uint i = 0; i < _bc.length; i++) babcde[k++] = _bc[i];
        for (uint i = 0; i < _bd.length; i++) babcde[k++] = _bd[i];
        for (uint i = 0; i < _be.length; i++) babcde[k++] = _be[i];
        return string(babcde);
    }

    function strConcat(string memory _a, string memory _b, string memory _c, string memory _d) internal pure returns (string memory) {
        return strConcat(_a, _b, _c, _d, "");
    }

    function strConcat(string memory _a, string memory _b, string memory _c) internal pure returns (string memory) {
        return strConcat(_a, _b, _c, "", "");
    }

    function strConcat(string memory _a, string memory _b) internal pure returns (string memory) {
        return strConcat(_a, _b, "", "", "");
    }

    function uint2str(uint i) internal pure returns (string memory) {
        if (i == 0) return "0";
        uint j = i;
        uint len;
        while (j != 0) {
            len++;
            j /= 10;
        }
        bytes memory bstr = new bytes(len);
        uint k = len - 1;
        while (i != 0) {
            bstr[k--] = byte(uint8(48 + i % 10));
            i /= 10;
        }
        return string(bstr);
    }

    function bytes32ToString(bytes32 x) internal pure returns (string memory) {
        bytes memory bytesString = new bytes(32);
        uint charCount = 0;
        for (uint j = 0; j < 32; j++) {
            byte char = byte(bytes32(uint(x) * 2 ** (8 * j)));
            if (char != 0) {
                bytesString[charCount] = char;
                charCount++;
            }
        }
        bytes memory bytesStringTrimmed = new bytes(charCount);
        for (uint j = 0; j < charCount; j++) {
            bytesStringTrimmed[j] = bytesString[j];
        }
        return string(bytesStringTrimmed);
    }

    function bytesToUInt(bytes32 b) internal pure returns (uint256){
        uint256 number;
        for (uint i = 0; i < b.length; i++) {
            number = number + uint256(uint8(b[i])) * (2 ** (8 * (b.length - (i + 1))));
        }
        return number;
    }

}

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


interface IERC721Receiver {
    function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes calldata _data) external returns (bytes4);
}

interface IERC721 {
    function name() external view returns (string memory _name);

    function symbol() external view returns (string memory _symbol);

    function ownerOf(uint256 _tokenId) external view returns (address);

    function transferFrom(address _from, address _to, uint256 _tokenId) external;

    function approve(address _approved, uint256 _tokenId) external;

    function setApprovalForAll(address _operator, bool _approved) external;

    function isApprovedForAll(address _owner, address _operator) external view returns (bool);

    function getApproved(uint256 _tokenId) external view returns (address);

    function balanceOf(address _owner) external view returns (uint256);

    function tokenURI(uint256 _tokenId) external view returns (string memory);

    function baseTokenURI() external view returns (string memory);

    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external payable;

    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable;


    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);


}

contract Ownable {
    address public owner;


    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Only owner");
        _;
    }

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "Transfer to null address is not allowed");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

}

contract Beneficiary is Ownable {

    address payable public beneficiary;

    constructor() public  {
        beneficiary = msg.sender;
    }

    function setBeneficiary(address payable _beneficiary) public onlyOwner {
        beneficiary = _beneficiary;
    }

    function withdrawal(uint256 value) public onlyOwner {
        if (value > address(this).balance) {
            revert("Insufficient balance");
        }

        beneficiaryPayout(value);
    }

    function withdrawalAll() public onlyOwner {
        beneficiaryPayout(address(this).balance);
    }

    function beneficiaryPayout(uint256 value) internal {
        beneficiary.transfer(value);
        emit BeneficiaryPayout(value);
    }

    event BeneficiaryPayout(uint256 value);
}


contract Manageable is Beneficiary {
    uint DEFAULT_GAME_PERIOD = 1 days;

    uint256 DECIMALS = 10e8;

    bool maintenance = false;

    mapping(address => bool) public managers;

    modifier onlyManager() {

        require(managers[msg.sender] || msg.sender == address(this), "Only managers allowed");
        _;
    }

    modifier notOnMaintenance() {
        require(!maintenance);
        _;
    }

    bool saleOpen = false;

    modifier onlyOnSale() {
        require(saleOpen);
        _;
    }

    constructor() public {
        managers[msg.sender] = true;
    }

    function setMaintenanceStatus(bool _status) public onlyManager {
        maintenance = _status;
        emit Maintenance(_status);
    }

    function setManager(address _manager) public onlyOwner {
        managers[_manager] = true;
    }

    function deleteManager(address _manager) public onlyOwner {
        delete managers[_manager];
    }

    function _addressToPayable(address _address) internal pure returns (address payable) {
        return address(uint160(_address));
    }

    function setGameDefaultPeriod(uint _period) public onlyManager {
        DEFAULT_GAME_PERIOD = _period;
    }

    event Maintenance(bool status);
    event FailedPayout(address to, uint256 value);

}


contract LockableToken is Manageable {
    mapping(uint256 => bool) public locks;

    modifier onlyNotLocked(uint256 _tokenId) {
        require(!locks[_tokenId]);
        _;
    }

    function isLocked(uint256 _tokenId) public view returns (bool) {
        return locks[_tokenId];
    }

    function lockToken(uint256 _tokenId) public onlyManager {
        locks[_tokenId] = true;
    }

    function unlockToken(uint256 _tokenId) public onlyManager {
        locks[_tokenId] = false;
    }

    function _lockToken(uint256 _tokenId) internal {
        locks[_tokenId] = true;
    }

    function _unlockToken(uint256 _tokenId) internal {
        locks[_tokenId] = false;
    }

}

contract ERC721 is Manageable, LockableToken, IERC721, IERC165 {
    using Strings for string;
    address public market;


    mapping(address => uint256) public balances;
    mapping(uint256 => address) public approved;
    mapping(address => mapping(address => bool)) private operators;
    mapping(uint256 => address) private tokenOwner;

    uint256 public totalSupply = 0;

    string private _tokenURI = "";

    string private tokenName = '';
    string private tokenSymbol = '';

    modifier onlyTokenOwner(uint256 _tokenId) {
        require(msg.sender == tokenOwner[_tokenId]);
        _;
    }

    function setName(string memory _name) public onlyManager {
        tokenName = _name;
    }

    function setSymbol(string memory _symbol) public onlyManager {
        tokenSymbol = _symbol;
    }

    function name() external view returns (string memory _name) {
        return tokenName;
    }

    function symbol() external view returns (string memory _symbol) {
        return tokenSymbol;
    }

    function supportsInterface(bytes4 interfaceID) external view returns (bool) {
        return interfaceID == 0x5b5e139f || interfaceID == 0x80ac58cd;
    }

    function setBaseTokenURI(string memory _newTokenURI) public onlyManager {
        _tokenURI = _newTokenURI;
    }

    function setMarketContract(address _market) public onlyManager {
        market = _market;
    }

    function ownerOf(uint256 _tokenId) public view returns (address) {
        return tokenOwner[_tokenId];
    }

    function transferFrom(address _from, address _to, uint256 _tokenId) public onlyNotLocked(_tokenId) {
        require(_to != address(0));
        require(_isApprovedOrOwner(msg.sender, _tokenId));

        _transfer(_from, _to, _tokenId);
    }

    function approve(address _approved, uint256 _tokenId) public onlyNotLocked(_tokenId) {
        address owner = ownerOf(_tokenId);
        require(_approved != owner);
        require(msg.sender == owner || isApprovedForAll(owner, msg.sender));

        approved[_tokenId] = _approved;

        emit Approval(owner, _approved, _tokenId);
    }

    function setApprovalForAll(address _operator, bool _approved) public {
        require(_operator != msg.sender);

        operators[msg.sender][_operator] = _approved;
        emit ApprovalForAll(msg.sender, _operator, _approved);
    }

    function setApprovalForAllSender(address payable _sender, address _operator, bool _approved) public onlyManager {
        require(_operator != _sender);

        operators[_sender][_operator] = _approved;
        emit ApprovalForAll(_sender, _operator, _approved);
    }

    function isApprovedForAll(address _owner, address _operator) public view returns (bool) {
        return operators[_owner][_operator] || _operator == market;
    }

    function getApproved(uint256 _tokenId) public view returns (address) {
        return approved[_tokenId];
    }

    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner];
    }


    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {
        address owner = ownerOf(tokenId);
        return (
        spender == owner
        || getApproved(tokenId) == spender
        || isApprovedForAll(owner, spender)
        );
    }

    function transfer(address _from, address _to, uint256 _tokenId) public onlyTokenOwner(_tokenId) onlyNotLocked(_tokenId) {
        require(_to != address(0));
        _transfer(_from, _to, _tokenId);
    }

    function transferSender(address payable _sender, address _from, address _to, uint256 _tokenId) public onlyManager onlyNotLocked(_tokenId) {
        require(_to != address(0));
        require(_sender == _from);
        _transfer(_sender, _to, _tokenId);
    }

    function _transfer(address _from, address _to, uint256 _tokenId) internal {
        require(ownerOf(_tokenId) == _from);

        delete approved[_tokenId];

        if (_from != address(0)) {
            balances[_from]--;
        } else {
            totalSupply++;
        }

        if (_to != address(0)) {
            balances[_to]++;
        }

        tokenOwner[_tokenId] = _to;

        emit Transfer(_from, _to, _tokenId);
    }

    function _mint(uint256 _tokenId, address _owner) internal {
        _transfer(address(0), _owner, _tokenId);
    }

    function _burn(uint256 _tokenId) internal {
        _transfer(ownerOf(_tokenId), address(0), _tokenId);
    }


    function baseTokenURI() public view returns (string memory) {
        return _tokenURI;
    }

    function tokenURI(uint256 _tokenId) external view returns (string memory) {
        return Strings.strConcat(
            baseTokenURI(),
            Strings.uint2str(_tokenId)
        );
    }

    function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes calldata data) external payable {
        require(_isApprovedOrOwner(msg.sender, _tokenId));
        require(_to != address(0));

        IERC721Receiver receiver = IERC721Receiver(_to);

        _transfer(_from, _to, _tokenId);

        require(receiver.onERC721Received(msg.sender, _from, _tokenId, data) == bytes4(keccak256("onERC721Received(address,address,uint256,bytes)")));
    }

    function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable {
        require(_isApprovedOrOwner(msg.sender, _tokenId));
        require(_to != address(0));

        IERC721Receiver receiver = IERC721Receiver(_to);

        _transfer(_from, _to, _tokenId);

        require(receiver.onERC721Received(msg.sender, _from, _tokenId, "") == bytes4(keccak256("onERC721Received(address,address,uint256,bytes)")));
    }

    function burn(uint256 _tokenId) public onlyManager {
        _burn(_tokenId);
    }


    event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId);
    event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId);
    event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved);
}

contract Citizen is Manageable, ERC721 {

    struct Token {
        uint8[7] special;
        uint8 generation;
        bytes32 look;
    }

    mapping(uint => Token) public tokens;

    constructor() public {
        setSymbol("MCPC");
        setName("MCP Citizen");
        setBaseTokenURI("https://mcp.town/api/citizen/");
    }

    function mint(address _owner, uint8[7] memory _special, uint8 _generation, bytes32 _look) public onlyManager returns (uint256){
        uint _tokenId = totalSupply;
        tokens[_tokenId] = Token(_special, _generation, _look);
        _mint(_tokenId, _owner);
        return _tokenId;
    }

    function mintWithTokenId(uint256 _tokenId, address _owner, uint8[7] memory _special, uint8 _generation, bytes32 _look) public onlyManager returns (uint256){
        require(ownerOf(_tokenId) == address(0));

        tokens[_tokenId] = Token(_special, _generation, _look);
        _mint(_tokenId, _owner);
        return _tokenId;
    }

    function batchMintWithTokenId(uint256[] memory _tokenId, address[] memory _owner, uint8[7][] memory _special, uint8[] memory _generation, bytes32[] memory _look) public onlyManager {
        for (uint i = 0; i < _tokenId.length; i++) {
            if (ownerOf(_tokenId[i]) != address(0)) {
                continue;
            }

            tokens[_tokenId[i]] = Token(_special[i], _generation[i], _look[i]);
            _mint(_tokenId[i], _owner[i]);
        }
    }

    function incSpecial(uint256 _tokenId, uint8 _specId) public onlyManager {
        require(_specId < 8 && tokens[_tokenId].special[_specId] < 12);

        emit SpecChanged(_tokenId, _specId, tokens[_tokenId].special[_specId]);
    }

    function decSpecial(uint256 _tokenId, uint8 _specId) public onlyManager {
        require(_specId < 8 && tokens[_tokenId].special[_specId] > 0);

        tokens[_tokenId].special[_specId]--;
        emit SpecChanged(_tokenId, _specId, tokens[_tokenId].special[_specId]);
    }

    function getSpecial(uint256 _tokenId) public view returns (uint8[7] memory) {
        return tokens[_tokenId].special;
    }

    function setLook(uint256 _tokenId, bytes32 _look) public onlyManager {
        tokens[_tokenId].look = _look;
    }

    function setLookBytes(uint256 _tokenId, byte[] memory value, uint8[] memory position) public onlyManager {
        for (uint256 i = 0; i < value.length; i++) {
            tokens[_tokenId].look = _setByte(tokens[_tokenId].look, position[i], value[i]);
        }

        emit LookChanged(_tokenId, tokens[_tokenId].look);
    }

    function setLookByte(uint256 _tokenId, byte value, uint8 position) public onlyManager {
        tokens[_tokenId].look = _setByte(tokens[_tokenId].look, position, value);
        emit LookChanged(_tokenId, tokens[_tokenId].look);
    }

    function _setByte(bytes32 _bt, uint8 position, byte value) internal pure returns (bytes32) {
        uint256 _c = uint256(_bt);

        return bytes32((_c & ~(0xFF * (uint256(2) ** position))) | (uint8(value) * (uint256(2) ** position)));
    }

    event LookChanged(uint256 _tokenId, bytes32 _look);
    event SpecChanged(uint256 _tokenId, uint8 _specId, uint8 _value);
    event ToTicket(uint256 _tokenId);
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","type":"string"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_owner","type":"address"},{"name":"_special","type":"uint8[7]"},{"name":"_generation","type":"uint8"},{"name":"_look","type":"bytes32"}],"name":"mintWithTokenId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","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":"value","type":"bytes1[]"},{"name":"position","type":"uint8[]"}],"name":"setLookBytes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_beneficiary","type":"address"}],"name":"setBeneficiary","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":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newTokenURI","type":"string"}],"name":"setBaseTokenURI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"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":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_specId","type":"uint8"}],"name":"decSpecial","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_period","type":"uint256"}],"name":"setGameDefaultPeriod","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokens","outputs":[{"name":"generation","type":"uint8"},{"name":"look","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"value","type":"bytes1"},{"name":"position","type":"uint8"}],"name":"setLookByte","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_look","type":"bytes32"}],"name":"setLook","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_operator","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAllSender","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"approved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"lockToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"market","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"value","type":"uint256"}],"name":"withdrawal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"deleteManager","outputs":[],"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":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_special","type":"uint8[7]"},{"name":"_generation","type":"uint8"},{"name":"_look","type":"bytes32"}],"name":"mint","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_manager","type":"address"}],"name":"setManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"baseTokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferSender","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"unlockToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getSpecial","outputs":[{"name":"","type":"uint8[7]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_specId","type":"uint8"}],"name":"incSpecial","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256[]"},{"name":"_owner","type":"address[]"},{"name":"_special","type":"uint8[7][]"},{"name":"_generation","type":"uint8[]"},{"name":"_look","type":"bytes32[]"}],"name":"batchMintWithTokenId","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawalAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"locks","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"isLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_status","type":"bool"}],"name":"setMaintenanceStatus","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_market","type":"address"}],"name":"setMarketContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"managers","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tokenId","type":"uint256"},{"indexed":false,"name":"_look","type":"bytes32"}],"name":"LookChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tokenId","type":"uint256"},{"indexed":false,"name":"_specId","type":"uint8"},{"indexed":false,"name":"_value","type":"uint8"}],"name":"SpecChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"ToTicket","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":true,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":true,"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":false,"name":"status","type":"bool"}],"name":"Maintenance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"FailedPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"BeneficiaryPayout","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

62015180600255633b9aca006003556004805460ff199081169091556006805490911690556000600d81905560a0604081905260808290526200004691600e919062000380565b506040805160208101918290526000908190526200006791600f9162000380565b50604080516020810191829052600090819052620000889160109162000380565b503480156200009657600080fd5b5060008054336001600160a01b0319918216811783556001805490921681178255825260056020908152604092839020805460ff19169092179091558151808301909252600482527f4d43504300000000000000000000000000000000000000000000000000000000908201526200010e90620001a4565b60408051808201909152600b81527f4d435020436974697a656e000000000000000000000000000000000000000000602082015262000156906001600160e01b036200024716565b60408051808201909152601d81527f68747470733a2f2f6d63702e746f776e2f6170692f636974697a656e2f00000060208201526200019e906001600160e01b03620002e616565b62000425565b3360009081526005602052604090205460ff1680620001c257503330145b6200022e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f6e6c79206d616e616765727320616c6c6f7765640000000000000000000000604482015290519081900360640190fd5b80516200024390601090602084019062000380565b5050565b3360009081526005602052604090205460ff16806200026557503330145b620002d157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f6e6c79206d616e616765727320616c6c6f7765640000000000000000000000604482015290519081900360640190fd5b80516200024390600f90602084019062000380565b3360009081526005602052604090205460ff16806200030457503330145b6200037057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f6e6c79206d616e616765727320616c6c6f7765640000000000000000000000604482015290519081900360640190fd5b80516200024390600e9060208401905b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620003c357805160ff1916838001178555620003f3565b82800160010185558215620003f3579182015b82811115620003f3578251825591602001919060010190620003d6565b506200040192915062000405565b5090565b6200042291905b808211156200040157600081556001016200040c565b90565b61330980620004356000396000f3fe6080604052600436106102e45760003560e01c8063835fc6ca11610190578063db97a93d116100dc578063f2fde38b11610095578063f6aacfb11161006f578063f6aacfb114611282578063f7a4e737146112ac578063f85ea2ab146112d8578063fdff9b4d1461130b576102e4565b8063f2fde38b14611210578063f44b79b314611243578063f4dadc6114611258576102e4565b8063db97a93d14610de2578063dd2e0ac014610e2b578063e1d916f714610e55578063e985e9c514610eb7578063eff70c2b14610ef2578063f00bb23714610f25576102e4565b8063b88d4fde11610149578063c87b56dd11610123578063c87b56dd14610cfa578063cdff735e14610d24578063d0ebdbe714610d9a578063d547cfb714610dcd576102e4565b8063b88d4fde14610b78578063beabacc814610c06578063c47f002714610c49576102e4565b8063835fc6ca14610a055780638da5cb5b14610a2f57806395d89b4114610a445780639679976014610a59578063a22cb46514610a8c578063b84c824614610ac7576102e4565b806342842e0e1161024f578063607d9c681161020857806370a08231116101e257806370a08231146109695780637d4061e61461099c57806380f20363146109c657806380f55605146109f0576102e4565b8063607d9c68146108ca5780636352211e146108fa5780636382347214610924576102e4565b806342842e0e1461078357806342966c68146107b957806345111d67146107e35780634e7f3be5146108165780634f64b2be1461084057806358fe06ca14610887576102e4565b80631b14323c116102a15780631b14323c146104dd5780631c31f7101461061457806323b872dd1461064757806327e235e31461068a57806330176e13146106bd57806338af3eed1461076e576102e4565b806301ffc9a7146102e957806306fdde0314610331578063081812fc146103bb578063095ea7b31461040157806312c8d2341461043c57806318160ddd146104c8575b600080fd5b3480156102f557600080fd5b5061031d6004803603602081101561030c57600080fd5b50356001600160e01b03191661133e565b604080519115158252519081900360200190f35b34801561033d57600080fd5b50610346611377565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610380578181015183820152602001610368565b50505050905090810190601f1680156103ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103c757600080fd5b506103e5600480360360208110156103de57600080fd5b503561140e565b604080516001600160a01b039092168252519081900360200190f35b34801561040d57600080fd5b5061043a6004803603604081101561042457600080fd5b506001600160a01b038135169060200135611429565b005b34801561044857600080fd5b506104b6600480360361016081101561046057600080fd5b6040805160e081810183528435946001600160a01b03602082013516948101939092610120840192909184019060079083908390808284376000920191909152509194505060ff823516925050602001356114f5565b60408051918252519081900360200190f35b3480156104d457600080fd5b506104b66115e7565b3480156104e957600080fd5b5061043a6004803603606081101561050057600080fd5b81359190810190604081016020820135600160201b81111561052157600080fd5b82018360208201111561053357600080fd5b803590602001918460208302840111600160201b8311171561055457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156105a357600080fd5b8201836020820111156105b557600080fd5b803590602001918460208302840111600160201b831117156105d657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506115ed945050505050565b34801561062057600080fd5b5061043a6004803603602081101561063757600080fd5b50356001600160a01b0316611708565b34801561065357600080fd5b5061043a6004803603606081101561066a57600080fd5b506001600160a01b03813581169160208101359091169060400135611776565b34801561069657600080fd5b506104b6600480360360208110156106ad57600080fd5b50356001600160a01b03166117cb565b3480156106c957600080fd5b5061043a600480360360208110156106e057600080fd5b810190602081018135600160201b8111156106fa57600080fd5b82018360208201111561070c57600080fd5b803590602001918460018302840111600160201b8311171561072d57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506117dd945050505050565b34801561077a57600080fd5b506103e5611850565b61043a6004803603606081101561079957600080fd5b506001600160a01b0381358116916020810135909116906040013561185f565b3480156107c557600080fd5b5061043a600480360360208110156107dc57600080fd5b503561195d565b3480156107ef57600080fd5b5061043a6004803603604081101561080657600080fd5b508035906020013560ff166119c5565b34801561082257600080fd5b5061043a6004803603602081101561083957600080fd5b5035611b35565b34801561084c57600080fd5b5061086a6004803603602081101561086357600080fd5b5035611b96565b6040805160ff909316835260208301919091528051918290030190f35b34801561089357600080fd5b5061043a600480360360608110156108aa57600080fd5b5080359060208101356001600160f81b031916906040013560ff16611bb8565b3480156108d657600080fd5b5061043a600480360360408110156108ed57600080fd5b5080359060200135611c86565b34801561090657600080fd5b506103e56004803603602081101561091d57600080fd5b5035611cf7565b34801561093057600080fd5b5061043a6004803603606081101561094757600080fd5b506001600160a01b038135811691602081013590911690604001351515611d12565b34801561097557600080fd5b506104b66004803603602081101561098c57600080fd5b50356001600160a01b0316611dfb565b3480156109a857600080fd5b506103e5600480360360208110156109bf57600080fd5b5035611e16565b3480156109d257600080fd5b5061043a600480360360208110156109e957600080fd5b5035611e31565b3480156109fc57600080fd5b506103e5611ea8565b348015610a1157600080fd5b5061043a60048036036020811015610a2857600080fd5b5035611eb7565b348015610a3b57600080fd5b506103e5611f59565b348015610a5057600080fd5b50610346611f68565b348015610a6557600080fd5b5061043a60048036036020811015610a7c57600080fd5b50356001600160a01b0316611fc9565b348015610a9857600080fd5b5061043a60048036036040811015610aaf57600080fd5b506001600160a01b0381351690602001351515612036565b348015610ad357600080fd5b5061043a60048036036020811015610aea57600080fd5b810190602081018135600160201b811115610b0457600080fd5b820183602082011115610b1657600080fd5b803590602001918460018302840111600160201b83111715610b3757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506120ba945050505050565b61043a60048036036080811015610b8e57600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b811115610bc857600080fd5b820183602082011115610bda57600080fd5b803590602001918460018302840111600160201b83111715610bfb57600080fd5b509092509050612129565b348015610c1257600080fd5b5061043a60048036036060811015610c2957600080fd5b506001600160a01b03813581169160208101359091169060400135612255565b348015610c5557600080fd5b5061043a60048036036020811015610c6c57600080fd5b810190602081018135600160201b811115610c8657600080fd5b820183602082011115610c9857600080fd5b803590602001918460018302840111600160201b83111715610cb957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506122bd945050505050565b348015610d0657600080fd5b5061034660048036036020811015610d1d57600080fd5b503561232c565b348015610d3057600080fd5b506104b66004803603610140811015610d4857600080fd5b6040805160e08181019092526001600160a01b0384351693928301929161010083019190602084019060079083908390808284376000920191909152509194505060ff82351692505060200135612347565b348015610da657600080fd5b5061043a60048036036020811015610dbd57600080fd5b50356001600160a01b031661241d565b348015610dd957600080fd5b5061034661248d565b348015610dee57600080fd5b5061043a60048036036080811015610e0557600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356124ee565b348015610e3757600080fd5b5061043a60048036036020811015610e4e57600080fd5b50356125a4565b348015610e6157600080fd5b50610e7f60048036036020811015610e7857600080fd5b5035612618565b604051808260e080838360005b83811015610ea4578181015183820152602001610e8c565b5050505090500191505060405180910390f35b348015610ec357600080fd5b5061031d60048036036040811015610eda57600080fd5b506001600160a01b038135811691602001351661267c565b348015610efe57600080fd5b5061043a60048036036040811015610f1557600080fd5b508035906020013560ff166126c6565b348015610f3157600080fd5b5061043a600480360360a0811015610f4857600080fd5b810190602081018135600160201b811115610f6257600080fd5b820183602082011115610f7457600080fd5b803590602001918460208302840111600160201b83111715610f9557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610fe457600080fd5b820183602082011115610ff657600080fd5b803590602001918460208302840111600160201b8311171561101757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561106657600080fd5b82018360208201111561107857600080fd5b803590602001918460e08302840111600160201b8311171561109957600080fd5b9190808060200260200160405190810160405280939291908181526020016000905b828210156110fc576040805160e0818101909252908084028701906007908390839080828437600092019190915250505081526001909101906020016110bb565b50939695946020810194503592505050600160201b81111561111d57600080fd5b82018360208201111561112f57600080fd5b803590602001918460208302840111600160201b8311171561115057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561119f57600080fd5b8201836020820111156111b157600080fd5b803590602001918460208302840111600160201b831117156111d257600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506127b2945050505050565b34801561121c57600080fd5b5061043a6004803603602081101561123357600080fd5b50356001600160a01b031661294a565b34801561124f57600080fd5b5061043a612a36565b34801561126457600080fd5b5061031d6004803603602081101561127b57600080fd5b5035612a8e565b34801561128e57600080fd5b5061031d600480360360208110156112a557600080fd5b5035612aa3565b3480156112b857600080fd5b5061043a600480360360208110156112cf57600080fd5b50351515612ab8565b3480156112e457600080fd5b5061043a600480360360208110156112fb57600080fd5b50356001600160a01b0316612b5b565b34801561131757600080fd5b5061031d6004803603602081101561132e57600080fd5b50356001600160a01b0316612bd9565b6000635b5e139f60e01b6001600160e01b03198316148061136f57506380ac58cd60e01b6001600160e01b03198316145b90505b919050565b600f8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114035780601f106113d857610100808354040283529160200191611403565b820191906000526020600020905b8154815290600101906020018083116113e657829003601f168201915b505050505090505b90565b6000908152600a60205260409020546001600160a01b031690565b600081815260076020526040902054819060ff161561144757600080fd5b600061145283611cf7565b9050806001600160a01b0316846001600160a01b0316141561147357600080fd5b336001600160a01b038216148061148f575061148f813361267c565b61149857600080fd5b6000838152600a602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b3360009081526005602052604081205460ff168061151257503330145b611551576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b600061155c87611cf7565b6001600160a01b03161461156f57600080fd5b6040805160608101825285815260ff8516602080830191909152818301859052600089815260119091529190912081516115ac90829060076130fb565b50602082015160018201805460ff191660ff9092169190911790556040909101516002909101556115dd8686612bee565b5093949350505050565b600d5481565b3360009081526005602052604090205460ff168061160a57503330145b611649576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b60005b82518110156116b65761169c601160008681526020019081526020016000206002015483838151811061167b57fe5b602002602001015185848151811061168f57fe5b6020026020010151612bfa565b60008581526011602052604090206002015560010161164c565b506000838152601160209081526040918290206002015482518681529182015281517f6ebf61949b140f1ba525404a8d58b7e026d16c068985cf00ddff01a841dc82e0929181900390910190a1505050565b6000546001600160a01b03163314611754576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081815260076020526040902054819060ff161561179457600080fd5b6001600160a01b0383166117a757600080fd5b6117b13383612c13565b6117ba57600080fd5b6117c5848484612c72565b50505050565b60096020526000908152604090205481565b3360009081526005602052604090205460ff16806117fa57503330145b611839576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b805161184c90600e90602084019061318e565b5050565b6001546001600160a01b031681565b6118693382612c13565b61187257600080fd5b6001600160a01b03821661188557600080fd5b81611891848284612c72565b60405180602f61325f82396040805191829003602f018220630a85bd0160e11b83523360048401526001600160a01b038881166024850152604484018790526080606485015260006084850181905292516001600160e01b0319909216945085169263150b7a029260c48083019360209390929083900390910190829087803b15801561191d57600080fd5b505af1158015611931573d6000803e3d6000fd5b505050506040513d602081101561194757600080fd5b50516001600160e01b031916146117c557600080fd5b3360009081526005602052604090205460ff168061197a57503330145b6119b9576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b6119c281612d7d565b50565b3360009081526005602052604090205460ff16806119e257503330145b611a21576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b60088160ff16108015611a635750600082815260116020526040812060ff831660078110611a4b57fe5b602081049091015460ff601f9092166101000a900416115b611a6c57600080fd5b600082815260116020526040902060ff821660078110611a8857fe5b6020808204909201805460001960ff601f9094166101000a80830485169190910184168102908402199091161790556000848152601190925260409091207fe88ae3ec95e48eb0a16c622e23daad237c4bc0957618c76c3c172be6d3991b829184918491821660078110611af857fe5b6020808204909201546040805195865260ff94851693860193909352601f9091166101000a90049190911682820152519081900360600190a15050565b3360009081526005602052604090205460ff1680611b5257503330145b611b91576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b600255565b6011602052600090815260409020600181015460029091015460ff9091169082565b3360009081526005602052604090205460ff1680611bd557503330145b611c14576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b600083815260116020526040902060020154611c31908284612bfa565b60008481526011602090815260409182902060020183905581518681529081019290925280517f6ebf61949b140f1ba525404a8d58b7e026d16c068985cf00ddff01a841dc82e09281900390910190a1505050565b3360009081526005602052604090205460ff1680611ca357503330145b611ce2576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b60009182526011602052604090912060020155565b6000908152600c60205260409020546001600160a01b031690565b3360009081526005602052604090205460ff1680611d2f57503330145b611d6e576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b826001600160a01b0316826001600160a01b03161415611d8d57600080fd5b6001600160a01b038381166000818152600b6020908152604080832094871680845294825291829020805460ff1916861515908117909155825190815291517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319281900390910190a3505050565b6001600160a01b031660009081526009602052604090205490565b600a602052600090815260409020546001600160a01b031681565b3360009081526005602052604090205460ff1680611e4e57503330145b611e8d576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b6000908152600760205260409020805460ff19166001179055565b6008546001600160a01b031681565b6000546001600160a01b03163314611f03576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015290519081900360640190fd5b3031811115611f50576040805162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b604482015290519081900360640190fd5b6119c281612d91565b6000546001600160a01b031681565b60108054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114035780601f106113d857610100808354040283529160200191611403565b6000546001600160a01b03163314612015576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015290519081900360640190fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b6001600160a01b03821633141561204c57600080fd5b336000818152600b602090815260408083206001600160a01b03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b3360009081526005602052604090205460ff16806120d757503330145b612116576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b805161184c90601090602084019061318e565b6121333384612c13565b61213c57600080fd5b6001600160a01b03841661214f57600080fd5b8361215b868286612c72565b60405180602f61325f823960405190819003602f018120630a85bd0160e11b825233600483018181526001600160a01b038b81166024860152604485018a9052608060648601908152608486018990526001600160e01b0319909416955086169363150b7a02938c928b928b928b929160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050602060405180830381600087803b15801561220d57600080fd5b505af1158015612221573d6000803e3d6000fd5b505050506040513d602081101561223757600080fd5b50516001600160e01b0319161461224d57600080fd5b505050505050565b6000818152600c602052604090205481906001600160a01b0316331461227a57600080fd5b600082815260076020526040902054829060ff161561229857600080fd5b6001600160a01b0384166122ab57600080fd5b6122b6858585612c72565b5050505050565b3360009081526005602052604090205460ff16806122da57503330145b612319576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b805161184c90600f90602084019061318e565b606061136f61233961248d565b61234284612e02565b612ec3565b3360009081526005602052604081205460ff168061236457503330145b6123a3576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b600d546040805160608101825286815260ff8616602080830191909152818301869052600084815260119091529190912081516123e390829060076130fb565b50602082015160018201805460ff191660ff9092169190911790556040909101516002909101556124148187612bee565b95945050505050565b6000546001600160a01b03163314612469576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015290519081900360640190fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b600e8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114035780601f106113d857610100808354040283529160200191611403565b3360009081526005602052604090205460ff168061250b57503330145b61254a576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b600081815260076020526040902054819060ff161561256857600080fd5b6001600160a01b03831661257b57600080fd5b836001600160a01b0316856001600160a01b03161461259957600080fd5b6122b6858484612c72565b3360009081526005602052604090205460ff16806125c157503330145b612600576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b6000908152600760205260409020805460ff19169055565b612620613208565b600082815260116020526040808220815160e08101928390529290916007918390855b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411612643575094979650505050505050565b6001600160a01b038083166000908152600b6020908152604080832093851683529290529081205460ff16806126bf57506008546001600160a01b038381169116145b9392505050565b3360009081526005602052604090205460ff16806126e357503330145b612722576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b60088160ff1610801561276757506000828152601160205260409020600c9060ff83166007811061274f57fe5b602081049091015460ff601f9092166101000a900416105b61277057600080fd5b60008281526011602052604090207fe88ae3ec95e48eb0a16c622e23daad237c4bc0957618c76c3c172be6d3991b82908390839060ff821660078110611af857fe5b3360009081526005602052604090205460ff16806127cf57503330145b61280e576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b60005b855181101561224d5760006001600160a01b031661284187838151811061283457fe5b6020026020010151611cf7565b6001600160a01b03161461285457612942565b604051806060016040528085838151811061286b57fe5b6020026020010151815260200184838151811061288457fe5b602002602001015160ff1681526020018383815181106128a057fe5b6020026020010151815250601160008884815181106128bb57fe5b602002602001015181526020019081526020016000206000820151816000019060076128e89291906130fb565b50602082015160018201805460ff191660ff90921691909117905560409091015160029091015585516129429087908390811061292157fe5b602002602001015186838151811061293557fe5b6020026020010151612bee565b600101612811565b6000546001600160a01b03163314612996576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015290519081900360640190fd5b6001600160a01b0381166129db5760405162461bcd60e51b81526004018080602001828103825260278152602001806132ae6027913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314612a82576040805162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015290519081900360640190fd5b612a8c3031612d91565b565b60076020526000908152604090205460ff1681565b60009081526007602052604090205460ff1690565b3360009081526005602052604090205460ff1680612ad557503330145b612b14576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b6004805482151560ff19909116811790915560408051918252517ff887ef1cd6ea70dd7529aa56e6783f040a86670e09922d53c99baa8c1dbb1fc49181900360200190a150565b3360009081526005602052604090205460ff1680612b7857503330145b612bb7576040805162461bcd60e51b8152602060048201526015602482015260008051602061328e833981519152604482015290519081900360640190fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b60056020526000908152604090205460ff1681565b61184c60008284612c72565b60f81c60ff91821660020a908102910219919091161790565b600080612c1f83611cf7565b9050806001600160a01b0316846001600160a01b03161480612c5a5750836001600160a01b0316612c4f8461140e565b6001600160a01b0316145b80612c6a5750612c6a818561267c565b949350505050565b826001600160a01b0316612c8582611cf7565b6001600160a01b031614612c9857600080fd5b6000818152600a6020526040902080546001600160a01b03191690556001600160a01b03831615612ce8576001600160a01b03831660009081526009602052604090208054600019019055612cf2565b600d805460010190555b6001600160a01b03821615612d21576001600160a01b0382166000908152600960205260409020805460010190555b6000818152600c602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6119c2612d8982611cf7565b600083612c72565b6001546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015612dcb573d6000803e3d6000fd5b506040805182815290517f44d31cfe5762fdf05f81963fac293a41a517d0310b09759df225379688bd09e19181900360200190a150565b606081612e2757506040805180820190915260018152600360fc1b6020820152611372565b8160005b8115612e3f57600101600a82049150612e2b565b6060816040519080825280601f01601f191660200182016040528015612e6c576020820181803883390190505b50905060001982015b8515612eba57600a860660300160f81b82828060019003935081518110612e9857fe5b60200101906001600160f81b031916908160001a905350600a86049550612e75565b50949350505050565b604080516020808201835260008083528351808301855281815284518084018652918252805184518751895188519101909101909101808252601f19601f82011682019094019095526060946126bf948894889491939288918791879187918791879187918015612f3b576020820181803883390190505b509050806000805b8851811015612f9457888181518110612f5857fe5b602001015160f81c60f81b838380600101945081518110612f7557fe5b60200101906001600160f81b031916908160001a905350600101612f43565b5060005b8751811015612fe957878181518110612fad57fe5b602001015160f81c60f81b838380600101945081518110612fca57fe5b60200101906001600160f81b031916908160001a905350600101612f98565b5060005b865181101561303e5786818151811061300257fe5b602001015160f81c60f81b83838060010194508151811061301f57fe5b60200101906001600160f81b031916908160001a905350600101612fed565b5060005b85518110156130935785818151811061305757fe5b602001015160f81c60f81b83838060010194508151811061307457fe5b60200101906001600160f81b031916908160001a905350600101613042565b5060005b84518110156130e8578481815181106130ac57fe5b602001015160f81c60f81b8383806001019450815181106130c957fe5b60200101906001600160f81b031916908160001a905350600101613097565b50909d9c50505050505050505050505050565b60018301918390821561317e5791602002820160005b8382111561314f57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613111565b801561317c5782816101000a81549060ff021916905560010160208160000104928301926001030261314f565b505b5061318a929150613226565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106131cf57805160ff19168380011785556131fc565b828001600101855582156131fc579182015b828111156131fc5782518255916020019190600101906131e1565b5061318a929150613244565b6040518060e001604052806007906020820280388339509192915050565b61140b91905b8082111561318a57805460ff1916815560010161322c565b61140b91905b8082111561318a576000815560010161324a56fe6f6e455243373231526563656976656428616464726573732c616464726573732c75696e743235362c6279746573294f6e6c79206d616e616765727320616c6c6f77656400000000000000000000005472616e7366657220746f206e756c6c2061646472657373206973206e6f7420616c6c6f776564a265627a7a72305820f7b89ec2bbbe26bc44c084712be99cdbd4955dd03680a763c1a01da43bbf12ed64736f6c63430005090032

Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.