From 4e2641a9151fcbb0cd59126a52040fea68ecb807 Mon Sep 17 00:00:00 2001 From: Anton Bukov Date: Tue, 13 Jul 2021 02:23:14 +0300 Subject: [PATCH] Simplify selector access (#2766) --- contracts/token/ERC1155/ERC1155.sol | 4 ++-- contracts/token/ERC721/ERC721.sol | 2 +- contracts/utils/cryptography/SignatureChecker.sol | 2 +- contracts/utils/introspection/ERC165Checker.sol | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/token/ERC1155/ERC1155.sol b/contracts/token/ERC1155/ERC1155.sol index 240d9cd88..634f38934 100644 --- a/contracts/token/ERC1155/ERC1155.sol +++ b/contracts/token/ERC1155/ERC1155.sol @@ -408,7 +408,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { ) private { if (to.isContract()) { try IERC1155Receiver(to).onERC1155Received(operator, from, id, amount, data) returns (bytes4 response) { - if (response != IERC1155Receiver(to).onERC1155Received.selector) { + if (response != IERC1155Receiver.onERC1155Received.selector) { revert("ERC1155: ERC1155Receiver rejected tokens"); } } catch Error(string memory reason) { @@ -431,7 +431,7 @@ contract ERC1155 is Context, ERC165, IERC1155, IERC1155MetadataURI { try IERC1155Receiver(to).onERC1155BatchReceived(operator, from, ids, amounts, data) returns ( bytes4 response ) { - if (response != IERC1155Receiver(to).onERC1155BatchReceived.selector) { + if (response != IERC1155Receiver.onERC1155BatchReceived.selector) { revert("ERC1155: ERC1155Receiver rejected tokens"); } } catch Error(string memory reason) { diff --git a/contracts/token/ERC721/ERC721.sol b/contracts/token/ERC721/ERC721.sol index 5a2494c6f..0b37218ec 100644 --- a/contracts/token/ERC721/ERC721.sol +++ b/contracts/token/ERC721/ERC721.sol @@ -374,7 +374,7 @@ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { - return retval == IERC721Receiver(to).onERC721Received.selector; + return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); diff --git a/contracts/utils/cryptography/SignatureChecker.sol b/contracts/utils/cryptography/SignatureChecker.sol index 38f1dfef4..5040ff1bf 100644 --- a/contracts/utils/cryptography/SignatureChecker.sol +++ b/contracts/utils/cryptography/SignatureChecker.sol @@ -24,7 +24,7 @@ library SignatureChecker { ) internal view returns (bool) { if (Address.isContract(signer)) { try IERC1271(signer).isValidSignature(hash, signature) returns (bytes4 magicValue) { - return magicValue == IERC1271(signer).isValidSignature.selector; + return magicValue == IERC1271.isValidSignature.selector; } catch { return false; } diff --git a/contracts/utils/introspection/ERC165Checker.sol b/contracts/utils/introspection/ERC165Checker.sol index de34da916..dbd86a92d 100644 --- a/contracts/utils/introspection/ERC165Checker.sol +++ b/contracts/utils/introspection/ERC165Checker.sol @@ -104,7 +104,7 @@ library ERC165Checker { * Interface identification is specified in ERC-165. */ function _supportsERC165Interface(address account, bytes4 interfaceId) private view returns (bool) { - bytes memory encodedParams = abi.encodeWithSelector(IERC165(account).supportsInterface.selector, interfaceId); + bytes memory encodedParams = abi.encodeWithSelector(IERC165.supportsInterface.selector, interfaceId); (bool success, bytes memory result) = account.staticcall{gas: 30000}(encodedParams); if (result.length < 32) return false; return success && abi.decode(result, (bool));