|
|
|
@ -8,6 +8,43 @@ import "../../introspection/ERC165.sol"; |
|
|
|
|
* @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md |
|
|
|
|
*/ |
|
|
|
|
contract ERC721Basic is ERC165 { |
|
|
|
|
|
|
|
|
|
bytes4 internal constant InterfaceId_ERC721 = 0x80ac58cd; |
|
|
|
|
/* |
|
|
|
|
* 0x80ac58cd === |
|
|
|
|
* bytes4(keccak256('balanceOf(address)')) ^ |
|
|
|
|
* bytes4(keccak256('ownerOf(uint256)')) ^ |
|
|
|
|
* bytes4(keccak256('approve(address,uint256)')) ^ |
|
|
|
|
* bytes4(keccak256('getApproved(uint256)')) ^ |
|
|
|
|
* bytes4(keccak256('setApprovalForAll(address,bool)')) ^ |
|
|
|
|
* bytes4(keccak256('isApprovedForAll(address,address)')) ^ |
|
|
|
|
* bytes4(keccak256('transferFrom(address,address,uint256)')) ^ |
|
|
|
|
* bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^ |
|
|
|
|
* bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
bytes4 internal constant InterfaceId_ERC721Exists = 0x4f558e79; |
|
|
|
|
/* |
|
|
|
|
* 0x4f558e79 === |
|
|
|
|
* bytes4(keccak256('exists(uint256)')) |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
bytes4 internal constant InterfaceId_ERC721Enumerable = 0x780e9d63; |
|
|
|
|
/** |
|
|
|
|
* 0x780e9d63 === |
|
|
|
|
* bytes4(keccak256('totalSupply()')) ^ |
|
|
|
|
* bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) ^ |
|
|
|
|
* bytes4(keccak256('tokenByIndex(uint256)')) |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
bytes4 internal constant InterfaceId_ERC721Metadata = 0x5b5e139f; |
|
|
|
|
/** |
|
|
|
|
* 0x5b5e139f === |
|
|
|
|
* bytes4(keccak256('name()')) ^ |
|
|
|
|
* bytes4(keccak256('symbol()')) ^ |
|
|
|
|
* bytes4(keccak256('tokenURI(uint256)')) |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
event Transfer( |
|
|
|
|
address indexed _from, |
|
|
|
|
address indexed _to, |
|
|
|
|