// SPDX-License-Identifier: MIT pragma solidity 0.8.13; import "../../../listing/listing-strategies/ListingStrategies.sol"; import "../../../listing/listing-terms-registry/IListingTermsRegistry.sol"; import "../../../tax/tax-strategies/TaxStrategies.sol"; import "../../../tax/tax-terms-registry/ITaxTermsRegistry.sol"; library GeneralWizardsHelperV1 { /** * @dev Thrown when provided Tax Terms are invalid. */ error TaxTermsAreInvalid(); /** * @dev Thrown when provided Listing Terms are invalid. */ error ListingTermsAreInvalid(); function areEmptyTaxTerms(ITaxTermsRegistry.TaxTerms calldata taxTerms) internal pure returns (bool) { return taxTerms.strategyId.length == 0 || taxTerms.strategyData.length == 0; } function areEmptyListingTerms(IListingTermsRegistry.ListingTerms calldata listingTerms) internal pure returns (bool) { return listingTerms.strategyId.length == 0 || listingTerms.strategyData.length == 0; } function checkTaxTermsAreValid(ITaxTermsRegistry.TaxTerms calldata taxTerms) internal pure { if (areEmptyTaxTerms(taxTerms) || !TaxStrategies.isValidTaxStrategy(taxTerms.strategyId)) revert TaxTermsAreInvalid(); } function checkListingTermsAreValid(IListingTermsRegistry.ListingTerms calldata listingTerms) internal pure { if (areEmptyListingTerms(listingTerms) || !ListingStrategies.isValidListingStrategy(listingTerms.strategyId)) revert ListingTermsAreInvalid(); } }