/* Crafted with love by Fueled on Bacon https://fueledonbacon.com */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.15; import "@openzeppelin/contracts/utils/introspection/ERC165.sol"; import "./ERC721A.sol"; import "./ERC2981.sol"; abstract contract ERC721ARoyalty is ERC2981, ERC721A { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721A, ERC2981) returns (bool) { return super.supportsInterface(interfaceId); } /** * @dev See {ERC721-_burn}. This override additionally clears the royalty information for the token. */ function _burn(uint256 tokenId) internal virtual override { super._burn(tokenId); _resetTokenRoyalty(tokenId); } function _getDefaultRoyaltyBatch(uint256 amount) internal view returns(address, uint256) { RoyaltyInfo memory info = _defaultRoyaltyInfo; uint256 royaltyAmount = (amount * info.royaltyFraction) / _feeDenominator(); return (info.receiver, royaltyAmount); } }