Remove redundant memory usage in ERC2981 royaltyInfo (#4538)

Co-authored-by: Hadrien Croubois <hadrien.croubois@gmail.com>
This commit is contained in:
Vladislav Volosnikov
2024-03-25 17:06:28 +01:00
committed by GitHub
parent d398d68944
commit 9558e546d9

View File

@ -59,15 +59,18 @@ abstract contract ERC2981 is IERC2981, ERC165 {
* @inheritdoc IERC2981 * @inheritdoc IERC2981
*/ */
function royaltyInfo(uint256 tokenId, uint256 salePrice) public view virtual returns (address, uint256) { function royaltyInfo(uint256 tokenId, uint256 salePrice) public view virtual returns (address, uint256) {
RoyaltyInfo memory royalty = _tokenRoyaltyInfo[tokenId]; RoyaltyInfo storage _royaltyInfo = _tokenRoyaltyInfo[tokenId];
address royaltyReceiver = _royaltyInfo.receiver;
uint96 royaltyFraction = _royaltyInfo.royaltyFraction;
if (royalty.receiver == address(0)) { if (royaltyReceiver == address(0)) {
royalty = _defaultRoyaltyInfo; royaltyReceiver = _defaultRoyaltyInfo.receiver;
royaltyFraction = _defaultRoyaltyInfo.royaltyFraction;
} }
uint256 royaltyAmount = (salePrice * royalty.royaltyFraction) / _feeDenominator(); uint256 royaltyAmount = (salePrice * royaltyFraction) / _feeDenominator();
return (royalty.receiver, royaltyAmount); return (royaltyReceiver, royaltyAmount);
} }
/** /**