Commit b9f50aae by github-actions

Transpile f3ddf457

parent 1ea0eed7
# Changelog # Changelog
## 4.3.1
* `TimelockController`: Add additional isOperationReady check.
## 4.3.0 (2021-08-17) ## 4.3.0 (2021-08-17)
* `ERC2771Context`: use private variable from storage to store the forwarder address. Fixes issues where `_msgSender()` was not callable from constructors. ([#2754](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2754)) * `ERC2771Context`: use private variable from storage to store the forwarder address. Fixes issues where `_msgSender()` was not callable from constructors. ([#2754](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2754))
...@@ -95,6 +99,14 @@ Make sure you're using git or another version control system to be able to recov ...@@ -95,6 +99,14 @@ Make sure you're using git or another version control system to be able to recov
Some further changes have been done between the different beta iterations. Transitions made during this period are configured in the `migrate-imports` script. Consequently, you can upgrade from any previous 4.0-beta.x version using the same script as described in the *How to upgrade from 3.x* section. Some further changes have been done between the different beta iterations. Transitions made during this period are configured in the `migrate-imports` script. Consequently, you can upgrade from any previous 4.0-beta.x version using the same script as described in the *How to upgrade from 3.x* section.
## 3.4.2
* `TimelockController`: Add additional isOperationReady check.
## 3.4.1 (2021-03-03)
* `ERC721`: made `_approve` an internal function (was private).
## 3.4.0 (2021-02-02) ## 3.4.0 (2021-02-02)
* `BeaconProxy`: added new kind of proxy that allows simultaneous atomic upgrades. ([#2411](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2411)) * `BeaconProxy`: added new kind of proxy that allows simultaneous atomic upgrades. ([#2411](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/2411))
......
...@@ -280,7 +280,7 @@ contract TimelockControllerUpgradeable is Initializable, AccessControlUpgradeabl ...@@ -280,7 +280,7 @@ contract TimelockControllerUpgradeable is Initializable, AccessControlUpgradeabl
bytes32 salt bytes32 salt
) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) { ) public payable virtual onlyRoleOrOpenRole(EXECUTOR_ROLE) {
bytes32 id = hashOperation(target, value, data, predecessor, salt); bytes32 id = hashOperation(target, value, data, predecessor, salt);
_beforeCall(predecessor); _beforeCall(id, predecessor);
_call(id, 0, target, value, data); _call(id, 0, target, value, data);
_afterCall(id); _afterCall(id);
} }
...@@ -305,7 +305,7 @@ contract TimelockControllerUpgradeable is Initializable, AccessControlUpgradeabl ...@@ -305,7 +305,7 @@ contract TimelockControllerUpgradeable is Initializable, AccessControlUpgradeabl
require(targets.length == datas.length, "TimelockController: length mismatch"); require(targets.length == datas.length, "TimelockController: length mismatch");
bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt); bytes32 id = hashOperationBatch(targets, values, datas, predecessor, salt);
_beforeCall(predecessor); _beforeCall(id, predecessor);
for (uint256 i = 0; i < targets.length; ++i) { for (uint256 i = 0; i < targets.length; ++i) {
_call(id, i, targets[i], values[i], datas[i]); _call(id, i, targets[i], values[i], datas[i]);
} }
...@@ -315,7 +315,8 @@ contract TimelockControllerUpgradeable is Initializable, AccessControlUpgradeabl ...@@ -315,7 +315,8 @@ contract TimelockControllerUpgradeable is Initializable, AccessControlUpgradeabl
/** /**
* @dev Checks before execution of an operation's calls. * @dev Checks before execution of an operation's calls.
*/ */
function _beforeCall(bytes32 predecessor) private view { function _beforeCall(bytes32 id, bytes32 predecessor) private view {
require(isOperationReady(id), "TimelockController: operation is not ready");
require(predecessor == bytes32(0) || isOperationDone(predecessor), "TimelockController: missing dependency"); require(predecessor == bytes32(0) || isOperationDone(predecessor), "TimelockController: missing dependency");
} }
......
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