UUPSUpgradeableMock.sol 1.0 KB

123456789101112131415161718192021222324252627282930313233
  1. // SPDX-License-Identifier: MIT
  2. pragma solidity ^0.8.0;
  3. import "../../proxy/utils/UUPSUpgradeable.sol";
  4. import "../../utils/Counters.sol";
  5. contract NonUpgradeableMock {
  6. Counters.Counter internal _counter;
  7. function current() external view returns (uint256) {
  8. return Counters.current(_counter);
  9. }
  10. function increment() external {
  11. return Counters.increment(_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 upgradeTo(address newImplementation) public override {
  20. ERC1967Upgrade._upgradeToAndCall(newImplementation, bytes(""), false);
  21. }
  22. function upgradeToAndCall(address newImplementation, bytes memory data) public payable override {
  23. ERC1967Upgrade._upgradeToAndCall(newImplementation, data, false);
  24. }
  25. }