APE Price: $0.68 (+1.29%)
    /

    Token

    NFTs2Me Owners (N2MOwners)

    Overview

    Max Total Supply

    0 N2MOwners

    Holders

    2,245

    Market

    Volume (24H)

    N/A

    Min Price (24H)

    N/A

    Max Price (24H)

    N/A
    Balance
    1 N2MOwners
    0xcfde625afc6672abdad9e3df6d9f9c6576f71876
    Loading...
    Loading
    Loading...
    Loading
    Loading...
    Loading

    Click here to update the token information / general information
    This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

    Contract Source Code Verified (Exact Match)

    Contract Name:
    N2MFactory

    Compiler Version
    v0.8.27+commit.40a35a09

    Optimization Enabled:
    Yes with 151 runs

    Other Settings:
    cancun EvmVersion
    File 1 of 31 : N2MFactory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /** ---------------------------------------------------------------------------- //
    * //
    * Smart contract generated by https://nfts2me.com //
    * //
    * .::. //
    * ...... //
    * .... ::. //
    * .:.. :: ... //
    * ..:. :: ... //
    * ::. ..:-- ::. ... //
    * .: ..:::::-==: :::::.. : //
    * .: :::::::-====: :::::::: : //
    * .: :::::::-======. :::::::: : //
    * .: :::::::-=======-:::::::: : //
    * .: :::::::-========-::::::: : //
    * .: ::::::::========-::::::: : //
    * .: :::::::. .======-::::::: : //
    * .: :::::::. :====-::::::: : //
    * .: .:::::. -==-:::::. : //
    * .:. .:. .--:.. ... //
    * .:. :. ... //
    * .... :. .... //
    * .:. .:. //
    * .::::. //
    * :--. //
    * //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 2 of 31 : README.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /** ---------------------------------------------------------------------------- //
    * //
    * Smart contract generated by https://nfts2me.com //
    * //
    * .::. //
    * ...... //
    * .... ::. //
    * .:.. :: ... //
    * ..:. :: ... //
    * ::. ..:-- ::. ... //
    * .: ..:::::-==: :::::.. : //
    * .: :::::::-====: :::::::: : //
    * .: :::::::-======. :::::::: : //
    * .: :::::::-=======-:::::::: : //
    * .: :::::::-========-::::::: : //
    * .: ::::::::========-::::::: : //
    * .: :::::::. .======-::::::: : //
    * .: :::::::. :====-::::::: : //
    * .: .:::::. -==-:::::. : //
    * .:. .:. .--:.. ... //
    * .:. :. ... //
    * .... :. .... //
    * .:. .:. //
    * .::::. //
    * :--. //
    * //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 3 of 31 : IERC4907.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: CC0-1.0
    pragma solidity ^0.8.27;
    interface IERC4907 {
    /// Logged when the user of a token assigns a new user or updates expires
    /// @notice Emitted when the `user` of an NFT or the `expires` of the `user` is changed
    /// The zero address for user indicates that there is no user address
    event UpdateUser(uint256 indexed tokenId, address indexed user, uint64 expires);
    /// @notice set the user and expires of a NFT
    /// @dev The zero address indicates there is no user
    /// Throws if `tokenId` is not valid NFT
    /// @param user The new user of the NFT
    /// @param expires UNIX timestamp, The new user could use the NFT before expires
    function setUser(uint256 tokenId, address user, uint64 expires) external ;
    /// @notice Get the user address of an NFT
    /// @dev The zero address indicates that there is no user or the user is expired
    /// @param tokenId The NFT to get the user address for
    /// @return The user address for this NFT
    function userOf(uint256 tokenId) external view returns(address);
    /// @notice Get the user expires of an NFT
    /// @dev The zero value indicates that there is no user
    /// @param tokenId The NFT to get the user expires for
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 4 of 31 : IERC5192.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // SPDX-License-Identifier: CC0-1.0
    pragma solidity ^0.8.27;
    interface IERC5192 {
    /// @notice Emitted when the locking status is changed to locked.
    /// @dev If a token is minted and the status is locked, this event should be emitted.
    /// @param tokenId The identifier for a token.
    event Locked(uint256 tokenId);
    /// @notice Emitted when the locking status is changed to unlocked.
    /// @dev If a token is minted and the status is unlocked, this event should be emitted.
    /// @param tokenId The identifier for a token.
    event Unlocked(uint256 tokenId);
    /// @notice Returns the locking status of an Soulbound Token
    /// @dev SBTs assigned to zero address are considered invalid, and queries
    /// about them do throw.
    /// @param tokenId The identifier for an SBT.
    function locked(uint256 tokenId) external view returns (bool);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 5 of 31 : IERC7496.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: CC0-1.0
    pragma solidity ^0.8.27;
    interface IERC7496 {
    /// Events
    event TraitUpdated(bytes32 indexed traitKey, uint256 tokenId, bytes32 traitValue);
    event TraitUpdatedRange(bytes32 indexed traitKey, uint256 fromTokenId, uint256 toTokenId);
    event TraitUpdatedRangeUniformValue(
    bytes32 indexed traitKey, uint256 fromTokenId, uint256 toTokenId, bytes32 traitValue
    );
    event TraitUpdatedList(bytes32 indexed traitKey, uint256[] tokenIds);
    event TraitUpdatedListUniformValue(bytes32 indexed traitKey, uint256[] tokenIds, bytes32 traitValue);
    event TraitMetadataURIUpdated();
    /// Getters
    function getTraitValue(uint256 tokenId, bytes32 traitKey) external view returns (bytes32 traitValue);
    function getTraitValues(uint256 tokenId, bytes32[] calldata traitKeys)
    external
    view
    returns (bytes32[] memory traitValues);
    function getTraitMetadataURI() external view returns (string memory uri);
    /// Setters
    function setTrait(uint256 tokenId, bytes32 traitKey, bytes32 traitValue) external;
    /// Errors
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 6 of 31 : IERC7572.sol
    1
    2
    3
    4
    5
    6
    7
    8
    // SPDX-License-Identifier: CC0-1.0
    pragma solidity ^0.8.27;
    interface IERC7572 {
    function contractURI() external view returns (string memory);
    event ContractURIUpdated();
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 7 of 31 : IN2MCommon.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /** ---------------------------------------------------------------------------- //
    * //
    * Smart contract generated by https://nfts2me.com //
    * //
    * .::. //
    * ...... //
    * .... ::. //
    * .:.. :: ... //
    * ..:. :: ... //
    * ::. ..:-- ::. ... //
    * .: ..:::::-==: :::::.. : //
    * .: :::::::-====: :::::::: : //
    * .: :::::::-======. :::::::: : //
    * .: :::::::-=======-:::::::: : //
    * .: :::::::-========-::::::: : //
    * .: ::::::::========-::::::: : //
    * .: :::::::. .======-::::::: : //
    * .: :::::::. :====-::::::: : //
    * .: .:::::. -==-:::::. : //
    * .:. .:. .--:.. ... //
    * .:. :. ... //
    * .... :. .... //
    * .:. .:. //
    * .::::. //
    * :--. //
    * //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 8 of 31 : IN2MCommonStorage.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /** ---------------------------------------------------------------------------- //
    * //
    * Smart contract generated by https://nfts2me.com //
    * //
    * .::. //
    * ...... //
    * .... ::. //
    * .:.. :: ... //
    * ..:. :: ... //
    * ::. ..:-- ::. ... //
    * .: ..:::::-==: :::::.. : //
    * .: :::::::-====: :::::::: : //
    * .: :::::::-======. :::::::: : //
    * .: :::::::-=======-:::::::: : //
    * .: :::::::-========-::::::: : //
    * .: ::::::::========-::::::: : //
    * .: :::::::. .======-::::::: : //
    * .: :::::::. :====-::::::: : //
    * .: .:::::. -==-:::::. : //
    * .:. .:. .--:.. ... //
    * .:. :. ... //
    * .... :. .... //
    * .:. .:. //
    * .::::. //
    * :--. //
    * //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 9 of 31 : IN2MCrossFactory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /** ---------------------------------------------------------------------------- //
    * //
    * Smart contract generated by https://nfts2me.com //
    * //
    * .::. //
    * ...... //
    * .... ::. //
    * .:.. :: ... //
    * ..:. :: ... //
    * ::. ..:-- ::. ... //
    * .: ..:::::-==: :::::.. : //
    * .: :::::::-====: :::::::: : //
    * .: :::::::-======. :::::::: : //
    * .: :::::::-=======-:::::::: : //
    * .: :::::::-========-::::::: : //
    * .: ::::::::========-::::::: : //
    * .: :::::::. .======-::::::: : //
    * .: :::::::. :====-::::::: : //
    * .: .:::::. -==-:::::. : //
    * .:. .:. .--:.. ... //
    * .:. :. ... //
    * .... :. .... //
    * .:. .:. //
    * .::::. //
    * :--. //
    * //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 10 of 31 : IN2MFactory.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /** ---------------------------------------------------------------------------- //
    * //
    * Smart contract generated by https://nfts2me.com //
    * //
    * .::. //
    * ...... //
    * .... ::. //
    * .:.. :: ... //
    * ..:. :: ... //
    * ::. ..:-- ::. ... //
    * .: ..:::::-==: :::::.. : //
    * .: :::::::-====: :::::::: : //
    * .: :::::::-======. :::::::: : //
    * .: :::::::-=======-:::::::: : //
    * .: :::::::-========-::::::: : //
    * .: ::::::::========-::::::: : //
    * .: :::::::. .======-::::::: : //
    * .: :::::::. :====-::::::: : //
    * .: .:::::. -==-:::::. : //
    * .:. .:. .--:.. ... //
    * .:. :. ... //
    * .... :. .... //
    * .:. .:. //
    * .::::. //
    * :--. //
    * //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 11 of 31 : N2MVersion.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /** ---------------------------------------------------------------------------- //
    * //
    * Smart contract generated by https://nfts2me.com //
    * //
    * .::. //
    * ...... //
    * .... ::. //
    * .:.. :: ... //
    * ..:. :: ... //
    * ::. ..:-- ::. ... //
    * .: ..:::::-==: :::::.. : //
    * .: :::::::-====: :::::::: : //
    * .: :::::::-======. :::::::: : //
    * .: :::::::-=======-:::::::: : //
    * .: :::::::-========-::::::: : //
    * .: ::::::::========-::::::: : //
    * .: :::::::. .======-::::::: : //
    * .: :::::::. :====-::::::: : //
    * .: .:::::. -==-:::::. : //
    * .:. .:. .--:.. ... //
    * .:. :. ... //
    * .... :. .... //
    * .:. .:. //
    * .::::. //
    * :--. //
    * //
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 12 of 31 : draft-IERC6093.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Standard ERC20 Errors
    * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.
    */
    interface IERC20Errors {
    /**
    * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.
    * @param sender Address whose tokens are being transferred.
    * @param balance Current balance for the interacting account.
    * @param needed Minimum amount required to perform a transfer.
    */
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    /**
    * @dev Indicates a failure with the token `sender`. Used in transfers.
    * @param sender Address whose tokens are being transferred.
    */
    error ERC20InvalidSender(address sender);
    /**
    * @dev Indicates a failure with the token `receiver`. Used in transfers.
    * @param receiver Address to which tokens are being transferred.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 13 of 31 : IERC2981.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC2981.sol)
    pragma solidity ^0.8.20;
    import {IERC165} from "../utils/introspection/IERC165.sol";
    /**
    * @dev Interface for the NFT Royalty Standard.
    *
    * A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal
    * support for royalty payments across all NFT marketplaces and ecosystem participants.
    */
    interface IERC2981 is IERC165 {
    /**
    * @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of
    * exchange. The royalty amount is denominated and should be paid in that same unit of exchange.
    */
    function royaltyInfo(
    uint256 tokenId,
    uint256 salePrice
    ) external view returns (address receiver, uint256 royaltyAmount);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 14 of 31 : IERC721.sol
    1
    2
    3
    4
    5
    6
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC721.sol)
    pragma solidity ^0.8.20;
    import {IERC721} from "../token/ERC721/IERC721.sol";
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 15 of 31 : IERC20.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Interface of the ERC20 standard as defined in the EIP.
    */
    interface IERC20 {
    /**
    * @dev Emitted when `value` tokens are moved from one account (`from`) to
    * another (`to`).
    *
    * Note that `value` may be zero.
    */
    event Transfer(address indexed from, address indexed to, uint256 value);
    /**
    * @dev Emitted when the allowance of a `spender` for an `owner` is set by
    * a call to {approve}. `value` is the new allowance.
    */
    event Approval(address indexed owner, address indexed spender, uint256 value);
    /**
    * @dev Returns the value of tokens in existence.
    */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 16 of 31 : ERC721.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/ERC721.sol)
    pragma solidity ^0.8.20;
    import {IERC721} from "./IERC721.sol";
    import {IERC721Receiver} from "./IERC721Receiver.sol";
    import {IERC721Metadata} from "./extensions/IERC721Metadata.sol";
    import {Context} from "../../utils/Context.sol";
    import {Strings} from "../../utils/Strings.sol";
    import {IERC165, ERC165} from "../../utils/introspection/ERC165.sol";
    import {IERC721Errors} from "../../interfaces/draft-IERC6093.sol";
    /**
    * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including
    * the Metadata extension, but not including the Enumerable extension, which is available separately as
    * {ERC721Enumerable}.
    */
    abstract contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Errors {
    using Strings for uint256;
    // Token name
    string private _name;
    // Token symbol
    string private _symbol;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 17 of 31 : IERC721Metadata.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/extensions/IERC721Metadata.sol)
    pragma solidity ^0.8.20;
    import {IERC721} from "../IERC721.sol";
    /**
    * @title ERC-721 Non-Fungible Token Standard, optional metadata extension
    * @dev See https://eips.ethereum.org/EIPS/eip-721
    */
    interface IERC721Metadata is IERC721 {
    /**
    * @dev Returns the token collection name.
    */
    function name() external view returns (string memory);
    /**
    * @dev Returns the token collection symbol.
    */
    function symbol() external view returns (string memory);
    /**
    * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.
    */
    function tokenURI(uint256 tokenId) external view returns (string memory);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 18 of 31 : IERC721.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol)
    pragma solidity ^0.8.20;
    import {IERC165} from "../../utils/introspection/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);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 19 of 31 : IERC721Receiver.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721Receiver.sol)
    pragma solidity ^0.8.20;
    /**
    * @title ERC721 token receiver interface
    * @dev Interface for any contract that wants to support safeTransfers
    * from ERC721 asset contracts.
    */
    interface IERC721Receiver {
    /**
    * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
    * by `operator` from `from`, this function is called.
    *
    * It must return its Solidity selector to confirm the token transfer.
    * If any other value is returned or the interface is not implemented by the recipient, the transfer will be
    * reverted.
    *
    * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`.
    */
    function onERC721Received(
    address operator,
    address from,
    uint256 tokenId,
    bytes calldata data
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 20 of 31 : Context.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Provides information about the current execution context, including the
    * sender of the transaction and its data. While these are generally available
    * via msg.sender and msg.data, they should not be accessed in such a direct
    * manner, since when dealing with meta-transactions the account sending and
    * paying for execution may not be the actual sender (as far as an application
    * is concerned).
    *
    * This contract is only required for intermediate, library-like contracts.
    */
    abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
    return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
    return msg.data;
    }
    function _contextSuffixLength() internal view virtual returns (uint256) {
    return 0;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 21 of 31 : ERC165.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)
    pragma solidity ^0.8.20;
    import {IERC165} from "./IERC165.sol";
    /**
    * @dev Implementation of the {IERC165} interface.
    *
    * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check
    * for the additional interface id that will be supported. For example:
    *
    * ```solidity
    * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
    * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);
    * }
    * ```
    */
    abstract contract ERC165 is IERC165 {
    /**
    * @dev See {IERC165-supportsInterface}.
    */
    function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
    return interfaceId == type(IERC165).interfaceId;
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 22 of 31 : IERC165.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)
    pragma solidity ^0.8.20;
    /**
    * @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);
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 23 of 31 : Math.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Standard math utilities missing in the Solidity language.
    */
    library Math {
    /**
    * @dev Muldiv operation overflow.
    */
    error MathOverflowedMulDiv();
    enum Rounding {
    Floor, // Toward negative infinity
    Ceil, // Toward positive infinity
    Trunc, // Toward zero
    Expand // Away from zero
    }
    /**
    * @dev Returns the addition of two unsigned integers, with an overflow flag.
    */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
    unchecked {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 24 of 31 : SignedMath.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)
    pragma solidity ^0.8.20;
    /**
    * @dev Standard signed math utilities missing in the Solidity language.
    */
    library SignedMath {
    /**
    * @dev Returns the largest of two signed numbers.
    */
    function max(int256 a, int256 b) internal pure returns (int256) {
    return a > b ? a : b;
    }
    /**
    * @dev Returns the smallest of two signed numbers.
    */
    function min(int256 a, int256 b) internal pure returns (int256) {
    return a < b ? a : b;
    }
    /**
    * @dev Returns the average of two signed numbers without overflow.
    * The result is rounded towards zero.
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 25 of 31 : Strings.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    // OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)
    pragma solidity ^0.8.20;
    import {Math} from "./math/Math.sol";
    import {SignedMath} from "./math/SignedMath.sol";
    /**
    * @dev String operations.
    */
    library Strings {
    bytes16 private constant HEX_DIGITS = "0123456789abcdef";
    uint8 private constant ADDRESS_LENGTH = 20;
    /**
    * @dev The `value` string doesn't fit in the specified `length`.
    */
    error StringsInsufficientHexLength(uint256 value, uint256 length);
    /**
    * @dev Converts a `uint256` to its ASCII `string` decimal representation.
    */
    function toString(uint256 value) internal pure returns (string memory) {
    unchecked {
    uint256 length = Math.log10(value) + 1;
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 26 of 31 : Ownable.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Simple single owner authorization mixin.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/auth/Ownable.sol)
    ///
    /// @dev Note:
    /// This implementation does NOT auto-initialize the owner to `msg.sender`.
    /// You MUST call the `_initializeOwner` in the constructor / initializer.
    ///
    /// While the ownable portion follows
    /// [EIP-173](https://eips.ethereum.org/EIPS/eip-173) for compatibility,
    /// the nomenclature for the 2-step ownership handover may be unique to this codebase.
    abstract contract Ownable {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The caller is not authorized to call the function.
    error Unauthorized();
    /// @dev The `newOwner` cannot be the zero address.
    error NewOwnerIsZeroAddress();
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* EVENTS */
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 27 of 31 : CREATE3.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Deterministic deployments agnostic to the initialization code.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/CREATE3.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/CREATE3.sol)
    /// @author Modified from 0xSequence (https://github.com/0xSequence/create3/blob/master/contracts/Create3.sol)
    library CREATE3 {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev Unable to deploy the contract.
    error DeploymentFailed();
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* BYTECODE CONSTANTS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /**
    * -------------------------------------------------------------------+
    * Opcode | Mnemonic | Stack | Memory |
    * -------------------------------------------------------------------|
    * 36 | CALLDATASIZE | cds | |
    * 3d | RETURNDATASIZE | 0 cds | |
    * 3d | RETURNDATASIZE | 0 0 cds | |
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 28 of 31 : ECDSA.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Gas optimized ECDSA wrapper.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/ECDSA.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/ECDSA.sol)
    /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/ECDSA.sol)
    ///
    /// @dev Note:
    /// - The recovery functions use the ecrecover precompile (0x1).
    /// - As of Solady version 0.0.68, the `recover` variants will revert upon recovery failure.
    /// This is for more safety by default.
    /// Use the `tryRecover` variants if you need to get the zero address back
    /// upon recovery failure instead.
    /// - As of Solady version 0.0.134, all `bytes signature` variants accept both
    /// regular 65-byte `(r, s, v)` and EIP-2098 `(r, vs)` short form signatures.
    /// See: https://eips.ethereum.org/EIPS/eip-2098
    /// This is for calldata efficiency on smart accounts prevalent on L2s.
    ///
    /// WARNING! Do NOT directly use signatures as unique identifiers:
    /// - The recovery operations do NOT check if a signature is non-malleable.
    /// - Use a nonce in the digest to prevent replay attacks on the same contract.
    /// - Use EIP-712 for the digest to prevent replay attacks across different chains and contracts.
    /// EIP-712 also enables readable signing of typed data for better user safety.
    /// - If you need a unique hash from a signature, please use the `canonicalHash` functions.
    library ECDSA {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 29 of 31 : LibClone.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Minimal proxy library.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibClone.sol)
    /// @author Minimal proxy by 0age (https://github.com/0age)
    /// @author Clones with immutable args by wighawag, zefram.eth, Saw-mon & Natalie
    /// (https://github.com/Saw-mon-and-Natalie/clones-with-immutable-args)
    /// @author Minimal ERC1967 proxy by jtriley-eth (https://github.com/jtriley-eth/minimum-viable-proxy)
    ///
    /// @dev Minimal proxy:
    /// Although the sw0nt pattern saves 5 gas over the ERC1167 pattern during runtime,
    /// it is not supported out-of-the-box on Etherscan. Hence, we choose to use the 0age pattern,
    /// which saves 4 gas over the ERC1167 pattern during runtime, and has the smallest bytecode.
    /// - Automatically verified on Etherscan.
    ///
    /// @dev Minimal proxy (PUSH0 variant):
    /// This is a new minimal proxy that uses the PUSH0 opcode introduced during Shanghai.
    /// It is optimized first for minimal runtime gas, then for minimal bytecode.
    /// The PUSH0 clone functions are intentionally postfixed with a jarring "_PUSH0" as
    /// many EVM chains may not support the PUSH0 opcode in the early months after Shanghai.
    /// Please use with caution.
    /// - Automatically verified on Etherscan.
    ///
    /// @dev Clones with immutable args (CWIA):
    /// The implementation of CWIA here is does NOT append the immutable args into the calldata
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 30 of 31 : LibString.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Library for converting numbers into strings and other string operations.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibString.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)
    ///
    /// @dev Note:
    /// For performance and bytecode compactness, most of the string operations are restricted to
    /// byte strings (7-bit ASCII), except where otherwise specified.
    /// Usage of byte string operations on charsets with runes spanning two or more bytes
    /// can lead to undefined behavior.
    library LibString {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The length of the output is too small to contain all the hex digits.
    error HexLengthInsufficient();
    /// @dev The length of the string is more than 32 bytes.
    error TooBigForSmallString();
    /// @dev The input string must be a 7-bit ASCII.
    error StringNot7BitASCII();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    File 31 of 31 : SafeTransferLib.sol
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.4;
    /// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
    /// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)
    /// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)
    /// @author Permit2 operations from (https://github.com/Uniswap/permit2/blob/main/src/libraries/Permit2Lib.sol)
    ///
    /// @dev Note:
    /// - For ETH transfers, please use `forceSafeTransferETH` for DoS protection.
    /// - For ERC20s, this implementation won't check that a token has code,
    /// responsibility is delegated to the caller.
    library SafeTransferLib {
    /*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
    /* CUSTOM ERRORS */
    /*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
    /// @dev The ETH transfer has failed.
    error ETHTransferFailed();
    /// @dev The ERC20 `transferFrom` has failed.
    error TransferFromFailed();
    /// @dev The ERC20 `transfer` has failed.
    error TransferFailed();
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Settings
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    {
    "evmVersion": "cancun",
    "optimizer": {
    "enabled": true,
    "runs": 151
    },
    "viaIR": true,
    "outputSelection": {
    "*": {
    "*": [
    "evm.bytecode",
    "evm.deployedBytecode",
    "devdoc",
    "userdoc",
    "metadata",
    "abi"
    ]
    }
    },
    "libraries": {}
    }
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Contract Security Audit

    Contract ABI

    [{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"delegatedCreationSigner","type":"address"},{"internalType":"bytes32","name":"type1","type":"bytes32"},{"internalType":"bytes32","name":"type2","type":"bytes32"},{"internalType":"address","name":"type1Address","type":"address"},{"internalType":"address","name":"type2Address","type":"address"}],"stateMutability":"payable","type":"constructor"},{"inputs":[],"name":"BalanceInvariant","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"},{"inputs":[],"name":"FactoryBalanceDecreased","type":"error"},{"inputs":[],"name":"FailedToDeploy","type":"error"},{"inputs":[],"name":"InvalidLengths","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","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":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","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":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initCode","type":"bytes"}],"name":"create3","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"collectionInformation","type":"bytes"},{"internalType":"bytes32","name":"collectionId","type":"bytes32"},{"internalType":"bytes32","name":"implementationType","type":"bytes32"}],"name":"createCollection","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"collectionInformation","type":"bytes"},{"internalType":"bytes32","name":"collectionId","type":"bytes32"},{"internalType":"bytes32","name":"implementationType","type":"bytes32"}],"name":"createCollectionN2M_000oEFvt","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"collectionInformation","type":"bytes"},{"internalType":"bytes32","name":"collectionId","type":"bytes32"},{"internalType":"bytes32","name":"implementationType","type":"bytes32"}],"name":"createCrossCollection","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"dynamicAddress","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initData","type":"bytes"}],"name":"createNewDynamic","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"collectionInformation","type":"bytes"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"bytes32","name":"collectionId","type":"bytes32"},{"internalType":"bytes32","name":"implementationType","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"delegatedCreation","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"CIDHash","type":"bytes32"}],"name":"getIPFSURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"implementationType","type":"bytes32"}],"name":"getImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"collectionAndSelfcalls","type":"uint256"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"collectionsAndCalls","type":"uint256[]"},{"internalType":"uint256[]","name":"collectionsValues","type":"uint256[]"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicallMulticollection","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"collectionAndSelfcalls","type":"uint256"},{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicallN2M_001Taw5z","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"n2mVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"implementationTypesAndAddresses","type":"bytes32[]"},{"internalType":"address","name":"delegatedCreationSigner_","type":"address"},{"internalType":"string","name":"ownerTokenURI","type":"string"}],"name":"newContractImplementationsAndSigner","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"implementationType","type":"bytes32"},{"internalType":"bytes32","name":"collectionId","type":"bytes32"}],"name":"predictDeterministicAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","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":"tokenId","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":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":"to","type":"address"}],"name":"transferCollectionOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"erc20","type":"address"}],"name":"withdrawTo","outputs":[],"stateMutability":"payable","type":"function"}]

    608060405261252460c081380391826100178161041d565b9384928339810103126104195761002d81610442565b9061003a60208201610442565b90604081015160608201519261005e60a061005760808601610442565b9401610442565b94610069602061041d565b5f8152610076602061041d565b5f8152815190916001600160401b03821161034a5781906100975f54610456565b601f81116103cc575b50602090601f8311600114610369575f9261035e575b50508160011b915f199060031b1c1916175f555b8051906001600160401b03821161034a5781906100e8600154610456565b601f81116102f1575b50602090601f831160011461028b575f92610280575b50508160011b915f199060031b1c1916176001555b610127600854610456565b601f8111610237575b50605f60089081555f9081527f68747470733a2f2f6d657461646174612e6e667473326d652e636f6d2f6170695f5160206125045f395f51905f52556e2f6f776e6572546f6b656e5552492f60881b7ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee4556001600160a01b0391909116638b78c6d819819055907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3600780546001600160a01b03199081166001600160a01b03938416179091555f92835260066020526040808420805483169584169590951790945593825290829020805490931693169290921790555161205f90816104a58239f35b60085f5261027a90601f0160051c5f5160206125045f395f51905f52017ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee561048e565b5f610130565b015190505f80610107565b60015f9081528281209350601f198516905b8181106102d957509084600195949392106102c1575b505050811b0160015561011c565b01515f1960f88460031b161c191690555f80806102b3565b9293602060018192878601518155019501930161029d565b60015f5261033a907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f850160051c81019160208610610340575b601f0160051c019061048e565b5f6100f1565b909150819061032d565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b6565b5f8080528281209350601f198516905b8181106103b4575090846001959493921061039c575b505050811b015f556100ca565b01515f1960f88460031b161c191690555f808061038f565b92936020600181928786015181550195019301610379565b5f8052610413907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f850160051c8101916020861061034057601f0160051c019061048e565b5f6100a0565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761034a57604052565b51906001600160a01b038216820361041957565b90600182811c92168015610484575b602083101461047057565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610465565b818110610499575050565b5f815560010161048e56fe60806040526004361015610011575f80fd5b5f3560e01c80156101b757806001146101c657806301ffc9a71461020257806303f30d08146101fd57806304dad935146101f857806306fdde03146101f3578063081812fc146101ee578063095ea7b3146101e957806323b872dd146101e45780632a55205a146101df5780632af25238146101da57806338395f19146101d55780633c2e0828146101d057806342842e0e146101cb5780635ae401dc146101c65780636352211e146101c157806367c0e310146101bc5780636a064fce146101b75780636d07dbf8146101b25780636dce4ab0146101ad57806370a08231146101a85780637ce27a27146101a35780638da5cb5b1461019e57806395905e211461019957806395d89b4114610194578063a22cb4651461018f578063b88d4fde1461018a578063c87b56dd14610185578063c91df5cc14610180578063cb93c48f1461017b578063e985e9c5146101765763f2fde38b14610171575f80fd5b6112cc565b6112a0565b611284565b611200565b61110b565b6110bd565b611005565b610fb0565b610ec1565b610e95565b610d1d565b610ccc565b610c0b565b610b78565b61026e565b610afc565b610acc565b6102bf565b610aa3565b610a71565b6109b6565b610975565b610884565b61086d565b610759565b61071d565b6106c9565b610644565b61041d565b6103ec565b9181601f84011215610234578235916001600160401b038311610234576020838186019501011161023457565b5f80fd5b606060031982011261023457600435906001600160401b0382116102345761026291600401610207565b90916024359060443590565b61028d61027a36610238565b926102889291923384611978565b611377565b005b9181601f84011215610234578235916001600160401b038311610234576020808501948460051b01011161023457565b6040366003190112610234576004356024356001600160401b038111610234576102ed90369060040161028f565b5f926001600160a01b0381169060a01c5b80851061039f57508061030d57005b61033e610332610325835f52600260205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b330361039157925b81811061034f57005b5f8061035c8385876113e6565b9061036c6040518093819361133b565b039082885af161037a611348565b90156103895750600101610346565b602081519101fd5b6282b42960e81b5f5260045ffd5b935f806103ad8386886113e6565b906103bd6040518093819361133b565b0390305af46103ca611348565b90156103895750600101936102fe565b6001600160e01b031981160361023457565b3461023457602036600319011261023457602061041360043561040e816103da565b61142c565b6040519015158152f35b6060366003190112610234576004356001600160401b0381116102345761044890369060040161028f565b6024356001600160401b0381116102345761046790369060040161028f565b92906044356001600160401b0381116102345761048890369060040161028f565b9290856105df575b5f925f955f5b8181106104bd575050505050036104ae57036104ae57005b631df89e8b60e01b5f5260045ffd5b6104c88183876114a1565b356001600160a01b0381169060a01c908061053557505f5b8181106104f35750506001905b01610496565b5f806105096105018b6114b1565b9a8c8a6113e6565b906105196040518093819361133b565b0390305af4610526611348565b901561038957506001016104e0565b61054d610332610325835f52600260205260405f2090565b3303610391579088915f5b82811061056b57505050506001906104ed565b909192985f908d8d106105c1575b5f916105918261058a8594916114b1565b9d8c6113e6565b906105a16040518093819361133b565b0391865af16105ae611348565b9015610389575060010190899291610558565b90508c6105cd8d6114b1565b9c6105d891896114a1565b3590610579565b6105e93447611494565b806105f5575b50610490565b5f80808093736db16927dbc38aa39f0ee2cb545e15efd813fb995af1505f6105ef565b600435906001600160a01b038216820361023457565b602435906001600160a01b038216820361023457565b602036600319011261023457610658610618565b6001600160a01b039061066c9033906119db565b161561067457005b637e27328960e01b5f523360045260245ffd5b5f91031261023457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206106c6928181520190610691565b90565b34610234575f366003190112610234576107196040516106ea6040826108ee565b600e81526d4e465473324d65204f776e65727360901b6020820152604051918291602083526020830190610691565b0390f35b346102345760203660031901126102345760043561073a81611b11565b505f526004602052602060018060a01b0360405f205416604051908152f35b3461023457604036600319011261023457610772610618565b6024359061077f82611b11565b33151580610820575b8061080f575b6107fa5761028d926107db9181906001600160a01b0385811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f52600460205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b63a9fbf51f60e01b5f90815233600452602490fd5b5061081a33826118fc565b1561078e565b506001600160a01b038116331415610788565b6060906003190112610234576004356001600160a01b038116810361023457906024356001600160a01b0381168103610234579060443590565b346102345761028d61087e36610833565b916114bf565b34610234576040366003190112610234576024356101f48102908082046101f414901517156108d557604090612710825191736db16927dbc38aa39f0ee2cb545e15efd813fb998352046020820152f35b611480565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761090f57604052565b6108da565b6001600160401b03811161090f57601f01601f191660200190565b81601f820112156102345780359061094682610914565b9261095460405194856108ee565b8284526020838301011161023457815f926020809301838601378301015290565b6040366003190112610234576024356004356001600160401b038211610234576109a661028d92369060040161092f565b6109b03383611978565b34611b9e565b610a305f806109c436610238565b6109d2969293963383611978565b8452600660205260408085205481516c5af43d3d93803e602a57fd5bf360581b818401526001600160a01b03909116602882015273602c3d8160093d39f33d3d3d3d363d3d37363d7360148201526035815260608101909152611b45565b93610a406040518093819361133b565b039082855af190610a4f611348565b9115610a685761028d906001600160a01b03163361199e565b50602081519101fd5b34610234576020366003190112610234576004355f526006602052602060018060a01b0360405f205416604051908152f35b346102345761028d610ab436610833565b9060405192610ac46020856108ee565b5f84526116b7565b34610234576020366003190112610234576020610aea600435611b11565b6040516001600160a01b039091168152f35b606036600319011261023457610b10610618565b602435906044356001600160401b03811161023457610b36610b48913690600401610207565b939092610b433383611978565b611f13565b82610b4f57005b825f9392849360405192839283378101848152039134905af1610b70611348565b901561038957005b3461023457604036600319011261023457600435602435905f52600660205260018060a01b0360405f2054166c5af43d3d93803e602a57fd5bf360215260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c205f60215260ff5f5360359081523060601b60015260159190915260555f90812091526040516001600160a01b039091168152602090f35b604036600319011261023457610c1f610618565b610c2761062e565b610c2f611be9565b5f80808047865af1506001600160a01b0381169182610c4a57005b610c8f92610c5b6020933090611c05565b60405163a9059cbb60e01b81526001600160a01b0390931660048401526024830152909283919082905f9082906044820190565b03925af18015610cc757610c9f57005b61028d9060203d602011610cc0575b610cb881836108ee565b810190611651565b503d610cae565b611666565b34610234576020366003190112610234576001600160a01b03610ced610618565b168015610d0a575f526003602052602060405f2054604051908152f35b6322718ad960e21b5f525f60045260245ffd5b60a0366003190112610234576004356001600160401b03811161023457610d48903690600401610207565b610d5061062e565b90604435606435916084356001600160401b03811161023457610d7a610de5913690600401610207565b90610d858786611978565b610de08886610db38a610da58b6040519485938c6020860198468a611671565b03601f1981018352826108ee565b5190206020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c60042090565b611c2a565b600754610dfa906001600160a01b0316610332565b6001600160a01b03909116908114159081610e81575b50610e7257610e315f9392610b4361032586955f52600660205260405f2090565b94610e416040518093819361133b565b039082865af191610e50611348565b9215610e6a5761028d92506001600160a01b03169061199e565b825160208401fd5b638baa579f60e01b5f5260045ffd5b6001600160a01b038616141590505f610e10565b34610234575f36600319011261023457638b78c6d819546040516001600160a01b039091168152602090f35b6060366003190112610234576004356001600160401b03811161023457610eec90369060040161028f565b610ef461062e565b6044356001600160401b03811161023457610f13903690600401610207565b929093610f1e611be9565b5f5b828110610f6f575050506001600160a01b038116610f4a575b5080610f4157005b61028d91611d04565b600780546001600160a01b0319166001600160a01b039092169190911790555f610f39565b80610faa610f8060019386866114a1565b356107db610f8f8488886114a1565b3591858060a01b03169160a01c5f52600660205260405f2090565b01610f20565b34610234575f36600319011261023457610719604051610fd16040826108ee565b60098152684e324d4f776e65727360b81b6020820152604051918291602083526020830190610691565b8015150361023457565b346102345760403660031901126102345761101e610618565b60243561102a81610ffb565b6001600160a01b0382169182156110aa57335f9081526005602090815260408083206001600160a01b0390941683529290522060ff1981541660ff831515161790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31604051806110a5339482919091602081019215159052565b0390a3005b82630b61174360e31b5f5260045260245ffd5b34610234576080366003190112610234576110d6610618565b6110de61062e565b90604435606435926001600160401b0384116102345761110561028d94369060040161092f565b926116b7565b34610234576020366003190112610234576004356040516329ffa82360e11b81526020816004816001600160a01b0386165afa908115610cc7576020610da56111ba610719956111b46111ba6111b4976111c7975f916111d3575b506111b46111ba61117646611e2b565b956111b46111ba6111a66111a061119b61033261033261119588611e2b565b97611b11565b611e2b565b96611e2b565b986040519e8f9d8e016117f9565b90611880565b602f60f81b815260010190565b604051918291826106b5565b6111f39150873d89116111f9575b6111eb81836108ee565b8101906117b2565b5f611166565b503d6111e1565b3461023457602036600319011261023457604051620b809160e51b602082015260043560248201525f60448201526025815261123d6045826108ee565b611245611892565b905f5b603a811061125c576107196111c7846118c5565b8061127161126c60019385611e70565b611ed1565b5f1a61127d82866118b4565b5301611248565b34610234575f3660031901126102345760206040516107ee8152f35b346102345760403660031901126102345760206104136112be610618565b6112c661062e565b906118fc565b6020366003190112610234576112e0610618565b6112e8611be9565b8060601b1561132e5760018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955005b637448fbae5f526004601cfd5b908092918237015f815290565b3d15611372573d9061135982610914565b9161136760405193846108ee565b82523d5f602084013e565b606090565b92906113995f9384938452600660205260018060a01b03604085205416611f13565b938160405192839283378101838152039082855af16113b6611348565b901561038957506113d0906001600160a01b03163361199e565b565b634e487b7160e01b5f52603260045260245ffd5b91908110156114275760051b81013590601e19813603018212156102345701908135916001600160401b038311610234576020018236038113610234579190565b6113d2565b6001600160e01b0319166301ffc9a760e01b811461147a576307f5828d60e41b811461147a576380ac58cd60e01b811461147a57635b5e139f60e01b811461147a5763152a902d60e11b1490565b50600190565b634e487b7160e01b5f52601160045260245ffd5b919082039182116108d557565b91908110156114275760051b0190565b5f1981146108d55760010190565b9091906001600160a01b038316801561163e575f838152600260205260409020546001600160a01b0316933361162e575b6001600160a01b0385169485151580611602575b6001600160a01b0383165f90815260036020526040902060018154019055611538836107db885f52600260205260405f2090565b8560405194887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4611597575b5050506001600160a01b031680830361157f57505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b6001600160a01b038516803b1561023457637699c77f60e01b84526001600160a01b039182166004850152911660248301525f908290604490829084905af18015610cc7576115e8575b8080611567565b806115f65f6115fc936108ee565b80610687565b5f6115e1565b61160b86611f51565b6001600160a01b0382165f90815260036020526040902080545f19019055611504565b611639843387611f73565b6114f0565b633250574960e11b5f525f60045260245ffd5b9081602091031261023457516106c681610ffb565b6040513d5f823e3d90fd5b90928092607897959694637ce27a2760e01b84526004840152602483013701926bffffffffffffffffffffffff199060601b166024840152603883015260588201520190565b9092916116c58185846114bf565b833b6116d2575b50505050565b6020916116f46040519485938493630a85bd0160e11b85523360048601611dfa565b03815f6001600160a01b0387165af15f9181611781575b506117455750611719611348565b805191908261173e57633250574960e11b5f526001600160a01b03821660045260245ffd5b9050602001fd5b6001600160e01b03191663757a42ff60e11b0161176657505f8080806116cc565b633250574960e11b5f526001600160a01b031660045260245ffd5b6117a491925060203d6020116117ab575b61179c81836108ee565b810190611de5565b905f61170b565b503d611792565b90816020910312610234575190565b90600182811c921680156117ef575b60208310146117db57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916117d0565b6008545f9291611808826117c1565b916001811690811561186e5750600114611820575050565b60085f90815292935090917ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b83821061185a5750500190565b60018160209254848601520191019061184d565b60ff1916825250811515909102019150565b805191908290602001825e015f815290565b604051606091906118a383826108ee565b603a815291601f1901366020840137565b908151811015611427570160200190565b906113d06118ee926040519384916734b833399d1797b160c11b60208401526028830190611880565b03601f1981018452836108ee565b6001600160a01b0382167388899dc0b84c6e726840e00dfb94abc6248825ec811461197057731e0049783f008a0085193e00003d00cd54003c7114611969576001600160a01b039081165f908152600560209081526040808320939094168252919091522060ff90541690565b5050600190565b505050600190565b60601c80156001600160a01b0390921614171561199157565b630c4549ef5f526004601cfd5b906001600160a01b0382161561163e576001600160a01b03916119c191906119db565b166119c857565b6339e3563760e11b5f525f60045260245ffd5b5f828152600260205260409020546001600160a01b03168015159392909190829085611ae5575b806001600160a01b03841680611ac2575b611a29856107db845f52600260205260405f2090565b604051957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a48195611a5d5750505050565b6001600160a01b0316803b1561023457637699c77f60e01b84526001600160a01b039182166004850152911660248301525f908290604490829084905af18015610cc757611aae575b8080806116cc565b806115f65f611abc936108ee565b5f611aa6565b6001600160a01b0385165f90815260036020526040902060018154019055611a13565b611aee81611f51565b6001600160a01b0382165f90815260036020526040902080545f19019055611a02565b5f818152600260205260409020546001600160a01b0316908115611b33575090565b637e27328960e01b5f5260045260245ffd5b91906f67363d3d37363d34f03d5260086018f35f526010805ff5918215611b91575f80918460145261d694825260016034536017601e209482602083519301915af1823b0215611b9157565b63301164255f526004601cfd5b92916f67363d3d37363d34f03d5260086018f35f526010805ff58015611b91575f9181839260145261d694835260016034536017601e2095602083519301915af1823b0215611b9157565b638b78c6d819543303611bf857565b6382b429005f526004601cfd5b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b929190600191604051945f5260408114611c8a57604114611c705750506020600160805f805b5afa51913d15611c63575f606052604052565b638baa579f5f526004601cfd5b60805f602093604084816001960135841a87528137611c50565b5060805f6020938385600195013590601b8260ff1c01875235604052848060ff1b0316606052611c50565b601f8211611cc257505050565b5f5260205f20906020601f840160051c83019310611cfa575b601f0160051c01905b818110611cef575050565b5f8155600101611ce4565b9091508190611cdb565b91906001600160401b03811161090f57611d2a81611d236008546117c1565b6008611cb5565b5f601f8211600114611d68578190611d5893945f92611d5d575b50508160011b915f199060031b1c19161790565b600855565b013590505f80611d44565b60085f52601f198216937ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3915f5b868110611dcd5750836001959610611db4575b505050811b01600855565b01355f19600384901b60f8161c191690555f8080611da9565b90926020600181928686013581550194019101611d96565b9081602091031261023457516106c6816103da565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526106c692910190610691565b90604051600a608082019360a083016040525f8552935b5f190193603082820601855304928315611e5e57600a90611e42565b809350608091030191601f1901918252565b906005810290808204600514901517156108d557600381901c906001600160f81b0319611e9d83856118b4565b511691600181018091116108d557611eb960079160ff956118b4565b5160081c60f085901b169290921791161b60fb1c1690565b60ff16601a811015611ef85760610160ff81116108d55760f81b6001600160f81b03191690565b60180160ff81116108d55760f81b6001600160f81b03191690565b6c5af43d3d93803e602a57fd5bf360215260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c5ff5908115611b91575f602152565b611f63905f52600460205260405f2090565b80546001600160a01b0319169055565b909190611f916001600160a01b0384168015159081611fd957501590565b611f9a57505050565b6001600160a01b0316611fb957637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f526001600160a01b0390911660045260245260445ffd5b6001600160a01b038416811491508115612017575b8115611ff957501590565b5f858152600460205260409020546001600160a01b03161415919050565b905061202385846118fc565b90611fee56fea264697066735822122036339cc180f6c07b8d3c0eab3d70a06b025d42bf8cc92d3f263a89967c1afc8b64736f6c634300081b0033f3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3000000000000000000000000c5557771673109cab9d05358e1d280fab522597700000000000000000000000000000000156d54b85de04c897356026a5ff2cbc9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000a492d5b29b3191f028d5a9a848911a0000000000000000000000000000000000bf54a35f528d67c62145161b25c55c

    Deployed Bytecode

    0x60806040526004361015610011575f80fd5b5f3560e01c80156101b757806001146101c657806301ffc9a71461020257806303f30d08146101fd57806304dad935146101f857806306fdde03146101f3578063081812fc146101ee578063095ea7b3146101e957806323b872dd146101e45780632a55205a146101df5780632af25238146101da57806338395f19146101d55780633c2e0828146101d057806342842e0e146101cb5780635ae401dc146101c65780636352211e146101c157806367c0e310146101bc5780636a064fce146101b75780636d07dbf8146101b25780636dce4ab0146101ad57806370a08231146101a85780637ce27a27146101a35780638da5cb5b1461019e57806395905e211461019957806395d89b4114610194578063a22cb4651461018f578063b88d4fde1461018a578063c87b56dd14610185578063c91df5cc14610180578063cb93c48f1461017b578063e985e9c5146101765763f2fde38b14610171575f80fd5b6112cc565b6112a0565b611284565b611200565b61110b565b6110bd565b611005565b610fb0565b610ec1565b610e95565b610d1d565b610ccc565b610c0b565b610b78565b61026e565b610afc565b610acc565b6102bf565b610aa3565b610a71565b6109b6565b610975565b610884565b61086d565b610759565b61071d565b6106c9565b610644565b61041d565b6103ec565b9181601f84011215610234578235916001600160401b038311610234576020838186019501011161023457565b5f80fd5b606060031982011261023457600435906001600160401b0382116102345761026291600401610207565b90916024359060443590565b61028d61027a36610238565b926102889291923384611978565b611377565b005b9181601f84011215610234578235916001600160401b038311610234576020808501948460051b01011161023457565b6040366003190112610234576004356024356001600160401b038111610234576102ed90369060040161028f565b5f926001600160a01b0381169060a01c5b80851061039f57508061030d57005b61033e610332610325835f52600260205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b330361039157925b81811061034f57005b5f8061035c8385876113e6565b9061036c6040518093819361133b565b039082885af161037a611348565b90156103895750600101610346565b602081519101fd5b6282b42960e81b5f5260045ffd5b935f806103ad8386886113e6565b906103bd6040518093819361133b565b0390305af46103ca611348565b90156103895750600101936102fe565b6001600160e01b031981160361023457565b3461023457602036600319011261023457602061041360043561040e816103da565b61142c565b6040519015158152f35b6060366003190112610234576004356001600160401b0381116102345761044890369060040161028f565b6024356001600160401b0381116102345761046790369060040161028f565b92906044356001600160401b0381116102345761048890369060040161028f565b9290856105df575b5f925f955f5b8181106104bd575050505050036104ae57036104ae57005b631df89e8b60e01b5f5260045ffd5b6104c88183876114a1565b356001600160a01b0381169060a01c908061053557505f5b8181106104f35750506001905b01610496565b5f806105096105018b6114b1565b9a8c8a6113e6565b906105196040518093819361133b565b0390305af4610526611348565b901561038957506001016104e0565b61054d610332610325835f52600260205260405f2090565b3303610391579088915f5b82811061056b57505050506001906104ed565b909192985f908d8d106105c1575b5f916105918261058a8594916114b1565b9d8c6113e6565b906105a16040518093819361133b565b0391865af16105ae611348565b9015610389575060010190899291610558565b90508c6105cd8d6114b1565b9c6105d891896114a1565b3590610579565b6105e93447611494565b806105f5575b50610490565b5f80808093736db16927dbc38aa39f0ee2cb545e15efd813fb995af1505f6105ef565b600435906001600160a01b038216820361023457565b602435906001600160a01b038216820361023457565b602036600319011261023457610658610618565b6001600160a01b039061066c9033906119db565b161561067457005b637e27328960e01b5f523360045260245ffd5b5f91031261023457565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206106c6928181520190610691565b90565b34610234575f366003190112610234576107196040516106ea6040826108ee565b600e81526d4e465473324d65204f776e65727360901b6020820152604051918291602083526020830190610691565b0390f35b346102345760203660031901126102345760043561073a81611b11565b505f526004602052602060018060a01b0360405f205416604051908152f35b3461023457604036600319011261023457610772610618565b6024359061077f82611b11565b33151580610820575b8061080f575b6107fa5761028d926107db9181906001600160a01b0385811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f52600460205260405f2090565b80546001600160a01b0319166001600160a01b03909216919091179055565b63a9fbf51f60e01b5f90815233600452602490fd5b5061081a33826118fc565b1561078e565b506001600160a01b038116331415610788565b6060906003190112610234576004356001600160a01b038116810361023457906024356001600160a01b0381168103610234579060443590565b346102345761028d61087e36610833565b916114bf565b34610234576040366003190112610234576024356101f48102908082046101f414901517156108d557604090612710825191736db16927dbc38aa39f0ee2cb545e15efd813fb998352046020820152f35b611480565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b0382111761090f57604052565b6108da565b6001600160401b03811161090f57601f01601f191660200190565b81601f820112156102345780359061094682610914565b9261095460405194856108ee565b8284526020838301011161023457815f926020809301838601378301015290565b6040366003190112610234576024356004356001600160401b038211610234576109a661028d92369060040161092f565b6109b03383611978565b34611b9e565b610a305f806109c436610238565b6109d2969293963383611978565b8452600660205260408085205481516c5af43d3d93803e602a57fd5bf360581b818401526001600160a01b03909116602882015273602c3d8160093d39f33d3d3d3d363d3d37363d7360148201526035815260608101909152611b45565b93610a406040518093819361133b565b039082855af190610a4f611348565b9115610a685761028d906001600160a01b03163361199e565b50602081519101fd5b34610234576020366003190112610234576004355f526006602052602060018060a01b0360405f205416604051908152f35b346102345761028d610ab436610833565b9060405192610ac46020856108ee565b5f84526116b7565b34610234576020366003190112610234576020610aea600435611b11565b6040516001600160a01b039091168152f35b606036600319011261023457610b10610618565b602435906044356001600160401b03811161023457610b36610b48913690600401610207565b939092610b433383611978565b611f13565b82610b4f57005b825f9392849360405192839283378101848152039134905af1610b70611348565b901561038957005b3461023457604036600319011261023457600435602435905f52600660205260018060a01b0360405f2054166c5af43d3d93803e602a57fd5bf360215260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c205f60215260ff5f5360359081523060601b60015260159190915260555f90812091526040516001600160a01b039091168152602090f35b604036600319011261023457610c1f610618565b610c2761062e565b610c2f611be9565b5f80808047865af1506001600160a01b0381169182610c4a57005b610c8f92610c5b6020933090611c05565b60405163a9059cbb60e01b81526001600160a01b0390931660048401526024830152909283919082905f9082906044820190565b03925af18015610cc757610c9f57005b61028d9060203d602011610cc0575b610cb881836108ee565b810190611651565b503d610cae565b611666565b34610234576020366003190112610234576001600160a01b03610ced610618565b168015610d0a575f526003602052602060405f2054604051908152f35b6322718ad960e21b5f525f60045260245ffd5b60a0366003190112610234576004356001600160401b03811161023457610d48903690600401610207565b610d5061062e565b90604435606435916084356001600160401b03811161023457610d7a610de5913690600401610207565b90610d858786611978565b610de08886610db38a610da58b6040519485938c6020860198468a611671565b03601f1981018352826108ee565b5190206020527b19457468657265756d205369676e6564204d6573736167653a0a33325f52603c60042090565b611c2a565b600754610dfa906001600160a01b0316610332565b6001600160a01b03909116908114159081610e81575b50610e7257610e315f9392610b4361032586955f52600660205260405f2090565b94610e416040518093819361133b565b039082865af191610e50611348565b9215610e6a5761028d92506001600160a01b03169061199e565b825160208401fd5b638baa579f60e01b5f5260045ffd5b6001600160a01b038616141590505f610e10565b34610234575f36600319011261023457638b78c6d819546040516001600160a01b039091168152602090f35b6060366003190112610234576004356001600160401b03811161023457610eec90369060040161028f565b610ef461062e565b6044356001600160401b03811161023457610f13903690600401610207565b929093610f1e611be9565b5f5b828110610f6f575050506001600160a01b038116610f4a575b5080610f4157005b61028d91611d04565b600780546001600160a01b0319166001600160a01b039092169190911790555f610f39565b80610faa610f8060019386866114a1565b356107db610f8f8488886114a1565b3591858060a01b03169160a01c5f52600660205260405f2090565b01610f20565b34610234575f36600319011261023457610719604051610fd16040826108ee565b60098152684e324d4f776e65727360b81b6020820152604051918291602083526020830190610691565b8015150361023457565b346102345760403660031901126102345761101e610618565b60243561102a81610ffb565b6001600160a01b0382169182156110aa57335f9081526005602090815260408083206001600160a01b0390941683529290522060ff1981541660ff831515161790557f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31604051806110a5339482919091602081019215159052565b0390a3005b82630b61174360e31b5f5260045260245ffd5b34610234576080366003190112610234576110d6610618565b6110de61062e565b90604435606435926001600160401b0384116102345761110561028d94369060040161092f565b926116b7565b34610234576020366003190112610234576004356040516329ffa82360e11b81526020816004816001600160a01b0386165afa908115610cc7576020610da56111ba610719956111b46111ba6111b4976111c7975f916111d3575b506111b46111ba61117646611e2b565b956111b46111ba6111a66111a061119b61033261033261119588611e2b565b97611b11565b611e2b565b96611e2b565b986040519e8f9d8e016117f9565b90611880565b602f60f81b815260010190565b604051918291826106b5565b6111f39150873d89116111f9575b6111eb81836108ee565b8101906117b2565b5f611166565b503d6111e1565b3461023457602036600319011261023457604051620b809160e51b602082015260043560248201525f60448201526025815261123d6045826108ee565b611245611892565b905f5b603a811061125c576107196111c7846118c5565b8061127161126c60019385611e70565b611ed1565b5f1a61127d82866118b4565b5301611248565b34610234575f3660031901126102345760206040516107ee8152f35b346102345760403660031901126102345760206104136112be610618565b6112c661062e565b906118fc565b6020366003190112610234576112e0610618565b6112e8611be9565b8060601b1561132e5760018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955005b637448fbae5f526004601cfd5b908092918237015f815290565b3d15611372573d9061135982610914565b9161136760405193846108ee565b82523d5f602084013e565b606090565b92906113995f9384938452600660205260018060a01b03604085205416611f13565b938160405192839283378101838152039082855af16113b6611348565b901561038957506113d0906001600160a01b03163361199e565b565b634e487b7160e01b5f52603260045260245ffd5b91908110156114275760051b81013590601e19813603018212156102345701908135916001600160401b038311610234576020018236038113610234579190565b6113d2565b6001600160e01b0319166301ffc9a760e01b811461147a576307f5828d60e41b811461147a576380ac58cd60e01b811461147a57635b5e139f60e01b811461147a5763152a902d60e11b1490565b50600190565b634e487b7160e01b5f52601160045260245ffd5b919082039182116108d557565b91908110156114275760051b0190565b5f1981146108d55760010190565b9091906001600160a01b038316801561163e575f838152600260205260409020546001600160a01b0316933361162e575b6001600160a01b0385169485151580611602575b6001600160a01b0383165f90815260036020526040902060018154019055611538836107db885f52600260205260405f2090565b8560405194887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4611597575b5050506001600160a01b031680830361157f57505050565b6364283d7b60e01b5f5260045260245260445260645ffd5b6001600160a01b038516803b1561023457637699c77f60e01b84526001600160a01b039182166004850152911660248301525f908290604490829084905af18015610cc7576115e8575b8080611567565b806115f65f6115fc936108ee565b80610687565b5f6115e1565b61160b86611f51565b6001600160a01b0382165f90815260036020526040902080545f19019055611504565b611639843387611f73565b6114f0565b633250574960e11b5f525f60045260245ffd5b9081602091031261023457516106c681610ffb565b6040513d5f823e3d90fd5b90928092607897959694637ce27a2760e01b84526004840152602483013701926bffffffffffffffffffffffff199060601b166024840152603883015260588201520190565b9092916116c58185846114bf565b833b6116d2575b50505050565b6020916116f46040519485938493630a85bd0160e11b85523360048601611dfa565b03815f6001600160a01b0387165af15f9181611781575b506117455750611719611348565b805191908261173e57633250574960e11b5f526001600160a01b03821660045260245ffd5b9050602001fd5b6001600160e01b03191663757a42ff60e11b0161176657505f8080806116cc565b633250574960e11b5f526001600160a01b031660045260245ffd5b6117a491925060203d6020116117ab575b61179c81836108ee565b810190611de5565b905f61170b565b503d611792565b90816020910312610234575190565b90600182811c921680156117ef575b60208310146117db57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916117d0565b6008545f9291611808826117c1565b916001811690811561186e5750600114611820575050565b60085f90815292935090917ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b83821061185a5750500190565b60018160209254848601520191019061184d565b60ff1916825250811515909102019150565b805191908290602001825e015f815290565b604051606091906118a383826108ee565b603a815291601f1901366020840137565b908151811015611427570160200190565b906113d06118ee926040519384916734b833399d1797b160c11b60208401526028830190611880565b03601f1981018452836108ee565b6001600160a01b0382167388899dc0b84c6e726840e00dfb94abc6248825ec811461197057731e0049783f008a0085193e00003d00cd54003c7114611969576001600160a01b039081165f908152600560209081526040808320939094168252919091522060ff90541690565b5050600190565b505050600190565b60601c80156001600160a01b0390921614171561199157565b630c4549ef5f526004601cfd5b906001600160a01b0382161561163e576001600160a01b03916119c191906119db565b166119c857565b6339e3563760e11b5f525f60045260245ffd5b5f828152600260205260409020546001600160a01b03168015159392909190829085611ae5575b806001600160a01b03841680611ac2575b611a29856107db845f52600260205260405f2090565b604051957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a48195611a5d5750505050565b6001600160a01b0316803b1561023457637699c77f60e01b84526001600160a01b039182166004850152911660248301525f908290604490829084905af18015610cc757611aae575b8080806116cc565b806115f65f611abc936108ee565b5f611aa6565b6001600160a01b0385165f90815260036020526040902060018154019055611a13565b611aee81611f51565b6001600160a01b0382165f90815260036020526040902080545f19019055611a02565b5f818152600260205260409020546001600160a01b0316908115611b33575090565b637e27328960e01b5f5260045260245ffd5b91906f67363d3d37363d34f03d5260086018f35f526010805ff5918215611b91575f80918460145261d694825260016034536017601e209482602083519301915af1823b0215611b9157565b63301164255f526004601cfd5b92916f67363d3d37363d34f03d5260086018f35f526010805ff58015611b91575f9181839260145261d694835260016034536017601e2095602083519301915af1823b0215611b9157565b638b78c6d819543303611bf857565b6382b429005f526004601cfd5b602460106020939284936014526370a0823160601b5f525afa601f3d11166020510290565b929190600191604051945f5260408114611c8a57604114611c705750506020600160805f805b5afa51913d15611c63575f606052604052565b638baa579f5f526004601cfd5b60805f602093604084816001960135841a87528137611c50565b5060805f6020938385600195013590601b8260ff1c01875235604052848060ff1b0316606052611c50565b601f8211611cc257505050565b5f5260205f20906020601f840160051c83019310611cfa575b601f0160051c01905b818110611cef575050565b5f8155600101611ce4565b9091508190611cdb565b91906001600160401b03811161090f57611d2a81611d236008546117c1565b6008611cb5565b5f601f8211600114611d68578190611d5893945f92611d5d575b50508160011b915f199060031b1c19161790565b600855565b013590505f80611d44565b60085f52601f198216937ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3915f5b868110611dcd5750836001959610611db4575b505050811b01600855565b01355f19600384901b60f8161c191690555f8080611da9565b90926020600181928686013581550194019101611d96565b9081602091031261023457516106c6816103da565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526106c692910190610691565b90604051600a608082019360a083016040525f8552935b5f190193603082820601855304928315611e5e57600a90611e42565b809350608091030191601f1901918252565b906005810290808204600514901517156108d557600381901c906001600160f81b0319611e9d83856118b4565b511691600181018091116108d557611eb960079160ff956118b4565b5160081c60f085901b169290921791161b60fb1c1690565b60ff16601a811015611ef85760610160ff81116108d55760f81b6001600160f81b03191690565b60180160ff81116108d55760f81b6001600160f81b03191690565b6c5af43d3d93803e602a57fd5bf360215260145273602c3d8160093d39f33d3d3d3d363d3d37363d735f526035600c5ff5908115611b91575f602152565b611f63905f52600460205260405f2090565b80546001600160a01b0319169055565b909190611f916001600160a01b0384168015159081611fd957501590565b611f9a57505050565b6001600160a01b0316611fb957637e27328960e01b5f5260045260245ffd5b63177e802f60e01b5f526001600160a01b0390911660045260245260445ffd5b6001600160a01b038416811491508115612017575b8115611ff957501590565b5f858152600460205260409020546001600160a01b03161415919050565b905061202385846118fc565b90611fee56fea264697066735822122036339cc180f6c07b8d3c0eab3d70a06b025d42bf8cc92d3f263a89967c1afc8b64736f6c634300081b0033

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

    000000000000000000000000c5557771673109cab9d05358e1d280fab522597700000000000000000000000000000000156d54b85de04c897356026a5ff2cbc9000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000a492d5b29b3191f028d5a9a848911a0000000000000000000000000000000000bf54a35f528d67c62145161b25c55c

    -----Decoded View---------------
    Arg [0] : owner (address): 0xC5557771673109CAB9d05358E1D280fab5225977
    Arg [1] : delegatedCreationSigner (address): 0x00000000156D54b85de04c897356026a5ff2cBc9
    Arg [2] : type1 (bytes32): 0x0000000000000000000000000000000000000000000000000000000000000000
    Arg [3] : type2 (bytes32): 0x0000000000000000000000000000000000000000000000000000000000000001
    Arg [4] : type1Address (address): 0x0000000000A492d5b29B3191f028D5A9A848911A
    Arg [5] : type2Address (address): 0x0000000000Bf54A35f528D67c62145161B25C55C

    -----Encoded View---------------
    6 Constructor Arguments found :
    Arg [0] : 000000000000000000000000c5557771673109cab9d05358e1d280fab5225977
    Arg [1] : 00000000000000000000000000000000156d54b85de04c897356026a5ff2cbc9
    Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
    Arg [3] : 0000000000000000000000000000000000000000000000000000000000000001
    Arg [4] : 0000000000000000000000000000000000a492d5b29b3191f028d5a9a848911a
    Arg [5] : 0000000000000000000000000000000000bf54a35f528d67c62145161b25c55c


    [ 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.