123456789101112131415161718192021222324252627282930313233343536373839 |
- // SPDX-License-Identifier: MIT
- 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 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);
- }
- }
|