ETH Price: $2,632.50 (+1.20%)

Token

(0x484c858190611d0c4bf7d3304335f60ace57f394)
 

Overview

Max Total Supply

0 ERC-721 TOKEN*

Holders

15

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Filtered by Token Holder
cphurley.eth
Balance
0 ERC-721 TOKEN*
0x07ae3f321ab9422e978a9f953f34c88907ecc27b
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:
SellerToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 8 : SellerToken.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import './interfaces/ISellerToken.sol';
// import 'erc721a/contracts/ERC721A.sol';
import './library/errors/Errors.sol';
import './interfaces/ITokenMetadata.sol';
import 'solmate/src/auth/Owned.sol';
import 'solmate/src/tokens/ERC721.sol';

contract SellerToken is Owned, ERC721 {
    event MetadataUpdate(uint256 _tokenId);
    event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);

    mapping(address => bool) private _tokenManagers;
    ITokenMetadata public _tokenMetadata;
    string public _baseTokenURI;
    string public contractURI;

    constructor(string memory name_, string memory symbol_, string memory baseTokenURI, string memory _contractURI)
        Owned(msg.sender)
        ERC721(name_, symbol_) {
            _baseTokenURI = baseTokenURI;
            contractURI = _contractURI;
    }

    function toggleTokenManager(address wallet, bool permission) onlyOwner public {
        _tokenManagers[ wallet ] = permission;
    }

    function tokenManager(address wallet) public view returns(bool) {
        return _tokenManagers[ wallet ];
    }

    modifier onlyTokenManagers() {
        if (false == _tokenManagers[ msg.sender ]) {
            revert Errors.UserPermissions();
        }

        _;
    }

    function mint(address dest, uint256 id) onlyTokenManagers public returns(uint256) {
        _mint(dest, id);
        return id;
    }

    function burn(uint256 tokenId) onlyTokenManagers public {
        _burn(tokenId);
    }

    function updateBaseURI(string memory uri) onlyOwner public {
        _baseTokenURI = uri;
        _tokenMetadata = ITokenMetadata(address(0));
    }

    function setMetadataContract(address tokenMetadata) onlyOwner public {
        _tokenMetadata = ITokenMetadata(tokenMetadata);
    }

    function _baseURI() internal view returns (string memory) {
        return _baseTokenURI;
    }

    function tokenURI(uint256 tokenId) public override view returns(string memory) {
        if (address(_tokenMetadata) != address(0)) {
            return _tokenMetadata.tokenURI(tokenId);
        }

        // call ownerOf to verify that this token is actually minted
        ownerOf(tokenId);

        string memory baseURI = _baseURI();
        return bytes(baseURI).length != 0 ? string(abi.encodePacked(baseURI, _toString(tokenId))) : '';
    }


    function updateMetadata(uint256 id) public onlyOwner {
        emit MetadataUpdate(id);
    }

    function updateAllMetadata() public onlyOwner {
        emit BatchMetadataUpdate(0, type(uint256).max);
    }

    /**
     * credit erc721a
     * https://www.erc721a.org/
     * @dev Converts a uint256 to its ASCII string decimal representation.
     */
    function _toString(uint256 value) internal pure virtual returns (string memory str) {
        assembly {
            // The maximum value of a uint256 contains 78 digits (1 byte per digit), but
            // we allocate 0xa0 bytes to keep the free memory pointer 32-byte word aligned.
            // We will need 1 word for the trailing zeros padding, 1 word for the length,
            // and 3 words for a maximum of 78 digits. Total: 5 * 0x20 = 0xa0.
            let m := add(mload(0x40), 0xa0)
            // Update the free memory pointer to allocate.
            mstore(0x40, m)
            // Assign the `str` to the end.
            str := sub(m, 0x20)
            // Zeroize the slot after the string.
            mstore(str, 0)

            // Cache the end of the memory to calculate the length later.
            let end := str

            // We write the string from rightmost digit to leftmost digit.
            // The following is essentially a do-while loop that also handles the zero case.
            // prettier-ignore
            for { let temp := value } 1 {} {
                str := sub(str, 1)
                // Write the character to the pointer.
                // The ASCII index of the '0' character is 48.
                mstore8(str, add(48, mod(temp, 10)))
                // Keep dividing `temp` until zero.
                temp := div(temp, 10)
                // prettier-ignore
                if iszero(temp) { break }
            }

            let length := sub(end, str)
            // Move the pointer 32 bytes leftwards to make room for the length.
            str := sub(str, 0x20)
            // Store the length.
            mstore(str, length)
        }
    }
}

