ETH Price: $3,701.73 (+2.93%)

Token

sketchy mfers (SMFER)
 

Overview

Max Total Supply

2,000 SMFER

Holders

698

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 SMFER
0x076097cf460e3b5fc3a94c43d9a598164bb29168
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

A collection of 2,000 pfps inspired by one of the early sketches of @sartoshi_nft. every single og mfers trait has been fully re-designed from the ground up to fit sketchy mfers perfectly. 100% of all trading royalties for sketchy mfers go directly to the mfers treasury via @unofficialmfers.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SketchyMfers

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion
File 1 of 5 : SketchyMfers.sol
// SPDX-License-Identifier: CC0-1.0
pragma solidity ^0.8.10;


//  ___  _  _  ____  ____  ___  _   _  _  _    __  __  ____  ____  ____  ___
// / __)( )/ )( ___)(_  _)/ __)( )_( )( \/ )  (  \/  )( ___)( ___)(  _ \/ __)
// \__ \ )  (  )__)   )( ( (__  ) _ (  \  /    )    (  )__)  )__)  )   /\__ \
// (___/(_)\_)(____) (__) \___)(_) (_) (__)   (_/\/\_)(__)  (____)(_)\_)(___/

// author: zhoug.eth


import "@rari-capital/solmate/src/tokens/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Strings.sol";

contract SketchyMfers is ERC721, Ownable {
    using Strings for uint256;

    // ---------------------------------------------------------------------------------- state
    address public withdrawAddress;

    uint256 public constant MAX_SUPPLY = 2000;
    uint256 public totalSupply;
    uint256 public maxMintPerTx = 10;
    uint256 public cost = 0.0420 ether;

    string public uriPrefix;
    string public uriSuffix = ".json";
    string public hiddenURI = "HIDDEN";
    string public provenanceHash;

    bool public mintIsActive = false;
    bool public collectionIsHidden = true;

    // ---------------------------------------------------------------------------------- constructor
    constructor() ERC721("sketchy mfers", "SMFER") {
        setWithdrawAddress(msg.sender);
    }

    // ---------------------------------------------------------------------------------- error handling
    error Unauthorized();
    error NoTokenExists();
    error MintNotActive();
    error InvalidAmount();
    error InvalidPayment();
    error InvalidReveal();
    error InsufficientBalance();

    modifier validMintInput(uint256 _amount) {
        if (_amount == 0) revert InvalidAmount();
        if (totalSupply + _amount > MAX_SUPPLY) revert InvalidAmount();
        _;
    }

    // ---------------------------------------------------------------------------------- views
    function tokenURI(uint256 _id)
        public
        view
        override
        returns (string memory)
    {
        if (collectionIsHidden) {
            return hiddenURI;
        }
        if (ownerOf[_id] == address(0)) revert NoTokenExists();
        return
            bytes(uriPrefix).length > 0
                ? string(abi.encodePacked(uriPrefix, _id.toString(), uriSuffix))
                : "";
    }

    function getTokenIdsByAddress(address _address)
        public
        view
        returns (uint256[] memory ownedIds)
    {
        uint256 balance = balanceOf[_address];
        uint256 idCounter = 1;
        uint256 ownedCounter = 0;
        ownedIds = new uint256[](balance);

        while (ownedCounter < balance && idCounter < MAX_SUPPLY + 1) {
            address ownerAddress = ownerOf[idCounter];
            if (ownerAddress == _address) {
                ownedIds[ownedCounter] = idCounter;
                unchecked {
                    ++ownedCounter;
                }
            }
            unchecked {
                ++idCounter;
            }
        }
    }

    // ---------------------------------------------------------------------------------- mint
    function batchMint(address _recipient, uint256 _amount) private {
        unchecked {
            for (uint256 i = 1; i < _amount + 1; ++i) {
                _safeMint(_recipient, totalSupply + i);
            }
            totalSupply += _amount;
        }
    }

    function adminMint(address _address, uint256 _amount)
        external
        onlyOwner
        validMintInput(_amount)
    {
        batchMint(_address, _amount);
    }

    function mint(uint256 _amount) external payable validMintInput(_amount) {
        if (!mintIsActive) revert MintNotActive();
        if (_amount > maxMintPerTx) revert InvalidAmount();
        if (msg.value != cost * _amount) revert InvalidPayment();
        batchMint(msg.sender, _amount);
    }

    // ---------------------------------------------------------------------------------- admin
    function withdraw() external payable {
        if (msg.sender != withdrawAddress) revert Unauthorized();
        if (address(this).balance == 0) revert InsufficientBalance();
        (bool os, ) = payable(withdrawAddress).call{
            value: address(this).balance
        }("");
        require(os);
    }

    function setWithdrawAddress(address _withdrawAddress) public onlyOwner {
        withdrawAddress = _withdrawAddress;
    }

    function setMaxMintPerTx(uint256 _newMax) public onlyOwner {
        maxMintPerTx = _newMax;
    }

    function setCost(uint256 _newCost) public onlyOwner {
        cost = _newCost;
    }

    function setURIPrefix(string calldata _uriPrefix) public onlyOwner {
        if (collectionIsHidden) revert InvalidReveal();
        uriPrefix = _uriPrefix;
    }

    function setURISuffix(string calldata _uriSuffix) public onlyOwner {
        uriSuffix = _uriSuffix;
    }

    function setHiddenURI(string calldata _hiddenURI) public onlyOwner {
        hiddenURI = _hiddenURI;
    }

    function setProvenanceHash(string calldata _newHash) public onlyOwner {
        provenanceHash = _newHash;
    }

    function setMintIsActive(bool _state) public onlyOwner {
        mintIsActive = _state;
    }

    // One-way function that reveals the collection and sets the content URI
    function revealCollection(string calldata _uriPrefix) external onlyOwner {
        if (!collectionIsHidden || mintIsActive) revert InvalidReveal();
        collectionIsHidden = false;
        setURIPrefix(_uriPrefix);
    }
}

