Commit 89dcc77d by Francisco Giordano

Merge commit '29eeb282' of…

Merge commit '29eeb282' of github.com:OpenZeppelin/openzeppelin-contracts into patches
parents 056f76a4 29eeb282
...@@ -5,12 +5,13 @@ ...@@ -5,12 +5,13 @@
* `Ownable`: add an internal `_transferOwnership(address)`. ([#2568](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/#2568)) * `Ownable`: add an internal `_transferOwnership(address)`. ([#2568](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/#2568))
* `AccessControl`: add internal `_grantRole(bytes32,address)` and `_revokeRole(bytes32,address)`. ([#2568](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/#2568)) * `AccessControl`: add internal `_grantRole(bytes32,address)` and `_revokeRole(bytes32,address)`. ([#2568](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/#2568))
* `AccessControl`: mark `_setupRole(bytes32,address)` as deprecated in favor of `_grantRole(bytes32,address)`. ([#2568](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/#2568)) * `AccessControl`: mark `_setupRole(bytes32,address)` as deprecated in favor of `_grantRole(bytes32,address)`. ([#2568](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/#2568))
* `EIP712`: cache `address(this)` to immutable storage to avoid potential issues if a vanilla contract is used in a delegatecall context. ([#2852](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/#2852))
## 4.3.2 ## 4.3.2 (2021-09-14)
* `UUPSUpgradeable`: Add modifiers to prevent `upgradeTo` and `upgradeToAndCall` being executed on any contract that is not the active ERC1967 proxy. This prevents these functions being called on implementation contracts or minimal ERC1167 clones, in particular. * `UUPSUpgradeable`: Add modifiers to prevent `upgradeTo` and `upgradeToAndCall` being executed on any contract that is not the active ERC1967 proxy. This prevents these functions being called on implementation contracts or minimal ERC1167 clones, in particular.
## 4.3.1 ## 4.3.1 (2021-08-26)
* `TimelockController`: Add additional isOperationReady check. * `TimelockController`: Add additional isOperationReady check.
......
...@@ -150,7 +150,7 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 { ...@@ -150,7 +150,7 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 {
* purpose is to provide a mechanism for accounts to lose their privileges * purpose is to provide a mechanism for accounts to lose their privileges
* if they are compromised (such as when a trusted device is misplaced). * if they are compromised (such as when a trusted device is misplaced).
* *
* If the calling account had been granted `role`, emits a {RoleRevoked} * If the calling account had been revoked `role`, emits a {RoleRevoked}
* event. * event.
* *
* Requirements: * Requirements:
......
...@@ -56,6 +56,13 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor { ...@@ -56,6 +56,13 @@ abstract contract Governor is Context, ERC165, EIP712, IGovernor {
} }
/** /**
* @dev Function to receive ETH that will be handled by the governor (disabled if executor is a third party contract)
*/
receive() external payable virtual {
require(_executor() == address(this));
}
/**
* @dev See {IERC165-supportsInterface}. * @dev See {IERC165-supportsInterface}.
*/ */
function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) { function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) {
......
...@@ -70,7 +70,7 @@ abstract contract GovernorCountingSimple is Governor { ...@@ -70,7 +70,7 @@ abstract contract GovernorCountingSimple is Governor {
} }
/** /**
* @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be scritly over the againstVotes. * @dev See {Governor-_voteSucceeded}. In this module, the forVotes must be strictly over the againstVotes.
*/ */
function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) { function _voteSucceeded(uint256 proposalId) internal view virtual override returns (bool) {
ProposalVote storage proposalvote = _proposalVotes[proposalId]; ProposalVote storage proposalvote = _proposalVotes[proposalId];
......
...@@ -177,8 +177,9 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor { ...@@ -177,8 +177,9 @@ abstract contract GovernorTimelockCompound is IGovernorTimelock, Governor {
) internal virtual override { ) internal virtual override {
uint256 eta = proposalEta(proposalId); uint256 eta = proposalEta(proposalId);
require(eta > 0, "GovernorTimelockCompound: proposal not yet queued"); require(eta > 0, "GovernorTimelockCompound: proposal not yet queued");
Address.sendValue(payable(_timelock), msg.value);
for (uint256 i = 0; i < targets.length; ++i) { for (uint256 i = 0; i < targets.length; ++i) {
_timelock.executeTransaction{value: values[i]}(targets[i], values[i], "", calldatas[i], eta); _timelock.executeTransaction(targets[i], values[i], "", calldatas[i], eta);
} }
} }
......
...@@ -20,8 +20,6 @@ contract GovernorCompMock is Governor, GovernorVotesComp, GovernorCountingSimple ...@@ -20,8 +20,6 @@ contract GovernorCompMock is Governor, GovernorVotesComp, GovernorCountingSimple
_votingPeriod = votingPeriod_; _votingPeriod = votingPeriod_;
} }
receive() external payable {}
function votingDelay() public view override returns (uint256) { function votingDelay() public view override returns (uint256) {
return _votingDelay; return _votingDelay;
} }
......
...@@ -21,8 +21,6 @@ contract GovernorMock is Governor, GovernorVotesQuorumFraction, GovernorCounting ...@@ -21,8 +21,6 @@ contract GovernorMock is Governor, GovernorVotesQuorumFraction, GovernorCounting
_votingPeriod = votingPeriod_; _votingPeriod = votingPeriod_;
} }
receive() external payable {}
function votingDelay() public view override returns (uint256) { function votingDelay() public view override returns (uint256) {
return _votingDelay; return _votingDelay;
} }
......
{ {
"name": "@openzeppelin/contracts-upgradeable", "name": "@openzeppelin/contracts-upgradeable",
"description": "Secure Smart Contract library for Solidity", "description": "Secure Smart Contract library for Solidity",
"version": "4.3.0", "version": "4.3.2",
"files": [ "files": [
"**/*.sol", "**/*.sol",
"/build/contracts/*.json", "/build/contracts/*.json",
......
...@@ -8,7 +8,7 @@ import "../../interfaces/IERC1271.sol"; ...@@ -8,7 +8,7 @@ import "../../interfaces/IERC1271.sol";
/** /**
* @dev Signature verification helper: Provide a single mechanism to verify both private-key (EOA) ECDSA signature and * @dev Signature verification helper: Provide a single mechanism to verify both private-key (EOA) ECDSA signature and
* ERC1271 contract sigantures. Using this instead of ECDSA.recover in your contract will make them compatible with * ERC1271 contract signatures. Using this instead of ECDSA.recover in your contract will make them compatible with
* smart contract wallets such as Argent and Gnosis. * smart contract wallets such as Argent and Gnosis.
* *
* Note: unlike ECDSA signatures, contract signature's are revocable, and the outcome of this function can thus change * Note: unlike ECDSA signatures, contract signature's are revocable, and the outcome of this function can thus change
......
...@@ -9,7 +9,7 @@ pragma solidity ^0.8.0; ...@@ -9,7 +9,7 @@ pragma solidity ^0.8.0;
/** /**
* @dev Wrappers over Solidity's arithmetic operations. * @dev Wrappers over Solidity's arithmetic operations.
* *
* NOTE: `SafeMath` is no longer needed starting with Solidity 0.8. The compiler * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler
* now has built in overflow checking. * now has built in overflow checking.
*/ */
library SafeMath { library SafeMath {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"private": true, "private": true,
"name": "openzeppelin-solidity", "name": "openzeppelin-solidity",
"description": "Secure Smart Contract library for Solidity", "description": "Secure Smart Contract library for Solidity",
"version": "4.3.0", "version": "4.3.2",
"files": [ "files": [
"/contracts/**/*.sol", "/contracts/**/*.sol",
"/build/contracts/*.json", "/build/contracts/*.json",
......
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