ETH Price: $3,248.40 (+2.62%)
Gas: 2 Gwei

Token

Ely Genesis Collection (ELYGENESIS)
 

Overview

Max Total Supply

500 ELYGENESIS

Holders

268

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

0xa5440fe4889b90a100871e9b1e74b532afaa3cf0
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:
ElyGenesisCollection

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : ElyGenesisCollection.sol
// SPDX-License-Identifier: APGL-3.0-only
pragma solidity >=0.8.0;

import {Ownable} from "./Ownable.sol";
import {ERC1155} from "./solmate/tokens/ERC1155.sol";

/// @title ElyGenesisCollection
/// @notice Minting contract for Ely's Genesis Collection (https://twitter.com/ratkingnft).
/// @author 0xMetas (https://twitter.com/0xMetas)
contract ElyGenesisCollection is ERC1155, Ownable {
    //////////////////////
    /// External State ///
    //////////////////////

    /// @notice The name of the contract.
    /// @dev EIP-1155 doesn't define `name()` so that the metadata JSON returned by `uri` is
    /// the definitive name, but it's provided for compatibility with existing front-ends.
    string public constant name = "Ely Genesis Collection"; // solhint-disable-line const-name-snakecase

    /// @notice The symbol of the contract.
    /// @dev EIP-1155 doesn't define `symbol()` because it isn't a "globally useful piece of
    /// data", but, again, it's provided for compatibility with existing front-ends.
    string public constant symbol = "ELYGENESIS"; // solhint-disable-line const-name-snakecase

    /// @notice The price of each token.
    uint256 public constant PRICE = 0.05 ether;

    /// @notice The maximum supply of all tokens.
    uint256 public constant MAX_SUPPLY = 500;

    /// @notice The maximum supply of each token.
    uint256 public constant MAX_SUPPLY_PER_ID = 100;

    /// @notice True if the metadata (URI) can no longer be modified.
    bool public metadataFrozen = false;

    /// @notice The maximum number of tokens you can purchase in a single transaction.
    uint256 public transactionLimit = 3;

    /// @notice True if the sale is open.
    bool public purchaseable = false;

    /// @notice The total supply of all tokens.
    /// @dev EIP-1155 requires enumeration off-chain, but the contract provides `totalSupplyAll`
    /// for convenience, and compatibility with marketplaces and other front-ends.
    uint256 public totalSupplyAll = 0;

    /// @notice The total supply of an individual token.
    /// @dev See `totalSupplyAll`.
    uint8[5] public totalSupply;

    //////////////////////
    /// Internal State ///
    //////////////////////

    /// @dev The ids available to mint. This array is used when generating a random index for the mint.
    /// Ids are removed from this array when their max amount has been minted.
    uint8[] private availableIds = [0, 1, 2, 3, 4];

    /// @dev The 'dynamic' length of the `availableIds` array. Since it's a static array, it's actual
    /// length cannot be modified, so this variable is used instead.
    uint8 private availableIdsLength = 5;

    /// @dev The base of the generated URI returned by `uri(uint256)`.
    string private baseUri;

    //////////////
    /// Errors ///
    //////////////

    error WithdrawFail();
    error FrozenMetadata();
    error NotPurchaseable();
    error SoldOut();
    error InsufficientValue();
    error InvalidPurchaseAmount();
    error ExternalAccountOnly();

    //////////////
    /// Events ///
    //////////////

    event PermanentURI(string uri, uint256 indexed id);
    event Purchaseable(bool state);
    event TransactionLimit(uint256 previousLimit, uint256 newLimit);

    // solhint-disable-next-line no-empty-blocks
    constructor() {}

    /// @notice Purchase `amount` number of tokens.
    /// @param amount The number of tokens to purchase.
    function purchase(uint256 amount) public payable {
        if (!purchaseable) revert NotPurchaseable();
        if (amount + totalSupplyAll > MAX_SUPPLY) revert SoldOut();
        if (msg.value != amount * PRICE) revert InsufficientValue();
        if (msg.sender.code.length != 0) revert ExternalAccountOnly();
        if (amount > transactionLimit || amount < 1)
            revert InvalidPurchaseAmount();

        for (uint256 i; i < amount; ) {
            uint256 idx = getPseudorandom() % availableIdsLength;
            uint256 id = availableIds[idx];

            _mint(msg.sender, id, 1, "");

            // `totalSupplyAll` needs to be incremented in the loop to provide a unique nonce for
            // each call to `getPseudorandom()`.
            unchecked {
                ++i;
                ++totalSupplyAll;
                ++totalSupply[id];
            }

            // Remove the token from `availableIds` if it's reached the supply limit
            if (totalSupply[id] == MAX_SUPPLY_PER_ID) removeIndex(idx);
        }
    }

    /// @notice Returns a deterministically generated URI for the given token ID.
    /// @return string
    function uri(uint256 id) public view override returns (string memory) {
        return
            bytes(baseUri).length > 0
                ? string(abi.encodePacked(baseUri, toString(id), ".json"))
                : "";
    }

    //////////////////////
    /// Administration ///
    //////////////////////

    /// @notice Prevents any future changes to the URI of any token ID.
    /// @dev Emits a `PermanentURI(string, uint256 indexed)` event for each token ID with the permanent URI.
    function freezeMetadata() public onlyOwner {
        metadataFrozen = true;
        for (uint256 i = 0; i < 5; ++i) {
            emit PermanentURI(uri(i), i);
        }
    }

    /// @notice Updates the base of the generated URI returned by `uri(uint256)`.
    /// @dev The URI event isn't emitted because there is no applicable ID to emit the event for. The
    /// baseURI given here applies to all token IDs.
    function setBaseUri(string memory newBaseUri) public onlyOwner {
        if (metadataFrozen == true) revert FrozenMetadata();
        baseUri = newBaseUri;
    }

    /// @notice Sets the current state of the sale. `false` will disable sale, `true` will enable it.
    function setPurchaseable(bool state) public onlyOwner {
        purchaseable = state;
        emit Purchaseable(purchaseable);
    }

    /// @notice Withdraws entire balance of this contract to the `owner` address.
    function withdrawEth() public onlyOwner {
        (bool success, ) = owner.call{value: address(this).balance}("");
        if (!success) revert WithdrawFail();
    }

    /// @notice Sets the maximum purchase amount per transaction.
    function setTransactionLimit(uint256 newTransactionLimit) public onlyOwner {
        emit TransactionLimit(transactionLimit, newTransactionLimit);
        transactionLimit = newTransactionLimit;
    }

    ////////////////
    /// Internal ///
    ////////////////

    /// @dev Generates a pseudorandom number to use when determining an ID for purchase. True randomness isn't
    /// necessary because IDs have no rarity (no ID is inherently more valuable than another).
    function getPseudorandom() internal view returns (uint256) {
        // solhint-disable not-rely-on-time
        unchecked {
            return
                uint256(
                    keccak256(
                        abi.encodePacked(
                            block.timestamp,
                            msg.sender,
                            totalSupplyAll
                        )
                    )
                );
        }
        // solhint-enable not-rely-on-time
    }

    /// @dev Removes the specified index from the `availableIds` array. This function is used when the max supply
    /// of the token ID at `index` has already been purchased. The index isn't checked because useage is internal.
    function removeIndex(uint256 index) internal {
        availableIds[index] = availableIds[availableIdsLength - 1];
        availableIdsLength--;
    }

    /// @dev Taken from OpenZeppelin's implementation
    /// (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Strings.sol)
    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);
    }
}

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

