ERC-721
Overview
Max Total Supply
9,928 GRE
Holders
2,013
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
4 GRELoading...
Loading
Loading...
Loading
Loading...
Loading
Minimal Proxy Contract for 0x6c5234db2459e3c042eb771707cc19707836e9c9
Contract Name:
N2MERC721A
Compiler Version
v0.8.27+commit.40a35a09
Optimization Enabled:
Yes with 151 runs
Other Settings:
cancun EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526// SPDX-License-Identifier: CC0-1.0pragma 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 addressevent 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 expiresfunction 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 NFTfunction 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
123456789101112131415161718192021// SPDX-License-Identifier: CC0-1.0pragma 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);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: CC0-1.0pragma solidity ^0.8.27;interface IERC7496 {/// Eventsevent 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();/// Gettersfunction getTraitValue(uint256 tokenId, bytes32 traitKey) external view returns (bytes32 traitValue);function getTraitValues(uint256 tokenId, bytes32[] calldata traitKeys)externalviewreturns (bytes32[] memory traitValues);function getTraitMetadataURI() external view returns (string memory uri);/// Settersfunction setTrait(uint256 tokenId, bytes32 traitKey, bytes32 traitValue) external;/// Errors
12345678// SPDX-License-Identifier: CC0-1.0pragma solidity ^0.8.27;interface IERC7572 {function contractURI() external view returns (string memory);event ContractURIUpdated();}
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labs// Modified by: NFTs2Mepragma solidity ^0.8.27;import {IERC721A} from "./IERC721A.sol";import {IERC165} from "openzeppelin/contracts/interfaces/IERC2981.sol"; // Para el tema de NFT Royalty Standardimport {IERC7496, IERC5192, ITransferValidator, ConsecutiveMinting, Common, IN2MCommon, DynamicNFT} from "../ConsecutiveMinting.sol";/*** @dev Interface of ERC721 token receiver.*/interface ERC721A__IERC721Receiver {function onERC721Received(address operator,address from,uint256 tokenId,bytes calldata data) external returns (bytes4);}/*** @title ERC721A*
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// ERC721A Contracts v4.2.3// Creator: Chiru Labspragma solidity ^0.8.27;/*** @dev Interface of ERC721A.*/interface IERC721A {// =============================================================// STRUCTS// =============================================================struct TokenOwnership {// The address of the owner.address addr;// Stores the start time of ownership with minimal overhead for tokenomics.uint64 startTimestamp;// Whether the token has been burned.bool burned;// Arbitrary data similar to `startTimestamp` that can be set via {_extraData}.uint24 extraData;}// =============================================================
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526/** ---------------------------------------------------------------------------- //* //* Smart contract generated by https://nfts2me.com //* //* .::. //* ...... //* .... ::. //* .:.. :: ... //* ..:. :: ... //* ::. ..:-- ::. ... //* .: ..:::::-==: :::::.. : //* .: :::::::-====: :::::::: : //* .: :::::::-======. :::::::: : //* .: :::::::-=======-:::::::: : //* .: :::::::-========-::::::: : //* .: ::::::::========-::::::: : //* .: :::::::. .======-::::::: : //* .: :::::::. :====-::::::: : //* .: .:::::. -==-:::::. : //* .:. .:. .--:.. ... //* .:. :. ... //* .... :. .... //* .:. .:. //* .::::. //* :--. //* //
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.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.** NOTE: ERC-2981 allows setting the royalty to 100% of the price. In that case all the price would be sent to the* royalty receiver and 0 tokens to the seller. Contracts dealing with royalty should consider empty transfers.*/function royaltyInfo(uint256 tokenId,uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC-20 standard as defined in the ERC.*/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.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/Address.sol)pragma solidity ^0.8.20;import {Errors} from "./Errors.sol";/*** @dev Collection of functions related to the address type*/library Address {/*** @dev There's no code at `target` (it is not a contract).*/error AddressEmptyCode(address target);/*** @dev Replacement for Solidity's `transfer`: sends `amount` wei to* `recipient`, forwarding all available gas and reverting on errors.** https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost* of certain opcodes, possibly making contracts go over the 2300 gas limit* imposed by `transfer`, making them unable to receive funds via* `transfer`. {sendValue} removes this limitation.** https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/Errors.sol)pragma solidity ^0.8.20;/*** @dev Collection of common custom errors used in multiple contracts** IMPORTANT: Backwards compatibility is not guaranteed in future versions of the library.* It is recommended to avoid relying on the error API for critical functionality.** _Available since v5.1._*/library Errors {/*** @dev The ETH balance of the account is not enough to perform the operation.*/error InsufficientBalance(uint256 balance, uint256 needed);/*** @dev A call to an address target failed. The target may have reverted.*/error FailedCall();/*** @dev The deployment failed.
12345678910111213141516171819202122232425// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC-165 standard, as defined in the* https://eips.ethereum.org/EIPS/eip-165[ERC].** 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[ERC 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);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Library to encode strings in Base64./// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/Base64.sol)/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/Base64.sol)/// @author Modified from (https://github.com/Brechtpd/base64/blob/main/base64.sol) by Brecht Devos - <brecht@loopring.org>.library Base64 {/// @dev Encodes `data` using the base64 encoding described in RFC 4648./// See: https://datatracker.ietf.org/doc/html/rfc4648/// @param fileSafe Whether to replace '+' with '-' and '/' with '_'./// @param noPadding Whether to strip away the padding.function encode(bytes memory data, bool fileSafe, bool noPadding)internalpurereturns (string memory result){/// @solidity memory-safe-assemblyassembly {let dataLength := mload(data)if dataLength {// Multiply by 4/3 rounded up.// The `shl(2, ...)` is equivalent to multiplying by 4.let encodedLength := shl(2, div(add(dataLength, 2), 3))
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma 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 {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Library for byte related operations./// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/LibBytes.sol)library LibBytes {/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* STRUCTS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev Goated bytes storage struct that totally MOGs, no cap, fr./// Uses less gas and bytecode than Solidity's native bytes storage. It's meta af./// Packs length with the first 31 bytes if <255 bytes, so it’s mad tight.struct BytesStorage {bytes32 _spacer;}/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* CONSTANTS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev The constant returned when the `search` is not found in the bytes.uint256 internal constant NOT_FOUND = type(uint256).max;/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* BYTE STORAGE OPERATIONS */
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity ^0.8.4;import {LibBytes} from "./LibBytes.sol";/// @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 {/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* STRUCTS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev Goated string storage struct that totally MOGs, no cap, fr./// Uses less gas and bytecode than Solidity's native string storage. It's meta af./// Packs length with the first 31 bytes if <255 bytes, so it’s mad tight.struct StringStorage {bytes32 _spacer;}
12345678910111213141516171819202122232425// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/// @notice Gas optimized verification of proof of inclusion for a leaf in a Merkle tree./// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/MerkleProofLib.sol)/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/MerkleProofLib.sol)/// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/cryptography/MerkleProof.sol)library MerkleProofLib {/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*//* MERKLE PROOF VERIFICATION OPERATIONS *//*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*//// @dev Returns whether `leaf` exists in the Merkle tree with `root`, given `proof`.function verify(bytes32[] memory proof, bytes32 root, bytes32 leaf)internalpurereturns (bool isValid){/// @solidity memory-safe-assemblyassembly {if mload(proof) {// Initialize `offset` to the offset of `proof` elements in memory.let offset := add(proof, 0x20)// Left shift by 5 is equivalent to multiplying by 0x20.let end := add(offset, shl(5, mload(proof)))
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma 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.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();/// @dev The ERC20 `approve` has failed.error ApproveFailed();
123456789101112131415161718192021{"evmVersion": "cancun","optimizer": {"enabled": true,"runs": 151},"viaIR": true,"outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
[{"inputs":[{"internalType":"address payable","name":"factoryAddress","type":"address"},{"internalType":"uint256","name":"protocolFee_","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"CantLowerCurrentPercentages","type":"error"},{"inputs":[],"name":"CollectionSoldOut","type":"error"},{"inputs":[],"name":"CreatorTokenBase__InvalidTransferValidatorContract","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[],"name":"InvadlidCollectionSize","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidInputSizesDontMatch","type":"error"},{"inputs":[],"name":"InvalidMintFee","type":"error"},{"inputs":[],"name":"InvalidMintingType","type":"error"},{"inputs":[],"name":"InvalidPercentageOrDiscountValues","type":"error"},{"inputs":[],"name":"InvalidPhaseWithoutDate","type":"error"},{"inputs":[],"name":"InvalidRevenueAddresses","type":"error"},{"inputs":[],"name":"InvalidRevenuePercentage","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"InvalidTokenId","type":"error"},{"inputs":[],"name":"MaxPerAddressExceeded","type":"error"},{"inputs":[],"name":"MetadataAlreadyFixed","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"NewBaseURICantBeEmpty","type":"error"},{"inputs":[],"name":"NonEditableTraitByTokenOwner","type":"error"},{"inputs":[],"name":"NonTransferrableSoulboundNFT","type":"error"},{"inputs":[],"name":"NotAllowlisted","type":"error"},{"inputs":[],"name":"NotEnoughAmountToMint","type":"error"},{"inputs":[],"name":"OnlyOnceTrait","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"PendingAffiliatesBalance","type":"error"},{"inputs":[],"name":"PlacerholderCantFreezeMetadata","type":"error"},{"inputs":[],"name":"PresaleInvalidMintingType","type":"error"},{"inputs":[],"name":"PresaleNotOpen","type":"error"},{"inputs":[],"name":"PublicSaleNotOpen","type":"error"},{"inputs":[],"name":"ReentrancyGuard","type":"error"},{"inputs":[],"name":"SaleFinished","type":"error"},{"inputs":[],"name":"SignatureMismatch","type":"error"},{"inputs":[],"name":"TraitValueUnchanged","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromFailed","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"WaitUntilDropDate","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"affiliate","type":"address"}],"name":"AffiliateSell","type":"event"},{"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":false,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[],"name":"ContractURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint96","name":"feeNumerator","type":"uint96"}],"name":"DefaultRoyaltySet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"traitKey","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"ImmutableTrait","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"TraitMetadataURIUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"traitKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"traitValue","type":"bytes32"}],"name":"TraitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"traitKey","type":"bytes32"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"TraitUpdatedList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"traitKey","type":"bytes32"},{"indexed":false,"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"},{"indexed":false,"internalType":"bytes32","name":"traitValue","type":"bytes32"}],"name":"TraitUpdatedListUniformValue","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"traitKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"}],"name":"TraitUpdatedRange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"traitKey","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"traitValue","type":"bytes32"}],"name":"TraitUpdatedRangeUniformValue","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldValidator","type":"address"},{"indexed":false,"internalType":"address","name":"newValidator","type":"address"}],"name":"TransferValidatorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Unlocked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint64","name":"expires","type":"uint64"}],"name":"UpdateUser","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"affiliate","type":"address"}],"name":"affiliateWithdraw","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"affiliate","type":"address"}],"name":"affiliatesInfo","outputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint16","name":"affiliatePercentage","type":"uint16"},{"internalType":"uint16","name":"userDiscount","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"toAndAmount","type":"bytes32[]"},{"internalType":"bool","name":"soulbound","type":"bool"}],"name":"airdropSequential","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"name":"allowListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","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":"payable","type":"function"},{"inputs":[],"name":"burnedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newErc20PaymentAddress","type":"address"}],"name":"changeERC20PaymentAddress","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMintPrice","type":"uint256"},{"internalType":"bool","name":"isDynamic","type":"bool"}],"name":"changeMintFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newFee","type":"uint16"},{"internalType":"address","name":"newReceiver","type":"address"}],"name":"changeRoyaltyFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newFee","type":"uint16"}],"name":"changeRoyaltyFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"collectionSize","outputs":[{"internalType":"uint256","name":"size","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPhase","outputs":[{"internalType":"enum IN2MCommonStorage.SalePhase","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"disableOperatorFilterRegistry","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"erc20PaymentAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTraitMetadataURI","outputs":[{"internalType":"string","name":"labelsURI","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes32","name":"traitKey","type":"bytes32"}],"name":"getTraitValue","outputs":[{"internalType":"bytes32","name":"traitValue","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes32[]","name":"traitKeys","type":"bytes32[]"}],"name":"getTraitValues","outputs":[{"internalType":"bytes32[]","name":"traitValues","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTransferValidationFunction","outputs":[{"internalType":"bytes4","name":"functionSignature","type":"bytes4"},{"internalType":"bool","name":"isViewFunction","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getTransferValidator","outputs":[{"internalType":"address","name":"validator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"mintPrice_","type":"uint256"},{"internalType":"bytes32","name":"baseURICIDHash","type":"bytes32"},{"internalType":"bytes32","name":"packedData","type":"bytes32"},{"internalType":"bytes","name":"extraCollectionInformation","type":"bytes"}],"name":"initialize008joDSK","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"isApproved","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isMetadataFixed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOperatorFilterRegistryEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"affiliate","type":"address"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"name":"mintAllowlist","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintEfficientN2M_001Z5BWH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"affiliate","type":"address"}],"name":"mintTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintTo","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"toWihtExtra","type":"bytes32"},{"internalType":"uint256","name":"customFee","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"mintWhitelist","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintingType","outputs":[{"internalType":"enum IN2MCommonStorage.MintingType","name":"","type":"uint8"}],"stateMutability":"pure","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":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"collectionOwner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ownerMaxRevenue","outputs":[{"internalType":"uint256","name":"maxRevenue","type":"uint256"}],"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":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"ownershipTransferred","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingAffiliateBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingTotalAffiliatesBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"newCollectionSize","type":"uint32"}],"name":"reduceCollectionSize","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"address","name":"feeReceiver","type":"address"}],"name":"removeProtocolFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"amount","type":"uint16"}],"name":"reserveTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"reservedTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"royaltyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"payable","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":"payable","type":"function"},{"inputs":[],"name":"saleDates","outputs":[{"internalType":"uint256","name":"dropDateTimestamp","type":"uint256"},{"internalType":"uint256","name":"endDateTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"userDiscount","type":"uint16"},{"internalType":"uint16","name":"affiliatePercentage","type":"uint16"},{"internalType":"address","name":"affiliateAddress","type":"address"}],"name":"setAffiliatesPercentageAndDiscount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURIString","type":"string"},{"internalType":"bytes32","name":"baseURICIDHash","type":"bytes32"},{"internalType":"bool","name":"isPlaceholder","type":"bool"},{"internalType":"bool","name":"freezeMetadata","type":"bool"}],"name":"setBaseURI","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newContractURIMetadataCIDHash","type":"bytes32"}],"name":"setContractURI","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dropDateTimestamp","type":"uint256"},{"internalType":"uint256","name":"endDateTimestamp","type":"uint256"}],"name":"setDropAndEndDate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newMaxPerAddress","type":"uint16"}],"name":"setMaxPerAddress","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot_","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"enum IN2MCommonStorage.SalePhase","name":"newPhase","type":"uint8"}],"name":"setPhase","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes32","name":"traitKey","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"setTrait","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"uri","type":"string"}],"name":"setTraitMetadataURI","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"ownerCanUpdateTraitKeys","type":"bytes32[]"},{"internalType":"bytes32[]","name":"onlyOnceTraitKeys","type":"bytes32[]"}],"name":"setTraitsPermissions","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"transferValidator","type":"address"}],"name":"setTransferValidator","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"transferValidator","type":"address"},{"internalType":"bytes[]","name":"customSecurityPolicies","type":"bytes[]"}],"name":"setTransferValidatorAndSecurityPolicy","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint64","name":"expires","type":"uint64"}],"name":"setUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","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":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"amount","type":"uint16"}],"name":"unreserveTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"userExpires","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"userOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"operators","type":"address[]"}],"name":"whitelistOperators","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistedOperators","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"erc20Address","type":"address"}],"name":"withdrawERC20","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"withdrawnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawnERC20Amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
[ 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.