ReinitializersHarness.sol 647 B

123456789101112131415161718
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.4;
  3. import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
  4. import "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";
  5. import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol";
  6. contract MyTokenV1 is Initializable, ERC20Upgradeable {
  7. function initialize() initializer public {
  8. __ERC20_init("MyToken", "MTK");
  9. }
  10. }
  11. contract MyTokenV2 is Initializable, ERC20Upgradeable, ERC20PermitUpgradeable {
  12. function initializeV2() reinitializer(2) public {
  13. __ERC20Permit_init("MyToken");
  14. }
  15. }