/// @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 LOGIC
    //////////////////////////////////////////////////////////////*/

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

File 3 of 3 : Ownable.sol
// SPDX-License-Identifier: Unlicense
pragma solidity >=0.8.0;

/// @title Ownable
/// @notice Provides a modifier to authenticate contract owner.
/// @dev The default owner is the contract deployer, but this can be modified
/// afterwards using `transferOwnership`. There is no check when transferring
/// ownership so ensure you don't use `address(0)` unintentionally. The modifier
/// to guard functions with is `onlyOwner`.
/// @author 0xMetas
/// @author Based on OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol)
abstract contract Ownable {
    /// @notice This emits when the owner changes.
    /// @param previousOwner The address of the previous owner.
    /// @param newOwner The address of the new owner.
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    /// @dev Error thrown when `onlyOwner` is called by an address other than `owner`.
    error NotOwner();

    /// @notice The address of the owner.
    address public owner;

    /// @dev Sets the value of `owner` to `msg.sender`.
    constructor() {
        owner = msg.sender;
    }

    /// @dev Reverts if `msg.sender` is not `owner`.
    modifier onlyOwner() {
        if (msg.sender != owner) revert NotOwner();
        _;
    }

    /// @notice Sets the `owner` address to a new one.
    /// @dev Use `address(0)` to renounce ownership.
    /// @param newOwner The address of the new owner of the contract.
    function transferOwnership(address newOwner) external onlyOwner {
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ExternalAccountOnly","type":"error"},{"inputs":[],"name":"FrozenMetadata","type":"error"},{"inputs":[],"name":"InsufficientValue","type":"error"},{"inputs":[],"name":"InvalidPurchaseAmount","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"NotPurchaseable","type":"error"},{"inputs":[],"name":"SoldOut","type":"error"},{"inputs":[],"name":"WithdrawFail","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":false,"internalType":"string","name":"uri","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"PermanentURI","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"state","type":"bool"}],"name":"Purchaseable","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"previousLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"TransactionLimit","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_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_SUPPLY_PER_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"freezeMetadata","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":"metadataFrozen","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":"amount","type":"uint256"}],"name":"purchase","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"purchaseable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"string","name":"newBaseUri","type":"string"}],"name":"setBaseUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setPurchaseable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTransactionLimit","type":"uint256"}],"name":"setTransactionLimit","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":"","type":"uint256"}],"name":"totalSupply","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupplyAll","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transactionLimit","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":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6002805460ff60a01b1916815560038080556004805460ff19168155600060058181556101206040526080918252600160a05260c09490945260e0929092526101005262000051916007919062000085565b506008805460ff191660051790553480156200006c57600080fd5b50600280546001600160a01b0319163317905562000149565b82805482825590600052602060002090601f01602090048101928215620001205791602002820160005b83821115620000ef57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302620000af565b80156200011e5782816101000a81549060ff0219169055600101602081600001049283019260010302620000ef565b505b506200012e92915062000132565b5090565b5b808211156200012e576000815560010162000133565b611e3a80620001596000396000f3fe6080604052600436106101805760003560e01c8063a0ef91df116100d1578063e985e9c51161008a578063f242432a11610064578063f242432a146104c5578063f2fde38b146104e5578063f62b85f014610505578063fb3cc6c21461051f57600080fd5b8063e985e9c514610461578063efef39a11461049c578063f19605d6146104af57600080fd5b8063a0ef91df146103ba578063a22cb465146103cf578063b42394f1146103ef578063bd85b03914610405578063cbb2e55e14610437578063d111515d1461044c57600080fd5b80634e1273f41161013e5780638da5cb5b116101185780638da5cb5b1461030c57806395d89b41146103445780639f3b298c1461037a578063a0bcfc7f1461039a57600080fd5b80634e1273f4146102a457806364bfa546146102d15780638d859f3e146102f157600080fd5b8062fdd58e1461018557806301ffc9a7146101cd57806306fdde03146101fd5780630e89341c1461024c5780632eb2c2d61461026c57806332cb6b0c1461028e575b600080fd5b34801561019157600080fd5b506101ba6101a036600461180b565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b3480156101d957600080fd5b506101ed6101e8366004611917565b610540565b60405190151581526020016101c4565b34801561020957600080fd5b5061023f6040518060400160405280601681526020017522b63c9023b2b732b9b4b99021b7b63632b1ba34b7b760511b81525081565b6040516101c49190611bcc565b34801561025857600080fd5b5061023f61026736600461199a565b610592565b34801561027857600080fd5b5061028c6102873660046116d2565b6105f0565b005b34801561029a57600080fd5b506101ba6101f481565b3480156102b057600080fd5b506102c46102bf366004611835565b6108b6565b6040516101c49190611b94565b3480156102dd57600080fd5b5061028c6102ec36600461199a565b6109e4565b3480156102fd57600080fd5b506101ba66b1a2bc2ec5000081565b34801561031857600080fd5b5060025461032c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b34801561035057600080fd5b5061023f6040518060400160405280600a815260200169454c5947454e4553495360b01b81525081565b34801561038657600080fd5b5061028c6103953660046118fc565b610a50565b3480156103a657600080fd5b5061028c6103b5366004611951565b610ac8565b3480156103c657600080fd5b5061028c610b3a565b3480156103db57600080fd5b5061028c6103ea3660046117e1565b610bdb565b3480156103fb57600080fd5b506101ba60055481565b34801561041157600080fd5b5061042561042036600461199a565b610c47565b60405160ff90911681526020016101c4565b34801561044357600080fd5b506101ba606481565b34801561045857600080fd5b5061028c610c71565b34801561046d57600080fd5b506101ed61047c36600461169f565b600160209081526000928352604080842090915290825290205460ff1681565b61028c6104aa36600461199a565b610d0b565b3480156104bb57600080fd5b506101ba60035481565b3480156104d157600080fd5b5061028c6104e036600461177c565b610f2f565b3480156104f157600080fd5b5061028c610500366004611684565b611135565b34801561051157600080fd5b506004546101ed9060ff1681565b34801561052b57600080fd5b506002546101ed90600160a01b900460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806105715750636cdb3d1360e11b6001600160e01b03198316145b8061058c57506303a24d0760e21b6001600160e01b03198316145b92915050565b60606000600980546105a390611d2c565b9050116105bf576040518060200160405280600081525061058c565b60096105ca836111bc565b6040516020016105db929190611a36565b60405160208183030381529060405292915050565b8251825181146106395760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b60448201526064015b60405180910390fd5b336001600160a01b038716148061067357506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b6106b05760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610630565b60005b818110156107855760008582815181106106cf576106cf611dc2565b6020026020010151905060008583815181106106ed576106ed611dc2565b60200260200101519050806000808b6001600160a01b03166001600160a01b031681526020019081526020016000206000848152602001908152602001600020600082825461073c9190611ca9565b90915550506001600160a01b03881660009081526020818152604080832085845290915281208054839290610772908490611c5e565b9091555050600190920191506106b39050565b50846001600160a01b0316866001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516107d5929190611ba7565b60405180910390a46001600160a01b0385163b156108855760405163bc197c8160e01b808252906001600160a01b0387169063bc197c81906108239033908b908a908a908a90600401611af1565b602060405180830381600087803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108759190611934565b6001600160e01b03191614610892565b6001600160a01b03851615155b6108ae5760405162461bcd60e51b815260040161063090611bdf565b505050505050565b815181516060919081146108fe5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b6044820152606401610630565b835167ffffffffffffffff81111561091857610918611dd8565b604051908082528060200260200182016040528015610941578160200160208202803683370190505b50915060005b818110156109dc5760008086838151811061096457610964611dc2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008583815181106109a0576109a0611dc2565b60200260200101518152602001908152602001600020548382815181106109c9576109c9611dc2565b6020908102919091010152600101610947565b505092915050565b6002546001600160a01b03163314610a0f576040516330cd747160e01b815260040160405180910390fd5b60035460408051918252602082018390527f8d58ccd5206002488239707fd642ac4a62a6d15f7b4f99713b4a0fbd55da416e910160405180910390a1600355565b6002546001600160a01b03163314610a7b576040516330cd747160e01b815260040160405180910390fd5b6004805460ff191682151590811790915560405160ff909116151581527f0ec2dd5d69dfe2cecabed945dd5b31e43c736304d8de05c6e456f27f5796c2f29060200160405180910390a150565b6002546001600160a01b03163314610af3576040516330cd747160e01b815260040160405180910390fd5b600254600160a01b900460ff16151560011415610b23576040516311e1788760e01b815260040160405180910390fd5b8051610b369060099060208401906114ce565b5050565b6002546001600160a01b03163314610b65576040516330cd747160e01b815260040160405180910390fd5b6002546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610bb2576040519150601f19603f3d011682016040523d82523d6000602084013e610bb7565b606091505b5050905080610bd85760405162c0f29960e01b815260040160405180910390fd5b50565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60068160058110610c5757600080fd5b60209182820401919006915054906101000a900460ff1681565b6002546001600160a01b03163314610c9c576040516330cd747160e01b815260040160405180910390fd5b6002805460ff60a01b1916600160a01b17905560005b6005811015610bd857807fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207610ce683610592565b604051610cf39190611bcc565b60405180910390a2610d0481611d67565b9050610cb2565b60045460ff16610d2e57604051633a64231960e21b815260040160405180910390fd5b6101f460055482610d3f9190611c5e565b1115610d5e576040516352df9fe560e01b815260040160405180910390fd5b610d6f66b1a2bc2ec5000082611c8a565b3414610d8e5760405163044044a560e21b815260040160405180910390fd5b333b15610dae5760405163feed781d60e01b815260040160405180910390fd5b600354811180610dbe5750600181105b15610ddc57604051638e4353d360e01b815260040160405180910390fd5b60005b81811015610b365760085460009060ff16610e3e60055460408051426020808301919091523360601b6bffffffffffffffffffffffff191682840152605480830194909452825180830390940184526074909101909152815191012090565b610e489190611d82565b9050600060078281548110610e5f57610e5f611dc2565b90600052602060002090602091828204019190069054906101000a900460ff1660ff169050610ea033826001604051806020016040528060008152506112c2565b60058054600190810182559093019260069082908110610ec257610ec2611dc2565b60208104919091018054601f9092166101000a60ff8181021984169382900481166001011602919091179055606460068260058110610f0357610f03611dc2565b602081049091015460ff601f9092166101000a9004161415610f2857610f2882611419565b5050610ddf565b336001600160a01b0386161480610f6957506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b610fa65760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610630565b6001600160a01b03851660009081526020818152604080832086845290915281208054849290610fd7908490611ca9565b90915550506001600160a01b0384166000908152602081815260408083208684529091528120805484929061100d908490611c5e565b909155505060408051848152602081018490526001600160a01b03808716929088169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b156111055760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e61906110a39033908a90899089908990600401611b4f565b602060405180830381600087803b1580156110bd57600080fd5b505af11580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f59190611934565b6001600160e01b03191614611112565b6001600160a01b03841615155b61112e5760405162461bcd60e51b815260040161063090611bdf565b5050505050565b6002546001600160a01b03163314611160576040516330cd747160e01b815260040160405180910390fd5b6002546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6060816111e05750506040805180820190915260018152600360fc1b602082015290565b8160005b811561120a57806111f481611d67565b91506112039050600a83611c76565b91506111e4565b60008167ffffffffffffffff81111561122557611225611dd8565b6040519080825280601f01601f19166020018201604052801561124f576020820181803683370190505b5090505b84156112ba57611264600183611ca9565b9150611271600a86611d82565b61127c906030611c5e565b60f81b81838151811061129157611291611dc2565b60200101906001600160f81b031916908160001a9053506112b3600a86611c76565b9450611253565b949350505050565b6001600160a01b038416600090815260208181526040808320868452909152812080548492906112f3908490611c5e565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b156113ea5760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190611388903390600090899089908990600401611b4f565b602060405180830381600087803b1580156113a257600080fd5b505af11580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da9190611934565b6001600160e01b031916146113f7565b6001600160a01b03841615155b6114135760405162461bcd60e51b815260040161063090611bdf565b50505050565b60085460079061142e9060019060ff16611cc0565b60ff168154811061144157611441611dc2565b90600052602060002090602091828204019190069054906101000a900460ff166007828154811061147457611474611dc2565b6000918252602080832090820401805460ff948516601f9093166101000a92830292850219169190911790556008805490921691906114b283611d0f565b91906101000a81548160ff021916908360ff1602179055505050565b8280546114da90611d2c565b90600052602060002090601f0160209004810192826114fc5760008555611542565b82601f1061151557805160ff1916838001178555611542565b82800160010185558215611542579182015b82811115611542578251825591602001919060010190611527565b5061154e929150611552565b5090565b5b8082111561154e5760008155600101611553565b600067ffffffffffffffff83111561158157611581611dd8565b611594601f8401601f1916602001611c09565b90508281528383830111156115a857600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b03811681146115d657600080fd5b919050565b600082601f8301126115ec57600080fd5b813560206116016115fc83611c3a565b611c09565b80838252828201915082860187848660051b890101111561162157600080fd5b60005b8581101561164057813584529284019290840190600101611624565b5090979650505050505050565b803580151581146115d657600080fd5b600082601f83011261166e57600080fd5b61167d83833560208501611567565b9392505050565b60006020828403121561169657600080fd5b61167d826115bf565b600080604083850312156116b257600080fd5b6116bb836115bf565b91506116c9602084016115bf565b90509250929050565b600080600080600060a086880312156116ea57600080fd5b6116f3866115bf565b9450611701602087016115bf565b9350604086013567ffffffffffffffff8082111561171e57600080fd5b61172a89838a016115db565b9450606088013591508082111561174057600080fd5b61174c89838a016115db565b9350608088013591508082111561176257600080fd5b5061176f8882890161165d565b9150509295509295909350565b600080600080600060a0868803121561179457600080fd5b61179d866115bf565b94506117ab602087016115bf565b93506040860135925060608601359150608086013567ffffffffffffffff8111156117d557600080fd5b61176f8882890161165d565b600080604083850312156117f457600080fd5b6117fd836115bf565b91506116c96020840161164d565b6000806040838503121561181e57600080fd5b611827836115bf565b946020939093013593505050565b6000806040838503121561184857600080fd5b823567ffffffffffffffff8082111561186057600080fd5b818501915085601f83011261187457600080fd5b813560206118846115fc83611c3a565b8083825282820191508286018a848660051b89010111156118a457600080fd5b600096505b848710156118ce576118ba816115bf565b8352600196909601959183019183016118a9565b50965050860135925050808211156118e557600080fd5b506118f2858286016115db565b9150509250929050565b60006020828403121561190e57600080fd5b61167d8261164d565b60006020828403121561192957600080fd5b813561167d81611dee565b60006020828403121561194657600080fd5b815161167d81611dee565b60006020828403121561196357600080fd5b813567ffffffffffffffff81111561197a57600080fd5b8201601f8101841361198b57600080fd5b6112ba84823560208401611567565b6000602082840312156119ac57600080fd5b5035919050565b600081518084526020808501945080840160005b838110156119e3578151875295820195908201906001016119c7565b509495945050505050565b60008151808452611a06816020860160208601611ce3565b601f01601f19169290920160200192915050565b60008151611a2c818560208601611ce3565b9290920192915050565b600080845481600182811c915080831680611a5257607f831692505b6020808410821415611a7257634e487b7160e01b86526022600452602486fd5b818015611a865760018114611a9757611ac4565b60ff19861689528489019650611ac4565b60008b81526020902060005b86811015611abc5781548b820152908501908301611aa3565b505084890196505b505050505050611ae8611ad78286611a1a565b64173539b7b760d91b815260050190565b95945050505050565b6001600160a01b0386811682528516602082015260a060408201819052600090611b1d908301866119b3565b8281036060840152611b2f81866119b3565b90508281036080840152611b4381856119ee565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611b89908301846119ee565b979650505050505050565b60208152600061167d60208301846119b3565b604081526000611bba60408301856119b3565b8281036020840152611ae881856119b3565b60208152600061167d60208301846119ee565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c3257611c32611dd8565b604052919050565b600067ffffffffffffffff821115611c5457611c54611dd8565b5060051b60200190565b60008219821115611c7157611c71611d96565b500190565b600082611c8557611c85611dac565b500490565b6000816000190483118215151615611ca457611ca4611d96565b500290565b600082821015611cbb57611cbb611d96565b500390565b600060ff821660ff841680821015611cda57611cda611d96565b90039392505050565b60005b83811015611cfe578181015183820152602001611ce6565b838111156114135750506000910152565b600060ff821680611d2257611d22611d96565b6000190192915050565b600181811c90821680611d4057607f821691505b60208210811415611d6157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611d7b57611d7b611d96565b5060010190565b600082611d9157611d91611dac565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610bd857600080fdfea2646970667358221220c533d9b8124f713823343c563b58b6b39969ff1a7c019ecaf786872b11c9af6f64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101805760003560e01c8063a0ef91df116100d1578063e985e9c51161008a578063f242432a11610064578063f242432a146104c5578063f2fde38b146104e5578063f62b85f014610505578063fb3cc6c21461051f57600080fd5b8063e985e9c514610461578063efef39a11461049c578063f19605d6146104af57600080fd5b8063a0ef91df146103ba578063a22cb465146103cf578063b42394f1146103ef578063bd85b03914610405578063cbb2e55e14610437578063d111515d1461044c57600080fd5b80634e1273f41161013e5780638da5cb5b116101185780638da5cb5b1461030c57806395d89b41146103445780639f3b298c1461037a578063a0bcfc7f1461039a57600080fd5b80634e1273f4146102a457806364bfa546146102d15780638d859f3e146102f157600080fd5b8062fdd58e1461018557806301ffc9a7146101cd57806306fdde03146101fd5780630e89341c1461024c5780632eb2c2d61461026c57806332cb6b0c1461028e575b600080fd5b34801561019157600080fd5b506101ba6101a036600461180b565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b3480156101d957600080fd5b506101ed6101e8366004611917565b610540565b60405190151581526020016101c4565b34801561020957600080fd5b5061023f6040518060400160405280601681526020017522b63c9023b2b732b9b4b99021b7b63632b1ba34b7b760511b81525081565b6040516101c49190611bcc565b34801561025857600080fd5b5061023f61026736600461199a565b610592565b34801561027857600080fd5b5061028c6102873660046116d2565b6105f0565b005b34801561029a57600080fd5b506101ba6101f481565b3480156102b057600080fd5b506102c46102bf366004611835565b6108b6565b6040516101c49190611b94565b3480156102dd57600080fd5b5061028c6102ec36600461199a565b6109e4565b3480156102fd57600080fd5b506101ba66b1a2bc2ec5000081565b34801561031857600080fd5b5060025461032c906001600160a01b031681565b6040516001600160a01b0390911681526020016101c4565b34801561035057600080fd5b5061023f6040518060400160405280600a815260200169454c5947454e4553495360b01b81525081565b34801561038657600080fd5b5061028c6103953660046118fc565b610a50565b3480156103a657600080fd5b5061028c6103b5366004611951565b610ac8565b3480156103c657600080fd5b5061028c610b3a565b3480156103db57600080fd5b5061028c6103ea3660046117e1565b610bdb565b3480156103fb57600080fd5b506101ba60055481565b34801561041157600080fd5b5061042561042036600461199a565b610c47565b60405160ff90911681526020016101c4565b34801561044357600080fd5b506101ba606481565b34801561045857600080fd5b5061028c610c71565b34801561046d57600080fd5b506101ed61047c36600461169f565b600160209081526000928352604080842090915290825290205460ff1681565b61028c6104aa36600461199a565b610d0b565b3480156104bb57600080fd5b506101ba60035481565b3480156104d157600080fd5b5061028c6104e036600461177c565b610f2f565b3480156104f157600080fd5b5061028c610500366004611684565b611135565b34801561051157600080fd5b506004546101ed9060ff1681565b34801561052b57600080fd5b506002546101ed90600160a01b900460ff1681565b60006301ffc9a760e01b6001600160e01b0319831614806105715750636cdb3d1360e11b6001600160e01b03198316145b8061058c57506303a24d0760e21b6001600160e01b03198316145b92915050565b60606000600980546105a390611d2c565b9050116105bf576040518060200160405280600081525061058c565b60096105ca836111bc565b6040516020016105db929190611a36565b60405160208183030381529060405292915050565b8251825181146106395760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b60448201526064015b60405180910390fd5b336001600160a01b038716148061067357506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b6106b05760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610630565b60005b818110156107855760008582815181106106cf576106cf611dc2565b6020026020010151905060008583815181106106ed576106ed611dc2565b60200260200101519050806000808b6001600160a01b03166001600160a01b031681526020019081526020016000206000848152602001908152602001600020600082825461073c9190611ca9565b90915550506001600160a01b03881660009081526020818152604080832085845290915281208054839290610772908490611c5e565b9091555050600190920191506106b39050565b50846001600160a01b0316866001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516107d5929190611ba7565b60405180910390a46001600160a01b0385163b156108855760405163bc197c8160e01b808252906001600160a01b0387169063bc197c81906108239033908b908a908a908a90600401611af1565b602060405180830381600087803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108759190611934565b6001600160e01b03191614610892565b6001600160a01b03851615155b6108ae5760405162461bcd60e51b815260040161063090611bdf565b505050505050565b815181516060919081146108fe5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b6044820152606401610630565b835167ffffffffffffffff81111561091857610918611dd8565b604051908082528060200260200182016040528015610941578160200160208202803683370190505b50915060005b818110156109dc5760008086838151811061096457610964611dc2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008583815181106109a0576109a0611dc2565b60200260200101518152602001908152602001600020548382815181106109c9576109c9611dc2565b6020908102919091010152600101610947565b505092915050565b6002546001600160a01b03163314610a0f576040516330cd747160e01b815260040160405180910390fd5b60035460408051918252602082018390527f8d58ccd5206002488239707fd642ac4a62a6d15f7b4f99713b4a0fbd55da416e910160405180910390a1600355565b6002546001600160a01b03163314610a7b576040516330cd747160e01b815260040160405180910390fd5b6004805460ff191682151590811790915560405160ff909116151581527f0ec2dd5d69dfe2cecabed945dd5b31e43c736304d8de05c6e456f27f5796c2f29060200160405180910390a150565b6002546001600160a01b03163314610af3576040516330cd747160e01b815260040160405180910390fd5b600254600160a01b900460ff16151560011415610b23576040516311e1788760e01b815260040160405180910390fd5b8051610b369060099060208401906114ce565b5050565b6002546001600160a01b03163314610b65576040516330cd747160e01b815260040160405180910390fd5b6002546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610bb2576040519150601f19603f3d011682016040523d82523d6000602084013e610bb7565b606091505b5050905080610bd85760405162c0f29960e01b815260040160405180910390fd5b50565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60068160058110610c5757600080fd5b60209182820401919006915054906101000a900460ff1681565b6002546001600160a01b03163314610c9c576040516330cd747160e01b815260040160405180910390fd5b6002805460ff60a01b1916600160a01b17905560005b6005811015610bd857807fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207610ce683610592565b604051610cf39190611bcc565b60405180910390a2610d0481611d67565b9050610cb2565b60045460ff16610d2e57604051633a64231960e21b815260040160405180910390fd5b6101f460055482610d3f9190611c5e565b1115610d5e576040516352df9fe560e01b815260040160405180910390fd5b610d6f66b1a2bc2ec5000082611c8a565b3414610d8e5760405163044044a560e21b815260040160405180910390fd5b333b15610dae5760405163feed781d60e01b815260040160405180910390fd5b600354811180610dbe5750600181105b15610ddc57604051638e4353d360e01b815260040160405180910390fd5b60005b81811015610b365760085460009060ff16610e3e60055460408051426020808301919091523360601b6bffffffffffffffffffffffff191682840152605480830194909452825180830390940184526074909101909152815191012090565b610e489190611d82565b9050600060078281548110610e5f57610e5f611dc2565b90600052602060002090602091828204019190069054906101000a900460ff1660ff169050610ea033826001604051806020016040528060008152506112c2565b60058054600190810182559093019260069082908110610ec257610ec2611dc2565b60208104919091018054601f9092166101000a60ff8181021984169382900481166001011602919091179055606460068260058110610f0357610f03611dc2565b602081049091015460ff601f9092166101000a9004161415610f2857610f2882611419565b5050610ddf565b336001600160a01b0386161480610f6957506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b610fa65760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610630565b6001600160a01b03851660009081526020818152604080832086845290915281208054849290610fd7908490611ca9565b90915550506001600160a01b0384166000908152602081815260408083208684529091528120805484929061100d908490611c5e565b909155505060408051848152602081018490526001600160a01b03808716929088169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b156111055760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e61906110a39033908a90899089908990600401611b4f565b602060405180830381600087803b1580156110bd57600080fd5b505af11580156110d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f59190611934565b6001600160e01b03191614611112565b6001600160a01b03841615155b61112e5760405162461bcd60e51b815260040161063090611bdf565b5050505050565b6002546001600160a01b03163314611160576040516330cd747160e01b815260040160405180910390fd5b6002546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b6060816111e05750506040805180820190915260018152600360fc1b602082015290565b8160005b811561120a57806111f481611d67565b91506112039050600a83611c76565b91506111e4565b60008167ffffffffffffffff81111561122557611225611dd8565b6040519080825280601f01601f19166020018201604052801561124f576020820181803683370190505b5090505b84156112ba57611264600183611ca9565b9150611271600a86611d82565b61127c906030611c5e565b60f81b81838151811061129157611291611dc2565b60200101906001600160f81b031916908160001a9053506112b3600a86611c76565b9450611253565b949350505050565b6001600160a01b038416600090815260208181526040808320868452909152812080548492906112f3908490611c5e565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b156113ea5760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190611388903390600090899089908990600401611b4f565b602060405180830381600087803b1580156113a257600080fd5b505af11580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da9190611934565b6001600160e01b031916146113f7565b6001600160a01b03841615155b6114135760405162461bcd60e51b815260040161063090611bdf565b50505050565b60085460079061142e9060019060ff16611cc0565b60ff168154811061144157611441611dc2565b90600052602060002090602091828204019190069054906101000a900460ff166007828154811061147457611474611dc2565b6000918252602080832090820401805460ff948516601f9093166101000a92830292850219169190911790556008805490921691906114b283611d0f565b91906101000a81548160ff021916908360ff1602179055505050565b8280546114da90611d2c565b90600052602060002090601f0160209004810192826114fc5760008555611542565b82601f1061151557805160ff1916838001178555611542565b82800160010185558215611542579182015b82811115611542578251825591602001919060010190611527565b5061154e929150611552565b5090565b5b8082111561154e5760008155600101611553565b600067ffffffffffffffff83111561158157611581611dd8565b611594601f8401601f1916602001611c09565b90508281528383830111156115a857600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b03811681146115d657600080fd5b919050565b600082601f8301126115ec57600080fd5b813560206116016115fc83611c3a565b611c09565b80838252828201915082860187848660051b890101111561162157600080fd5b60005b8581101561164057813584529284019290840190600101611624565b5090979650505050505050565b803580151581146115d657600080fd5b600082601f83011261166e57600080fd5b61167d83833560208501611567565b9392505050565b60006020828403121561169657600080fd5b61167d826115bf565b600080604083850312156116b257600080fd5b6116bb836115bf565b91506116c9602084016115bf565b90509250929050565b600080600080600060a086880312156116ea57600080fd5b6116f3866115bf565b9450611701602087016115bf565b9350604086013567ffffffffffffffff8082111561171e57600080fd5b61172a89838a016115db565b9450606088013591508082111561174057600080fd5b61174c89838a016115db565b9350608088013591508082111561176257600080fd5b5061176f8882890161165d565b9150509295509295909350565b600080600080600060a0868803121561179457600080fd5b61179d866115bf565b94506117ab602087016115bf565b93506040860135925060608601359150608086013567ffffffffffffffff8111156117d557600080fd5b61176f8882890161165d565b600080604083850312156117f457600080fd5b6117fd836115bf565b91506116c96020840161164d565b6000806040838503121561181e57600080fd5b611827836115bf565b946020939093013593505050565b6000806040838503121561184857600080fd5b823567ffffffffffffffff8082111561186057600080fd5b818501915085601f83011261187457600080fd5b813560206118846115fc83611c3a565b8083825282820191508286018a848660051b89010111156118a457600080fd5b600096505b848710156118ce576118ba816115bf565b8352600196909601959183019183016118a9565b50965050860135925050808211156118e557600080fd5b506118f2858286016115db565b9150509250929050565b60006020828403121561190e57600080fd5b61167d8261164d565b60006020828403121561192957600080fd5b813561167d81611dee565b60006020828403121561194657600080fd5b815161167d81611dee565b60006020828403121561196357600080fd5b813567ffffffffffffffff81111561197a57600080fd5b8201601f8101841361198b57600080fd5b6112ba84823560208401611567565b6000602082840312156119ac57600080fd5b5035919050565b600081518084526020808501945080840160005b838110156119e3578151875295820195908201906001016119c7565b509495945050505050565b60008151808452611a06816020860160208601611ce3565b601f01601f19169290920160200192915050565b60008151611a2c818560208601611ce3565b9290920192915050565b600080845481600182811c915080831680611a5257607f831692505b6020808410821415611a7257634e487b7160e01b86526022600452602486fd5b818015611a865760018114611a9757611ac4565b60ff19861689528489019650611ac4565b60008b81526020902060005b86811015611abc5781548b820152908501908301611aa3565b505084890196505b505050505050611ae8611ad78286611a1a565b64173539b7b760d91b815260050190565b95945050505050565b6001600160a01b0386811682528516602082015260a060408201819052600090611b1d908301866119b3565b8281036060840152611b2f81866119b3565b90508281036080840152611b4381856119ee565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611b89908301846119ee565b979650505050505050565b60208152600061167d60208301846119b3565b604081526000611bba60408301856119b3565b8281036020840152611ae881856119b3565b60208152600061167d60208301846119ee565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c3257611c32611dd8565b604052919050565b600067ffffffffffffffff821115611c5457611c54611dd8565b5060051b60200190565b60008219821115611c7157611c71611d96565b500190565b600082611c8557611c85611dac565b500490565b6000816000190483118215151615611ca457611ca4611d96565b500290565b600082821015611cbb57611cbb611d96565b500390565b600060ff821660ff841680821015611cda57611cda611d96565b90039392505050565b60005b83811015611cfe578181015183820152602001611ce6565b838111156114135750506000910152565b600060ff821680611d2257611d22611d96565b6000190192915050565b600181811c90821680611d4057607f821691505b60208210811415611d6157634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611d7b57611d7b611d96565b5060010190565b600082611d9157611d91611dac565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610bd857600080fdfea2646970667358221220c533d9b8124f713823343c563b58b6b39969ff1a7c019ecaf786872b11c9af6f64736f6c63430008070033

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.