Skip to content

Commit

Permalink
Deprecated ERC721._burn(address, uint256) (#1550)
Browse files Browse the repository at this point in the history
* Deprecated ERC721._burn(address, uint256)

* Added missing natspec comment.
  • Loading branch information
nventuro authored and frangio committed Dec 11, 2018
1 parent 357fded commit dd2e947
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 9 deletions.
2 changes: 1 addition & 1 deletion contracts/mocks/ERC721Mock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ contract ERC721Mock is ERC721 {
}

function burn(uint256 tokenId) public {
_burn(ownerOf(tokenId), tokenId);
_burn(tokenId);
}
}
2 changes: 1 addition & 1 deletion contracts/mocks/ERC721PausableMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ contract ERC721PausableMock is ERC721Pausable, PauserRoleMock {
}

function burn(uint256 tokenId) public {
super._burn(ownerOf(tokenId), tokenId);
super._burn(tokenId);
}

function exists(uint256 tokenId) public view returns (bool) {
Expand Down
15 changes: 13 additions & 2 deletions contracts/token/ERC721/ERC721.sol
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ contract ERC721 is ERC165, IERC721 {
* @dev Internal function to mint a new token
* Reverts if the given token ID already exists
* @param to The address that will own the minted token
* @param tokenId uint256 ID of the token to be minted by the msg.sender
* @param tokenId uint256 ID of the token to be minted
*/
function _mint(address to, uint256 tokenId) internal {
require(to != address(0));
Expand All @@ -209,14 +209,25 @@ contract ERC721 is ERC165, IERC721 {
/**
* @dev Internal function to burn a specific token
* Reverts if the token does not exist
* @param tokenId uint256 ID of the token being burned by the msg.sender
* Deprecated, use _burn(uint256) instead.
* @param owner owner of the token to burn
* @param tokenId uint256 ID of the token being burned
*/
function _burn(address owner, uint256 tokenId) internal {
_clearApproval(tokenId);
_removeTokenFrom(owner, tokenId);
emit Transfer(owner, address(0), tokenId);
}

/**
* @dev Internal function to burn a specific token
* Reverts if the token does not exist
* @param tokenId uint256 ID of the token being burned
*/
function _burn(uint256 tokenId) internal {
_burn(ownerOf(tokenId), tokenId);
}

/**
* @dev Internal function to add a token ID to the list of a given address
* Note that this function is left internal to make ERC721Enumerable possible, but is not
Expand Down
2 changes: 1 addition & 1 deletion contracts/token/ERC721/ERC721Burnable.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ contract ERC721Burnable is ERC721 {
*/
function burn(uint256 tokenId) public {
require(_isApprovedOrOwner(msg.sender, tokenId));
_burn(ownerOf(tokenId), tokenId);
_burn(tokenId);
}
}
9 changes: 5 additions & 4 deletions contracts/token/ERC721/ERC721Enumerable.sol
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {
* @dev Internal function to mint a new token
* Reverts if the given token ID already exists
* @param to address the beneficiary that will own the minted token
* @param tokenId uint256 ID of the token to be minted by the msg.sender
* @param tokenId uint256 ID of the token to be minted
*/
function _mint(address to, uint256 tokenId) internal {
super._mint(to, tokenId);
Expand All @@ -129,8 +129,9 @@ contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {
/**
* @dev Internal function to burn a specific token
* Reverts if the token does not exist
* Deprecated, use _burn(uint256) instead
* @param owner owner of the token to burn
* @param tokenId uint256 ID of the token being burned by the msg.sender
* @param tokenId uint256 ID of the token being burned
*/
function _burn(address owner, uint256 tokenId) internal {
super._burn(owner, tokenId);
Expand All @@ -147,10 +148,10 @@ contract ERC721Enumerable is ERC165, ERC721, IERC721Enumerable {
_allTokensIndex[tokenId] = 0;
_allTokensIndex[lastToken] = tokenIndex;
}

/**
* @dev Gets the list of token IDs of the requested owner
* @param owner address owning the tokens
* @param owner address owning the tokens
* @return uint256[] List of token IDs owned by the requested address
*/
function _tokensOfOwner(address owner) internal view returns (uint256[] storage) {
Expand Down
1 change: 1 addition & 0 deletions contracts/token/ERC721/ERC721Metadata.sol
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ contract ERC721Metadata is ERC165, ERC721, IERC721Metadata {
/**
* @dev Internal function to burn a specific token
* Reverts if the token does not exist
* Deprecated, use _burn(uint256) instead
* @param owner owner of the token to burn
* @param tokenId uint256 ID of the token being burned by the msg.sender
*/
Expand Down

0 comments on commit dd2e947

Please sign in to comment.