ERC20Burnable.sol 893 B

123456789101112131415161718192021222324252627282930313233343536
  1. pragma solidity ^0.4.24;
  2. import "./ERC20.sol";
  3. /**
  4. * @title Burnable Token
  5. * @dev Token that can be irreversibly burned (destroyed).
  6. */
  7. contract ERC20Burnable is ERC20 {
  8. /**
  9. * @dev Burns a specific amount of tokens.
  10. * @param value The amount of token to be burned.
  11. */
  12. function burn(uint256 value) public {
  13. _burn(msg.sender, value);
  14. }
  15. /**
  16. * @dev Burns a specific amount of tokens from the target address and decrements allowance
  17. * @param from address The address which you want to send tokens from
  18. * @param value uint256 The amount of token to be burned
  19. */
  20. function burnFrom(address from, uint256 value) public {
  21. _burnFrom(from, value);
  22. }
  23. /**
  24. * @dev Overrides ERC20._burn in order for burn and burnFrom to emit
  25. * an additional Burn event.
  26. */
  27. function _burn(address who, uint256 value) internal {
  28. super._burn(who, value);
  29. }
  30. }