InitializableMock.sol 703 B

123456789101112131415161718192021222324252627282930313233343536
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.6.0;
  3. import "../proxy/Initializable.sol";
  4. /**
  5. * @title InitializableMock
  6. * @dev This contract is a mock to test initializable functionality
  7. */
  8. contract InitializableMock is Initializable {
  9. bool public initializerRan;
  10. uint256 public x;
  11. function initialize() public initializer {
  12. initializerRan = true;
  13. }
  14. function initializeNested() public initializer {
  15. initialize();
  16. }
  17. function initializeWithX(uint256 _x) public payable initializer {
  18. x = _x;
  19. }
  20. function nonInitializable(uint256 _x) public payable {
  21. x = _x;
  22. }
  23. function fail() public pure {
  24. require(false, "InitializableMock forced failure");
  25. }
  26. }