From ab00c604144a35ceb92a51c54538a66e1a4c96a1 Mon Sep 17 00:00:00 2001 From: William Entriken Date: Fri, 23 Feb 2018 01:35:35 -0500 Subject: [PATCH] Update operator language --- EIPS/eip-721.md | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/EIPS/eip-721.md b/EIPS/eip-721.md index 9b5426d7..9fc9fbe5 100644 --- a/EIPS/eip-721.md +++ b/EIPS/eip-721.md @@ -3,7 +3,7 @@ ``` EIP: Title: ERC-721 Deed Standard -Author: William Entriken , Dieter Shirley , Nastassia Sachs +Author: William Entriken , Dieter Shirley , Jacob Evans , Nastassia Sachs Type: Standard Category ERC Status: Draft @@ -65,10 +65,9 @@ interface ERC721 /* is ERC165 */ { /// approved deed controller (if any) is reset to none. event Approval(address indexed _owner, address indexed _approved, uint256 _deedId); - /// @dev This emits when the "delegate operator" for an account is changed - /// or reaffirmed. The zero address indicates there is no delegate - /// operator. - event Delegation(address indexed _owner, address indexed _delegate); + /// @dev This emits when a third party ("operator") is enabled or disable for + /// an owner. The operator may manage all deeds of the owner. + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); /// @notice Count all deeds assigned to an owner /// @dev Deeds assigned to zero address are considered invalid, and this @@ -84,7 +83,9 @@ interface ERC721 /* is ERC165 */ { /// @return The address of the owner of the deed function ownerOf(uint256 _deedId) external view returns (address _owner); - /// @notice Set a new owner for a deed + /// @notice Transfers the ownership of a deed -- warning the caller is + /// responsible to confirm that the sender is capable of receiving deeds + /// otherwise the deed may become inaccessible! /// @dev Throws unless `msg.sender` is the current deed owner, the "delegate /// operator" of the current deed owner, or the "approved deed controller". /// Throws if `_to` currently owns the deed. Throws if `_to` is the zero @@ -93,6 +94,17 @@ interface ERC721 /* is ERC165 */ { /// @param _deedId The deed to transfer function transfer(address _to, uint256 _deedId) external payable; + /// @notice Transfers the ownership of a given deed from one address to + /// another address + /// @dev Throws unless `msg.sender` is the current deed owner, the "delegate + /// operator" of the current deed owner, or the "approved deed controller". + /// Throws if `_to` currently owns the deed. Throws if `_to` is the zero + /// address. Throws if the deed is not currently owned by _from. + /// @param _from The current owner for the deed + /// @param _to The new owner for the deed + /// @param _deedId The deed to transfer + function transferFrom(address _from, address _to, uint256 _deedId) external payable; + /// @notice Set or reaffirm the "approved deed controller" for a deed /// @dev The zero address indicates there is no approved deed controller. /// @dev Throws unless `msg.sender` is the current deed owner, or the @@ -101,10 +113,12 @@ interface ERC721 /* is ERC165 */ { /// @param _deedId The deed to approve function approve(address _approved, uint256 _deedId) external payable; - /// @notice Set or reaffirm the "delegate operator" for this account - /// @dev The zero address indicates there is no delegate operator. - /// @param _delegate The new delegate operator - function delegate(address _delegate) external; + /// @notice Enable or disable approval for a third party ("operator") to manage + /// all your deeds. + /// @dev Emits the ApprovalForAll event + /// @param _operator Address to add to the set of authorized operators. + /// @param _approved True if the operators is approved, false to revoke approval + function setApprovalForAll(address _operateor, boolean _approved) payable; // CONFORMANCE TO ERC-165 (DRAFT) //////////////////////////////////////////