| 123456789101112131415161718192021222324252627282930313233343536373839 | // SPDX-License-Identifier: MITpragma 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 owner nor 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 owner nor approved"        );        _burnBatch(account, ids, values);    }}
 |