/* Crafted with love by Fueled on Bacon https://fueledonbacon.com */ //SPDX-License-Identifier: MIT pragma solidity ^0.8.15; interface IERC721AMarketplace { event Sell( address indexed buyer, address indexed seller, uint256 indexed tokenId, uint256 sellprice ); event NewOffer(address indexed buyer, uint256 indexed tokenId, uint256 indexed offerId); event AcceptOffer(uint256 indexed offerId); event CancelOffer(uint256 indexed offerId); error ERC721AMKInvalidBatchLengths(); error ERC721AMKInvalidSellPrice(); error ERC721AMKWrongDeadline(); error ERC721AMKUnexistentOffer(); error ERC721AMKNotTokenOwner(); error ERC721AMKOfferDeadlineOver(); error ERC721AMKNotOfferOwner(); error ERC721AMKInvalidOfferPrice(); error ERC721AMKUnexistentToken(); struct Offer { uint256 tokenId; uint256 offerPrice; address buyer; uint64 offerDeadline; } function versionERC721AMarketplace() external pure returns (string memory); function buyBatch(uint256[] memory tokenIds, uint256[] memory sellPrices) external; function setOffers( uint256[] memory tokenIds, uint256[] memory offerPrices, uint64 deadline ) external; function acceptOffers(uint256[] memory offerIds) external; function cancelOffers(uint256[] memory offerIds) external; function getOffersByToken( uint256 tokenId, bool active, bool expired ) external view returns (uint256[] memory); function getOffersByBuyer( address buyer, bool active, bool expired ) external view returns (uint256[] memory); function getOffer(uint256 offerId) external view returns (Offer memory); function versionERC721() external pure returns (string memory); }