File 2 of 8 : IERC165.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

File 3 of 8 : IERC721.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol)

pragma solidity ^0.8.0;

import "./IERC165.sol";

/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received},
     * which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must have been allowed to move this token by either
     * {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received},
     * which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721
     * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must
     * understand this adds an external call which potentially creates a reentrancy vulnerability.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the caller.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool _approved) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);
}

File 4 of 8 : ISellerToken.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC721/IERC721.sol)

pragma solidity ^0.8.0;

import './IERC721.sol';

interface ISellerToken is IERC721 {
    function mint(address dest, uint256 tokenId) external returns (uint256);
    function burn(uint256 tokenId) external;
}

File 5 of 8 : ITokenMetadata.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface ITokenMetadata {

	function tokenURI(uint256 tokenId) external view returns(string memory);

}

File 6 of 8 : Errors.sol
// SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.8.4 <0.9.0;

library Errors {
    error LinkError();
    error ArrayMismatch();
    error OutOfRange(uint256 value);
    error OutOfRangeSigned(int256 value);
    error UnsignedOverflow(uint256 value);
    error SignedOverflow(int256 value);
    error DuplicateCall();

    error NotAContract();
    error InterfaceNotSupported();
    error NotInitialized();
    error AlreadyInitialized();
    error BadSender(address expected, address caller);
    error AddressTarget(address target);
    error UserPermissions();

    error InvalidHash();
    error InvalidSignature();
    error InvalidSignatureLength();
    error InvalidSignatureS();

    error InsufficientBalance(uint256 available, uint256 required);
    error InsufficientSupply(uint256 supply, uint256 available, int256 requested);  // 0x5437b336
    error InsufficientAvailable(uint256 available, uint256 requested);
    error InvalidToken(uint256 tokenId);                                            // 0x925d6b18
    error TokenNotMintable(uint256 tokenId);
    error InvalidTokenType();

    error ERC1155Receiver();

    error ContractPaused();

    error PaymentFailed(uint256 amount);
    error IncorrectPayment(uint256 required, uint256 provided);                     // 0x0d35e921
	error TooManyForTransaction(uint256 mintLimit, uint256 amount);

    error AuctionInactive(uint256 auctionId);
    error AuctionActive(uint256 auctionId);
    error InvalidBid(uint256 auctionId, uint256 amount);
    error BidTooLow(uint256 auctionId, uint256 bid, uint256 minBid);
    error AuctionClosed(uint256 auctionId);
    error AuctionInExtendedBidding(uint256 auctionId);
    error AuctionAborted(uint256 auctionId);

    error AlreadyClaimed(uint256 lotId);
}

File 7 of 8 : 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/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event OwnershipTransferred(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 OwnershipTransferred(address(0), _owner);
    }

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

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

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

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

