ERC721Burnable.sol 773 B

1234567891011121314151617181920212223242526
  1. // SPDX-License-Identifier: MIT
  2. // OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/ERC721Burnable.sol)
  3. pragma solidity ^0.8.0;
  4. import "../ERC721.sol";
  5. import "../../../utils/Context.sol";
  6. /**
  7. * @title ERC721 Burnable Token
  8. * @dev ERC721 Token that can be irreversibly burned (destroyed).
  9. */
  10. abstract contract ERC721Burnable is Context, ERC721 {
  11. /**
  12. * @dev Burns `tokenId`. See {ERC721-_burn}.
  13. *
  14. * Requirements:
  15. *
  16. * - The caller must own `tokenId` or be an approved operator.
  17. */
  18. function burn(uint256 tokenId) public virtual {
  19. //solhint-disable-next-line max-line-length
  20. require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved");
  21. _burn(tokenId);
  22. }
  23. }