ETH Price: $3,347.78 (-1.37%)

Token

 

Overview

Max Total Supply

888

Holders

314

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
rubyredriver.eth
0x34ee160d57c7c14d018b6f751fafd1060b560db6
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:
TitanTiki3D

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-03-11
*/

// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.4;

/// @notice Minimalist and gas efficient standard ERC1155 implementation.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC1155.sol)
abstract contract ERC1155 {
    /*///////////////////////////////////////////////////////////////
                                EVENTS
    //////////////////////////////////////////////////////////////*/

    event TransferSingle(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256 id,
        uint256 amount
    );

    event TransferBatch(
        address indexed operator,
        address indexed from,
        address indexed to,
        uint256[] ids,
        uint256[] amounts
    );

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

    event URI(string value, uint256 indexed id);

    /*///////////////////////////////////////////////////////////////
                            ERC1155 STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(address => mapping(uint256 => uint256)) public balanceOf;

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

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

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

    /*///////////////////////////////////////////////////////////////
                            ERC1155 ACTIONS
    //////////////////////////////////////////////////////////////*/

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

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

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) public virtual {
        require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED");

        balanceOf[from][id] -= amount;
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, from, to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) ==
                    ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeBatchTransferFrom(
        address from,
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) public virtual {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

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

        for (uint256 i = 0; i < idsLength; ) {
            uint256 id = ids[i];
            uint256 amount = amounts[i];

            balanceOf[from][id] -= amount;
            balanceOf[to][id] += amount;

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                i++;
            }
        }

        emit TransferBatch(msg.sender, from, to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) ==
                    ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function balanceOfBatch(address[] memory owners, uint256[] memory ids)
        public
        view
        virtual
        returns (uint256[] memory balances)
    {
        uint256 ownersLength = owners.length; // Saves MLOADs.

        require(ownersLength == ids.length, "LENGTH_MISMATCH");

        balances = new uint256[](owners.length);

        // Unchecked because the only math done is incrementing
        // the array index counter which cannot possibly overflow.
        unchecked {
            for (uint256 i = 0; i < ownersLength; i++) {
                balances[i] = balanceOf[owners[i]][ids[i]];
            }
        }
    }

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

    function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155
            interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI
    }

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

    function _mint(
        address to,
        uint256 id,
        uint256 amount,
        bytes memory data
    ) internal {
        balanceOf[to][id] += amount;

        emit TransferSingle(msg.sender, address(0), to, id, amount);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, address(0), id, amount, data) ==
                    ERC1155TokenReceiver.onERC1155Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchMint(
        address to,
        uint256[] memory ids,
        uint256[] memory amounts,
        bytes memory data
    ) internal {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[to][ids[i]] += amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                i++;
            }
        }

        emit TransferBatch(msg.sender, address(0), to, ids, amounts);

        require(
            to.code.length == 0
                ? to != address(0)
                : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, address(0), ids, amounts, data) ==
                    ERC1155TokenReceiver.onERC1155BatchReceived.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function _batchBurn(
        address from,
        uint256[] memory ids,
        uint256[] memory amounts
    ) internal {
        uint256 idsLength = ids.length; // Saves MLOADs.

        require(idsLength == amounts.length, "LENGTH_MISMATCH");

        for (uint256 i = 0; i < idsLength; ) {
            balanceOf[from][ids[i]] -= amounts[i];

            // An array can't have a total length
            // larger than the max uint256 value.
            unchecked {
                i++;
            }
        }

        emit TransferBatch(msg.sender, from, address(0), ids, amounts);
    }

    function _burn(
        address from,
        uint256 id,
        uint256 amount
    ) internal {
        balanceOf[from][id] -= amount;

        emit TransferSingle(msg.sender, from, address(0), id, amount);
    }
}

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

    function onERC1155BatchReceived(
        address operator,
        address from,
        uint256[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) external returns (bytes4);
}// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)



// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)



/**
 * @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;
    }
}

/**
 * @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);
    }
}// OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/MerkleProof.sol)



/**
 * @dev These functions deal with verification of Merkle Trees proofs.
 *
 * The proofs can be generated using the JavaScript library
 * https://github.com/miguelmota/merkletreejs[merkletreejs].
 * Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.
 *
 * See `test/utils/cryptography/MerkleProof.test.js` for some examples.
 */
library MerkleProof {
    /**
     * @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
     * defined by `root`. For this, a `proof` must be provided, containing
     * sibling hashes on the branch from the leaf to the root of the tree. Each
     * pair of leaves and each pair of pre-images are assumed to be sorted.
     */
    function verify(
        bytes32[] memory proof,
        bytes32 root,
        bytes32 leaf
    ) internal pure returns (bool) {
        return processProof(proof, leaf) == root;
    }

    /**
     * @dev Returns the rebuilt hash obtained by traversing a Merklee tree up
     * from `leaf` using `proof`. A `proof` is valid if and only if the rebuilt
     * hash matches the root of the tree. When processing the proof, the pairs
     * of leafs & pre-images are assumed to be sorted.
     *
     * _Available since v4.4._
     */
    function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) {
        bytes32 computedHash = leaf;
        for (uint256 i = 0; i < proof.length; i++) {
            bytes32 proofElement = proof[i];
            if (computedHash <= proofElement) {
                // Hash(current computed hash + current element of the proof)
                computedHash = _efficientHash(computedHash, proofElement);
            } else {
                // Hash(current element of the proof + current computed hash)
                computedHash = _efficientHash(proofElement, computedHash);
            }
        }
        return computedHash;
    }

    function _efficientHash(bytes32 a, bytes32 b) private pure returns (bytes32 value) {
        assembly {
            mstore(0x00, a)
            mstore(0x20, b)
            value := keccak256(0x00, 0x40)
        }
    }
}// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)



