From 62eb4568be40bf7be3fc9cbb93902ecb60431a2f Mon Sep 17 00:00:00 2001 From: Amirhossein Banavi Date: Wed, 9 Mar 2022 00:48:56 +0330 Subject: [PATCH] Optimize ERC721 _isApprovedOrOwner function (#3248) --- contracts/token/ERC721/ERC721.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/ERC721/ERC721.sol b/contracts/token/ERC721/ERC721.sol index 5e61eaf65..1346260a9 100644 --- a/contracts/token/ERC721/ERC721.sol +++ b/contracts/token/ERC721/ERC721.sol @@ -232,7 +232,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); - return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); + return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender); } /**