BurnableToken.sol 1013 B

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