supportsInterface(bytes4) :
This function checks if a given interfaceId is supported by the contract. It does this by comparing the given interfaceId to the interfaceId of the IERC721CreatorCoreEnumerable interface. If the two match, the function returns true, otherwise it calls the super.supportsInterface() function to check if the interfaceId is supported by the parent contract. (autogenerated documentation)
totalSupplyExtension(address) :
This function returns the total supply of a given extension address. It works by accessing the _extensionBalances mapping, which stores the total supply of each extension address, and returning the value associated with the given extension address. (autogenerated documentation)
tokenByIndexExtension(address,uint256) :
This function allows a user to retrieve the token ID of a specific token from a given extension. It takes in two parameters, the address of the extension and the index of the token, and returns the token ID. The function first checks that the index is within the total supply of the extension, and then returns the token ID from the mapping of extension tokens. (autogenerated documentation)
balanceOfExtension(address,address) :
This function returns the balance of a given extension for a given owner. It does this by accessing the _extensionBalancesByOwner mapping, which stores the balance of each extension for each owner. The function takes two parameters, the address of the extension and the address of the owner, and returns the balance of the extension for the owner as a uint256. (autogenerated documentation)
tokenOfOwnerByIndexExtension(address,address,uint256) :
This function returns the token ID of a given owner at a given index from a given extension. It requires that the index is less than the balance of the owner in the extension, and then returns the token ID from the _extensionTokensByOwner mapping. (autogenerated documentation)
totalSupplyBase() :
This function returns the total supply of a token. It works by accessing the _extensionBalances mapping, which stores the balance of each address, and returning the balance of the address with a value of 0. (autogenerated documentation)
tokenByIndexBase(uint256) :
This function is used to retrieve the token ID of a token at a given index from the _extensionTokens mapping. The function takes in an index as an argument and returns the token ID associated with that index. The function requires that the index is less than the totalSupplyBase() and will revert if it is not. (autogenerated documentation)
balanceOfBase(address) :
This function returns the balance of a given address on the base token. It works by accessing the _extensionBalancesByOwner mapping, which stores the balance of each address on the base token. The address(0) parameter is used to indicate that the balance of the base token should be returned, rather than the balance of any of the extension tokens. (autogenerated documentation)
tokenOfOwnerByIndexBase(address,uint256) :
This function returns the token ID of a given owner at a given index. It works by accessing the _extensionTokensByOwner mapping, which is a mapping of addresses to mappings of addresses to arrays of token IDs. The function requires that the index is less than the balance of the owner, which is retrieved from the balanceOfBase() function. (autogenerated documentation)
_addTokenToOwnerEnumeration(address,uint256,address) :
This function adds a token to the owner enumeration of a given address. It takes in the address of the owner, the token ID, and the address of the token extension as parameters. It first retrieves the length of the owner enumeration from the balanceOfExtension function. It then adds the token ID to the owner enumeration at the retrieved length index. It also updates the token index by owner and the balance of the owner by the token extension. (autogenerated documentation)
_removeTokenFromOwnerEnumeration(address,uint256,address) :
This function removes a token from the owner's enumeration. It does this by first finding the last token index owned by the owner, and then finding the token index of the token to be removed. If the token to be removed is not the last token owned by the owner, the last token is moved to the position of the token to be removed, and the token index of the last token is updated. The owner's balance is then decreed by one, and the token index and token of the token to be removed are deleted. (autogenerated documentation)
_beforeTokenTransfer(address,address,uint256) :
This function is an internal virtual function that is called before a token transfer. It is used to update the token owner enumeration when a token is transferred from one address to another. It checks if the from and to addresses are not the zero address, and if they are not the same. If the from and to addresses are not the same, it will remove the token from the from address's enumeration and add it to the to address's enumeration. This ensures that the token owner enumeration is up to date when a token is transferred. (autogenerated documentation)
_postMintBase(address,uint256) :
This function is an internal virtual override function that is used to mint a new token. It takes in two parameters, an address to which the token should be minted and a tokenId which is a unique identifier for the token. It first stores the tokenId in the _extensionTokens array, mapping it to the totalSupplyBase() index. It then stores the tokenId in the _extensionTokensIndex array, mapping it to the tokenId. It then increments the _extensionBalances array for the address(0) by 1. Finally, it adds the token to the owner enumeration for the specified address. (autogenerated documentation)
_postMintExtension(address,uint256) :
This function is an internal virtual override function that is used to mint an extension token. It takes in two parameters, an address to and a uint256 tokenId. It first stores the length of the total supply of extension tokens for the sender in a variable. It then stores the tokenId in the _extensionTokens mapping for the sender, and stores the index of the tokenId in the _extensionTokensIndex mapping. It then increments the _extensionBalances mapping for the sender by 1. Finally, it adds the tokenId to the owner enumeration for the address to. (autogenerated documentation)
_postBurn(address,uint256) :
This function is an override of the _postBurn function from the ERC721CreatorCore contract. It is used to update the token extension data when a token is burned. It removes the token from the token extension data, updates the token index, and removes the token from the owner enumeration. Finally, it calls the _postBurn function from the ERC721CreatorCore contract. (autogenerated documentation)