MockToken.sol 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // SPDX-License-Identifier: BUSL-1.1
  2. pragma solidity 0.7.6;
  3. import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
  4. contract MockToken is ERC20 {
  5. constructor(
  6. string memory name_,
  7. string memory symbol_,
  8. uint8 decimals_
  9. ) ERC20(name_, symbol_) {
  10. _setupDecimals(decimals_);
  11. _mint(msg.sender, 1000000000 * (10**decimals_));
  12. }
  13. bool paused;
  14. function mint(address _to, uint256 _amount) public {
  15. _mint(_to, _amount);
  16. }
  17. function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
  18. // need to mock some failed transfer events
  19. require(!paused, "Failed transfer due to pause");
  20. return super.transfer(recipient, amount);
  21. }
  22. function transferFrom(
  23. address sender,
  24. address recipient,
  25. uint256 amount
  26. ) public virtual override returns (bool) {
  27. // need to mock some failed transfer events
  28. require(!paused, "Failed transfer due to pause");
  29. return super.transferFrom(sender, recipient, amount);
  30. }
  31. function pauseTransfers(bool _paused) external {
  32. paused = _paused;
  33. }
  34. }