Files
openzeppelin-contracts/contracts/token/ERC20/BurnableToken.sol
Facundo Spagnuolo c5d66183ab Move ERC20 contracts to ERC20 custom folder (#701)
* Move ERC20 contracts to ERC20 custom folder

* Fix linter warnings for ERC20 contracts
2018-01-23 17:46:41 -03:00

29 lines
772 B
Solidity

pragma solidity ^0.4.18;
import "./BasicToken.sol";
/**
* @title Burnable Token
* @dev Token that can be irreversibly burned (destroyed).
*/
contract BurnableToken is BasicToken {
event Burn(address indexed burner, uint256 value);
/**
* @dev Burns a specific amount of tokens.
* @param _value The amount of token to be burned.
*/
function burn(uint256 _value) public {
require(_value <= balances[msg.sender]);
// no need to require value <= totalSupply, since that would imply the
// sender's balance is greater than the totalSupply, which *should* be an assertion failure
address burner = msg.sender;
balances[burner] = balances[burner].sub(_value);
totalSupply_ = totalSupply_.sub(_value);
Burn(burner, _value);
}
}