/* Crafted with love by Fueled on Bacon https://fueledonbacon.com */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.15; interface IVenueSBT { event NewEvent(address indexed _event, uint256 indexed tokenId, uint256 indexed blockNumber); event BurnEvent(address indexed _event, uint256 indexed tokenId); error VenueSenderIsNotRegistarOwner(); error VenueInvalidRoyaltyReceiver(); error VenueInvalidRoyaltyFeeNumerator(); error VenueFailedDeployingEvent(); error VenueUnableToBurn(); error VenueFailedForwardingCall(); error VenueSBTNonTransferable(); error VenueUnexistentToken(); error VenueWrongPaymentToken(); error VenueFailedToTransferETH(); error VenueSecondarySalesAlreadySet(); error ForwarderErrorUnableGettingBalance(); error VenuePaymasterBalanceTooLow(); error VenuePaymasterNotEnoughFunds(); function versionVenueSBT() external pure returns (string memory); /// @dev only VenueRegistar owner can call this function function setRoyaltyInfo(address royaltyReceiver, uint96 royaltyFeeNumerator) external; function setRoyaltyInfoSecondarySales(address royaltyReceiver, uint96 royaltyFeeNumerator) external; function mint( uint256 typeOf, string memory name, string memory symbol, string memory baseUri, address paymentToken, bytes memory extraData ) external payable; /// @dev only can burn if totalSupply of ERC721 where tokenId points to is 0 function burn(uint256 tokenId) external; function setBaseURI(string memory baseUri) external; function isEvent(address _event) external returns(bool); function getEvents() external view returns (address[] memory); function getVenueRegistar() external view returns(address); function withdrawToken(address token) external; function withdrawETH() external; function setRoyaltyReceiverSecondarySales(address royaltyReceiverSecondarySales) external; function withdrawFromPaymaster(uint256 amount) external; }