ERC20SnapshotMockUpgradeable.sol 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../token/ERC20/extensions/ERC20SnapshotUpgradeable.sol";
  4. import "../proxy/utils/Initializable.sol";
  5. contract ERC20SnapshotMockUpgradeable is Initializable, ERC20SnapshotUpgradeable {
  6. function __ERC20SnapshotMock_init(
  7. string memory name,
  8. string memory symbol,
  9. address initialAccount,
  10. uint256 initialBalance
  11. ) internal onlyInitializing {
  12. __Context_init_unchained();
  13. __ERC20_init_unchained(name, symbol);
  14. __ERC20Snapshot_init_unchained();
  15. __ERC20SnapshotMock_init_unchained(name, symbol, initialAccount, initialBalance);
  16. }
  17. function __ERC20SnapshotMock_init_unchained(
  18. string memory,
  19. string memory,
  20. address initialAccount,
  21. uint256 initialBalance
  22. ) internal onlyInitializing {
  23. _mint(initialAccount, initialBalance);
  24. }
  25. function snapshot() public {
  26. _snapshot();
  27. }
  28. function mint(address account, uint256 amount) public {
  29. _mint(account, amount);
  30. }
  31. function burn(address account, uint256 amount) public {
  32. _burn(account, amount);
  33. }
  34. uint256[50] private __gap;
  35. }