// SPDX-License-Identifier: MIT // solhint-disable private-vars-leading-underscore, ordering pragma solidity ^0.8.13; import "../../../listing/listing-configurator/AbstractListingConfigurator.sol"; import "../../../listing/listing-configurator/v1-controller/mechanics/listing/ICanListAssets.sol"; import "../../../listing/listing-configurator/v1-controller/mechanics/renting/IIsRentableListing.sol"; import "../../../listing/listing-configurator/v1-controller/mechanics/reward/IERC20RewardAware.sol"; contract ListingConfiguratorMock is AbstractListingConfigurator, ICanListAssets, IIsRentableListing, IERC20RewardAware { string private _errorMessage; bool private _canList; bool private _isRentable; address private _rewardTarget; IListingTermsRegistry.ListingTerms[] private _listingTerms; IMetahub private _metahubContract; constructor(address metahub) { _metahubContract = IMetahub(metahub); } function setConfigs(IListingTermsRegistry.ListingTerms[] calldata listingTerms) external { delete _listingTerms; for (uint256 i = 0; i < listingTerms.length; i++) { _listingTerms.push(listingTerms[i]); } } function setErrorMessage(string calldata errorMessage) external { _errorMessage = errorMessage; } function setCanList(bool canList) external { _canList = canList; } function setRentable(bool rentable) external { _isRentable = rentable; } function setRewardTarget(address target) external { _rewardTarget = target; } function __getListingTerms( Rentings.Params calldata, Listings.Listing calldata, uint256 ) external view returns (IListingTermsRegistry.ListingTerms[] memory listingTerms) { return _listingTerms; } function __canListAssets( Assets.Asset[] calldata, Listings.Params calldata, uint32, bool ) external view override returns (bool canList, string memory errorMessage) { return (_canList, _errorMessage); } function __isRentableListing( Rentings.Params calldata, Listings.Listing calldata, uint256 ) external view override returns (bool isRentable, string memory errorMessage) { return (_isRentable, errorMessage); } function supportsInterface(bytes4 interfaceId) public view override returns (bool) { return interfaceId == type(ICanListAssets).interfaceId || interfaceId == type(IIsRentableListing).interfaceId || interfaceId == type(IERC20RewardAware).interfaceId || super.supportsInterface(interfaceId); } function __getRewardTarget(Listings.Listing calldata) external view override returns (address target) { target = _rewardTarget; } function _metahub() internal view override returns (IMetahub) { return _metahubContract; } }