pragma solidity ^0.4.21; contract Check721Signature { function ERC721() external pure returns (bytes4) { return bytes4( keccak256("balanceOf(address)") ^ keccak256("ownerOf(uint256)") ^ keccak256("safeTransferFrom(address,address,uint256,bytes)") ^ keccak256("safeTransferFrom(address,address,uint256)") ^ keccak256("transferFrom(address,address,uint256)") ^ keccak256("approve(address,uint256)") ^ keccak256("setApprovalForAll(address,bool)") ^ keccak256("getApproved(uint256)") ^ keccak256("isApprovedForAll(address,address)") ^ 0 ); } function ERC721Metadata() external pure returns (bytes4) { return bytes4( keccak256("name()") ^ keccak256("symbol()") ^ keccak256("tokenURI(uint256)") ^ 0 ); } function ERC721Enumerable() external pure returns (bytes4) { return bytes4( keccak256("totalSupply()") ^ keccak256("tokenByIndex(uint256)") ^ keccak256("tokenOfOwnerByIndex(address,uint256)") ^ 0 ); } }
0.4.18