@@ -2,6 +2,8 @@ pragma solidity ^0.6.4;
2
2
3
3
import "@openzeppelin/contracts/token/ERC20/ERC20.sol " ;
4
4
5
+ import "../governance/Governed.sol " ;
6
+
5
7
/**
6
8
* @title GraphSignalToken contract
7
9
* @dev This is the implementation of the Curation Signal ERC20 token (GST).
@@ -10,7 +12,7 @@ import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
10
12
* burn them. GST tokens are transferrable and their holders can do any action allowed
11
13
* in a standard ERC20 token implementation except for burning them.
12
14
*/
13
- contract GraphSignalToken is ERC20 {
15
+ contract GraphSignalToken is ERC20 , Governed {
14
16
address public owner;
15
17
16
18
modifier onlyOwner {
@@ -24,15 +26,15 @@ contract GraphSignalToken is ERC20 {
24
26
* @param _owner Address of the contract issuing this token
25
27
*/
26
28
constructor (string memory _symbol , address _owner ) public ERC20 ("Graph Signal Token " , _symbol) {
27
- owner = _owner;
29
+ Governed. _initialize ( _owner) ;
28
30
}
29
31
30
32
/**
31
33
* @dev Mint new tokens.
32
34
* @param _to Address to send the newly minted tokens
33
35
* @param _amount Amount of tokens to mint
34
36
*/
35
- function mint (address _to , uint256 _amount ) public onlyOwner {
37
+ function mint (address _to , uint256 _amount ) public onlyGovernor {
36
38
_mint (_to, _amount);
37
39
}
38
40
@@ -41,7 +43,7 @@ contract GraphSignalToken is ERC20 {
41
43
* @param _account Address from where tokens will be burned
42
44
* @param _amount Amount of tokens to burn
43
45
*/
44
- function burnFrom (address _account , uint256 _amount ) public onlyOwner {
46
+ function burnFrom (address _account , uint256 _amount ) public onlyGovernor {
45
47
_burn (_account, _amount);
46
48
}
47
49
}
0 commit comments