/**
 * @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);
    }
}
contract TitanTiki3D is ERC1155, Ownable {
    using Strings for uint160;
    using Strings for uint8;

    /// @dev 0x98d4901c
    error WrongValue();
    /// @dev 0x750b219c
    error WithdrawFailed();
    /// @dev 0x80cb55e2
    error NotActive();
    /// @dev 0xb36c1284
    error MaxSupply();
    /// @dev 0xb05e92fa
    error InvalidMerkleProof();
    /// @dev 0x843ce46b
    error InvalidClaimAmount();
    /// @dev 0x2c5211c6
    error InvalidAmount();

    // Immutable

    uint256 public constant TOTAL_LIMIT = 2022;
    uint256 public constant UNIT_PRICE = 0.1 ether;
    uint256 public constant MAX_PER_TX = 10;

    bytes32 public immutable merkleRoot;
    address private immutable _payoutAddress;

    // Mutable

    uint256 public totalSupply = 0;
    bool public isPresaleActive = false;
    string private _uri;
    bool public isSaleActive = false;

    /// @dev we know no one is allow-listed to claim more than 255, and we
    ///      found out uint8 was cheaper than other uints by trial
    mapping(address => uint8) public amountClaimedByUser;

    // Constructor

    constructor(
        address payoutAddress,
        string memory __uri,
        bytes32 _merkleRoot
    ) {
        // slither-disable-next-line missing-zero-check
        _payoutAddress = payoutAddress;
        _uri = __uri;
        merkleRoot = _merkleRoot;
    }

    // Owner Only

    function setURI(string calldata newUri) external onlyOwner {
        _uri = newUri;
    }

    function setIsSaleActive(bool newIsSaleActive) external onlyOwner {
        isSaleActive = newIsSaleActive;
    }

    function setIsPresaleActive(bool newIsPresaleActive) external onlyOwner {
        isPresaleActive = newIsPresaleActive;
    }

    function withdraw() external onlyOwner {
        uint256 contractBalance = address(this).balance;
        // slither-disable-next-line low-level-calls
        (bool payoutSent, ) = payable(_payoutAddress).call{ // solhint-disable-line avoid-low-level-calls
            value: contractBalance
        }("");
        if (!payoutSent) revert WithdrawFailed();
    }

    function reserve(address to, uint256 amount) external onlyOwner {
        unchecked {
            if (amount + totalSupply > TOTAL_LIMIT) revert MaxSupply();
        }
        _mintMany(to, amount);
    }

    // User

    function mint(uint256 amount) external payable {
        if (!isSaleActive) revert NotActive();
        if (amount == 0 || amount > MAX_PER_TX) revert InvalidAmount();
        unchecked {
            if (msg.value != amount * UNIT_PRICE) revert WrongValue();
            if (amount + totalSupply > TOTAL_LIMIT) revert MaxSupply();
        }
        _mintMany(msg.sender, amount);
    }

    function claim(
        uint8 amount,
        uint8 totalAmount,
        bytes32[] calldata proof
    ) external {
        if (!isPresaleActive) revert NotActive();
        unchecked {
            if (amountClaimedByUser[msg.sender] + amount > totalAmount)
                revert InvalidClaimAmount();
        }
        bytes32 leaf = keccak256(
            abi.encodePacked(
                uint160(msg.sender).toHexString(20),
                ":",
                totalAmount.toString()
            )
        );
        bool isProofValid = MerkleProof.verify(proof, merkleRoot, leaf);
        if (!isProofValid) revert InvalidMerkleProof();
        unchecked {
            amountClaimedByUser[msg.sender] += amount;
        }
        _mintMany(msg.sender, amount);
    }

    // Internal Helpers

    function _mintMany(address to, uint256 amount) internal {
        uint256[] memory ids = new uint256[](amount);
        uint256[] memory amounts = new uint256[](amount);

        uint256 supply = totalSupply;
        unchecked {
            totalSupply += amount;
            for (uint256 i = 0; i < amount; i++) {
                ids[i] = supply + i + 1;
                amounts[i] = 1;
            }
        }

        _batchMint(to, ids, amounts, "");
    }

    // Overrides

    function uri(uint256) public view override returns (string memory) {
        return _uri;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"payoutAddress","type":"address"},{"internalType":"string","name":"__uri","type":"string"},{"internalType":"bytes32","name":"_merkleRoot","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidClaimAmount","type":"error"},{"inputs":[],"name":"InvalidMerkleProof","type":"error"},{"inputs":[],"name":"MaxSupply","type":"error"},{"inputs":[],"name":"NotActive","type":"error"},{"inputs":[],"name":"WithdrawFailed","type":"error"},{"inputs":[],"name":"WrongValue","type":"error"},{"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":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[],"name":"MAX_PER_TX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_LIMIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNIT_PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amountClaimedByUser","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"amount","type":"uint8"},{"internalType":"uint8","name":"totalAmount","type":"uint8"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","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":"isPresaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"reserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","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":"uint256","name":"amount","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":"bool","name":"newIsPresaleActive","type":"bool"}],"name":"setIsPresaleActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newIsSaleActive","type":"bool"}],"name":"setIsSaleActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newUri","type":"string"}],"name":"setURI","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405260006003556004805460ff199081169091556006805490911690553480156200002c57600080fd5b506040516200236b3803806200236b8339810160408190526200004f9162000197565b6200005a3362000089565b6001600160a01b03831660a05281516200007c906005906020850190620000db565b5060805250620002dd9050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054620000e990620002a0565b90600052602060002090601f0160209004810192826200010d576000855562000158565b82601f106200012857805160ff191683800117855562000158565b8280016001018555821562000158579182015b82811115620001585782518255916020019190600101906200013b565b50620001669291506200016a565b5090565b5b808211156200016657600081556001016200016b565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215620001ad57600080fd5b83516001600160a01b0381168114620001c557600080fd5b602085810151919450906001600160401b0380821115620001e557600080fd5b818701915087601f830112620001fa57600080fd5b8151818111156200020f576200020f62000181565b604051601f8201601f19908116603f011681019083821181831017156200023a576200023a62000181565b816040528281528a868487010111156200025357600080fd5b600093505b8284101562000277578484018601518185018701529285019262000258565b82841115620002895760008684830101525b809750505050505050604084015190509250925092565b600181811c90821680620002b557607f821691505b60208210811415620002d757634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a0516120616200030a60003960006109160152600081816102940152610bf001526120616000f3fe6080604052600436106101805760003560e01c8063715018a6116100d1578063cc47a40b1161008a578063eca17e0411610064578063eca17e04146104b5578063f242432a146104cb578063f2fde38b146104eb578063f43a22dc1461050b57600080fd5b8063cc47a40b1461043a578063d2d65ff51461045a578063e985e9c51461047a57600080fd5b8063715018a61461038e5780638715c9ca146103a35780638da5cb5b146103c3578063a0712d68146103eb578063a22cb465146103fe578063afa40bbd1461041e57600080fd5b80632eb4a7ab1161013e578063443da2a211610118578063443da2a21461030d5780634e1273f41461032d578063564566a81461035a57806360d938dc1461037457600080fd5b80632eb4a7ab146102825780633b66f49d146102b65780633ccfd60b146102f857600080fd5b8062fdd58e1461018557806301ffc9a7146101cd57806302fe5305146101fd5780630e89341c1461021f57806318160ddd1461024c5780632eb2c2d614610262575b600080fd5b34801561019157600080fd5b506101ba6101a036600461175d565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b3480156101d957600080fd5b506101ed6101e836600461179d565b610520565b60405190151581526020016101c4565b34801561020957600080fd5b5061021d6102183660046117ba565b610572565b005b34801561022b57600080fd5b5061023f61023a36600461182b565b6105b6565b6040516101c491906118a0565b34801561025857600080fd5b506101ba60035481565b34801561026e57600080fd5b5061021d61027d3660046119f6565b61064a565b34801561028e57600080fd5b506101ba7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102c257600080fd5b506102e66102d1366004611a9f565b60076020526000908152604090205460ff1681565b60405160ff90911681526020016101c4565b34801561030457600080fd5b5061021d6108da565b34801561031957600080fd5b5061021d610328366004611aca565b61099c565b34801561033957600080fd5b5061034d610348366004611ae5565b6109d9565b6040516101c49190611bdf565b34801561036657600080fd5b506006546101ed9060ff1681565b34801561038057600080fd5b506004546101ed9060ff1681565b34801561039a57600080fd5b5061021d610ae4565b3480156103af57600080fd5b5061021d6103be366004611c03565b610b1a565b3480156103cf57600080fd5b506002546040516001600160a01b0390911681526020016101c4565b61021d6103f936600461182b565b610c6a565b34801561040a57600080fd5b5061021d610419366004611c93565b610d16565b34801561042a57600080fd5b506101ba67016345785d8a000081565b34801561044657600080fd5b5061021d61045536600461175d565b610d82565b34801561046657600080fd5b5061021d610475366004611aca565b610ddd565b34801561048657600080fd5b506101ed610495366004611cc6565b600160209081526000928352604080842090915290825290205460ff1681565b3480156104c157600080fd5b506101ba6107e681565b3480156104d757600080fd5b5061021d6104e6366004611cf0565b610e1a565b3480156104f757600080fd5b5061021d610506366004611a9f565b611011565b34801561051757600080fd5b506101ba600a81565b60006301ffc9a760e01b6001600160e01b0319831614806105515750636cdb3d1360e11b6001600160e01b03198316145b8061056c57506303a24d0760e21b6001600160e01b03198316145b92915050565b6002546001600160a01b031633146105a55760405162461bcd60e51b815260040161059c90611d54565b60405180910390fd5b6105b1600583836116a8565b505050565b6060600580546105c590611d89565b80601f01602080910402602001604051908101604052809291908181526020018280546105f190611d89565b801561063e5780601f106106135761010080835404028352916020019161063e565b820191906000526020600020905b81548152906001019060200180831161062157829003601f168201915b50505050509050919050565b82518251811461066c5760405162461bcd60e51b815260040161059c90611dc4565b336001600160a01b03871614806106a657506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b6106e35760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161059c565b60005b818110156107b857600085828151811061070257610702611ded565b60200260200101519050600085838151811061072057610720611ded565b60200260200101519050806000808b6001600160a01b03166001600160a01b031681526020019081526020016000206000848152602001908152602001600020600082825461076f9190611e19565b90915550506001600160a01b038816600090815260208181526040808320858452909152812080548392906107a5908490611e30565b9091555050600190920191506106e69050565b50846001600160a01b0316866001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610808929190611e48565b60405180910390a46001600160a01b0385163b156108a95760405163bc197c8160e01b808252906001600160a01b0387169063bc197c81906108569033908b908a908a908a90600401611e76565b6020604051808303816000875af1158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190611ed4565b6001600160e01b031916146108b6565b6001600160a01b03851615155b6108d25760405162461bcd60e51b815260040161059c90611ef1565b505050505050565b6002546001600160a01b031633146109045760405162461bcd60e51b815260040161059c90611d54565b60405147906000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169083908381818185875af1925050503d8060008114610971576040519150601f19603f3d011682016040523d82523d6000602084013e610976565b606091505b505090508061099857604051631d42c86760e21b815260040160405180910390fd5b5050565b6002546001600160a01b031633146109c65760405162461bcd60e51b815260040161059c90611d54565b6004805460ff1916911515919091179055565b815181516060919081146109ff5760405162461bcd60e51b815260040161059c90611dc4565b83516001600160401b03811115610a1857610a186118b3565b604051908082528060200260200182016040528015610a41578160200160208202803683370190505b50915060005b81811015610adc57600080868381518110610a6457610a64611ded565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858381518110610aa057610aa0611ded565b6020026020010151815260200190815260200160002054838281518110610ac957610ac9611ded565b6020908102919091010152600101610a47565b505092915050565b6002546001600160a01b03163314610b0e5760405162461bcd60e51b815260040161059c90611d54565b610b1860006110a5565b565b60045460ff16610b3d57604051634065aaf160e11b815260040160405180910390fd5b3360009081526007602052604090205460ff8085169181168601161115610b775760405163843ce46b60e01b815260040160405180910390fd5b6000610b843360146110f7565b610b908560ff16611299565b604051602001610ba1929190611f1b565b6040516020818303038152906040528051906020012090506000610c1b8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f0000000000000000000000000000000000000000000000000000000000000000925086915061139e9050565b905080610c3b5760405163582f497d60e11b815260040160405180910390fd5b336000818152600760205260409020805460ff19811660ff9182168a018216179091556108d2919088166113b4565b60065460ff16610c8d57604051634065aaf160e11b815260040160405180910390fd5b801580610c9a5750600a81115b15610cb85760405163162908e360e11b815260040160405180910390fd5b67016345785d8a000081023414610ce257604051632635240760e21b815260040160405180910390fd5b6107e660035482011115610d0957604051632cdb04a160e21b815260040160405180910390fd5b610d1333826113b4565b50565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6002546001600160a01b03163314610dac5760405162461bcd60e51b815260040161059c90611d54565b6107e660035482011115610dd357604051632cdb04a160e21b815260040160405180910390fd5b61099882826113b4565b6002546001600160a01b03163314610e075760405162461bcd60e51b815260040161059c90611d54565b6006805460ff1916911515919091179055565b336001600160a01b0386161480610e5457506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b610e915760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161059c565b6001600160a01b03851660009081526020818152604080832086845290915281208054849290610ec2908490611e19565b90915550506001600160a01b03841660009081526020818152604080832086845290915281208054849290610ef8908490611e30565b909155505060408051848152602081018490526001600160a01b03808716929088169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b15610fe15760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190610f8e9033908a90899089908990600401611f57565b6020604051808303816000875af1158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd19190611ed4565b6001600160e01b03191614610fee565b6001600160a01b03841615155b61100a5760405162461bcd60e51b815260040161059c90611ef1565b5050505050565b6002546001600160a01b0316331461103b5760405162461bcd60e51b815260040161059c90611d54565b6001600160a01b0381166110a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059c565b610d13815b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606000611106836002611f9c565b611111906002611e30565b6001600160401b03811115611128576111286118b3565b6040519080825280601f01601f191660200182016040528015611152576020820181803683370190505b509050600360fc1b8160008151811061116d5761116d611ded565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061119c5761119c611ded565b60200101906001600160f81b031916908160001a90535060006111c0846002611f9c565b6111cb906001611e30565b90505b6001811115611243576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106111ff576111ff611ded565b1a60f81b82828151811061121557611215611ded565b60200101906001600160f81b031916908160001a90535060049490941c9361123c81611fbb565b90506111ce565b5083156112925760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161059c565b9392505050565b6060816112bd5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156112e757806112d181611fd2565b91506112e09050600a83612003565b91506112c1565b6000816001600160401b03811115611301576113016118b3565b6040519080825280601f01601f19166020018201604052801561132b576020820181803683370190505b5090505b841561139657611340600183611e19565b915061134d600a86612017565b611358906030611e30565b60f81b81838151811061136d5761136d611ded565b60200101906001600160f81b031916908160001a90535061138f600a86612003565b945061132f565b949350505050565b6000826113ab85846114bd565b14949350505050565b6000816001600160401b038111156113ce576113ce6118b3565b6040519080825280602002602001820160405280156113f7578160200160208202803683370190505b5090506000826001600160401b03811115611414576114146118b3565b60405190808252806020026020018201604052801561143d578160200160208202803683370190505b506003805485810190915590915060005b848110156114a15780820160010184828151811061146e5761146e611ded565b602002602001018181525050600183828151811061148e5761148e611ded565b602090810291909101015260010161144e565b5061100a85848460405180602001604052806000815250611531565b600081815b84518110156115295760008582815181106114df576114df611ded565b602002602001015190508083116115055760008381526020829052604090209250611516565b600081815260208490526040902092505b508061152181611fd2565b9150506114c2565b509392505050565b8251825181146115535760405162461bcd60e51b815260040161059c90611dc4565b60005b818110156115e25783818151811061157057611570611ded565b6020026020010151600080886001600160a01b03166001600160a01b0316815260200190815260200160002060008784815181106115b0576115b0611ded565b6020026020010151815260200190815260200160002060008282546115d59190611e30565b9091555050600101611556565b50846001600160a01b031660006001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611633929190611e48565b60405180910390a46001600160a01b0385163b156116825760405163bc197c8160e01b808252906001600160a01b0387169063bc197c8190610f8e9033906000908a908a908a90600401611e76565b6001600160a01b03851661100a5760405162461bcd60e51b815260040161059c90611ef1565b8280546116b490611d89565b90600052602060002090601f0160209004810192826116d6576000855561171c565b82601f106116ef5782800160ff1982351617855561171c565b8280016001018555821561171c579182015b8281111561171c578235825591602001919060010190611701565b5061172892915061172c565b5090565b5b80821115611728576000815560010161172d565b80356001600160a01b038116811461175857600080fd5b919050565b6000806040838503121561177057600080fd5b61177983611741565b946020939093013593505050565b6001600160e01b031981168114610d1357600080fd5b6000602082840312156117af57600080fd5b813561129281611787565b600080602083850312156117cd57600080fd5b82356001600160401b03808211156117e457600080fd5b818501915085601f8301126117f857600080fd5b81358181111561180757600080fd5b86602082850101111561181957600080fd5b60209290920196919550909350505050565b60006020828403121561183d57600080fd5b5035919050565b60005b8381101561185f578181015183820152602001611847565b8381111561186e576000848401525b50505050565b6000815180845261188c816020860160208601611844565b601f01601f19169290920160200192915050565b6020815260006112926020830184611874565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156118f1576118f16118b3565b604052919050565b60006001600160401b03821115611912576119126118b3565b5060051b60200190565b600082601f83011261192d57600080fd5b8135602061194261193d836118f9565b6118c9565b82815260059290921b8401810191818101908684111561196157600080fd5b8286015b8481101561197c5780358352918301918301611965565b509695505050505050565b600082601f83011261199857600080fd5b81356001600160401b038111156119b1576119b16118b3565b6119c4601f8201601f19166020016118c9565b8181528460208386010111156119d957600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611a0e57600080fd5b611a1786611741565b9450611a2560208701611741565b935060408601356001600160401b0380821115611a4157600080fd5b611a4d89838a0161191c565b94506060880135915080821115611a6357600080fd5b611a6f89838a0161191c565b93506080880135915080821115611a8557600080fd5b50611a9288828901611987565b9150509295509295909350565b600060208284031215611ab157600080fd5b61129282611741565b8035801515811461175857600080fd5b600060208284031215611adc57600080fd5b61129282611aba565b60008060408385031215611af857600080fd5b82356001600160401b0380821115611b0f57600080fd5b818501915085601f830112611b2357600080fd5b81356020611b3361193d836118f9565b82815260059290921b84018101918181019089841115611b5257600080fd5b948201945b83861015611b7757611b6886611741565b82529482019490820190611b57565b96505086013592505080821115611b8d57600080fd5b50611b9a8582860161191c565b9150509250929050565b600081518084526020808501945080840160005b83811015611bd457815187529582019590820190600101611bb8565b509495945050505050565b6020815260006112926020830184611ba4565b803560ff8116811461175857600080fd5b60008060008060608587031215611c1957600080fd5b611c2285611bf2565b9350611c3060208601611bf2565b925060408501356001600160401b0380821115611c4c57600080fd5b818701915087601f830112611c6057600080fd5b813581811115611c6f57600080fd5b8860208260051b8501011115611c8457600080fd5b95989497505060200194505050565b60008060408385031215611ca657600080fd5b611caf83611741565b9150611cbd60208401611aba565b90509250929050565b60008060408385031215611cd957600080fd5b611ce283611741565b9150611cbd60208401611741565b600080600080600060a08688031215611d0857600080fd5b611d1186611741565b9450611d1f60208701611741565b9350604086013592506060860135915060808601356001600160401b03811115611d4857600080fd5b611a9288828901611987565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611d9d57607f821691505b60208210811415611dbe57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600f908201526e0988a9c8ea890be9a92a69a82a8869608b1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015611e2b57611e2b611e03565b500390565b60008219821115611e4357611e43611e03565b500190565b604081526000611e5b6040830185611ba4565b8281036020840152611e6d8185611ba4565b95945050505050565b6001600160a01b0386811682528516602082015260a060408201819052600090611ea290830186611ba4565b8281036060840152611eb48186611ba4565b90508281036080840152611ec88185611874565b98975050505050505050565b600060208284031215611ee657600080fd5b815161129281611787565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b60008351611f2d818460208801611844565b601d60f91b9083019081528351611f4b816001840160208801611844565b01600101949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611f9190830184611874565b979650505050505050565b6000816000190483118215151615611fb657611fb6611e03565b500290565b600081611fca57611fca611e03565b506000190190565b6000600019821415611fe657611fe6611e03565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261201257612012611fed565b500490565b60008261202657612026611fed565b50069056fea26469706673582212203e8ff78f1627532a08c6f52d55c01051e9515e565bec3937a5fc8bc03c57bf1364736f6c634300080c00330000000000000000000000002214afafa4142ed82a6215b2ff41b7d28df072a90000000000000000000000000000000000000000000000000000000000000060ecc16163ac12861fea1e20ad7afddc81dace83b49d2550ec1c181a87b7094d5b000000000000000000000000000000000000000000000000000000000000004168747470733a2f2f7476707836396639306b2e657865637574652d6170692e75732d656173742d312e616d617a6f6e6177732e636f6d2f746f6b656e2f7b69647d00000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101805760003560e01c8063715018a6116100d1578063cc47a40b1161008a578063eca17e0411610064578063eca17e04146104b5578063f242432a146104cb578063f2fde38b146104eb578063f43a22dc1461050b57600080fd5b8063cc47a40b1461043a578063d2d65ff51461045a578063e985e9c51461047a57600080fd5b8063715018a61461038e5780638715c9ca146103a35780638da5cb5b146103c3578063a0712d68146103eb578063a22cb465146103fe578063afa40bbd1461041e57600080fd5b80632eb4a7ab1161013e578063443da2a211610118578063443da2a21461030d5780634e1273f41461032d578063564566a81461035a57806360d938dc1461037457600080fd5b80632eb4a7ab146102825780633b66f49d146102b65780633ccfd60b146102f857600080fd5b8062fdd58e1461018557806301ffc9a7146101cd57806302fe5305146101fd5780630e89341c1461021f57806318160ddd1461024c5780632eb2c2d614610262575b600080fd5b34801561019157600080fd5b506101ba6101a036600461175d565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b3480156101d957600080fd5b506101ed6101e836600461179d565b610520565b60405190151581526020016101c4565b34801561020957600080fd5b5061021d6102183660046117ba565b610572565b005b34801561022b57600080fd5b5061023f61023a36600461182b565b6105b6565b6040516101c491906118a0565b34801561025857600080fd5b506101ba60035481565b34801561026e57600080fd5b5061021d61027d3660046119f6565b61064a565b34801561028e57600080fd5b506101ba7fecc16163ac12861fea1e20ad7afddc81dace83b49d2550ec1c181a87b7094d5b81565b3480156102c257600080fd5b506102e66102d1366004611a9f565b60076020526000908152604090205460ff1681565b60405160ff90911681526020016101c4565b34801561030457600080fd5b5061021d6108da565b34801561031957600080fd5b5061021d610328366004611aca565b61099c565b34801561033957600080fd5b5061034d610348366004611ae5565b6109d9565b6040516101c49190611bdf565b34801561036657600080fd5b506006546101ed9060ff1681565b34801561038057600080fd5b506004546101ed9060ff1681565b34801561039a57600080fd5b5061021d610ae4565b3480156103af57600080fd5b5061021d6103be366004611c03565b610b1a565b3480156103cf57600080fd5b506002546040516001600160a01b0390911681526020016101c4565b61021d6103f936600461182b565b610c6a565b34801561040a57600080fd5b5061021d610419366004611c93565b610d16565b34801561042a57600080fd5b506101ba67016345785d8a000081565b34801561044657600080fd5b5061021d61045536600461175d565b610d82565b34801561046657600080fd5b5061021d610475366004611aca565b610ddd565b34801561048657600080fd5b506101ed610495366004611cc6565b600160209081526000928352604080842090915290825290205460ff1681565b3480156104c157600080fd5b506101ba6107e681565b3480156104d757600080fd5b5061021d6104e6366004611cf0565b610e1a565b3480156104f757600080fd5b5061021d610506366004611a9f565b611011565b34801561051757600080fd5b506101ba600a81565b60006301ffc9a760e01b6001600160e01b0319831614806105515750636cdb3d1360e11b6001600160e01b03198316145b8061056c57506303a24d0760e21b6001600160e01b03198316145b92915050565b6002546001600160a01b031633146105a55760405162461bcd60e51b815260040161059c90611d54565b60405180910390fd5b6105b1600583836116a8565b505050565b6060600580546105c590611d89565b80601f01602080910402602001604051908101604052809291908181526020018280546105f190611d89565b801561063e5780601f106106135761010080835404028352916020019161063e565b820191906000526020600020905b81548152906001019060200180831161062157829003601f168201915b50505050509050919050565b82518251811461066c5760405162461bcd60e51b815260040161059c90611dc4565b336001600160a01b03871614806106a657506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b6106e35760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161059c565b60005b818110156107b857600085828151811061070257610702611ded565b60200260200101519050600085838151811061072057610720611ded565b60200260200101519050806000808b6001600160a01b03166001600160a01b031681526020019081526020016000206000848152602001908152602001600020600082825461076f9190611e19565b90915550506001600160a01b038816600090815260208181526040808320858452909152812080548392906107a5908490611e30565b9091555050600190920191506106e69050565b50846001600160a01b0316866001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610808929190611e48565b60405180910390a46001600160a01b0385163b156108a95760405163bc197c8160e01b808252906001600160a01b0387169063bc197c81906108569033908b908a908a908a90600401611e76565b6020604051808303816000875af1158015610875573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108999190611ed4565b6001600160e01b031916146108b6565b6001600160a01b03851615155b6108d25760405162461bcd60e51b815260040161059c90611ef1565b505050505050565b6002546001600160a01b031633146109045760405162461bcd60e51b815260040161059c90611d54565b60405147906000906001600160a01b037f0000000000000000000000002214afafa4142ed82a6215b2ff41b7d28df072a9169083908381818185875af1925050503d8060008114610971576040519150601f19603f3d011682016040523d82523d6000602084013e610976565b606091505b505090508061099857604051631d42c86760e21b815260040160405180910390fd5b5050565b6002546001600160a01b031633146109c65760405162461bcd60e51b815260040161059c90611d54565b6004805460ff1916911515919091179055565b815181516060919081146109ff5760405162461bcd60e51b815260040161059c90611dc4565b83516001600160401b03811115610a1857610a186118b3565b604051908082528060200260200182016040528015610a41578160200160208202803683370190505b50915060005b81811015610adc57600080868381518110610a6457610a64611ded565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858381518110610aa057610aa0611ded565b6020026020010151815260200190815260200160002054838281518110610ac957610ac9611ded565b6020908102919091010152600101610a47565b505092915050565b6002546001600160a01b03163314610b0e5760405162461bcd60e51b815260040161059c90611d54565b610b1860006110a5565b565b60045460ff16610b3d57604051634065aaf160e11b815260040160405180910390fd5b3360009081526007602052604090205460ff8085169181168601161115610b775760405163843ce46b60e01b815260040160405180910390fd5b6000610b843360146110f7565b610b908560ff16611299565b604051602001610ba1929190611f1b565b6040516020818303038152906040528051906020012090506000610c1b8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507fecc16163ac12861fea1e20ad7afddc81dace83b49d2550ec1c181a87b7094d5b925086915061139e9050565b905080610c3b5760405163582f497d60e11b815260040160405180910390fd5b336000818152600760205260409020805460ff19811660ff9182168a018216179091556108d2919088166113b4565b60065460ff16610c8d57604051634065aaf160e11b815260040160405180910390fd5b801580610c9a5750600a81115b15610cb85760405163162908e360e11b815260040160405180910390fd5b67016345785d8a000081023414610ce257604051632635240760e21b815260040160405180910390fd5b6107e660035482011115610d0957604051632cdb04a160e21b815260040160405180910390fd5b610d1333826113b4565b50565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6002546001600160a01b03163314610dac5760405162461bcd60e51b815260040161059c90611d54565b6107e660035482011115610dd357604051632cdb04a160e21b815260040160405180910390fd5b61099882826113b4565b6002546001600160a01b03163314610e075760405162461bcd60e51b815260040161059c90611d54565b6006805460ff1916911515919091179055565b336001600160a01b0386161480610e5457506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b610e915760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161059c565b6001600160a01b03851660009081526020818152604080832086845290915281208054849290610ec2908490611e19565b90915550506001600160a01b03841660009081526020818152604080832086845290915281208054849290610ef8908490611e30565b909155505060408051848152602081018490526001600160a01b03808716929088169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b15610fe15760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190610f8e9033908a90899089908990600401611f57565b6020604051808303816000875af1158015610fad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd19190611ed4565b6001600160e01b03191614610fee565b6001600160a01b03841615155b61100a5760405162461bcd60e51b815260040161059c90611ef1565b5050505050565b6002546001600160a01b0316331461103b5760405162461bcd60e51b815260040161059c90611d54565b6001600160a01b0381166110a05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161059c565b610d13815b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606000611106836002611f9c565b611111906002611e30565b6001600160401b03811115611128576111286118b3565b6040519080825280601f01601f191660200182016040528015611152576020820181803683370190505b509050600360fc1b8160008151811061116d5761116d611ded565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061119c5761119c611ded565b60200101906001600160f81b031916908160001a90535060006111c0846002611f9c565b6111cb906001611e30565b90505b6001811115611243576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106111ff576111ff611ded565b1a60f81b82828151811061121557611215611ded565b60200101906001600160f81b031916908160001a90535060049490941c9361123c81611fbb565b90506111ce565b5083156112925760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161059c565b9392505050565b6060816112bd5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156112e757806112d181611fd2565b91506112e09050600a83612003565b91506112c1565b6000816001600160401b03811115611301576113016118b3565b6040519080825280601f01601f19166020018201604052801561132b576020820181803683370190505b5090505b841561139657611340600183611e19565b915061134d600a86612017565b611358906030611e30565b60f81b81838151811061136d5761136d611ded565b60200101906001600160f81b031916908160001a90535061138f600a86612003565b945061132f565b949350505050565b6000826113ab85846114bd565b14949350505050565b6000816001600160401b038111156113ce576113ce6118b3565b6040519080825280602002602001820160405280156113f7578160200160208202803683370190505b5090506000826001600160401b03811115611414576114146118b3565b60405190808252806020026020018201604052801561143d578160200160208202803683370190505b506003805485810190915590915060005b848110156114a15780820160010184828151811061146e5761146e611ded565b602002602001018181525050600183828151811061148e5761148e611ded565b602090810291909101015260010161144e565b5061100a85848460405180602001604052806000815250611531565b600081815b84518110156115295760008582815181106114df576114df611ded565b602002602001015190508083116115055760008381526020829052604090209250611516565b600081815260208490526040902092505b508061152181611fd2565b9150506114c2565b509392505050565b8251825181146115535760405162461bcd60e51b815260040161059c90611dc4565b60005b818110156115e25783818151811061157057611570611ded565b6020026020010151600080886001600160a01b03166001600160a01b0316815260200190815260200160002060008784815181106115b0576115b0611ded565b6020026020010151815260200190815260200160002060008282546115d59190611e30565b9091555050600101611556565b50846001600160a01b031660006001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611633929190611e48565b60405180910390a46001600160a01b0385163b156116825760405163bc197c8160e01b808252906001600160a01b0387169063bc197c8190610f8e9033906000908a908a908a90600401611e76565b6001600160a01b03851661100a5760405162461bcd60e51b815260040161059c90611ef1565b8280546116b490611d89565b90600052602060002090601f0160209004810192826116d6576000855561171c565b82601f106116ef5782800160ff1982351617855561171c565b8280016001018555821561171c579182015b8281111561171c578235825591602001919060010190611701565b5061172892915061172c565b5090565b5b80821115611728576000815560010161172d565b80356001600160a01b038116811461175857600080fd5b919050565b6000806040838503121561177057600080fd5b61177983611741565b946020939093013593505050565b6001600160e01b031981168114610d1357600080fd5b6000602082840312156117af57600080fd5b813561129281611787565b600080602083850312156117cd57600080fd5b82356001600160401b03808211156117e457600080fd5b818501915085601f8301126117f857600080fd5b81358181111561180757600080fd5b86602082850101111561181957600080fd5b60209290920196919550909350505050565b60006020828403121561183d57600080fd5b5035919050565b60005b8381101561185f578181015183820152602001611847565b8381111561186e576000848401525b50505050565b6000815180845261188c816020860160208601611844565b601f01601f19169290920160200192915050565b6020815260006112926020830184611874565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156118f1576118f16118b3565b604052919050565b60006001600160401b03821115611912576119126118b3565b5060051b60200190565b600082601f83011261192d57600080fd5b8135602061194261193d836118f9565b6118c9565b82815260059290921b8401810191818101908684111561196157600080fd5b8286015b8481101561197c5780358352918301918301611965565b509695505050505050565b600082601f83011261199857600080fd5b81356001600160401b038111156119b1576119b16118b3565b6119c4601f8201601f19166020016118c9565b8181528460208386010111156119d957600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215611a0e57600080fd5b611a1786611741565b9450611a2560208701611741565b935060408601356001600160401b0380821115611a4157600080fd5b611a4d89838a0161191c565b94506060880135915080821115611a6357600080fd5b611a6f89838a0161191c565b93506080880135915080821115611a8557600080fd5b50611a9288828901611987565b9150509295509295909350565b600060208284031215611ab157600080fd5b61129282611741565b8035801515811461175857600080fd5b600060208284031215611adc57600080fd5b61129282611aba565b60008060408385031215611af857600080fd5b82356001600160401b0380821115611b0f57600080fd5b818501915085601f830112611b2357600080fd5b81356020611b3361193d836118f9565b82815260059290921b84018101918181019089841115611b5257600080fd5b948201945b83861015611b7757611b6886611741565b82529482019490820190611b57565b96505086013592505080821115611b8d57600080fd5b50611b9a8582860161191c565b9150509250929050565b600081518084526020808501945080840160005b83811015611bd457815187529582019590820190600101611bb8565b509495945050505050565b6020815260006112926020830184611ba4565b803560ff8116811461175857600080fd5b60008060008060608587031215611c1957600080fd5b611c2285611bf2565b9350611c3060208601611bf2565b925060408501356001600160401b0380821115611c4c57600080fd5b818701915087601f830112611c6057600080fd5b813581811115611c6f57600080fd5b8860208260051b8501011115611c8457600080fd5b95989497505060200194505050565b60008060408385031215611ca657600080fd5b611caf83611741565b9150611cbd60208401611aba565b90509250929050565b60008060408385031215611cd957600080fd5b611ce283611741565b9150611cbd60208401611741565b600080600080600060a08688031215611d0857600080fd5b611d1186611741565b9450611d1f60208701611741565b9350604086013592506060860135915060808601356001600160401b03811115611d4857600080fd5b611a9288828901611987565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680611d9d57607f821691505b60208210811415611dbe57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600f908201526e0988a9c8ea890be9a92a69a82a8869608b1b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082821015611e2b57611e2b611e03565b500390565b60008219821115611e4357611e43611e03565b500190565b604081526000611e5b6040830185611ba4565b8281036020840152611e6d8185611ba4565b95945050505050565b6001600160a01b0386811682528516602082015260a060408201819052600090611ea290830186611ba4565b8281036060840152611eb48186611ba4565b90508281036080840152611ec88185611874565b98975050505050505050565b600060208284031215611ee657600080fd5b815161129281611787565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b60008351611f2d818460208801611844565b601d60f91b9083019081528351611f4b816001840160208801611844565b01600101949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611f9190830184611874565b979650505050505050565b6000816000190483118215151615611fb657611fb6611e03565b500290565b600081611fca57611fca611e03565b506000190190565b6000600019821415611fe657611fe6611e03565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261201257612012611fed565b500490565b60008261202657612026611fed565b50069056fea26469706673582212203e8ff78f1627532a08c6f52d55c01051e9515e565bec3937a5fc8bc03c57bf1364736f6c634300080c0033

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

0000000000000000000000002214afafa4142ed82a6215b2ff41b7d28df072a90000000000000000000000000000000000000000000000000000000000000060ecc16163ac12861fea1e20ad7afddc81dace83b49d2550ec1c181a87b7094d5b000000000000000000000000000000000000000000000000000000000000004168747470733a2f2f7476707836396639306b2e657865637574652d6170692e75732d656173742d312e616d617a6f6e6177732e636f6d2f746f6b656e2f7b69647d00000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : payoutAddress (address): 0x2214AFafa4142ED82A6215b2Ff41b7d28Df072a9
Arg [1] : __uri (string): https://tvpx69f90k.execute-api.us-east-1.amazonaws.com/token/{id}
Arg [2] : _merkleRoot (bytes32): 0xecc16163ac12861fea1e20ad7afddc81dace83b49d2550ec1c181a87b7094d5b

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000002214afafa4142ed82a6215b2ff41b7d28df072a9
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [2] : ecc16163ac12861fea1e20ad7afddc81dace83b49d2550ec1c181a87b7094d5b
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000041
Arg [4] : 68747470733a2f2f7476707836396639306b2e657865637574652d6170692e75
Arg [5] : 732d656173742d312e616d617a6f6e6177732e636f6d2f746f6b656e2f7b6964
Arg [6] : 7d00000000000000000000000000000000000000000000000000000000000000


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.