ETH Price: $3,277.16 (-1.59%)

Token

James Webb Space Telescope NFTs (WEBB3)
 

Overview

Max Total Supply

82,415 WEBB3

Holders

64,948

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Filtered by Token Holder
hongpingliu.eth
0x2a1e6f16aba3f1f64beea837cacc07cbb00f0241
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:
WebbNFT

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : WebbNFT.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.15;

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

// @title free-mint, commemorative NFTs to celebrate the first images from the James Webb Space Telescope (JWST)
// @author jamiedubs <https://jamiedubs.com>
contract WebbNFT is Owned, ERC1155 {
    string public baseURI;
    uint256 public maxID;
    bool public enabled;

    string public name = "James Webb Space Telescope NFTs";
    string public symbol = "WEBB3";

    error TokenDoesNotExist();
    error MintingNotEnabled();

    event BaseURIUpdated(string newBaseURI);
    event MaxIDUpdated(uint256 newMaxID);
    event EnabledUpdated(bool newEnabled);

    modifier tokenExists(uint256 id) {
        if (id > maxID) {
            revert TokenDoesNotExist();
        }
        _;
    }

    modifier mintingEnabled() {
        if (!enabled) {
            revert MintingNotEnabled();
        }
        _;
    }

    constructor(string memory _baseURI, uint256 _maxID) Owned(msg.sender) {
        baseURI = _baseURI;
        maxID = _maxID;
        enabled = true;
    }

    function setBaseURI(string memory _baseURI) public onlyOwner {
        baseURI = _baseURI;
        emit BaseURIUpdated(_baseURI);
    }

    function setMaxID(uint256 _maxID) public onlyOwner {
        maxID = _maxID;
        emit MaxIDUpdated(_maxID);
    }

    function setEnabled(bool _enabled) public onlyOwner {
        enabled = _enabled;
        emit EnabledUpdated(_enabled);
    }

    function mint(uint256 id) public tokenExists(id) mintingEnabled {
        _mint(msg.sender, id, 1, "");
    }

    function uri(uint256 id)
        public
        view
        override
        tokenExists(id)
        returns (string memory)
    {
        // use vanilla URLs instead of ERC-1155 {id} urls
        return string.concat(baseURI, Strings.toString(id));
    }
}

