// SPDX-License-Identifier: AGPL-3.0 pragma solidity ^0.8.11; import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Burnable.sol"; import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol"; import "./interfaces/IERC1155Custom.sol"; contract ERC1155Custom is ERC1155, Ownable, ERC1155Burnable, ERC1155Supply, IERC1155Custom { constructor(string memory _uri) ERC1155(_uri) {} function setURI(string memory newuri) public onlyOwner { _setURI(newuri); } function mint( address account, uint256 id, uint256 amount, bytes memory data ) public onlyOwner { _mint(account, id, amount, data); } function mintBatch( address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) public onlyOwner { _mintBatch(to, ids, amounts, data); } // The following functions are overrides required by Solidity. function _beforeTokenTransfer( address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal override(ERC1155, ERC1155Supply) { super._beforeTokenTransfer(operator, from, to, ids, amounts, data); } }