diff --git a/EIPS/eip-875.md b/EIPS/eip-875.md index af4424e56cd80d..be9d5bdf63f242 100644 --- a/EIPS/eip-875.md +++ b/EIPS/eip-875.md @@ -1,9 +1,10 @@ --- eip: 875 -title: A better NFT standard +title: Simpler NFT standard with batching and native atomic swaps author: Weiwu Zhang , James Sangalli discussions-to: https://github.com/ethereum/EIPs/issues/875 -status: Draft +status: Last Call +review-period-end: 2019-07-29 type: Standards Track category: ERC created: 2018-02-08 @@ -63,7 +64,18 @@ Some protections need to be added to the message such as encoding the chain id, ## Interface ``` -contract ERC875 +contract ERC165 +{ + /// @notice Query if a contract implements an interface + /// @param interfaceID The interface identifier, as specified in ERC-165 + /// @dev Interface identification is specified in ERC-165. This function + /// uses less than 30,000 gas. + /// @return `true` if the contract implements `interfaceID` and + /// `interfaceID` is not 0xffffffff, `false` otherwise + function supportsInterface(bytes4 interfaceID) external view returns (bool); +} + +interface ERC875 /* is ERC165 */ { event Transfer(address indexed _from, address indexed _to, uint256[] tokenIndices); @@ -72,11 +84,17 @@ contract ERC875 function balanceOf(address _owner) public view returns (uint256[] _balances); function transfer(address _to, uint256[] _tokens) public; function transferFrom(address _from, address _to, uint256[] _tokens) public; +} - //optional - //function totalSupply() public constant returns (uint256 totalSupply); - function trade(uint256 expiryTimeStamp, uint256[] tokenIndices, uint8 v, bytes32 r, bytes32 s) public payable; - //function ownerOf(uint256 _tokenId) public view returns (address _owner); +//If you want the standard functions with atomic swap trading added +interface ERC875WithAtomicSwapTrading is ERC875 { + function trade( + uint256 expiryTimeStamp, + uint256[] tokenIndices, + uint8 v, + bytes32 r, + bytes32 s + ) public payable; } ```