contract NuclearAcidVault is ERC1155, Ownable {

    string public baseTokenURI; 
    address public acidapesContract;


     constructor(string memory _baseTokenURI) ERC1155(_baseTokenURI) {
        setBaseURI(_baseTokenURI);
     }
     
    function mintBatch(uint256[] memory ids, uint256[] memory amounts) external onlyOwner
    {
        _mintBatch(owner(), ids, amounts, "");
    }

    function burnPotionForAddress(uint256 typeId, address burnTokenAddress) external
    {
        require(msg.sender == acidapesContract, "You are not authorized to burn");
        _burn(burnTokenAddress, typeId, 1);
    }

    //override
    function uri(uint256 typeId) public view override returns (string memory)
    {
        //require(validSerumTypes[typeId],"URI requested for invalid serum type");
        return bytes(baseTokenURI).length > 0 ? string(abi.encodePacked(baseTokenURI, Strings.toString(typeId))) : baseTokenURI;
    }

    //setters
    function setBaseURI(string memory baseURI) public onlyOwner {
        baseTokenURI = baseURI;
    }

    function setAcidApesContractAddress(address _contractAddress) public onlyOwner
    {
        acidapesContract = _contractAddress;
    }

}
function uri(uint256 typeId) public view override returns (string memory)
{
    //require(validSerumTypes[typeId],"URI requested for invalid serum type");
    return bytes(baseTokenURI).length > 0 ? string(abi.encodePacked(baseTokenURI, Strings.toString(typeId))) : baseTokenURI;
}

//override