ERC777MockUpgradeable.sol 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. __Context_init_unchained();
  16. __ERC777_init_unchained(name, symbol, defaultOperators);
  17. __ERC777Mock_init_unchained(initialHolder, initialBalance, name, symbol, defaultOperators);
  18. }
  19. function __ERC777Mock_init_unchained(
  20. address initialHolder,
  21. uint256 initialBalance,
  22. string memory,
  23. string memory,
  24. address[] memory
  25. ) internal onlyInitializing {
  26. _mint(initialHolder, initialBalance, "", "");
  27. }
  28. function mintInternal(
  29. address to,
  30. uint256 amount,
  31. bytes memory userData,
  32. bytes memory operatorData
  33. ) public {
  34. _mint(to, amount, userData, operatorData);
  35. }
  36. function mintInternalExtended(
  37. address to,
  38. uint256 amount,
  39. bytes memory userData,
  40. bytes memory operatorData,
  41. bool requireReceptionAck
  42. ) public {
  43. _mint(to, amount, userData, operatorData, requireReceptionAck);
  44. }
  45. function approveInternal(
  46. address holder,
  47. address spender,
  48. uint256 value
  49. ) public {
  50. _approve(holder, spender, value);
  51. }
  52. function _beforeTokenTransfer(
  53. address,
  54. address,
  55. address,
  56. uint256
  57. ) internal override {
  58. emit BeforeTokenTransfer();
  59. }
  60. uint256[50] private __gap;
  61. }