/ test / common / mock / ERC20Mock.t.sol
ERC20Mock.t.sol
 1  pragma solidity >=0.6.0;
 2  
 3  import "../../../contracts/utils/ERC20.sol";
 4  import "../../../contracts/utils/SafeMath.sol";
 5  
 6  contract ERC20Mock is ERC20 {
 7  
 8      using SafeMath for uint;
 9  
10      string private constant _name = "ERC20Mock";
11      string private constant _symbol = "MOCK";
12  
13      uint8 private _decimals;
14  
15      constructor(uint8 decimals) ERC20(_name) public {
16  
17          _decimals = decimals;
18      }
19  
20      function name() override external view returns (string memory) {
21  
22          return _name;
23      }
24  
25      function symbol() override external view returns (string memory) {
26  
27          return _symbol;
28      }
29  
30      function decimals() override external view returns (uint8) {
31  
32          return _decimals;
33      }
34  
35      function reset() external {
36  
37          _totalSupply = 0;
38      }
39  
40      function reset(address addr) external {
41  
42          removeBalance(addr, balanceOf(addr));
43      }
44  
45      function issue(address to, uint value) external {
46  
47          addBalance(to, value);
48          _totalSupply = _totalSupply.add(value);
49          emitTransfer(address(0), to, value);
50      }
51  }