ETH Price: $3,454.12 (+1.65%)
Gas: 9 Gwei

Token

Proof of Rock (POR)
 

Overview

Max Total Supply

100 POR

Holders

84

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 POR
0x60b861ccc1b8b93481e68688beff9e15a6ac9a9e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
ProofOfRockTethered

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-09-05
*/

// SPDX-License-Identifier: NONE

pragma solidity 0.8.3;



// Part: ERC721TokenReceiver

/// @dev Note: the ERC-165 identifier for this interface is 0x150b7a02.
interface ERC721TokenReceiver {
    /// @notice Handle the receipt of an NFT
    /// @dev The ERC721 smart contract calls this function on the recipient
    ///  after a `transfer`. This function MAY throw to revert and reject the
    ///  transfer. Return of other than the magic value MUST result in the
    ///  transaction being reverted.
    ///  Note: the contract address is always the message sender.
    /// @param _operator The address which called `safeTransferFrom` function
    /// @param _from The address which previously owned the token
    /// @param _tokenId The NFT identifier which is being transferred
    /// @param _data Additional data with no specified format
    /// @return `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`
    ///         unless throwing
    function onERC721Received(
        address _operator,
        address _from,
        uint256 _tokenId,
        bytes memory _data
    ) external returns (bytes4);
}

// Part: EtherRock

interface EtherRock {
    function getRockInfo(uint256 rockNumber) external view returns (address);

    function rockOwners(address owner, uint256 idx)
        external
        view
        returns (uint256);
}

// Part: ProofOfRock

/**
    @title Proof Of Rock
    @notice ERC721-ish contract where token ownership is 1:1 pegged with ownership of EtherRocks
 */
abstract contract ProofOfRock {
    EtherRock public constant etherRock =
        EtherRock(0x41f28833Be34e6EDe3c58D1f597bef429861c4E2);

    string public name;
    string public symbol;
    uint256 public totalSupply;

    mapping(bytes4 => bool) public supportsInterface;

    string[100] tokenURIs;
    address[100] tokenApprovals;

    mapping(address => mapping(address => bool)) private operatorApprovals;

    bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;
    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;
    bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;
    bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;
    bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;

    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
    );

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
        supportsInterface[_INTERFACE_ID_ERC165] = true;
        supportsInterface[_INTERFACE_ID_ERC721] = true;
        supportsInterface[_INTERFACE_ID_ERC721_METADATA] = true;
        supportsInterface[_INTERFACE_ID_ERC721_ENUMERABLE] = true;
    }

    /// @notice Count all NFTs assigned to an owner
    function balanceOf(address _owner) public view virtual returns (uint256);

    /// @notice Find the owner of an NFT
    function ownerOf(uint256 tokenId) public view virtual returns (address);

    function tokenOfOwnerByIndex(address _owner, uint256 _index)
        public
        view
        virtual
        returns (uint256);

    function _transfer(
        address _from,
        address _to,
        uint256 _tokenId
    ) internal virtual;

    /// @notice Transfers the ownership of an NFT from one address to another address
    /// @dev Throws unless `msg.sender` is the current owner, an authorized
    ///  operator, or the approved address for this NFT. Throws if `_from` is
    ///  not the current owner. Throws if `_to` is the zero address. Throws if
    ///  `_tokenId` is not a valid NFT. When transfer is complete, this function
    ///  checks if `_to` is a smart contract (code size > 0). If so, it calls
    ///  `onERC721Received` on `_to` and throws if the return value is not
    ///  `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`.
    /// @param _from The current owner of the NFT
    /// @param _to The new owner
    /// @param _tokenId The NFT to transfer
    /// @param _data Additional data with no specified format, sent in call to `_to`
    function safeTransferFrom(
        address _from,
        address _to,
        uint256 _tokenId,
        bytes memory _data
    ) public {
        _transfer(_from, _to, _tokenId);
        require(
            _checkOnERC721Received(_from, _to, _tokenId, _data),
            "Transfer to non ERC721 receiver"
        );
    }

    /// @notice Transfers the ownership of an NFT from one address to another address
    /// @dev This works identically to the other function with an extra data parameter,
    ///  except this function just sets data to "".
    /// @param _from The current owner of the NFT
    /// @param _to The new owner
    /// @param _tokenId The NFT to transfer
    function safeTransferFrom(
        address _from,
        address _to,
        uint256 _tokenId
    ) external {
        safeTransferFrom(_from, _to, _tokenId, bytes(""));
    }

    /// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE
    ///  TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE
    ///  THEY MAY BE PERMANENTLY LOST
    /// @dev Throws unless `msg.sender` is the current owner, an authorized
    ///  operator, or the approved address for this NFT. Throws if `_from` is
    ///  not the current owner. Throws if `_to` is the zero address. Throws if
    ///  `_tokenId` is not a valid NFT.
    /// @param _from The current owner of the NFT
    /// @param _to The new owner
    /// @param _tokenId The NFT to transfer
    function transferFrom(
        address _from,
        address _to,
        uint256 _tokenId
    ) external {
        _transfer(_from, _to, _tokenId);
    }

    /// @notice Change or reaffirm the approved address for an NFT
    function approve(address approved, uint256 tokenId) public {
        address owner = ownerOf(tokenId);
        require(
            msg.sender == owner || isApprovedForAll(owner, msg.sender),
            "Not owner nor approved for all"
        );
        tokenApprovals[tokenId] = approved;
        emit Approval(owner, approved, tokenId);
    }

    /// @notice Get the approved address for a single NFT
    function getApproved(uint256 tokenId) public view returns (address) {
        ownerOf(tokenId);
        return tokenApprovals[tokenId];
    }

    /// @notice Enable or disable approval for a third party ("operator") to manage
    ///         all of `msg.sender`'s assets
    function setApprovalForAll(address operator, bool approved) external {
        operatorApprovals[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    /// @notice Query if an address is an authorized operator for another address
    function isApprovedForAll(address owner, address operator)
        public
        view
        returns (bool)
    {
        return operatorApprovals[owner][operator];
    }

    /// @notice Concatenates tokenId to baseURI and returns the string.
    function tokenURI(uint256 tokenId) public view returns (string memory) {
        ownerOf(tokenId);
        return tokenURIs[tokenId];
    }

    /// @notice Enumerate valid NFTs
    function tokenByIndex(uint256 _index) external view returns (uint256) {
        require(_index < totalSupply, "Index out of bounds");
        return _index;
    }

    function _checkOnERC721Received(
        address from,
        address to,
        uint256 tokenId,
        bytes memory _data
    ) private returns (bool) {
        uint256 size;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            size := extcodesize(to)
        }
        if (size == 0) {
            return true;
        }

        (bool success, bytes memory returnData) = to.call{value: 0}(
            abi.encodeWithSelector(
                ERC721TokenReceiver(to).onERC721Received.selector,
                msg.sender,
                from,
                tokenId,
                _data
            )
        );
        require(success, "Transfer to non ERC721 receiver");
        bytes4 returnValue = abi.decode(returnData, (bytes4));
        return (returnValue == _ERC721_RECEIVED);
    }
}

