Commit 46881f71 by Francisco Giordano

Merge branch 'upstream-patched' into upstream-v3.4-patched

parents 0b6bfde4 bc6886c2
...@@ -6,6 +6,7 @@ on: ...@@ -6,6 +6,7 @@ on:
- master - master
- release-v* - release-v*
pull_request: {} pull_request: {}
workflow_dispatch: {}
jobs: jobs:
test: test:
......
...@@ -32,6 +32,11 @@ contract AddressImpl { ...@@ -32,6 +32,11 @@ contract AddressImpl {
emit CallReturnValue(abi.decode(returnData, (string))); emit CallReturnValue(abi.decode(returnData, (string)));
} }
function functionDelegateCall(address target, bytes calldata data) external {
bytes memory returnData = Address.functionDelegateCall(target, data);
emit CallReturnValue(abi.decode(returnData, (string)));
}
// sendValue's tests require the contract to hold Ether // sendValue's tests require the contract to hold Ether
receive () external payable { } receive () external payable { }
} }
...@@ -144,6 +144,30 @@ library Address { ...@@ -144,6 +144,30 @@ library Address {
return _verifyCallResult(success, returndata, errorMessage); return _verifyCallResult(success, returndata, errorMessage);
} }
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.3._
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
return functionDelegateCall(target, data, "Address: low-level delegate call failed");
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
* but performing a delegate call.
*
* _Available since v3.3._
*/
function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
require(isContract(target), "Address: delegate call to non-contract");
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) = target.delegatecall(data);
return _verifyCallResult(success, returndata, errorMessage);
}
function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
if (success) { if (success) {
return returndata; return returndata;
......
diff --git a/contracts/mocks/AddressImplUpgradeable.sol b/contracts/mocks/AddressImplUpgradeable.sol
index e9a0f96f..2b87e58e 100644
--- a/contracts/mocks/AddressImplUpgradeable.sol
+++ b/contracts/mocks/AddressImplUpgradeable.sol
@@ -39,11 +39,6 @@ contract AddressImplUpgradeable is Initializable {
emit CallReturnValue(abi.decode(returnData, (string)));
}
- function functionDelegateCall(address target, bytes calldata data) external {
- bytes memory returnData = AddressUpgradeable.functionDelegateCall(target, data);
- emit CallReturnValue(abi.decode(returnData, (string)));
- }
-
// sendValue's tests require the contract to hold Ether
receive () external payable { }
uint256[49] private __gap;
diff --git a/contracts/utils/AddressUpgradeable.sol b/contracts/utils/AddressUpgradeable.sol
index 75acb96f..08a59041 100644
--- a/contracts/utils/AddressUpgradeable.sol
+++ b/contracts/utils/AddressUpgradeable.sol
@@ -144,30 +144,6 @@ library AddressUpgradeable {
return _verifyCallResult(success, returndata, errorMessage);
}
- /**
- * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
- * but performing a delegate call.
- *
- * _Available since v3.3._
- */
- function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
- return functionDelegateCall(target, data, "Address: low-level delegate call failed");
- }
-
- /**
- * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
- * but performing a delegate call.
- *
- * _Available since v3.3._
- */
- function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
- require(isContract(target), "Address: delegate call to non-contract");
-
- // solhint-disable-next-line avoid-low-level-calls
- (bool success, bytes memory returndata) = target.delegatecall(data);
- return _verifyCallResult(success, returndata, errorMessage);
- }
-
function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {
if (success) {
return returndata;
...@@ -13,3 +13,7 @@ npx @openzeppelin/upgrade-safe-transpiler -D \ ...@@ -13,3 +13,7 @@ npx @openzeppelin/upgrade-safe-transpiler -D \
-x 'contracts/proxy/**/*' \ -x 'contracts/proxy/**/*' \
-x '!contracts/proxy/Clones.sol' \ -x '!contracts/proxy/Clones.sol' \
-p 'contracts/presets/**/*' -p 'contracts/presets/**/*'
for p in scripts/upgradeable/patch/*.patch; do
git apply "$p"
done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment