UUPSUpgradeableMock.sol 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.19;
  3. import {UUPSUpgradeable} from "../../proxy/utils/UUPSUpgradeable.sol";
  4. import {ERC1967Utils} from "../../proxy/ERC1967/ERC1967Utils.sol";
  5. contract NonUpgradeableMock {
  6. uint256 internal _counter;
  7. function current() external view returns (uint256) {
  8. return _counter;
  9. }
  10. function increment() external {
  11. ++_counter;
  12. }
  13. }
  14. contract UUPSUpgradeableMock is NonUpgradeableMock, UUPSUpgradeable {
  15. // Not having any checks in this function is dangerous! Do not do this outside tests!
  16. function _authorizeUpgrade(address) internal override {}
  17. }
  18. contract UUPSUpgradeableUnsafeMock is UUPSUpgradeableMock {
  19. function upgradeToAndCall(address newImplementation, bytes memory data) public payable override {
  20. ERC1967Utils.upgradeToAndCall(newImplementation, data);
  21. }
  22. }
  23. contract UUPSUnsupportedProxiableUUID is UUPSUpgradeableMock {
  24. function proxiableUUID() external pure override returns (bytes32) {
  25. return keccak256("invalid UUID");
  26. }
  27. }