* Error handling in ERC20 and ERC721 * Added message string for require. * Fixed solhint errors. * Updated PR as per issue #1709 * changes as per #1709 and openzeppelin forum. * Changes in require statement * Changes in require statement * build pipeline fix * Changes as per @nventuro's comment. * Update revert reason strings. * Fianal update of revert reason strings. * WIP: Updating reason strings in test cases * WIP: Added changes to ERC20 and ERC721 * Fixes linting errors in *.tes.js files * Achieved 100% code coverage * Updated the test cases with shouldFail.reverting.withMessage() * Fix package-lock. * address review comments * fix linter issues * fix remaining revert reasons
20 lines
555 B
Solidity
20 lines
555 B
Solidity
pragma solidity ^0.5.7;
|
|
|
|
import "./ERC721.sol";
|
|
|
|
/**
|
|
* @title ERC721 Burnable Token
|
|
* @dev ERC721 Token that can be irreversibly burned (destroyed).
|
|
*/
|
|
contract ERC721Burnable is ERC721 {
|
|
/**
|
|
* @dev Burns a specific ERC721 token.
|
|
* @param tokenId uint256 id of the ERC721 token to be burned.
|
|
*/
|
|
function burn(uint256 tokenId) public {
|
|
//solhint-disable-next-line max-line-length
|
|
require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721Burnable: caller is not owner nor approved");
|
|
_burn(tokenId);
|
|
}
|
|
}
|