// File: PoRTethered.sol

/**
    @title Proof Of Rock: Tethered
    @notice ERC721-ish contract where token ownership is 1:1 pegged with ownership of EtherRocks
 */
contract ProofOfRockTethered is ProofOfRock {
    constructor(string memory _name, string memory _symbol)
        ProofOfRock(_name, _symbol)
    {
        totalSupply = 100;
        tokenURIs = [
            "QmPJ8qzTuu4ThCJNDxa7ib1DUYhEbAPzMUpasinnucC5AH",
            "QmXNSt14kaGKauW37VxLShLSqfvLyShzBnVBmbhXbJdci6",
            "QmdtQsrEzrgztRYuKvpnYMxcYLfQxS59x9M5fBQVGvSx3q",
            "QmVwExvwgZuKDavcTGEYLi8wrSEUerRXcSD7NEfbzZgFLE",
            "QmekTo6LMCVRKrdrHPqiMhYwU3uiCqZgVtjjtTRmTk4w5v",
            "QmadAqBoMXm7AdLXWNsLqyBjwEUh9XrEALftKWSVqyb2Ws",
            "QmZi6WxyVEMLzRA6bm51iDNw9qTxbieEJDzAkYbr4b1DMo",
            "Qme1fuKKBUFsGzzwBRDjDtnrfiUHP9zkb3Jgi9ojKk7Hv5",
            "QmRucC5Ux7FvmWCScTKLxCiorxXY8daCyTPx3tGZDRRccb",
            "QmYaNk6gGbQ9QoabN9jurwPQ5py7GjW8M5WWJdwKmzvL9Z",
            "QmYojyCWKPM9e2xYj54H7c2bD67Nbbx2mVjLQZHo7P4WhS",
            "QmVPgPH4yZizyjVHd3YpAHwxQHP5jXfsg3UqnbAWXs5v7d",
            "QmYrzkgg4UVrCuxeYn5ij8Pmygof2rhd7BqrMgTNPBnQ8d",
            "QmTzAzj93EDEMq3jmoRPFV4fsB5rTQHNBFy9EMTSEPh5QA",
            "QmcjQMD9LSZinXWVFqmMdPXXiwqiTUpgSc8pyWRE4QvfuZ",
            "QmfCP8PT934BR4FVsSzsxze8NfLMepwNFb2ZYih4Gz4ZJt",
            "QmNxr6zrdeFZuAdQFmWevQ9BdVuboZevxzrhMcPQRnCjTb",
            "QmUXgtKx6tVvKk1aqDD5aZwB7C5ct3R1tS7m45kgKsgKf2",
            "QmXhvWC3xTBUFe85GLWrqUNay347EVD7hYKc1aBHoyr2Co",
            "QmRUN2R6wLNCfxAz3zK3bdnCYkT4EzGmSQMqLaKaAF1w6G",
            "QmRChgYU8CraSPB4YU1HN9RXuTmx7USR3LPuCHArv5EAGG",
            "Qme5gCUYKxQaqrAEq428dDMpt1neBWkaZnD7YTKxVGwFxU",
            "Qmf8Db6UE3sdcexkG8eK3p88p3bTbL1tSsVFiPTzKuUwdQ",
            "Qmb8C1sfx8cvmo5E5CENzZX4WBJyJdYbf5zVgcfsUH9v1m",
            "QmVdgUU4VBSp8goWBxgAj7zQuCNBYRk1kCkL5a59z2QHbE",
            "QmU3iddwTtYhQUBvxJHmrH4tB71qo7DnvJ9yoEwJfipUK3",
            "QmWH894qumXwCupitw4U1YQ7P6rhZhxAjJSSCj9Jm9tZu7",
            "QmR2JTwZLTurjFfL2nrqVuFJBo9TvnerrybGuDsA4uv3EP",
            "QmdAWM9HnxehbX1mEHN6FAPTuksNrZjEVhKHoSRtWYxYct",
            "QmTLi4PMR9oas2Rtq3LjXxGfFKbVqFGxh7xrQd98tZxHWp",
            "QmcVWASAA2oDVmUyiP1pLMtbAQx4MimWEJZLjxgQmZv9cW",
            "QmY5cmDU3VuRkJV8hA1wRcvxK6ECLD9nmsvQXqV69MUFyg",
            "QmNi2Th3LdhyeccUJZNHjVRBKvpB9MFYJi26w9rZiRwJkT",
            "QmfFEoTsJCvzuRE8z184sTEzYdEtDkaFtDuzAKT5QWMKHo",
            "Qmf5HTTWV9EST9J4QMXM5VRpLVw9NdQLxgPJYGp35NseZz",
            "QmbpSpiEKzXwjq41MeCxqPfMkdt2xRNHGQ26uKRyekwuQ8",
            "QmZmHDrodoc1KvZwb2SzVo6Bu3zouWogmEQG9GMGrFLuAR",
            "QmdvxaEqZA5tihnm2kQ3maPq6njZ66EXRzVamYnHaPjipb",
            "QmRcdQbuuTyc2wp6jsbJog7Cf31WkXC6LptXs9VgErjBPK",
            "QmSkGRL66jKDqwVwvU2vGsGtgq8Ejy7LdGy7Fyc8RsuZzC",
            "QmXnwPkxfvSuTFwV9Wk4ibVo9ci8qKmjmMXWjTJXf8pgTs",
            "QmcdrEVE5KKTCU59gCuFJ87HijSovzdpBF8USmubhd4d6z",
            "QmQt7KDGaPVxxzFiuvKpfdSjDfbT9ATHdK7JY1EEdZzT52",
            "QmPijpreFELWBJnxKd4F9gekV4JSjM27szw9VSKC6GxoiX",
            "QmU1Db1Ft4gXLkdHNCw7uM98dLpfVq39b8aK1oLWMZN7QT",
            "QmaynTAHbVGg2ERcDbpnBukoFgwL8f4eKDDVuBYfRFi4Qu",
            "QmWnLxpYCG4HmCCiULdBSpayqw3JtfJvz4gkTuobzeVLQ1",
            "QmSWERGitRfcD5ABk322z8RGf2dWS5MvJi3wisHX7dMknN",
            "QmdBxsrXs1sK1btiQKybveyLTqeG2kHG1xuKt6c6piEHNF",
            "QmVmMoYeBUc9o1NFA5ucDwmi2BGpbaEoCQ2ARBGC7LP6jR",
            "QmSupSUfBfnyCqoBHzCnxkSWRzqHoJRAQJjWYDzg5Jhb6C",
            "Qmd2ZuNVGSTbj2qBfLSUkgcKTcfWgMpgtbyhkdJrPQSgm8",
            "QmNoTWLsm6BYPsyVRDdKjhMPBsMJ8f2TZQmKtGk5fu7tWz",
            "QmcFmPHiGmoYjZ5nrj2EnkvcgNgT6e8oADyBZ6Gk6SE8Y9",
            "QmdcSqkNo5Txp3hoZWftHmt98kenvTWAuKjXPHJfSsv3RC",
            "QmU3eBA5q7b94rUThWARPvMobedNRSZ7ueBxCTGZmzv1nR",
            "QmSbmXujufQtFTi6K2SAcQ8etQSS2GtY7gf2RPYfyjo1nv",
            "QmVmSeqorghs6omNbRSnrBFjWun4qxrZ8buEkyMruuRbpB",
            "QmQT3gfDXYvk8iix1iv68UpoCJbpnsBay7Lpf5X67mGzRV",
            "QmeraW9Drh6VuaLk1ev7xpTDqEzh5tHFjd5CttMC57xmVX",
            "QmQ4ABH8SLDrLaZiHhebfbQEUudcgkvdVAvWUQyCE46Yqo",
            "QmRqJimbHkndUmYG1pxMFYMWp51P2qg9KdorEKZhU6XDt2",
            "QmPwzA4UKaQQeJmjtfXdaVhUodAz3TvA5pkympumeU4BEF",
            "QmcgJWLMF7q3eJScKrD9F6cqg6Fa4MivJCcKaU7SQYhYhM",
            "QmRXKHKvnBhKyEteGxw59DLqsouTPBYvTuHyHSmbxCLtND",
            "QmTVRZH86PEF2MDucSH7grQip9i9fGbLoT5euSW5jG1mis",
            "QmP5r2yf19BJ4VzzL9Z5Txh7TcZcZr2brGWyQY14mEABG8",
            "QmaTryHgQ6ARUJAUedTnPy97njS642zm3Vy6xjfLFEX32Q",
            "QmfDVU77wCGtebMxgxTjvFd2HDiskv34H3xBvLyJUAQNJa",
            "QmXYtx1Xks3mvDNLweSkCjwrhQssUW1afK9vXKHciBLNMn",
            "QmRkCenqbXhKxykcBDmuvzWKxnmuvB93vSmUeG5YSrDj6e",
            "Qmasg7UKJvdaTDTNxZ54w7gAVyaK1YDNy1vxuqCoX52W6q",
            "QmX8JyrSE2BdLsenHKdQV84tFWSzDX5LfmWnfgpNfQp9AX",
            "Qmf9ydFPcJXwqYU1NPUyJ3RHM5jZCeTkJrntjA6DBmTb7C",
            "QmTSzAeyv9a6oW3ZZ8sP9WogQWBqFWHd3oGFudMabvo6xX",
            "QmQrXSFQiW3rF4iztos6Rdy5R8PCpRAzLndaBQ9MYm5SNL",
            "QmZQhsWMDtQnJnGWACaZAhm449cbKQonG4XWhQNeMBtNQa",
            "QmQMwHXwLCHnh9DT5xXGRrt8SLTQB1yEmmVKuE2EfHjT1r",
            "QmVwrxXGsPx5QU4RQ7H5eY67GkUpCa1tukmZ8ARZVqzBR9",
            "QmY22M4fAR4xabVeJeWF7wPx9PiyCLYXuwo1ZHqxrbtnuz",
            "QmV8DPURTE9mxnMnUU97LsCveYj7EHJQwcKGeDacGHtRuP",
            "QmTogHdDApN1kTDEtAYbs43m9jRDc3JNvxSWjgkQrPV6ja",
            "QmTKSW2PzUpoAj6oiVa7tSh3pzJvpJU6H2YrTLSx746D9f",
            "QmbQjggJpXPkCmLYHt46VuZ6hSPvS51WcXBRvvy6ezzjGW",
            "QmRV35WjZwvdaBoPVr1YX8oqLHxnDcYfNXju7QvWXCV7h9",
            "QmTbzjS9RUajbKfELMDyYTpoopi8VTgwhYRefSect6RowM",
            "QmZus6AWjsVAsinnGimJ1sTfFRaQn4R2abupHY8DimNcdc",
            "QmVawAxirBmd56DNv7RuxP1m4m1UNR8goCt9H9H1ME3PDc",
            "QmThmqdMEAyyE7rdN7uE1AgQKfM4cRiWkTDWs1QGuqDBWe",
            "QmP9MtgGpANWKujcWUpRZkANDNhcfM4yTncQMzAeNZ34N8",
            "QmajtUPkX3EzfsRq9EwQTYo88DNfCnKHVWE1po1dCc7JGL",
            "QmaLqdQs1X3AKs2BRxZUxJjbVJqtXLfC1SycJysafbW8Tp",
            "QmUVxfFwRbPGxY9sM65QeRvg4ng4Vt2hsCMSL6kGBTZbtg",
            "QmdzVD1XC4D7ydPa2dP98WmDpvkcxizApebc1ujJvwzThb",
            "QmStSzhebV5cvokQ6Q3PRgnHLfciiMFPbh9DMnCvHZ2KXG",
            "QmW8zFv1CFqDnqxjBnR69db5Gj54RnYrim4qqwtqZ5kMyC",
            "QmahcvNu6XbtwDLHz45iYqrzf9qzxTRZ4qtn9o7JaZ8VBv",
            "QmaMvgiHEZSEnU9THJPwAthYNbQuwSdZkPqiC3FiwnRJfX",
            "QmP7FQNXYhe5eWWQEHRT4SihCTF7dZbv3LSMBtXY3HyBto",
            "QmRxC4a7Uo23KCYVqUxsHmimKA1wYTukJ6CGRgm8aCZ1Gd"
        ];

        for (uint256 i = 0; i < 100; i++) {
            // We must fire this event once per rock in order for OpenSea to recognize
            // the NFTs. When an EtherRock is transfered after deployment, OpenSea
            // will notice the change in ownership of this NFT within 24 hours.
            emit Transfer(address(0), etherRock.getRockInfo(i), i);
        }
    }

    /// @notice Count all NFTs assigned to an owner
    function balanceOf(address _owner) public view override returns (uint256) {
        uint256 index;
        while (true) {
            try etherRock.rockOwners(_owner, index) returns (uint256) {
                index++;
            } catch {
                return index;
            }
        }
    }

    /// @notice Find the owner of an NFT
    function ownerOf(uint256 tokenId) public view override returns (address) {
        if (tokenId < 100) {
            return etherRock.getRockInfo(tokenId);
        }
        revert("Query for nonexistent tokenId");
    }

    function _transfer(
        address _from,
        address _to,
        uint256 _tokenId
    ) internal override {
        revert("NFT is attached to rock");
    }

    function tokenOfOwnerByIndex(address _owner, uint256 _index)
        public
        view
        override
        returns (uint256)
    {
        try etherRock.rockOwners(_owner, _index) returns (uint256 tokenId) {
            return tokenId;
        } catch {
            revert("Index out of bounds");
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_operator","type":"address"},{"indexed":false,"internalType":"bool","name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"approved","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"etherRock","outputs":[{"internalType":"contract EtherRock","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200320a3803806200320a833981016040819052620000349162001090565b8151829082906200004d90600090602085019062000e4e565b5080516200006390600190602084019062000e4e565b50506003602052507f28b0ef64f7e82d3b26f3fd404bd0151552f792965f39c29ae82c0a78df67af9c8054600160ff1991821681179092557f41a75b24256f422320613da5706c374a0a7eea8e8d418281bda8820c6b34435680548216831790557fcca39824a677cee72cd3539fc56c0e5a676a28b60617ea00a9d38305722c8b64805482168317905563780e9d6360e01b6000527f785e4d925c4778965a1107f0c202069d496d641ab5dd08a13bd2b783950e105f80549091169091179055606460025560408051610ce08101909152602e610c8082018181528291620022f2610ca084013981526020016040518060600160405280602e815260200162002f2a602e913981526020016040518060600160405280602e815260200162002aac602e913981526020016040518060600160405280602e815260200162002320602e913981526020016040518060600160405280602e8152602001620022c4602e913981526020016040518060600160405280602e815260200162002f58602e913981526020016040518060600160405280602e815260200162002296602e913981526020016040518060600160405280602e8152602001620020f8602e913981526020016040518060600160405280602e815260200162002e72602e913981526020016040518060600160405280602e81526020016200262e602e913981526020016040518060600160405280602e8152602001620025a4602e913981526020016040518060600160405280602e8152602001620023aa602e913981526020016040518060600160405280602e8152602001620029c6602e913981526020016040518060600160405280602e81526020016200209c602e913981526020016040518060600160405280602e8152602001620027cc602e913981526020016040518060600160405280602e815260200162002012602e913981526020016040518060600160405280602e815260200162002ca6602e913981526020016040518060600160405280602e815260200162002b92602e913981526020016040518060600160405280602e81526020016200220c602e913981526020016040518060600160405280602e815260200162002770602e913981526020016040518060600160405280602e8152602001620023d8602e913981526020016040518060600160405280602e815260200162002600602e913981526020016040518060600160405280602e81526020016200265c602e913981526020016040518060600160405280602e815260200162002884602e913981526020016040518060600160405280602e815260200162003124602e913981526020016040518060600160405280602e8152602001620021de602e913981526020016040518060600160405280602e815260200162003180602e913981526020016040518060600160405280602e815260200162002ece602e913981526020016040518060600160405280602e81526020016200290e602e913981526020016040518060600160405280602e815260200162002d5e602e913981526020016040518060600160405280602e815260200162002d30602e913981526020016040518060600160405280602e81526020016200268a602e913981526020016040518060600160405280602e815260200162002714602e913981526020016040518060600160405280602e815260200162002d8c602e913981526020016040518060600160405280602e815260200162002de8602e913981526020016040518060600160405280602e815260200162002a22602e913981526020016040518060600160405280602e815260200162002a7e602e913981526020016040518060600160405280602e815260200162002548602e913981526020016040518060600160405280602e8152602001620021b0602e913981526020016040518060600160405280602e81526020016200223a602e913981526020016040518060600160405280602e815260200162002856602e913981526020016040518060600160405280602e8152602001620028e0602e913981526020016040518060600160405280602e815260200162003010602e913981526020016040518060600160405280602e815260200162002b64602e913981526020016040518060600160405280602e815260200162002dba602e913981526020016040518060600160405280602e815260200162002fe2602e913981526020016040518060600160405280602e815260200162002c4a602e913981526020016040518060600160405280602e81526020016200296a602e913981526020016040518060600160405280602e815260200162002c78602e913981526020016040518060600160405280602e815260200162002cd4602e913981526020016040518060600160405280602e815260200162002182602e913981526020016040518060600160405280602e815260200162002040602e913981526020016040518060600160405280602e815260200162002c1c602e913981526020016040518060600160405280602e81526020016200279e602e913981526020016040518060600160405280602e815260200162002f86602e913981526020016040518060600160405280602e815260200162002126602e913981526020016040518060600160405280602e815260200162002998602e913981526020016040518060600160405280602e8152602001620028b2602e913981526020016040518060600160405280602e815260200162002828602e913981526020016040518060600160405280602e8152602001620031ae602e913981526020016040518060600160405280602e815260200162002b08602e913981526020016040518060600160405280602e8152602001620026b8602e913981526020016040518060600160405280602e81526020016200309a602e913981526020016040518060600160405280602e815260200162002ea0602e913981526020016040518060600160405280602e8152602001620026e6602e913981526020016040518060600160405280602e81526020016200306c602e913981526020016040518060600160405280602e8152602001620030f6602e913981526020016040518060600160405280602e8152602001620024ec602e913981526020016040518060600160405280602e815260200162003152602e913981526020016040518060600160405280602e815260200162002fb4602e913981526020016040518060600160405280602e8152602001620024be602e913981526020016040518060600160405280602e81526020016200206e602e913981526020016040518060600160405280602e81526020016200237c602e913981526020016040518060600160405280602e815260200162002d02602e913981526020016040518060600160405280602e8152602001620029f4602e913981526020016040518060600160405280602e8152602001620025d2602e913981526020016040518060600160405280602e815260200162002ada602e913981526020016040518060600160405280602e8152602001620020ca602e913981526020016040518060600160405280602e815260200162002efc602e913981526020016040518060600160405280602e81526020016200293c602e913981526020016040518060600160405280602e815260200162002576602e913981526020016040518060600160405280602e81526020016200234e602e913981526020016040518060600160405280602e815260200162002434602e913981526020016040518060600160405280602e8152602001620030c8602e913981526020016040518060600160405280602e815260200162002b36602e913981526020016040518060600160405280602e815260200162002a50602e913981526020016040518060600160405280602e81526020016200251a602e913981526020016040518060600160405280602e815260200162002bee602e913981526020016040518060600160405280602e815260200162002154602e913981526020016040518060600160405280602e815260200162002490602e913981526020016040518060600160405280602e815260200162002bc0602e913981526020016040518060600160405280602e815260200162002e44602e913981526020016040518060600160405280602e815260200162002406602e913981526020016040518060600160405280602e815260200162002742602e913981526020016040518060600160405280602e815260200162002e16602e913981526020016040518060600160405280602e8152602001620027fa602e913981526020016040518060600160405280602e81526020016200303e602e913981526020016040518060600160405280602e8152602001620031dc602e913981526020016040518060600160405280602e815260200162002462602e913981526020016040518060600160405280602e815260200162002268602e9139905262000d5990600490606462000edd565b5060005b606481101562000e45576040516306e2237160e41b81526004810182905281907341f28833be34e6ede3c58d1f597bef429861c4e290636e2237109060240160206040518083038186803b15801562000db557600080fd5b505afa15801562000dca573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000df0919062001060565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48062000e3c8162001134565b91505062000d5d565b50505062001172565b82805462000e5c90620010f7565b90600052602060002090601f01602090048101928262000e80576000855562000ecb565b82601f1062000e9b57805160ff191683800117855562000ecb565b8280016001018555821562000ecb579182015b8281111562000ecb57825182559160200191906001019062000eae565b5062000ed992915062000f30565b5090565b826064810192821562000f22579160200282015b8281111562000f22578251805162000f1191849160209091019062000e4e565b509160200191906001019062000ef1565b5062000ed992915062000f47565b5b8082111562000ed9576000815560010162000f31565b8082111562000ed957600062000f5e828262000f68565b5060010162000f47565b50805462000f7690620010f7565b6000825580601f1062000f8a575062000faa565b601f01602090049060005260206000209081019062000faa919062000f30565b50565b600082601f83011262000fbe578081fd5b81516001600160401b038082111562000fdb5762000fdb6200115c565b604051601f8301601f19908116603f011681019082821181831017156200100657620010066200115c565b8160405283815260209250868385880101111562001022578485fd5b8491505b8382101562001045578582018301518183018401529082019062001026565b838211156200105657848385830101525b9695505050505050565b60006020828403121562001072578081fd5b81516001600160a01b038116811462001089578182fd5b9392505050565b60008060408385031215620010a3578081fd5b82516001600160401b0380821115620010ba578283fd5b620010c88683870162000fad565b93506020850151915080821115620010de578283fd5b50620010ed8582860162000fad565b9150509250929050565b600181811c908216806200110c57607f821691505b602082108114156200112e57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200115557634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b610e9080620011826000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a2578063a22cb46511610071578063a22cb4651461022e578063b88d4fde14610241578063c87b56dd14610254578063e985e9c514610267578063ea9f1b87146102a35761010b565b80634f6ccce7146101ed5780636352211e1461020057806370a082311461021357806395d89b41146102265761010b565b806318160ddd116100de57806318160ddd1461019d57806323b872dd146101b45780632f745c59146101c757806342842e0e146101da5761010b565b806301ffc9a71461011057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361011e366004610c8e565b60036020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6101506102be565b60405161013f9190610d7b565b61017061016b366004610cc6565b61034c565b6040516001600160a01b03909116815260200161013f565b61019b610196366004610c63565b61038c565b005b6101a660025481565b60405190815260200161013f565b61019b6101c2366004610b19565b610499565b6101a66101d5366004610c63565b6104a9565b61019b6101e8366004610b19565b61057f565b6101a66101fb366004610cc6565b61059a565b61017061020e366004610cc6565b6105e7565b6101a6610221366004610aa9565b6106c4565b610150610776565b61019b61023c366004610c32565b610783565b61019b61024f366004610b59565b6107ef565b610150610262366004610cc6565b610858565b610133610275366004610ae1565b6001600160a01b03918216600090815260cc6020908152604080832093909416825291909152205460ff1690565b6101707341f28833be34e6ede3c58d1f597bef429861c4e281565b600080546102cb90610dba565b80601f01602080910402602001604051908101604052809291908181526020018280546102f790610dba565b80156103445780601f1061031957610100808354040283529160200191610344565b820191906000526020600020905b81548152906001019060200180831161032757829003601f168201915b505050505081565b6000610357826105e7565b506068826064811061037957634e487b7160e01b600052603260045260246000fd5b01546001600160a01b031690505b919050565b6000610397826105e7565b9050336001600160a01b03821614806103d357506001600160a01b038116600090815260cc6020908152604080832033845290915290205460ff165b6104245760405162461bcd60e51b815260206004820152601e60248201527f4e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c000060448201526064015b60405180910390fd5b826068836064811061044657634e487b7160e01b600052603260045260246000fd5b0180546001600160a01b0319166001600160a01b03928316179055604051839185811691908416907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a4505050565b6104a4838383610916565b505050565b604051631ee284b160e01b81526001600160a01b0383166004820152602481018290526000907341f28833be34e6ede3c58d1f597bef429861c4e290631ee284b19060440160206040518083038186803b15801561050657600080fd5b505afa925050508015610536575060408051601f3d908101601f1916820190925261053391810190610cde565b60015b6105785760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015260640161041b565b9392505050565b6104a4838383604051806020016040528060008152506107ef565b600060025482106105e35760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015260640161041b565b5090565b6000606482101561067c576040516306e2237160e41b8152600481018390527341f28833be34e6ede3c58d1f597bef429861c4e290636e2237109060240160206040518083038186803b15801561063d57600080fd5b505afa158015610651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190610ac5565b9050610387565b60405162461bcd60e51b815260206004820152601d60248201527f517565727920666f72206e6f6e6578697374656e7420746f6b656e4964000000604482015260640161041b565b6000805b604051631ee284b160e01b81526001600160a01b0384166004820152602481018290527341f28833be34e6ede3c58d1f597bef429861c4e290631ee284b19060440160206040518083038186803b15801561072257600080fd5b505afa925050508015610752575060408051601f3d908101601f1916820190925261074f91810190610cde565b60015b61075d579050610387565b8161076781610def565b925050506106c8565b50919050565b600180546102cb90610dba565b33600081815260cc602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6107fa848484610916565b6108068484848461095e565b6108525760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220746f206e6f6e2045524337323120726563656976657200604482015260640161041b565b50505050565b6060610863826105e7565b506004826064811061088557634e487b7160e01b600052603260045260246000fd5b01805461089190610dba565b80601f01602080910402602001604051908101604052809291908181526020018280546108bd90610dba565b801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b50505050509050919050565b60405162461bcd60e51b815260206004820152601760248201527f4e465420697320617474616368656420746f20726f636b000000000000000000604482015260640161041b565b6000833b80610971576001915050610aa1565b600080866001600160a01b0316600063150b7a0260e01b338b8a8a60405160240161099f9493929190610d3e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516109dd9190610d22565b60006040518083038185875af1925050503d8060008114610a1a576040519150601f19603f3d011682016040523d82523d6000602084013e610a1f565b606091505b509150915081610a715760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220746f206e6f6e2045524337323120726563656976657200604482015260640161041b565b600081806020019051810190610a879190610caa565b6001600160e01b031916630a85bd0160e11b149450505050505b949350505050565b600060208284031215610aba578081fd5b813561057881610e2c565b600060208284031215610ad6578081fd5b815161057881610e2c565b60008060408385031215610af3578081fd5b8235610afe81610e2c565b91506020830135610b0e81610e2c565b809150509250929050565b600080600060608486031215610b2d578081fd5b8335610b3881610e2c565b92506020840135610b4881610e2c565b929592945050506040919091013590565b60008060008060808587031215610b6e578081fd5b8435610b7981610e2c565b93506020850135610b8981610e2c565b925060408501359150606085013567ffffffffffffffff80821115610bac578283fd5b818701915087601f830112610bbf578283fd5b813581811115610bd157610bd1610e16565b604051601f8201601f19908116603f01168101908382118183101715610bf957610bf9610e16565b816040528281528a6020848701011115610c11578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610c44578182fd5b8235610c4f81610e2c565b915060208301358015158114610b0e578182fd5b60008060408385031215610c75578182fd5b8235610c8081610e2c565b946020939093013593505050565b600060208284031215610c9f578081fd5b813561057881610e44565b600060208284031215610cbb578081fd5b815161057881610e44565b600060208284031215610cd7578081fd5b5035919050565b600060208284031215610cef578081fd5b5051919050565b60008151808452610d0e816020860160208601610d8e565b601f01601f19169290920160200192915050565b60008251610d34818460208701610d8e565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610d7190830184610cf6565b9695505050505050565b6000602082526105786020830184610cf6565b60005b83811015610da9578181015183820152602001610d91565b838111156108525750506000910152565b600181811c90821680610dce57607f821691505b6020821081141561077057634e487b7160e01b600052602260045260246000fd5b6000600019821415610e0f57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610e4157600080fd5b50565b6001600160e01b031981168114610e4157600080fdfea2646970667358221220981da9c3d119a9dfe68b8d77e6f73b05b04f051601663fa77059ff516576c64364736f6c63430008030033516d664350385054393334425234465673537a73787a65384e664c4d6570774e4662325a59696834477a345a4a74516d64325a754e56475354626a327142664c53556b67634b54636657674d7067746279686b644a72505153676d38516d61736737554b4a7664615444544e785a3534773767415679614b3159444e793176787571436f583532573671516d547a417a6a39334544454d71336a6d6f525046563466734235725451484e42467939454d5453455068355141516d514d774858774c43486e683944543578584752727438534c5451423179456d6d564b7545324566486a543172516d653166754b4b42554673477a7a774252446a44746e726669554850397a6b62334a6769396f6a4b6b37487635516d55336542413571376239347255546857415250764d6f6265644e52535a37756542784354475a6d7a76316e52516d54686d71644d45417979453772644e377545314167514b664d34635269576b54445773315147757144425765516d53757053556642666e7943716f42487a436e786b5357527a71486f4a5241514a6a5759447a67354a68623643516d52636451627575547963327770366a73624a6f673743663331576b5843364c7074587339566745726a42504b516d5533696464775474596851554276784a486d72483474423731716f37446e764a39796f45774a666970554b33516d5868765743337854425546653835474c577271554e61793334374556443768594b63316142486f797232436f516d536b47524c36366a4b44717756777655327647734774677138456a79374c64477937467963385273755a7a43516d527843346137556f32334b43595671557873486d696d4b4131775954756b4a36434752676d3861435a314764516d5a693657787956454d4c7a524136626d353169444e7739715478626965454a447a416b596272346231444d6f516d656b546f364c4d4356524b726472485071694d6859775533756943715a6756746a6a7454526d546b34773576516d504a38717a547575345468434a4e4478613769623144555968456241507a4d55706173696e6e756343354148516d567745787677675a754b44617663544745594c6938777253455565725258635344374e4566627a5a67464c45516d546f6748644441704e316b544445744159627334336d396a524463334a4e767853576a676b51725056366a61516d58384a797253453242644c73656e484b6451563834744657537a4458354c666d576e6667704e665170394158516d565067504834795a697a796a56486433597041487778514850356a586673673355716e624157587335763764516d5243686759553843726153504234595531484e39525875546d7837555352334c507543484172763545414747516d55567866467752625047785939734d36355165527667346e67345674326873434d534c366b4742545a627467516d544b535732507a55706f416a366f6956613774536833707a4a76704a553648325972544c5378373436443966516d503746514e585968653565575751454852543453696843544637645a6276334c534d4274585933487942746f516d50394d74674770414e574b756a63575570525a6b414e444e6863664d3479546e63514d7a41654e5a33344e38516d526b43656e716258684b78796b6342446d75767a574b786e6d757642393376536d55654735595372446a3665516d61547279486751364152554a41556564546e507939376e6a533634327a6d33567936786a664c464558333251516d5a75733641576a73564173696e6e47696d4a31735466465261516e3452326162757048593844696d4e636463516d6476786145715a41357469686e6d326b51336d615071366e6a5a36364558527a56616d596e4861506a697062516d5638445055525445396d786e4d6e555539374c73437665596a3745484a5177634b4765446163474874527550516d596f6a7943574b504d39653278596a353448376332624436374e626278326d566a4c515a486f375034576853516d517258534651695733724634697a746f733652647935523850437052417a4c6e64614251394d596d35534e4c516d6535674355594b785161717241457134323864444d7074316e6542576b615a6e443759544b78564777467855516d59614e6b366747625139516f61624e396a757277505135707937476a57384d3557574a64774b6d7a764c395a516d663844623655453373646365786b4738654b3370383870336254624c3174537356466950547a4b7555776451516d5935636d4455335675526b4a563868413177526376784b3645434c44396e6d73765158715636394d55467967516d52714a696d62486b6e64556d59473170784d46594d5770353150327167394b646f72454b5a68553658447432516d52584b484b766e42684b794574654778773539444c71736f7554504259765475487948536d6278434c744e44516d4e69325468334c646879656363554a5a4e486a5652424b767042394d46594a6932367739725a6952774a6b54516d647a5644315843344437796450613264503938576d4470766b6378697a417065626331756a4a76777a546862516d52554e325236774c4e436678417a337a4b3362646e43596b5434457a476d53514d714c614b61414631773647516d63466d504869476d6f596a5a356e726a32456e6b7663674e67543665386f414479425a36476b365345385939516d636a514d44394c535a696e58575646716d4d645058586977716954557067536338707957524534517666755a516d57387a467631434671446e71786a426e523639646235476a3534526e5972696d3471717774715a356b4d7943516d5154336766445859766b38696978316976363855706f434a62706e73426179374c7066355836376d477a5256516d586e77506b78667653755446775639576b346962566f39636938714b6d6a6d4d58576a544a58663870675473516d623843317366783863766d6f35453543454e7a5a583457424a794a64596266357a566763667355483976316d516d566d5365716f72676873366f6d4e6252536e7242466a57756e347178725a386275456b794d72757552627042516d636472455645354b4b5443553539674375464a383748696a536f767a647042463855536d756268643464367a516d6441574d39486e7865686258316d45484e3646415054756b734e725a6a4556684b486f535274575978596374516d5932324d346641523478616256654a6557463777507839506979434c595875776f315a4871787262746e757a516d53574552476974526663443541426b3332327a3852476632645753354d764a6933776973485837644d6b6e4e516d53626d58756a75665174465469364b3253416351386574515353324774593767663252505966796a6f316e76516d59727a6b67673455567243757865596e35696a38506d79676f6632726864374271724d67544e50426e513864516d54537a416579763961366f57335a5a38735039576f675157427146574864336f474675644d6162766f367858516d6270537069454b7a58776a7134314d6543787150664d6b64743278524e4847513236754b5279656b77755138516d54627a6a53395255616a624b66454c4d44795954706f6f7069385654677768595265665365637436526f774d516d5a6d4844726f646f63314b765a776232537a566f364275337a6f75576f676d45514739474d4772464c754152516d6474517372457a72677a745259754b76706e594d7863594c66517853353978394d3566425156477653783371516d5a516873574d4474516e4a6e47574143615a41686d34343963624b516f6e4734585768514e654d42744e5161516d513441424838534c44724c615a69486865626662514555756463676b7664564176575551794345343659716f516d52563335576a5a77766461426f505672315958386f714c48786e446359664e586a7537517657584356376839516d50696a70726546454c57424a6e784b6434463967656b56344a536a4d3237737a773956534b433647786f6958516d555867744b78367456764b6b316171444435615a774237433563743352317453376d34356b674b73674b6632516d616a7455506b5833457a667352713945775154596f3838444e66436e4b4856574531706f31644363374a474c516d56617741786972426d643536444e763752757850316d346d31554e5238676f437439483948314d4533504463516d4e6f54574c736d364259507379565244644b6a684d5042734d4a386632545a516d4b74476b3566753774577a516d576e4c787059434734486d434369554c6442537061797177334a74664a767a34676b54756f627a65564c5131516d6442787372587331734b31627469514b79627665794c54716547326b48473178754b74366336706945484e46516d4e7872367a726465465a75416451466d576576513942645675626f5a6576787a72684d635051526e436a5462516d566d4d6f5965425563396f314e464135756344776d69324247706261456f4351324152424743374c50366a52516d663979644650634a5877715955314e5055794a3352484d356a5a4365546b4a726e746a413644426d54623743516d63565741534141326f44566d5579695031704c4d7462415178344d696d57454a5a4c6a7867516d5a76396357516d544c6934504d52396f617332527471334c6a58784766464b6256714647786837787251643938745a78485770516d6646456f54734a43767a755245387a3138347354457a59644574446b61467444757a414b543551574d4b486f516d553144623146743467584c6b64484e437737754d3938644c7066567133396238614b316f4c574d5a4e375154516d6635485454575639455354394a34514d584d355652704c5677394e64514c7867504a59477033354e73655a7a516d5374537a686562563563766f6b513651335052676e484c666369694d4650626839444d6e4376485a324b5847516d614c71645173315833414b73324252785a55784a6a62564a7174584c6643315379634a797361666257385470516d527563433555783746766d57435363544b4c7843696f7278585938646143795450783374475a445252636362516d63674a574c4d46377133654a53634b7244394636637167364661344d69764a43634b6155375351596859684d516d52324a54775a4c5475726a46664c326e72715675464a426f3954766e65727279624775447341347576334550516d56777278584773507835515534525137483565593637476b557043613174756b6d5a3841525a56717a425239516d584e537431346b61474b617557333756784c53684c537166764c7953687a426e56426d626858624a64636936516d61644171426f4d586d3741644c58574e734c7179426a7745556839587245414c66744b575356717962325773516d646353716b4e6f3554787033686f5a576674486d7439386b656e76545741754b6a5850484a66537376335243516d5859747831586b73336d76444e4c7765536b436a77726851737355573161664b3976584b486369424c4e4d6e516d61796e54414862564767324552634462706e42756b6f4667774c386634654b44445675425966524669345175516d5174374b444761505678787a466975764b706664536a4466625439415448644b374a59314545645a7a543532516d616863764e753658627477444c487a3435695971727a6639717a7854525a3471746e396f374a615a38564276516d5456525a483836504546324d44756353483767725169703969396647624c6f543565755357356a47316d6973516d50777a4134554b615151654a6d6a74665864615668556f64417a3354764135706b796d70756d655534424546516d62516a67674a7058506b436d4c594874343656755a3668535076533531576358425276767936657a7a6a4757516d5035723279663139424a34567a7a4c395a355478683754635a635a72326272475779515931346d4541424738516d5664675555345642537038676f57427867416a377a5175434e4259526b316b436b4c356135397a3251486245516d6644565537377743477465624d786778546a76466432484469736b76333448337842764c794a5541514e4a61516d574838393471756d5877437570697477345531595137503672685a6878416a4a5353436a394a6d39745a7537516d6572615739447268365675614c6b316576377870544471457a68357448466a64354374744d433537786d5658516d614d76676948455a53456e553954484a5077417468594e6251757753645a6b50716943334669776e524a665800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000d50726f6f66206f6620526f636b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003504f520000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a2578063a22cb46511610071578063a22cb4651461022e578063b88d4fde14610241578063c87b56dd14610254578063e985e9c514610267578063ea9f1b87146102a35761010b565b80634f6ccce7146101ed5780636352211e1461020057806370a082311461021357806395d89b41146102265761010b565b806318160ddd116100de57806318160ddd1461019d57806323b872dd146101b45780632f745c59146101c757806342842e0e146101da5761010b565b806301ffc9a71461011057806306fdde0314610148578063081812fc1461015d578063095ea7b314610188575b600080fd5b61013361011e366004610c8e565b60036020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6101506102be565b60405161013f9190610d7b565b61017061016b366004610cc6565b61034c565b6040516001600160a01b03909116815260200161013f565b61019b610196366004610c63565b61038c565b005b6101a660025481565b60405190815260200161013f565b61019b6101c2366004610b19565b610499565b6101a66101d5366004610c63565b6104a9565b61019b6101e8366004610b19565b61057f565b6101a66101fb366004610cc6565b61059a565b61017061020e366004610cc6565b6105e7565b6101a6610221366004610aa9565b6106c4565b610150610776565b61019b61023c366004610c32565b610783565b61019b61024f366004610b59565b6107ef565b610150610262366004610cc6565b610858565b610133610275366004610ae1565b6001600160a01b03918216600090815260cc6020908152604080832093909416825291909152205460ff1690565b6101707341f28833be34e6ede3c58d1f597bef429861c4e281565b600080546102cb90610dba565b80601f01602080910402602001604051908101604052809291908181526020018280546102f790610dba565b80156103445780601f1061031957610100808354040283529160200191610344565b820191906000526020600020905b81548152906001019060200180831161032757829003601f168201915b505050505081565b6000610357826105e7565b506068826064811061037957634e487b7160e01b600052603260045260246000fd5b01546001600160a01b031690505b919050565b6000610397826105e7565b9050336001600160a01b03821614806103d357506001600160a01b038116600090815260cc6020908152604080832033845290915290205460ff165b6104245760405162461bcd60e51b815260206004820152601e60248201527f4e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c000060448201526064015b60405180910390fd5b826068836064811061044657634e487b7160e01b600052603260045260246000fd5b0180546001600160a01b0319166001600160a01b03928316179055604051839185811691908416907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a4505050565b6104a4838383610916565b505050565b604051631ee284b160e01b81526001600160a01b0383166004820152602481018290526000907341f28833be34e6ede3c58d1f597bef429861c4e290631ee284b19060440160206040518083038186803b15801561050657600080fd5b505afa925050508015610536575060408051601f3d908101601f1916820190925261053391810190610cde565b60015b6105785760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015260640161041b565b9392505050565b6104a4838383604051806020016040528060008152506107ef565b600060025482106105e35760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015260640161041b565b5090565b6000606482101561067c576040516306e2237160e41b8152600481018390527341f28833be34e6ede3c58d1f597bef429861c4e290636e2237109060240160206040518083038186803b15801561063d57600080fd5b505afa158015610651573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106759190610ac5565b9050610387565b60405162461bcd60e51b815260206004820152601d60248201527f517565727920666f72206e6f6e6578697374656e7420746f6b656e4964000000604482015260640161041b565b6000805b604051631ee284b160e01b81526001600160a01b0384166004820152602481018290527341f28833be34e6ede3c58d1f597bef429861c4e290631ee284b19060440160206040518083038186803b15801561072257600080fd5b505afa925050508015610752575060408051601f3d908101601f1916820190925261074f91810190610cde565b60015b61075d579050610387565b8161076781610def565b925050506106c8565b50919050565b600180546102cb90610dba565b33600081815260cc602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6107fa848484610916565b6108068484848461095e565b6108525760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220746f206e6f6e2045524337323120726563656976657200604482015260640161041b565b50505050565b6060610863826105e7565b506004826064811061088557634e487b7160e01b600052603260045260246000fd5b01805461089190610dba565b80601f01602080910402602001604051908101604052809291908181526020018280546108bd90610dba565b801561090a5780601f106108df5761010080835404028352916020019161090a565b820191906000526020600020905b8154815290600101906020018083116108ed57829003601f168201915b50505050509050919050565b60405162461bcd60e51b815260206004820152601760248201527f4e465420697320617474616368656420746f20726f636b000000000000000000604482015260640161041b565b6000833b80610971576001915050610aa1565b600080866001600160a01b0316600063150b7a0260e01b338b8a8a60405160240161099f9493929190610d3e565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516109dd9190610d22565b60006040518083038185875af1925050503d8060008114610a1a576040519150601f19603f3d011682016040523d82523d6000602084013e610a1f565b606091505b509150915081610a715760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220746f206e6f6e2045524337323120726563656976657200604482015260640161041b565b600081806020019051810190610a879190610caa565b6001600160e01b031916630a85bd0160e11b149450505050505b949350505050565b600060208284031215610aba578081fd5b813561057881610e2c565b600060208284031215610ad6578081fd5b815161057881610e2c565b60008060408385031215610af3578081fd5b8235610afe81610e2c565b91506020830135610b0e81610e2c565b809150509250929050565b600080600060608486031215610b2d578081fd5b8335610b3881610e2c565b92506020840135610b4881610e2c565b929592945050506040919091013590565b60008060008060808587031215610b6e578081fd5b8435610b7981610e2c565b93506020850135610b8981610e2c565b925060408501359150606085013567ffffffffffffffff80821115610bac578283fd5b818701915087601f830112610bbf578283fd5b813581811115610bd157610bd1610e16565b604051601f8201601f19908116603f01168101908382118183101715610bf957610bf9610e16565b816040528281528a6020848701011115610c11578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610c44578182fd5b8235610c4f81610e2c565b915060208301358015158114610b0e578182fd5b60008060408385031215610c75578182fd5b8235610c8081610e2c565b946020939093013593505050565b600060208284031215610c9f578081fd5b813561057881610e44565b600060208284031215610cbb578081fd5b815161057881610e44565b600060208284031215610cd7578081fd5b5035919050565b600060208284031215610cef578081fd5b5051919050565b60008151808452610d0e816020860160208601610d8e565b601f01601f19169290920160200192915050565b60008251610d34818460208701610d8e565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090610d7190830184610cf6565b9695505050505050565b6000602082526105786020830184610cf6565b60005b83811015610da9578181015183820152602001610d91565b838111156108525750506000910152565b600181811c90821680610dce57607f821691505b6020821081141561077057634e487b7160e01b600052602260045260246000fd5b6000600019821415610e0f57634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610e4157600080fd5b50565b6001600160e01b031981168114610e4157600080fdfea2646970667358221220981da9c3d119a9dfe68b8d77e6f73b05b04f051601663fa77059ff516576c64364736f6c63430008030033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000d50726f6f66206f6620526f636b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003504f520000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Proof of Rock
Arg [1] : _symbol (string): POR

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000d
Arg [3] : 50726f6f66206f6620526f636b00000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [5] : 504f520000000000000000000000000000000000000000000000000000000000


Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.