// ripped from OZ Strings; we don't need the other two functions in that library
library Strings {
    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 : Owned.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event OwnerUpdated(address indexed user, address indexed newOwner);

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

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

    constructor(address _owner) {
        owner = _owner;

        emit OwnerUpdated(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

    function setOwner(address newOwner) public virtual onlyOwner {
        owner = newOwner;

        emit OwnerUpdated(msg.sender, newOwner);
    }
}

File 3 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 calldata 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[] calldata ids,
        uint256[] calldata amounts,
        bytes calldata data
    ) public virtual {
        require(ids.length == amounts.length, "LENGTH_MISMATCH");

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

        // Storing these outside the loop saves ~15 gas per iteration.
        uint256 id;
        uint256 amount;

        for (uint256 i = 0; i < ids.length; ) {
            id = ids[i];
            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[] calldata owners, uint256[] calldata ids)
        public
        view
        virtual
        returns (uint256[] memory balances)
    {
        require(owners.length == 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 < owners.length; ++i) {
                balances[i] = balanceOf[owners[i]][ids[i]];
            }
        }
    }

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

    function supportsInterface(bytes4 interfaceId) public view 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 virtual {
        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 virtual {
        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 virtual {
        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 virtual {
        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)
abstract contract ERC1155TokenReceiver {
    function onERC1155Received(
        address,
        address,
        uint256,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155Received.selector;
    }

    function onERC1155BatchReceived(
        address,
        address,
        uint256[] calldata,
        uint256[] calldata,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC1155TokenReceiver.onERC1155BatchReceived.selector;
    }
}

Settings
{
  "remappings": [
    "ds-test/=packages/contracts/lib/solmate/lib/ds-test/src/",
    "forge-std/=packages/contracts/lib/forge-std/src/",
    "solmate/=packages/contracts/lib/solmate/src/",
    "src/=packages/contracts/src/",
    "test/=packages/contracts/test/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "bytecodeHash": "none"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"},{"internalType":"uint256","name":"_maxID","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MintingNotEnabled","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","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":false,"internalType":"string","name":"newBaseURI","type":"string"}],"name":"BaseURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"newEnabled","type":"bool"}],"name":"EnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newMaxID","type":"uint256"}],"name":"MaxIDUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerUpdated","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":[{"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":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","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":"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":"_baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxID","type":"uint256"}],"name":"setMaxID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

60c0604052601f60809081527f4a616d657320576562622053706163652054656c6573636f7065204e4654730060a0526006906200003e9082620001a7565b50604080518082019091526005815264574542423360d81b60208201526007906200006a9082620001a7565b503480156200007857600080fd5b5060405162001ba338038062001ba38339810160408190526200009b9162000273565b600080546001600160a01b031916339081178255604051909182917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76908290a3506003620000ea8382620001a7565b50600455506005805460ff1916600117905562000358565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200012d57607f821691505b6020821081036200014e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001a257600081815260208120601f850160051c810160208610156200017d5750805b601f850160051c820191505b818110156200019e5782815560010162000189565b5050505b505050565b81516001600160401b03811115620001c357620001c362000102565b620001db81620001d4845462000118565b8462000154565b602080601f831160018114620002135760008415620001fa5750858301515b600019600386901b1c1916600185901b1785556200019e565b600085815260208120601f198616915b82811015620002445788860151825594840194600190910190840162000223565b5085821015620002635787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080604083850312156200028757600080fd5b82516001600160401b03808211156200029f57600080fd5b818501915085601f830112620002b457600080fd5b815181811115620002c957620002c962000102565b604051601f8201601f19908116603f01168101908382118183101715620002f457620002f462000102565b816040528281526020935088848487010111156200031157600080fd5b600091505b8282101562000335578482018401518183018501529083019062000316565b82821115620003475760008484830101525b969092015195979596505050505050565b61183b80620003686000396000f3fe608060405234801561001057600080fd5b50600436106101205760003560e01c806355f804b3116100ad578063a0712d6811610071578063a0712d6814610277578063a22cb4651461028a578063e985e9c51461029d578063ecacaf0b146102cb578063f242432a146102d457600080fd5b806355f804b31461021657806359672c0e146102295780636c0360eb1461023c5780638da5cb5b1461024457806395d89b411461026f57600080fd5b806313af4035116100f457806313af4035146101ae578063238dafe0146101c35780632eb2c2d6146101d0578063328d8f72146101e35780634e1273f4146101f657600080fd5b8062fdd58e1461012557806301ffc9a71461016357806306fdde03146101865780630e89341c1461019b575b600080fd5b610150610133366004610f0d565b600160209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610176610171366004610f50565b6102e7565b604051901515815260200161015a565b61018e610339565b60405161015a9190610fcc565b61018e6101a9366004610fdf565b6103c7565b6101c16101bc366004610ff8565b610421565b005b6005546101769060ff1681565b6101c16101de3660046110a1565b61049f565b6101c16101f136600461116c565b610746565b610209610204366004611187565b6107b8565b60405161015a91906111f3565b6101c161022436600461124d565b6108ee565b6101c1610237366004610fdf565b610954565b61018e6109b3565b600054610257906001600160a01b031681565b6040516001600160a01b03909116815260200161015a565b61018e6109c0565b6101c1610285366004610fdf565b6109cd565b6101c16102983660046112fe565b610a34565b6101766102ab366004611331565b600260209081526000928352604080842090915290825290205460ff1681565b61015060045481565b6101c16102e236600461135b565b610aa0565b60006301ffc9a760e01b6001600160e01b0319831614806103185750636cdb3d1360e11b6001600160e01b03198316145b8061033357506303a24d0760e21b6001600160e01b03198316145b92915050565b60068054610346906113d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610372906113d3565b80156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b505050505081565b6060816004548111156103ed5760405163677510db60e11b815260040160405180910390fd5b60036103f884610c9e565b604051602001610409929190611407565b60405160208183030381529060405291505b50919050565b6000546001600160a01b031633146104545760405162461bcd60e51b815260040161044b9061148e565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b8483146104e05760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b604482015260640161044b565b336001600160a01b038916148061051a57506001600160a01b038816600090815260026020908152604080832033845290915290205460ff165b6105575760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161044b565b60008060005b8781101561061657888882818110610577576105776114b4565b905060200201359250868682818110610592576105926114b4565b6001600160a01b038e166000908152600160209081526040808320898452825282208054939091029490940135955085939250906105d19084906114e0565b90915550506001600160a01b038a166000908152600160209081526040808320868452909152812080548492906106099084906114f7565b909155505060010161055d565b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b60405161066a9493929190611545565b60405180910390a46001600160a01b0389163b156107115760405163bc197c8160e01b808252906001600160a01b038b169063bc197c81906106be9033908f908e908e908e908e908e908e906004016115a0565b6020604051808303816000875af11580156106dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107019190611604565b6001600160e01b0319161461071e565b6001600160a01b03891615155b61073a5760405162461bcd60e51b815260040161044b90611621565b50505050505050505050565b6000546001600160a01b031633146107705760405162461bcd60e51b815260040161044b9061148e565b6005805460ff19168215159081179091556040519081527f6ea132e58e92fcbabe09d2e3e0e989869373669b749d418bae60cfbc0a12fd02906020015b60405180910390a150565b60608382146107fb5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b604482015260640161044b565b8367ffffffffffffffff81111561081457610814611237565b60405190808252806020026020018201604052801561083d578160200160208202803683370190505b50905060005b848110156108e55760016000878784818110610861576108616114b4565b90506020020160208101906108769190610ff8565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008585848181106108aa576108aa6114b4565b905060200201358152602001908152602001600020548282815181106108d2576108d26114b4565b6020908102919091010152600101610843565b50949350505050565b6000546001600160a01b031633146109185760405162461bcd60e51b815260040161044b9061148e565b60036109248282611696565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad816040516107ad9190610fcc565b6000546001600160a01b0316331461097e5760405162461bcd60e51b815260040161044b9061148e565b60048190556040518181527f31a015d5774ea4299c3b65d82aa389e42a2b6203fa4cf011cf60b71c625bf61c906020016107ad565b60038054610346906113d3565b60078054610346906113d3565b806004548111156109f15760405163677510db60e11b815260040160405180910390fd5b60055460ff16610a1457604051630732158d60e31b815260040160405180910390fd5b610a303383600160405180602001604052806000815250610da7565b5050565b3360008181526002602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b336001600160a01b0387161480610ada57506001600160a01b038616600090815260026020908152604080832033845290915290205460ff165b610b175760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161044b565b6001600160a01b038616600090815260016020908152604080832087845290915281208054859290610b4a9084906114e0565b90915550506001600160a01b038516600090815260016020908152604080832087845290915281208054859290610b829084906114f7565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b15610c6d5760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e6190610c1a9033908b908a908a908a908a90600401611756565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611604565b6001600160e01b03191614610c7a565b6001600160a01b03851615155b610c965760405162461bcd60e51b815260040161044b90611621565b505050505050565b606081600003610cc55750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610cef5780610cd98161179d565b9150610ce89050600a836117cc565b9150610cc9565b60008167ffffffffffffffff811115610d0a57610d0a611237565b6040519080825280601f01601f191660200182016040528015610d34576020820181803683370190505b5090505b8415610d9f57610d496001836114e0565b9150610d56600a866117e0565b610d619060306114f7565b60f81b818381518110610d7657610d766114b4565b60200101906001600160f81b031916908160001a905350610d98600a866117cc565b9450610d38565b949350505050565b6001600160a01b038416600090815260016020908152604080832086845290915281208054849290610dda9084906114f7565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b15610ec25760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190610e6f9033906000908990899089906004016117f4565b6020604051808303816000875af1158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb29190611604565b6001600160e01b03191614610ecf565b6001600160a01b03841615155b610eeb5760405162461bcd60e51b815260040161044b90611621565b50505050565b80356001600160a01b0381168114610f0857600080fd5b919050565b60008060408385031215610f2057600080fd5b610f2983610ef1565b946020939093013593505050565b6001600160e01b031981168114610f4d57600080fd5b50565b600060208284031215610f6257600080fd5b8135610f6d81610f37565b9392505050565b60005b83811015610f8f578181015183820152602001610f77565b83811115610eeb5750506000910152565b60008151808452610fb8816020860160208601610f74565b601f01601f19169290920160200192915050565b602081526000610f6d6020830184610fa0565b600060208284031215610ff157600080fd5b5035919050565b60006020828403121561100a57600080fd5b610f6d82610ef1565b60008083601f84011261102557600080fd5b50813567ffffffffffffffff81111561103d57600080fd5b6020830191508360208260051b850101111561105857600080fd5b9250929050565b60008083601f84011261107157600080fd5b50813567ffffffffffffffff81111561108957600080fd5b60208301915083602082850101111561105857600080fd5b60008060008060008060008060a0898b0312156110bd57600080fd5b6110c689610ef1565b97506110d460208a01610ef1565b9650604089013567ffffffffffffffff808211156110f157600080fd5b6110fd8c838d01611013565b909850965060608b013591508082111561111657600080fd5b6111228c838d01611013565b909650945060808b013591508082111561113b57600080fd5b506111488b828c0161105f565b999c989b5096995094979396929594505050565b80358015158114610f0857600080fd5b60006020828403121561117e57600080fd5b610f6d8261115c565b6000806000806040858703121561119d57600080fd5b843567ffffffffffffffff808211156111b557600080fd5b6111c188838901611013565b909650945060208701359150808211156111da57600080fd5b506111e787828801611013565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b8181101561122b5783518352928401929184019160010161120f565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561125f57600080fd5b813567ffffffffffffffff8082111561127757600080fd5b818401915084601f83011261128b57600080fd5b81358181111561129d5761129d611237565b604051601f8201601f19908116603f011681019083821181831017156112c5576112c5611237565b816040528281528760208487010111156112de57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561131157600080fd5b61131a83610ef1565b91506113286020840161115c565b90509250929050565b6000806040838503121561134457600080fd5b61134d83610ef1565b915061132860208401610ef1565b60008060008060008060a0878903121561137457600080fd5b61137d87610ef1565b955061138b60208801610ef1565b94506040870135935060608701359250608087013567ffffffffffffffff8111156113b557600080fd5b6113c189828a0161105f565b979a9699509497509295939492505050565b600181811c908216806113e757607f821691505b60208210810361041b57634e487b7160e01b600052602260045260246000fd5b6000808454611415816113d3565b6001828116801561142d576001811461144257611471565b60ff1984168752821515830287019450611471565b8860005260208060002060005b858110156114685781548a82015290840190820161144f565b50505082870194505b505050508351611485818360208801610f74565b01949350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156114f2576114f26114ca565b500390565b6000821982111561150a5761150a6114ca565b500190565b81835260006001600160fb1b0383111561152857600080fd5b8260051b8083602087013760009401602001938452509192915050565b60408152600061155960408301868861150f565b828103602084015261156c81858761150f565b979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a0604082018190526000906115cd908301888a61150f565b82810360608401526115e081878961150f565b905082810360808401526115f5818587611577565b9b9a5050505050505050505050565b60006020828403121561161657600080fd5b8151610f6d81610f37565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b601f82111561169157600081815260208120601f850160051c810160208610156116725750805b601f850160051c820191505b81811015610c965782815560010161167e565b505050565b815167ffffffffffffffff8111156116b0576116b0611237565b6116c4816116be84546113d3565b8461164b565b602080601f8311600181146116f957600084156116e15750858301515b600019600386901b1c1916600185901b178555610c96565b600085815260208120601f198616915b8281101561172857888601518255948401946001909101908401611709565b50858210156117465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906117919083018486611577565b98975050505050505050565b6000600182016117af576117af6114ca565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826117db576117db6117b6565b500490565b6000826117ef576117ef6117b6565b500690565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061156c90830184610fa056fea164736f6c634300080f000a000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d57644b55713371486a7374565371437339664d4d6f564233374e3770415470725058645761436366655153732f00000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101205760003560e01c806355f804b3116100ad578063a0712d6811610071578063a0712d6814610277578063a22cb4651461028a578063e985e9c51461029d578063ecacaf0b146102cb578063f242432a146102d457600080fd5b806355f804b31461021657806359672c0e146102295780636c0360eb1461023c5780638da5cb5b1461024457806395d89b411461026f57600080fd5b806313af4035116100f457806313af4035146101ae578063238dafe0146101c35780632eb2c2d6146101d0578063328d8f72146101e35780634e1273f4146101f657600080fd5b8062fdd58e1461012557806301ffc9a71461016357806306fdde03146101865780630e89341c1461019b575b600080fd5b610150610133366004610f0d565b600160209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b610176610171366004610f50565b6102e7565b604051901515815260200161015a565b61018e610339565b60405161015a9190610fcc565b61018e6101a9366004610fdf565b6103c7565b6101c16101bc366004610ff8565b610421565b005b6005546101769060ff1681565b6101c16101de3660046110a1565b61049f565b6101c16101f136600461116c565b610746565b610209610204366004611187565b6107b8565b60405161015a91906111f3565b6101c161022436600461124d565b6108ee565b6101c1610237366004610fdf565b610954565b61018e6109b3565b600054610257906001600160a01b031681565b6040516001600160a01b03909116815260200161015a565b61018e6109c0565b6101c1610285366004610fdf565b6109cd565b6101c16102983660046112fe565b610a34565b6101766102ab366004611331565b600260209081526000928352604080842090915290825290205460ff1681565b61015060045481565b6101c16102e236600461135b565b610aa0565b60006301ffc9a760e01b6001600160e01b0319831614806103185750636cdb3d1360e11b6001600160e01b03198316145b8061033357506303a24d0760e21b6001600160e01b03198316145b92915050565b60068054610346906113d3565b80601f0160208091040260200160405190810160405280929190818152602001828054610372906113d3565b80156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b505050505081565b6060816004548111156103ed5760405163677510db60e11b815260040160405180910390fd5b60036103f884610c9e565b604051602001610409929190611407565b60405160208183030381529060405291505b50919050565b6000546001600160a01b031633146104545760405162461bcd60e51b815260040161044b9061148e565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769190a350565b8483146104e05760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b604482015260640161044b565b336001600160a01b038916148061051a57506001600160a01b038816600090815260026020908152604080832033845290915290205460ff165b6105575760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161044b565b60008060005b8781101561061657888882818110610577576105776114b4565b905060200201359250868682818110610592576105926114b4565b6001600160a01b038e166000908152600160209081526040808320898452825282208054939091029490940135955085939250906105d19084906114e0565b90915550506001600160a01b038a166000908152600160209081526040808320868452909152812080548492906106099084906114f7565b909155505060010161055d565b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b60405161066a9493929190611545565b60405180910390a46001600160a01b0389163b156107115760405163bc197c8160e01b808252906001600160a01b038b169063bc197c81906106be9033908f908e908e908e908e908e908e906004016115a0565b6020604051808303816000875af11580156106dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107019190611604565b6001600160e01b0319161461071e565b6001600160a01b03891615155b61073a5760405162461bcd60e51b815260040161044b90611621565b50505050505050505050565b6000546001600160a01b031633146107705760405162461bcd60e51b815260040161044b9061148e565b6005805460ff19168215159081179091556040519081527f6ea132e58e92fcbabe09d2e3e0e989869373669b749d418bae60cfbc0a12fd02906020015b60405180910390a150565b60608382146107fb5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b604482015260640161044b565b8367ffffffffffffffff81111561081457610814611237565b60405190808252806020026020018201604052801561083d578160200160208202803683370190505b50905060005b848110156108e55760016000878784818110610861576108616114b4565b90506020020160208101906108769190610ff8565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008585848181106108aa576108aa6114b4565b905060200201358152602001908152602001600020548282815181106108d2576108d26114b4565b6020908102919091010152600101610843565b50949350505050565b6000546001600160a01b031633146109185760405162461bcd60e51b815260040161044b9061148e565b60036109248282611696565b507f6741b2fc379fad678116fe3d4d4b9a1a184ab53ba36b86ad0fa66340b1ab41ad816040516107ad9190610fcc565b6000546001600160a01b0316331461097e5760405162461bcd60e51b815260040161044b9061148e565b60048190556040518181527f31a015d5774ea4299c3b65d82aa389e42a2b6203fa4cf011cf60b71c625bf61c906020016107ad565b60038054610346906113d3565b60078054610346906113d3565b806004548111156109f15760405163677510db60e11b815260040160405180910390fd5b60055460ff16610a1457604051630732158d60e31b815260040160405180910390fd5b610a303383600160405180602001604052806000815250610da7565b5050565b3360008181526002602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b336001600160a01b0387161480610ada57506001600160a01b038616600090815260026020908152604080832033845290915290205460ff165b610b175760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161044b565b6001600160a01b038616600090815260016020908152604080832087845290915281208054859290610b4a9084906114e0565b90915550506001600160a01b038516600090815260016020908152604080832087845290915281208054859290610b829084906114f7565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b15610c6d5760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e6190610c1a9033908b908a908a908a908a90600401611756565b6020604051808303816000875af1158015610c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5d9190611604565b6001600160e01b03191614610c7a565b6001600160a01b03851615155b610c965760405162461bcd60e51b815260040161044b90611621565b505050505050565b606081600003610cc55750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610cef5780610cd98161179d565b9150610ce89050600a836117cc565b9150610cc9565b60008167ffffffffffffffff811115610d0a57610d0a611237565b6040519080825280601f01601f191660200182016040528015610d34576020820181803683370190505b5090505b8415610d9f57610d496001836114e0565b9150610d56600a866117e0565b610d619060306114f7565b60f81b818381518110610d7657610d766114b4565b60200101906001600160f81b031916908160001a905350610d98600a866117cc565b9450610d38565b949350505050565b6001600160a01b038416600090815260016020908152604080832086845290915281208054849290610dda9084906114f7565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b15610ec25760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190610e6f9033906000908990899089906004016117f4565b6020604051808303816000875af1158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb29190611604565b6001600160e01b03191614610ecf565b6001600160a01b03841615155b610eeb5760405162461bcd60e51b815260040161044b90611621565b50505050565b80356001600160a01b0381168114610f0857600080fd5b919050565b60008060408385031215610f2057600080fd5b610f2983610ef1565b946020939093013593505050565b6001600160e01b031981168114610f4d57600080fd5b50565b600060208284031215610f6257600080fd5b8135610f6d81610f37565b9392505050565b60005b83811015610f8f578181015183820152602001610f77565b83811115610eeb5750506000910152565b60008151808452610fb8816020860160208601610f74565b601f01601f19169290920160200192915050565b602081526000610f6d6020830184610fa0565b600060208284031215610ff157600080fd5b5035919050565b60006020828403121561100a57600080fd5b610f6d82610ef1565b60008083601f84011261102557600080fd5b50813567ffffffffffffffff81111561103d57600080fd5b6020830191508360208260051b850101111561105857600080fd5b9250929050565b60008083601f84011261107157600080fd5b50813567ffffffffffffffff81111561108957600080fd5b60208301915083602082850101111561105857600080fd5b60008060008060008060008060a0898b0312156110bd57600080fd5b6110c689610ef1565b97506110d460208a01610ef1565b9650604089013567ffffffffffffffff808211156110f157600080fd5b6110fd8c838d01611013565b909850965060608b013591508082111561111657600080fd5b6111228c838d01611013565b909650945060808b013591508082111561113b57600080fd5b506111488b828c0161105f565b999c989b5096995094979396929594505050565b80358015158114610f0857600080fd5b60006020828403121561117e57600080fd5b610f6d8261115c565b6000806000806040858703121561119d57600080fd5b843567ffffffffffffffff808211156111b557600080fd5b6111c188838901611013565b909650945060208701359150808211156111da57600080fd5b506111e787828801611013565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b8181101561122b5783518352928401929184019160010161120f565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561125f57600080fd5b813567ffffffffffffffff8082111561127757600080fd5b818401915084601f83011261128b57600080fd5b81358181111561129d5761129d611237565b604051601f8201601f19908116603f011681019083821181831017156112c5576112c5611237565b816040528281528760208487010111156112de57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561131157600080fd5b61131a83610ef1565b91506113286020840161115c565b90509250929050565b6000806040838503121561134457600080fd5b61134d83610ef1565b915061132860208401610ef1565b60008060008060008060a0878903121561137457600080fd5b61137d87610ef1565b955061138b60208801610ef1565b94506040870135935060608701359250608087013567ffffffffffffffff8111156113b557600080fd5b6113c189828a0161105f565b979a9699509497509295939492505050565b600181811c908216806113e757607f821691505b60208210810361041b57634e487b7160e01b600052602260045260246000fd5b6000808454611415816113d3565b6001828116801561142d576001811461144257611471565b60ff1984168752821515830287019450611471565b8860005260208060002060005b858110156114685781548a82015290840190820161144f565b50505082870194505b505050508351611485818360208801610f74565b01949350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156114f2576114f26114ca565b500390565b6000821982111561150a5761150a6114ca565b500190565b81835260006001600160fb1b0383111561152857600080fd5b8260051b8083602087013760009401602001938452509192915050565b60408152600061155960408301868861150f565b828103602084015261156c81858761150f565b979650505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a0604082018190526000906115cd908301888a61150f565b82810360608401526115e081878961150f565b905082810360808401526115f5818587611577565b9b9a5050505050505050505050565b60006020828403121561161657600080fd5b8151610f6d81610f37565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b601f82111561169157600081815260208120601f850160051c810160208610156116725750805b601f850160051c820191505b81811015610c965782815560010161167e565b505050565b815167ffffffffffffffff8111156116b0576116b0611237565b6116c4816116be84546113d3565b8461164b565b602080601f8311600181146116f957600084156116e15750858301515b600019600386901b1c1916600185901b178555610c96565b600085815260208120601f198616915b8281101561172857888601518255948401946001909101908401611709565b50858210156117465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906117919083018486611577565b98975050505050505050565b6000600182016117af576117af6114ca565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826117db576117db6117b6565b500490565b6000826117ef576117ef6117b6565b500690565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061156c90830184610fa056fea164736f6c634300080f000a

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

000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d57644b55713371486a7374565371437339664d4d6f564233374e3770415470725058645761436366655153732f00000000000000000000

-----Decoded View---------------
Arg [0] : _baseURI (string): ipfs://QmWdKUq3qHjstVSqCs9fMMoVB37N7pATprPXdWaCcfeQSs/
Arg [1] : _maxID (uint256): 6

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000036
Arg [3] : 697066733a2f2f516d57644b55713371486a7374565371437339664d4d6f5642
Arg [4] : 33374e3770415470725058645761436366655153732f00000000000000000000


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.