| 12345678910111213141516171819202122232425262728293031323334353637383940 | // SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.8.0) (token/ERC1155/extensions/ERC1155Burnable.sol)pragma solidity ^0.8.0;import "../ERC1155.sol";/** * @dev Extension of {ERC1155} that allows token holders to destroy both their * own tokens and those that they have been approved to use. * * _Available since v3.1._ */abstract contract ERC1155Burnable is ERC1155 {    function burn(        address account,        uint256 id,        uint256 value    ) public virtual {        require(            account == _msgSender() || isApprovedForAll(account, _msgSender()),            "ERC1155: caller is not token owner or approved"        );        _burn(account, id, value);    }    function burnBatch(        address account,        uint256[] memory ids,        uint256[] memory values    ) public virtual {        require(            account == _msgSender() || isApprovedForAll(account, _msgSender()),            "ERC1155: caller is not token owner or approved"        );        _burnBatch(account, ids, values);    }}
 |