@@ -2,7 +2,8 @@ pragma solidity ^0.4.15;
2
2
3
3
import "./SmartToken.sol " ;
4
4
import "zeppelin-solidity/contracts/token/MintableToken.sol " ;
5
- import "zeppelin-solidity/contracts/lifecycle/Pausable.sol " ;
5
+ import "zeppelin-solidity/contracts/token/BurnableToken.sol " ;
6
+ import "zeppelin-solidity/contracts/token/PausableToken.sol " ;
6
7
7
8
/**
8
9
@title Líf, the Winding Tree token
@@ -11,7 +12,7 @@ import "zeppelin-solidity/contracts/lifecycle/Pausable.sol";
11
12
to transfer value and data to execute a call on transfer.
12
13
Uses OpenZeppelin MintableToken and Pausable.
13
14
*/
14
- contract LifToken is SmartToken , MintableToken , Pausable {
15
+ contract LifToken is SmartToken , BurnableToken , MintableToken , PausableToken {
15
16
// Token Name
16
17
string public constant NAME = "Líf " ;
17
18
@@ -21,18 +22,6 @@ contract LifToken is SmartToken, MintableToken, Pausable {
21
22
// Token decimals
22
23
uint public constant DECIMALS = 18 ;
23
24
24
- function transfer (address _to , uint256 _value ) public whenNotPaused returns (bool ) {
25
- return super .transfer (_to, _value);
26
- }
27
-
28
- function approve (address _spender , uint256 _value ) public whenNotPaused returns (bool ) {
29
- return super .approve (_spender, _value);
30
- }
31
-
32
- function transferFrom (address _from , address _to , uint256 _value ) public whenNotPaused returns (bool ) {
33
- return super .transferFrom (_from, _to, _value);
34
- }
35
-
36
25
function approveData (address spender , uint256 value , bytes data ) public whenNotPaused returns (bool ) {
37
26
return super .approveData (spender, value, data);
38
27
}
@@ -51,18 +40,11 @@ contract LifToken is SmartToken, MintableToken, Pausable {
51
40
@param _value The amount of tokens to be burned.
52
41
*/
53
42
function burn (uint256 _value ) public whenNotPaused {
54
- require (_value > 0 );
55
-
56
- address burner = msg .sender ;
57
- balances[burner] = balances[burner].sub (_value);
58
- totalSupply = totalSupply.sub (_value);
59
- Burn (burner, _value);
43
+ super .burn (_value);
60
44
61
45
// a Transfer event to 0x0 can be useful for observers to keep track of
62
46
// all the Lif by just looking at those events
63
- Transfer (burner , address (0 ), _value);
47
+ Transfer (msg . sender , address (0 ), _value);
64
48
}
65
49
66
- event Burn (address indexed burner , uint value );
67
-
68
50
}
0 commit comments