File 2 of 5 : ERC721.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern, minimalist, and gas efficient ERC-721 implementation.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)
/// @dev Note that balanceOf does not revert if passed the zero address, in defiance of the ERC.
abstract contract ERC721 {
    /*///////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 indexed id);

    event Approval(address indexed owner, address indexed spender, uint256 indexed id);

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /*///////////////////////////////////////////////////////////////
                          METADATA STORAGE/LOGIC
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    function tokenURI(uint256 id) public view virtual returns (string memory);

    /*///////////////////////////////////////////////////////////////
                            ERC721 STORAGE                        
    //////////////////////////////////////////////////////////////*/

    mapping(address => uint256) public balanceOf;

    mapping(uint256 => address) public ownerOf;

    mapping(uint256 => address) public getApproved;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    /*///////////////////////////////////////////////////////////////
                              CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
    }

    /*///////////////////////////////////////////////////////////////
                              ERC721 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 id) public virtual {
        address owner = ownerOf[id];

        require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        require(from == ownerOf[id], "WRONG_FROM");

        require(to != address(0), "INVALID_RECIPIENT");

        require(
            msg.sender == from || msg.sender == getApproved[id] || isApprovedForAll[from][msg.sender],
            "NOT_AUTHORIZED"
        );

        // Underflow of the sender's balance is impossible because we check for
        // ownership above and the recipient's balance can't realistically overflow.
        unchecked {
            balanceOf[from]--;

            balanceOf[to]++;
        }

        ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes memory data
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    /*///////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
            interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
    }

    /*///////////////////////////////////////////////////////////////
                       INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 id) internal virtual {
        require(to != address(0), "INVALID_RECIPIENT");

        require(ownerOf[id] == address(0), "ALREADY_MINTED");

        // Counter overflow is incredibly unrealistic.
        unchecked {
            balanceOf[to]++;
        }

        ownerOf[id] = to;

        emit Transfer(address(0), to, id);
    }

    function _burn(uint256 id) internal virtual {
        address owner = ownerOf[id];

        require(ownerOf[id] != address(0), "NOT_MINTED");

        // Ownership check above ensures no underflow.
        unchecked {
            balanceOf[owner]--;
        }

        delete ownerOf[id];

        delete getApproved[id];

        emit Transfer(owner, address(0), id);
    }

    /*///////////////////////////////////////////////////////////////
                       INTERNAL SAFE MINT LOGIC
    //////////////////////////////////////////////////////////////*/

    function _safeMint(address to, uint256 id) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _safeMint(
        address to,
        uint256 id,
        bytes memory data
    ) internal virtual {
        _mint(to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }
}

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)
interface ERC721TokenReceiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 id,
        bytes calldata data
    ) external returns (bytes4);
}

File 3 of 5 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 4 of 5 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

