ERC20MockUpgradeable.sol 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../token/ERC20/ERC20Upgradeable.sol";
  4. import "../proxy/utils/Initializable.sol";
  5. // mock class using ERC20
  6. contract ERC20MockUpgradeable is Initializable, ERC20Upgradeable {
  7. function __ERC20Mock_init(
  8. string memory name,
  9. string memory symbol,
  10. address initialAccount,
  11. uint256 initialBalance
  12. ) internal onlyInitializing {
  13. __Context_init_unchained();
  14. __ERC20_init_unchained(name, symbol);
  15. __ERC20Mock_init_unchained(name, symbol, initialAccount, initialBalance);
  16. }
  17. function __ERC20Mock_init_unchained(
  18. string memory,
  19. string memory,
  20. address initialAccount,
  21. uint256 initialBalance
  22. ) internal onlyInitializing {
  23. _mint(initialAccount, initialBalance);
  24. }
  25. function mint(address account, uint256 amount) public {
  26. _mint(account, amount);
  27. }
  28. function burn(address account, uint256 amount) public {
  29. _burn(account, amount);
  30. }
  31. function transferInternal(
  32. address from,
  33. address to,
  34. uint256 value
  35. ) public {
  36. _transfer(from, to, value);
  37. }
  38. function approveInternal(
  39. address owner,
  40. address spender,
  41. uint256 value
  42. ) public {
  43. _approve(owner, spender, value);
  44. }
  45. uint256[50] private __gap;
  46. }