From 69c8d1010e1ca53ce3fa7f6fddff96759aec87e1 Mon Sep 17 00:00:00 2001 From: blockeater Date: Thu, 26 Jan 2023 00:46:34 +0500 Subject: [PATCH] Make upgradeTo and upgradeToAndCall public (#3959) Co-authored-by: Francisco --- .changeset/five-ducks-develop.md | 5 +++++ contracts/mocks/proxy/UUPSLegacy.sol | 4 ++-- contracts/mocks/proxy/UUPSUpgradeableMock.sol | 4 ++-- contracts/proxy/utils/UUPSUpgradeable.sol | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .changeset/five-ducks-develop.md diff --git a/.changeset/five-ducks-develop.md b/.changeset/five-ducks-develop.md new file mode 100644 index 000000000..fe25db071 --- /dev/null +++ b/.changeset/five-ducks-develop.md @@ -0,0 +1,5 @@ +--- +'openzeppelin-solidity': patch +--- + +`UUPSUpgradeable.sol`: Change visibility to the functions `upgradeTo ` and `upgradeToAndCall ` from `external` to `public`. diff --git a/contracts/mocks/proxy/UUPSLegacy.sol b/contracts/mocks/proxy/UUPSLegacy.sol index 7a3002889..6956f5675 100644 --- a/contracts/mocks/proxy/UUPSLegacy.sol +++ b/contracts/mocks/proxy/UUPSLegacy.sol @@ -44,11 +44,11 @@ contract UUPSUpgradeableLegacyMock is UUPSUpgradeableMock { } // hooking into the old mechanism - function upgradeTo(address newImplementation) external override { + function upgradeTo(address newImplementation) public override { _upgradeToAndCallSecureLegacyV1(newImplementation, bytes(""), false); } - function upgradeToAndCall(address newImplementation, bytes memory data) external payable override { + function upgradeToAndCall(address newImplementation, bytes memory data) public payable override { _upgradeToAndCallSecureLegacyV1(newImplementation, data, false); } } diff --git a/contracts/mocks/proxy/UUPSUpgradeableMock.sol b/contracts/mocks/proxy/UUPSUpgradeableMock.sol index deb20a000..f02271c49 100644 --- a/contracts/mocks/proxy/UUPSUpgradeableMock.sol +++ b/contracts/mocks/proxy/UUPSUpgradeableMock.sol @@ -23,11 +23,11 @@ contract UUPSUpgradeableMock is NonUpgradeableMock, UUPSUpgradeable { } contract UUPSUpgradeableUnsafeMock is UUPSUpgradeableMock { - function upgradeTo(address newImplementation) external override { + function upgradeTo(address newImplementation) public override { ERC1967Upgrade._upgradeToAndCall(newImplementation, bytes(""), false); } - function upgradeToAndCall(address newImplementation, bytes memory data) external payable override { + function upgradeToAndCall(address newImplementation, bytes memory data) public payable override { ERC1967Upgrade._upgradeToAndCall(newImplementation, data, false); } } diff --git a/contracts/proxy/utils/UUPSUpgradeable.sol b/contracts/proxy/utils/UUPSUpgradeable.sol index bb696f6fa..4ff026638 100644 --- a/contracts/proxy/utils/UUPSUpgradeable.sol +++ b/contracts/proxy/utils/UUPSUpgradeable.sol @@ -65,7 +65,7 @@ abstract contract UUPSUpgradeable is IERC1822Proxiable, ERC1967Upgrade { * * @custom:oz-upgrades-unsafe-allow-reachable delegatecall */ - function upgradeTo(address newImplementation) external virtual onlyProxy { + function upgradeTo(address newImplementation) public virtual onlyProxy { _authorizeUpgrade(newImplementation); _upgradeToAndCallUUPS(newImplementation, new bytes(0), false); } @@ -80,7 +80,7 @@ abstract contract UUPSUpgradeable is IERC1822Proxiable, ERC1967Upgrade { * * @custom:oz-upgrades-unsafe-allow-reachable delegatecall */ - function upgradeToAndCall(address newImplementation, bytes memory data) external payable virtual onlyProxy { + function upgradeToAndCall(address newImplementation, bytes memory data) public payable virtual onlyProxy { _authorizeUpgrade(newImplementation); _upgradeToAndCallUUPS(newImplementation, data, true); }