diff --git a/EIPS/eip-721.md b/EIPS/eip-721.md index 8183da8e..3ad491bc 100644 --- a/EIPS/eip-721.md +++ b/EIPS/eip-721.md @@ -95,9 +95,10 @@ interface ERC721 /* is ERC165 */ { /// @dev Throws unless `msg.sender` is the current owner, an authorized /// operator, or the approved address for this NFT. Throws if `_from` is /// not the current owner. Throws if `_to` is the zero address. Throws if - /// `_tokenId` is not a valid NFT. When transfer is complete, this function also - /// calls `onNFTReceived` on `_to` and throws if the return value is not - /// `keccak256("ERC721_ONNFTRECEIVED")`. + /// `_tokenId` is not a valid NFT. When transfer is complete, this function + /// checks if `_to` is a smart contract (code size > 0). If so, it calls + /// `onNFTReceived` on `_to` and throws if the return value is not + /// `bytes4(keccak256("onNFTReceived(address,uint256,bytes)"))`. /// @param _from The current owner of the NFT /// @param _to The new owner /// @param _tokenId The NFT to transfer @@ -105,12 +106,8 @@ interface ERC721 /* is ERC165 */ { function transferFrom(address _from, address _to, uint256 _tokenId, bytes[] data) external payable; /// @notice Transfers the ownership of an NFT from one address to another address - /// @dev Throws unless `msg.sender` is the current owner, an authorized - /// operator, or the approved address for this NFT. Throws if `_from` is - /// not the current owner. Throws if `_to` is the zero address. Throws if - /// `_tokenId` is not a valid NFT. When transfer is complete, this function also - /// calls `onNFTReceived` on `_to` and throws if the return value is not - /// `keccak256("ERC721_ONNFTRECEIVED")`. + /// @dev This works identically to the other function with an extra data parameter, + /// except this function just sets data to [] /// @param _from The current owner of the NFT /// @param _to The new owner /// @param _tokenId The NFT to transfer