DummyImplementationUpgradeable.sol 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../proxy/utils/Initializable.sol";
  4. abstract contract ImplUpgradeable is Initializable {
  5. function __Impl_init() internal onlyInitializing {
  6. __Impl_init_unchained();
  7. }
  8. function __Impl_init_unchained() internal onlyInitializing {
  9. }
  10. function version() public pure virtual returns (string memory);
  11. uint256[50] private __gap;
  12. }
  13. contract DummyImplementationUpgradeable is Initializable {
  14. function __DummyImplementation_init() internal onlyInitializing {
  15. __DummyImplementation_init_unchained();
  16. }
  17. function __DummyImplementation_init_unchained() internal onlyInitializing {
  18. }
  19. uint256 public value;
  20. string public text;
  21. uint256[] public values;
  22. function initializeNonPayable() public {
  23. value = 10;
  24. }
  25. function initializePayable() public payable {
  26. value = 100;
  27. }
  28. function initializeNonPayableWithValue(uint256 _value) public {
  29. value = _value;
  30. }
  31. function initializePayableWithValue(uint256 _value) public payable {
  32. value = _value;
  33. }
  34. function initialize(
  35. uint256 _value,
  36. string memory _text,
  37. uint256[] memory _values
  38. ) public {
  39. value = _value;
  40. text = _text;
  41. values = _values;
  42. }
  43. function get() public pure returns (bool) {
  44. return true;
  45. }
  46. function version() public pure virtual returns (string memory) {
  47. return "V1";
  48. }
  49. function reverts() public pure {
  50. require(false, "DummyImplementation reverted");
  51. }
  52. uint256[47] private __gap;
  53. }
  54. contract DummyImplementationV2Upgradeable is Initializable, DummyImplementationUpgradeable {
  55. function __DummyImplementationV2_init() internal onlyInitializing {
  56. __DummyImplementation_init_unchained();
  57. __DummyImplementationV2_init_unchained();
  58. }
  59. function __DummyImplementationV2_init_unchained() internal onlyInitializing {
  60. }
  61. function migrate(uint256 newVal) public payable {
  62. value = newVal;
  63. }
  64. function version() public pure override returns (string memory) {
  65. return "V2";
  66. }
  67. uint256[50] private __gap;
  68. }