/// @notice Modern, minimalist, and gas efficient ERC-721 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721 {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

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

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

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

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

    string public name;

    string public symbol;

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

    /*//////////////////////////////////////////////////////////////
                      ERC721 BALANCE/OWNER STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(uint256 => address) internal _ownerOf;

    mapping(address => uint256) internal _balanceOf;

    function ownerOf(uint256 id) public view virtual returns (address owner) {
        require((owner = _ownerOf[id]) != address(0), "NOT_MINTED");
    }

    function balanceOf(address owner) public view virtual returns (uint256) {
        require(owner != address(0), "ZERO_ADDRESS");

        return _balanceOf[owner];
    }

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

    mapping(uint256 => address) public getApproved;

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

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

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

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

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

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

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

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

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

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

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

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

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

            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

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

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

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

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

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

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

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

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

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

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

        _ownerOf[id] = to;

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

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

        require(owner != address(0), "NOT_MINTED");

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

        delete _ownerOf[id];

        delete getApproved[id];

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

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

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

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

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

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

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721TokenReceiver {
    function onERC721Received(
        address,
        address,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC721TokenReceiver.onERC721Received.selector;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"baseTokenURI","type":"string"},{"internalType":"string","name":"_contractURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"UserPermissions","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenMetadata","outputs":[{"internalType":"contract ITokenMetadata","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dest","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenMetadata","type":"address"}],"name":"setMetadataContract","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":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"permission","type":"bool"}],"name":"toggleTokenManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"tokenManager","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateAllMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"updateBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"updateMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162001a7238038062001a72833981016040819052620000349162000188565b600080546001600160a01b03191633908117825560405186928692918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001620000878382620002d0565b506002620000968282620002d0565b5060099150620000a990508382620002d0565b50600a620000b88282620002d0565b50505050506200039c565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000eb57600080fd5b81516001600160401b0380821115620001085762000108620000c3565b604051601f8301601f19908116603f01168101908282118183101715620001335762000133620000c3565b816040528381526020925086838588010111156200015057600080fd5b600091505b8382101562000174578582018301518183018401529082019062000155565b600093810190920192909252949350505050565b600080600080608085870312156200019f57600080fd5b84516001600160401b0380821115620001b757600080fd5b620001c588838901620000d9565b95506020870151915080821115620001dc57600080fd5b620001ea88838901620000d9565b945060408701519150808211156200020157600080fd5b6200020f88838901620000d9565b935060608701519150808211156200022657600080fd5b506200023587828801620000d9565b91505092959194509250565b600181811c908216806200025657607f821691505b6020821081036200027757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002cb57600081815260208120601f850160051c81016020861015620002a65750805b601f850160051c820191505b81811015620002c757828155600101620002b2565b5050505b505050565b81516001600160401b03811115620002ec57620002ec620000c3565b6200030481620002fd845462000241565b846200027d565b602080601f8311600181146200033c5760008415620003235750858301515b600019600386901b1c1916600185901b178555620002c7565b600085815260208120601f198616915b828110156200036d578886015182559484019460019091019084016200034c565b50858210156200038c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6116c680620003ac6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063c87b56dd11610097578063e5187f4311610071578063e5187f4314610382578063e8a3d48514610395578063e985e9c51461039d578063f2fde38b146103cb57600080fd5b8063c87b56dd1461033b578063cfc86f7b1461034e578063df8e4cf61461035657600080fd5b80638da5cb5b146102d4578063931688cb146102e757806395d89b41146102fa5780639c09628d14610302578063a22cb46514610315578063b88d4fde1461032857600080fd5b806323b872dd1161014b57806342842e0e1161012557806342842e0e1461028857806342966c681461029b5780636352211e146102ae57806370a08231146102c157600080fd5b806323b872dd1461024c57806338c52df01461025f57806340c10f191461026757600080fd5b806301ffc9a71461019357806306fdde03146101bb578063081812fc146101d0578063095ea7b3146102115780630e30b335146102265780630f12266314610239575b600080fd5b6101a66101a13660046110f3565b6103de565b60405190151581526020015b60405180910390f35b6101c3610430565b6040516101b29190611134565b6101f96101de366004611167565b6005602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101b2565b61022461021f366004611197565b6104be565b005b6102246102343660046111c1565b6105a5565b6008546101f9906001600160a01b031681565b61022461025a3660046111fd565b6105fa565b6102246107c1565b61027a610275366004611197565b610828565b6040519081526020016101b2565b6102246102963660046111fd565b61086c565b6102246102a9366004611167565b610964565b6101f96102bc366004611167565b6109a4565b61027a6102cf366004611239565b6109fb565b6000546101f9906001600160a01b031681565b6102246102f53660046112c3565b610a5e565b6101c3610aa8565b610224610310366004611167565b610ab5565b6102246103233660046111c1565b610b15565b610224610336366004611343565b610b81565b6101c3610349366004611167565b610c69565b6101c3610d54565b6101a6610364366004611239565b6001600160a01b031660009081526007602052604090205460ff1690565b610224610390366004611239565b610d61565b6101c3610dad565b6101a66103ab3660046113de565b600660209081526000928352604080842090915290825290205460ff1681565b6102246103d9366004611239565b610dba565b60006301ffc9a760e01b6001600160e01b03198316148061040f57506380ac58cd60e01b6001600160e01b03198316145b8061042a5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6001805461043d90611411565b80601f016020809104026020016040519081016040528092919081815260200182805461046990611411565b80156104b65780601f1061048b576101008083540402835291602001916104b6565b820191906000526020600020905b81548152906001019060200180831161049957829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b03163381148061050757506001600160a01b038116600090815260066020908152604080832033845290915290205460ff165b6105495760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000546001600160a01b031633146105cf5760405162461bcd60e51b815260040161054090611445565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000818152600360205260409020546001600160a01b038481169116146106505760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610540565b6001600160a01b03821661069a5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610540565b336001600160a01b03841614806106d457506001600160a01b038316600090815260066020908152604080832033845290915290205460ff165b806106f557506000818152600560205260409020546001600160a01b031633145b6107325760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610540565b6001600160a01b0380841660008181526004602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b03199081168317909155600590925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260040161054090611445565b604080516000815260001960208201527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c910160405180910390a1565b3360009081526007602052604081205460ff161515810361085c576040516365adc53760e11b815260040160405180910390fd5b6108668383610e2f565b50919050565b6108778383836105fa565b6001600160a01b0382163b15806109205750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610914919061146b565b6001600160e01b031916145b61095f5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610540565b505050565b3360009081526007602052604081205460ff1615159003610998576040516365adc53760e11b815260040160405180910390fd5b6109a181610f3a565b50565b6000818152600360205260409020546001600160a01b0316806109f65760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610540565b919050565b60006001600160a01b038216610a425760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610540565b506001600160a01b031660009081526004602052604090205490565b6000546001600160a01b03163314610a885760405162461bcd60e51b815260040161054090611445565b6009610a9482826114d6565b5050600880546001600160a01b0319169055565b6002805461043d90611411565b6000546001600160a01b03163314610adf5760405162461bcd60e51b815260040161054090611445565b6040518181527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a150565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610b8c8585856105fa565b6001600160a01b0384163b1580610c235750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610bd49033908a90899089908990600401611596565b6020604051808303816000875af1158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c17919061146b565b6001600160e01b031916145b610c625760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610540565b5050505050565b6008546060906001600160a01b031615610cee5760085460405163c87b56dd60e01b8152600481018490526001600160a01b039091169063c87b56dd90602401600060405180830381865afa158015610cc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261042a91908101906115ea565b610cf7826109a4565b506000610d02611007565b90508051600003610d225760405180602001604052806000815250610d4d565b80610d2c84611099565b604051602001610d3d929190611661565b6040516020818303038152906040525b9392505050565b6009805461043d90611411565b6000546001600160a01b03163314610d8b5760405162461bcd60e51b815260040161054090611445565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600a805461043d90611411565b6000546001600160a01b03163314610de45760405162461bcd60e51b815260040161054090611445565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b038216610e795760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610540565b6000818152600360205260409020546001600160a01b031615610ecf5760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b6044820152606401610540565b6001600160a01b038216600081815260046020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000818152600360205260409020546001600160a01b031680610f8c5760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610540565b6001600160a01b038116600081815260046020908152604080832080546000190190558583526003825280832080546001600160a01b031990811690915560059092528083208054909216909155518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60606009805461101690611411565b80601f016020809104026020016040519081016040528092919081815260200182805461104290611411565b801561108f5780601f106110645761010080835404028352916020019161108f565b820191906000526020600020905b81548152906001019060200180831161107257829003601f168201915b5050505050905090565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806110b35750819003601f19909101908152919050565b6001600160e01b0319811681146109a157600080fd5b60006020828403121561110557600080fd5b8135610d4d816110dd565b60005b8381101561112b578181015183820152602001611113565b50506000910152565b6020815260008251806020840152611153816040850160208701611110565b601f01601f19169190910160400192915050565b60006020828403121561117957600080fd5b5035919050565b80356001600160a01b03811681146109f657600080fd5b600080604083850312156111aa57600080fd5b6111b383611180565b946020939093013593505050565b600080604083850312156111d457600080fd5b6111dd83611180565b9150602083013580151581146111f257600080fd5b809150509250929050565b60008060006060848603121561121257600080fd5b61121b84611180565b925061122960208501611180565b9150604084013590509250925092565b60006020828403121561124b57600080fd5b610d4d82611180565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561129357611293611254565b604052919050565b600067ffffffffffffffff8211156112b5576112b5611254565b50601f01601f191660200190565b6000602082840312156112d557600080fd5b813567ffffffffffffffff8111156112ec57600080fd5b8201601f810184136112fd57600080fd5b803561131061130b8261129b565b61126a565b81815285602083850101111561132557600080fd5b81602084016020830137600091810160200191909152949350505050565b60008060008060006080868803121561135b57600080fd5b61136486611180565b945061137260208701611180565b935060408601359250606086013567ffffffffffffffff8082111561139657600080fd5b818801915088601f8301126113aa57600080fd5b8135818111156113b957600080fd5b8960208285010111156113cb57600080fd5b9699959850939650602001949392505050565b600080604083850312156113f157600080fd5b6113fa83611180565b915061140860208401611180565b90509250929050565b600181811c9082168061142557607f821691505b60208210810361086657634e487b7160e01b600052602260045260246000fd5b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b60006020828403121561147d57600080fd5b8151610d4d816110dd565b601f82111561095f57600081815260208120601f850160051c810160208610156114af5750805b601f850160051c820191505b818110156114ce578281556001016114bb565b505050505050565b815167ffffffffffffffff8111156114f0576114f0611254565b611504816114fe8454611411565b84611488565b602080601f83116001811461153957600084156115215750858301515b600019600386901b1c1916600185901b1785556114ce565b600085815260208120601f198616915b8281101561156857888601518255948401946001909101908401611549565b50858210156115865787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b6000602082840312156115fc57600080fd5b815167ffffffffffffffff81111561161357600080fd5b8201601f8101841361162457600080fd5b805161163261130b8261129b565b81815285602083850101111561164757600080fd5b611658826020830160208601611110565b95945050505050565b60008351611673818460208801611110565b835190830190611687818360208801611110565b0194935050505056fea264697066735822122008a4d72451653b42d9163c0496812bb61b739b4afc1c71e625c1f9624cf5060b64736f6c63430008110033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001f4250582041756374696f6e2050726f6365656420436c61696d20546f6b656e00000000000000000000000000000000000000000000000000000000000000000f42505841756374696f6e436c61696d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b68747470733a2f2f6d657461646174612e6270782e61756374696f6e2f636c61696d2d7469636b6574732f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004468747470733a2f2f6d657461646174612e6270782e61756374696f6e2f636c61696d2d7469636b6574732f636c61696d2d7469636b65742d6f70656e7365612e6a736f6e00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063c87b56dd11610097578063e5187f4311610071578063e5187f4314610382578063e8a3d48514610395578063e985e9c51461039d578063f2fde38b146103cb57600080fd5b8063c87b56dd1461033b578063cfc86f7b1461034e578063df8e4cf61461035657600080fd5b80638da5cb5b146102d4578063931688cb146102e757806395d89b41146102fa5780639c09628d14610302578063a22cb46514610315578063b88d4fde1461032857600080fd5b806323b872dd1161014b57806342842e0e1161012557806342842e0e1461028857806342966c681461029b5780636352211e146102ae57806370a08231146102c157600080fd5b806323b872dd1461024c57806338c52df01461025f57806340c10f191461026757600080fd5b806301ffc9a71461019357806306fdde03146101bb578063081812fc146101d0578063095ea7b3146102115780630e30b335146102265780630f12266314610239575b600080fd5b6101a66101a13660046110f3565b6103de565b60405190151581526020015b60405180910390f35b6101c3610430565b6040516101b29190611134565b6101f96101de366004611167565b6005602052600090815260409020546001600160a01b031681565b6040516001600160a01b0390911681526020016101b2565b61022461021f366004611197565b6104be565b005b6102246102343660046111c1565b6105a5565b6008546101f9906001600160a01b031681565b61022461025a3660046111fd565b6105fa565b6102246107c1565b61027a610275366004611197565b610828565b6040519081526020016101b2565b6102246102963660046111fd565b61086c565b6102246102a9366004611167565b610964565b6101f96102bc366004611167565b6109a4565b61027a6102cf366004611239565b6109fb565b6000546101f9906001600160a01b031681565b6102246102f53660046112c3565b610a5e565b6101c3610aa8565b610224610310366004611167565b610ab5565b6102246103233660046111c1565b610b15565b610224610336366004611343565b610b81565b6101c3610349366004611167565b610c69565b6101c3610d54565b6101a6610364366004611239565b6001600160a01b031660009081526007602052604090205460ff1690565b610224610390366004611239565b610d61565b6101c3610dad565b6101a66103ab3660046113de565b600660209081526000928352604080842090915290825290205460ff1681565b6102246103d9366004611239565b610dba565b60006301ffc9a760e01b6001600160e01b03198316148061040f57506380ac58cd60e01b6001600160e01b03198316145b8061042a5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6001805461043d90611411565b80601f016020809104026020016040519081016040528092919081815260200182805461046990611411565b80156104b65780601f1061048b576101008083540402835291602001916104b6565b820191906000526020600020905b81548152906001019060200180831161049957829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b03163381148061050757506001600160a01b038116600090815260066020908152604080832033845290915290205460ff165b6105495760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000546001600160a01b031633146105cf5760405162461bcd60e51b815260040161054090611445565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000818152600360205260409020546001600160a01b038481169116146106505760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610540565b6001600160a01b03821661069a5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610540565b336001600160a01b03841614806106d457506001600160a01b038316600090815260066020908152604080832033845290915290205460ff165b806106f557506000818152600560205260409020546001600160a01b031633145b6107325760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610540565b6001600160a01b0380841660008181526004602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b03199081168317909155600590925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000546001600160a01b031633146107eb5760405162461bcd60e51b815260040161054090611445565b604080516000815260001960208201527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c910160405180910390a1565b3360009081526007602052604081205460ff161515810361085c576040516365adc53760e11b815260040160405180910390fd5b6108668383610e2f565b50919050565b6108778383836105fa565b6001600160a01b0382163b15806109205750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af11580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610914919061146b565b6001600160e01b031916145b61095f5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610540565b505050565b3360009081526007602052604081205460ff1615159003610998576040516365adc53760e11b815260040160405180910390fd5b6109a181610f3a565b50565b6000818152600360205260409020546001600160a01b0316806109f65760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610540565b919050565b60006001600160a01b038216610a425760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610540565b506001600160a01b031660009081526004602052604090205490565b6000546001600160a01b03163314610a885760405162461bcd60e51b815260040161054090611445565b6009610a9482826114d6565b5050600880546001600160a01b0319169055565b6002805461043d90611411565b6000546001600160a01b03163314610adf5760405162461bcd60e51b815260040161054090611445565b6040518181527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a150565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610b8c8585856105fa565b6001600160a01b0384163b1580610c235750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610bd49033908a90899089908990600401611596565b6020604051808303816000875af1158015610bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c17919061146b565b6001600160e01b031916145b610c625760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610540565b5050505050565b6008546060906001600160a01b031615610cee5760085460405163c87b56dd60e01b8152600481018490526001600160a01b039091169063c87b56dd90602401600060405180830381865afa158015610cc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261042a91908101906115ea565b610cf7826109a4565b506000610d02611007565b90508051600003610d225760405180602001604052806000815250610d4d565b80610d2c84611099565b604051602001610d3d929190611661565b6040516020818303038152906040525b9392505050565b6009805461043d90611411565b6000546001600160a01b03163314610d8b5760405162461bcd60e51b815260040161054090611445565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600a805461043d90611411565b6000546001600160a01b03163314610de45760405162461bcd60e51b815260040161054090611445565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001600160a01b038216610e795760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610540565b6000818152600360205260409020546001600160a01b031615610ecf5760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b6044820152606401610540565b6001600160a01b038216600081815260046020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000818152600360205260409020546001600160a01b031680610f8c5760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610540565b6001600160a01b038116600081815260046020908152604080832080546000190190558583526003825280832080546001600160a01b031990811690915560059092528083208054909216909155518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60606009805461101690611411565b80601f016020809104026020016040519081016040528092919081815260200182805461104290611411565b801561108f5780601f106110645761010080835404028352916020019161108f565b820191906000526020600020905b81548152906001019060200180831161107257829003601f168201915b5050505050905090565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806110b35750819003601f19909101908152919050565b6001600160e01b0319811681146109a157600080fd5b60006020828403121561110557600080fd5b8135610d4d816110dd565b60005b8381101561112b578181015183820152602001611113565b50506000910152565b6020815260008251806020840152611153816040850160208701611110565b601f01601f19169190910160400192915050565b60006020828403121561117957600080fd5b5035919050565b80356001600160a01b03811681146109f657600080fd5b600080604083850312156111aa57600080fd5b6111b383611180565b946020939093013593505050565b600080604083850312156111d457600080fd5b6111dd83611180565b9150602083013580151581146111f257600080fd5b809150509250929050565b60008060006060848603121561121257600080fd5b61121b84611180565b925061122960208501611180565b9150604084013590509250925092565b60006020828403121561124b57600080fd5b610d4d82611180565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561129357611293611254565b604052919050565b600067ffffffffffffffff8211156112b5576112b5611254565b50601f01601f191660200190565b6000602082840312156112d557600080fd5b813567ffffffffffffffff8111156112ec57600080fd5b8201601f810184136112fd57600080fd5b803561131061130b8261129b565b61126a565b81815285602083850101111561132557600080fd5b81602084016020830137600091810160200191909152949350505050565b60008060008060006080868803121561135b57600080fd5b61136486611180565b945061137260208701611180565b935060408601359250606086013567ffffffffffffffff8082111561139657600080fd5b818801915088601f8301126113aa57600080fd5b8135818111156113b957600080fd5b8960208285010111156113cb57600080fd5b9699959850939650602001949392505050565b600080604083850312156113f157600080fd5b6113fa83611180565b915061140860208401611180565b90509250929050565b600181811c9082168061142557607f821691505b60208210810361086657634e487b7160e01b600052602260045260246000fd5b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b60006020828403121561147d57600080fd5b8151610d4d816110dd565b601f82111561095f57600081815260208120601f850160051c810160208610156114af5750805b601f850160051c820191505b818110156114ce578281556001016114bb565b505050505050565b815167ffffffffffffffff8111156114f0576114f0611254565b611504816114fe8454611411565b84611488565b602080601f83116001811461153957600084156115215750858301515b600019600386901b1c1916600185901b1785556114ce565b600085815260208120601f198616915b8281101561156857888601518255948401946001909101908401611549565b50858210156115865787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b6000602082840312156115fc57600080fd5b815167ffffffffffffffff81111561161357600080fd5b8201601f8101841361162457600080fd5b805161163261130b8261129b565b81815285602083850101111561164757600080fd5b611658826020830160208601611110565b95945050505050565b60008351611673818460208801611110565b835190830190611687818360208801611110565b0194935050505056fea264697066735822122008a4d72451653b42d9163c0496812bb61b739b4afc1c71e625c1f9624cf5060b64736f6c63430008110033

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000001f4250582041756374696f6e2050726f6365656420436c61696d20546f6b656e00000000000000000000000000000000000000000000000000000000000000000f42505841756374696f6e436c61696d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002b68747470733a2f2f6d657461646174612e6270782e61756374696f6e2f636c61696d2d7469636b6574732f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004468747470733a2f2f6d657461646174612e6270782e61756374696f6e2f636c61696d2d7469636b6574732f636c61696d2d7469636b65742d6f70656e7365612e6a736f6e00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): BPX Auction Proceed Claim Token
Arg [1] : symbol_ (string): BPXAuctionClaim
Arg [2] : baseTokenURI (string): https://metadata.bpx.auction/claim-tickets/
Arg [3] : _contractURI (string): https://metadata.bpx.auction/claim-tickets/claim-ticket-opensea.json

-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [4] : 000000000000000000000000000000000000000000000000000000000000001f
Arg [5] : 4250582041756374696f6e2050726f6365656420436c61696d20546f6b656e00
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [7] : 42505841756374696f6e436c61696d0000000000000000000000000000000000
Arg [8] : 000000000000000000000000000000000000000000000000000000000000002b
Arg [9] : 68747470733a2f2f6d657461646174612e6270782e61756374696f6e2f636c61
Arg [10] : 696d2d7469636b6574732f000000000000000000000000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000044
Arg [12] : 68747470733a2f2f6d657461646174612e6270782e61756374696f6e2f636c61
Arg [13] : 696d2d7469636b6574732f636c61696d2d7469636b65742d6f70656e7365612e
Arg [14] : 6a736f6e00000000000000000000000000000000000000000000000000000000


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.