Skip to main content

ImQuarkNFTV2

struct Collection {
// The ID of the entity associated with the collection
uint256 entityId;
// The ID of the collection
uint64 collectionId;
// The type of minting for the collection
uint8 mintType;
// The maximum number of tokens that can be minted per wallet
uint8 mintPerAccountLimit;
// A flag indicating if the collection is whitelisted
bool isWhitelisted;
// A flag indicating if the collection is free
bool isFree;
// The ID of the template associated with the collection
uint256 templateId;
// The number of tokens minted in the collection
uint256 mintCount;
// The total supply of tokens in the collection
uint256 totalSupply;
// The price of minting a token in the collection
uint256 mintPrice;
// The available URIs associated with the collection
string[] collectionURIs;
// The name of the collection
string name;
// The symbol of the collection
string symbol;
// The address of the verifier
address verifier;
}

struct TokenSubscriptionInfo {
// Indicates whether the token is subscribed or not
bool isSubscribed;
// The URI associated with the token
string uri;
}
struct MintRoyalty {
// Royalty amount for the token
uint256 royalty;
// Amount withdrawn by the owner
uint256 withdrawnAmountByOwner;
// Amount withdrawn by the protocol
uint256 withdrawnAmountByProtocol;
// Amount saved by the owner
uint256 savedAmountOwner;
// Total amount withdrawn for the token
uint256 totalWithdrawn;
}
  function subscribeToEntity(
address owner,
uint256 tokenId,
uint256 entityId,
string calldata entitySlotDefaultUri
) external;
  function subscribeToEntities(
address owner,
uint256 tokenId,
uint256[] calldata entityIds,
string[] calldata entitySlotDefaultUris
) external;
  function updateURISlot(
address owner,
uint256 entityId,
uint256 tokenId,
string calldata updatedUri
) external;

  function directUpdateURISlot(
uint256 entityId,
uint256 tokenId,
string calldata updatedUri
) external;
  function directUpdateURISlots(
uint256 entityId,
uint256[] calldata tokenIds,
string[] calldata updatedUris
) external;
  function tokenEntityURI(uint256 tokenId, uint256 entityId) external view returns (string memory);
  function transferCollectionOwnership(address newOwner) external;

  function transferTokenEntityURI(address owner, uint256 tokenId, uint256 entityId, string calldata soldUri) external;
  function resetSlotToDefault(address owner, uint256 tokenId, uint256 entityId, string calldata defaultUri) external;
  function getCollectionInfo()
external
view
returns (
uint256 entityId,
uint64 collectionId,
uint8 mintType,
uint8 mintPerAccountLimit,
bool isWhitelisted,
bool isFree,
uint256 templateId,
uint256 mintCount,
uint256 totalSupply,
uint256 mintPrice,
string[] memory collectionURIs,
address verifier
);

  function getTokenSubscriptionInfo(
uint256 _tokenId,
uint256 _entityId
) external view returns (bool isSubscribed, string memory uri, bool directUpdateEnabled);
  function withdraw() external;
  function protocolWithdraw() external;