Browse Source

Optimize ERC721 _isApprovedOrOwner function (#3248)

Amirhossein Banavi 3 years ago
parent
commit
62eb4568be
1 changed files with 1 additions and 1 deletions
  1. 1 1
      contracts/token/ERC721/ERC721.sol

+ 1 - 1
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);
     }
 
     /**