File 5 of 5 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 500
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidPayment","type":"error"},{"inputs":[],"name":"InvalidReveal","type":"error"},{"inputs":[],"name":"MintNotActive","type":"error"},{"inputs":[],"name":"NoTokenExists","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectionIsHidden","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"getTokenIdsByAddress","outputs":[{"internalType":"uint256[]","name":"ownedIds","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hiddenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintIsActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"provenanceHash","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uriPrefix","type":"string"}],"name":"revealCollection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","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":"id","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":"uint256","name":"_newCost","type":"uint256"}],"name":"setCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_hiddenURI","type":"string"}],"name":"setHiddenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newMax","type":"uint256"}],"name":"setMaxMintPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_state","type":"bool"}],"name":"setMintIsActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_newHash","type":"string"}],"name":"setProvenanceHash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uriPrefix","type":"string"}],"name":"setURIPrefix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uriSuffix","type":"string"}],"name":"setURISuffix","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_withdrawAddress","type":"address"}],"name":"setWithdrawAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","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":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uriPrefix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uriSuffix","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"withdrawAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

600a6009819055669536c708910000905560c06040526005608081905264173539b7b760d91b60a09081526200003991600c9190620001f4565b50604080518082019091526006808252652424a22222a760d11b60209092019182526200006991600d91620001f4565b50600f805461ffff19166101001790553480156200008657600080fd5b50604080518082018252600d81526c736b6574636879206d6665727360981b60208083019182528351808501909452600584526429a6a322a960d91b908401528151919291620000d991600091620001f4565b508051620000ef906001906020840190620001f4565b5050506200010c620001066200011d60201b60201c565b62000121565b620001173362000173565b620002d7565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6006546001600160a01b03163314620001d25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b82805462000202906200029a565b90600052602060002090601f01602090048101928262000226576000855562000271565b82601f106200024157805160ff191683800117855562000271565b8280016001018555821562000271579182015b828111156200027157825182559160200191906001019062000254565b506200027f92915062000283565b5090565b5b808211156200027f576000815560010162000284565b600181811c90821680620002af57607f821691505b60208210811415620002d157634e487b7160e01b600052602260045260246000fd5b50919050565b61206180620002e76000396000f3fe60806040526004361061023b5760003560e01c80636bff2c241161012e578063b88d4fde116100ab578063d19653fb1161006f578063d19653fb14610697578063de7fcb1d146106b7578063e58306f9146106cd578063e985e9c5146106ed578063f2fde38b1461072857600080fd5b8063b88d4fde14610603578063bbaac02f14610623578063c2d4cccd14610643578063c6ab67a314610662578063c87b56dd1461067757600080fd5b80638cc54e7f116100f25780638cc54e7f146105885780638da5cb5b1461059d57806395d89b41146105bb578063a0712d68146105d0578063a22cb465146105e357600080fd5b80636bff2c24146104d957806370a08231146104f9578063715018a61461052657806381b3e5751461053b57806389d5feee1461055b57600080fd5b80633ab1a494116101bc57806350179bae1161018057806350179bae146104395780635503a0e814610459578063616cdb1e1461046e57806362b99ad41461048e5780636352211e146104a357600080fd5b80633ab1a494146103b75780633ccfd60b146103d757806342842e0e146103df57806344a0d68a146103ff578063471a42941461041f57600080fd5b806313faede61161020357806313faede6146103275780631581b6001461034b57806318160ddd1461036b57806323b872dd1461038157806332cb6b0c146103a157600080fd5b806301ffc9a71461024057806306fdde0314610275578063081812fc14610297578063095ea7b3146102e55780631096952314610307575b600080fd5b34801561024c57600080fd5b5061026061025b366004611a62565b610748565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b5061028a61079a565b60405161026c9190611ade565b3480156102a357600080fd5b506102cd6102b2366004611af1565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b3480156102f157600080fd5b50610305610300366004611b26565b610828565b005b34801561031357600080fd5b50610305610322366004611b50565b61090f565b34801561033357600080fd5b5061033d600a5481565b60405190815260200161026c565b34801561035757600080fd5b506007546102cd906001600160a01b031681565b34801561037757600080fd5b5061033d60085481565b34801561038d57600080fd5b5061030561039c366004611bc2565b610968565b3480156103ad57600080fd5b5061033d6107d081565b3480156103c357600080fd5b506103056103d2366004611bfe565b610b2f565b610305610b99565b3480156103eb57600080fd5b506103056103fa366004611bc2565b610c44565b34801561040b57600080fd5b5061030561041a366004611af1565b610d37565b34801561042b57600080fd5b50600f546102609060ff1681565b34801561044557600080fd5b50610305610454366004611b50565b610d84565b34801561046557600080fd5b5061028a610e1c565b34801561047a57600080fd5b50610305610489366004611af1565b610e29565b34801561049a57600080fd5b5061028a610e76565b3480156104af57600080fd5b506102cd6104be366004611af1565b6003602052600090815260409020546001600160a01b031681565b3480156104e557600080fd5b506103056104f4366004611b50565b610e83565b34801561050557600080fd5b5061033d610514366004611bfe565b60026020526000908152604090205481565b34801561053257600080fd5b50610305610f00565b34801561054757600080fd5b50610305610556366004611b50565b610f54565b34801561056757600080fd5b5061057b610576366004611bfe565b610fa8565b60405161026c9190611c19565b34801561059457600080fd5b5061028a61108a565b3480156105a957600080fd5b506006546001600160a01b03166102cd565b3480156105c757600080fd5b5061028a611097565b6103056105de366004611af1565b6110a4565b3480156105ef57600080fd5b506103056105fe366004611c6d565b611170565b34801561060f57600080fd5b5061030561061e366004611cb6565b6111dc565b34801561062f57600080fd5b5061030561063e366004611b50565b6112c1565b34801561064f57600080fd5b50600f5461026090610100900460ff1681565b34801561066e57600080fd5b5061028a611315565b34801561068357600080fd5b5061028a610692366004611af1565b611322565b3480156106a357600080fd5b506103056106b2366004611d92565b61145b565b3480156106c357600080fd5b5061033d60095481565b3480156106d957600080fd5b506103056106e8366004611b26565b6114b6565b3480156106f957600080fd5b50610260610708366004611dad565b600560209081526000928352604080842090915290825290205460ff1681565b34801561073457600080fd5b50610305610743366004611bfe565b611557565b60006301ffc9a760e01b6001600160e01b03198316148061077957506380ac58cd60e01b6001600160e01b03198316145b806107945750635b5e139f60e01b6001600160e01b03198316145b92915050565b600080546107a790611dd7565b80601f01602080910402602001604051908101604052809291908181526020018280546107d390611dd7565b80156108205780601f106107f557610100808354040283529160200191610820565b820191906000526020600020905b81548152906001019060200180831161080357829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b03163381148061087157506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6108b35760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6006546001600160a01b031633146109575760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b610963600e83836119b3565b505050565b6000818152600360205260409020546001600160a01b038481169116146109be5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016108aa565b6001600160a01b038216610a085760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016108aa565b336001600160a01b0384161480610a3557506000818152600460205260409020546001600160a01b031633145b80610a6357506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b610aa05760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016108aa565b6001600160a01b0380841660008181526002602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6006546001600160a01b03163314610b775760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b03163314610bc3576040516282b42960e81b815260040160405180910390fd5b47610be157604051631e9acf1760e31b815260040160405180910390fd5b6007546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610c2e576040519150601f19603f3d011682016040523d82523d6000602084013e610c33565b606091505b5050905080610c4157600080fd5b50565b610c4f838383610968565b6001600160a01b0382163b1580610cf85750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec9190611e12565b6001600160e01b031916145b6109635760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016108aa565b6006546001600160a01b03163314610d7f5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600a55565b6006546001600160a01b03163314610dcc5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600f54610100900460ff161580610de55750600f5460ff165b15610e0357604051639ea6d12760e01b815260040160405180910390fd5b600f805461ff0019169055610e188282610e83565b5050565b600c80546107a790611dd7565b6006546001600160a01b03163314610e715760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600955565b600b80546107a790611dd7565b6006546001600160a01b03163314610ecb5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600f54610100900460ff1615610ef457604051639ea6d12760e01b815260040160405180910390fd5b610963600b83836119b3565b6006546001600160a01b03163314610f485760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b610f526000611609565b565b6006546001600160a01b03163314610f9c5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b610963600c83836119b3565b6001600160a01b0381166000908152600260205260408120546060916001908267ffffffffffffffff811115610fe057610fe0611ca0565b604051908082528060200260200182016040528015611009578160200160208202803683370190505b5093505b828110801561102757506110246107d06001611e45565b82105b15611082576000828152600360205260409020546001600160a01b03908116908616811415611076578285838151811061106357611063611e5d565b6020026020010181815250508160010191505b8260010192505061100d565b505050919050565b600d80546107a790611dd7565b600180546107a790611dd7565b80806110c35760405163162908e360e11b815260040160405180910390fd5b6107d0816008546110d49190611e45565b11156110f35760405163162908e360e11b815260040160405180910390fd5b600f5460ff166111165760405163914edb0f60e01b815260040160405180910390fd5b6009548211156111395760405163162908e360e11b815260040160405180910390fd5b81600a546111479190611e73565b34146111665760405163078d696560e31b815260040160405180910390fd5b610e18338361165b565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6111e7848484610968565b6001600160a01b0383163b158061127c5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a029061122d903390899088908890600401611e92565b6020604051808303816000875af115801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611e12565b6001600160e01b031916145b6112bb5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016108aa565b50505050565b6006546001600160a01b031633146113095760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b610963600d83836119b3565b600e80546107a790611dd7565b600f54606090610100900460ff16156113c757600d805461134290611dd7565b80601f016020809104026020016040519081016040528092919081815260200182805461136e90611dd7565b80156113bb5780601f10611390576101008083540402835291602001916113bb565b820191906000526020600020905b81548152906001019060200180831161139e57829003601f168201915b50505050509050919050565b6000828152600360205260409020546001600160a01b03166113fc576040516336d71d6960e11b815260040160405180910390fd5b6000600b805461140b90611dd7565b9050116114275760405180602001604052806000815250610794565b600b6114328361168c565b600c60405160200161144693929190611f68565b60405160208183030381529060405292915050565b6006546001600160a01b031633146114a35760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600f805460ff1916911515919091179055565b6006546001600160a01b031633146114fe5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b808061151d5760405163162908e360e11b815260040160405180910390fd5b6107d08160085461152e9190611e45565b111561154d5760405163162908e360e11b815260040160405180910390fd5b610963838361165b565b6006546001600160a01b0316331461159f5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b6001600160a01b0381166116045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108aa565b610c41815b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60015b8160010181101561167f576116778382600854016117aa565b60010161165e565b5060088054909101905550565b6060816116b05750506040805180820190915260018152600360fc1b602082015290565b8160005b81156116da57806116c481611f9b565b91506116d39050600a83611fcc565b91506116b4565b60008167ffffffffffffffff8111156116f5576116f5611ca0565b6040519080825280601f01601f19166020018201604052801561171f576020820181803683370190505b5090505b84156117a257611734600183611fe0565b9150611741600a86611ff7565b61174c906030611e45565b60f81b81838151811061176157611761611e5d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061179b600a86611fcc565b9450611723565b949350505050565b6117b48282611899565b6001600160a01b0382163b158061185a5750604051630a85bd0160e11b80825233600483015260006024830181905260448301849052608060648401526084830152906001600160a01b0384169063150b7a029060a4016020604051808303816000875af115801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190611e12565b6001600160e01b031916145b610e185760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016108aa565b6001600160a01b0382166118e35760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016108aa565b6000818152600360205260409020546001600160a01b0316156119485760405162461bcd60e51b815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016108aa565b6001600160a01b038216600081815260026020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546119bf90611dd7565b90600052602060002090601f0160209004810192826119e15760008555611a27565b82601f106119fa5782800160ff19823516178555611a27565b82800160010185558215611a27579182015b82811115611a27578235825591602001919060010190611a0c565b50611a33929150611a37565b5090565b5b80821115611a335760008155600101611a38565b6001600160e01b031981168114610c4157600080fd5b600060208284031215611a7457600080fd5b8135611a7f81611a4c565b9392505050565b60005b83811015611aa1578181015183820152602001611a89565b838111156112bb5750506000910152565b60008151808452611aca816020860160208601611a86565b601f01601f19169290920160200192915050565b602081526000611a7f6020830184611ab2565b600060208284031215611b0357600080fd5b5035919050565b80356001600160a01b0381168114611b2157600080fd5b919050565b60008060408385031215611b3957600080fd5b611b4283611b0a565b946020939093013593505050565b60008060208385031215611b6357600080fd5b823567ffffffffffffffff80821115611b7b57600080fd5b818501915085601f830112611b8f57600080fd5b813581811115611b9e57600080fd5b866020828501011115611bb057600080fd5b60209290920196919550909350505050565b600080600060608486031215611bd757600080fd5b611be084611b0a565b9250611bee60208501611b0a565b9150604084013590509250925092565b600060208284031215611c1057600080fd5b611a7f82611b0a565b6020808252825182820181905260009190848201906040850190845b81811015611c5157835183529284019291840191600101611c35565b50909695505050505050565b80358015158114611b2157600080fd5b60008060408385031215611c8057600080fd5b611c8983611b0a565b9150611c9760208401611c5d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611ccc57600080fd5b611cd585611b0a565b9350611ce360208601611b0a565b925060408501359150606085013567ffffffffffffffff80821115611d0757600080fd5b818701915087601f830112611d1b57600080fd5b813581811115611d2d57611d2d611ca0565b604051601f8201601f19908116603f01168101908382118183101715611d5557611d55611ca0565b816040528281528a6020848701011115611d6e57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600060208284031215611da457600080fd5b611a7f82611c5d565b60008060408385031215611dc057600080fd5b611dc983611b0a565b9150611c9760208401611b0a565b600181811c90821680611deb57607f821691505b60208210811415611e0c57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611e2457600080fd5b8151611a7f81611a4c565b634e487b7160e01b600052601160045260246000fd5b60008219821115611e5857611e58611e2f565b500190565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615611e8d57611e8d611e2f565b500290565b60006001600160a01b03808716835280861660208401525083604083015260806060830152611ec46080830184611ab2565b9695505050505050565b8054600090600181811c9080831680611ee857607f831692505b6020808410821415611f0a57634e487b7160e01b600052602260045260246000fd5b818015611f1e5760018114611f2f57611f5c565b60ff19861689528489019650611f5c565b60008881526020902060005b86811015611f545781548b820152908501908301611f3b565b505084890196505b50505050505092915050565b6000611f748286611ece565b8451611f84818360208901611a86565b611f9081830186611ece565b979650505050505050565b6000600019821415611faf57611faf611e2f565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611fdb57611fdb611fb6565b500490565b600082821015611ff257611ff2611e2f565b500390565b60008261200657612006611fb6565b50069056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212204fe8dfe2c9f46c3fcefd45bd013c904e790aeedcd35adf46aafcd845786b122764736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061023b5760003560e01c80636bff2c241161012e578063b88d4fde116100ab578063d19653fb1161006f578063d19653fb14610697578063de7fcb1d146106b7578063e58306f9146106cd578063e985e9c5146106ed578063f2fde38b1461072857600080fd5b8063b88d4fde14610603578063bbaac02f14610623578063c2d4cccd14610643578063c6ab67a314610662578063c87b56dd1461067757600080fd5b80638cc54e7f116100f25780638cc54e7f146105885780638da5cb5b1461059d57806395d89b41146105bb578063a0712d68146105d0578063a22cb465146105e357600080fd5b80636bff2c24146104d957806370a08231146104f9578063715018a61461052657806381b3e5751461053b57806389d5feee1461055b57600080fd5b80633ab1a494116101bc57806350179bae1161018057806350179bae146104395780635503a0e814610459578063616cdb1e1461046e57806362b99ad41461048e5780636352211e146104a357600080fd5b80633ab1a494146103b75780633ccfd60b146103d757806342842e0e146103df57806344a0d68a146103ff578063471a42941461041f57600080fd5b806313faede61161020357806313faede6146103275780631581b6001461034b57806318160ddd1461036b57806323b872dd1461038157806332cb6b0c146103a157600080fd5b806301ffc9a71461024057806306fdde0314610275578063081812fc14610297578063095ea7b3146102e55780631096952314610307575b600080fd5b34801561024c57600080fd5b5061026061025b366004611a62565b610748565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b5061028a61079a565b60405161026c9190611ade565b3480156102a357600080fd5b506102cd6102b2366004611af1565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161026c565b3480156102f157600080fd5b50610305610300366004611b26565b610828565b005b34801561031357600080fd5b50610305610322366004611b50565b61090f565b34801561033357600080fd5b5061033d600a5481565b60405190815260200161026c565b34801561035757600080fd5b506007546102cd906001600160a01b031681565b34801561037757600080fd5b5061033d60085481565b34801561038d57600080fd5b5061030561039c366004611bc2565b610968565b3480156103ad57600080fd5b5061033d6107d081565b3480156103c357600080fd5b506103056103d2366004611bfe565b610b2f565b610305610b99565b3480156103eb57600080fd5b506103056103fa366004611bc2565b610c44565b34801561040b57600080fd5b5061030561041a366004611af1565b610d37565b34801561042b57600080fd5b50600f546102609060ff1681565b34801561044557600080fd5b50610305610454366004611b50565b610d84565b34801561046557600080fd5b5061028a610e1c565b34801561047a57600080fd5b50610305610489366004611af1565b610e29565b34801561049a57600080fd5b5061028a610e76565b3480156104af57600080fd5b506102cd6104be366004611af1565b6003602052600090815260409020546001600160a01b031681565b3480156104e557600080fd5b506103056104f4366004611b50565b610e83565b34801561050557600080fd5b5061033d610514366004611bfe565b60026020526000908152604090205481565b34801561053257600080fd5b50610305610f00565b34801561054757600080fd5b50610305610556366004611b50565b610f54565b34801561056757600080fd5b5061057b610576366004611bfe565b610fa8565b60405161026c9190611c19565b34801561059457600080fd5b5061028a61108a565b3480156105a957600080fd5b506006546001600160a01b03166102cd565b3480156105c757600080fd5b5061028a611097565b6103056105de366004611af1565b6110a4565b3480156105ef57600080fd5b506103056105fe366004611c6d565b611170565b34801561060f57600080fd5b5061030561061e366004611cb6565b6111dc565b34801561062f57600080fd5b5061030561063e366004611b50565b6112c1565b34801561064f57600080fd5b50600f5461026090610100900460ff1681565b34801561066e57600080fd5b5061028a611315565b34801561068357600080fd5b5061028a610692366004611af1565b611322565b3480156106a357600080fd5b506103056106b2366004611d92565b61145b565b3480156106c357600080fd5b5061033d60095481565b3480156106d957600080fd5b506103056106e8366004611b26565b6114b6565b3480156106f957600080fd5b50610260610708366004611dad565b600560209081526000928352604080842090915290825290205460ff1681565b34801561073457600080fd5b50610305610743366004611bfe565b611557565b60006301ffc9a760e01b6001600160e01b03198316148061077957506380ac58cd60e01b6001600160e01b03198316145b806107945750635b5e139f60e01b6001600160e01b03198316145b92915050565b600080546107a790611dd7565b80601f01602080910402602001604051908101604052809291908181526020018280546107d390611dd7565b80156108205780601f106107f557610100808354040283529160200191610820565b820191906000526020600020905b81548152906001019060200180831161080357829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b03163381148061087157506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6108b35760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6006546001600160a01b031633146109575760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b610963600e83836119b3565b505050565b6000818152600360205260409020546001600160a01b038481169116146109be5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016108aa565b6001600160a01b038216610a085760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016108aa565b336001600160a01b0384161480610a3557506000818152600460205260409020546001600160a01b031633145b80610a6357506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b610aa05760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016108aa565b6001600160a01b0380841660008181526002602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6006546001600160a01b03163314610b775760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6007546001600160a01b03163314610bc3576040516282b42960e81b815260040160405180910390fd5b47610be157604051631e9acf1760e31b815260040160405180910390fd5b6007546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610c2e576040519150601f19603f3d011682016040523d82523d6000602084013e610c33565b606091505b5050905080610c4157600080fd5b50565b610c4f838383610968565b6001600160a01b0382163b1580610cf85750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610cc8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cec9190611e12565b6001600160e01b031916145b6109635760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016108aa565b6006546001600160a01b03163314610d7f5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600a55565b6006546001600160a01b03163314610dcc5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600f54610100900460ff161580610de55750600f5460ff165b15610e0357604051639ea6d12760e01b815260040160405180910390fd5b600f805461ff0019169055610e188282610e83565b5050565b600c80546107a790611dd7565b6006546001600160a01b03163314610e715760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600955565b600b80546107a790611dd7565b6006546001600160a01b03163314610ecb5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600f54610100900460ff1615610ef457604051639ea6d12760e01b815260040160405180910390fd5b610963600b83836119b3565b6006546001600160a01b03163314610f485760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b610f526000611609565b565b6006546001600160a01b03163314610f9c5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b610963600c83836119b3565b6001600160a01b0381166000908152600260205260408120546060916001908267ffffffffffffffff811115610fe057610fe0611ca0565b604051908082528060200260200182016040528015611009578160200160208202803683370190505b5093505b828110801561102757506110246107d06001611e45565b82105b15611082576000828152600360205260409020546001600160a01b03908116908616811415611076578285838151811061106357611063611e5d565b6020026020010181815250508160010191505b8260010192505061100d565b505050919050565b600d80546107a790611dd7565b600180546107a790611dd7565b80806110c35760405163162908e360e11b815260040160405180910390fd5b6107d0816008546110d49190611e45565b11156110f35760405163162908e360e11b815260040160405180910390fd5b600f5460ff166111165760405163914edb0f60e01b815260040160405180910390fd5b6009548211156111395760405163162908e360e11b815260040160405180910390fd5b81600a546111479190611e73565b34146111665760405163078d696560e31b815260040160405180910390fd5b610e18338361165b565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6111e7848484610968565b6001600160a01b0383163b158061127c5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a029061122d903390899088908890600401611e92565b6020604051808303816000875af115801561124c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112709190611e12565b6001600160e01b031916145b6112bb5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016108aa565b50505050565b6006546001600160a01b031633146113095760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b610963600d83836119b3565b600e80546107a790611dd7565b600f54606090610100900460ff16156113c757600d805461134290611dd7565b80601f016020809104026020016040519081016040528092919081815260200182805461136e90611dd7565b80156113bb5780601f10611390576101008083540402835291602001916113bb565b820191906000526020600020905b81548152906001019060200180831161139e57829003601f168201915b50505050509050919050565b6000828152600360205260409020546001600160a01b03166113fc576040516336d71d6960e11b815260040160405180910390fd5b6000600b805461140b90611dd7565b9050116114275760405180602001604052806000815250610794565b600b6114328361168c565b600c60405160200161144693929190611f68565b60405160208183030381529060405292915050565b6006546001600160a01b031633146114a35760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b600f805460ff1916911515919091179055565b6006546001600160a01b031633146114fe5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b808061151d5760405163162908e360e11b815260040160405180910390fd5b6107d08160085461152e9190611e45565b111561154d5760405163162908e360e11b815260040160405180910390fd5b610963838361165b565b6006546001600160a01b0316331461159f5760405162461bcd60e51b8152602060048201819052602482015260008051602061200c83398151915260448201526064016108aa565b6001600160a01b0381166116045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108aa565b610c41815b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60015b8160010181101561167f576116778382600854016117aa565b60010161165e565b5060088054909101905550565b6060816116b05750506040805180820190915260018152600360fc1b602082015290565b8160005b81156116da57806116c481611f9b565b91506116d39050600a83611fcc565b91506116b4565b60008167ffffffffffffffff8111156116f5576116f5611ca0565b6040519080825280601f01601f19166020018201604052801561171f576020820181803683370190505b5090505b84156117a257611734600183611fe0565b9150611741600a86611ff7565b61174c906030611e45565b60f81b81838151811061176157611761611e5d565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061179b600a86611fcc565b9450611723565b949350505050565b6117b48282611899565b6001600160a01b0382163b158061185a5750604051630a85bd0160e11b80825233600483015260006024830181905260448301849052608060648401526084830152906001600160a01b0384169063150b7a029060a4016020604051808303816000875af115801561182a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184e9190611e12565b6001600160e01b031916145b610e185760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016108aa565b6001600160a01b0382166118e35760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016108aa565b6000818152600360205260409020546001600160a01b0316156119485760405162461bcd60e51b815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016108aa565b6001600160a01b038216600081815260026020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b8280546119bf90611dd7565b90600052602060002090601f0160209004810192826119e15760008555611a27565b82601f106119fa5782800160ff19823516178555611a27565b82800160010185558215611a27579182015b82811115611a27578235825591602001919060010190611a0c565b50611a33929150611a37565b5090565b5b80821115611a335760008155600101611a38565b6001600160e01b031981168114610c4157600080fd5b600060208284031215611a7457600080fd5b8135611a7f81611a4c565b9392505050565b60005b83811015611aa1578181015183820152602001611a89565b838111156112bb5750506000910152565b60008151808452611aca816020860160208601611a86565b601f01601f19169290920160200192915050565b602081526000611a7f6020830184611ab2565b600060208284031215611b0357600080fd5b5035919050565b80356001600160a01b0381168114611b2157600080fd5b919050565b60008060408385031215611b3957600080fd5b611b4283611b0a565b946020939093013593505050565b60008060208385031215611b6357600080fd5b823567ffffffffffffffff80821115611b7b57600080fd5b818501915085601f830112611b8f57600080fd5b813581811115611b9e57600080fd5b866020828501011115611bb057600080fd5b60209290920196919550909350505050565b600080600060608486031215611bd757600080fd5b611be084611b0a565b9250611bee60208501611b0a565b9150604084013590509250925092565b600060208284031215611c1057600080fd5b611a7f82611b0a565b6020808252825182820181905260009190848201906040850190845b81811015611c5157835183529284019291840191600101611c35565b50909695505050505050565b80358015158114611b2157600080fd5b60008060408385031215611c8057600080fd5b611c8983611b0a565b9150611c9760208401611c5d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60008060008060808587031215611ccc57600080fd5b611cd585611b0a565b9350611ce360208601611b0a565b925060408501359150606085013567ffffffffffffffff80821115611d0757600080fd5b818701915087601f830112611d1b57600080fd5b813581811115611d2d57611d2d611ca0565b604051601f8201601f19908116603f01168101908382118183101715611d5557611d55611ca0565b816040528281528a6020848701011115611d6e57600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b600060208284031215611da457600080fd5b611a7f82611c5d565b60008060408385031215611dc057600080fd5b611dc983611b0a565b9150611c9760208401611b0a565b600181811c90821680611deb57607f821691505b60208210811415611e0c57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611e2457600080fd5b8151611a7f81611a4c565b634e487b7160e01b600052601160045260246000fd5b60008219821115611e5857611e58611e2f565b500190565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615611e8d57611e8d611e2f565b500290565b60006001600160a01b03808716835280861660208401525083604083015260806060830152611ec46080830184611ab2565b9695505050505050565b8054600090600181811c9080831680611ee857607f831692505b6020808410821415611f0a57634e487b7160e01b600052602260045260246000fd5b818015611f1e5760018114611f2f57611f5c565b60ff19861689528489019650611f5c565b60008881526020902060005b86811015611f545781548b820152908501908301611f3b565b505084890196505b50505050505092915050565b6000611f748286611ece565b8451611f84818360208901611a86565b611f9081830186611ece565b979650505050505050565b6000600019821415611faf57611faf611e2f565b5060010190565b634e487b7160e01b600052601260045260246000fd5b600082611fdb57611fdb611fb6565b500490565b600082821015611ff257611ff2611e2f565b500390565b60008261200657612006611fb6565b50069056fe4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212204fe8dfe2c9f46c3fcefd45bd013c904e790aeedcd35adf46aafcd845786b122764736f6c634300080a0033

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

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