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
*/
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)) {
royalty = _defaultRoyaltyInfo;
if (royaltyReceiver == address(0)) {
royaltyReceiver = _defaultRoyaltyInfo.receiver;
royaltyFraction = _defaultRoyaltyInfo.royaltyFraction;
}
uint256 royaltyAmount = (salePrice * royalty.royaltyFraction) / _feeDenominator();
uint256 royaltyAmount = (salePrice * royaltyFraction) / _feeDenominator();
return (royalty.receiver, royaltyAmount);
return (royaltyReceiver, royaltyAmount);
}
/**