Skip to content
Lattice

ERC721Burnable

Git Source

Inherits: IERC721Burnable

Title: ERC721Burnable

Author: Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/extensions/ERC721Burnable.sol)

Stateless Diamond facet adding burn(tokenId) to ERC-721. Pure delegator to ERC721BurnableLib.

Additive: cut it next to the base ERC721 facet. burn(uint256) is also the ERC20Burnable selector, so the two cannot share a diamond. It burns through ERC721Lib, so it must not share a diamond with ERC721Enumerable or ERC721Votes, and ERC721Pausable does not pause it (D25).

Notes:

  • lattice-version: 0.5.0
  • lattice-source: OpenZeppelin v5.6.1

Functions

burn

Destroys tokenId. The caller must own it, be its approved address, or be an approved operator.

function burn(uint256 tokenId) public virtual;

Parameters

NameTypeDescription
tokenIduint256

exportSelectors

ERC-8153 selector export: this facet's cuttable selectors, tightly packed (4 bytes each).

Excludes exportSelectors() itself (0x0ef22643) - it is never cut into a diamond. Order matches forge inspect ERC721Burnable methodIdentifiers (alphabetical by signature); kept in exact parity by ExportSelectorsParityTest. Chunks: burn(uint256) 0x42966c68

function exportSelectors() external pure virtual returns (bytes memory selectors);

Returns

NameTypeDescription
selectorsbytes