ERC777MockUpgradeable.sol 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../utils/ContextUpgradeable.sol";
  4. import "../token/ERC777/ERC777Upgradeable.sol";
  5. import "../proxy/utils/Initializable.sol";
  6. contract ERC777MockUpgradeable is Initializable, ContextUpgradeable, ERC777Upgradeable {
  7. event BeforeTokenTransfer();
  8. function __ERC777Mock_init(
  9. address initialHolder,
  10. uint256 initialBalance,
  11. string memory name,
  12. string memory symbol,
  13. address[] memory defaultOperators
  14. ) internal onlyInitializing {
  15. __ERC777_init_unchained(name, symbol, defaultOperators);
  16. __ERC777Mock_init_unchained(initialHolder, initialBalance, name, symbol, defaultOperators);
  17. }
  18. function __ERC777Mock_init_unchained(
  19. address initialHolder,
  20. uint256 initialBalance,
  21. string memory,
  22. string memory,
  23. address[] memory
  24. ) internal onlyInitializing {
  25. _mint(initialHolder, initialBalance, "", "");
  26. }
  27. function mintInternal(
  28. address to,
  29. uint256 amount,
  30. bytes memory userData,
  31. bytes memory operatorData
  32. ) public {
  33. _mint(to, amount, userData, operatorData);
  34. }
  35. function mintInternalExtended(
  36. address to,
  37. uint256 amount,
  38. bytes memory userData,
  39. bytes memory operatorData,
  40. bool requireReceptionAck
  41. ) public {
  42. _mint(to, amount, userData, operatorData, requireReceptionAck);
  43. }
  44. function approveInternal(
  45. address holder,
  46. address spender,
  47. uint256 value
  48. ) public {
  49. _approve(holder, spender, value);
  50. }
  51. function _beforeTokenTransfer(
  52. address,
  53. address,
  54. address,
  55. uint256
  56. ) internal override {
  57. emit BeforeTokenTransfer();
  58. }
  59. /**
  60. * @dev This empty reserved space is put in place to allow future versions to add new
  61. * variables without shifting down storage in the inheritance chain.
  62. * See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps
  63. */
  64. uint256[50] private __gap;
  65. }