The _transferFeesAndFunds method of BaseExchange.sol tries to retrieve the royalty info from the NFT contract. This requires the contract to implement the ERC2981.
As I understand, for contracts not created via Shoyu and thus probably not having an exchange implemented, ERC721ExchangeV0.sol should act as a more generic version of the exchange allowing to trade allowed NFTs.
Shouldn't we allow existing NFT projects to set a royalty fee if ERC2981 isn't implemented in their existing contract? I'm concerned the marketplace wouldn't be a good fit for a lot of the existing projects otherwise.
The
_transferFeesAndFunds
method ofBaseExchange.sol
tries to retrieve the royalty info from the NFT contract. This requires the contract to implement the ERC2981.https://github.com/sushiswap/shoyu/blob/3d8454043d3dc67a3cfe1af7a8f8c73776bc3c2e/contracts/base/BaseExchange.sol#L296-L304
As I understand, for contracts not created via Shoyu and thus probably not having an exchange implemented,
ERC721ExchangeV0.sol
should act as a more generic version of the exchange allowing to trade allowed NFTs.Shouldn't we allow existing NFT projects to set a royalty fee if ERC2981 isn't implemented in their existing contract? I'm concerned the marketplace wouldn't be a good fit for a lot of the existing projects otherwise.