/* Crafted with love by Fueled on Bacon https://fueledonbacon.com */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.15; import './ERC721EFactory.sol'; import "../nfts/ERC721EW.sol"; contract ERC721EWFactory is ERC721EFactory { using EnumerableSet for EnumerableSet.AddressSet; constructor(address forwarder) ERC721EFactory(forwarder) { } /// @inheritdoc IERC721EFactory function versionERC721Factory() override virtual external pure returns (string memory){ return "1.0.0-beta.0+fob.rsv.iERC721EWFactory"; } /// @inheritdoc IERC721EFactory function deploy( string memory name, string memory symbol, address venue, bytes memory data ) external virtual override returns(address) { if(!isTrustedForwarder(_msgSender())) revert ERC721EFactoryInvalidForwarder(); ERC721EW erc721EW = new ERC721EW( name, symbol, venue, data ); address contractAddress = address(erc721EW); _eventsByVenue[venue].add(contractAddress); emit EventDeployed(venue, contractAddress, block.number); return contractAddress; } }