supportsInterface(bytes4) :
This function is used to check if a given interface is supported by the contract. It takes a bytes4 interfaceId as an argument and returns a boolean value indicating whether the interface is supported or not. The function first checks if the interfaceId matches the interfaceId of the IERC721CreatorCore interface, and if it does, it returns true. If not, it calls the super.supportsInterface() function to check if the interface is supported by the parent contract. If it is, it returns true, otherwise it returns false. (autogenerated documentation)
_setApproveTransferExtension(address,bool) :
This function sets the approval status of a given ERC721CreatorExtensionApproveTransfer extension for a given address. It first checks if the extension supports the IERC721CreatorExtensionApproveTransfer interface, and if so, it sets the approval status of the extension for the given address to the given boolean value. It then emits an ExtensionApproveTransferUpdated event with the extension address and the new approval status. (autogenerated documentation)
_setMintPermissions(address,address) :
This function sets the minting permissions for a given extension address. It requires that the extension address is valid and that the permissions address is either 0 or an address that supports the IERC721CreatorMintPermissions interface. If the permissions are updated, an event is emitted. (autogenerated documentation)
_checkMintPermissions(address,uint256) :
This function checks the minting permissions of a given address for a given token ID. It does this by checking the _extensionPermissions mapping, which stores the address of the contract that has been granted minting permissions for a given address. If the mapping is not empty, the function calls the approveMint() function of the IERC721CreatorMintPermissions contract, which is responsible for approving the minting of the token. (autogenerated documentation)
_postMintBase(uint256) :
This function is used to mint a new token to a given address. It takes two parameters, an address and a uint256, which is the amount of tokens to be minted. The function then adds the specified amount of tokens to the address's balance. (autogenerated documentation)
_postMintExtension(uint256) :
This function is used to mint a new extension token to a given address. It takes two parameters: an address and a uint256 value. The address is the address of the recipient of the new extension token, and the uint256 value is the amount of the token to be minted. The function then adds the new token to the recipient's balance and updates the total supply of the token. (autogenerated documentation)
_postBurn(address,uint256) :
This function is used to perform post-burn operations on a token. It is called after a token has been burned and is used to delete any associated data with the token, such as its URI and any extension address associated with it. It first checks if the token has an extension address associated with it, and if so, it calls the onBurn() function of the extension contract. It then deletes the token's URI and extension address from the mapping. (autogenerated documentation)
_approveTransfer(address,address,uint256) :
This function is used to approve a transfer of a token from one address to another. It checks if the token has an extension associated with it, and if so, it calls the approveTransfer function of the extension contract to approve the transfer. The function requires the sender of the transaction, the address of the sender, the address of the recipient, and the token ID as parameters. (autogenerated documentation)