// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; import {JPEGCurveMarket} from "./JPEGCurveMarket.sol"; /// @notice Permissionless registry. Creation charges only network gas. contract JPEGCurveFactory { address[] public collections; mapping(address=>bool) public isCollection; event CollectionCreated(address indexed collection,address indexed creator,string name,string symbol,uint256 maxSupply,uint256 basePrice); function createCollection(string calldata name,string calldata symbol,string calldata imageURI,string calldata description,uint256 maxSupply,uint256 basePrice) external returns(address collection){ collection=address(new JPEGCurveMarket(name,symbol,imageURI,description,maxSupply,basePrice,msg.sender)); collections.push(collection);isCollection[collection]=true; emit CollectionCreated(collection,msg.sender,name,symbol,maxSupply,basePrice); } function collectionCount() external view returns(uint256){return collections.length;} }